flexdesk 0.17.9 → 0.17.11

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.
package/dist/flexdesk.css CHANGED
@@ -734,7 +734,7 @@ body.twm-dt-col-resizing {
734
734
  second keeps the readonly tables, which hover never claimed, working. */
735
735
  .twm-preview-table:not(.twm-preview-table--readonly) tbody tr.selected td,
736
736
  .twm-preview-table tbody tr.selected td {
737
- background: var(--state-selected, rgba(0, 122, 204, 0.15));
737
+ background: var(--state-selected);
738
738
  }
739
739
  /* ── 0.5.0 DataTable options. Each rule below matches only a class or an
740
740
  * attribute a 0.5.0 option sets, so a table that asks for none of them is
@@ -785,7 +785,7 @@ body.twm-dt-col-resizing {
785
785
  /* `activeRow` — the row that is OPEN. A left edge, not a background: hover
786
786
  * and selection keep theirs. */
787
787
  .twm-preview-table tbody tr.twm-dt-row--active > td:first-child {
788
- box-shadow: inset 2px 0 0 0 var(--accent-bright, #007acc);
788
+ box-shadow: inset 2px 0 0 0 var(--accent-bright);
789
789
  }
790
790
  /* STORY-0016 `selectToggle` / `selectMode` — the select column. Narrow, never
791
791
  * the time column (it is the first child, so the time rules reach it: (0,3,2)
@@ -853,17 +853,17 @@ body.twm-dt-col-resizing {
853
853
  }
854
854
  .twm-preview-table.twm-dt--select th.twm-dt-select-cell .twm-dt-select-toggle:focus-visible {
855
855
  opacity: 1;
856
- outline: 1px solid var(--accent-bright, #007acc);
856
+ outline: 1px solid var(--accent-bright);
857
857
  }
858
858
  /* STORY-0003 `selectionMode: 'cells'` — the range is a tint on its cells, the
859
859
  * cursor a ring inside its cell (inset, so it moves no column by a pixel). A
860
860
  * cell being edited gives its padding to the editor; a commit still out is
861
861
  * dimmed, and a refused one carries a red ring and its message as the title. */
862
862
  .twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--selected {
863
- background: var(--state-selected, rgba(0, 122, 204, 0.15));
863
+ background: var(--state-selected);
864
864
  }
865
865
  .twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--cursor {
866
- box-shadow: inset 0 0 0 2px var(--accent-bright, #007acc);
866
+ box-shadow: inset 0 0 0 2px var(--accent-bright);
867
867
  }
868
868
  .twm-preview-table.twm-dt--cells:focus {
869
869
  outline: none;
@@ -878,7 +878,7 @@ body.twm-dt-col-resizing {
878
878
  margin: 0;
879
879
  padding: 2px 6px;
880
880
  border: 0;
881
- outline: 2px solid var(--accent-bright, #007acc);
881
+ outline: 2px solid var(--accent-bright);
882
882
  outline-offset: -2px;
883
883
  background: var(--surface-well, #1e1e1e);
884
884
  color: inherit;
@@ -905,7 +905,7 @@ body.twm-dt-col-resizing {
905
905
  }
906
906
  /* STORY-0088 `staged`: a value typed and not yet committed. */
907
907
  .twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--staged {
908
- background: color-mix(in srgb, var(--accent-bright, #007acc) 16%, transparent);
908
+ background: color-mix(in srgb, var(--accent-bright) 16%, transparent);
909
909
  }
910
910
  /* STORY-0089 `fillHandle`: a square on the range's corner cell, the cells a
911
911
  * drag covers dashed, and a cell the fill skipped (not editable) hatched. */
@@ -919,14 +919,14 @@ body.twm-dt-col-resizing {
919
919
  width: 7px;
920
920
  height: 7px;
921
921
  box-sizing: border-box;
922
- background: var(--accent-bright, #007acc);
922
+ background: var(--accent-bright);
923
923
  border: 1px solid var(--surface-well, #1e1e1e);
924
924
  cursor: crosshair;
925
925
  z-index: 1;
926
926
  touch-action: none;
927
927
  }
928
928
  .twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--fill-preview {
929
- outline: 1px dashed var(--accent-bright, #007acc);
929
+ outline: 1px dashed var(--accent-bright);
930
930
  outline-offset: -1px;
931
931
  }
932
932
  .twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--fill-skipped {
@@ -963,10 +963,10 @@ body.twm-dt-col-resizing {
963
963
  opacity: 0.5;
964
964
  }
965
965
  .twm-preview-table th.twm-dt-col--drop {
966
- box-shadow: inset 2px 0 0 0 var(--accent-bright, #007acc);
966
+ box-shadow: inset 2px 0 0 0 var(--accent-bright);
967
967
  }
968
968
  .twm-preview-table th.twm-dt-col--drop.twm-dt-col--drop-after {
969
- box-shadow: inset -2px 0 0 0 var(--accent-bright, #007acc);
969
+ box-shadow: inset -2px 0 0 0 var(--accent-bright);
970
970
  }
971
971
  /* STORY-0066 `columnGroups` — the group row is a table of its own above the
972
972
  * header table (`twm-dt-groups`), its `<col>`s copied from the header's widths;
@@ -1029,7 +1029,7 @@ body.twm-dt-col-resizing {
1029
1029
  .twm-preview-table .twm-dt-group__action:focus-visible,
1030
1030
  .twm-preview-table .twm-dt-col-action:focus-visible {
1031
1031
  opacity: 1;
1032
- outline: 1px solid var(--accent-bright, #007acc);
1032
+ outline: 1px solid var(--accent-bright);
1033
1033
  }
1034
1034
  .twm-preview-table th.twm-dt-col--placeholder,
1035
1035
  .twm-preview-table td.twm-dt-cell--placeholder {
@@ -1095,16 +1095,16 @@ body.twm-dt-col-resizing {
1095
1095
  }
1096
1096
  .twm-preview-table.twm-dt-crosstab:not(.twm-preview-table--readonly) tbody tr.selected td.twm-dt-pin,
1097
1097
  .twm-preview-table.twm-dt-crosstab tbody tr.selected td.twm-dt-pin {
1098
- --twm-dt-pin-state: linear-gradient(var(--state-selected, rgba(0, 122, 204, 0.15)), var(--state-selected, rgba(0, 122, 204, 0.15)));
1098
+ --twm-dt-pin-state: linear-gradient(var(--state-selected), var(--state-selected));
1099
1099
  }
1100
1100
  .twm-preview-table.twm-dt-crosstab.twm-dt--clickable tbody tr:not(.twm-dt-spacer):not(.data-table__empty-row):not(.selected):hover td.twm-dt-pin {
1101
1101
  --twm-dt-pin-state: linear-gradient(var(--state-hover, rgba(255, 255, 255, 0.05)), var(--state-hover, rgba(255, 255, 255, 0.05)));
1102
1102
  }
1103
1103
  .twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--selected {
1104
- --twm-dt-pin-state: linear-gradient(var(--state-selected, rgba(0, 122, 204, 0.15)), var(--state-selected, rgba(0, 122, 204, 0.15)));
1104
+ --twm-dt-pin-state: linear-gradient(var(--state-selected), var(--state-selected));
1105
1105
  }
1106
1106
  .twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--staged {
1107
- --twm-dt-pin-state: linear-gradient(color-mix(in srgb, var(--accent-bright, #007acc) 16%, transparent), color-mix(in srgb, var(--accent-bright, #007acc) 16%, transparent));
1107
+ --twm-dt-pin-state: linear-gradient(color-mix(in srgb, var(--accent-bright) 16%, transparent), color-mix(in srgb, var(--accent-bright) 16%, transparent));
1108
1108
  }
1109
1109
  .twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--fill-skipped {
1110
1110
  --twm-dt-pin-mark: repeating-linear-gradient(45deg,
@@ -1135,7 +1135,7 @@ body.twm-dt-col-resizing {
1135
1135
  --twm-dt-pin-state: linear-gradient(rgba(255,255,255,0.04), rgba(255,255,255,0.04));
1136
1136
  }
1137
1137
  @keyframes twm-dt-pin-new {
1138
- from { --twm-dt-pin-new: var(--twm-dt-new-bg, rgba(0, 122, 204, 0.22)); }
1138
+ from { --twm-dt-pin-new: var(--twm-dt-new-bg); }
1139
1139
  to { --twm-dt-pin-new: transparent; }
1140
1140
  }
1141
1141
  .twm-preview-table.twm-dt-crosstab tbody tr.twm-dt-row--new > td.twm-dt-pin {
@@ -1151,7 +1151,7 @@ body.twm-dt-col-resizing {
1151
1151
  cursor: pointer;
1152
1152
  }
1153
1153
  .twm-preview-table.twm-dt--selecting tbody tr.twm-dt-row--cursor > td {
1154
- box-shadow: inset 0 1px 0 0 var(--accent-bright, #007acc), inset 0 -1px 0 0 var(--accent-bright, #007acc);
1154
+ box-shadow: inset 0 1px 0 0 var(--accent-bright), inset 0 -1px 0 0 var(--accent-bright);
1155
1155
  }
1156
1156
  /* `rowIcon` — drawn from `data-twm-icon` so the icon's NAME is not cell
1157
1157
  * text (not in a copy, not in the clipped-cell tooltip). The span carries the
@@ -1298,7 +1298,7 @@ body.twm-dt-col-resizing {
1298
1298
  }
1299
1299
  .twm-preview-table td .twm-dt-detail-toggle:focus-visible {
1300
1300
  opacity: 1;
1301
- outline: 1px solid var(--accent-bright, #007acc);
1301
+ outline: 1px solid var(--accent-bright);
1302
1302
  }
1303
1303
  /* The detail's row: one cell across every column. It is often the body's
1304
1304
  * FIRST cell of its row, so the time column's rules reach it (see the note
@@ -1331,7 +1331,7 @@ body.twm-dt-col-resizing {
1331
1331
  }
1332
1332
  /* `follow` / `refresh()` — a row the last answer did not have, for a moment. */
1333
1333
  @keyframes twm-dt-row-new {
1334
- from { background: var(--twm-dt-new-bg, rgba(0, 122, 204, 0.22)); }
1334
+ from { background: var(--twm-dt-new-bg); }
1335
1335
  to { background: transparent; }
1336
1336
  }
1337
1337
  .twm-preview-table tbody tr.twm-dt-row--new > td {
@@ -1375,11 +1375,11 @@ body.twm-dt-col-resizing {
1375
1375
  background: rgba(255, 255, 255, 0.06);
1376
1376
  }
1377
1377
  .twm-dt-filter-chip:focus-visible {
1378
- outline: 1px solid var(--accent-bright, #007acc);
1378
+ outline: 1px solid var(--accent-bright);
1379
1379
  }
1380
1380
  .twm-dt-filter-chip.twm-dt-filter-chip--on {
1381
- border-color: var(--accent-bright, #007acc);
1382
- background: rgba(0, 122, 204, 0.18);
1381
+ border-color: var(--accent-bright);
1382
+ background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
1383
1383
  color: #ddd;
1384
1384
  }
1385
1385
  .twm-dt-filter-chip.twm-dt-filter-chip--empty {
@@ -1449,14 +1449,14 @@ body.twm-dt-col-resizing {
1449
1449
  width: 16px;
1450
1450
  height: 16px;
1451
1451
  border-radius: 50%;
1452
- background: #569cd6;
1452
+ background: var(--accent-light);
1453
1453
  margin-top: -5px;
1454
1454
  cursor: grab;
1455
1455
  border: 2px solid var(--surface-0);
1456
1456
  }
1457
1457
  .twm-slider-field__input::-webkit-slider-thumb:active {
1458
1458
  cursor: grabbing;
1459
- background: #6eb3e9;
1459
+ background: var(--accent-lighter);
1460
1460
  }
1461
1461
  .twm-slider-field__input::-moz-range-track {
1462
1462
  height: 6px;
@@ -1468,7 +1468,7 @@ body.twm-dt-col-resizing {
1468
1468
  width: 16px;
1469
1469
  height: 16px;
1470
1470
  border-radius: 50%;
1471
- background: #569cd6;
1471
+ background: var(--accent-light);
1472
1472
  cursor: grab;
1473
1473
  border: 2px solid var(--surface-0);
1474
1474
  }
@@ -1591,7 +1591,7 @@ body.twm-dt-col-resizing {
1591
1591
  .twm-sortable-list__drop {
1592
1592
  height: 2px;
1593
1593
  margin: 1px 0;
1594
- background: #569cd6;
1594
+ background: var(--accent-light);
1595
1595
  pointer-events: none;
1596
1596
  }
1597
1597
  .twm-sortable-list__content {
@@ -1638,12 +1638,12 @@ body.twm-dt-col-resizing {
1638
1638
  margin-top: var(--space-md);
1639
1639
  }
1640
1640
  .twm-sortable-list__add:hover {
1641
- border-color: #569cd6;
1642
- color: #569cd6;
1643
- background: rgba(86, 156, 214, 0.12);
1641
+ border-color: var(--accent-light);
1642
+ color: var(--accent-light);
1643
+ background: color-mix(in srgb, var(--accent-light) 12%, transparent);
1644
1644
  }
1645
1645
  .twm-sortable-list__add:active {
1646
- background: rgba(86, 156, 214, 0.2);
1646
+ background: color-mix(in srgb, var(--accent-light) 20%, transparent);
1647
1647
  }
1648
1648
  .twm-sortable-list__empty {
1649
1649
  padding: var(--space-xl);
@@ -1668,7 +1668,7 @@ body.twm-dt-col-resizing {
1668
1668
  }
1669
1669
  .twm-sortable-list__input:focus {
1670
1670
  outline: none;
1671
- border-color: #569cd6;
1671
+ border-color: var(--accent-light);
1672
1672
  }
1673
1673
  /* Global Top Bar (fixed at top) */
1674
1674
  .twm-global-top-bar {
@@ -2142,19 +2142,19 @@ body.twm-dt-col-resizing {
2142
2142
  padding: var(--space-xxs) 8px;
2143
2143
  font-size: var(--font-size-xs);
2144
2144
  color: #c7f1ff;
2145
- background: rgba(0, 122, 204, 0.18);
2146
- border: 1px solid rgba(0, 122, 204, 0.35);
2145
+ background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
2146
+ border: 1px solid color-mix(in srgb, var(--accent-bright) 35%, transparent);
2147
2147
  border-radius: var(--radius-pill);
2148
2148
  white-space: nowrap;
2149
2149
  text-transform: none;
2150
2150
  cursor: default;
2151
- box-shadow: inset 0 0 0 1px rgba(0, 122, 204, 0.15);
2151
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent-bright) 15%, transparent);
2152
2152
  }
2153
2153
  .twm-autocomplete-field__namespace--toggle {
2154
2154
  cursor: pointer;
2155
- background: linear-gradient(90deg, rgba(0, 122, 204, 0.24) 0%, rgba(0, 122, 204, 0.12) 100%);
2155
+ background: linear-gradient(90deg, color-mix(in srgb, var(--accent-bright) 24%, transparent) 0%, color-mix(in srgb, var(--accent-bright) 12%, transparent) 100%);
2156
2156
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
2157
- border: 1px solid rgba(0, 122, 204, 0.5);
2157
+ border: 1px solid color-mix(in srgb, var(--accent-bright) 50%, transparent);
2158
2158
  color: #e7f5ff;
2159
2159
  outline: none;
2160
2160
  }
@@ -2197,8 +2197,8 @@ body.twm-dt-col-resizing {
2197
2197
  is the keyboard's, and it is deliberately the stronger of the two so that
2198
2198
  moving the pointer across the list does not hide where the cursor is. */
2199
2199
  .twm-autocomplete-field__item.active {
2200
- background-color: var(--state-selected, rgba(0, 122, 204, 0.15));
2201
- box-shadow: inset 2px 0 0 var(--accent-bright, #007acc);
2200
+ background-color: var(--state-selected);
2201
+ box-shadow: inset 2px 0 0 var(--accent-bright);
2202
2202
  }
2203
2203
  .twm-autocomplete-field__item {
2204
2204
  display: flex;
@@ -2588,7 +2588,7 @@ body.twm-window-maximized .twm-resize-handle {
2588
2588
  box-sizing: border-box;
2589
2589
  }
2590
2590
  .twm-data-table__filter-input:focus {
2591
- border-color: #569cd6;
2591
+ border-color: var(--accent-light);
2592
2592
  background: #252525;
2593
2593
  }
2594
2594
  .twm-data-table__filter-input::placeholder {
@@ -2649,7 +2649,7 @@ body.twm-window-maximized .twm-resize-handle {
2649
2649
  }
2650
2650
  .twm-data-table__filter-dropdown-select:focus,
2651
2651
  .twm-data-table__filter-dropdown-input:focus {
2652
- border-color: #569cd6;
2652
+ border-color: var(--accent-light);
2653
2653
  }
2654
2654
  .twm-data-table__filter-dropdown-select {
2655
2655
  appearance: auto;
@@ -2999,11 +2999,11 @@ body.twm-window-maximized .twm-resize-handle {
2999
2999
  color: var(--text-bright);
3000
3000
  }
3001
3001
  .twm-plot-window-toolbar .twm-btn-icon.twm-is-active {
3002
- color: #4A90D9;
3003
- background: rgba(74, 144, 217, 0.15);
3002
+ color: color-mix(in srgb, var(--accent-bright) 80%, white);
3003
+ background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 15%, transparent);
3004
3004
  }
3005
3005
  .twm-plot-window-toolbar .twm-btn-icon.twm-is-active:hover {
3006
- background: rgba(74, 144, 217, 0.25);
3006
+ background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 25%, transparent);
3007
3007
  }
3008
3008
  .twm-plot-window-content {
3009
3009
  flex: 1;
@@ -3074,7 +3074,7 @@ body.twm-window-maximized .twm-resize-handle {
3074
3074
  background: rgba(255, 255, 255, 0.02);
3075
3075
  }
3076
3076
  .twm-plot-window-container .twm-plot-tab-content .twm-preview-table tbody tr:hover {
3077
- background: rgba(74, 144, 217, 0.1);
3077
+ background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 10%, transparent);
3078
3078
  }
3079
3079
  .twm-plot-window-container .twm-plot-tab-content .twm-preview-table td {
3080
3080
  color: #aaa;
@@ -3147,7 +3147,7 @@ body.twm-window-maximized .twm-resize-handle {
3147
3147
  background: rgba(255, 255, 255, 0.05);
3148
3148
  }
3149
3149
  .twm-plot-series-toggle-panel__item input[type="checkbox"] {
3150
- accent-color: #268bd2;
3150
+ accent-color: color-mix(in srgb, var(--accent-bright) 87%, white);
3151
3151
  flex-shrink: 0;
3152
3152
  }
3153
3153
  .twm-plot-series-toggle-panel__line-indicator {
@@ -3256,7 +3256,7 @@ body.twm-window-maximized .twm-resize-handle {
3256
3256
  outline: none;
3257
3257
  }
3258
3258
  .twm-data-series-plot-config select:focus {
3259
- border-color: #268bd2;
3259
+ border-color: color-mix(in srgb, var(--accent-bright) 87%, white);
3260
3260
  }
3261
3261
  .twm-data-series-plot-config__columns {
3262
3262
  max-height: 200px;
@@ -3298,7 +3298,7 @@ body.twm-window-maximized .twm-resize-handle {
3298
3298
  border-radius: 1px;
3299
3299
  }
3300
3300
  .twm-data-series-plot-config input[type="checkbox"] {
3301
- accent-color: #268bd2;
3301
+ accent-color: color-mix(in srgb, var(--accent-bright) 87%, white);
3302
3302
  flex-shrink: 0;
3303
3303
  }
3304
3304
  /* Computing Status Window */
@@ -3315,7 +3315,7 @@ body.twm-window-maximized .twm-resize-handle {
3315
3315
  width: 32px;
3316
3316
  height: 32px;
3317
3317
  border: 3px solid #333;
3318
- border-top-color: #4a90d9;
3318
+ border-top-color: color-mix(in srgb, var(--accent-bright) 80%, white);
3319
3319
  border-radius: 50%;
3320
3320
  animation: computing-spin 0.8s linear infinite;
3321
3321
  }
@@ -3748,14 +3748,14 @@ body.twm-window-maximized .twm-resize-handle {
3748
3748
  /* Add Widget is the toolbar's one primary verb, so it is the one that carries
3749
3749
  the accent. */
3750
3750
  .add-widget-btn {
3751
- background: rgba(0, 122, 204, 0.15);
3752
- border-color: rgba(0, 122, 204, 0.3);
3751
+ background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
3752
+ border-color: color-mix(in srgb, var(--accent-bright) 30%, transparent);
3753
3753
  color: var(--text-bright);
3754
3754
  }
3755
3755
 
3756
3756
  .add-widget-btn:hover {
3757
- background: rgba(0, 122, 204, 0.25);
3758
- border-color: rgba(0, 122, 204, 0.5);
3757
+ background: color-mix(in srgb, var(--accent-bright) 25%, transparent);
3758
+ border-color: color-mix(in srgb, var(--accent-bright) 50%, transparent);
3759
3759
  }
3760
3760
 
3761
3761
  /* The other two are secondary — Export is an aside and Reset Layout throws the
@@ -3804,24 +3804,25 @@ body.twm-window-maximized .twm-resize-handle {
3804
3804
  .tile.resizing {
3805
3805
  z-index: var(--z-dropdown);
3806
3806
  border-color: var(--accent-bright);
3807
- box-shadow: 0 0 0 2px rgba(0, 122, 204, 0.3);
3807
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-bright) 30%, transparent);
3808
3808
  }
3809
3809
 
3810
3810
  /* Selected — set by `_onConfigClick()` while the config dialog is open, and
3811
- cleared from every sibling by the same handler. #78b9ff is a literal
3812
- because there is no light-accent token: `--accent-bright` is #007acc, which
3813
- is a border colour on this background and not a text one. */
3811
+ cleared from every sibling by the same handler. It reads `--accent-lighter`
3812
+ (BUG-0045): `--accent-bright` is a border colour on this background and not
3813
+ a text one. It was #78b9ff, which no mix of `--accent-bright` with white
3814
+ gives exactly; `--accent-lighter` (about #73b6e3) is the nearest. */
3814
3815
  .tile.tile--selected {
3815
- border-color: #78b9ff;
3816
- box-shadow: 0 0 0 2px rgba(120, 185, 255, 0.3), var(--shadow-md);
3816
+ border-color: var(--accent-lighter);
3817
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-lighter) 30%, transparent), var(--shadow-md);
3817
3818
  }
3818
3819
 
3819
3820
  .tile.tile--selected .tile-header {
3820
- background: rgba(120, 185, 255, 0.1);
3821
+ background: color-mix(in srgb, var(--accent-lighter) 10%, transparent);
3821
3822
  }
3822
3823
 
3823
3824
  .tile.tile--selected .tile-title {
3824
- color: #78b9ff;
3825
+ color: var(--accent-lighter);
3825
3826
  }
3826
3827
 
3827
3828
  /* Read-only. `_buildChrome()`'s read-only branch emits no drag handle, no
@@ -3924,7 +3925,7 @@ body.twm-window-maximized .twm-resize-handle {
3924
3925
  .tile-menu-btn:hover,
3925
3926
  .tile-expand-btn:hover {
3926
3927
  background: var(--state-hover);
3927
- color: #78b9ff;
3928
+ color: var(--accent-lighter);
3928
3929
  }
3929
3930
 
3930
3931
  .tile-remove-btn:hover {
@@ -4012,7 +4013,7 @@ body.twm-window-maximized .twm-resize-handle {
4012
4013
  }
4013
4014
 
4014
4015
  .tile-menu-item:hover .material-symbols-outlined {
4015
- color: #78b9ff;
4016
+ color: var(--accent-lighter);
4016
4017
  }
4017
4018
 
4018
4019
  /* ── the content area ────────────────────────────────────────────────── */
@@ -4081,8 +4082,8 @@ body.twm-window-maximized .twm-resize-handle {
4081
4082
  /* The drop preview, positioned by `_updateGhost()` in grid coordinates. */
4082
4083
  .tile-ghost {
4083
4084
  position: absolute;
4084
- background: rgba(0, 122, 204, 0.15);
4085
- border: 2px dashed rgba(0, 122, 204, 0.5);
4085
+ background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
4086
+ border: 2px dashed color-mix(in srgb, var(--accent-bright) 50%, transparent);
4086
4087
  border-radius: var(--radius-sm);
4087
4088
  pointer-events: none;
4088
4089
  z-index: 50;
@@ -4526,12 +4527,12 @@ body.twm-window-maximized .twm-resize-handle {
4526
4527
  }
4527
4528
  .twm-action-dropdown-option .twm-option-icon {
4528
4529
  font-size: 20px;
4529
- color: #78b9ff;
4530
+ color: var(--accent-lighter);
4530
4531
  flex-shrink: 0;
4531
4532
  }
4532
4533
  .twm-action-dropdown-option:hover .twm-option-icon,
4533
4534
  .twm-action-dropdown-option:focus .twm-option-icon {
4534
- color: #9ecfff;
4535
+ color: var(--accent-lightest);
4535
4536
  }
4536
4537
  .twm-action-dropdown-option .twm-option-label {
4537
4538
  font-weight: 500;
@@ -4690,7 +4691,7 @@ body.twm-window-maximized .twm-resize-handle {
4690
4691
  position: absolute;
4691
4692
  z-index: 5999;
4692
4693
  pointer-events: none;
4693
- background: rgba(23, 119, 179, 0.18);
4694
+ background: color-mix(in srgb, var(--accent-hover) 18%, transparent);
4694
4695
  border: 1px solid var(--accent-bright);
4695
4696
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
4696
4697
  transition: left 0.09s ease, top 0.09s ease, width 0.09s ease, height 0.09s ease;
@@ -4984,12 +4985,11 @@ button.twm-managed-window__btn svg rect {
4984
4985
  transition: background-color 0.1s, color 0.1s;
4985
4986
  }
4986
4987
  .twm-bar-windows__item:hover {
4987
- /* Solarized blue */
4988
- background: #268bd2;
4988
+ background: var(--accent-bright-hover);
4989
4989
  color: var(--text-bright);
4990
4990
  }
4991
4991
  .twm-bar-windows__item:active {
4992
- background: #1a6aa5;
4992
+ background: var(--accent-pressed);
4993
4993
  }
4994
4994
  /* Compounded for the Material Symbols tie — see `.twm-leaf__icon`. */
4995
4995
  .twm-bar-windows__item-icon,
@@ -5591,12 +5591,12 @@ button.twm-about-dialog__btn--close:focus {
5591
5591
  /* ─── Autocomplete field — notebook variant ──────────────── */
5592
5592
 
5593
5593
  .twm-autocomplete-field--notebook .twm-autocomplete-field__input-wrapper {
5594
- border: 1px solid #569cd6;
5594
+ border: 1px solid var(--accent-light);
5595
5595
  font-size: var(--font-size-sm);
5596
5596
  }
5597
5597
  .twm-autocomplete-field--notebook .twm-autocomplete-field__input-wrapper:focus-within {
5598
- border-color: #79b8f8;
5599
- box-shadow: 0 0 3px rgba(86, 156, 214, 0.3);
5598
+ border-color: var(--accent-lighter);
5599
+ box-shadow: 0 0 3px color-mix(in srgb, var(--accent-light) 30%, transparent);
5600
5600
  }
5601
5601
  .twm-autocomplete-field--notebook .twm-autocomplete-field__input {
5602
5602
  font-family: 'Courier New', Courier, monospace;
@@ -5913,8 +5913,8 @@ button.twm-about-dialog__btn--close:focus {
5913
5913
  color: var(--text-bright);
5914
5914
  }
5915
5915
  .twm-btn--primary:hover:not(:disabled) {
5916
- background: #1486cf;
5917
- border-color: #1486cf;
5916
+ background: var(--accent-bright-hover);
5917
+ border-color: var(--accent-bright-hover);
5918
5918
  }
5919
5919
  /* Context menu separator (matches Ecosim's .twm-context-menu look). */
5920
5920
  .twm-context-menu__separator {
@@ -6299,7 +6299,7 @@ button.twm-about-dialog__btn--close:focus {
6299
6299
  }
6300
6300
  .twm-color-field__preset:hover,
6301
6301
  .twm-color-field__preset:focus-visible {
6302
- outline: 1px solid var(--ea-accent, #569cd6);
6302
+ outline: 1px solid var(--ea-accent);
6303
6303
  outline-offset: 1px;
6304
6304
  }
6305
6305
  /* Colour list: a SortableList whose rows are a colour field + move buttons. */
@@ -6325,7 +6325,7 @@ button.twm-about-dialog__btn--close:focus {
6325
6325
  cursor: pointer;
6326
6326
  }
6327
6327
  .twm-color-list__move:hover:not(:disabled) {
6328
- color: var(--ea-accent, #569cd6);
6328
+ color: var(--ea-accent);
6329
6329
  }
6330
6330
  .twm-color-list__move:disabled {
6331
6331
  opacity: 0.3;
@@ -6436,8 +6436,8 @@ button.twm-about-dialog__btn--close:focus {
6436
6436
  font-weight: 600;
6437
6437
  }
6438
6438
  .twm-managed-window--modal .twm-modal__actions .twm-btn--primary:hover:not(:disabled) {
6439
- background: #1683c4;
6440
- border-color: #1683c4;
6439
+ background: var(--accent-bright-hover);
6440
+ border-color: var(--accent-bright-hover);
6441
6441
  }
6442
6442
  .twm-managed-window--modal .twm-modal__actions .twm-btn--danger {
6443
6443
  background: #8b2a2a;
@@ -6703,7 +6703,7 @@ button.twm-about-dialog__btn--close:focus {
6703
6703
  font-size: 10px;
6704
6704
  }
6705
6705
  .twm-landing__pane--focused .twm-landing__pane-head {
6706
- background: rgba(17, 119, 179, 0.10);
6706
+ background: color-mix(in srgb, var(--accent-hover) 10%, transparent);
6707
6707
  }
6708
6708
  .twm-landing__pane--focused .twm-landing__pane-title {
6709
6709
  color: var(--ea-accent);
@@ -6736,7 +6736,7 @@ button.twm-about-dialog__btn--close:focus {
6736
6736
  }
6737
6737
  .twm-entity-header__field select:focus {
6738
6738
  outline: none;
6739
- border-color: var(--ea-accent, #5aa3e8);
6739
+ border-color: var(--ea-accent);
6740
6740
  }
6741
6741
  .twm-entity-header__field select option { background: var(--ea-input-bg, #1e1e1e); color: var(--ea-text, #ddd); }
6742
6742
  .twm-landing__table table {
@@ -6755,7 +6755,7 @@ button.twm-about-dialog__btn--close:focus {
6755
6755
  so the same arrow-key affordance reads identically across modes. */
6756
6756
  .twm-row-cursor {
6757
6757
  box-shadow: inset 2px 0 0 var(--ea-accent);
6758
- background: rgba(17, 119, 179, 0.12) !important;
6758
+ background: color-mix(in srgb, var(--accent-hover) 12%, transparent) !important;
6759
6759
  }
6760
6760
  /* Quick-action strip — horizontal bar below the tables. Same chrome
6761
6761
  tone as `.twm-entity-header` so the page reads as a single stack:
@@ -6795,7 +6795,7 @@ button.twm-about-dialog__btn--close:focus {
6795
6795
  }
6796
6796
  .twm-action-btn:hover {
6797
6797
  border-color: var(--ea-accent);
6798
- background: rgba(17, 119, 179, 0.08);
6798
+ background: color-mix(in srgb, var(--accent-hover) 8%, transparent);
6799
6799
  }
6800
6800
  .twm-action-btn:disabled,
6801
6801
  .twm-action-btn[aria-disabled="true"] {
@@ -6980,7 +6980,7 @@ body.twm-dragging * { user-select: none; }
6980
6980
  }
6981
6981
  .twm-leaf--focused {
6982
6982
  border-color: var(--accent-bright);
6983
- box-shadow: 0 0 0 1px rgba(0, 122, 204, 0.25) inset;
6983
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-bright) 25%, transparent) inset;
6984
6984
  }
6985
6985
  .twm-leaf__chrome {
6986
6986
  display: flex;
@@ -7190,15 +7190,15 @@ body.twm-dragging * { user-select: none; }
7190
7190
  * border, because a border changes the box and every tile in the row would
7191
7191
  * reflow by a pixel as the pointer crossed between them. */
7192
7192
  .twm-leaf--drop-target {
7193
- outline: 2px solid var(--accent-bright, #1683c4);
7193
+ outline: 2px solid var(--accent-bright);
7194
7194
  outline-offset: -2px;
7195
7195
  }
7196
7196
 
7197
7197
  /* A STRIP ARMED TO RECEIVE — the drop that adds the tab at the end of this
7198
7198
  * tile's list rather than into a zone of its body. */
7199
7199
  .twm-leaf__tabbar--drop-target {
7200
- background: color-mix(in srgb, var(--accent-bright, #1683c4) 18%, transparent);
7201
- box-shadow: inset 0 0 0 1px var(--accent-bright, #1683c4);
7200
+ background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
7201
+ box-shadow: inset 0 0 0 1px var(--accent-bright);
7202
7202
  }
7203
7203
 
7204
7204
  /* THE TAB BEING CARRIED. `DragReorder` has put `.dragging` on the TOP strip's
@@ -7279,7 +7279,7 @@ body.twm-dragging * { user-select: none; }
7279
7279
  position: absolute;
7280
7280
  inset: 0;
7281
7281
  pointer-events: none;
7282
- border-top: 1px solid var(--accent-bright, #1683c4);
7282
+ border-top: 1px solid var(--accent-bright);
7283
7283
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
7284
7284
  }
7285
7285
  /* Lower-casing removed here too — a tab label is the same embedder-supplied
@@ -7492,7 +7492,7 @@ body.twm-dragging * { user-select: none; }
7492
7492
  inset: 0 0 auto 0;
7493
7493
  height: 2px;
7494
7494
  pointer-events: none;
7495
- background: var(--accent-bright, #1683c4);
7495
+ background: var(--accent-bright);
7496
7496
  }
7497
7497
  /* A PREVIEW tab — opened by a single click and replaced by the next one.
7498
7498
  * Italic is the convention every editor uses for "this one is not staying". */
@@ -7544,7 +7544,7 @@ body.twm-dragging * { user-select: none; }
7544
7544
  flex: 0 0 auto;
7545
7545
  font-size: 9px;
7546
7546
  line-height: 1;
7547
- color: var(--accent-bright, #1683c4);
7547
+ color: var(--accent-bright);
7548
7548
  }
7549
7549
  .notebook-tabs .twm-tab-close {
7550
7550
  flex: 0 0 auto;
@@ -7582,7 +7582,7 @@ body.twm-dragging * { user-select: none; }
7582
7582
  flex: 0 0 auto;
7583
7583
  align-self: stretch;
7584
7584
  width: 2px;
7585
- background: var(--accent-bright, #1683c4);
7585
+ background: var(--accent-bright);
7586
7586
  pointer-events: none;
7587
7587
  }
7588
7588
 
@@ -7604,8 +7604,8 @@ body.twm-dragging * { user-select: none; }
7604
7604
  * mean "let go here and this list takes it" should look like one thing. */
7605
7605
  .notebook-tabs--drop-target,
7606
7606
  .notebook-editor-container--drop-target {
7607
- background: color-mix(in srgb, var(--accent-bright, #1683c4) 18%, transparent);
7608
- box-shadow: inset 0 0 0 1px var(--accent-bright, #1683c4);
7607
+ background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
7608
+ box-shadow: inset 0 0 0 1px var(--accent-bright);
7609
7609
  }
7610
7610
  /* ── The tab bar's own context menu ──────────────────────────────────
7611
7611
  * Reached only by a consumer that lets the component open it — the tile
@@ -7743,7 +7743,7 @@ body.twm-dragging * { user-select: none; }
7743
7743
  }
7744
7744
  .split-pane-divider:hover,
7745
7745
  .split-pane-divider--active {
7746
- background: var(--accent-bright, #1683c4);
7746
+ background: var(--accent-bright);
7747
7747
  }
7748
7748
  /* A pane is its tab bar over its body. The tab bar's own rule says
7749
7749
  * `height: 100%` (it fills a tile's strip); here it is a fixed 26px row, the
@@ -7766,7 +7766,7 @@ body.twm-dragging * { user-select: none; }
7766
7766
  * `setPanes()`, which is why `SplitPaneContainer` ADDS `.split-pane` to a
7767
7767
  * pane instead of replacing its classes with it. */
7768
7768
  .split-pane-container--split .editor-pane--focused > .tabs.notebook-tabs {
7769
- box-shadow: inset 0 -1px 0 var(--accent-bright, #1683c4);
7769
+ box-shadow: inset 0 -1px 0 var(--accent-bright);
7770
7770
  }
7771
7771
  /* The body is the positioning anchor; the editor container fills it
7772
7772
  * absolutely, so its height is the body's whatever its content is and the
@@ -7829,7 +7829,7 @@ body.twm-dragging * { user-select: none; }
7829
7829
  font: inherit;
7830
7830
  outline: none;
7831
7831
  }
7832
- .nb-search-bar__input:focus { border-color: var(--accent-bright, #1683c4); }
7832
+ .nb-search-bar__input:focus { border-color: var(--accent-bright); }
7833
7833
  .nb-search-bar__match-info {
7834
7834
  min-width: 64px;
7835
7835
  color: var(--text-muted);
@@ -7862,7 +7862,7 @@ body.twm-dragging * { user-select: none; }
7862
7862
  .nb-search-bar__btn--active,
7863
7863
  .nb-search-bar__btn--active:hover {
7864
7864
  background: var(--state-selected);
7865
- border-color: var(--accent-bright, #1683c4);
7865
+ border-color: var(--accent-bright);
7866
7866
  color: var(--text-bright);
7867
7867
  }
7868
7868
  /* Two classes, for the Material Symbols tie — see `.twm-leaf__icon`. */
@@ -8002,7 +8002,7 @@ body.twm-dragging * { user-select: none; }
8002
8002
  .twm-tile-tabmenu__item--cursor {
8003
8003
  /* Keyboard cursor reads slightly heavier than hover so a
8004
8004
  * mouse-cursor-on-a-different-row state is still legible. */
8005
- outline: 1px solid var(--accent-bright, #1683c4);
8005
+ outline: 1px solid var(--accent-bright);
8006
8006
  outline-offset: -1px;
8007
8007
  }
8008
8008
  .twm-tile-tabmenu__item-hint {
@@ -8091,13 +8091,13 @@ body.twm-dragging * { user-select: none; }
8091
8091
  color: var(--text-bright);
8092
8092
  }
8093
8093
  .twm-tile-tabswitch__item--cursor {
8094
- outline: 1px solid var(--accent-bright, #1683c4);
8094
+ outline: 1px solid var(--accent-bright);
8095
8095
  outline-offset: -1px;
8096
8096
  }
8097
8097
  .twm-tile-tabswitch__item--on { color: var(--text-bright); }
8098
8098
  /* Compounded for the Material Symbols tie — see `.twm-leaf__icon`. */
8099
8099
  .twm-tile-tabswitch__check,
8100
- .twm-tile-tabswitch__check.material-symbols-outlined { font-size: 14px; color: var(--accent-bright, #1683c4); }
8100
+ .twm-tile-tabswitch__check.material-symbols-outlined { font-size: 14px; color: var(--accent-bright); }
8101
8101
  .twm-tile-tabswitch__label {
8102
8102
  overflow: hidden;
8103
8103
  text-overflow: ellipsis;
@@ -8149,8 +8149,8 @@ body.twm-dragging * { user-select: none; }
8149
8149
  align-items: center;
8150
8150
  gap: var(--space-xs);
8151
8151
  padding: 2px 4px 2px 8px;
8152
- background: var(--state-selected, rgba(17, 119, 179, 0.18));
8153
- border: 1px solid var(--accent-bright, #1683c4);
8152
+ background: var(--state-selected);
8153
+ border: 1px solid var(--accent-bright);
8154
8154
  border-radius: 2px;
8155
8155
  color: var(--text-bright, #fff);
8156
8156
  font-size: var(--font-size-xs);
@@ -8809,7 +8809,7 @@ tr:hover .twm-row-action { opacity: 1; }
8809
8809
  }
8810
8810
  .twm-data-table-component--compact .twm-pagination-controls .twm-pagination-btn:hover:not(:disabled) {
8811
8811
  color: var(--ea-text, #ddd) !important;
8812
- border-color: var(--ea-accent, #1177b3) !important;
8812
+ border-color: var(--ea-accent) !important;
8813
8813
  }
8814
8814
  /* Text labels inside the pager — the "Rows X–Y of Z" and "Page X of
8815
8815
  * Y" spans don't have classes (just inline style), so target every
@@ -8838,7 +8838,7 @@ tr:hover .twm-row-action { opacity: 1; }
8838
8838
  width: 28px;
8839
8839
  height: 28px;
8840
8840
  border: 2px solid rgba(255, 255, 255, 0.18);
8841
- border-top-color: var(--ea-accent, #1177b3);
8841
+ border-top-color: var(--ea-accent);
8842
8842
  border-radius: 50%;
8843
8843
  animation: data-table__spin 0.7s linear infinite;
8844
8844
  }
@@ -9015,7 +9015,7 @@ tr:hover .twm-row-action { opacity: 1; }
9015
9015
  width: 18px;
9016
9016
  height: 18px;
9017
9017
  border: 2px solid var(--ea-border, #333);
9018
- border-top-color: var(--accent, #4a90e2);
9018
+ border-top-color: var(--accent);
9019
9019
  border-radius: 50%;
9020
9020
  animation: twm-tile-loading-spin 0.7s linear infinite;
9021
9021
  }
@@ -9239,7 +9239,7 @@ tr:hover .twm-row-action { opacity: 1; }
9239
9239
  cursor: pointer;
9240
9240
  }
9241
9241
  .twm-tabs__tab:hover { background: var(--surface-2); color: var(--text-primary); }
9242
- .twm-tabs__tab:focus-visible { outline: 1px solid var(--accent-bright, #1683c4); outline-offset: -1px; }
9242
+ .twm-tabs__tab:focus-visible { outline: 1px solid var(--accent-bright); outline-offset: -1px; }
9243
9243
  .twm-tabs__tab--on { background: var(--surface-0); color: var(--text-bright); }
9244
9244
  .twm-tabs__tab--on::before {
9245
9245
  content: '';
@@ -9247,7 +9247,7 @@ tr:hover .twm-row-action { opacity: 1; }
9247
9247
  inset: 0 0 auto 0;
9248
9248
  height: 2px;
9249
9249
  pointer-events: none;
9250
- background: var(--accent-bright, #1683c4);
9250
+ background: var(--accent-bright);
9251
9251
  }
9252
9252
  .twm-tabs__label { overflow: hidden; text-overflow: ellipsis; }
9253
9253
  /* Two classes: Google's `.material-symbols-outlined { font-size: 24px }` loads
@@ -9782,12 +9782,12 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
9782
9782
  .twm-record--state-error { box-shadow: inset 2px 0 0 0 var(--color-danger, #c74e4e); }
9783
9783
  /* `activeKey` — the record that is OPEN: the accent on the left edge, as
9784
9784
  * DataTable's `twm-dt-row--active`. It wins over a state's edge. */
9785
- .twm-record.twm-record--active { box-shadow: inset 2px 0 0 0 var(--accent-bright, #007acc); }
9785
+ .twm-record.twm-record--active { box-shadow: inset 2px 0 0 0 var(--accent-bright); }
9786
9786
  .twm-record-list--clickable .twm-record { cursor: pointer; }
9787
9787
  .twm-record-list--clickable .twm-record:hover { background: var(--state-hover, rgba(255, 255, 255, 0.05)); }
9788
9788
  .twm-record:focus { outline: none; }
9789
9789
  .twm-record:focus-visible {
9790
- outline: 1px solid var(--accent-bright, #007acc);
9790
+ outline: 1px solid var(--accent-bright);
9791
9791
  outline-offset: -1px;
9792
9792
  }
9793
9793
  .twm-record-list__empty {
@@ -10713,7 +10713,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
10713
10713
  cursor: pointer;
10714
10714
  }
10715
10715
  .twm-doc-outline__link:hover { background: var(--state-hover, rgba(255, 255, 255, 0.05)); color: var(--text-primary, #e0e0e0); }
10716
- .twm-doc-outline__link:focus-visible { outline: 1px solid var(--accent-bright, #007acc); outline-offset: -1px; }
10716
+ .twm-doc-outline__link:focus-visible { outline: 1px solid var(--accent-bright); outline-offset: -1px; }
10717
10717
  .twm-doc-outline__item--level-1 > .twm-doc-outline__link { color: var(--text-primary, #e0e0e0); }
10718
10718
  .twm-doc-outline__number {
10719
10719
  flex: 0 0 auto;
@@ -10728,8 +10728,8 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
10728
10728
  white-space: nowrap;
10729
10729
  }
10730
10730
  .twm-doc-outline__item.twm-doc-outline__item--active > .twm-doc-outline__link {
10731
- border-left-color: var(--accent-bright, #007acc);
10732
- background: rgba(0, 122, 204, 0.15);
10731
+ border-left-color: var(--accent-bright);
10732
+ background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
10733
10733
  color: var(--text-primary, #e0e0e0);
10734
10734
  }
10735
10735
  /* Listed, but nothing in the document answers to it. */
@@ -10757,7 +10757,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
10757
10757
  border-radius: var(--radius-sm, 4px);
10758
10758
  cursor: text;
10759
10759
  }
10760
- .twm-tag-input:focus-within { border-color: var(--accent-bright, #007acc); }
10760
+ .twm-tag-input:focus-within { border-color: var(--accent-bright); }
10761
10761
  .twm-tag-input--readonly {
10762
10762
  background: transparent;
10763
10763
  border-color: transparent;
@@ -12282,7 +12282,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
12282
12282
  position: absolute;
12283
12283
  pointer-events: none;
12284
12284
  border: 1px solid var(--accent-bright);
12285
- background: rgba(0, 122, 204, 0.12);
12285
+ background: color-mix(in srgb, var(--accent-bright) 12%, transparent);
12286
12286
  }
12287
12287
  .twm-canvas__marquee[hidden] { display: none; }
12288
12288
 
@@ -12775,7 +12775,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
12775
12775
  .twm-flow-graph__port--data .twm-flow-graph__port-dot { border-color: #8a8f98; border-radius: 2px; }
12776
12776
  .twm-flow-graph--connecting .twm-flow-graph__port--in:not(:disabled) .twm-flow-graph__port-dot {
12777
12777
  background: var(--twm-flow-focus);
12778
- box-shadow: 0 0 0 3px rgba(0, 122, 204, 0.35);
12778
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 35%, transparent);
12779
12779
  }
12780
12780
  .twm-flow-graph__port--taken .twm-flow-graph__port-dot { border-color: var(--twm-flow-ok); background: var(--twm-flow-ok); }
12781
12781
  .twm-flow-graph__port--taken .twm-flow-graph__port-count { color: var(--twm-flow-ok); }
@@ -12787,7 +12787,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
12787
12787
  }
12788
12788
  .twm-flow-graph__port--can-drop .twm-flow-graph__port-dot {
12789
12789
  background: var(--twm-flow-focus);
12790
- box-shadow: 0 0 0 3px rgba(0, 122, 204, 0.35);
12790
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 35%, transparent);
12791
12791
  }
12792
12792
 
12793
12793
  /* ── a line ─────────────────────────────────────────────────────────── */
@@ -13604,9 +13604,9 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
13604
13604
  display: none !important;
13605
13605
  }
13606
13606
  .twm-flow-lanes {
13607
- --twm-lanes-wire: #5b9bd5;
13607
+ --twm-lanes-wire: var(--accent-light);
13608
13608
  --twm-lanes-surface: #1b1b1c;
13609
- --twm-lanes-ring: #1683c4;
13609
+ --twm-lanes-ring: var(--accent-bright-hover);
13610
13610
  display: flex;
13611
13611
  flex-direction: column;
13612
13612
  box-sizing: border-box;
@@ -13729,7 +13729,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
13729
13729
  border-left: 1px solid var(--surface-3);
13730
13730
  }
13731
13731
  .twm-flow-lanes__show-btn[aria-pressed="true"] {
13732
- background: #0f6fa8;
13732
+ background: var(--accent-pressed);
13733
13733
  color: var(--text-bright);
13734
13734
  }
13735
13735
  .twm-flow-lanes__show-btn:focus-visible,
@@ -13972,7 +13972,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
13972
13972
  .twm-flow-lanes__node--selected .twm-flow-lanes__card,
13973
13973
  .twm-flow-lanes__card:focus-visible {
13974
13974
  filter: drop-shadow(0 0 1px var(--twm-lanes-ring)) drop-shadow(0 0 1px var(--twm-lanes-ring))
13975
- drop-shadow(0 0 5px rgba(22, 131, 196, 0.8));
13975
+ drop-shadow(0 0 5px color-mix(in srgb, var(--twm-lanes-ring) 80%, transparent));
13976
13976
  }
13977
13977
  .twm-flow-lanes__card:hover .twm-flow-lanes__body {
13978
13978
  filter: brightness(1.12);
@@ -14295,7 +14295,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
14295
14295
  }
14296
14296
  .twm-flow-lanes__cell--new,
14297
14297
  .twm-flow-lanes__cell--changed {
14298
- background: rgba(22, 131, 196, 0.07);
14298
+ background: color-mix(in srgb, var(--twm-lanes-ring) 7%, transparent);
14299
14299
  }
14300
14300
  .twm-flow-lanes__error {
14301
14301
  flex: 0 0 auto;
@@ -14329,7 +14329,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
14329
14329
  }
14330
14330
  .twm-flow-lanes__column--new,
14331
14331
  .twm-flow-lanes__column--changed {
14332
- background: rgba(22, 131, 196, 0.14);
14332
+ background: color-mix(in srgb, var(--twm-lanes-ring) 14%, transparent);
14333
14333
  }
14334
14334
  .twm-flow-lanes__column-name {
14335
14335
  font-family: var(--font-family-mono);
@@ -14342,7 +14342,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
14342
14342
  }
14343
14343
  .twm-flow-lanes__column--new .twm-flow-lanes__column-type,
14344
14344
  .twm-flow-lanes__column--changed .twm-flow-lanes__column-type {
14345
- color: #9fd0f0;
14345
+ color: var(--accent-lightest);
14346
14346
  }
14347
14347
  .twm-flow-lanes__column-origin {
14348
14348
  margin-left: auto;