@terminal-blueprint/core 0.1.0 → 0.1.2
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/index.css +387 -34
- package/dist/index.css.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
:root,
|
|
3
3
|
:root[data-theme=dark] {
|
|
4
4
|
--tb-primary: #a7d9ef;
|
|
5
|
+
--tb-accent: #ccc0f3;
|
|
5
6
|
--tb-bg: #020617;
|
|
6
7
|
--tb-bg-surface: #0f172a;
|
|
7
8
|
--tb-bg-card: rgba(10, 20, 40, 0.85);
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
--tb-warning: #e8c468;
|
|
22
23
|
--tb-warning-dim: rgba(232, 196, 104, 0.15);
|
|
23
24
|
--tb-info: #a7d9ef;
|
|
24
|
-
--tb-text-heading: #
|
|
25
|
+
--tb-text-heading: #ccc0f3;
|
|
25
26
|
--tb-text-body: #cddbe4;
|
|
26
27
|
--tb-text-label: #9fc3d4;
|
|
27
28
|
--tb-text-muted: #7aaab9;
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
}
|
|
53
54
|
:root[data-contrast=high],
|
|
54
55
|
:root[data-theme=dark][data-contrast=high] {
|
|
56
|
+
--tb-accent: #ddd0fc;
|
|
55
57
|
--tb-text-heading: #ffffff;
|
|
56
58
|
--tb-text-body: #d4ecf7;
|
|
57
59
|
--tb-text-label: #a7d9ef;
|
|
@@ -183,8 +185,8 @@
|
|
|
183
185
|
white-space: nowrap;
|
|
184
186
|
}
|
|
185
187
|
.tb-btn:hover {
|
|
186
|
-
border-color: var(--tb-
|
|
187
|
-
color:
|
|
188
|
+
border-color: var(--tb-accent);
|
|
189
|
+
color: var(--tb-accent);
|
|
188
190
|
text-shadow: 0 0 15px var(--tb-glow);
|
|
189
191
|
background: rgba(167, 217, 239, 0.05);
|
|
190
192
|
}
|
|
@@ -198,7 +200,8 @@
|
|
|
198
200
|
border-color: var(--tb-primary);
|
|
199
201
|
}
|
|
200
202
|
.tb-btn--primary:hover {
|
|
201
|
-
background:
|
|
203
|
+
background: var(--tb-accent);
|
|
204
|
+
border-color: var(--tb-accent);
|
|
202
205
|
color: var(--tb-bg);
|
|
203
206
|
text-shadow: none;
|
|
204
207
|
box-shadow: 0 0 20px var(--tb-glow);
|
|
@@ -208,8 +211,8 @@
|
|
|
208
211
|
color: var(--tb-primary);
|
|
209
212
|
}
|
|
210
213
|
.tb-btn--secondary:hover {
|
|
211
|
-
border-color: var(--tb-
|
|
212
|
-
color:
|
|
214
|
+
border-color: var(--tb-accent);
|
|
215
|
+
color: var(--tb-accent);
|
|
213
216
|
text-shadow: 0 0 15px var(--tb-glow);
|
|
214
217
|
background: rgba(167, 217, 239, 0.05);
|
|
215
218
|
}
|
|
@@ -219,9 +222,9 @@
|
|
|
219
222
|
}
|
|
220
223
|
.tb-btn--danger:hover {
|
|
221
224
|
border-color: var(--tb-error);
|
|
222
|
-
color:
|
|
223
|
-
text-shadow:
|
|
224
|
-
background:
|
|
225
|
+
color: var(--tb-bg);
|
|
226
|
+
text-shadow: none;
|
|
227
|
+
background: var(--tb-error);
|
|
225
228
|
}
|
|
226
229
|
.tb-btn--ghost {
|
|
227
230
|
border-color: transparent;
|
|
@@ -532,6 +535,22 @@
|
|
|
532
535
|
border-color: var(--tb-line-bright);
|
|
533
536
|
background: var(--tb-bg-card-hover);
|
|
534
537
|
}
|
|
538
|
+
.tb-card--link {
|
|
539
|
+
cursor: pointer;
|
|
540
|
+
}
|
|
541
|
+
.tb-card--link:hover {
|
|
542
|
+
border-color: var(--tb-line-bright);
|
|
543
|
+
background: var(--tb-bg-card-hover);
|
|
544
|
+
}
|
|
545
|
+
.tb-card__link {
|
|
546
|
+
position: absolute;
|
|
547
|
+
inset: 0;
|
|
548
|
+
z-index: 0;
|
|
549
|
+
}
|
|
550
|
+
.tb-card--link .tb-card__footer {
|
|
551
|
+
position: relative;
|
|
552
|
+
z-index: 1;
|
|
553
|
+
}
|
|
535
554
|
.tb-card__header {
|
|
536
555
|
display: flex;
|
|
537
556
|
align-items: center;
|
|
@@ -819,7 +838,7 @@
|
|
|
819
838
|
filter: drop-shadow(0 0 0 transparent);
|
|
820
839
|
}
|
|
821
840
|
50% {
|
|
822
|
-
border-color:
|
|
841
|
+
border-color: var(--tb-accent);
|
|
823
842
|
opacity: 1;
|
|
824
843
|
filter: drop-shadow(0 0 6px rgba(167, 217, 239, 0.5));
|
|
825
844
|
}
|
|
@@ -856,6 +875,12 @@
|
|
|
856
875
|
opacity: 0.6;
|
|
857
876
|
transition: transform var(--tb-duration-fast) var(--tb-ease-standard);
|
|
858
877
|
}
|
|
878
|
+
.tb-select__chevron::before {
|
|
879
|
+
content: "\25be";
|
|
880
|
+
}
|
|
881
|
+
.tb-select__trigger--open .tb-select__chevron {
|
|
882
|
+
transform: rotate(180deg);
|
|
883
|
+
}
|
|
859
884
|
.tb-select__dropdown {
|
|
860
885
|
position: absolute;
|
|
861
886
|
top: calc(100% + 4px);
|
|
@@ -940,6 +965,7 @@
|
|
|
940
965
|
width: 90%;
|
|
941
966
|
position: relative;
|
|
942
967
|
z-index: var(--tb-z-modal);
|
|
968
|
+
font-family: var(--tb-font);
|
|
943
969
|
transform: translateY(20px) scale(0.97);
|
|
944
970
|
transition: transform var(--tb-duration-normal) var(--tb-ease-standard), opacity var(--tb-duration-normal) var(--tb-ease-standard);
|
|
945
971
|
}
|
|
@@ -960,6 +986,24 @@
|
|
|
960
986
|
.tb-modal__close:hover {
|
|
961
987
|
opacity: 1;
|
|
962
988
|
}
|
|
989
|
+
.tb-modal--warning {
|
|
990
|
+
border-top: 3px solid var(--tb-warning);
|
|
991
|
+
}
|
|
992
|
+
.tb-modal--warning .tb-modal__title {
|
|
993
|
+
color: var(--tb-warning);
|
|
994
|
+
}
|
|
995
|
+
.tb-modal--error {
|
|
996
|
+
border-top: 3px solid var(--tb-error);
|
|
997
|
+
}
|
|
998
|
+
.tb-modal--error .tb-modal__title {
|
|
999
|
+
color: var(--tb-error);
|
|
1000
|
+
}
|
|
1001
|
+
.tb-modal--success {
|
|
1002
|
+
border-top: 3px solid var(--tb-success);
|
|
1003
|
+
}
|
|
1004
|
+
.tb-modal--success .tb-modal__title {
|
|
1005
|
+
color: var(--tb-success);
|
|
1006
|
+
}
|
|
963
1007
|
.tb-modal__close:focus-visible {
|
|
964
1008
|
outline: 2px solid var(--tb-primary);
|
|
965
1009
|
outline-offset: 2px;
|
|
@@ -983,6 +1027,10 @@
|
|
|
983
1027
|
}
|
|
984
1028
|
.tb-modal__body {
|
|
985
1029
|
margin-bottom: var(--tb-sp-6);
|
|
1030
|
+
font-size: 0.6rem;
|
|
1031
|
+
color: var(--tb-text-body);
|
|
1032
|
+
line-height: 1.8;
|
|
1033
|
+
letter-spacing: 0.1em;
|
|
986
1034
|
}
|
|
987
1035
|
.tb-modal__footer {
|
|
988
1036
|
display: flex;
|
|
@@ -992,6 +1040,23 @@
|
|
|
992
1040
|
border-top: 1px solid var(--tb-line);
|
|
993
1041
|
padding-top: var(--tb-sp-6);
|
|
994
1042
|
}
|
|
1043
|
+
.tb-modal__footer .tb-modal__close {
|
|
1044
|
+
position: static;
|
|
1045
|
+
opacity: 1;
|
|
1046
|
+
font-family: var(--tb-font);
|
|
1047
|
+
font-size: 0.6rem;
|
|
1048
|
+
letter-spacing: 0.15em;
|
|
1049
|
+
text-transform: uppercase;
|
|
1050
|
+
padding: 0 var(--tb-sp-4);
|
|
1051
|
+
height: 36px;
|
|
1052
|
+
color: var(--tb-text-label);
|
|
1053
|
+
border: 1px solid var(--tb-line);
|
|
1054
|
+
}
|
|
1055
|
+
.tb-modal__footer .tb-modal__close:hover {
|
|
1056
|
+
color: var(--tb-accent);
|
|
1057
|
+
border-color: var(--tb-accent);
|
|
1058
|
+
opacity: 1;
|
|
1059
|
+
}
|
|
995
1060
|
|
|
996
1061
|
/* src/css/components/tabs.css */
|
|
997
1062
|
.tb-tabs {
|
|
@@ -1016,8 +1081,8 @@
|
|
|
1016
1081
|
transition: all var(--tb-duration-normal) var(--tb-ease-standard);
|
|
1017
1082
|
}
|
|
1018
1083
|
.tb-tabs__trigger:hover {
|
|
1019
|
-
color: var(--tb-
|
|
1020
|
-
background: rgba(
|
|
1084
|
+
color: var(--tb-primary);
|
|
1085
|
+
background: rgba(167, 217, 239, 0.04);
|
|
1021
1086
|
}
|
|
1022
1087
|
.tb-tabs__trigger--active {
|
|
1023
1088
|
color: var(--tb-text-heading);
|
|
@@ -1158,7 +1223,9 @@
|
|
|
1158
1223
|
/* src/css/components/tooltip.css */
|
|
1159
1224
|
.tb-tooltip-wrap {
|
|
1160
1225
|
position: relative;
|
|
1161
|
-
display: inline-
|
|
1226
|
+
display: inline-flex;
|
|
1227
|
+
align-items: center;
|
|
1228
|
+
justify-content: center;
|
|
1162
1229
|
}
|
|
1163
1230
|
.tb-tooltip {
|
|
1164
1231
|
position: absolute;
|
|
@@ -1342,7 +1409,7 @@
|
|
|
1342
1409
|
}
|
|
1343
1410
|
.tb-nav-dropdown__item:hover {
|
|
1344
1411
|
background: rgba(167, 217, 239, 0.05);
|
|
1345
|
-
border-left-color: var(--tb-
|
|
1412
|
+
border-left-color: var(--tb-accent);
|
|
1346
1413
|
color: var(--tb-text-heading);
|
|
1347
1414
|
}
|
|
1348
1415
|
@media (max-width: 480px) {
|
|
@@ -1640,22 +1707,15 @@
|
|
|
1640
1707
|
background: var(--tb-primary);
|
|
1641
1708
|
opacity: 0.7;
|
|
1642
1709
|
}
|
|
1643
|
-
.tb-
|
|
1710
|
+
.tb-battery--success .tb-battery__segment--filled {
|
|
1644
1711
|
background: var(--tb-success);
|
|
1645
1712
|
}
|
|
1646
|
-
.tb-
|
|
1713
|
+
.tb-battery--warning .tb-battery__segment--filled {
|
|
1647
1714
|
background: var(--tb-warning);
|
|
1648
1715
|
}
|
|
1649
|
-
.tb-
|
|
1716
|
+
.tb-battery--error .tb-battery__segment--filled {
|
|
1650
1717
|
background: var(--tb-error);
|
|
1651
1718
|
}
|
|
1652
|
-
.tb-battery__cap {
|
|
1653
|
-
width: 10px;
|
|
1654
|
-
height: 6px;
|
|
1655
|
-
border: 1px solid var(--tb-line);
|
|
1656
|
-
align-self: center;
|
|
1657
|
-
margin-top: -1px;
|
|
1658
|
-
}
|
|
1659
1719
|
.tb-battery__label {
|
|
1660
1720
|
font-size: 0.6rem;
|
|
1661
1721
|
letter-spacing: 0.2em;
|
|
@@ -1679,12 +1739,6 @@
|
|
|
1679
1739
|
height: 20px;
|
|
1680
1740
|
flex-direction: row;
|
|
1681
1741
|
}
|
|
1682
|
-
.tb-battery--inline .tb-battery__cap {
|
|
1683
|
-
width: 6px;
|
|
1684
|
-
height: 10px;
|
|
1685
|
-
margin-top: 0;
|
|
1686
|
-
margin-left: -1px;
|
|
1687
|
-
}
|
|
1688
1742
|
.tb-battery--inline .tb-battery__label {
|
|
1689
1743
|
min-width: 100px;
|
|
1690
1744
|
}
|
|
@@ -2006,8 +2060,8 @@
|
|
|
2006
2060
|
transition: all var(--tb-duration-fast) var(--tb-ease-standard);
|
|
2007
2061
|
}
|
|
2008
2062
|
.tb-pagination__btn:hover {
|
|
2009
|
-
border-color: var(--tb-
|
|
2010
|
-
color:
|
|
2063
|
+
border-color: var(--tb-accent);
|
|
2064
|
+
color: var(--tb-accent);
|
|
2011
2065
|
text-shadow: 0 0 15px var(--tb-glow);
|
|
2012
2066
|
}
|
|
2013
2067
|
.tb-pagination__btn:focus-visible {
|
|
@@ -2250,7 +2304,7 @@
|
|
|
2250
2304
|
border-color var(--tb-duration-fast) ease;
|
|
2251
2305
|
}
|
|
2252
2306
|
.tb-sidenav__item:hover {
|
|
2253
|
-
color: var(--tb-
|
|
2307
|
+
color: var(--tb-primary);
|
|
2254
2308
|
background: rgba(167, 217, 239, 0.03);
|
|
2255
2309
|
}
|
|
2256
2310
|
.tb-sidenav .tb-sidenav__item--active {
|
|
@@ -2297,7 +2351,7 @@
|
|
|
2297
2351
|
transition: color var(--tb-duration-fast) ease, background var(--tb-duration-fast) ease;
|
|
2298
2352
|
}
|
|
2299
2353
|
.tb-sidenav__group-trigger:hover {
|
|
2300
|
-
color: var(--tb-
|
|
2354
|
+
color: var(--tb-primary);
|
|
2301
2355
|
background: rgba(167, 217, 239, 0.03);
|
|
2302
2356
|
}
|
|
2303
2357
|
.tb-sidenav__group-chevron {
|
|
@@ -2385,5 +2439,304 @@
|
|
|
2385
2439
|
color: var(--tb-text-muted);
|
|
2386
2440
|
}
|
|
2387
2441
|
|
|
2442
|
+
/* src/css/components/slider.css */
|
|
2443
|
+
.tb-slider {
|
|
2444
|
+
display: flex;
|
|
2445
|
+
flex-direction: column;
|
|
2446
|
+
gap: var(--tb-sp-2);
|
|
2447
|
+
width: 100%;
|
|
2448
|
+
}
|
|
2449
|
+
.tb-slider__header {
|
|
2450
|
+
display: flex;
|
|
2451
|
+
align-items: center;
|
|
2452
|
+
justify-content: space-between;
|
|
2453
|
+
margin-bottom: var(--tb-sp-1);
|
|
2454
|
+
}
|
|
2455
|
+
.tb-slider__label {
|
|
2456
|
+
font-family: var(--tb-font);
|
|
2457
|
+
font-size: 0.55rem;
|
|
2458
|
+
letter-spacing: 0.2em;
|
|
2459
|
+
text-transform: uppercase;
|
|
2460
|
+
color: var(--tb-text-label);
|
|
2461
|
+
}
|
|
2462
|
+
.tb-slider__value {
|
|
2463
|
+
font-family: var(--tb-font);
|
|
2464
|
+
font-size: 0.55rem;
|
|
2465
|
+
letter-spacing: 0.15em;
|
|
2466
|
+
color: var(--tb-text-muted);
|
|
2467
|
+
}
|
|
2468
|
+
.tb-slider__input {
|
|
2469
|
+
-webkit-appearance: none;
|
|
2470
|
+
appearance: none;
|
|
2471
|
+
width: 100%;
|
|
2472
|
+
height: 3px;
|
|
2473
|
+
background:
|
|
2474
|
+
linear-gradient(
|
|
2475
|
+
to right,
|
|
2476
|
+
var(--tb-primary) 0%,
|
|
2477
|
+
var(--tb-primary) var(--slider-percent, 0%),
|
|
2478
|
+
var(--tb-line) var(--slider-percent, 0%),
|
|
2479
|
+
var(--tb-line) 100%);
|
|
2480
|
+
outline: none;
|
|
2481
|
+
cursor: pointer;
|
|
2482
|
+
border: none;
|
|
2483
|
+
transition: opacity var(--tb-duration-fast) ease;
|
|
2484
|
+
}
|
|
2485
|
+
.tb-slider__input::-webkit-slider-thumb {
|
|
2486
|
+
-webkit-appearance: none;
|
|
2487
|
+
appearance: none;
|
|
2488
|
+
width: 14px;
|
|
2489
|
+
height: 14px;
|
|
2490
|
+
background: var(--tb-bg-surface);
|
|
2491
|
+
border: 2px solid var(--tb-primary);
|
|
2492
|
+
cursor: pointer;
|
|
2493
|
+
transition:
|
|
2494
|
+
border-color var(--tb-duration-fast) ease,
|
|
2495
|
+
background var(--tb-duration-fast) ease,
|
|
2496
|
+
transform var(--tb-duration-fast) ease;
|
|
2497
|
+
}
|
|
2498
|
+
.tb-slider__input::-webkit-slider-thumb:hover {
|
|
2499
|
+
border-color: var(--tb-accent);
|
|
2500
|
+
background: var(--tb-accent);
|
|
2501
|
+
transform: scale(1.15);
|
|
2502
|
+
}
|
|
2503
|
+
.tb-slider__input::-moz-range-thumb {
|
|
2504
|
+
width: 14px;
|
|
2505
|
+
height: 14px;
|
|
2506
|
+
background: var(--tb-bg-surface);
|
|
2507
|
+
border: 2px solid var(--tb-primary);
|
|
2508
|
+
border-radius: 0;
|
|
2509
|
+
cursor: pointer;
|
|
2510
|
+
transition: border-color var(--tb-duration-fast) ease, background var(--tb-duration-fast) ease;
|
|
2511
|
+
}
|
|
2512
|
+
.tb-slider__input::-moz-range-thumb:hover {
|
|
2513
|
+
border-color: var(--tb-accent);
|
|
2514
|
+
background: var(--tb-accent);
|
|
2515
|
+
}
|
|
2516
|
+
.tb-slider__input:focus-visible::-webkit-slider-thumb {
|
|
2517
|
+
outline: 2px solid var(--tb-accent);
|
|
2518
|
+
outline-offset: 3px;
|
|
2519
|
+
}
|
|
2520
|
+
.tb-slider--disabled {
|
|
2521
|
+
opacity: 0.3;
|
|
2522
|
+
pointer-events: none;
|
|
2523
|
+
}
|
|
2524
|
+
.tb-slider--success .tb-slider__input {
|
|
2525
|
+
background:
|
|
2526
|
+
linear-gradient(
|
|
2527
|
+
to right,
|
|
2528
|
+
var(--tb-success) 0%,
|
|
2529
|
+
var(--tb-success) var(--slider-percent, 0%),
|
|
2530
|
+
var(--tb-line) var(--slider-percent, 0%),
|
|
2531
|
+
var(--tb-line) 100%);
|
|
2532
|
+
}
|
|
2533
|
+
.tb-slider--success .tb-slider__input::-webkit-slider-thumb {
|
|
2534
|
+
border-color: var(--tb-success);
|
|
2535
|
+
}
|
|
2536
|
+
.tb-slider--success .tb-slider__input::-moz-range-thumb {
|
|
2537
|
+
border-color: var(--tb-success);
|
|
2538
|
+
}
|
|
2539
|
+
.tb-slider--warning .tb-slider__input {
|
|
2540
|
+
background:
|
|
2541
|
+
linear-gradient(
|
|
2542
|
+
to right,
|
|
2543
|
+
var(--tb-warning) 0%,
|
|
2544
|
+
var(--tb-warning) var(--slider-percent, 0%),
|
|
2545
|
+
var(--tb-line) var(--slider-percent, 0%),
|
|
2546
|
+
var(--tb-line) 100%);
|
|
2547
|
+
}
|
|
2548
|
+
.tb-slider--warning .tb-slider__input::-webkit-slider-thumb {
|
|
2549
|
+
border-color: var(--tb-warning);
|
|
2550
|
+
}
|
|
2551
|
+
.tb-slider--warning .tb-slider__input::-moz-range-thumb {
|
|
2552
|
+
border-color: var(--tb-warning);
|
|
2553
|
+
}
|
|
2554
|
+
.tb-slider--error .tb-slider__input {
|
|
2555
|
+
background:
|
|
2556
|
+
linear-gradient(
|
|
2557
|
+
to right,
|
|
2558
|
+
var(--tb-error) 0%,
|
|
2559
|
+
var(--tb-error) var(--slider-percent, 0%),
|
|
2560
|
+
var(--tb-line) var(--slider-percent, 0%),
|
|
2561
|
+
var(--tb-line) 100%);
|
|
2562
|
+
}
|
|
2563
|
+
.tb-slider--error .tb-slider__input::-webkit-slider-thumb {
|
|
2564
|
+
border-color: var(--tb-error);
|
|
2565
|
+
}
|
|
2566
|
+
.tb-slider--error .tb-slider__input::-moz-range-thumb {
|
|
2567
|
+
border-color: var(--tb-error);
|
|
2568
|
+
}
|
|
2569
|
+
|
|
2570
|
+
/* src/css/components/file-upload.css */
|
|
2571
|
+
.tb-file-upload {
|
|
2572
|
+
display: flex;
|
|
2573
|
+
flex-direction: column;
|
|
2574
|
+
gap: 6px;
|
|
2575
|
+
}
|
|
2576
|
+
.tb-file-upload__zone {
|
|
2577
|
+
position: relative;
|
|
2578
|
+
display: flex;
|
|
2579
|
+
flex-direction: column;
|
|
2580
|
+
align-items: center;
|
|
2581
|
+
justify-content: center;
|
|
2582
|
+
gap: var(--tb-sp-3);
|
|
2583
|
+
padding: var(--tb-sp-8) var(--tb-sp-6);
|
|
2584
|
+
border: 1px dashed var(--tb-line-bright);
|
|
2585
|
+
background: var(--tb-bg-input);
|
|
2586
|
+
cursor: pointer;
|
|
2587
|
+
transition: border-color var(--tb-duration-normal) ease, background var(--tb-duration-normal) ease;
|
|
2588
|
+
}
|
|
2589
|
+
.tb-file-upload__zone:hover {
|
|
2590
|
+
border-color: var(--tb-primary);
|
|
2591
|
+
background: rgba(167, 217, 239, 0.03);
|
|
2592
|
+
}
|
|
2593
|
+
.tb-file-upload__zone--drag {
|
|
2594
|
+
border-color: var(--tb-accent);
|
|
2595
|
+
background: rgba(204, 192, 243, 0.05);
|
|
2596
|
+
}
|
|
2597
|
+
.tb-file-upload__zone--error {
|
|
2598
|
+
border-color: rgba(239, 107, 107, 0.5);
|
|
2599
|
+
}
|
|
2600
|
+
.tb-file-upload__zone--disabled {
|
|
2601
|
+
opacity: 0.3;
|
|
2602
|
+
cursor: not-allowed;
|
|
2603
|
+
pointer-events: none;
|
|
2604
|
+
}
|
|
2605
|
+
.tb-file-upload__input {
|
|
2606
|
+
position: absolute;
|
|
2607
|
+
inset: 0;
|
|
2608
|
+
opacity: 0;
|
|
2609
|
+
cursor: pointer;
|
|
2610
|
+
}
|
|
2611
|
+
.tb-file-upload__zone--disabled .tb-file-upload__input {
|
|
2612
|
+
cursor: not-allowed;
|
|
2613
|
+
}
|
|
2614
|
+
.tb-file-upload__icon {
|
|
2615
|
+
display: flex;
|
|
2616
|
+
align-items: center;
|
|
2617
|
+
justify-content: center;
|
|
2618
|
+
color: var(--tb-text-muted);
|
|
2619
|
+
font-size: 28px;
|
|
2620
|
+
transition: color var(--tb-duration-fast) ease;
|
|
2621
|
+
}
|
|
2622
|
+
.tb-file-upload__zone:hover .tb-file-upload__icon {
|
|
2623
|
+
color: var(--tb-primary);
|
|
2624
|
+
}
|
|
2625
|
+
.tb-file-upload__zone--drag .tb-file-upload__icon {
|
|
2626
|
+
color: var(--tb-accent);
|
|
2627
|
+
}
|
|
2628
|
+
.tb-file-upload__text {
|
|
2629
|
+
font-size: 0.55rem;
|
|
2630
|
+
font-weight: 400;
|
|
2631
|
+
letter-spacing: 0.3em;
|
|
2632
|
+
text-transform: uppercase;
|
|
2633
|
+
color: var(--tb-text-label);
|
|
2634
|
+
text-align: center;
|
|
2635
|
+
}
|
|
2636
|
+
.tb-file-upload__hint-text {
|
|
2637
|
+
font-size: 0.5rem;
|
|
2638
|
+
letter-spacing: 0.15em;
|
|
2639
|
+
text-transform: uppercase;
|
|
2640
|
+
color: var(--tb-text-muted);
|
|
2641
|
+
}
|
|
2642
|
+
.tb-file-upload--compact .tb-file-upload__zone {
|
|
2643
|
+
flex-direction: row;
|
|
2644
|
+
padding: 0;
|
|
2645
|
+
border: none;
|
|
2646
|
+
background: none;
|
|
2647
|
+
gap: var(--tb-sp-3);
|
|
2648
|
+
justify-content: flex-start;
|
|
2649
|
+
}
|
|
2650
|
+
.tb-file-upload--compact .tb-file-upload__zone:hover {
|
|
2651
|
+
background: none;
|
|
2652
|
+
}
|
|
2653
|
+
.tb-file-upload--compact .tb-file-upload__input {
|
|
2654
|
+
position: absolute;
|
|
2655
|
+
inset: 0;
|
|
2656
|
+
}
|
|
2657
|
+
.tb-file-upload__files {
|
|
2658
|
+
display: flex;
|
|
2659
|
+
flex-direction: column;
|
|
2660
|
+
gap: var(--tb-sp-2);
|
|
2661
|
+
}
|
|
2662
|
+
.tb-file-upload__file {
|
|
2663
|
+
display: flex;
|
|
2664
|
+
align-items: center;
|
|
2665
|
+
gap: var(--tb-sp-3);
|
|
2666
|
+
padding: var(--tb-sp-2) var(--tb-sp-3);
|
|
2667
|
+
border: 1px solid var(--tb-line);
|
|
2668
|
+
background: var(--tb-bg-card);
|
|
2669
|
+
transition: border-color var(--tb-duration-fast) ease;
|
|
2670
|
+
}
|
|
2671
|
+
.tb-file-upload__file:hover {
|
|
2672
|
+
border-color: var(--tb-line-bright);
|
|
2673
|
+
}
|
|
2674
|
+
.tb-file-upload__file-icon {
|
|
2675
|
+
display: flex;
|
|
2676
|
+
align-items: center;
|
|
2677
|
+
color: var(--tb-text-muted);
|
|
2678
|
+
font-size: 16px;
|
|
2679
|
+
flex-shrink: 0;
|
|
2680
|
+
}
|
|
2681
|
+
.tb-file-upload__file-info {
|
|
2682
|
+
flex: 1;
|
|
2683
|
+
min-width: 0;
|
|
2684
|
+
}
|
|
2685
|
+
.tb-file-upload__file-name {
|
|
2686
|
+
font-size: 0.55rem;
|
|
2687
|
+
font-weight: 500;
|
|
2688
|
+
letter-spacing: 0.15em;
|
|
2689
|
+
text-transform: uppercase;
|
|
2690
|
+
color: var(--tb-text-body);
|
|
2691
|
+
white-space: nowrap;
|
|
2692
|
+
overflow: hidden;
|
|
2693
|
+
text-overflow: ellipsis;
|
|
2694
|
+
}
|
|
2695
|
+
.tb-file-upload__file-size {
|
|
2696
|
+
font-size: 0.45rem;
|
|
2697
|
+
letter-spacing: 0.15em;
|
|
2698
|
+
text-transform: uppercase;
|
|
2699
|
+
color: var(--tb-text-muted);
|
|
2700
|
+
}
|
|
2701
|
+
.tb-file-upload__file-remove {
|
|
2702
|
+
display: flex;
|
|
2703
|
+
align-items: center;
|
|
2704
|
+
justify-content: center;
|
|
2705
|
+
width: 24px;
|
|
2706
|
+
height: 24px;
|
|
2707
|
+
background: none;
|
|
2708
|
+
border: 1px solid transparent;
|
|
2709
|
+
color: var(--tb-text-muted);
|
|
2710
|
+
cursor: pointer;
|
|
2711
|
+
flex-shrink: 0;
|
|
2712
|
+
font-size: 14px;
|
|
2713
|
+
transition: all var(--tb-duration-fast) ease;
|
|
2714
|
+
}
|
|
2715
|
+
.tb-file-upload__file-remove:hover {
|
|
2716
|
+
color: var(--tb-error);
|
|
2717
|
+
border-color: rgba(239, 107, 107, 0.3);
|
|
2718
|
+
}
|
|
2719
|
+
.tb-file-upload__preview {
|
|
2720
|
+
width: 36px;
|
|
2721
|
+
height: 36px;
|
|
2722
|
+
object-fit: cover;
|
|
2723
|
+
border: 1px solid var(--tb-line);
|
|
2724
|
+
flex-shrink: 0;
|
|
2725
|
+
}
|
|
2726
|
+
.tb-file-upload__error {
|
|
2727
|
+
display: flex;
|
|
2728
|
+
align-items: center;
|
|
2729
|
+
gap: var(--tb-sp-2);
|
|
2730
|
+
font-size: 0.5rem;
|
|
2731
|
+
font-weight: 400;
|
|
2732
|
+
letter-spacing: 0.2em;
|
|
2733
|
+
text-transform: uppercase;
|
|
2734
|
+
color: var(--tb-error);
|
|
2735
|
+
}
|
|
2736
|
+
.tb-file-upload__zone:focus-within {
|
|
2737
|
+
border-color: var(--tb-primary);
|
|
2738
|
+
box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1), 0 0 20px rgba(167, 217, 239, 0.05);
|
|
2739
|
+
}
|
|
2740
|
+
|
|
2388
2741
|
/* src/css/index.css */
|
|
2389
2742
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/css/tokens.css","../src/css/base.css","../src/css/components/button.css","../src/css/components/input.css","../src/css/components/textarea.css","../src/css/components/card.css","../src/css/components/badge.css","../src/css/components/tag.css","../src/css/components/title-line.css","../src/css/components/brackets.css","../src/css/components/select.css","../src/css/components/modal.css","../src/css/components/tabs.css","../src/css/components/toast.css","../src/css/components/tooltip.css","../src/css/components/nav-dropdown.css","../src/css/components/checkbox.css","../src/css/components/toggle.css","../src/css/components/radio.css","../src/css/components/progress.css","../src/css/components/battery.css","../src/css/components/table.css","../src/css/components/skeleton.css","../src/css/components/spinners.css","../src/css/components/pagination.css","../src/css/components/breadcrumbs.css","../src/css/components/toolbar.css","../src/css/components/sidenav.css","../src/css/components/code-block.css"],"sourcesContent":["/* ═══════════════════════════════════════\n TOKENS — Design tokens for Terminal Blueprint\n Theme-aware via data-theme and data-contrast\n on :root (<html>).\n\n Usage:\n document.documentElement.dataset.theme = 'dark' // default\n document.documentElement.dataset.contrast = 'high' // optional\n ═══════════════════════════════════════ */\n\n/* ── Dark theme (default) ── */\n:root,\n:root[data-theme=\"dark\"] {\n /* palette */\n --tb-primary: #a7d9ef;\n --tb-bg: #020617;\n --tb-bg-surface: #0f172a;\n --tb-bg-card: rgba(10, 20, 40, 0.85);\n --tb-bg-card-hover: rgba(15, 28, 55, 0.9);\n --tb-bg-input: rgba(15, 23, 42, 0.6);\n --tb-line: rgba(167, 217, 239, 0.15);\n --tb-line-bright: rgba(167, 217, 239, 0.35);\n --tb-glow: rgba(167, 217, 239, 0.4);\n --tb-font: \"Lexend\", \"JetBrains Mono\", sans-serif;\n\n /* semantic */\n --tb-error: #ef6b6b;\n --tb-error-dim: rgba(239, 107, 107, 0.15);\n --tb-success: #6bcfa0;\n --tb-success-dim: rgba(107, 207, 160, 0.15);\n --tb-warning: #e8c468;\n --tb-warning-dim: rgba(232, 196, 104, 0.15);\n --tb-info: #a7d9ef;\n\n /* text hierarchy — enhanced contrast (default) */\n --tb-text-heading: #ffffff;\n --tb-text-body: #cddbe4;\n --tb-text-label: #9fc3d4;\n --tb-text-muted: #7aaab9;\n\n /* spacing (8px grid) */\n --tb-sp-1: 4px;\n --tb-sp-2: 8px;\n --tb-sp-3: 12px;\n --tb-sp-4: 16px;\n --tb-sp-6: 24px;\n --tb-sp-8: 32px;\n --tb-sp-10: 40px;\n --tb-sp-12: 48px;\n --tb-sp-16: 64px;\n\n /* z-index */\n --tb-z-base: 0;\n --tb-z-dropdown: 100;\n --tb-z-sticky: 200;\n --tb-z-fixed: 300;\n --tb-z-modal-backdrop: 400;\n --tb-z-modal: 500;\n --tb-z-popover: 600;\n --tb-z-tooltip: 700;\n --tb-z-toast: 800;\n\n /* transitions */\n --tb-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n --tb-ease-enter: cubic-bezier(0, 0, 0.2, 1);\n --tb-ease-exit: cubic-bezier(0.4, 0, 1, 1);\n --tb-duration-fast: 150ms;\n --tb-duration-normal: 300ms;\n --tb-duration-slow: 500ms;\n}\n\n/* ── High contrast override ── */\n:root[data-contrast=\"high\"],\n:root[data-theme=\"dark\"][data-contrast=\"high\"] {\n --tb-text-heading: #ffffff;\n --tb-text-body: #d4ecf7;\n --tb-text-label: #a7d9ef;\n --tb-text-muted: #89b8cc;\n}\n\n/* ── Light theme (placeholder for future) ── */\n:root[data-theme=\"light\"] {\n /* --tb-primary: ...;\n --tb-bg: ...;\n --tb-bg-surface: ...;\n --tb-bg-card: ...;\n --tb-line: ...;\n --tb-text-heading: ...;\n --tb-text-body: ...;\n --tb-text-label: ...;\n --tb-text-muted: ...;\n Override all color tokens here. */\n}\n\n:root[data-theme=\"light\"][data-contrast=\"high\"] {\n /* Future: high contrast light overrides */\n}\n","/* ═══════════════════════════════════════\n BASE — Reset & base styles for Terminal Blueprint\n Wrapped in .tb-root so consumers opt-in.\n Document-level styles activate via :has(.tb-root).\n ═══════════════════════════════════════ */\n\n/* Document-level — activates when .tb-root exists on the page */\n:root:has(.tb-root) {\n scroll-behavior: smooth;\n scrollbar-color: rgba(167, 217, 239, 0.2) var(--tb-bg);\n}\n\n:root:has(.tb-root) body {\n margin: 0;\n padding: 0;\n background-color: var(--tb-bg);\n overflow-x: hidden;\n}\n\n:root:has(.tb-root) ::-webkit-scrollbar { width: 6px; height: 6px; }\n:root:has(.tb-root) ::-webkit-scrollbar-track { background: var(--tb-bg); }\n:root:has(.tb-root) ::-webkit-scrollbar-thumb { background: rgba(167, 217, 239, 0.15); border-radius: 0; }\n:root:has(.tb-root) ::-webkit-scrollbar-thumb:hover { background: rgba(167, 217, 239, 0.3); }\n\n/* Reset — scoped to .tb-root */\n.tb-root *,\n.tb-root *::before,\n.tb-root *::after {\n box-sizing: border-box;\n}\n\n/* Body-level styles — applied to .tb-root wrapper */\n.tb-root {\n font-family: var(--tb-font);\n background-color: var(--tb-bg);\n color: var(--tb-text-body);\n line-height: 1.6;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n min-height: 100vh;\n background-image: linear-gradient(\n rgba(167, 217, 239, 0.025) 1px,\n transparent 1px\n ),\n linear-gradient(\n 90deg,\n rgba(167, 217, 239, 0.025) 1px,\n transparent 1px\n );\n background-size: 40px 40px;\n}\n\n/* Links */\n.tb-root a {\n color: var(--tb-text-label);\n text-decoration: none;\n transition: text-shadow var(--tb-duration-normal) ease,\n color var(--tb-duration-normal) ease;\n}\n\n.tb-root a:hover {\n color: var(--tb-text-heading);\n text-shadow: 0 0 12px var(--tb-glow), 0 0 24px rgba(167, 217, 239, 0.2);\n}\n\n/* Headings */\n.tb-root h1,\n.tb-root h2,\n.tb-root h3,\n.tb-root h4,\n.tb-root h5,\n.tb-root h6 {\n color: var(--tb-text-heading);\n}\n\n/* Forms — no text-transform */\n.tb-root input,\n.tb-root textarea,\n.tb-root select {\n text-transform: none;\n}\n\n/* Focus visible */\n.tb-root *:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-root :focus:not(:focus-visible) {\n outline: none;\n}\n\n.tb-root input:focus-visible,\n.tb-root textarea:focus-visible,\n.tb-root select:focus-visible {\n outline: none;\n border-color: var(--tb-primary) !important;\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.15),\n 0 0 15px rgba(167, 217, 239, 0.1);\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .tb-root *,\n .tb-root *::before,\n .tb-root *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-root {\n letter-spacing: 0.05em;\n line-height: 1.5;\n }\n}\n","/* ═══════════════════════════════════════\n BUTTON — .tb-btn\n ═══════════════════════════════════════ */\n\n.tb-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tb-sp-2);\n height: 44px;\n padding: 0 var(--tb-sp-6);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n font-weight: 500;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n text-decoration: none;\n border: 1px solid var(--tb-line-bright);\n background: transparent;\n color: var(--tb-primary);\n cursor: pointer;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n position: relative;\n white-space: nowrap;\n}\n\n.tb-btn:hover {\n border-color: var(--tb-primary);\n color: #fff;\n text-shadow: 0 0 15px var(--tb-glow);\n background: rgba(167, 217, 239, 0.05);\n}\n\n.tb-btn:active {\n transform: scale(0.97);\n text-shadow: 0 0 20px var(--tb-glow);\n}\n\n/* ── Primary (filled / inverted) ── */\n.tb-btn--primary {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n.tb-btn--primary:hover {\n background: #fff;\n color: var(--tb-bg);\n text-shadow: none;\n box-shadow: 0 0 20px var(--tb-glow);\n}\n\n/* ── Secondary (alias for default outline) ── */\n.tb-btn--secondary {\n border-color: var(--tb-line-bright);\n color: var(--tb-primary);\n}\n\n.tb-btn--secondary:hover {\n border-color: var(--tb-primary);\n color: #fff;\n text-shadow: 0 0 15px var(--tb-glow);\n background: rgba(167, 217, 239, 0.05);\n}\n\n/* ── Danger ── */\n.tb-btn--danger {\n border-color: rgba(239, 107, 107, 0.4);\n color: var(--tb-error);\n}\n\n.tb-btn--danger:hover {\n border-color: var(--tb-error);\n color: #fff;\n text-shadow: 0 0 15px rgba(239, 107, 107, 0.4);\n background: rgba(239, 107, 107, 0.08);\n}\n\n/* ── Ghost (minimal) ── */\n.tb-btn--ghost {\n border-color: transparent;\n background: transparent;\n color: var(--tb-text-label);\n}\n\n.tb-btn--ghost:hover {\n border-color: var(--tb-line);\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.03);\n}\n\n/* ── Disabled ── */\n.tb-btn[disabled],\n.tb-btn--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Loading ── */\n.tb-btn--loading {\n pointer-events: none;\n color: transparent !important;\n position: relative;\n}\n\n.tb-btn--loading::before,\n.tb-btn--loading::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n border-style: solid;\n border-color: var(--tb-primary);\n}\n\n.tb-btn--loading::before {\n width: 14px;\n height: 14px;\n margin: -7px 0 0 -7px;\n border-width: 1.5px;\n animation: tb-spin-cw 2.5s linear infinite;\n}\n\n.tb-btn--loading::after {\n width: 8px;\n height: 8px;\n margin: -4px 0 0 -4px;\n border-width: 1px;\n opacity: 0.45;\n animation: tb-spin-ccw 1.6s linear infinite;\n}\n\n.tb-btn--primary.tb-btn--loading::before,\n.tb-btn--primary.tb-btn--loading::after {\n border-color: var(--tb-bg);\n}\n\n/* ── Loading with text ── */\n.tb-btn--loading-text {\n color: inherit;\n}\n\n/* ── Icon ── */\n.tb-btn__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ── Spinner (child element approach) ── */\n.tb-btn__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 16px;\n height: 16px;\n}\n.tb-btn__spinner .tb-btn__spinner-square {\n position: absolute;\n inset: 0;\n border: 1.5px solid currentColor;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(1) {\n animation: tb-spin-cw 2s linear infinite;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(2) {\n animation: tb-spin-ccw 3s linear infinite;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(3) {\n animation: tb-spin-cw 4s linear infinite;\n}\n\n/* ── Focus-visible ── */\n.tb-btn:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Size variants ── */\n.tb-btn--sm {\n height: 32px;\n padding: 0 var(--tb-sp-4);\n font-size: 0.5rem;\n}\n\n.tb-btn--lg {\n height: 52px;\n padding: 0 var(--tb-sp-8);\n font-size: 0.65rem;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-spin-cw {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@keyframes tb-spin-ccw {\n from { transform: rotate(0deg); }\n to { transform: rotate(-360deg); }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-btn {\n letter-spacing: 0.2em;\n padding-left: var(--tb-sp-4);\n padding-right: var(--tb-sp-4);\n }\n}\n","/* ═══════════════════════════════════════\n INPUT — .tb-input, .tb-label, .tb-input__error, .tb-input__hint\n ═══════════════════════════════════════ */\n\n/* ── Label ── */\n.tb-label {\n font-size: 0.55rem;\n font-weight: 500;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-label__required {\n color: var(--tb-error);\n margin-left: var(--tb-sp-1);\n}\n\n/* ── Input ── */\n.tb-input {\n height: 44px;\n padding: 0 var(--tb-sp-4);\n font-family: var(--tb-font);\n font-size: 0.7rem;\n font-weight: 400;\n letter-spacing: 0.1em;\n color: var(--tb-text-body);\n background: var(--tb-bg-input);\n border: 1px solid var(--tb-line);\n transition: border-color var(--tb-duration-normal) ease,\n box-shadow var(--tb-duration-normal) ease;\n}\n\n.tb-input::placeholder {\n color: var(--tb-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.2em;\n font-size: 0.6rem;\n}\n\n.tb-input:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-input:focus {\n outline: none;\n border-color: var(--tb-primary);\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1),\n 0 0 20px rgba(167, 217, 239, 0.05);\n}\n\n/* ── Focus-visible ── */\n.tb-input:focus-visible {\n outline: none; /* already has box-shadow focus style */\n}\n\n/* ── Error state ── */\n.tb-input--error {\n border-color: rgba(239, 107, 107, 0.5) !important;\n}\n\n.tb-input--error:focus {\n border-color: var(--tb-error) !important;\n box-shadow: 0 0 0 3px rgba(239, 107, 107, 0.1),\n 0 0 20px rgba(239, 107, 107, 0.05);\n}\n\n/* ── Success state ── */\n.tb-input--success {\n border-color: rgba(107, 207, 160, 0.5) !important;\n}\n\n/* ── Disabled ── */\n.tb-input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n background: rgba(15, 23, 42, 0.3);\n}\n\n/* ── Error message ── */\n.tb-input__error {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-error);\n}\n\n/* ── Hint / helper text ── */\n.tb-input__hint {\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n}\n\n/* ── Size variants ── */\n.tb-input--sm {\n height: 32px;\n font-size: 0.6rem;\n padding: 0 var(--tb-sp-3);\n}\n\n.tb-input--lg {\n height: 52px;\n font-size: 0.8rem;\n padding: 0 var(--tb-sp-6);\n}\n\n/* ── Form group ── */\n.tb-form-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ── Input wrapper (icon positioning) ── */\n.tb-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.tb-input-wrapper .tb-input {\n width: 100%;\n}\n.tb-input-wrapper--icon-left .tb-input {\n padding-left: 36px;\n}\n.tb-input-wrapper--icon-right .tb-input {\n padding-right: 36px;\n}\n.tb-input__icon {\n position: absolute;\n display: flex;\n align-items: center;\n pointer-events: none;\n color: var(--tb-text-muted);\n}\n.tb-input-wrapper--icon-left .tb-input__icon {\n left: 10px;\n}\n.tb-input-wrapper--icon-right .tb-input__icon {\n right: 10px;\n}\n","/* ═══════════════════════════════════════\n TEXTAREA — .tb-textarea\n ═══════════════════════════════════════ */\n\n.tb-textarea {\n min-height: 100px;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n resize: vertical;\n font-family: var(--tb-font);\n font-size: 0.7rem;\n font-weight: 400;\n letter-spacing: 0.1em;\n color: var(--tb-primary);\n background: var(--tb-bg-input);\n border: 1px solid var(--tb-line);\n transition: border-color var(--tb-duration-normal) ease,\n box-shadow var(--tb-duration-normal) ease;\n line-height: 1.8;\n}\n\n.tb-textarea::placeholder {\n color: var(--tb-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.2em;\n font-size: 0.6rem;\n}\n\n.tb-textarea:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-textarea:focus {\n outline: none;\n border-color: var(--tb-primary);\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1),\n 0 0 20px rgba(167, 217, 239, 0.05);\n}\n\n/* ── Error state ── */\n.tb-textarea--error {\n border-color: rgba(239, 107, 107, 0.5) !important;\n}\n\n.tb-textarea--error:focus {\n border-color: var(--tb-error) !important;\n box-shadow: 0 0 0 3px rgba(239, 107, 107, 0.1),\n 0 0 20px rgba(239, 107, 107, 0.05);\n}\n\n/* ── Disabled ── */\n.tb-textarea:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n background: rgba(15, 23, 42, 0.3);\n}\n\n/* ── Size variants ── */\n.tb-textarea--sm {\n min-height: 64px;\n font-size: 0.6rem;\n padding: var(--tb-sp-2) var(--tb-sp-3);\n}\n\n.tb-textarea--lg {\n min-height: 160px;\n font-size: 0.8rem;\n padding: var(--tb-sp-4) var(--tb-sp-6);\n}\n\n/* ── Error message ── */\n.tb-textarea__error {\n color: var(--tb-error);\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n/* ── Hint / helper text ── */\n.tb-textarea__hint {\n color: var(--tb-text-muted);\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n","/* ═══════════════════════════════════════\n CARD — .tb-card\n ═══════════════════════════════════════ */\n\n.tb-card {\n position: relative;\n border: 1px solid var(--tb-line);\n background: var(--tb-bg-card);\n padding: var(--tb-sp-6);\n transition: border-color var(--tb-duration-normal) ease, background var(--tb-duration-normal) ease;\n}\n\n/* ── Hoverable variant ── */\n.tb-card--hoverable:hover {\n border-color: var(--tb-line-bright);\n background: var(--tb-bg-card-hover);\n}\n\n/* ── Card parts ── */\n.tb-card__header {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-card__title {\n font-size: 0.75rem;\n font-weight: 700;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n margin-bottom: var(--tb-sp-3);\n}\n\n.tb-card__body {\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-card__body p {\n font-size: 0.6rem;\n letter-spacing: 0.12em;\n color: var(--tb-text-body);\n line-height: 2;\n text-transform: uppercase;\n font-weight: 400;\n}\n\n.tb-card__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--tb-sp-2);\n margin-top: var(--tb-sp-4);\n}\n\n.tb-card__footer {\n display: flex;\n gap: var(--tb-sp-4);\n padding-top: var(--tb-sp-4);\n border-top: 1px solid var(--tb-line);\n margin-top: var(--tb-sp-6);\n}\n\n.tb-card__footer a {\n font-size: 0.55rem;\n letter-spacing: 0.2em;\n color: var(--tb-text-muted);\n display: flex;\n align-items: center;\n gap: var(--tb-sp-1);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-card__footer a:hover {\n color: var(--tb-primary);\n}\n\n/* ── Bracketed variant ── */\n.tb-card--bracketed {\n position: relative;\n}\n\n.tb-card--bracketed .tb-card__bracket {\n position: absolute;\n width: 18px;\n height: 18px;\n border-color: var(--tb-primary);\n border-style: solid;\n border-width: 0;\n opacity: 0;\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) ease;\n}\n\n.tb-card--bracketed .tb-card__bracket--tl {\n top: -1px;\n left: -1px;\n border-top-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--tr {\n top: -1px;\n right: -1px;\n border-top-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--bl {\n bottom: -1px;\n left: -1px;\n border-bottom-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--br {\n bottom: -1px;\n right: -1px;\n border-bottom-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-card--bracketed:hover .tb-card__bracket {\n opacity: 1;\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--tl {\n transform: translate(-6px, -6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--tr {\n transform: translate(6px, -6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--bl {\n transform: translate(-6px, 6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--br {\n transform: translate(6px, 6px);\n}\n\n/* ── Pulse variant — bracket glow animation ── */\n.tb-card--pulse .tb-card__bracket {\n animation: tb-bracket-glow 2.5s ease-in-out infinite;\n}\n\n.tb-card--pulse .tb-card__bracket--tr {\n animation-delay: 0.15s;\n}\n\n.tb-card--pulse .tb-card__bracket--bl {\n animation-delay: 0.3s;\n}\n\n.tb-card--pulse .tb-card__bracket--br {\n animation-delay: 0.45s;\n}\n","/* ═══════════════════════════════════════\n BADGE — .tb-badge\n ═══════════════════════════════════════ */\n\n.tb-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--tb-sp-2);\n padding: var(--tb-sp-1) var(--tb-sp-3);\n font-size: 0.5rem;\n font-weight: 500;\n letter-spacing: 0.35em;\n text-transform: uppercase;\n border: 1px solid;\n border-color: var(--tb-line-bright);\n color: var(--tb-text-body);\n}\n\n/* ── Variants ── */\n.tb-badge--success {\n border-color: rgba(107, 207, 160, 0.3);\n color: var(--tb-success);\n}\n\n.tb-badge--warning {\n border-color: rgba(232, 196, 104, 0.3);\n color: var(--tb-warning);\n}\n\n.tb-badge--error {\n border-color: rgba(239, 107, 107, 0.3);\n color: var(--tb-error);\n}\n\n.tb-badge--filled {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n/* ── Status dot ── */\n.tb-badge__dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n flex-shrink: 0;\n}\n\n/* ── Pulse animation ── */\n.tb-badge--pulse .tb-badge__dot {\n animation: tb-pulse 2.5s ease-in-out infinite;\n}\n\n@keyframes tb-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.2;\n }\n}\n","/* ═══════════════════════════════════════\n TAG — .tb-tag\n Derived from the badge pattern but intended\n for inline keyword / skill tags (e.g. card tags).\n ═══════════════════════════════════════ */\n\n.tb-tag {\n display: inline-flex;\n align-items: center;\n gap: var(--tb-sp-1);\n padding: var(--tb-sp-1) var(--tb-sp-3);\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n border: 1px solid var(--tb-line);\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-tag:hover {\n color: var(--tb-text-heading);\n border-color: var(--tb-line-bright);\n}\n","/* ═══════════════════════════════════════\n TITLE LINE — .tb-title-line\n Section title with decorative lines on each side.\n Extracted from .section-header pattern.\n ═══════════════════════════════════════ */\n\n.tb-title-line {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-6);\n margin-bottom: var(--tb-sp-10);\n}\n\n.tb-title-line::before,\n.tb-title-line::after {\n content: \"\";\n height: 1px;\n flex: 1;\n background: var(--tb-line);\n}\n\n.tb-title-line__label {\n font-size: 0.65rem;\n font-weight: 400;\n letter-spacing: 0.5em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n white-space: nowrap;\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-title-line__label {\n letter-spacing: 0.2em;\n }\n}\n","/* ═══════════════════════════════════════\n BRACKETS — .tb-brackets\n Standalone corner bracket decoration wrapper.\n Can be applied to any element. Brackets appear\n on hover and expand outward.\n ═══════════════════════════════════════ */\n\n.tb-brackets {\n position: relative;\n}\n\n.tb-brackets__corner {\n position: absolute;\n width: 18px;\n height: 18px;\n border-color: var(--tb-primary);\n border-style: solid;\n border-width: 0;\n opacity: 0;\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) ease;\n}\n\n/* ── Corner positions ── */\n.tb-brackets__corner--tl {\n top: -1px;\n left: -1px;\n border-top-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-brackets__corner--tr {\n top: -1px;\n right: -1px;\n border-top-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-brackets__corner--bl {\n bottom: -1px;\n left: -1px;\n border-bottom-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-brackets__corner--br {\n bottom: -1px;\n right: -1px;\n border-bottom-width: 2px;\n border-right-width: 2px;\n}\n\n/* ── Hover expansion ── */\n.tb-brackets:hover .tb-brackets__corner {\n opacity: 1;\n}\n\n.tb-brackets:hover .tb-brackets__corner--tl {\n transform: translate(-6px, -6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--tr {\n transform: translate(6px, -6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--bl {\n transform: translate(-6px, 6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--br {\n transform: translate(6px, 6px);\n}\n\n/* ── Pulse variant — always visible with pulsating glow ── */\n.tb-brackets--pulse .tb-brackets__corner--tl,\n.tb-brackets--pulse .tb-brackets__corner--tr,\n.tb-brackets--pulse .tb-brackets__corner--bl,\n.tb-brackets--pulse .tb-brackets__corner--br {\n animation: tb-bracket-glow 2.5s ease-in-out infinite;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--tr {\n animation-delay: 0.15s;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--bl {\n animation-delay: 0.3s;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--br {\n animation-delay: 0.45s;\n}\n\n@keyframes tb-bracket-glow {\n 0%, 100% {\n border-color: var(--tb-primary);\n opacity: 0.4;\n filter: drop-shadow(0 0 0 transparent);\n }\n 50% {\n border-color: #fff;\n opacity: 1;\n filter: drop-shadow(0 0 6px rgba(167, 217, 239, 0.5));\n }\n}\n","/* ═══════════════════════════════════════\n SELECT — .tb-select\n ═══════════════════════════════════════ */\n\n.tb-select {\n position: relative;\n}\n\n.tb-select__trigger {\n width: 100%;\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n height: 44px;\n padding: 0 var(--tb-sp-4);\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n color: var(--tb-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: border-color var(--tb-duration-normal) ease;\n}\n\n.tb-select__trigger:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-select__chevron {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.6;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-select__dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line-bright);\n z-index: var(--tb-z-dropdown);\n max-height: 200px;\n overflow-y: auto;\n opacity: 0;\n visibility: hidden;\n transform: translateY(-4px);\n transition: opacity var(--tb-duration-normal) ease,\n visibility var(--tb-duration-normal) ease,\n transform var(--tb-duration-normal) ease;\n}\n\n.tb-select__dropdown--open {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.tb-select__option {\n padding: var(--tb-sp-3) var(--tb-sp-4);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n cursor: pointer;\n color: var(--tb-text-label);\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n border-left: 2px solid transparent;\n}\n\n.tb-select__option:hover {\n color: var(--tb-text-heading);\n background: rgba(167, 217, 239, 0.06);\n border-left-color: var(--tb-primary);\n}\n\n.tb-select__option--selected {\n color: var(--tb-text-heading);\n background: rgba(167, 217, 239, 0.06);\n border-left-color: var(--tb-primary);\n}\n\n/* ── Focus-visible ── */\n.tb-select__trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n.tb-select__option:focus-visible {\n outline: none;\n background: rgba(167, 217, 239, 0.03);\n border-left-color: var(--tb-primary);\n}\n\n/* ── Error ── */\n.tb-select--error .tb-select__trigger {\n border-color: var(--tb-error);\n box-shadow: 0 0 0 1px var(--tb-error-dim);\n}\n","/* ═══════════════════════════════════════\n MODAL — .tb-modal\n ═══════════════════════════════════════ */\n\n.tb-modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(2, 6, 23, 0.85);\n z-index: var(--tb-z-modal-backdrop);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n visibility: hidden;\n transition: opacity var(--tb-duration-normal) var(--tb-ease-standard),\n visibility var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-modal-overlay--open {\n opacity: 1;\n visibility: visible;\n backdrop-filter: blur(8px);\n}\n\n.tb-modal {\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-8);\n max-width: 520px;\n width: 90%;\n position: relative;\n z-index: var(--tb-z-modal);\n transform: translateY(20px) scale(0.97);\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-modal-overlay--open .tb-modal {\n transform: translateY(0) scale(1);\n}\n\n.tb-modal__close {\n position: absolute;\n top: var(--tb-sp-4);\n right: var(--tb-sp-4);\n background: none;\n border: none;\n color: var(--tb-primary);\n cursor: pointer;\n opacity: 0.4;\n transition: opacity var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-modal__close:hover {\n opacity: 1;\n}\n\n/* ── Focus-visible ── */\n.tb-modal__close:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-modal__title {\n font-size: 0.75rem;\n font-weight: 700;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-modal__description {\n font-size: 0.6rem;\n color: var(--tb-text-body);\n line-height: 2;\n letter-spacing: 0.12em;\n text-transform: uppercase;\n font-weight: 400;\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-modal__body {\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-modal__footer {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n justify-content: flex-end;\n border-top: 1px solid var(--tb-line);\n padding-top: var(--tb-sp-6);\n}\n","/* ═══════════════════════════════════════\n TABS — .tb-tabs\n ═══════════════════════════════════════ */\n\n.tb-tabs {\n /* wrapper — no layout opinion */\n}\n\n.tb-tabs__list {\n display: flex;\n border-bottom: 1px solid var(--tb-line);\n margin-bottom: var(--tb-sp-8);\n}\n\n.tb-tabs__trigger {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n padding: var(--tb-sp-3) var(--tb-sp-6);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n color: var(--tb-text-label);\n cursor: pointer;\n margin-bottom: -1px;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-tabs__trigger:hover {\n color: var(--tb-text-body);\n background: rgba(10, 20, 40, 0.8);\n}\n\n.tb-tabs__trigger--active {\n color: var(--tb-text-heading);\n border-bottom-color: var(--tb-primary);\n}\n\n/* ── Focus-visible ── */\n.tb-tabs__trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: -2px;\n}\n\n.tb-tabs__content {\n display: none;\n}\n\n.tb-tabs__content--active {\n display: block;\n}\n","/* ═══════════════════════════════════════\n TOAST — .tb-toast\n ═══════════════════════════════════════ */\n\n/* ── Container ── */\n.tb-toast-container {\n position: fixed;\n z-index: var(--tb-z-toast);\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n pointer-events: none;\n}\n\n.tb-toast-container--top-right {\n top: var(--tb-sp-8);\n right: var(--tb-sp-8);\n align-items: flex-end;\n}\n\n.tb-toast-container--top-center {\n top: var(--tb-sp-8);\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n}\n\n.tb-toast-container--bottom-right {\n bottom: var(--tb-sp-8);\n right: var(--tb-sp-8);\n align-items: flex-end;\n}\n\n.tb-toast-container--bottom-center {\n bottom: var(--tb-sp-8);\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n}\n\n/* ── Toast ── */\n.tb-toast {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border: 1px solid;\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n pointer-events: auto;\n opacity: 0;\n transform: translateY(16px);\n transition: all var(--tb-duration-slow) var(--tb-ease-enter);\n}\n\n.tb-toast--show {\n opacity: 1;\n transform: translateY(0);\n animation: tb-toast-slide-in var(--tb-duration-slow) var(--tb-ease-enter);\n}\n\n/* ── Variants ── */\n.tb-toast--success {\n border-color: rgba(107, 207, 160, 0.3);\n background: var(--tb-success-dim);\n color: var(--tb-success);\n}\n\n.tb-toast--error {\n border-color: rgba(239, 107, 107, 0.3);\n background: var(--tb-error-dim);\n color: var(--tb-error);\n}\n\n.tb-toast--warning {\n border-color: rgba(232, 196, 104, 0.3);\n background: var(--tb-warning-dim);\n color: var(--tb-warning);\n}\n\n.tb-toast--info {\n border-color: rgba(167, 217, 239, 0.3);\n background: rgba(167, 217, 239, 0.08);\n color: var(--tb-primary);\n}\n\n.tb-toast--inverted {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n/* ── Parts ── */\n.tb-toast__icon {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.tb-toast__message {\n flex: 1;\n}\n\n.tb-toast__dismiss {\n display: inline-flex;\n align-items: center;\n background: none;\n border: none;\n color: inherit;\n cursor: pointer;\n opacity: 0.5;\n transition: opacity var(--tb-duration-fast) var(--tb-ease-standard);\n padding: 0;\n margin-left: auto;\n}\n\n.tb-toast__dismiss:hover {\n opacity: 1;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-toast-slide-in {\n from {\n opacity: 0;\n transform: translateY(16px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes tb-toast-slide-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-16px);\n }\n}\n","/* ═══════════════════════════════════════\n TOOLTIP — .tb-tooltip\n ═══════════════════════════════════════ */\n\n.tb-tooltip-wrap {\n position: relative;\n display: inline-block;\n}\n\n.tb-tooltip {\n position: absolute;\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n font-size: 0.5rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n padding: var(--tb-sp-2) var(--tb-sp-3);\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--tb-duration-fast) ease,\n transform var(--tb-duration-fast) ease,\n visibility var(--tb-duration-fast) ease;\n z-index: var(--tb-z-tooltip);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip,\n.tb-tooltip-wrap:focus-within .tb-tooltip {\n opacity: 1;\n visibility: visible;\n}\n\n/* ── Top (default) ── */\n.tb-tooltip--top {\n bottom: calc(100% + 10px);\n left: 50%;\n transform: translateX(-50%) translateY(4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--top {\n transform: translateX(-50%) translateY(0);\n}\n\n.tb-tooltip--top::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-top-color: var(--tb-line);\n}\n\n/* ── Bottom ── */\n.tb-tooltip--bottom {\n top: calc(100% + 10px);\n left: 50%;\n transform: translateX(-50%) translateY(-4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--bottom {\n transform: translateX(-50%) translateY(0);\n}\n\n/* ── Left ── */\n.tb-tooltip--left {\n right: calc(100% + 10px);\n top: 50%;\n transform: translateY(-50%) translateX(4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--left {\n transform: translateY(-50%) translateX(0);\n}\n\n/* ── Right ── */\n.tb-tooltip--right {\n left: calc(100% + 10px);\n top: 50%;\n transform: translateY(-50%) translateX(-4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--right {\n transform: translateY(-50%) translateX(0);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-tooltip {\n white-space: normal;\n max-width: min(300px, 90vw);\n }\n}\n","/* ═══════════════════════════════════════\n NAV DROPDOWN — .tb-nav-dropdown\n ═══════════════════════════════════════ */\n\n.tb-nav-item {\n position: relative;\n}\n\n.tb-nav-item__trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n background: none;\n border: none;\n padding: 0;\n font-family: inherit;\n cursor: pointer;\n font-size: 0.65rem;\n font-weight: 400;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-item--open .tb-nav-item__trigger {\n color: var(--tb-text-heading);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-item__trigger {\n color: var(--tb-text-heading);\n }\n}\n\n.tb-nav-item__chevron {\n display: inline-block;\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid currentColor;\n opacity: 0.5;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-item--open .tb-nav-item__chevron {\n transform: rotate(180deg);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-item__chevron {\n transform: rotate(180deg);\n }\n}\n\n.tb-nav-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 10px;\n transform: translateY(8px);\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n min-width: 220px;\n opacity: 0;\n pointer-events: none;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n z-index: var(--tb-z-dropdown);\n padding-top: var(--tb-sp-2);\n}\n\n/* Alignment variants */\n.tb-nav-item--align-center .tb-nav-dropdown {\n left: 50%;\n transform: translateX(-50%) translateY(8px);\n}\n\n.tb-nav-item--align-right .tb-nav-dropdown {\n left: auto;\n right: 0;\n}\n\n/* Invisible bridge so hover doesn't break crossing the gap */\n.tb-nav-dropdown::before {\n content: '';\n position: absolute;\n top: calc(-10px - var(--tb-sp-2));\n left: 0;\n right: 0;\n height: calc(10px + var(--tb-sp-2));\n}\n\n.tb-nav-dropdown--open {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.tb-nav-item--align-center .tb-nav-dropdown--open {\n transform: translateX(-50%) translateY(0);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-dropdown {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n }\n\n .tb-nav-item--align-center:hover .tb-nav-dropdown {\n transform: translateX(-50%) translateY(0);\n }\n}\n\n.tb-nav-dropdown__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n padding: var(--tb-sp-3) var(--tb-sp-4);\n font-size: 0.6rem;\n font-weight: 400;\n letter-spacing: 0.12em;\n text-transform: uppercase;\n text-decoration: none;\n color: var(--tb-text-label);\n border-left: 3px solid transparent;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-dropdown__item:hover {\n background: rgba(167, 217, 239, 0.05);\n border-left-color: var(--tb-primary);\n color: var(--tb-text-heading);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-nav-dropdown {\n min-width: min(220px, 90vw);\n }\n}\n","/* ═══════════════════════════════════════\n CHECKBOX — .tb-checkbox\n ═══════════════════════════════════════ */\n\n.tb-checkbox {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-checkbox input {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 1px solid var(--tb-line-bright);\n background: var(--tb-bg-input);\n cursor: pointer;\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n.tb-checkbox input:checked {\n border-color: var(--tb-primary);\n background: var(--tb-primary);\n}\n\n.tb-checkbox input:checked::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 5px;\n width: 5px;\n height: 9px;\n border: 2px solid var(--tb-bg);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n}\n\n.tb-checkbox input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n border-color: var(--tb-error);\n background: transparent;\n}\n\n.tb-checkbox input:disabled::before {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n width: 10px;\n height: 10px;\n background: linear-gradient(\n 45deg,\n transparent 42%,\n var(--tb-error) 42%,\n var(--tb-error) 58%,\n transparent 58%\n ),\n linear-gradient(\n -45deg,\n transparent 42%,\n var(--tb-error) 42%,\n var(--tb-error) 58%,\n transparent 58%\n );\n}\n\n.tb-checkbox input:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Error ── */\n.tb-checkbox--error input {\n border-color: var(--tb-error);\n}\n","/* ═══════════════════════════════════════\n TOGGLE — .tb-toggle\n ═══════════════════════════════════════ */\n\n.tb-toggle {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-toggle__input {\n display: none;\n}\n\n.tb-toggle__track {\n width: 40px;\n height: 20px;\n border: 1px solid var(--tb-line-bright);\n background: var(--tb-bg-input);\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n/* Thumb — works as a child element OR as ::after on the track */\n.tb-toggle__thumb,\n.tb-toggle__track::after {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n width: 12px;\n height: 12px;\n background: var(--tb-primary);\n opacity: 0.4;\n transition: left var(--tb-duration-fast) var(--tb-ease-standard),\n opacity var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n/* Hide ::after when a real .tb-toggle__thumb exists */\n.tb-toggle__track:has(.tb-toggle__thumb)::after {\n display: none;\n}\n\n.tb-toggle__input:checked + .tb-toggle__track {\n border-color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.1);\n}\n\n.tb-toggle__input:checked + .tb-toggle__track .tb-toggle__thumb,\n.tb-toggle__input:checked + .tb-toggle__track::after {\n left: 23px;\n opacity: 1;\n}\n\n.tb-toggle__label {\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n/* ── Focus-visible ── */\n.tb-toggle__input:focus-visible + .tb-toggle__track {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Disabled ── */\n.tb-toggle--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n","/* ═══════════════════════════════════════\n RADIO — .tb-radio\n ═══════════════════════════════════════ */\n\n.tb-radio-group {\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n}\n\n.tb-radio-group--horizontal {\n flex-direction: row;\n}\n\n.tb-radio {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-radio input {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 1px solid var(--tb-line-bright);\n border-radius: 50%;\n background: var(--tb-bg-input);\n cursor: pointer;\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n.tb-radio input:checked {\n border-color: var(--tb-primary);\n}\n\n.tb-radio input:checked::after {\n content: \"\";\n position: absolute;\n top: 4px;\n left: 4px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--tb-primary);\n}\n\n.tb-radio input:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-radio input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n","/* ═══════════════════════════════════════\n PROGRESS — .tb-progress\n ═══════════════════════════════════════ */\n\n.tb-progress {\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-progress__header {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--tb-sp-2);\n}\n\n.tb-progress__label {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-progress__value {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-progress__track {\n height: 4px;\n background: var(--tb-line);\n position: relative;\n overflow: hidden;\n}\n\n.tb-progress__fill {\n height: 100%;\n background: var(--tb-primary);\n transition: width var(--tb-duration-slow) var(--tb-ease-standard);\n position: relative;\n overflow: hidden;\n}\n\n/* ── Animated shimmer ── */\n.tb-progress__fill--animated::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n rgba(255, 255, 255, 0.25) 50%,\n transparent 100%\n );\n background-size: 200% 100%;\n animation: tb-progress-shimmer 2s ease-in-out infinite;\n}\n\n/* ── Color variants ── */\n.tb-progress__fill--success {\n background: var(--tb-success);\n}\n\n.tb-progress__fill--warning {\n background: var(--tb-warning);\n}\n\n.tb-progress__fill--error {\n background: var(--tb-error);\n}\n\n/* ── Indeterminate ── */\n.tb-progress--indeterminate .tb-progress__fill {\n width: 30%;\n animation: tb-progress-indeterminate 1.5s var(--tb-ease-standard) infinite;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-progress-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n@keyframes tb-progress-indeterminate {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(400%); }\n}\n","/* ═══════════════════════════════════════\n BATTERY — .tb-battery\n ═══════════════════════════════════════ */\n\n/* ── Vertical variant (default) ── */\n.tb-battery {\n display: flex;\n flex-direction: column;\n width: 48px;\n}\n\n.tb-battery__track {\n border: 1px solid var(--tb-line);\n padding: 3px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tb-battery__segment {\n flex: 1;\n background: rgba(167, 217, 239, 0.08);\n transition: background var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-battery__segment--filled {\n background: var(--tb-primary);\n opacity: 0.7;\n}\n\n/* ── Segment color variants ── */\n.tb-battery__segment--filled.tb-battery__segment--success {\n background: var(--tb-success);\n}\n\n.tb-battery__segment--filled.tb-battery__segment--warning {\n background: var(--tb-warning);\n}\n\n.tb-battery__segment--filled.tb-battery__segment--error {\n background: var(--tb-error);\n}\n\n.tb-battery__cap {\n width: 10px;\n height: 6px;\n border: 1px solid var(--tb-line);\n align-self: center;\n margin-top: -1px;\n}\n\n.tb-battery__label {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-battery__value {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n/* ── Inline / horizontal variant ── */\n.tb-battery--inline {\n flex-direction: row;\n align-items: center;\n gap: var(--tb-sp-3);\n width: auto;\n}\n\n.tb-battery--inline .tb-battery__track {\n flex: 1;\n height: 20px;\n flex-direction: row;\n}\n\n.tb-battery--inline .tb-battery__cap {\n width: 6px;\n height: 10px;\n margin-top: 0;\n margin-left: -1px;\n}\n\n.tb-battery--inline .tb-battery__label {\n min-width: 100px;\n}\n\n.tb-battery--inline .tb-battery__value {\n min-width: 40px;\n text-align: right;\n}\n\n/* ── Animated ── */\n.tb-battery--animated .tb-battery__segment--filled {\n animation: tb-battery-fill 3s ease-in-out infinite;\n}\n\n.tb-battery--animated .tb-battery__segment--filled:nth-child(1) { animation-delay: 0s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(2) { animation-delay: 0.1s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(3) { animation-delay: 0.2s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(4) { animation-delay: 0.3s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(5) { animation-delay: 0.4s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(6) { animation-delay: 0.5s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(7) { animation-delay: 0.6s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(8) { animation-delay: 0.7s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(9) { animation-delay: 0.8s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(10) { animation-delay: 0.9s; }\n\n/* ── Keyframes ── */\n@keyframes tb-battery-fill {\n 0%, 5% { opacity: 0; transform: scaleY(0); }\n 15%, 85% { opacity: 0.8; transform: scaleY(1); }\n 95%, 100% { opacity: 0; }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-battery--inline .tb-battery__label {\n min-width: 60px;\n }\n}\n","/* ═══════════════════════════════════════\n TABLE — .tb-table\n ═══════════════════════════════════════ */\n\n.tb-table__wrapper {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.tb-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.6rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n}\n\n.tb-table th {\n text-align: left;\n font-size: 0.5rem;\n letter-spacing: 0.35em;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border-bottom: 1px solid var(--tb-line-bright);\n color: var(--tb-text-heading);\n font-weight: 500;\n}\n\n.tb-table td {\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border-bottom: 1px solid var(--tb-line);\n color: var(--tb-text-body);\n}\n\n.tb-table tbody tr {\n transition: background var(--tb-duration-fast) ease;\n}\n\n.tb-table tr:hover td {\n opacity: 1;\n background: rgba(167, 217, 239, 0.03);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-table {\n font-size: 0.55rem;\n letter-spacing: 0.08em;\n }\n}\n","/* ═══════════════════════════════════════\n SKELETON — .tb-skeleton\n ═══════════════════════════════════════ */\n\n.tb-skeleton {\n background: linear-gradient(\n 90deg,\n var(--tb-line) 25%,\n rgba(167, 217, 239, 0.08) 50%,\n var(--tb-line) 75%\n );\n background-size: 200% 100%;\n animation: tb-shimmer 1.5s infinite;\n}\n\n/* ── Shape variants ── */\n.tb-skeleton--text {\n height: 12px;\n margin-bottom: var(--tb-sp-2);\n}\n\n.tb-skeleton--heading {\n height: 20px;\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-skeleton--avatar {\n width: 40px;\n height: 40px;\n}\n\n.tb-skeleton--card {\n height: 200px;\n width: 100%;\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-6);\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n}\n\n/* ── Width utilities ── */\n.tb-skeleton--w-40 { width: 40%; }\n.tb-skeleton--w-60 { width: 60%; }\n.tb-skeleton--w-80 { width: 80%; }\n.tb-skeleton--w-100 { width: 100%; }\n\n/* ── Keyframes ── */\n@keyframes tb-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n","/* ═══════════════════════════════════════\n SPINNERS — .tb-spinner\n ═══════════════════════════════════════ */\n\n/* ── Base ── */\n.tb-spinner {\n position: relative;\n display: inline-block;\n width: 24px;\n height: 24px;\n}\n\n/* ── Size variants ── */\n.tb-spinner--sm {\n width: 16px;\n height: 16px;\n}\n\n.tb-spinner--md {\n width: 24px;\n height: 24px;\n}\n\n.tb-spinner--lg {\n width: 40px;\n height: 40px;\n}\n\n/* ── Multi-square spinner ── */\n.tb-spinner--multi-square .tb-spinner__square {\n position: absolute;\n inset: 0;\n border: 1.5px solid var(--tb-primary);\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(1) {\n animation: tb-spin-cw 4s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(2) {\n opacity: 0.75;\n animation: tb-spin-ccw 2.8s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(3) {\n opacity: 0.55;\n animation: tb-spin-cw 1.9s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(4) {\n opacity: 0.35;\n animation: tb-spin-ccw 5.5s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(5) {\n opacity: 0.2;\n animation: tb-spin-cw 3.3s linear infinite;\n}\n\n/* ── Bracket spinner ──\n Two pseudo-elements form └ and ┐ bracket halves.\n Container rotates; pieces split and rejoin. */\n\n.tb-spinner--bracket {\n animation: tb-bracket-rotate 6s ease-in-out infinite;\n}\n\n.tb-spinner--bracket::before,\n.tb-spinner--bracket::after {\n content: \"\";\n position: absolute;\n inset: 0;\n}\n\n/* └ piece — bottom + left borders */\n.tb-spinner--bracket::before {\n border-bottom: 2px solid var(--tb-primary);\n border-left: 2px solid var(--tb-primary);\n animation: tb-bracket-split-a 6s ease-in-out infinite;\n}\n\n/* ┐ piece — top + right borders */\n.tb-spinner--bracket::after {\n border-top: 2px solid var(--tb-primary);\n border-right: 2px solid var(--tb-primary);\n animation: tb-bracket-split-b 6s ease-in-out infinite;\n}\n\n/* Size overrides for bracket border width */\n.tb-spinner--sm.tb-spinner--bracket::before,\n.tb-spinner--sm.tb-spinner--bracket::after {\n border-width: 1.5px;\n}\n\n.tb-spinner--lg.tb-spinner--bracket::before,\n.tb-spinner--lg.tb-spinner--bracket::after {\n border-width: 3px;\n}\n\n/* ── Bracket keyframes ── */\n@keyframes tb-bracket-rotate {\n 0%, 10% { transform: rotate(0deg); }\n 15%, 35% { transform: rotate(45deg); }\n 40%, 60% { transform: rotate(90deg); }\n 65%, 85% { transform: rotate(135deg); }\n 90%, 100% { transform: rotate(180deg); }\n}\n\n@keyframes tb-bracket-split-a {\n 0%, 5% { transform: translate(0, 0); }\n 10%, 15% { transform: translate(-5px, 5px); }\n 20%, 30% { transform: translate(0, 0); }\n 35%, 40% { transform: translate(-5px, 5px); }\n 45%, 55% { transform: translate(0, 0); }\n 60%, 65% { transform: translate(-5px, 5px); }\n 70%, 80% { transform: translate(0, 0); }\n 85%, 90% { transform: translate(-5px, 5px); }\n 95%, 100% { transform: translate(0, 0); }\n}\n\n@keyframes tb-bracket-split-b {\n 0%, 5% { transform: translate(0, 0); }\n 10%, 15% { transform: translate(5px, -5px); }\n 20%, 30% { transform: translate(0, 0); }\n 35%, 40% { transform: translate(5px, -5px); }\n 45%, 55% { transform: translate(0, 0); }\n 60%, 65% { transform: translate(5px, -5px); }\n 70%, 80% { transform: translate(0, 0); }\n 85%, 90% { transform: translate(5px, -5px); }\n 95%, 100% { transform: translate(0, 0); }\n}\n","/* ═══════════════════════════════════════\n PAGINATION — .tb-pagination\n ═══════════════════════════════════════ */\n\n.tb-pagination {\n display: flex;\n gap: var(--tb-sp-2);\n align-items: center;\n}\n\n.tb-pagination__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid var(--tb-line);\n background: transparent;\n color: var(--tb-primary);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n cursor: pointer;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-pagination__btn:hover {\n border-color: var(--tb-primary);\n color: #fff;\n text-shadow: 0 0 15px var(--tb-glow);\n}\n\n/* ── Focus-visible ── */\n.tb-pagination__btn:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-pagination__btn--active {\n background: var(--tb-primary);\n border-color: var(--tb-primary);\n color: var(--tb-bg);\n}\n\n.tb-pagination__btn--active:hover {\n background: var(--tb-primary);\n color: var(--tb-bg);\n text-shadow: none;\n}\n\n.tb-pagination__btn--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.tb-pagination__ellipsis {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n opacity: 0.4;\n padding: 0 var(--tb-sp-1);\n}\n","/* ═══════════════════════════════════════\n BREADCRUMBS — .tb-breadcrumbs\n ═══════════════════════════════════════ */\n\n.tb-breadcrumbs {\n font-size: 0.55rem;\n letter-spacing: 0.3em;\n padding: var(--tb-sp-3) 0;\n}\n\n.tb-breadcrumbs__list {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.tb-breadcrumbs__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n}\n\n.tb-breadcrumbs__separator {\n opacity: 0.2;\n}\n\n.tb-breadcrumbs__link {\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-breadcrumbs__link:hover {\n color: var(--tb-text-body);\n}\n\n.tb-breadcrumbs__current {\n color: var(--tb-text-heading);\n}\n","/* ═══════════════════════════════════════\n TOOLBAR — .tb-toolbar\n Floating control bar with glass effect\n ═══════════════════════════════════════ */\n\n.tb-toolbar {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line-bright);\n padding: var(--tb-sp-2) var(--tb-sp-3);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n font-family: var(--tb-font);\n color: var(--tb-primary);\n}\n\n/* ── Fixed positions ── */\n.tb-toolbar--fixed {\n position: fixed;\n z-index: calc(var(--tb-z-toast) + 10);\n}\n.tb-toolbar--bottom-right {\n bottom: var(--tb-sp-6);\n right: var(--tb-sp-6);\n}\n.tb-toolbar--bottom-left {\n bottom: var(--tb-sp-6);\n left: var(--tb-sp-6);\n}\n.tb-toolbar--top-right {\n top: var(--tb-sp-6);\n right: var(--tb-sp-6);\n}\n.tb-toolbar--top-left {\n top: var(--tb-sp-6);\n left: var(--tb-sp-6);\n}\n\n/* ── Label ── */\n.tb-toolbar__label {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n white-space: nowrap;\n}\n\n/* ── Divider ── */\n.tb-toolbar__divider {\n width: 1px;\n height: 16px;\n background: var(--tb-line);\n flex-shrink: 0;\n}\n\n/* ── Select (dropdown inside toolbar) ── */\n.tb-toolbar__select {\n position: relative;\n display: inline-block;\n}\n\n.tb-toolbar__trigger {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n height: 32px;\n padding: 0 var(--tb-sp-3);\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n color: var(--tb-primary);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n cursor: pointer;\n white-space: nowrap;\n transition: border-color var(--tb-duration-fast) ease;\n min-width: 160px;\n justify-content: space-between;\n}\n\n.tb-toolbar__trigger:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-toolbar__chevron {\n display: inline-block;\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid currentColor;\n opacity: 0.5;\n transition: transform var(--tb-duration-fast) ease;\n flex-shrink: 0;\n}\n\n.tb-toolbar__select--open .tb-toolbar__chevron {\n transform: rotate(180deg);\n}\n\n/* ── Dropdown ── */\n.tb-toolbar__dropdown {\n position: absolute;\n bottom: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n z-index: 10;\n opacity: 0;\n visibility: hidden;\n transform: translateY(4px);\n transition: opacity var(--tb-duration-fast) ease,\n visibility var(--tb-duration-fast) ease,\n transform var(--tb-duration-fast) ease;\n max-height: 280px;\n overflow-y: auto;\n}\n\n.tb-toolbar__select--open .tb-toolbar__dropdown {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n/* Drop-up vs drop-down */\n.tb-toolbar__dropdown--down {\n bottom: auto;\n top: calc(100% + 4px);\n transform: translateY(-4px);\n}\n.tb-toolbar__select--open .tb-toolbar__dropdown--down {\n transform: translateY(0);\n}\n\n/* ── Options ── */\n.tb-toolbar__option {\n padding: var(--tb-sp-2) var(--tb-sp-3);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n cursor: pointer;\n color: var(--tb-text-label);\n border-left: 2px solid transparent;\n transition: all var(--tb-duration-fast) ease;\n white-space: nowrap;\n}\n\n.tb-toolbar__option:hover {\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.05);\n border-left-color: var(--tb-primary);\n}\n\n.tb-toolbar__option--active {\n color: var(--tb-primary);\n border-left-color: var(--tb-primary);\n}\n\n.tb-toolbar__option-meta {\n display: block;\n font-size: 0.45rem;\n color: var(--tb-text-muted);\n letter-spacing: 0.15em;\n margin-top: 2px;\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-toolbar__trigger {\n min-width: 100px;\n }\n .tb-toolbar__label {\n letter-spacing: 0.15em;\n }\n}\n","/* ═══════════════════════════════════════\n SIDENAV — .tb-sidenav\n ═══════════════════════════════════════ */\n\n.tb-sidenav {\n display: flex;\n flex-direction: column;\n}\n\n.tb-sidenav__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n width: 100%;\n padding: var(--tb-sp-2) var(--tb-sp-6);\n color: var(--tb-text-label);\n text-decoration: none;\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n font-weight: 400;\n background: none;\n border: none;\n border-left: 2px solid transparent;\n cursor: pointer;\n transition: color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-sidenav__item:hover {\n color: var(--tb-text-body);\n background: rgba(167, 217, 239, 0.03);\n}\n\n.tb-sidenav .tb-sidenav__item--active {\n color: var(--tb-text-heading);\n border-left-color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.05);\n}\n\n/* ── Icon ── */\n.tb-sidenav__icon {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.6;\n flex-shrink: 0;\n}\n\n.tb-sidenav__item--active .tb-sidenav__icon {\n opacity: 0.9;\n}\n\n/* ── Icon on right ── */\n.tb-sidenav--icon-right .tb-sidenav__icon {\n order: 1;\n}\n\n/* ── Border on right side instead of left ── */\n.tb-sidenav--border-right .tb-sidenav__item {\n border-left: none;\n border-right: 2px solid transparent;\n}\n\n.tb-sidenav--border-right .tb-sidenav__item--active {\n border-right-color: var(--tb-primary);\n}\n\n/* ═══════════════════════════════════════\n COLLAPSIBLE GROUP — .tb-sidenav__group\n ═══════════════════════════════════════ */\n\n.tb-sidenav__group-trigger {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n width: 100%;\n padding: var(--tb-sp-2) var(--tb-sp-6);\n color: var(--tb-text-label);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n font-weight: 400;\n background: none;\n border: none;\n border-left: 2px solid transparent;\n cursor: pointer;\n transition: color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease;\n}\n\n.tb-sidenav__group-trigger:hover {\n color: var(--tb-text-body);\n background: rgba(167, 217, 239, 0.03);\n}\n\n.tb-sidenav__group-chevron {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.4;\n margin-left: auto;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-sidenav__group--open > .tb-sidenav__group-trigger .tb-sidenav__group-chevron {\n transform: rotate(180deg);\n}\n\n.tb-sidenav__group-content {\n display: none;\n}\n\n.tb-sidenav__group--open > .tb-sidenav__group-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Nested items get extra left padding */\n.tb-sidenav__group-content .tb-sidenav__item {\n padding-left: var(--tb-sp-10);\n}\n\n/* ── Focus-visible ── */\n.tb-sidenav__item:focus-visible,\n.tb-sidenav__group-trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: -2px;\n}\n","/* ═══════════════════════════════════════\n CODE BLOCK — .tb-code-block\n ═══════════════════════════════════════ */\n\n.tb-code-block {\n position: relative;\n background: var(--tb-bg);\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-4);\n font-family: \"JetBrains Mono\", monospace;\n font-size: 0.65rem;\n letter-spacing: 0.05em;\n line-height: 1.8;\n color: var(--tb-text-label);\n text-transform: none;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.tb-code-block__copy {\n position: absolute;\n top: var(--tb-sp-2);\n right: var(--tb-sp-2);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n color: var(--tb-text-muted);\n cursor: pointer;\n opacity: 0;\n transition: opacity var(--tb-duration-fast) ease,\n color var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-code-block:hover .tb-code-block__copy {\n opacity: 1;\n}\n\n.tb-code-block__copy:hover {\n color: var(--tb-text-heading);\n border-color: var(--tb-line-bright);\n}\n\n.tb-code-block__copy--copied {\n color: var(--tb-success);\n opacity: 1;\n}\n\n.tb-code-block .prompt { color: var(--tb-success); }\n.tb-code-block .key { color: var(--tb-warning); }\n.tb-code-block .string { color: var(--tb-primary); }\n.tb-code-block .comment { color: var(--tb-text-muted); }\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/css/tokens.css","../src/css/base.css","../src/css/components/button.css","../src/css/components/input.css","../src/css/components/textarea.css","../src/css/components/card.css","../src/css/components/badge.css","../src/css/components/tag.css","../src/css/components/title-line.css","../src/css/components/brackets.css","../src/css/components/select.css","../src/css/components/modal.css","../src/css/components/tabs.css","../src/css/components/toast.css","../src/css/components/tooltip.css","../src/css/components/nav-dropdown.css","../src/css/components/checkbox.css","../src/css/components/toggle.css","../src/css/components/radio.css","../src/css/components/progress.css","../src/css/components/battery.css","../src/css/components/table.css","../src/css/components/skeleton.css","../src/css/components/spinners.css","../src/css/components/pagination.css","../src/css/components/breadcrumbs.css","../src/css/components/toolbar.css","../src/css/components/sidenav.css","../src/css/components/code-block.css","../src/css/components/slider.css","../src/css/components/file-upload.css"],"sourcesContent":["/* ═══════════════════════════════════════\n TOKENS — Design tokens for Terminal Blueprint\n Theme-aware via data-theme and data-contrast\n on :root (<html>).\n\n Usage:\n document.documentElement.dataset.theme = 'dark' // default\n document.documentElement.dataset.contrast = 'high' // optional\n ═══════════════════════════════════════ */\n\n/* ── Dark theme (default) ── */\n:root,\n:root[data-theme=\"dark\"] {\n /* palette */\n --tb-primary: #a7d9ef;\n --tb-accent: #ccc0f3;\n --tb-bg: #020617;\n --tb-bg-surface: #0f172a;\n --tb-bg-card: rgba(10, 20, 40, 0.85);\n --tb-bg-card-hover: rgba(15, 28, 55, 0.9);\n --tb-bg-input: rgba(15, 23, 42, 0.6);\n --tb-line: rgba(167, 217, 239, 0.15);\n --tb-line-bright: rgba(167, 217, 239, 0.35);\n --tb-glow: rgba(167, 217, 239, 0.4);\n --tb-font: \"Lexend\", \"JetBrains Mono\", sans-serif;\n\n /* semantic */\n --tb-error: #ef6b6b;\n --tb-error-dim: rgba(239, 107, 107, 0.15);\n --tb-success: #6bcfa0;\n --tb-success-dim: rgba(107, 207, 160, 0.15);\n --tb-warning: #e8c468;\n --tb-warning-dim: rgba(232, 196, 104, 0.15);\n --tb-info: #a7d9ef;\n\n /* text hierarchy — enhanced contrast (default) */\n --tb-text-heading: #ccc0f3;\n --tb-text-body: #cddbe4;\n --tb-text-label: #9fc3d4;\n --tb-text-muted: #7aaab9;\n\n /* spacing (8px grid) */\n --tb-sp-1: 4px;\n --tb-sp-2: 8px;\n --tb-sp-3: 12px;\n --tb-sp-4: 16px;\n --tb-sp-6: 24px;\n --tb-sp-8: 32px;\n --tb-sp-10: 40px;\n --tb-sp-12: 48px;\n --tb-sp-16: 64px;\n\n /* z-index */\n --tb-z-base: 0;\n --tb-z-dropdown: 100;\n --tb-z-sticky: 200;\n --tb-z-fixed: 300;\n --tb-z-modal-backdrop: 400;\n --tb-z-modal: 500;\n --tb-z-popover: 600;\n --tb-z-tooltip: 700;\n --tb-z-toast: 800;\n\n /* transitions */\n --tb-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n --tb-ease-enter: cubic-bezier(0, 0, 0.2, 1);\n --tb-ease-exit: cubic-bezier(0.4, 0, 1, 1);\n --tb-duration-fast: 150ms;\n --tb-duration-normal: 300ms;\n --tb-duration-slow: 500ms;\n}\n\n/* ── High contrast override ── */\n:root[data-contrast=\"high\"],\n:root[data-theme=\"dark\"][data-contrast=\"high\"] {\n --tb-accent: #ddd0fc;\n --tb-text-heading: #ffffff;\n --tb-text-body: #d4ecf7;\n --tb-text-label: #a7d9ef;\n --tb-text-muted: #89b8cc;\n}\n\n/* ── Light theme (placeholder for future) ── */\n:root[data-theme=\"light\"] {\n /* --tb-primary: ...;\n --tb-bg: ...;\n --tb-bg-surface: ...;\n --tb-bg-card: ...;\n --tb-line: ...;\n --tb-text-heading: ...;\n --tb-text-body: ...;\n --tb-text-label: ...;\n --tb-text-muted: ...;\n Override all color tokens here. */\n}\n\n:root[data-theme=\"light\"][data-contrast=\"high\"] {\n /* Future: high contrast light overrides */\n}\n","/* ═══════════════════════════════════════\n BASE — Reset & base styles for Terminal Blueprint\n Wrapped in .tb-root so consumers opt-in.\n Document-level styles activate via :has(.tb-root).\n ═══════════════════════════════════════ */\n\n/* Document-level — activates when .tb-root exists on the page */\n:root:has(.tb-root) {\n scroll-behavior: smooth;\n scrollbar-color: rgba(167, 217, 239, 0.2) var(--tb-bg);\n}\n\n:root:has(.tb-root) body {\n margin: 0;\n padding: 0;\n background-color: var(--tb-bg);\n overflow-x: hidden;\n}\n\n:root:has(.tb-root) ::-webkit-scrollbar { width: 6px; height: 6px; }\n:root:has(.tb-root) ::-webkit-scrollbar-track { background: var(--tb-bg); }\n:root:has(.tb-root) ::-webkit-scrollbar-thumb { background: rgba(167, 217, 239, 0.15); border-radius: 0; }\n:root:has(.tb-root) ::-webkit-scrollbar-thumb:hover { background: rgba(167, 217, 239, 0.3); }\n\n/* Reset — scoped to .tb-root */\n.tb-root *,\n.tb-root *::before,\n.tb-root *::after {\n box-sizing: border-box;\n}\n\n/* Body-level styles — applied to .tb-root wrapper */\n.tb-root {\n font-family: var(--tb-font);\n background-color: var(--tb-bg);\n color: var(--tb-text-body);\n line-height: 1.6;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n min-height: 100vh;\n background-image: linear-gradient(\n rgba(167, 217, 239, 0.025) 1px,\n transparent 1px\n ),\n linear-gradient(\n 90deg,\n rgba(167, 217, 239, 0.025) 1px,\n transparent 1px\n );\n background-size: 40px 40px;\n}\n\n/* Links */\n.tb-root a {\n color: var(--tb-text-label);\n text-decoration: none;\n transition: text-shadow var(--tb-duration-normal) ease,\n color var(--tb-duration-normal) ease;\n}\n\n.tb-root a:hover {\n color: var(--tb-text-heading);\n text-shadow: 0 0 12px var(--tb-glow), 0 0 24px rgba(167, 217, 239, 0.2);\n}\n\n/* Headings */\n.tb-root h1,\n.tb-root h2,\n.tb-root h3,\n.tb-root h4,\n.tb-root h5,\n.tb-root h6 {\n color: var(--tb-text-heading);\n}\n\n/* Forms — no text-transform */\n.tb-root input,\n.tb-root textarea,\n.tb-root select {\n text-transform: none;\n}\n\n/* Focus visible */\n.tb-root *:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-root :focus:not(:focus-visible) {\n outline: none;\n}\n\n.tb-root input:focus-visible,\n.tb-root textarea:focus-visible,\n.tb-root select:focus-visible {\n outline: none;\n border-color: var(--tb-primary) !important;\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.15),\n 0 0 15px rgba(167, 217, 239, 0.1);\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .tb-root *,\n .tb-root *::before,\n .tb-root *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-root {\n letter-spacing: 0.05em;\n line-height: 1.5;\n }\n}\n","/* ═══════════════════════════════════════\n BUTTON — .tb-btn\n ═══════════════════════════════════════ */\n\n.tb-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--tb-sp-2);\n height: 44px;\n padding: 0 var(--tb-sp-6);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n font-weight: 500;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n text-decoration: none;\n border: 1px solid var(--tb-line-bright);\n background: transparent;\n color: var(--tb-primary);\n cursor: pointer;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n position: relative;\n white-space: nowrap;\n}\n\n.tb-btn:hover {\n border-color: var(--tb-accent);\n color: var(--tb-accent);\n text-shadow: 0 0 15px var(--tb-glow);\n background: rgba(167, 217, 239, 0.05);\n}\n\n.tb-btn:active {\n transform: scale(0.97);\n text-shadow: 0 0 20px var(--tb-glow);\n}\n\n/* ── Primary (filled / inverted) ── */\n.tb-btn--primary {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n.tb-btn--primary:hover {\n background: var(--tb-accent);\n border-color: var(--tb-accent);\n color: var(--tb-bg);\n text-shadow: none;\n box-shadow: 0 0 20px var(--tb-glow);\n}\n\n/* ── Secondary (alias for default outline) ── */\n.tb-btn--secondary {\n border-color: var(--tb-line-bright);\n color: var(--tb-primary);\n}\n\n.tb-btn--secondary:hover {\n border-color: var(--tb-accent);\n color: var(--tb-accent);\n text-shadow: 0 0 15px var(--tb-glow);\n background: rgba(167, 217, 239, 0.05);\n}\n\n/* ── Danger ── */\n.tb-btn--danger {\n border-color: rgba(239, 107, 107, 0.4);\n color: var(--tb-error);\n}\n\n.tb-btn--danger:hover {\n border-color: var(--tb-error);\n color: var(--tb-bg);\n text-shadow: none;\n background: var(--tb-error);\n}\n\n/* ── Ghost (minimal) ── */\n.tb-btn--ghost {\n border-color: transparent;\n background: transparent;\n color: var(--tb-text-label);\n}\n\n.tb-btn--ghost:hover {\n border-color: var(--tb-line);\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.03);\n}\n\n/* ── Disabled ── */\n.tb-btn[disabled],\n.tb-btn--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Loading ── */\n.tb-btn--loading {\n pointer-events: none;\n color: transparent !important;\n position: relative;\n}\n\n.tb-btn--loading::before,\n.tb-btn--loading::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n border-style: solid;\n border-color: var(--tb-primary);\n}\n\n.tb-btn--loading::before {\n width: 14px;\n height: 14px;\n margin: -7px 0 0 -7px;\n border-width: 1.5px;\n animation: tb-spin-cw 2.5s linear infinite;\n}\n\n.tb-btn--loading::after {\n width: 8px;\n height: 8px;\n margin: -4px 0 0 -4px;\n border-width: 1px;\n opacity: 0.45;\n animation: tb-spin-ccw 1.6s linear infinite;\n}\n\n.tb-btn--primary.tb-btn--loading::before,\n.tb-btn--primary.tb-btn--loading::after {\n border-color: var(--tb-bg);\n}\n\n/* ── Loading with text ── */\n.tb-btn--loading-text {\n color: inherit;\n}\n\n/* ── Icon ── */\n.tb-btn__icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ── Spinner (child element approach) ── */\n.tb-btn__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 16px;\n height: 16px;\n}\n.tb-btn__spinner .tb-btn__spinner-square {\n position: absolute;\n inset: 0;\n border: 1.5px solid currentColor;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(1) {\n animation: tb-spin-cw 2s linear infinite;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(2) {\n animation: tb-spin-ccw 3s linear infinite;\n}\n.tb-btn__spinner .tb-btn__spinner-square:nth-child(3) {\n animation: tb-spin-cw 4s linear infinite;\n}\n\n/* ── Focus-visible ── */\n.tb-btn:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Size variants ── */\n.tb-btn--sm {\n height: 32px;\n padding: 0 var(--tb-sp-4);\n font-size: 0.5rem;\n}\n\n.tb-btn--lg {\n height: 52px;\n padding: 0 var(--tb-sp-8);\n font-size: 0.65rem;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-spin-cw {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@keyframes tb-spin-ccw {\n from { transform: rotate(0deg); }\n to { transform: rotate(-360deg); }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-btn {\n letter-spacing: 0.2em;\n padding-left: var(--tb-sp-4);\n padding-right: var(--tb-sp-4);\n }\n}\n","/* ═══════════════════════════════════════\n INPUT — .tb-input, .tb-label, .tb-input__error, .tb-input__hint\n ═══════════════════════════════════════ */\n\n/* ── Label ── */\n.tb-label {\n font-size: 0.55rem;\n font-weight: 500;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-label__required {\n color: var(--tb-error);\n margin-left: var(--tb-sp-1);\n}\n\n/* ── Input ── */\n.tb-input {\n height: 44px;\n padding: 0 var(--tb-sp-4);\n font-family: var(--tb-font);\n font-size: 0.7rem;\n font-weight: 400;\n letter-spacing: 0.1em;\n color: var(--tb-text-body);\n background: var(--tb-bg-input);\n border: 1px solid var(--tb-line);\n transition: border-color var(--tb-duration-normal) ease,\n box-shadow var(--tb-duration-normal) ease;\n}\n\n.tb-input::placeholder {\n color: var(--tb-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.2em;\n font-size: 0.6rem;\n}\n\n.tb-input:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-input:focus {\n outline: none;\n border-color: var(--tb-primary);\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1),\n 0 0 20px rgba(167, 217, 239, 0.05);\n}\n\n/* ── Focus-visible ── */\n.tb-input:focus-visible {\n outline: none; /* already has box-shadow focus style */\n}\n\n/* ── Error state ── */\n.tb-input--error {\n border-color: rgba(239, 107, 107, 0.5) !important;\n}\n\n.tb-input--error:focus {\n border-color: var(--tb-error) !important;\n box-shadow: 0 0 0 3px rgba(239, 107, 107, 0.1),\n 0 0 20px rgba(239, 107, 107, 0.05);\n}\n\n/* ── Success state ── */\n.tb-input--success {\n border-color: rgba(107, 207, 160, 0.5) !important;\n}\n\n/* ── Disabled ── */\n.tb-input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n background: rgba(15, 23, 42, 0.3);\n}\n\n/* ── Error message ── */\n.tb-input__error {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-error);\n}\n\n/* ── Hint / helper text ── */\n.tb-input__hint {\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n}\n\n/* ── Size variants ── */\n.tb-input--sm {\n height: 32px;\n font-size: 0.6rem;\n padding: 0 var(--tb-sp-3);\n}\n\n.tb-input--lg {\n height: 52px;\n font-size: 0.8rem;\n padding: 0 var(--tb-sp-6);\n}\n\n/* ── Form group ── */\n.tb-form-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ── Input wrapper (icon positioning) ── */\n.tb-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.tb-input-wrapper .tb-input {\n width: 100%;\n}\n.tb-input-wrapper--icon-left .tb-input {\n padding-left: 36px;\n}\n.tb-input-wrapper--icon-right .tb-input {\n padding-right: 36px;\n}\n.tb-input__icon {\n position: absolute;\n display: flex;\n align-items: center;\n pointer-events: none;\n color: var(--tb-text-muted);\n}\n.tb-input-wrapper--icon-left .tb-input__icon {\n left: 10px;\n}\n.tb-input-wrapper--icon-right .tb-input__icon {\n right: 10px;\n}\n","/* ═══════════════════════════════════════\n TEXTAREA — .tb-textarea\n ═══════════════════════════════════════ */\n\n.tb-textarea {\n min-height: 100px;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n resize: vertical;\n font-family: var(--tb-font);\n font-size: 0.7rem;\n font-weight: 400;\n letter-spacing: 0.1em;\n color: var(--tb-primary);\n background: var(--tb-bg-input);\n border: 1px solid var(--tb-line);\n transition: border-color var(--tb-duration-normal) ease,\n box-shadow var(--tb-duration-normal) ease;\n line-height: 1.8;\n}\n\n.tb-textarea::placeholder {\n color: var(--tb-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.2em;\n font-size: 0.6rem;\n}\n\n.tb-textarea:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-textarea:focus {\n outline: none;\n border-color: var(--tb-primary);\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1),\n 0 0 20px rgba(167, 217, 239, 0.05);\n}\n\n/* ── Error state ── */\n.tb-textarea--error {\n border-color: rgba(239, 107, 107, 0.5) !important;\n}\n\n.tb-textarea--error:focus {\n border-color: var(--tb-error) !important;\n box-shadow: 0 0 0 3px rgba(239, 107, 107, 0.1),\n 0 0 20px rgba(239, 107, 107, 0.05);\n}\n\n/* ── Disabled ── */\n.tb-textarea:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n background: rgba(15, 23, 42, 0.3);\n}\n\n/* ── Size variants ── */\n.tb-textarea--sm {\n min-height: 64px;\n font-size: 0.6rem;\n padding: var(--tb-sp-2) var(--tb-sp-3);\n}\n\n.tb-textarea--lg {\n min-height: 160px;\n font-size: 0.8rem;\n padding: var(--tb-sp-4) var(--tb-sp-6);\n}\n\n/* ── Error message ── */\n.tb-textarea__error {\n color: var(--tb-error);\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n/* ── Hint / helper text ── */\n.tb-textarea__hint {\n color: var(--tb-text-muted);\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n","/* ═══════════════════════════════════════\n CARD — .tb-card\n ═══════════════════════════════════════ */\n\n.tb-card {\n position: relative;\n border: 1px solid var(--tb-line);\n background: var(--tb-bg-card);\n padding: var(--tb-sp-6);\n transition: border-color var(--tb-duration-normal) ease, background var(--tb-duration-normal) ease;\n}\n\n/* ── Hoverable variant ── */\n.tb-card--hoverable:hover {\n border-color: var(--tb-line-bright);\n background: var(--tb-bg-card-hover);\n}\n\n/* ── Link variant (stretched link) ── */\n.tb-card--link {\n cursor: pointer;\n}\n\n.tb-card--link:hover {\n border-color: var(--tb-line-bright);\n background: var(--tb-bg-card-hover);\n}\n\n.tb-card__link {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.tb-card--link .tb-card__footer {\n position: relative;\n z-index: 1;\n}\n\n/* ── Card parts ── */\n.tb-card__header {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-card__title {\n font-size: 0.75rem;\n font-weight: 700;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n margin-bottom: var(--tb-sp-3);\n}\n\n.tb-card__body {\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-card__body p {\n font-size: 0.6rem;\n letter-spacing: 0.12em;\n color: var(--tb-text-body);\n line-height: 2;\n text-transform: uppercase;\n font-weight: 400;\n}\n\n.tb-card__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--tb-sp-2);\n margin-top: var(--tb-sp-4);\n}\n\n.tb-card__footer {\n display: flex;\n gap: var(--tb-sp-4);\n padding-top: var(--tb-sp-4);\n border-top: 1px solid var(--tb-line);\n margin-top: var(--tb-sp-6);\n}\n\n.tb-card__footer a {\n font-size: 0.55rem;\n letter-spacing: 0.2em;\n color: var(--tb-text-muted);\n display: flex;\n align-items: center;\n gap: var(--tb-sp-1);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-card__footer a:hover {\n color: var(--tb-primary);\n}\n\n/* ── Bracketed variant ── */\n.tb-card--bracketed {\n position: relative;\n}\n\n.tb-card--bracketed .tb-card__bracket {\n position: absolute;\n width: 18px;\n height: 18px;\n border-color: var(--tb-primary);\n border-style: solid;\n border-width: 0;\n opacity: 0;\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) ease;\n}\n\n.tb-card--bracketed .tb-card__bracket--tl {\n top: -1px;\n left: -1px;\n border-top-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--tr {\n top: -1px;\n right: -1px;\n border-top-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--bl {\n bottom: -1px;\n left: -1px;\n border-bottom-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-card--bracketed .tb-card__bracket--br {\n bottom: -1px;\n right: -1px;\n border-bottom-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-card--bracketed:hover .tb-card__bracket {\n opacity: 1;\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--tl {\n transform: translate(-6px, -6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--tr {\n transform: translate(6px, -6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--bl {\n transform: translate(-6px, 6px);\n}\n\n.tb-card--bracketed:hover .tb-card__bracket--br {\n transform: translate(6px, 6px);\n}\n\n/* ── Pulse variant — bracket glow animation ── */\n.tb-card--pulse .tb-card__bracket {\n animation: tb-bracket-glow 2.5s ease-in-out infinite;\n}\n\n.tb-card--pulse .tb-card__bracket--tr {\n animation-delay: 0.15s;\n}\n\n.tb-card--pulse .tb-card__bracket--bl {\n animation-delay: 0.3s;\n}\n\n.tb-card--pulse .tb-card__bracket--br {\n animation-delay: 0.45s;\n}\n","/* ═══════════════════════════════════════\n BADGE — .tb-badge\n ═══════════════════════════════════════ */\n\n.tb-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--tb-sp-2);\n padding: var(--tb-sp-1) var(--tb-sp-3);\n font-size: 0.5rem;\n font-weight: 500;\n letter-spacing: 0.35em;\n text-transform: uppercase;\n border: 1px solid;\n border-color: var(--tb-line-bright);\n color: var(--tb-text-body);\n}\n\n/* ── Variants ── */\n.tb-badge--success {\n border-color: rgba(107, 207, 160, 0.3);\n color: var(--tb-success);\n}\n\n.tb-badge--warning {\n border-color: rgba(232, 196, 104, 0.3);\n color: var(--tb-warning);\n}\n\n.tb-badge--error {\n border-color: rgba(239, 107, 107, 0.3);\n color: var(--tb-error);\n}\n\n.tb-badge--filled {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n/* ── Status dot ── */\n.tb-badge__dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n flex-shrink: 0;\n}\n\n/* ── Pulse animation ── */\n.tb-badge--pulse .tb-badge__dot {\n animation: tb-pulse 2.5s ease-in-out infinite;\n}\n\n@keyframes tb-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.2;\n }\n}\n","/* ═══════════════════════════════════════\n TAG — .tb-tag\n Derived from the badge pattern but intended\n for inline keyword / skill tags (e.g. card tags).\n ═══════════════════════════════════════ */\n\n.tb-tag {\n display: inline-flex;\n align-items: center;\n gap: var(--tb-sp-1);\n padding: var(--tb-sp-1) var(--tb-sp-3);\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n border: 1px solid var(--tb-line);\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-tag:hover {\n color: var(--tb-text-heading);\n border-color: var(--tb-line-bright);\n}\n","/* ═══════════════════════════════════════\n TITLE LINE — .tb-title-line\n Section title with decorative lines on each side.\n Extracted from .section-header pattern.\n ═══════════════════════════════════════ */\n\n.tb-title-line {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-6);\n margin-bottom: var(--tb-sp-10);\n}\n\n.tb-title-line::before,\n.tb-title-line::after {\n content: \"\";\n height: 1px;\n flex: 1;\n background: var(--tb-line);\n}\n\n.tb-title-line__label {\n font-size: 0.65rem;\n font-weight: 400;\n letter-spacing: 0.5em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n white-space: nowrap;\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-title-line__label {\n letter-spacing: 0.2em;\n }\n}\n","/* ═══════════════════════════════════════\n BRACKETS — .tb-brackets\n Standalone corner bracket decoration wrapper.\n Can be applied to any element. Brackets appear\n on hover and expand outward.\n ═══════════════════════════════════════ */\n\n.tb-brackets {\n position: relative;\n}\n\n.tb-brackets__corner {\n position: absolute;\n width: 18px;\n height: 18px;\n border-color: var(--tb-primary);\n border-style: solid;\n border-width: 0;\n opacity: 0;\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) ease;\n}\n\n/* ── Corner positions ── */\n.tb-brackets__corner--tl {\n top: -1px;\n left: -1px;\n border-top-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-brackets__corner--tr {\n top: -1px;\n right: -1px;\n border-top-width: 2px;\n border-right-width: 2px;\n}\n\n.tb-brackets__corner--bl {\n bottom: -1px;\n left: -1px;\n border-bottom-width: 2px;\n border-left-width: 2px;\n}\n\n.tb-brackets__corner--br {\n bottom: -1px;\n right: -1px;\n border-bottom-width: 2px;\n border-right-width: 2px;\n}\n\n/* ── Hover expansion ── */\n.tb-brackets:hover .tb-brackets__corner {\n opacity: 1;\n}\n\n.tb-brackets:hover .tb-brackets__corner--tl {\n transform: translate(-6px, -6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--tr {\n transform: translate(6px, -6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--bl {\n transform: translate(-6px, 6px);\n}\n\n.tb-brackets:hover .tb-brackets__corner--br {\n transform: translate(6px, 6px);\n}\n\n/* ── Pulse variant — always visible with pulsating glow ── */\n.tb-brackets--pulse .tb-brackets__corner--tl,\n.tb-brackets--pulse .tb-brackets__corner--tr,\n.tb-brackets--pulse .tb-brackets__corner--bl,\n.tb-brackets--pulse .tb-brackets__corner--br {\n animation: tb-bracket-glow 2.5s ease-in-out infinite;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--tr {\n animation-delay: 0.15s;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--bl {\n animation-delay: 0.3s;\n}\n\n.tb-brackets--pulse .tb-brackets__corner--br {\n animation-delay: 0.45s;\n}\n\n@keyframes tb-bracket-glow {\n 0%, 100% {\n border-color: var(--tb-primary);\n opacity: 0.4;\n filter: drop-shadow(0 0 0 transparent);\n }\n 50% {\n border-color: var(--tb-accent);\n opacity: 1;\n filter: drop-shadow(0 0 6px rgba(167, 217, 239, 0.5));\n }\n}\n","/* ═══════════════════════════════════════\n SELECT — .tb-select\n ═══════════════════════════════════════ */\n\n.tb-select {\n position: relative;\n}\n\n.tb-select__trigger {\n width: 100%;\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n height: 44px;\n padding: 0 var(--tb-sp-4);\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n color: var(--tb-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n transition: border-color var(--tb-duration-normal) ease;\n}\n\n.tb-select__trigger:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-select__chevron {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.6;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-select__chevron::before {\n content: '▾';\n}\n\n.tb-select__trigger--open .tb-select__chevron {\n transform: rotate(180deg);\n}\n\n.tb-select__dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line-bright);\n z-index: var(--tb-z-dropdown);\n max-height: 200px;\n overflow-y: auto;\n opacity: 0;\n visibility: hidden;\n transform: translateY(-4px);\n transition: opacity var(--tb-duration-normal) ease,\n visibility var(--tb-duration-normal) ease,\n transform var(--tb-duration-normal) ease;\n}\n\n.tb-select__dropdown--open {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n.tb-select__option {\n padding: var(--tb-sp-3) var(--tb-sp-4);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n cursor: pointer;\n color: var(--tb-text-label);\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n border-left: 2px solid transparent;\n}\n\n.tb-select__option:hover {\n color: var(--tb-text-heading);\n background: rgba(167, 217, 239, 0.06);\n border-left-color: var(--tb-primary);\n}\n\n.tb-select__option--selected {\n color: var(--tb-text-heading);\n background: rgba(167, 217, 239, 0.06);\n border-left-color: var(--tb-primary);\n}\n\n/* ── Focus-visible ── */\n.tb-select__trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n.tb-select__option:focus-visible {\n outline: none;\n background: rgba(167, 217, 239, 0.03);\n border-left-color: var(--tb-primary);\n}\n\n/* ── Error ── */\n.tb-select--error .tb-select__trigger {\n border-color: var(--tb-error);\n box-shadow: 0 0 0 1px var(--tb-error-dim);\n}\n","/* ═══════════════════════════════════════\n MODAL — .tb-modal\n ═══════════════════════════════════════ */\n\n.tb-modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(2, 6, 23, 0.85);\n z-index: var(--tb-z-modal-backdrop);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n visibility: hidden;\n transition: opacity var(--tb-duration-normal) var(--tb-ease-standard),\n visibility var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-modal-overlay--open {\n opacity: 1;\n visibility: visible;\n backdrop-filter: blur(8px);\n}\n\n.tb-modal {\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-8);\n max-width: 520px;\n width: 90%;\n position: relative;\n z-index: var(--tb-z-modal);\n font-family: var(--tb-font);\n transform: translateY(20px) scale(0.97);\n transition: transform var(--tb-duration-normal) var(--tb-ease-standard),\n opacity var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-modal-overlay--open .tb-modal {\n transform: translateY(0) scale(1);\n}\n\n.tb-modal__close {\n position: absolute;\n top: var(--tb-sp-4);\n right: var(--tb-sp-4);\n background: none;\n border: none;\n color: var(--tb-primary);\n cursor: pointer;\n opacity: 0.4;\n transition: opacity var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-modal__close:hover {\n opacity: 1;\n}\n\n/* ── Variants ── */\n.tb-modal--warning {\n border-top: 3px solid var(--tb-warning);\n}\n.tb-modal--warning .tb-modal__title {\n color: var(--tb-warning);\n}\n\n.tb-modal--error {\n border-top: 3px solid var(--tb-error);\n}\n.tb-modal--error .tb-modal__title {\n color: var(--tb-error);\n}\n\n.tb-modal--success {\n border-top: 3px solid var(--tb-success);\n}\n.tb-modal--success .tb-modal__title {\n color: var(--tb-success);\n}\n\n/* ── Focus-visible ── */\n.tb-modal__close:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-modal__title {\n font-size: 0.75rem;\n font-weight: 700;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-heading);\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-modal__description {\n font-size: 0.6rem;\n color: var(--tb-text-body);\n line-height: 2;\n letter-spacing: 0.12em;\n text-transform: uppercase;\n font-weight: 400;\n margin-bottom: var(--tb-sp-6);\n}\n\n.tb-modal__body {\n margin-bottom: var(--tb-sp-6);\n font-size: 0.6rem;\n color: var(--tb-text-body);\n line-height: 1.8;\n letter-spacing: 0.1em;\n}\n\n.tb-modal__footer {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n justify-content: flex-end;\n border-top: 1px solid var(--tb-line);\n padding-top: var(--tb-sp-6);\n}\n\n.tb-modal__footer .tb-modal__close {\n position: static;\n opacity: 1;\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n padding: 0 var(--tb-sp-4);\n height: 36px;\n color: var(--tb-text-label);\n border: 1px solid var(--tb-line);\n}\n\n.tb-modal__footer .tb-modal__close:hover {\n color: var(--tb-accent);\n border-color: var(--tb-accent);\n opacity: 1;\n}\n","/* ═══════════════════════════════════════\n TABS — .tb-tabs\n ═══════════════════════════════════════ */\n\n.tb-tabs {\n /* wrapper — no layout opinion */\n}\n\n.tb-tabs__list {\n display: flex;\n border-bottom: 1px solid var(--tb-line);\n margin-bottom: var(--tb-sp-8);\n}\n\n.tb-tabs__trigger {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.4em;\n text-transform: uppercase;\n padding: var(--tb-sp-3) var(--tb-sp-6);\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n color: var(--tb-text-label);\n cursor: pointer;\n margin-bottom: -1px;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-tabs__trigger:hover {\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.04);\n}\n\n.tb-tabs__trigger--active {\n color: var(--tb-text-heading);\n border-bottom-color: var(--tb-primary);\n}\n\n/* ── Focus-visible ── */\n.tb-tabs__trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: -2px;\n}\n\n.tb-tabs__content {\n display: none;\n}\n\n.tb-tabs__content--active {\n display: block;\n}\n","/* ═══════════════════════════════════════\n TOAST — .tb-toast\n ═══════════════════════════════════════ */\n\n/* ── Container ── */\n.tb-toast-container {\n position: fixed;\n z-index: var(--tb-z-toast);\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n pointer-events: none;\n}\n\n.tb-toast-container--top-right {\n top: var(--tb-sp-8);\n right: var(--tb-sp-8);\n align-items: flex-end;\n}\n\n.tb-toast-container--top-center {\n top: var(--tb-sp-8);\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n}\n\n.tb-toast-container--bottom-right {\n bottom: var(--tb-sp-8);\n right: var(--tb-sp-8);\n align-items: flex-end;\n}\n\n.tb-toast-container--bottom-center {\n bottom: var(--tb-sp-8);\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n}\n\n/* ── Toast ── */\n.tb-toast {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border: 1px solid;\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n pointer-events: auto;\n opacity: 0;\n transform: translateY(16px);\n transition: all var(--tb-duration-slow) var(--tb-ease-enter);\n}\n\n.tb-toast--show {\n opacity: 1;\n transform: translateY(0);\n animation: tb-toast-slide-in var(--tb-duration-slow) var(--tb-ease-enter);\n}\n\n/* ── Variants ── */\n.tb-toast--success {\n border-color: rgba(107, 207, 160, 0.3);\n background: var(--tb-success-dim);\n color: var(--tb-success);\n}\n\n.tb-toast--error {\n border-color: rgba(239, 107, 107, 0.3);\n background: var(--tb-error-dim);\n color: var(--tb-error);\n}\n\n.tb-toast--warning {\n border-color: rgba(232, 196, 104, 0.3);\n background: var(--tb-warning-dim);\n color: var(--tb-warning);\n}\n\n.tb-toast--info {\n border-color: rgba(167, 217, 239, 0.3);\n background: rgba(167, 217, 239, 0.08);\n color: var(--tb-primary);\n}\n\n.tb-toast--inverted {\n background: var(--tb-primary);\n color: var(--tb-bg);\n border-color: var(--tb-primary);\n}\n\n/* ── Parts ── */\n.tb-toast__icon {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.tb-toast__message {\n flex: 1;\n}\n\n.tb-toast__dismiss {\n display: inline-flex;\n align-items: center;\n background: none;\n border: none;\n color: inherit;\n cursor: pointer;\n opacity: 0.5;\n transition: opacity var(--tb-duration-fast) var(--tb-ease-standard);\n padding: 0;\n margin-left: auto;\n}\n\n.tb-toast__dismiss:hover {\n opacity: 1;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-toast-slide-in {\n from {\n opacity: 0;\n transform: translateY(16px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes tb-toast-slide-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-16px);\n }\n}\n","/* ═══════════════════════════════════════\n TOOLTIP — .tb-tooltip\n ═══════════════════════════════════════ */\n\n.tb-tooltip-wrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.tb-tooltip {\n position: absolute;\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line);\n font-size: 0.5rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n padding: var(--tb-sp-2) var(--tb-sp-3);\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity var(--tb-duration-fast) ease,\n transform var(--tb-duration-fast) ease,\n visibility var(--tb-duration-fast) ease;\n z-index: var(--tb-z-tooltip);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip,\n.tb-tooltip-wrap:focus-within .tb-tooltip {\n opacity: 1;\n visibility: visible;\n}\n\n/* ── Top (default) ── */\n.tb-tooltip--top {\n bottom: calc(100% + 10px);\n left: 50%;\n transform: translateX(-50%) translateY(4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--top {\n transform: translateX(-50%) translateY(0);\n}\n\n.tb-tooltip--top::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-top-color: var(--tb-line);\n}\n\n/* ── Bottom ── */\n.tb-tooltip--bottom {\n top: calc(100% + 10px);\n left: 50%;\n transform: translateX(-50%) translateY(-4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--bottom {\n transform: translateX(-50%) translateY(0);\n}\n\n/* ── Left ── */\n.tb-tooltip--left {\n right: calc(100% + 10px);\n top: 50%;\n transform: translateY(-50%) translateX(4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--left {\n transform: translateY(-50%) translateX(0);\n}\n\n/* ── Right ── */\n.tb-tooltip--right {\n left: calc(100% + 10px);\n top: 50%;\n transform: translateY(-50%) translateX(-4px);\n}\n\n.tb-tooltip-wrap:hover .tb-tooltip--right {\n transform: translateY(-50%) translateX(0);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-tooltip {\n white-space: normal;\n max-width: min(300px, 90vw);\n }\n}\n","/* ═══════════════════════════════════════\n NAV DROPDOWN — .tb-nav-dropdown\n ═══════════════════════════════════════ */\n\n.tb-nav-item {\n position: relative;\n}\n\n.tb-nav-item__trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n background: none;\n border: none;\n padding: 0;\n font-family: inherit;\n cursor: pointer;\n font-size: 0.65rem;\n font-weight: 400;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-item--open .tb-nav-item__trigger {\n color: var(--tb-text-heading);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-item__trigger {\n color: var(--tb-text-heading);\n }\n}\n\n.tb-nav-item__chevron {\n display: inline-block;\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid currentColor;\n opacity: 0.5;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-item--open .tb-nav-item__chevron {\n transform: rotate(180deg);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-item__chevron {\n transform: rotate(180deg);\n }\n}\n\n.tb-nav-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 10px;\n transform: translateY(8px);\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n min-width: 220px;\n opacity: 0;\n pointer-events: none;\n transition: all var(--tb-duration-normal) var(--tb-ease-standard);\n z-index: var(--tb-z-dropdown);\n padding-top: var(--tb-sp-2);\n}\n\n/* Alignment variants */\n.tb-nav-item--align-center .tb-nav-dropdown {\n left: 50%;\n transform: translateX(-50%) translateY(8px);\n}\n\n.tb-nav-item--align-right .tb-nav-dropdown {\n left: auto;\n right: 0;\n}\n\n/* Invisible bridge so hover doesn't break crossing the gap */\n.tb-nav-dropdown::before {\n content: '';\n position: absolute;\n top: calc(-10px - var(--tb-sp-2));\n left: 0;\n right: 0;\n height: calc(10px + var(--tb-sp-2));\n}\n\n.tb-nav-dropdown--open {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n\n.tb-nav-item--align-center .tb-nav-dropdown--open {\n transform: translateX(-50%) translateY(0);\n}\n\n@media (hover: hover) {\n .tb-nav-item:hover .tb-nav-dropdown {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n }\n\n .tb-nav-item--align-center:hover .tb-nav-dropdown {\n transform: translateX(-50%) translateY(0);\n }\n}\n\n.tb-nav-dropdown__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n padding: var(--tb-sp-3) var(--tb-sp-4);\n font-size: 0.6rem;\n font-weight: 400;\n letter-spacing: 0.12em;\n text-transform: uppercase;\n text-decoration: none;\n color: var(--tb-text-label);\n border-left: 3px solid transparent;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-nav-dropdown__item:hover {\n background: rgba(167, 217, 239, 0.05);\n border-left-color: var(--tb-accent);\n color: var(--tb-text-heading);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-nav-dropdown {\n min-width: min(220px, 90vw);\n }\n}\n","/* ═══════════════════════════════════════\n CHECKBOX — .tb-checkbox\n ═══════════════════════════════════════ */\n\n.tb-checkbox {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-checkbox input {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 1px solid var(--tb-line-bright);\n background: var(--tb-bg-input);\n cursor: pointer;\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n.tb-checkbox input:checked {\n border-color: var(--tb-primary);\n background: var(--tb-primary);\n}\n\n.tb-checkbox input:checked::after {\n content: \"\";\n position: absolute;\n top: 2px;\n left: 5px;\n width: 5px;\n height: 9px;\n border: 2px solid var(--tb-bg);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n}\n\n.tb-checkbox input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n border-color: var(--tb-error);\n background: transparent;\n}\n\n.tb-checkbox input:disabled::before {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n width: 10px;\n height: 10px;\n background: linear-gradient(\n 45deg,\n transparent 42%,\n var(--tb-error) 42%,\n var(--tb-error) 58%,\n transparent 58%\n ),\n linear-gradient(\n -45deg,\n transparent 42%,\n var(--tb-error) 42%,\n var(--tb-error) 58%,\n transparent 58%\n );\n}\n\n.tb-checkbox input:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Error ── */\n.tb-checkbox--error input {\n border-color: var(--tb-error);\n}\n","/* ═══════════════════════════════════════\n TOGGLE — .tb-toggle\n ═══════════════════════════════════════ */\n\n.tb-toggle {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-toggle__input {\n display: none;\n}\n\n.tb-toggle__track {\n width: 40px;\n height: 20px;\n border: 1px solid var(--tb-line-bright);\n background: var(--tb-bg-input);\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n/* Thumb — works as a child element OR as ::after on the track */\n.tb-toggle__thumb,\n.tb-toggle__track::after {\n content: \"\";\n position: absolute;\n top: 3px;\n left: 3px;\n width: 12px;\n height: 12px;\n background: var(--tb-primary);\n opacity: 0.4;\n transition: left var(--tb-duration-fast) var(--tb-ease-standard),\n opacity var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n/* Hide ::after when a real .tb-toggle__thumb exists */\n.tb-toggle__track:has(.tb-toggle__thumb)::after {\n display: none;\n}\n\n.tb-toggle__input:checked + .tb-toggle__track {\n border-color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.1);\n}\n\n.tb-toggle__input:checked + .tb-toggle__track .tb-toggle__thumb,\n.tb-toggle__input:checked + .tb-toggle__track::after {\n left: 23px;\n opacity: 1;\n}\n\n.tb-toggle__label {\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n/* ── Focus-visible ── */\n.tb-toggle__input:focus-visible + .tb-toggle__track {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n/* ── Disabled ── */\n.tb-toggle--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n","/* ═══════════════════════════════════════\n RADIO — .tb-radio\n ═══════════════════════════════════════ */\n\n.tb-radio-group {\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n}\n\n.tb-radio-group--horizontal {\n flex-direction: row;\n}\n\n.tb-radio {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n cursor: pointer;\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n}\n\n.tb-radio input {\n appearance: none;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n border: 1px solid var(--tb-line-bright);\n border-radius: 50%;\n background: var(--tb-bg-input);\n cursor: pointer;\n position: relative;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n flex-shrink: 0;\n}\n\n.tb-radio input:checked {\n border-color: var(--tb-primary);\n}\n\n.tb-radio input:checked::after {\n content: \"\";\n position: absolute;\n top: 4px;\n left: 4px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--tb-primary);\n}\n\n.tb-radio input:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-radio input:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n","/* ═══════════════════════════════════════\n PROGRESS — .tb-progress\n ═══════════════════════════════════════ */\n\n.tb-progress {\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-progress__header {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--tb-sp-2);\n}\n\n.tb-progress__label {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-progress__value {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-progress__track {\n height: 4px;\n background: var(--tb-line);\n position: relative;\n overflow: hidden;\n}\n\n.tb-progress__fill {\n height: 100%;\n background: var(--tb-primary);\n transition: width var(--tb-duration-slow) var(--tb-ease-standard);\n position: relative;\n overflow: hidden;\n}\n\n/* ── Animated shimmer ── */\n.tb-progress__fill--animated::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n rgba(255, 255, 255, 0.25) 50%,\n transparent 100%\n );\n background-size: 200% 100%;\n animation: tb-progress-shimmer 2s ease-in-out infinite;\n}\n\n/* ── Color variants ── */\n.tb-progress__fill--success {\n background: var(--tb-success);\n}\n\n.tb-progress__fill--warning {\n background: var(--tb-warning);\n}\n\n.tb-progress__fill--error {\n background: var(--tb-error);\n}\n\n/* ── Indeterminate ── */\n.tb-progress--indeterminate .tb-progress__fill {\n width: 30%;\n animation: tb-progress-indeterminate 1.5s var(--tb-ease-standard) infinite;\n}\n\n/* ── Keyframes ── */\n@keyframes tb-progress-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n@keyframes tb-progress-indeterminate {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(400%); }\n}\n","/* ═══════════════════════════════════════\n BATTERY — .tb-battery\n ═══════════════════════════════════════ */\n\n/* ── Vertical variant (default) ── */\n.tb-battery {\n display: flex;\n flex-direction: column;\n width: 48px;\n}\n\n.tb-battery__track {\n border: 1px solid var(--tb-line);\n padding: 3px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tb-battery__segment {\n flex: 1;\n background: rgba(167, 217, 239, 0.08);\n transition: background var(--tb-duration-normal) var(--tb-ease-standard);\n}\n\n.tb-battery__segment--filled {\n background: var(--tb-primary);\n opacity: 0.7;\n}\n\n/* ── Segment color variants ── */\n.tb-battery--success .tb-battery__segment--filled {\n background: var(--tb-success);\n}\n\n.tb-battery--warning .tb-battery__segment--filled {\n background: var(--tb-warning);\n}\n\n.tb-battery--error .tb-battery__segment--filled {\n background: var(--tb-error);\n}\n\n\n.tb-battery__label {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-battery__value {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n/* ── Inline / horizontal variant ── */\n.tb-battery--inline {\n flex-direction: row;\n align-items: center;\n gap: var(--tb-sp-3);\n width: auto;\n}\n\n.tb-battery--inline .tb-battery__track {\n flex: 1;\n height: 20px;\n flex-direction: row;\n}\n\n\n.tb-battery--inline .tb-battery__label {\n min-width: 100px;\n}\n\n.tb-battery--inline .tb-battery__value {\n min-width: 40px;\n text-align: right;\n}\n\n/* ── Animated ── */\n.tb-battery--animated .tb-battery__segment--filled {\n animation: tb-battery-fill 3s ease-in-out infinite;\n}\n\n.tb-battery--animated .tb-battery__segment--filled:nth-child(1) { animation-delay: 0s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(2) { animation-delay: 0.1s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(3) { animation-delay: 0.2s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(4) { animation-delay: 0.3s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(5) { animation-delay: 0.4s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(6) { animation-delay: 0.5s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(7) { animation-delay: 0.6s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(8) { animation-delay: 0.7s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(9) { animation-delay: 0.8s; }\n.tb-battery--animated .tb-battery__segment--filled:nth-child(10) { animation-delay: 0.9s; }\n\n/* ── Keyframes ── */\n@keyframes tb-battery-fill {\n 0%, 5% { opacity: 0; transform: scaleY(0); }\n 15%, 85% { opacity: 0.8; transform: scaleY(1); }\n 95%, 100% { opacity: 0; }\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-battery--inline .tb-battery__label {\n min-width: 60px;\n }\n}\n","/* ═══════════════════════════════════════\n TABLE — .tb-table\n ═══════════════════════════════════════ */\n\n.tb-table__wrapper {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.tb-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.6rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n}\n\n.tb-table th {\n text-align: left;\n font-size: 0.5rem;\n letter-spacing: 0.35em;\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border-bottom: 1px solid var(--tb-line-bright);\n color: var(--tb-text-heading);\n font-weight: 500;\n}\n\n.tb-table td {\n padding: var(--tb-sp-3) var(--tb-sp-4);\n border-bottom: 1px solid var(--tb-line);\n color: var(--tb-text-body);\n}\n\n.tb-table tbody tr {\n transition: background var(--tb-duration-fast) ease;\n}\n\n.tb-table tr:hover td {\n opacity: 1;\n background: rgba(167, 217, 239, 0.03);\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-table {\n font-size: 0.55rem;\n letter-spacing: 0.08em;\n }\n}\n","/* ═══════════════════════════════════════\n SKELETON — .tb-skeleton\n ═══════════════════════════════════════ */\n\n.tb-skeleton {\n background: linear-gradient(\n 90deg,\n var(--tb-line) 25%,\n rgba(167, 217, 239, 0.08) 50%,\n var(--tb-line) 75%\n );\n background-size: 200% 100%;\n animation: tb-shimmer 1.5s infinite;\n}\n\n/* ── Shape variants ── */\n.tb-skeleton--text {\n height: 12px;\n margin-bottom: var(--tb-sp-2);\n}\n\n.tb-skeleton--heading {\n height: 20px;\n margin-bottom: var(--tb-sp-4);\n}\n\n.tb-skeleton--avatar {\n width: 40px;\n height: 40px;\n}\n\n.tb-skeleton--card {\n height: 200px;\n width: 100%;\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-6);\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-3);\n}\n\n/* ── Width utilities ── */\n.tb-skeleton--w-40 { width: 40%; }\n.tb-skeleton--w-60 { width: 60%; }\n.tb-skeleton--w-80 { width: 80%; }\n.tb-skeleton--w-100 { width: 100%; }\n\n/* ── Keyframes ── */\n@keyframes tb-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n","/* ═══════════════════════════════════════\n SPINNERS — .tb-spinner\n ═══════════════════════════════════════ */\n\n/* ── Base ── */\n.tb-spinner {\n position: relative;\n display: inline-block;\n width: 24px;\n height: 24px;\n}\n\n/* ── Size variants ── */\n.tb-spinner--sm {\n width: 16px;\n height: 16px;\n}\n\n.tb-spinner--md {\n width: 24px;\n height: 24px;\n}\n\n.tb-spinner--lg {\n width: 40px;\n height: 40px;\n}\n\n/* ── Multi-square spinner ── */\n.tb-spinner--multi-square .tb-spinner__square {\n position: absolute;\n inset: 0;\n border: 1.5px solid var(--tb-primary);\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(1) {\n animation: tb-spin-cw 4s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(2) {\n opacity: 0.75;\n animation: tb-spin-ccw 2.8s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(3) {\n opacity: 0.55;\n animation: tb-spin-cw 1.9s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(4) {\n opacity: 0.35;\n animation: tb-spin-ccw 5.5s linear infinite;\n}\n\n.tb-spinner--multi-square .tb-spinner__square:nth-child(5) {\n opacity: 0.2;\n animation: tb-spin-cw 3.3s linear infinite;\n}\n\n/* ── Bracket spinner ──\n Two pseudo-elements form └ and ┐ bracket halves.\n Container rotates; pieces split and rejoin. */\n\n.tb-spinner--bracket {\n animation: tb-bracket-rotate 6s ease-in-out infinite;\n}\n\n.tb-spinner--bracket::before,\n.tb-spinner--bracket::after {\n content: \"\";\n position: absolute;\n inset: 0;\n}\n\n/* └ piece — bottom + left borders */\n.tb-spinner--bracket::before {\n border-bottom: 2px solid var(--tb-primary);\n border-left: 2px solid var(--tb-primary);\n animation: tb-bracket-split-a 6s ease-in-out infinite;\n}\n\n/* ┐ piece — top + right borders */\n.tb-spinner--bracket::after {\n border-top: 2px solid var(--tb-primary);\n border-right: 2px solid var(--tb-primary);\n animation: tb-bracket-split-b 6s ease-in-out infinite;\n}\n\n/* Size overrides for bracket border width */\n.tb-spinner--sm.tb-spinner--bracket::before,\n.tb-spinner--sm.tb-spinner--bracket::after {\n border-width: 1.5px;\n}\n\n.tb-spinner--lg.tb-spinner--bracket::before,\n.tb-spinner--lg.tb-spinner--bracket::after {\n border-width: 3px;\n}\n\n/* ── Bracket keyframes ── */\n@keyframes tb-bracket-rotate {\n 0%, 10% { transform: rotate(0deg); }\n 15%, 35% { transform: rotate(45deg); }\n 40%, 60% { transform: rotate(90deg); }\n 65%, 85% { transform: rotate(135deg); }\n 90%, 100% { transform: rotate(180deg); }\n}\n\n@keyframes tb-bracket-split-a {\n 0%, 5% { transform: translate(0, 0); }\n 10%, 15% { transform: translate(-5px, 5px); }\n 20%, 30% { transform: translate(0, 0); }\n 35%, 40% { transform: translate(-5px, 5px); }\n 45%, 55% { transform: translate(0, 0); }\n 60%, 65% { transform: translate(-5px, 5px); }\n 70%, 80% { transform: translate(0, 0); }\n 85%, 90% { transform: translate(-5px, 5px); }\n 95%, 100% { transform: translate(0, 0); }\n}\n\n@keyframes tb-bracket-split-b {\n 0%, 5% { transform: translate(0, 0); }\n 10%, 15% { transform: translate(5px, -5px); }\n 20%, 30% { transform: translate(0, 0); }\n 35%, 40% { transform: translate(5px, -5px); }\n 45%, 55% { transform: translate(0, 0); }\n 60%, 65% { transform: translate(5px, -5px); }\n 70%, 80% { transform: translate(0, 0); }\n 85%, 90% { transform: translate(5px, -5px); }\n 95%, 100% { transform: translate(0, 0); }\n}\n","/* ═══════════════════════════════════════\n PAGINATION — .tb-pagination\n ═══════════════════════════════════════ */\n\n.tb-pagination {\n display: flex;\n gap: var(--tb-sp-2);\n align-items: center;\n}\n\n.tb-pagination__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid var(--tb-line);\n background: transparent;\n color: var(--tb-primary);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n cursor: pointer;\n transition: all var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-pagination__btn:hover {\n border-color: var(--tb-accent);\n color: var(--tb-accent);\n text-shadow: 0 0 15px var(--tb-glow);\n}\n\n/* ── Focus-visible ── */\n.tb-pagination__btn:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: 2px;\n}\n\n.tb-pagination__btn--active {\n background: var(--tb-primary);\n border-color: var(--tb-primary);\n color: var(--tb-bg);\n}\n\n.tb-pagination__btn--active:hover {\n background: var(--tb-primary);\n color: var(--tb-bg);\n text-shadow: none;\n}\n\n.tb-pagination__btn--disabled {\n opacity: 0.25;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.tb-pagination__ellipsis {\n font-size: 0.6rem;\n letter-spacing: 0.2em;\n opacity: 0.4;\n padding: 0 var(--tb-sp-1);\n}\n","/* ═══════════════════════════════════════\n BREADCRUMBS — .tb-breadcrumbs\n ═══════════════════════════════════════ */\n\n.tb-breadcrumbs {\n font-size: 0.55rem;\n letter-spacing: 0.3em;\n padding: var(--tb-sp-3) 0;\n}\n\n.tb-breadcrumbs__list {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.tb-breadcrumbs__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n}\n\n.tb-breadcrumbs__separator {\n opacity: 0.2;\n}\n\n.tb-breadcrumbs__link {\n color: var(--tb-text-label);\n transition: color var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-breadcrumbs__link:hover {\n color: var(--tb-text-body);\n}\n\n.tb-breadcrumbs__current {\n color: var(--tb-text-heading);\n}\n","/* ═══════════════════════════════════════\n TOOLBAR — .tb-toolbar\n Floating control bar with glass effect\n ═══════════════════════════════════════ */\n\n.tb-toolbar {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n background: var(--tb-bg-card);\n border: 1px solid var(--tb-line-bright);\n padding: var(--tb-sp-2) var(--tb-sp-3);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n font-family: var(--tb-font);\n color: var(--tb-primary);\n}\n\n/* ── Fixed positions ── */\n.tb-toolbar--fixed {\n position: fixed;\n z-index: calc(var(--tb-z-toast) + 10);\n}\n.tb-toolbar--bottom-right {\n bottom: var(--tb-sp-6);\n right: var(--tb-sp-6);\n}\n.tb-toolbar--bottom-left {\n bottom: var(--tb-sp-6);\n left: var(--tb-sp-6);\n}\n.tb-toolbar--top-right {\n top: var(--tb-sp-6);\n right: var(--tb-sp-6);\n}\n.tb-toolbar--top-left {\n top: var(--tb-sp-6);\n left: var(--tb-sp-6);\n}\n\n/* ── Label ── */\n.tb-toolbar__label {\n font-size: 0.5rem;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n white-space: nowrap;\n}\n\n/* ── Divider ── */\n.tb-toolbar__divider {\n width: 1px;\n height: 16px;\n background: var(--tb-line);\n flex-shrink: 0;\n}\n\n/* ── Select (dropdown inside toolbar) ── */\n.tb-toolbar__select {\n position: relative;\n display: inline-block;\n}\n\n.tb-toolbar__trigger {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n height: 32px;\n padding: 0 var(--tb-sp-3);\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n color: var(--tb-primary);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n cursor: pointer;\n white-space: nowrap;\n transition: border-color var(--tb-duration-fast) ease;\n min-width: 160px;\n justify-content: space-between;\n}\n\n.tb-toolbar__trigger:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-toolbar__chevron {\n display: inline-block;\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid currentColor;\n opacity: 0.5;\n transition: transform var(--tb-duration-fast) ease;\n flex-shrink: 0;\n}\n\n.tb-toolbar__select--open .tb-toolbar__chevron {\n transform: rotate(180deg);\n}\n\n/* ── Dropdown ── */\n.tb-toolbar__dropdown {\n position: absolute;\n bottom: calc(100% + 4px);\n left: 0;\n right: 0;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n z-index: 10;\n opacity: 0;\n visibility: hidden;\n transform: translateY(4px);\n transition: opacity var(--tb-duration-fast) ease,\n visibility var(--tb-duration-fast) ease,\n transform var(--tb-duration-fast) ease;\n max-height: 280px;\n overflow-y: auto;\n}\n\n.tb-toolbar__select--open .tb-toolbar__dropdown {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n}\n\n/* Drop-up vs drop-down */\n.tb-toolbar__dropdown--down {\n bottom: auto;\n top: calc(100% + 4px);\n transform: translateY(-4px);\n}\n.tb-toolbar__select--open .tb-toolbar__dropdown--down {\n transform: translateY(0);\n}\n\n/* ── Options ── */\n.tb-toolbar__option {\n padding: var(--tb-sp-2) var(--tb-sp-3);\n font-size: 0.6rem;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n cursor: pointer;\n color: var(--tb-text-label);\n border-left: 2px solid transparent;\n transition: all var(--tb-duration-fast) ease;\n white-space: nowrap;\n}\n\n.tb-toolbar__option:hover {\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.05);\n border-left-color: var(--tb-primary);\n}\n\n.tb-toolbar__option--active {\n color: var(--tb-primary);\n border-left-color: var(--tb-primary);\n}\n\n.tb-toolbar__option-meta {\n display: block;\n font-size: 0.45rem;\n color: var(--tb-text-muted);\n letter-spacing: 0.15em;\n margin-top: 2px;\n}\n\n/* ── Responsive ── */\n@media (max-width: 480px) {\n .tb-toolbar__trigger {\n min-width: 100px;\n }\n .tb-toolbar__label {\n letter-spacing: 0.15em;\n }\n}\n","/* ═══════════════════════════════════════\n SIDENAV — .tb-sidenav\n ═══════════════════════════════════════ */\n\n.tb-sidenav {\n display: flex;\n flex-direction: column;\n}\n\n.tb-sidenav__item {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n width: 100%;\n padding: var(--tb-sp-2) var(--tb-sp-6);\n color: var(--tb-text-label);\n text-decoration: none;\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n font-weight: 400;\n background: none;\n border: none;\n border-left: 2px solid transparent;\n cursor: pointer;\n transition: color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-sidenav__item:hover {\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.03);\n}\n\n.tb-sidenav .tb-sidenav__item--active {\n color: var(--tb-text-heading);\n border-left-color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.05);\n}\n\n/* ── Icon ── */\n.tb-sidenav__icon {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.6;\n flex-shrink: 0;\n}\n\n.tb-sidenav__item--active .tb-sidenav__icon {\n opacity: 0.9;\n}\n\n/* ── Icon on right ── */\n.tb-sidenav--icon-right .tb-sidenav__icon {\n order: 1;\n}\n\n/* ── Border on right side instead of left ── */\n.tb-sidenav--border-right .tb-sidenav__item {\n border-left: none;\n border-right: 2px solid transparent;\n}\n\n.tb-sidenav--border-right .tb-sidenav__item--active {\n border-right-color: var(--tb-primary);\n}\n\n/* ═══════════════════════════════════════\n COLLAPSIBLE GROUP — .tb-sidenav__group\n ═══════════════════════════════════════ */\n\n.tb-sidenav__group-trigger {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n width: 100%;\n padding: var(--tb-sp-2) var(--tb-sp-6);\n color: var(--tb-text-label);\n font-family: var(--tb-font);\n font-size: 0.6rem;\n letter-spacing: 0.25em;\n text-transform: uppercase;\n font-weight: 400;\n background: none;\n border: none;\n border-left: 2px solid transparent;\n cursor: pointer;\n transition: color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease;\n}\n\n.tb-sidenav__group-trigger:hover {\n color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.03);\n}\n\n.tb-sidenav__group-chevron {\n display: inline-flex;\n align-items: center;\n font-size: 16px;\n opacity: 0.4;\n margin-left: auto;\n transition: transform var(--tb-duration-fast) var(--tb-ease-standard);\n}\n\n.tb-sidenav__group--open > .tb-sidenav__group-trigger .tb-sidenav__group-chevron {\n transform: rotate(180deg);\n}\n\n.tb-sidenav__group-content {\n display: none;\n}\n\n.tb-sidenav__group--open > .tb-sidenav__group-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Nested items get extra left padding */\n.tb-sidenav__group-content .tb-sidenav__item {\n padding-left: var(--tb-sp-10);\n}\n\n/* ── Focus-visible ── */\n.tb-sidenav__item:focus-visible,\n.tb-sidenav__group-trigger:focus-visible {\n outline: 2px solid var(--tb-primary);\n outline-offset: -2px;\n}\n","/* ═══════════════════════════════════════\n CODE BLOCK — .tb-code-block\n ═══════════════════════════════════════ */\n\n.tb-code-block {\n position: relative;\n background: var(--tb-bg);\n border: 1px solid var(--tb-line);\n padding: var(--tb-sp-4);\n font-family: \"JetBrains Mono\", monospace;\n font-size: 0.65rem;\n letter-spacing: 0.05em;\n line-height: 1.8;\n color: var(--tb-text-label);\n text-transform: none;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.tb-code-block__copy {\n position: absolute;\n top: var(--tb-sp-2);\n right: var(--tb-sp-2);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: var(--tb-bg-surface);\n border: 1px solid var(--tb-line);\n color: var(--tb-text-muted);\n cursor: pointer;\n opacity: 0;\n transition: opacity var(--tb-duration-fast) ease,\n color var(--tb-duration-fast) ease,\n border-color var(--tb-duration-fast) ease;\n}\n\n.tb-code-block:hover .tb-code-block__copy {\n opacity: 1;\n}\n\n.tb-code-block__copy:hover {\n color: var(--tb-text-heading);\n border-color: var(--tb-line-bright);\n}\n\n.tb-code-block__copy--copied {\n color: var(--tb-success);\n opacity: 1;\n}\n\n.tb-code-block .prompt { color: var(--tb-success); }\n.tb-code-block .key { color: var(--tb-warning); }\n.tb-code-block .string { color: var(--tb-primary); }\n.tb-code-block .comment { color: var(--tb-text-muted); }\n","/* ═══════════════════════════════════════\n SLIDER — .tb-slider\n ═══════════════════════════════════════ */\n\n.tb-slider {\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-2);\n width: 100%;\n}\n\n.tb-slider__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--tb-sp-1);\n}\n\n.tb-slider__label {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n}\n\n.tb-slider__value {\n font-family: var(--tb-font);\n font-size: 0.55rem;\n letter-spacing: 0.15em;\n color: var(--tb-text-muted);\n}\n\n/* ── Track ── */\n.tb-slider__input {\n -webkit-appearance: none;\n appearance: none;\n width: 100%;\n height: 3px;\n background: linear-gradient(\n to right,\n var(--tb-primary) 0%,\n var(--tb-primary) var(--slider-percent, 0%),\n var(--tb-line) var(--slider-percent, 0%),\n var(--tb-line) 100%\n );\n outline: none;\n cursor: pointer;\n border: none;\n transition: opacity var(--tb-duration-fast) ease;\n}\n\n/* ── Thumb — webkit ── */\n.tb-slider__input::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 14px;\n height: 14px;\n background: var(--tb-bg-surface);\n border: 2px solid var(--tb-primary);\n cursor: pointer;\n transition: border-color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease,\n transform var(--tb-duration-fast) ease;\n}\n\n.tb-slider__input::-webkit-slider-thumb:hover {\n border-color: var(--tb-accent);\n background: var(--tb-accent);\n transform: scale(1.15);\n}\n\n/* ── Thumb — firefox ── */\n.tb-slider__input::-moz-range-thumb {\n width: 14px;\n height: 14px;\n background: var(--tb-bg-surface);\n border: 2px solid var(--tb-primary);\n border-radius: 0;\n cursor: pointer;\n transition: border-color var(--tb-duration-fast) ease,\n background var(--tb-duration-fast) ease;\n}\n\n.tb-slider__input::-moz-range-thumb:hover {\n border-color: var(--tb-accent);\n background: var(--tb-accent);\n}\n\n/* ── Focus ── */\n.tb-slider__input:focus-visible::-webkit-slider-thumb {\n outline: 2px solid var(--tb-accent);\n outline-offset: 3px;\n}\n\n/* ── Disabled ── */\n.tb-slider--disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n/* ── Variants ── */\n.tb-slider--success .tb-slider__input {\n background: linear-gradient(\n to right,\n var(--tb-success) 0%,\n var(--tb-success) var(--slider-percent, 0%),\n var(--tb-line) var(--slider-percent, 0%),\n var(--tb-line) 100%\n );\n}\n\n.tb-slider--success .tb-slider__input::-webkit-slider-thumb {\n border-color: var(--tb-success);\n}\n\n.tb-slider--success .tb-slider__input::-moz-range-thumb {\n border-color: var(--tb-success);\n}\n\n.tb-slider--warning .tb-slider__input {\n background: linear-gradient(\n to right,\n var(--tb-warning) 0%,\n var(--tb-warning) var(--slider-percent, 0%),\n var(--tb-line) var(--slider-percent, 0%),\n var(--tb-line) 100%\n );\n}\n\n.tb-slider--warning .tb-slider__input::-webkit-slider-thumb {\n border-color: var(--tb-warning);\n}\n\n.tb-slider--warning .tb-slider__input::-moz-range-thumb {\n border-color: var(--tb-warning);\n}\n\n.tb-slider--error .tb-slider__input {\n background: linear-gradient(\n to right,\n var(--tb-error) 0%,\n var(--tb-error) var(--slider-percent, 0%),\n var(--tb-line) var(--slider-percent, 0%),\n var(--tb-line) 100%\n );\n}\n\n.tb-slider--error .tb-slider__input::-webkit-slider-thumb {\n border-color: var(--tb-error);\n}\n\n.tb-slider--error .tb-slider__input::-moz-range-thumb {\n border-color: var(--tb-error);\n}\n","/* ═══════════════════════════════════════\n FILE UPLOAD — .tb-file-upload\n ═══════════════════════════════════════ */\n\n.tb-file-upload {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ── Drop zone ── */\n.tb-file-upload__zone {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--tb-sp-3);\n padding: var(--tb-sp-8) var(--tb-sp-6);\n border: 1px dashed var(--tb-line-bright);\n background: var(--tb-bg-input);\n cursor: pointer;\n transition: border-color var(--tb-duration-normal) ease,\n background var(--tb-duration-normal) ease;\n}\n\n.tb-file-upload__zone:hover {\n border-color: var(--tb-primary);\n background: rgba(167, 217, 239, 0.03);\n}\n\n.tb-file-upload__zone--drag {\n border-color: var(--tb-accent);\n background: rgba(204, 192, 243, 0.05);\n}\n\n.tb-file-upload__zone--error {\n border-color: rgba(239, 107, 107, 0.5);\n}\n\n.tb-file-upload__zone--disabled {\n opacity: 0.3;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Hidden file input ── */\n.tb-file-upload__input {\n position: absolute;\n inset: 0;\n opacity: 0;\n cursor: pointer;\n}\n\n.tb-file-upload__zone--disabled .tb-file-upload__input {\n cursor: not-allowed;\n}\n\n/* ── Icon ── */\n.tb-file-upload__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--tb-text-muted);\n font-size: 28px;\n transition: color var(--tb-duration-fast) ease;\n}\n\n.tb-file-upload__zone:hover .tb-file-upload__icon {\n color: var(--tb-primary);\n}\n\n.tb-file-upload__zone--drag .tb-file-upload__icon {\n color: var(--tb-accent);\n}\n\n/* ── Text ── */\n.tb-file-upload__text {\n font-size: 0.55rem;\n font-weight: 400;\n letter-spacing: 0.3em;\n text-transform: uppercase;\n color: var(--tb-text-label);\n text-align: center;\n}\n\n.tb-file-upload__hint-text {\n font-size: 0.5rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n}\n\n/* ── Compact / button-only variant ── */\n.tb-file-upload--compact .tb-file-upload__zone {\n flex-direction: row;\n padding: 0;\n border: none;\n background: none;\n gap: var(--tb-sp-3);\n justify-content: flex-start;\n}\n\n.tb-file-upload--compact .tb-file-upload__zone:hover {\n background: none;\n}\n\n.tb-file-upload--compact .tb-file-upload__input {\n position: absolute;\n inset: 0;\n}\n\n/* ── File list ── */\n.tb-file-upload__files {\n display: flex;\n flex-direction: column;\n gap: var(--tb-sp-2);\n}\n\n.tb-file-upload__file {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-3);\n padding: var(--tb-sp-2) var(--tb-sp-3);\n border: 1px solid var(--tb-line);\n background: var(--tb-bg-card);\n transition: border-color var(--tb-duration-fast) ease;\n}\n\n.tb-file-upload__file:hover {\n border-color: var(--tb-line-bright);\n}\n\n.tb-file-upload__file-icon {\n display: flex;\n align-items: center;\n color: var(--tb-text-muted);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.tb-file-upload__file-info {\n flex: 1;\n min-width: 0;\n}\n\n.tb-file-upload__file-name {\n font-size: 0.55rem;\n font-weight: 500;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-body);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tb-file-upload__file-size {\n font-size: 0.45rem;\n letter-spacing: 0.15em;\n text-transform: uppercase;\n color: var(--tb-text-muted);\n}\n\n.tb-file-upload__file-remove {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: none;\n border: 1px solid transparent;\n color: var(--tb-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 14px;\n transition: all var(--tb-duration-fast) ease;\n}\n\n.tb-file-upload__file-remove:hover {\n color: var(--tb-error);\n border-color: rgba(239, 107, 107, 0.3);\n}\n\n/* ── Preview (image thumbnails) ── */\n.tb-file-upload__preview {\n width: 36px;\n height: 36px;\n object-fit: cover;\n border: 1px solid var(--tb-line);\n flex-shrink: 0;\n}\n\n/* ── Error / hint ── */\n.tb-file-upload__error {\n display: flex;\n align-items: center;\n gap: var(--tb-sp-2);\n font-size: 0.5rem;\n font-weight: 400;\n letter-spacing: 0.2em;\n text-transform: uppercase;\n color: var(--tb-error);\n}\n\n/* ── Focus-visible ── */\n.tb-file-upload__zone:focus-within {\n border-color: var(--tb-primary);\n box-shadow: 0 0 0 3px rgba(167, 217, 239, 0.1),\n 0 0 20px rgba(167, 217, 239, 0.05);\n}\n"],"mappings":"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","names":[]}
|