@gyramais/gyra-design 0.2.30 → 0.2.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/components/Card/Card.d.ts +8 -1
  2. package/dist/components/Card/index.js +6 -6
  3. package/dist/components/Card/index.js.map +1 -1
  4. package/dist/components/ContextMenu/ContextMenu.d.ts +45 -0
  5. package/dist/components/ContextMenu/index.d.ts +1 -0
  6. package/dist/components/ContextMenu/index.js +7 -0
  7. package/dist/components/ContextMenu/index.js.map +1 -0
  8. package/dist/components/FloatingCard/index.js +7 -7
  9. package/dist/components/FloatingCard/index.js.map +1 -1
  10. package/dist/components/Gauge/Gauge.d.ts +28 -0
  11. package/dist/components/Gauge/index.d.ts +2 -0
  12. package/dist/components/Gauge/index.js +7 -0
  13. package/dist/components/Gauge/index.js.map +1 -0
  14. package/dist/components/MultiSelectPicker/MultiSelectPicker.d.ts +42 -0
  15. package/dist/components/MultiSelectPicker/index.d.ts +1 -0
  16. package/dist/components/MultiSelectPicker/index.js +45 -0
  17. package/dist/components/MultiSelectPicker/index.js.map +1 -0
  18. package/dist/components/OperatorPicker/OperatorPicker.d.ts +26 -0
  19. package/dist/components/OperatorPicker/index.d.ts +1 -0
  20. package/dist/components/OperatorPicker/index.js +45 -0
  21. package/dist/components/OperatorPicker/index.js.map +1 -0
  22. package/dist/components/PickerPopover/PickerPopover.d.ts +56 -0
  23. package/dist/components/PickerPopover/index.d.ts +1 -0
  24. package/dist/components/PickerPopover/index.js +45 -0
  25. package/dist/components/PickerPopover/index.js.map +1 -0
  26. package/dist/components/RuleSearchPicker/RuleSearchPicker.d.ts +46 -0
  27. package/dist/components/RuleSearchPicker/index.d.ts +1 -0
  28. package/dist/components/RuleSearchPicker/index.js +45 -0
  29. package/dist/components/RuleSearchPicker/index.js.map +1 -0
  30. package/dist/components/SegmentedToggle/SegmentedToggle.d.ts +25 -0
  31. package/dist/components/SegmentedToggle/index.d.ts +1 -0
  32. package/dist/components/SegmentedToggle/index.js +7 -0
  33. package/dist/components/SegmentedToggle/index.js.map +1 -0
  34. package/dist/components/TourGuide/TourGuide.d.ts +39 -0
  35. package/dist/components/TourGuide/index.d.ts +1 -0
  36. package/dist/components/TourGuide/index.js +7 -0
  37. package/dist/components/TourGuide/index.js.map +1 -0
  38. package/dist/emails/balance-sheet-finalized/components/Card/Card.d.ts +8 -1
  39. package/dist/emails/balance-sheet-finalized/components/ContextMenu/ContextMenu.d.ts +45 -0
  40. package/dist/emails/balance-sheet-finalized/components/ContextMenu/index.d.ts +1 -0
  41. package/dist/emails/balance-sheet-finalized/components/Gauge/Gauge.d.ts +28 -0
  42. package/dist/emails/balance-sheet-finalized/components/Gauge/index.d.ts +2 -0
  43. package/dist/emails/balance-sheet-finalized/components/MultiSelectPicker/MultiSelectPicker.d.ts +42 -0
  44. package/dist/emails/balance-sheet-finalized/components/MultiSelectPicker/index.d.ts +1 -0
  45. package/dist/emails/balance-sheet-finalized/components/OperatorPicker/OperatorPicker.d.ts +26 -0
  46. package/dist/emails/balance-sheet-finalized/components/OperatorPicker/index.d.ts +1 -0
  47. package/dist/emails/balance-sheet-finalized/components/PickerPopover/PickerPopover.d.ts +56 -0
  48. package/dist/emails/balance-sheet-finalized/components/PickerPopover/index.d.ts +1 -0
  49. package/dist/emails/balance-sheet-finalized/components/RuleSearchPicker/RuleSearchPicker.d.ts +46 -0
  50. package/dist/emails/balance-sheet-finalized/components/RuleSearchPicker/index.d.ts +1 -0
  51. package/dist/emails/balance-sheet-finalized/components/SegmentedToggle/SegmentedToggle.d.ts +25 -0
  52. package/dist/emails/balance-sheet-finalized/components/SegmentedToggle/index.d.ts +1 -0
  53. package/dist/emails/balance-sheet-finalized/components/TourGuide/TourGuide.d.ts +39 -0
  54. package/dist/emails/balance-sheet-finalized/components/TourGuide/index.d.ts +1 -0
  55. package/dist/emails/balance-sheet-finalized/index.d.ts +8 -0
  56. package/dist/emails/email/components/Card/Card.d.ts +8 -1
  57. package/dist/emails/email/components/ContextMenu/ContextMenu.d.ts +45 -0
  58. package/dist/emails/email/components/ContextMenu/index.d.ts +1 -0
  59. package/dist/emails/email/components/Gauge/Gauge.d.ts +28 -0
  60. package/dist/emails/email/components/Gauge/index.d.ts +2 -0
  61. package/dist/emails/email/components/MultiSelectPicker/MultiSelectPicker.d.ts +42 -0
  62. package/dist/emails/email/components/MultiSelectPicker/index.d.ts +1 -0
  63. package/dist/emails/email/components/OperatorPicker/OperatorPicker.d.ts +26 -0
  64. package/dist/emails/email/components/OperatorPicker/index.d.ts +1 -0
  65. package/dist/emails/email/components/PickerPopover/PickerPopover.d.ts +56 -0
  66. package/dist/emails/email/components/PickerPopover/index.d.ts +1 -0
  67. package/dist/emails/email/components/RuleSearchPicker/RuleSearchPicker.d.ts +46 -0
  68. package/dist/emails/email/components/RuleSearchPicker/index.d.ts +1 -0
  69. package/dist/emails/email/components/SegmentedToggle/SegmentedToggle.d.ts +25 -0
  70. package/dist/emails/email/components/SegmentedToggle/index.d.ts +1 -0
  71. package/dist/emails/email/components/TourGuide/TourGuide.d.ts +39 -0
  72. package/dist/emails/email/components/TourGuide/index.d.ts +1 -0
  73. package/dist/emails/email/index.d.ts +8 -0
  74. package/dist/index.css +1436 -91
  75. package/package.json +1 -1
  76. package/dist/components/ListingPage/ListingPage.d.ts +0 -21
  77. package/dist/components/ListingPage/index.d.ts +0 -1
  78. package/dist/components/ListingPage/index.js +0 -7
  79. package/dist/components/ListingPage/index.js.map +0 -1
package/dist/index.css CHANGED
@@ -535,6 +535,9 @@ video {
535
535
  .pointer-events-none {
536
536
  pointer-events: none;
537
537
  }
538
+ .\!visible {
539
+ visibility: visible !important;
540
+ }
538
541
  .visible {
539
542
  visibility: visible;
540
543
  }
@@ -547,6 +550,9 @@ video {
547
550
  .relative {
548
551
  position: relative;
549
552
  }
553
+ .sticky {
554
+ position: sticky;
555
+ }
550
556
  .left-2 {
551
557
  left: 0.5rem;
552
558
  }
@@ -743,6 +749,9 @@ video {
743
749
  -moz-user-select: none;
744
750
  user-select: none;
745
751
  }
752
+ .resize {
753
+ resize: both;
754
+ }
746
755
  .flex-col {
747
756
  flex-direction: column;
748
757
  }
@@ -917,6 +926,9 @@ video {
917
926
  --tw-text-opacity: 1;
918
927
  color: rgb(59 57 64 / var(--tw-text-opacity, 1));
919
928
  }
929
+ .text-\[var\(--color-text-secondary\)\] {
930
+ color: var(--color-text-secondary);
931
+ }
920
932
  .text-\[var\(--primary-button-color\)\] {
921
933
  color: var(--primary-button-color);
922
934
  }
@@ -4320,6 +4332,23 @@ h6 {
4320
4332
  display: flex;
4321
4333
  flex-direction: column;
4322
4334
  }
4335
+ /* Variante com mídia (ícone/badge): mídia à esquerda, texto à direita. */
4336
+ .gyramais-card .gyramais-card-header-left.with-media {
4337
+ flex-direction: row;
4338
+ align-items: center;
4339
+ gap: 0.75rem;
4340
+ }
4341
+ .gyramais-card .gyramais-card-header-media {
4342
+ display: flex;
4343
+ flex-shrink: 0;
4344
+ align-items: center;
4345
+ justify-content: center;
4346
+ }
4347
+ .gyramais-card .gyramais-card-header-text {
4348
+ display: flex;
4349
+ min-width: 0px;
4350
+ flex-direction: column;
4351
+ }
4323
4352
  .gyramais-card:not(.gyramais-card-disabled)
4324
4353
  .gyramais-card-header-left.with-collapse {
4325
4354
  cursor: pointer;
@@ -5986,6 +6015,79 @@ h6 {
5986
6015
  color: var(--danger-color)
5987
6016
  }
5988
6017
 
6018
+ /* Gauge (CU-86ahzcm82) */
6019
+ /* Gauge circular de score. Diâmetro controlado por --gauge-size; número e
6020
+ legenda escalam proporcionalmente. Cores via design tokens (dark-mode safe). */
6021
+ .gyramais-gauge {
6022
+ position: relative;
6023
+ width: var(--gauge-size, 240px);
6024
+ height: var(--gauge-size, 240px);
6025
+ margin: 0 auto;
6026
+ }
6027
+ .gyramais-gauge svg {
6028
+ width: 100%;
6029
+ height: 100%;
6030
+ transform: rotate(-90deg);
6031
+ }
6032
+ .gyramais-gauge__track {
6033
+ stroke: var(--color-border-subtle, #f0f0f2);
6034
+ }
6035
+ .gyramais-gauge__arc {
6036
+ stroke: var(--gyra-blue, #1256ff);
6037
+ }
6038
+ .gyramais-gauge__center {
6039
+ position: absolute;
6040
+ inset: 0;
6041
+ display: flex;
6042
+ flex-direction: column;
6043
+ align-items: center;
6044
+ justify-content: center;
6045
+ gap: 2px;
6046
+ }
6047
+ .gyramais-gauge__caption {
6048
+ font-size: calc(var(--gauge-size, 240px) * 0.0458);
6049
+ color: var(--color-text-tertiary, #8e8e93);
6050
+ letter-spacing: 0.06em;
6051
+ text-transform: uppercase;
6052
+ font-weight: 600;
6053
+ }
6054
+ .gyramais-gauge__num {
6055
+ font-family: var(--font-display, "Lexend", "Inter", sans-serif);
6056
+ font-size: calc(var(--gauge-size, 240px) * 0.233);
6057
+ font-weight: 600;
6058
+ letter-spacing: -0.02em;
6059
+ color: var(--color-text-primary, #1d1d1f);
6060
+ line-height: 1;
6061
+ }
6062
+ .gyramais-gauge__max {
6063
+ font-size: calc(var(--gauge-size, 240px) * 0.05);
6064
+ color: var(--color-text-tertiary, #8e8e93);
6065
+ margin-top: 6px;
6066
+ }
6067
+ .gyramais-gauge__band {
6068
+ margin-top: 8px;
6069
+ font-size: calc(var(--gauge-size, 240px) * 0.0458);
6070
+ font-weight: 700;
6071
+ letter-spacing: 0.06em;
6072
+ text-transform: uppercase;
6073
+ padding: 4px 10px;
6074
+ border-radius: 9999px;
6075
+ background: var(--gyra-blue-light, #eef1fb);
6076
+ color: var(--gyra-blue, #1256ff);
6077
+ }
6078
+ .gyramais-gauge__band--success {
6079
+ background: var(--success-light, #e8f9ed);
6080
+ color: var(--status-success-text, #1a7d37);
6081
+ }
6082
+ .gyramais-gauge__band--warning {
6083
+ background: var(--warning-light, #fff4e0);
6084
+ color: var(--status-warning-text, #946200);
6085
+ }
6086
+ .gyramais-gauge__band--danger {
6087
+ background: var(--danger-light, #ffedec);
6088
+ color: var(--status-danger-text, #c93430);
6089
+ }
6090
+
5989
6091
  .gyramais-hover-card-trigger {
5990
6092
 
5991
6093
  display: block;
@@ -7895,6 +7997,116 @@ h6 {
7895
7997
  color: var(--gyra-blue)
7896
7998
  }
7897
7999
 
8000
+ /* SegmentedToggle — 3-segmentos sempre visíveis, com variants por cor. */
8001
+
8002
+ .gyramais-segmented-toggle {
8003
+ display: inline-flex;
8004
+ gap: 2px;
8005
+ border-radius: 12px;
8006
+ border-width: 1px;
8007
+ border-color: var(--color-border-subtle);
8008
+ --tw-bg-opacity: 1;
8009
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
8010
+ padding: 4px;
8011
+ box-shadow: 0 1px 2px rgba(0,0,0,0.02);
8012
+ }
8013
+
8014
+ .gyramais-segmented-toggle-btn {
8015
+ display: inline-flex;
8016
+ cursor: pointer;
8017
+ align-items: center;
8018
+ gap: 8px;
8019
+ border-radius: 8px;
8020
+ border-width: 0px;
8021
+ background-color: transparent;
8022
+ padding-left: 16px;
8023
+ padding-right: 16px;
8024
+ padding-top: 10px;
8025
+ padding-bottom: 10px;
8026
+ font-size: 13.5px;
8027
+ font-weight: 500;
8028
+ color: var(--color-text-tertiary);
8029
+ font-family: inherit;
8030
+ transition:
8031
+ background var(--duration-normal) var(--ease-default),
8032
+ color var(--duration-normal) var(--ease-default),
8033
+ box-shadow var(--duration-normal) var(--ease-default);
8034
+ }
8035
+ .gyramais-segmented-toggle-btn:hover {
8036
+ background-color: var(--color-surface-secondary);
8037
+ color: var(--color-text-primary);
8038
+ }
8039
+ .gyramais-segmented-toggle-btn:disabled {
8040
+ pointer-events: none;
8041
+ opacity: 0.45;
8042
+ }
8043
+ .gyramais-segmented-toggle-btn .gyramais-segmented-toggle-icon {
8044
+ display: inline-flex;
8045
+ align-items: center;
8046
+ justify-content: center;
8047
+ }
8048
+ .gyramais-segmented-toggle-btn .gyramais-segmented-toggle-icon svg {
8049
+ font-size: 18px !important;
8050
+ }
8051
+
8052
+ /* Active state — neutral fallback */
8053
+ .gyramais-segmented-toggle-btn.is-on {
8054
+ background-color: var(--color-surface-secondary);
8055
+ font-weight: 600;
8056
+ color: var(--color-text-primary);
8057
+ box-shadow: inset 0 0 0 1px var(--color-border-subtle);
8058
+ }
8059
+
8060
+ /* Variants per kind */
8061
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-primary.is-on {
8062
+ color: var(--gyra-blue);
8063
+ background: var(--gyra-blue-light);
8064
+ box-shadow: inset 0 0 0 1px rgba(18,86,255,0.25);
8065
+ }
8066
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-success.is-on {
8067
+ color: var(--success-color);
8068
+ background: rgba(52,199,89,0.08);
8069
+ box-shadow: inset 0 0 0 1px rgba(52,199,89,0.25);
8070
+ }
8071
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-warning.is-on {
8072
+ color: var(--warning-color);
8073
+ background: rgba(255,159,10,0.08);
8074
+ box-shadow: inset 0 0 0 1px rgba(255,159,10,0.25);
8075
+ }
8076
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-danger.is-on {
8077
+ color: var(--danger-color);
8078
+ background: rgba(255,59,48,0.06);
8079
+ box-shadow: inset 0 0 0 1px rgba(255,59,48,0.22);
8080
+ }
8081
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-info.is-on {
8082
+ color: var(--color-info);
8083
+ background: rgba(0,122,255,0.07);
8084
+ box-shadow: inset 0 0 0 1px rgba(0,122,255,0.22);
8085
+ }
8086
+ .gyramais-segmented-toggle-btn.gyramais-segmented-toggle-kind-neutral.is-on {
8087
+ color: var(--color-text-primary);
8088
+ background: var(--color-surface-secondary);
8089
+ box-shadow: inset 0 0 0 1px var(--color-border-subtle);
8090
+ }
8091
+
8092
+ /* Size: sm */
8093
+ .gyramais-segmented-toggle-sm {
8094
+ border-radius: 10px;
8095
+ padding: 3px;
8096
+ }
8097
+ .gyramais-segmented-toggle-sm .gyramais-segmented-toggle-btn {
8098
+ gap: 6px;
8099
+ border-radius: 7px;
8100
+ padding-left: 12px;
8101
+ padding-right: 12px;
8102
+ padding-top: 6px;
8103
+ padding-bottom: 6px;
8104
+ font-size: 12px;
8105
+ }
8106
+ .gyramais-segmented-toggle-sm .gyramais-segmented-toggle-btn .gyramais-segmented-toggle-icon svg {
8107
+ font-size: 14px !important;
8108
+ }
8109
+
7898
8110
  .gyramais-select-wrapper {
7899
8111
  position:
7900
8112
  relative;
@@ -8665,107 +8877,1079 @@ h6 {
8665
8877
  left: 0.5rem !important
8666
8878
  }
8667
8879
 
8668
- .gyramais-status-tag {
8669
-
8670
- display: inline-flex;
8671
-
8672
- min-width: 110px;
8673
-
8674
- align-items: center;
8675
-
8676
- justify-content: center;
8677
-
8678
- white-space: nowrap;
8679
-
8680
- border-radius: 9999px;
8681
-
8682
- padding-left: 10px;
8683
-
8684
- padding-right: 10px;
8685
-
8686
- padding-top: 4px;
8687
-
8688
- padding-bottom: 4px;
8689
-
8690
- font-size: 0.75rem;
8691
-
8692
- line-height: 1rem;
8693
-
8694
- font-weight: 600;
8695
-
8696
- line-height: 20px;
8880
+ /* PickerPopover — shell base de popovers tipo command-palette / tag-picker. */
8697
8881
 
8698
- letter-spacing: 0.02em
8699
- /* Fixed min-width so pills align in lists ("Aprovado", "Indisponível",
8700
- "Não executado" all share the same horizontal footprint). Long labels
8701
- still grow naturally. */
8882
+ /* Container override do Popover base — chrome flat com elevação de dropdown */
8883
+ .gyramais-popover-content.gyramais-picker-popover {
8884
+ overflow:
8885
+ hidden;
8886
+ border-radius:
8887
+ 12px;
8888
+ border-width:
8889
+ 1px;
8890
+ border-color:
8891
+ var(--color-border-secondary);
8892
+ --tw-bg-opacity:
8893
+ 1;
8894
+ background-color:
8895
+ rgb(255 255 255 / var(--tw-bg-opacity, 1));
8896
+ padding:
8897
+ 0px;
8898
+ box-shadow:
8899
+ 0 4px 12px -2px rgba(0,0,0,0.06),
8900
+ 0 2px 6px -2px rgba(0,0,0,0.04) !important;
8702
8901
  }
8703
8902
 
8704
- .gyramais-status-tag-icon {
8705
-
8706
- margin-right: 4px;
8707
-
8708
- display: inline-flex;
8709
-
8710
- align-items: center;
8711
-
8712
- font-size: 12px;
8713
-
8714
- line-height: 1
8903
+ .gyramais-picker-popover-inner {
8904
+ display:
8905
+ flex;
8906
+ flex-direction:
8907
+ column;
8908
+ overflow:
8909
+ hidden;
8715
8910
  }
8716
8911
 
8717
- .gyramais-switch {
8718
- position: relative;
8719
- height: 25px;
8720
- width: 44px;
8721
- border-radius: 999999px;
8722
- border-width: 1px;
8723
- border-color: var(--border-color);
8724
- background-color: var(--dark-button-color);
8725
- transition-duration: 300ms;
8726
- animation-duration: 300ms
8727
- }
8728
- .gyramais-switch[data-state='checked'],
8729
- .gyramais-switch:hover {
8730
- background-color: var(--primary-button-color)
8912
+ /* ── Header ──────────────────────────────────────────────────────────── */
8913
+ .gyramais-picker-popover-head {
8914
+ border-bottom-width:
8915
+ 1px;
8916
+ border-color:
8917
+ var(--color-border-subtle);
8918
+ padding-left:
8919
+ 14px;
8920
+ padding-right:
8921
+ 14px;
8922
+ padding-top:
8923
+ 12px;
8924
+ padding-bottom:
8925
+ 12px;
8731
8926
  }
8732
- .gyramais-switch:disabled {
8733
- opacity: 0.5;
8734
- --tw-grayscale: grayscale(100%);
8735
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
8927
+ .gyramais-picker-popover-title {
8928
+ padding-bottom:
8929
+ 10px;
8930
+ font-size:
8931
+ 13px;
8932
+ font-weight:
8933
+ 600;
8934
+ line-height:
8935
+ 1.3;
8936
+ color:
8937
+ var(--color-text-primary);
8736
8938
  }
8737
-
8738
- .gyramais-switch .switch-thumb {
8739
- display: block;
8740
- height: 21px;
8741
- width: 21px;
8742
- --tw-translate-x: 2px;
8743
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
8744
- border-radius: 9999px;
8745
- --tw-bg-opacity: 1;
8746
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
8747
- transition-property: transform 100ms;
8748
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
8749
- transition-duration: 150ms;
8750
- will-change: transform
8939
+ .gyramais-picker-popover-head:has(.gyramais-picker-popover-title:empty) .gyramais-picker-popover-title {
8940
+ display:
8941
+ none;
8942
+ padding-bottom:
8943
+ 0px;
8751
8944
  }
8752
- .gyramais-switch .switch-thumb[data-state='checked'] {
8753
- --tw-translate-x: 19px;
8754
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
8945
+ .gyramais-picker-popover-head-row {
8946
+ display:
8947
+ flex;
8948
+ align-items:
8949
+ center;
8950
+ gap:
8951
+ 10px;
8755
8952
  }
8756
- /* Sync chip — pill that surfaces the freshness of an external sync */
8757
8953
 
8758
- .gyramais-sync-chip {
8759
- display: inline-flex;
8760
- height: -moz-fit-content;
8761
- height: fit-content;
8762
- width: -moz-fit-content;
8763
- width: fit-content;
8764
- align-items: center;
8765
- gap: 6px;
8766
- white-space: nowrap;
8767
- border-radius: 9999px;
8768
- border-width: 1px;
8954
+ .gyramais-picker-popover-search {
8955
+ display:
8956
+ flex;
8957
+ min-width:
8958
+ 0px;
8959
+ flex:
8960
+ 1 1 0%;
8961
+ align-items:
8962
+ center;
8963
+ gap:
8964
+ 8px;
8965
+ border-radius:
8966
+ 8px;
8967
+ border-width:
8968
+ 1px;
8969
+ border-color:
8970
+ var(--color-border-subtle);
8971
+ background-color:
8972
+ var(--color-surface-secondary);
8973
+ padding-left:
8974
+ 10px;
8975
+ padding-right:
8976
+ 10px;
8977
+ padding-top:
8978
+ 8px;
8979
+ padding-bottom:
8980
+ 8px;
8981
+ transition:
8982
+ border-color var(--duration-normal) var(--ease-default),
8983
+ box-shadow var(--duration-normal) var(--ease-default),
8984
+ background var(--duration-normal) var(--ease-default);
8985
+ }
8986
+ .gyramais-picker-popover-search:focus-within {
8987
+ border-color:
8988
+ var(--gyra-blue);
8989
+ --tw-bg-opacity:
8990
+ 1;
8991
+ background-color:
8992
+ rgb(255 255 255 / var(--tw-bg-opacity, 1));
8993
+ box-shadow: 0 0 0 3px rgba(18,86,255,0.12);
8994
+ }
8995
+ .gyramais-picker-popover-search-icon {
8996
+ font-size: 16px !important;
8997
+ color: var(--color-text-tertiary);
8998
+ flex-shrink: 0;
8999
+ }
9000
+ .gyramais-picker-popover-search input {
9001
+ min-width:
9002
+ 0px;
9003
+ flex:
9004
+ 1 1 0%;
9005
+ border-width:
9006
+ 0px;
9007
+ background-color:
9008
+ transparent;
9009
+ padding:
9010
+ 0px;
9011
+ font-size:
9012
+ 14px;
9013
+ color:
9014
+ var(--color-text-primary);
9015
+ outline:
9016
+ 2px solid transparent;
9017
+ outline-offset:
9018
+ 2px;
9019
+ font-family: inherit;
9020
+ }
9021
+ .gyramais-picker-popover-search input::-moz-placeholder {
9022
+ color: var(--color-text-quaternary);
9023
+ }
9024
+ .gyramais-picker-popover-search input::placeholder {
9025
+ color: var(--color-text-quaternary);
9026
+ }
9027
+ .gyramais-picker-popover-accessory {
9028
+ display:
9029
+ flex;
9030
+ flex-shrink:
9031
+ 0;
9032
+ align-items:
9033
+ center;
9034
+ gap:
9035
+ 4px;
9036
+ white-space:
9037
+ nowrap;
9038
+ font-size:
9039
+ 10.5px;
9040
+ color:
9041
+ var(--color-text-quaternary);
9042
+ }
9043
+
9044
+ /* ── Body (scroll list area) ────────────────────────────────────────── */
9045
+ .gyramais-picker-popover-body {
9046
+ min-height:
9047
+ 0px;
9048
+ flex:
9049
+ 1 1 0%;
9050
+ overflow-y:
9051
+ auto;
9052
+ padding-top:
9053
+ 4px;
9054
+ padding-bottom:
9055
+ 4px;
9056
+ }
9057
+
9058
+ /* ── Section (grouped sticky header) ────────────────────────────────── */
9059
+ .gyramais-picker-popover-section + .gyramais-picker-popover-section {
9060
+ padding-top:
9061
+ 4px;
9062
+ }
9063
+ .gyramais-picker-popover-section-head {
9064
+ position:
9065
+ sticky;
9066
+ top:
9067
+ 0px;
9068
+ z-index:
9069
+ 1;
9070
+ display:
9071
+ flex;
9072
+ align-items:
9073
+ center;
9074
+ gap:
9075
+ 8px;
9076
+ --tw-bg-opacity:
9077
+ 1;
9078
+ background-color:
9079
+ rgb(255 255 255 / var(--tw-bg-opacity, 1));
9080
+ padding-left:
9081
+ 14px;
9082
+ padding-right:
9083
+ 14px;
9084
+ padding-top:
9085
+ 10px;
9086
+ padding-bottom:
9087
+ 6px;
9088
+ font-size:
9089
+ 10px;
9090
+ font-weight:
9091
+ 700;
9092
+ text-transform:
9093
+ uppercase;
9094
+ letter-spacing:
9095
+ 0.1em;
9096
+ color:
9097
+ var(--color-text-tertiary);
9098
+ }
9099
+ .gyramais-picker-popover-section-head::after {
9100
+ content: '';
9101
+ flex: 1;
9102
+ height: 1px;
9103
+ background: var(--color-border-subtle);
9104
+ }
9105
+
9106
+ /* ── Footer ─────────────────────────────────────────────────────────── */
9107
+ .gyramais-picker-popover-foot {
9108
+ display:
9109
+ flex;
9110
+ align-items:
9111
+ center;
9112
+ justify-content:
9113
+ space-between;
9114
+ gap:
9115
+ 8px;
9116
+ border-top-width:
9117
+ 1px;
9118
+ border-color:
9119
+ var(--color-border-subtle);
9120
+ background-color:
9121
+ var(--color-surface-secondary);
9122
+ padding-left:
9123
+ 14px;
9124
+ padding-right:
9125
+ 14px;
9126
+ padding-top:
9127
+ 10px;
9128
+ padding-bottom:
9129
+ 10px;
9130
+ font-size:
9131
+ 11px;
9132
+ color:
9133
+ var(--color-text-tertiary);
9134
+ }
9135
+
9136
+ /* MultiSelectPicker — composição sobre PickerPopover com search +
9137
+ selected chips section + checkable list + footer counter/clear. */
9138
+
9139
+ /* ── Selected chips section (entre header e body) ───────────────────── */
9140
+ .gyramais-multi-select-picker-selected {
9141
+ border-bottom-width: 1px;
9142
+ border-color: var(--color-border-subtle);
9143
+ background-color: var(--color-surface-secondary);
9144
+ padding-left: 14px;
9145
+ padding-right: 14px;
9146
+ padding-top: 12px;
9147
+ padding-bottom: 12px;
9148
+ }
9149
+ .gyramais-multi-select-picker-lab {
9150
+ margin-bottom: 8px;
9151
+ font-size: 10px;
9152
+ font-weight: 700;
9153
+ text-transform: uppercase;
9154
+ letter-spacing: 0.08em;
9155
+ color: var(--color-text-tertiary);
9156
+ }
9157
+ .gyramais-multi-select-picker-chips {
9158
+ display: flex;
9159
+ flex-wrap: wrap;
9160
+ gap: 4px;
9161
+ }
9162
+
9163
+ .gyramais-multi-select-picker-chip {
9164
+ display: inline-flex;
9165
+ align-items: center;
9166
+ gap: 4px;
9167
+ border-radius: 9999px;
9168
+ border-width: 1px;
9169
+ border-color: var(--color-border-subtle);
9170
+ --tw-bg-opacity: 1;
9171
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
9172
+ padding-top: 3px;
9173
+ padding-bottom: 3px;
9174
+ padding-left: 8px;
9175
+ padding-right: 4px;
9176
+ font-size: 11px;
9177
+ color: var(--color-text-primary);
9178
+ font-family: var(--font-mono);
9179
+ }
9180
+ .gyramais-multi-select-picker-chip-x {
9181
+ display: inline-flex;
9182
+ height: 16px;
9183
+ width: 16px;
9184
+ cursor: pointer;
9185
+ align-items: center;
9186
+ justify-content: center;
9187
+ border-radius: 9999px;
9188
+ border-width: 0px;
9189
+ background-color: transparent;
9190
+ color: var(--color-text-tertiary);
9191
+ transition:
9192
+ background var(--duration-normal) var(--ease-default),
9193
+ color var(--duration-normal) var(--ease-default);
9194
+ }
9195
+ .gyramais-multi-select-picker-chip-x:hover {
9196
+ background: rgba(255,59,48,0.10);
9197
+ color: var(--danger-color);
9198
+ }
9199
+ .gyramais-multi-select-picker-chip-x svg {
9200
+ width: 10px;
9201
+ height: 10px;
9202
+ }
9203
+
9204
+ .gyramais-multi-select-picker-chip-more {
9205
+ display: inline-flex;
9206
+ cursor: pointer;
9207
+ align-items: center;
9208
+ border-radius: 9999px;
9209
+ border-width: 1px;
9210
+ border-color: var(--color-border-strong);
9211
+ background-color: transparent;
9212
+ padding-left: 10px;
9213
+ padding-right: 10px;
9214
+ padding-top: 3px;
9215
+ padding-bottom: 3px;
9216
+ font-size: 11.5px;
9217
+ color: var(--color-text-tertiary);
9218
+ font-family: inherit;
9219
+ transition:
9220
+ color var(--duration-normal) var(--ease-default),
9221
+ border-color var(--duration-normal) var(--ease-default);
9222
+ }
9223
+ .gyramais-multi-select-picker-chip-more:hover {
9224
+ color: var(--color-text-primary);
9225
+ border-color: var(--color-text-tertiary);
9226
+ }
9227
+
9228
+ /* ── Option rows ─────────────────────────────────────────────────── */
9229
+ .gyramais-multi-select-picker-opt {
9230
+ display: flex;
9231
+ width: 100%;
9232
+ cursor: pointer;
9233
+ align-items: center;
9234
+ gap: 10px;
9235
+ border-width: 0px;
9236
+ background-color: transparent;
9237
+ padding-left: 14px;
9238
+ padding-right: 14px;
9239
+ padding-top: 9px;
9240
+ padding-bottom: 9px;
9241
+ text-align: left;
9242
+ font-family: inherit;
9243
+ transition: background var(--duration-normal) var(--ease-default);
9244
+ }
9245
+ .gyramais-multi-select-picker-opt:hover {
9246
+ background: var(--color-surface-secondary);
9247
+ }
9248
+ .gyramais-multi-select-picker-opt:disabled {
9249
+ pointer-events: none;
9250
+ opacity: 0.45;
9251
+ }
9252
+
9253
+ .gyramais-multi-select-picker-check {
9254
+ display: inline-flex;
9255
+ height: 16px;
9256
+ width: 16px;
9257
+ flex-shrink: 0;
9258
+ align-items: center;
9259
+ justify-content: center;
9260
+ border-radius: 4px;
9261
+ border-width: 1.5px;
9262
+ border-color: var(--color-border-strong);
9263
+ transition:
9264
+ background var(--duration-normal) var(--ease-default),
9265
+ border-color var(--duration-normal) var(--ease-default);
9266
+ }
9267
+ .gyramais-multi-select-picker-check svg {
9268
+ width: 11px;
9269
+ height: 11px;
9270
+ color: #fff;
9271
+ opacity: 0;
9272
+ transition: opacity 150ms ease;
9273
+ }
9274
+ .gyramais-multi-select-picker-opt.is-on .gyramais-multi-select-picker-check {
9275
+ background: var(--gyra-blue);
9276
+ border-color: var(--gyra-blue);
9277
+ }
9278
+ .gyramais-multi-select-picker-opt.is-on .gyramais-multi-select-picker-check svg {
9279
+ opacity: 1;
9280
+ }
9281
+
9282
+ .gyramais-multi-select-picker-opt-body {
9283
+ display: flex;
9284
+ min-width: 0px;
9285
+ flex: 1 1 0%;
9286
+ align-items: baseline;
9287
+ gap: 8px;
9288
+ overflow: hidden;
9289
+ }
9290
+ .gyramais-multi-select-picker-opt-code {
9291
+ flex-shrink: 0;
9292
+ font-size: 12px;
9293
+ color: var(--color-text-tertiary);
9294
+ font-family: var(--font-mono);
9295
+ }
9296
+ .gyramais-multi-select-picker-opt.is-on .gyramais-multi-select-picker-opt-code {
9297
+ color: var(--color-text-secondary);
9298
+ }
9299
+ .gyramais-multi-select-picker-opt-desc {
9300
+ overflow: hidden;
9301
+ text-overflow: ellipsis;
9302
+ white-space: nowrap;
9303
+ font-size: 13px;
9304
+ color: var(--color-text-primary);
9305
+ }
9306
+
9307
+ .gyramais-multi-select-picker-empty {
9308
+ padding-left: 14px;
9309
+ padding-right: 14px;
9310
+ padding-top: 24px;
9311
+ padding-bottom: 24px;
9312
+ text-align: center;
9313
+ font-size: 12.5px;
9314
+ color: var(--color-text-tertiary);
9315
+ }
9316
+
9317
+ /* ── Footer overrides ─────────────────────────────────────────────── */
9318
+ .gyramais-multi-select-picker-count {
9319
+ font-family: var(--font-mono);
9320
+ font-size: 11.5px;
9321
+ font-weight: 500;
9322
+ color: var(--color-text-tertiary);
9323
+ }
9324
+ .gyramais-multi-select-picker-clear {
9325
+ cursor: pointer;
9326
+ border-radius: 4px;
9327
+ border-width: 0px;
9328
+ background-color: transparent;
9329
+ padding-left: 8px;
9330
+ padding-right: 8px;
9331
+ padding-top: 4px;
9332
+ padding-bottom: 4px;
9333
+ font-size: 12px;
9334
+ font-weight: 500;
9335
+ color: var(--gyra-blue);
9336
+ font-family: inherit;
9337
+ transition: background var(--duration-normal) var(--ease-default);
9338
+ }
9339
+ .gyramais-multi-select-picker-clear:hover {
9340
+ background: var(--gyra-blue-light);
9341
+ }
9342
+
9343
+ /* RuleSearchPicker — composição Apple Spotlight-style sobre PickerPopover.
9344
+ Opções com hover/focus → blue-subtle, tag opcional à direita, ↵ revela
9345
+ no hover/focus. */
9346
+
9347
+ .gyramais-rule-search-picker-body {
9348
+ padding-top: 4px;
9349
+ padding-bottom: 4px;
9350
+ }
9351
+
9352
+ .gyramais-rule-search-picker-opt {
9353
+ display: flex;
9354
+ width: 100%;
9355
+ cursor: pointer;
9356
+ align-items: center;
9357
+ gap: 10px;
9358
+ border-width: 0px;
9359
+ background-color: transparent;
9360
+ padding-left: 14px;
9361
+ padding-right: 14px;
9362
+ padding-top: 9px;
9363
+ padding-bottom: 9px;
9364
+ text-align: left;
9365
+ font-family: inherit;
9366
+ transition: background var(--duration-normal) var(--ease-default);
9367
+ }
9368
+ .gyramais-rule-search-picker-opt:hover,
9369
+ .gyramais-rule-search-picker-opt.is-focus {
9370
+ background: var(--gyra-blue-subtle);
9371
+ }
9372
+ .gyramais-rule-search-picker-opt:disabled {
9373
+ pointer-events: none;
9374
+ opacity: 0.45;
9375
+ }
9376
+
9377
+ .gyramais-rule-search-picker-opt-icon {
9378
+ display: inline-flex;
9379
+ height: 24px;
9380
+ width: 24px;
9381
+ flex-shrink: 0;
9382
+ align-items: center;
9383
+ justify-content: center;
9384
+ border-radius: 6px;
9385
+ background-color: var(--color-surface-secondary);
9386
+ color: var(--color-text-tertiary);
9387
+ transition:
9388
+ background var(--duration-normal) var(--ease-default),
9389
+ color var(--duration-normal) var(--ease-default);
9390
+ }
9391
+ .gyramais-rule-search-picker-opt:hover .gyramais-rule-search-picker-opt-icon,
9392
+ .gyramais-rule-search-picker-opt.is-focus .gyramais-rule-search-picker-opt-icon {
9393
+ background: var(--gyra-blue-light);
9394
+ color: var(--gyra-blue);
9395
+ }
9396
+ .gyramais-rule-search-picker-opt-icon svg {
9397
+ width: 13px;
9398
+ height: 13px;
9399
+ }
9400
+
9401
+ .gyramais-rule-search-picker-opt-body {
9402
+ min-width: 0px;
9403
+ flex: 1 1 0%;
9404
+ }
9405
+ .gyramais-rule-search-picker-opt-t {
9406
+ display: block;
9407
+ overflow: hidden;
9408
+ text-overflow: ellipsis;
9409
+ white-space: nowrap;
9410
+ font-size: 13px;
9411
+ color: var(--color-text-primary);
9412
+ }
9413
+ .gyramais-rule-search-picker-opt-s {
9414
+ margin-top: 1px;
9415
+ display: block;
9416
+ overflow: hidden;
9417
+ text-overflow: ellipsis;
9418
+ white-space: nowrap;
9419
+ font-size: 11.5px;
9420
+ color: var(--color-text-tertiary);
9421
+ }
9422
+
9423
+ .gyramais-rule-search-picker-opt-tag {
9424
+ display: inline-flex;
9425
+ flex-shrink: 0;
9426
+ align-items: center;
9427
+ border-radius: 4px;
9428
+ background-color: var(--gyra-blue-light);
9429
+ padding-left: 7px;
9430
+ padding-right: 7px;
9431
+ padding-top: 2px;
9432
+ padding-bottom: 2px;
9433
+ font-size: 10px;
9434
+ font-weight: 700;
9435
+ text-transform: uppercase;
9436
+ letter-spacing: 0.06em;
9437
+ color: var(--gyra-blue);
9438
+ }
9439
+
9440
+ .gyramais-rule-search-picker-enter {
9441
+ flex-shrink: 0;
9442
+ font-size: 11px;
9443
+ color: var(--color-text-quaternary);
9444
+ opacity: 0;
9445
+ font-family: var(--font-mono);
9446
+ transition: opacity var(--duration-normal) var(--ease-default);
9447
+ }
9448
+ .gyramais-rule-search-picker-opt:hover .gyramais-rule-search-picker-enter,
9449
+ .gyramais-rule-search-picker-opt.is-focus .gyramais-rule-search-picker-enter {
9450
+ opacity: 1;
9451
+ }
9452
+
9453
+ .gyramais-rule-search-picker-empty {
9454
+ padding-left: 14px;
9455
+ padding-right: 14px;
9456
+ padding-top: 28px;
9457
+ padding-bottom: 28px;
9458
+ text-align: center;
9459
+ font-size: 12.5px;
9460
+ color: var(--color-text-tertiary);
9461
+ }
9462
+
9463
+ /* ── Footer hints ───────────────────────────────────────────────────── */
9464
+ .gyramais-rule-search-picker-keys {
9465
+ display: inline-flex;
9466
+ gap: 12px;
9467
+ font-size: 11px;
9468
+ color: var(--color-text-tertiary);
9469
+ }
9470
+ .gyramais-rule-search-picker-keys span {
9471
+ display: inline-flex;
9472
+ align-items: center;
9473
+ gap: 4px;
9474
+ }
9475
+ .gyramais-rule-search-picker-keys kbd,
9476
+ .gyramais-popover-content.gyramais-picker-popover .gyramais-picker-popover-accessory kbd {
9477
+ display: inline-flex;
9478
+ height: 16px;
9479
+ align-items: center;
9480
+ justify-content: center;
9481
+ border-radius: 4px;
9482
+ border-width: 1px;
9483
+ border-color: var(--color-border-subtle);
9484
+ --tw-bg-opacity: 1;
9485
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
9486
+ padding-left: 4px;
9487
+ padding-right: 4px;
9488
+ font-size: 10px;
9489
+ font-weight: 600;
9490
+ color: var(--color-text-tertiary);
9491
+ min-width: 16px;
9492
+ font-family: var(--font-mono);
9493
+ }
9494
+
9495
+ .gyramais-rule-search-picker-count {
9496
+ font-family: var(--font-mono);
9497
+ font-size: 11.5px;
9498
+ color: var(--color-text-tertiary);
9499
+ }
9500
+
9501
+ /* OperatorPicker — popover compacto, sem busca, lista flat. */
9502
+
9503
+ .gyramais-popover-content.gyramais-operator-picker {
9504
+ overflow:
9505
+ hidden;
9506
+ border-radius:
9507
+ 10px;
9508
+ border-width:
9509
+ 1px;
9510
+ border-color:
9511
+ var(--color-border-secondary);
9512
+ --tw-bg-opacity:
9513
+ 1;
9514
+ background-color:
9515
+ rgb(255 255 255 / var(--tw-bg-opacity, 1));
9516
+ padding:
9517
+ 4px;
9518
+ box-shadow:
9519
+ 0 4px 12px -2px rgba(0,0,0,0.06),
9520
+ 0 2px 6px -2px rgba(0,0,0,0.04) !important;
9521
+ width: 220px;
9522
+ }
9523
+
9524
+ .gyramais-operator-picker-list {
9525
+ display:
9526
+ flex;
9527
+ flex-direction:
9528
+ column;
9529
+ }
9530
+
9531
+ .gyramais-operator-picker-item {
9532
+ display:
9533
+ flex;
9534
+ width:
9535
+ 100%;
9536
+ cursor:
9537
+ pointer;
9538
+ align-items:
9539
+ center;
9540
+ gap:
9541
+ 12px;
9542
+ border-radius:
9543
+ 6px;
9544
+ border-width:
9545
+ 0px;
9546
+ background-color:
9547
+ transparent;
9548
+ padding-left:
9549
+ 10px;
9550
+ padding-right:
9551
+ 10px;
9552
+ padding-top:
9553
+ 8px;
9554
+ padding-bottom:
9555
+ 8px;
9556
+ text-align:
9557
+ left;
9558
+ font-family: inherit;
9559
+ transition: background var(--duration-normal) var(--ease-default);
9560
+ }
9561
+ .gyramais-operator-picker-item:hover {
9562
+ background: var(--gyra-blue-subtle);
9563
+ }
9564
+ .gyramais-operator-picker-item:disabled {
9565
+ pointer-events:
9566
+ none;
9567
+ opacity:
9568
+ 0.45;
9569
+ }
9570
+ .gyramais-operator-picker-item.is-on {
9571
+ background: var(--color-surface-secondary);
9572
+ }
9573
+
9574
+ .gyramais-operator-picker-sym {
9575
+ display:
9576
+ inline-flex;
9577
+ width:
9578
+ 22px;
9579
+ flex-shrink:
9580
+ 0;
9581
+ align-items:
9582
+ center;
9583
+ justify-content:
9584
+ center;
9585
+ text-align:
9586
+ center;
9587
+ font-size:
9588
+ 16px;
9589
+ font-weight:
9590
+ 700;
9591
+ color:
9592
+ var(--color-text-secondary);
9593
+ font-family: var(--font-mono);
9594
+ transition: color var(--duration-normal) var(--ease-default);
9595
+ }
9596
+ .gyramais-operator-picker-item:hover .gyramais-operator-picker-sym,
9597
+ .gyramais-operator-picker-item.is-on .gyramais-operator-picker-sym {
9598
+ color: var(--gyra-blue);
9599
+ }
9600
+
9601
+ .gyramais-operator-picker-lab {
9602
+ flex:
9603
+ 1 1 0%;
9604
+ font-size:
9605
+ 13px;
9606
+ color:
9607
+ var(--color-text-primary);
9608
+ }
9609
+
9610
+ .gyramais-operator-picker-check {
9611
+ color: var(--gyra-blue) !important;
9612
+ font-size: 14px !important;
9613
+ flex-shrink: 0;
9614
+ }
9615
+
9616
+ /* ContextMenu — popover de settings da entidade. */
9617
+
9618
+ .gyramais-popover-content.gyramais-context-menu {
9619
+ overflow:
9620
+ hidden;
9621
+ border-radius:
9622
+ 12px;
9623
+ border-width:
9624
+ 1px;
9625
+ border-color:
9626
+ var(--color-border-secondary);
9627
+ --tw-bg-opacity:
9628
+ 1;
9629
+ background-color:
9630
+ rgb(255 255 255 / var(--tw-bg-opacity, 1));
9631
+ padding:
9632
+ 0px;
9633
+ box-shadow:
9634
+ 0 4px 12px -2px rgba(0,0,0,0.06),
9635
+ 0 2px 6px -2px rgba(0,0,0,0.04) !important;
9636
+ }
9637
+
9638
+ .gyramais-context-menu-inner {
9639
+ display:
9640
+ flex;
9641
+ flex-direction:
9642
+ column;
9643
+ padding:
9644
+ 14px;
9645
+ }
9646
+
9647
+ /* ── Section ─────────────────────────────────────────────────────── */
9648
+ .gyramais-context-menu-section + .gyramais-context-menu-section {
9649
+ margin-top:
9650
+ 14px;
9651
+ }
9652
+ .gyramais-context-menu-section-lab {
9653
+ margin-bottom:
9654
+ 8px;
9655
+ font-size:
9656
+ 10.5px;
9657
+ font-weight:
9658
+ 700;
9659
+ text-transform:
9660
+ uppercase;
9661
+ letter-spacing:
9662
+ 0.08em;
9663
+ color:
9664
+ var(--color-text-tertiary);
9665
+ }
9666
+ .gyramais-context-menu-section-hint {
9667
+ margin-bottom:
9668
+ 12px;
9669
+ font-size:
9670
+ 12px;
9671
+ line-height:
9672
+ 1.45;
9673
+ color:
9674
+ var(--color-text-tertiary);
9675
+ }
9676
+
9677
+ /* ── Divider ─────────────────────────────────────────────────────── */
9678
+ .gyramais-context-menu-divider {
9679
+ margin-top:
9680
+ 12px;
9681
+ margin-bottom:
9682
+ 12px;
9683
+ margin-left:
9684
+ -4px;
9685
+ margin-right:
9686
+ -4px;
9687
+ height:
9688
+ 1px;
9689
+ background-color:
9690
+ var(--color-border-subtle);
9691
+ }
9692
+
9693
+ /* ── RadioGroup + RadioItem ──────────────────────────────────────── */
9694
+ .gyramais-context-menu-radios {
9695
+ display:
9696
+ flex;
9697
+ flex-direction:
9698
+ column;
9699
+ gap:
9700
+ 4px;
9701
+ }
9702
+ .gyramais-context-menu-radio {
9703
+ display:
9704
+ flex;
9705
+ width:
9706
+ 100%;
9707
+ cursor:
9708
+ pointer;
9709
+ align-items:
9710
+ flex-start;
9711
+ gap:
9712
+ 10px;
9713
+ border-radius:
9714
+ 8px;
9715
+ border-width:
9716
+ 1px;
9717
+ border-color:
9718
+ transparent;
9719
+ background-color:
9720
+ transparent;
9721
+ padding:
9722
+ 10px;
9723
+ text-align:
9724
+ left;
9725
+ font-family: inherit;
9726
+ transition:
9727
+ background var(--duration-normal) var(--ease-default),
9728
+ border-color var(--duration-normal) var(--ease-default);
9729
+ }
9730
+ .gyramais-context-menu-radio:hover {
9731
+ background: var(--color-surface-secondary);
9732
+ }
9733
+ .gyramais-context-menu-radio:disabled {
9734
+ pointer-events:
9735
+ none;
9736
+ opacity:
9737
+ 0.45;
9738
+ }
9739
+ .gyramais-context-menu-radio.is-on {
9740
+ background: var(--gyra-blue-subtle);
9741
+ border-color: rgba(18,86,255,0.20);
9742
+ }
9743
+ .gyramais-context-menu-radio-icon {
9744
+ margin-top:
9745
+ 1px;
9746
+ display:
9747
+ inline-flex;
9748
+ height:
9749
+ 18px;
9750
+ width:
9751
+ 18px;
9752
+ flex-shrink:
9753
+ 0;
9754
+ align-items:
9755
+ center;
9756
+ justify-content:
9757
+ center;
9758
+ color:
9759
+ var(--color-text-tertiary);
9760
+ transition: color var(--duration-normal) var(--ease-default);
9761
+ }
9762
+ .gyramais-context-menu-radio-icon svg {
9763
+ width: 16px;
9764
+ height: 16px;
9765
+ }
9766
+ .gyramais-context-menu-radio.is-on .gyramais-context-menu-radio-icon {
9767
+ color: var(--gyra-blue);
9768
+ }
9769
+ .gyramais-context-menu-radio-body {
9770
+ min-width:
9771
+ 0px;
9772
+ flex:
9773
+ 1 1 0%;
9774
+ }
9775
+ .gyramais-context-menu-radio-t {
9776
+ display:
9777
+ block;
9778
+ font-size:
9779
+ 13px;
9780
+ font-weight:
9781
+ 500;
9782
+ line-height:
9783
+ 1.3;
9784
+ color:
9785
+ var(--color-text-primary);
9786
+ }
9787
+ .gyramais-context-menu-radio-s {
9788
+ margin-top:
9789
+ 2px;
9790
+ display:
9791
+ block;
9792
+ font-size:
9793
+ 11.5px;
9794
+ line-height:
9795
+ 1.35;
9796
+ color:
9797
+ var(--color-text-tertiary);
9798
+ }
9799
+
9800
+ /* ── DangerAction ────────────────────────────────────────────────── */
9801
+ .gyramais-context-menu-danger {
9802
+ display:
9803
+ flex;
9804
+ width:
9805
+ 100%;
9806
+ cursor:
9807
+ pointer;
9808
+ align-items:
9809
+ center;
9810
+ gap:
9811
+ 8px;
9812
+ border-radius:
9813
+ 8px;
9814
+ border-width:
9815
+ 0px;
9816
+ background-color:
9817
+ transparent;
9818
+ padding:
9819
+ 8px 10px;
9820
+ text-align:
9821
+ left;
9822
+ font-size:
9823
+ 13px;
9824
+ font-weight:
9825
+ 500;
9826
+ color: var(--danger-color);
9827
+ font-family: inherit;
9828
+ transition: background var(--duration-normal) var(--ease-default);
9829
+ }
9830
+ .gyramais-context-menu-danger:hover {
9831
+ background: rgba(255,59,48,0.08);
9832
+ }
9833
+ .gyramais-context-menu-danger:disabled {
9834
+ pointer-events:
9835
+ none;
9836
+ opacity:
9837
+ 0.45;
9838
+ }
9839
+ .gyramais-context-menu-danger-icon {
9840
+ display:
9841
+ inline-flex;
9842
+ align-items:
9843
+ center;
9844
+ justify-content:
9845
+ center;
9846
+ }
9847
+ .gyramais-context-menu-danger-icon svg {
9848
+ width: 16px;
9849
+ height: 16px;
9850
+ }
9851
+
9852
+ .gyramais-status-tag {
9853
+
9854
+ display: inline-flex;
9855
+
9856
+ min-width: 110px;
9857
+
9858
+ align-items: center;
9859
+
9860
+ justify-content: center;
9861
+
9862
+ white-space: nowrap;
9863
+
9864
+ border-radius: 9999px;
9865
+
9866
+ padding-left: 10px;
9867
+
9868
+ padding-right: 10px;
9869
+
9870
+ padding-top: 4px;
9871
+
9872
+ padding-bottom: 4px;
9873
+
9874
+ font-size: 0.75rem;
9875
+
9876
+ line-height: 1rem;
9877
+
9878
+ font-weight: 600;
9879
+
9880
+ line-height: 20px;
9881
+
9882
+ letter-spacing: 0.02em
9883
+ /* Fixed min-width so pills align in lists ("Aprovado", "Indisponível",
9884
+ "Não executado" all share the same horizontal footprint). Long labels
9885
+ still grow naturally. */
9886
+ }
9887
+
9888
+ .gyramais-status-tag-icon {
9889
+
9890
+ margin-right: 4px;
9891
+
9892
+ display: inline-flex;
9893
+
9894
+ align-items: center;
9895
+
9896
+ font-size: 12px;
9897
+
9898
+ line-height: 1
9899
+ }
9900
+
9901
+ .gyramais-switch {
9902
+ position: relative;
9903
+ height: 25px;
9904
+ width: 44px;
9905
+ border-radius: 999999px;
9906
+ border-width: 1px;
9907
+ border-color: var(--border-color);
9908
+ background-color: var(--dark-button-color);
9909
+ transition-duration: 300ms;
9910
+ animation-duration: 300ms
9911
+ }
9912
+ .gyramais-switch[data-state='checked'],
9913
+ .gyramais-switch:hover {
9914
+ background-color: var(--primary-button-color)
9915
+ }
9916
+ .gyramais-switch:disabled {
9917
+ opacity: 0.5;
9918
+ --tw-grayscale: grayscale(100%);
9919
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
9920
+ }
9921
+
9922
+ .gyramais-switch .switch-thumb {
9923
+ display: block;
9924
+ height: 21px;
9925
+ width: 21px;
9926
+ --tw-translate-x: 2px;
9927
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
9928
+ border-radius: 9999px;
9929
+ --tw-bg-opacity: 1;
9930
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
9931
+ transition-property: transform 100ms;
9932
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
9933
+ transition-duration: 150ms;
9934
+ will-change: transform
9935
+ }
9936
+ .gyramais-switch .switch-thumb[data-state='checked'] {
9937
+ --tw-translate-x: 19px;
9938
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
9939
+ }
9940
+ /* Sync chip — pill that surfaces the freshness of an external sync */
9941
+
9942
+ .gyramais-sync-chip {
9943
+ display: inline-flex;
9944
+ height: -moz-fit-content;
9945
+ height: fit-content;
9946
+ width: -moz-fit-content;
9947
+ width: fit-content;
9948
+ align-items: center;
9949
+ gap: 6px;
9950
+ white-space: nowrap;
9951
+ border-radius: 9999px;
9952
+ border-width: 1px;
8769
9953
  border-color: var(--color-border-secondary);
8770
9954
  background-color: var(--color-surface-secondary);
8771
9955
  padding-left: 10px;
@@ -9427,3 +10611,164 @@ h6 {
9427
10611
  .gyramais-step-sub-title {
9428
10612
  font-size: 0.875rem;
9429
10613
  line-height: 1.25rem}}
10614
+
10615
+ /* TourGuide — spotlight overlay + popover flutuante.
10616
+ z-index 9998/9999 pra ficar acima de drawers, modais, tooltips etc. */
10617
+
10618
+ .gyramais-tourguide {
10619
+ position: fixed;
10620
+ inset: 0;
10621
+ z-index: 9998;
10622
+ pointer-events: none;
10623
+ }
10624
+
10625
+ .gyramais-tourguide__overlay {
10626
+ position: fixed;
10627
+ inset: 0;
10628
+ width: 100vw;
10629
+ height: 100vh;
10630
+ pointer-events: auto;
10631
+ cursor: pointer;
10632
+ }
10633
+
10634
+ .gyramais-tourguide__spotlight-border {
10635
+ animation: gyramais-tg-pulse 2.4s ease-in-out infinite;
10636
+ }
10637
+
10638
+ @keyframes gyramais-tg-pulse {
10639
+ 0%, 100% { opacity: 1; }
10640
+ 50% { opacity: 0.4; }
10641
+ }
10642
+
10643
+ /* ── Popover ── */
10644
+ .gyramais-tourguide__popover {
10645
+ position: fixed;
10646
+ background: #fff;
10647
+ border: 1px solid var(--color-border-secondary, #e8e8ed);
10648
+ border-radius: var(--radius-lg, 12px);
10649
+ padding: 18px 20px 16px;
10650
+ box-shadow:
10651
+ 0 8px 32px -4px rgba(0, 0, 0, 0.12),
10652
+ 0 2px 8px -2px rgba(0, 0, 0, 0.06);
10653
+ z-index: 9999;
10654
+ pointer-events: auto;
10655
+ animation: gyramais-tg-in 180ms ease-out both;
10656
+ /* Em telas baixas (mobile) o conteúdo rola dentro do card em vez de
10657
+ vazar pra fora da viewport. maxHeight é setado inline pelo componente. */
10658
+ overflow-y: auto;
10659
+ box-sizing: border-box;
10660
+ }
10661
+
10662
+ @keyframes gyramais-tg-in {
10663
+ from { opacity: 0; transform: translateY(6px) scale(0.97); }
10664
+ to { opacity: 1; transform: translateY(0) scale(1); }
10665
+ }
10666
+
10667
+ .gyramais-tourguide__step-badge {
10668
+ font-size: 10.5px;
10669
+ font-weight: 700;
10670
+ letter-spacing: 0.08em;
10671
+ text-transform: uppercase;
10672
+ color: var(--gyra-blue, #1256ff);
10673
+ margin-bottom: 7px;
10674
+ }
10675
+
10676
+ .gyramais-tourguide__title {
10677
+ font-size: 15px;
10678
+ font-weight: 700;
10679
+ color: var(--color-text-primary, #1d1d1f);
10680
+ margin: 0 0 8px;
10681
+ line-height: 1.3;
10682
+ }
10683
+
10684
+ .gyramais-tourguide__body {
10685
+ font-size: 13px;
10686
+ color: var(--color-text-secondary, #636366);
10687
+ line-height: 1.55;
10688
+ margin: 0 0 16px;
10689
+ }
10690
+
10691
+ /* ── Footer ── */
10692
+ .gyramais-tourguide__footer {
10693
+ display: flex;
10694
+ align-items: center;
10695
+ justify-content: space-between;
10696
+ gap: 12px;
10697
+ }
10698
+
10699
+ .gyramais-tourguide__dots {
10700
+ display: flex;
10701
+ gap: 5px;
10702
+ align-items: center;
10703
+ }
10704
+
10705
+ .gyramais-tourguide__dot {
10706
+ width: 6px;
10707
+ height: 6px;
10708
+ border-radius: 999px;
10709
+ border: none;
10710
+ background: var(--color-border-primary, #d2d2d7);
10711
+ cursor: pointer;
10712
+ padding: 0;
10713
+ transition: all 200ms ease;
10714
+ flex-shrink: 0;
10715
+ }
10716
+
10717
+ .gyramais-tourguide__dot--active {
10718
+ background: var(--gyra-blue, #1256ff);
10719
+ width: 18px;
10720
+ }
10721
+
10722
+ .gyramais-tourguide__actions {
10723
+ display: flex;
10724
+ gap: 6px;
10725
+ align-items: center;
10726
+ }
10727
+
10728
+ .gyramais-tourguide__btn-skip {
10729
+ padding: 6px 10px;
10730
+ border: none;
10731
+ background: none;
10732
+ color: var(--color-text-tertiary, #8e8e93);
10733
+ font-size: 12.5px;
10734
+ cursor: pointer;
10735
+ border-radius: var(--radius-sm, 6px);
10736
+ transition: color 150ms ease;
10737
+ font-family: inherit;
10738
+ }
10739
+ .gyramais-tourguide__btn-skip:hover {
10740
+ color: var(--color-text-secondary, #636366);
10741
+ }
10742
+
10743
+ .gyramais-tourguide__btn-prev {
10744
+ padding: 6px 12px;
10745
+ border: 1.5px solid var(--color-border-secondary, #e8e8ed);
10746
+ background: #fff;
10747
+ color: var(--color-text-primary, #1d1d1f);
10748
+ font-size: 12.5px;
10749
+ font-weight: 600;
10750
+ cursor: pointer;
10751
+ border-radius: var(--radius-sm, 6px);
10752
+ transition: background 150ms ease, border-color 150ms ease;
10753
+ font-family: inherit;
10754
+ }
10755
+ .gyramais-tourguide__btn-prev:hover {
10756
+ background: var(--color-surface-secondary, #fafafa);
10757
+ border-color: var(--color-border-primary, #d2d2d7);
10758
+ }
10759
+
10760
+ .gyramais-tourguide__btn-next {
10761
+ padding: 6px 14px;
10762
+ border: none;
10763
+ background: var(--gyra-blue, #1256ff);
10764
+ color: #fff;
10765
+ font-size: 12.5px;
10766
+ font-weight: 700;
10767
+ cursor: pointer;
10768
+ border-radius: var(--radius-sm, 6px);
10769
+ transition: background 150ms ease;
10770
+ font-family: inherit;
10771
+ }
10772
+ .gyramais-tourguide__btn-next:hover {
10773
+ background: var(--gyra-blue-hover, #2f5dcb);
10774
+ }