@twentyfirstmedia/pro 0.5.0 → 0.7.0
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/README.md +1 -1
- package/dist/fonts/og/geist-latin-400-normal.woff +0 -0
- package/dist/fonts/og/geist-latin-500-normal.woff +0 -0
- package/dist/fonts/og/geist-latin-600-normal.woff +0 -0
- package/dist/fonts/og/geist-latin-700-normal.woff +0 -0
- package/dist/fonts/og/geist-mono-latin-500-normal.woff +0 -0
- package/dist/fonts/og/geist-mono-latin-600-normal.woff +0 -0
- package/dist/scoped.css +2799 -232
- package/dist/styles.css +2752 -224
- package/dist/tailwind.css +5 -0
- package/dist/tokens.css +25 -0
- package/dist/tokens.json +40 -0
- package/package.json +4 -2
package/dist/styles.css
CHANGED
|
@@ -303,6 +303,11 @@
|
|
|
303
303
|
--chart-lilac: var(--fg-300);
|
|
304
304
|
--chart-butter: var(--fg-200);
|
|
305
305
|
--chart-blush: var(--line-300);
|
|
306
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
307
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
308
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
309
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
310
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
306
311
|
--ok: #5cc28f;
|
|
307
312
|
--ok-bg: rgba(92,194,143,0.12);
|
|
308
313
|
--info: #7aa7f5;
|
|
@@ -451,6 +456,11 @@
|
|
|
451
456
|
--chart-lilac: var(--fg-300);
|
|
452
457
|
--chart-butter: var(--fg-200);
|
|
453
458
|
--chart-blush: var(--line-300);
|
|
459
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
460
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
461
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
462
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
463
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
454
464
|
--ok: #5cc28f;
|
|
455
465
|
--ok-bg: rgba(92,194,143,0.12);
|
|
456
466
|
--info: #7aa7f5;
|
|
@@ -600,6 +610,11 @@
|
|
|
600
610
|
--chart-lilac: var(--fg-300);
|
|
601
611
|
--chart-butter: var(--fg-200);
|
|
602
612
|
--chart-blush: var(--line-300);
|
|
613
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
614
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
615
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
616
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
617
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
603
618
|
--ok: #177447;
|
|
604
619
|
--ok-bg: rgba(23,116,71,0.09);
|
|
605
620
|
--info: #2856b0;
|
|
@@ -748,6 +763,11 @@
|
|
|
748
763
|
--chart-lilac: var(--fg-300);
|
|
749
764
|
--chart-butter: var(--fg-200);
|
|
750
765
|
--chart-blush: var(--line-300);
|
|
766
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
767
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
768
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
769
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
770
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
751
771
|
--ok: #5cc28f;
|
|
752
772
|
--ok-bg: rgba(92,194,143,0.12);
|
|
753
773
|
--info: #7aa7f5;
|
|
@@ -895,6 +915,11 @@
|
|
|
895
915
|
--chart-lilac: var(--fg-300);
|
|
896
916
|
--chart-butter: var(--fg-200);
|
|
897
917
|
--chart-blush: var(--line-300);
|
|
918
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
919
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
920
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
921
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
922
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
898
923
|
--ok: #177447;
|
|
899
924
|
--ok-bg: rgba(23,116,71,0.09);
|
|
900
925
|
--info: #2856b0;
|
|
@@ -1450,7 +1475,8 @@ select.tf-input {
|
|
|
1450
1475
|
border-radius: var(--radius-pill);
|
|
1451
1476
|
background: var(--surface-sunken);
|
|
1452
1477
|
color: var(--ink-muted);
|
|
1453
|
-
min-width: 220px;
|
|
1478
|
+
min-width: min(220px, 100%);
|
|
1479
|
+
box-sizing: border-box;
|
|
1454
1480
|
}
|
|
1455
1481
|
.tf-search input {
|
|
1456
1482
|
border: 0;
|
|
@@ -1459,6 +1485,7 @@ select.tf-input {
|
|
|
1459
1485
|
font: 500 14px/20px var(--font-sans);
|
|
1460
1486
|
color: var(--ink);
|
|
1461
1487
|
width: 100%;
|
|
1488
|
+
min-width: 0;
|
|
1462
1489
|
}
|
|
1463
1490
|
.tf-search input::placeholder {
|
|
1464
1491
|
color: var(--ink-subtle);
|
|
@@ -1540,7 +1567,7 @@ select.tf-input {
|
|
|
1540
1567
|
display: flex;
|
|
1541
1568
|
}
|
|
1542
1569
|
.tf-tabs-block .tf-tab {
|
|
1543
|
-
flex: 1;
|
|
1570
|
+
flex: 1 1 0;
|
|
1544
1571
|
}
|
|
1545
1572
|
|
|
1546
1573
|
/* StatTile */
|
|
@@ -1857,6 +1884,36 @@ select.tf-input {
|
|
|
1857
1884
|
background: var(--accent);
|
|
1858
1885
|
color: var(--accent-foreground);
|
|
1859
1886
|
}
|
|
1887
|
+
/* expanded: names next to the icons (the sheet's first column follows the rail's width) */
|
|
1888
|
+
.tf-rail {
|
|
1889
|
+
transition: width var(--dur-base) var(--ease-out);
|
|
1890
|
+
}
|
|
1891
|
+
.tf-rail.expanded {
|
|
1892
|
+
width: 200px;
|
|
1893
|
+
}
|
|
1894
|
+
.tf-rail.expanded .tf-rail-group {
|
|
1895
|
+
align-items: stretch;
|
|
1896
|
+
}
|
|
1897
|
+
.tf-rail.expanded .tf-rail-btn {
|
|
1898
|
+
display: flex;
|
|
1899
|
+
align-items: center;
|
|
1900
|
+
gap: 12px;
|
|
1901
|
+
width: 100%;
|
|
1902
|
+
padding: 0 10px;
|
|
1903
|
+
box-sizing: border-box;
|
|
1904
|
+
border-radius: var(--radius-pill);
|
|
1905
|
+
}
|
|
1906
|
+
.tf-rail-label {
|
|
1907
|
+
min-width: 0;
|
|
1908
|
+
overflow: hidden;
|
|
1909
|
+
text-overflow: ellipsis;
|
|
1910
|
+
white-space: nowrap;
|
|
1911
|
+
font: 500 13px/18px var(--font-sans);
|
|
1912
|
+
}
|
|
1913
|
+
.tf-rail.expanded .tf-dotcount {
|
|
1914
|
+
position: static;
|
|
1915
|
+
margin-left: auto;
|
|
1916
|
+
}
|
|
1860
1917
|
.tf-rail-btn[aria-current="page"] {
|
|
1861
1918
|
background: var(--primary);
|
|
1862
1919
|
color: var(--primary-foreground);
|
|
@@ -2006,9 +2063,28 @@ select.tf-input {
|
|
|
2006
2063
|
.tf-shell .tf-topbar {
|
|
2007
2064
|
padding: 0 var(--space-6);
|
|
2008
2065
|
}
|
|
2066
|
+
/* AppShell with navigation="sidebar": the labelled sidebar on the frame, the sheet beside it */
|
|
2067
|
+
.tf-shell.tf-shell-sidebar {
|
|
2068
|
+
display: grid;
|
|
2069
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
2070
|
+
align-items: stretch;
|
|
2071
|
+
padding: 8px;
|
|
2072
|
+
}
|
|
2073
|
+
.tf-shell-tools {
|
|
2074
|
+
display: flex;
|
|
2075
|
+
justify-content: flex-end;
|
|
2076
|
+
flex-wrap: wrap;
|
|
2077
|
+
gap: 8px;
|
|
2078
|
+
}
|
|
2079
|
+
.tf-sheet.tf-sheet-norail {
|
|
2080
|
+
grid-template-columns: minmax(0, 1fr) 300px;
|
|
2081
|
+
}
|
|
2082
|
+
.tf-sheet.tf-sheet-norail.tf-sheet-2 {
|
|
2083
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2084
|
+
}
|
|
2009
2085
|
.tf-sheet {
|
|
2010
2086
|
display: grid;
|
|
2011
|
-
grid-template-columns:
|
|
2087
|
+
grid-template-columns: auto 1fr 300px;
|
|
2012
2088
|
gap: var(--space-6);
|
|
2013
2089
|
padding: var(--space-6);
|
|
2014
2090
|
background: var(--canvas);
|
|
@@ -2525,6 +2601,64 @@ select.tf-input {
|
|
|
2525
2601
|
background: var(--accent);
|
|
2526
2602
|
color: var(--accent-foreground);
|
|
2527
2603
|
}
|
|
2604
|
+
a.tf-row-item {
|
|
2605
|
+
text-decoration: none;
|
|
2606
|
+
}
|
|
2607
|
+
.tf-row-text {
|
|
2608
|
+
min-width: 0;
|
|
2609
|
+
}
|
|
2610
|
+
/* not interactive: no hover, no pointer */
|
|
2611
|
+
.tf-row-item.static {
|
|
2612
|
+
cursor: default;
|
|
2613
|
+
}
|
|
2614
|
+
.tf-row-item.static:hover {
|
|
2615
|
+
background: transparent;
|
|
2616
|
+
color: var(--ink);
|
|
2617
|
+
}
|
|
2618
|
+
/* own buttons: the title is the link or button and its hit area stretches over the row */
|
|
2619
|
+
.tf-row-item.has-hit {
|
|
2620
|
+
position: relative;
|
|
2621
|
+
}
|
|
2622
|
+
.tf-row-item.has-hit:hover {
|
|
2623
|
+
background: transparent;
|
|
2624
|
+
color: var(--ink);
|
|
2625
|
+
}
|
|
2626
|
+
.tf-row-item.has-hit:has(.tf-row-hit:hover) {
|
|
2627
|
+
background: var(--accent);
|
|
2628
|
+
color: var(--accent-foreground);
|
|
2629
|
+
}
|
|
2630
|
+
.tf-row-item.has-hit:has(.tf-row-hit:focus-visible) {
|
|
2631
|
+
outline: 2px solid var(--focus);
|
|
2632
|
+
outline-offset: 2px;
|
|
2633
|
+
}
|
|
2634
|
+
.tf-row-hit {
|
|
2635
|
+
display: block;
|
|
2636
|
+
padding: 0;
|
|
2637
|
+
border: 0;
|
|
2638
|
+
background: none;
|
|
2639
|
+
color: inherit;
|
|
2640
|
+
font: inherit;
|
|
2641
|
+
text-align: left;
|
|
2642
|
+
text-decoration: none;
|
|
2643
|
+
cursor: pointer;
|
|
2644
|
+
outline: none;
|
|
2645
|
+
}
|
|
2646
|
+
.tf-row-hit::after {
|
|
2647
|
+
content: "";
|
|
2648
|
+
position: absolute;
|
|
2649
|
+
inset: 0;
|
|
2650
|
+
border-radius: inherit;
|
|
2651
|
+
}
|
|
2652
|
+
.tf-row-item.has-actions {
|
|
2653
|
+
grid-template-columns: auto 1fr auto auto;
|
|
2654
|
+
}
|
|
2655
|
+
.tf-row-actions {
|
|
2656
|
+
position: relative;
|
|
2657
|
+
z-index: 1;
|
|
2658
|
+
display: flex;
|
|
2659
|
+
align-items: center;
|
|
2660
|
+
gap: 4px;
|
|
2661
|
+
}
|
|
2528
2662
|
.tf-row-item[aria-current="true"] {
|
|
2529
2663
|
background: var(--surface);
|
|
2530
2664
|
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
@@ -2536,12 +2670,27 @@ select.tf-input {
|
|
|
2536
2670
|
gap: 8px;
|
|
2537
2671
|
}
|
|
2538
2672
|
.tf-row-sub {
|
|
2673
|
+
display: block;
|
|
2539
2674
|
font: 500 13px/18px var(--font-sans);
|
|
2540
2675
|
color: var(--ink-muted);
|
|
2541
2676
|
white-space: nowrap;
|
|
2542
2677
|
overflow: hidden;
|
|
2543
2678
|
text-overflow: ellipsis;
|
|
2544
2679
|
}
|
|
2680
|
+
/* titleLines / subtitleLines: wrap, then end in an ellipsis after that many lines */
|
|
2681
|
+
.tf-row-sub.clamp,
|
|
2682
|
+
.tf-row-clamp {
|
|
2683
|
+
display: -webkit-box;
|
|
2684
|
+
-webkit-box-orient: vertical;
|
|
2685
|
+
-webkit-line-clamp: var(--lines, 2);
|
|
2686
|
+
line-clamp: var(--lines, 2);
|
|
2687
|
+
white-space: normal;
|
|
2688
|
+
overflow: hidden;
|
|
2689
|
+
min-width: 0;
|
|
2690
|
+
}
|
|
2691
|
+
.tf-row-title.clamp {
|
|
2692
|
+
align-items: flex-start;
|
|
2693
|
+
}
|
|
2545
2694
|
.tf-row-meta {
|
|
2546
2695
|
font: 500 12px/16px var(--font-sans);
|
|
2547
2696
|
color: var(--ink-muted);
|
|
@@ -2728,6 +2877,13 @@ select.tf-input {
|
|
|
2728
2877
|
font: 500 13px/1 var(--font-sans);
|
|
2729
2878
|
cursor: pointer;
|
|
2730
2879
|
}
|
|
2880
|
+
a.tf-page {
|
|
2881
|
+
display: inline-flex;
|
|
2882
|
+
align-items: center;
|
|
2883
|
+
justify-content: center;
|
|
2884
|
+
box-sizing: border-box;
|
|
2885
|
+
text-decoration: none;
|
|
2886
|
+
}
|
|
2731
2887
|
.tf-page:hover {
|
|
2732
2888
|
background: var(--accent);
|
|
2733
2889
|
color: var(--ink);
|
|
@@ -2738,18 +2894,42 @@ select.tf-input {
|
|
|
2738
2894
|
}
|
|
2739
2895
|
.tf-crumbs {
|
|
2740
2896
|
display: flex;
|
|
2897
|
+
flex-wrap: wrap;
|
|
2741
2898
|
align-items: center;
|
|
2742
2899
|
gap: 6px;
|
|
2900
|
+
min-width: 0;
|
|
2743
2901
|
font: 500 13px/18px var(--font-sans);
|
|
2744
2902
|
color: var(--ink-muted);
|
|
2745
2903
|
}
|
|
2746
|
-
|
|
2904
|
+
/* links and buttons get a 24px target without moving the text */
|
|
2905
|
+
.tf-crumb {
|
|
2906
|
+
display: inline-flex;
|
|
2907
|
+
align-items: center;
|
|
2908
|
+
min-height: 24px;
|
|
2909
|
+
max-width: 100%;
|
|
2910
|
+
padding: 0 4px;
|
|
2911
|
+
/* the target grows to 24px around the 18px line without moving the text */
|
|
2912
|
+
margin: -3px -4px;
|
|
2913
|
+
border: 0;
|
|
2914
|
+
border-radius: var(--radius-sm);
|
|
2915
|
+
background: none;
|
|
2747
2916
|
color: inherit;
|
|
2917
|
+
font: inherit;
|
|
2748
2918
|
text-decoration: none;
|
|
2919
|
+
overflow-wrap: anywhere;
|
|
2920
|
+
}
|
|
2921
|
+
a.tf-crumb,
|
|
2922
|
+
button.tf-crumb {
|
|
2923
|
+
cursor: pointer;
|
|
2749
2924
|
}
|
|
2750
|
-
.tf-
|
|
2925
|
+
a.tf-crumb:hover,
|
|
2926
|
+
button.tf-crumb:hover {
|
|
2751
2927
|
color: var(--ink);
|
|
2752
2928
|
}
|
|
2929
|
+
.tf-crumb:focus-visible {
|
|
2930
|
+
outline: 2px solid var(--focus);
|
|
2931
|
+
outline-offset: 0;
|
|
2932
|
+
}
|
|
2753
2933
|
.tf-crumbs [aria-current] {
|
|
2754
2934
|
color: var(--ink);
|
|
2755
2935
|
}
|
|
@@ -2791,7 +2971,7 @@ select.tf-input {
|
|
|
2791
2971
|
cursor: pointer;
|
|
2792
2972
|
}
|
|
2793
2973
|
.tf-sheet-2 {
|
|
2794
|
-
grid-template-columns:
|
|
2974
|
+
grid-template-columns: auto 1fr;
|
|
2795
2975
|
}
|
|
2796
2976
|
.tf-main {
|
|
2797
2977
|
display: flex;
|
|
@@ -2861,6 +3041,26 @@ select.tf-input {
|
|
|
2861
3041
|
justify-content: center;
|
|
2862
3042
|
}
|
|
2863
3043
|
}
|
|
3044
|
+
/* the TopBar measured that the labels do not fit: icons only, at any width */
|
|
3045
|
+
.tf-nav.tight .tf-nav-label {
|
|
3046
|
+
display: none;
|
|
3047
|
+
}
|
|
3048
|
+
.tf-nav.tight .tf-nav-item {
|
|
3049
|
+
position: relative;
|
|
3050
|
+
width: 36px;
|
|
3051
|
+
padding: 0;
|
|
3052
|
+
justify-content: center;
|
|
3053
|
+
}
|
|
3054
|
+
.tf-nav.tight .tf-nav-item .tf-nav-count {
|
|
3055
|
+
position: absolute;
|
|
3056
|
+
top: -2px;
|
|
3057
|
+
right: -4px;
|
|
3058
|
+
min-width: 16px;
|
|
3059
|
+
height: 16px;
|
|
3060
|
+
padding: 0 4px;
|
|
3061
|
+
font-size: 10px;
|
|
3062
|
+
line-height: 16px;
|
|
3063
|
+
}
|
|
2864
3064
|
.tf-main {
|
|
2865
3065
|
animation: none;
|
|
2866
3066
|
}
|
|
@@ -2986,6 +3186,19 @@ select.tf-input {
|
|
|
2986
3186
|
.tf-user-text {
|
|
2987
3187
|
display: flex;
|
|
2988
3188
|
flex-direction: column;
|
|
3189
|
+
min-width: 0;
|
|
3190
|
+
max-width: 200px;
|
|
3191
|
+
}
|
|
3192
|
+
/* a long name or address ends in an ellipsis instead of pushing the nav out (title has it whole) */
|
|
3193
|
+
.tf-user-name,
|
|
3194
|
+
.tf-user-mail {
|
|
3195
|
+
overflow: hidden;
|
|
3196
|
+
text-overflow: ellipsis;
|
|
3197
|
+
white-space: nowrap;
|
|
3198
|
+
}
|
|
3199
|
+
.tf-user {
|
|
3200
|
+
min-width: 0;
|
|
3201
|
+
flex-shrink: 1;
|
|
2989
3202
|
}
|
|
2990
3203
|
|
|
2991
3204
|
/* Checkbox: real box + SVG check (no pseudo-elements on the input) */
|
|
@@ -2998,9 +3211,12 @@ select.tf-input {
|
|
|
2998
3211
|
}
|
|
2999
3212
|
.tf-checkbox input {
|
|
3000
3213
|
position: absolute;
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3214
|
+
/* the box keeps its size; the hit area is at least 24px (WCAG 2.2 target size) */
|
|
3215
|
+
top: 50%;
|
|
3216
|
+
left: 50%;
|
|
3217
|
+
translate: -50% -50%;
|
|
3218
|
+
width: max(24px, 100%);
|
|
3219
|
+
height: max(24px, 100%);
|
|
3004
3220
|
margin: 0;
|
|
3005
3221
|
opacity: 0;
|
|
3006
3222
|
cursor: pointer;
|
|
@@ -4075,6 +4291,23 @@ select.tf-input {
|
|
|
4075
4291
|
font: 500 13px/18px var(--font-sans);
|
|
4076
4292
|
pointer-events: none;
|
|
4077
4293
|
}
|
|
4294
|
+
/* an interactive control at the end (reveal password, clear, copy) */
|
|
4295
|
+
.tf-input-action {
|
|
4296
|
+
position: absolute;
|
|
4297
|
+
right: 4px;
|
|
4298
|
+
top: 50%;
|
|
4299
|
+
transform: translateY(-50%);
|
|
4300
|
+
display: inline-flex;
|
|
4301
|
+
}
|
|
4302
|
+
.tf-inputwrap.has-action .tf-input {
|
|
4303
|
+
padding-right: 44px;
|
|
4304
|
+
}
|
|
4305
|
+
.tf-inputwrap.has-action.has-suffix .tf-input {
|
|
4306
|
+
padding-right: 72px;
|
|
4307
|
+
}
|
|
4308
|
+
.tf-inputwrap.has-action .tf-input-suffix {
|
|
4309
|
+
right: 44px;
|
|
4310
|
+
}
|
|
4078
4311
|
.tf-input-suffix.err {
|
|
4079
4312
|
color: var(--blush-ink);
|
|
4080
4313
|
}
|
|
@@ -4234,7 +4467,7 @@ select.tf-input {
|
|
|
4234
4467
|
display: flex;
|
|
4235
4468
|
}
|
|
4236
4469
|
.tf-seg.block .tf-seg-item {
|
|
4237
|
-
flex: 1;
|
|
4470
|
+
flex: 1 1 0;
|
|
4238
4471
|
}
|
|
4239
4472
|
.tf-seg-item {
|
|
4240
4473
|
position: relative;
|
|
@@ -4846,6 +5079,10 @@ label.tf-menu-item {
|
|
|
4846
5079
|
border-color var(--dur-fast) ease,
|
|
4847
5080
|
background-color var(--dur-fast) ease;
|
|
4848
5081
|
}
|
|
5082
|
+
.tf-drop.disabled {
|
|
5083
|
+
opacity: 0.5;
|
|
5084
|
+
cursor: not-allowed;
|
|
5085
|
+
}
|
|
4849
5086
|
.tf-drop b {
|
|
4850
5087
|
font: 500 14px/20px var(--font-sans);
|
|
4851
5088
|
margin-top: 4px;
|
|
@@ -4908,6 +5145,7 @@ label.tf-menu-item {
|
|
|
4908
5145
|
/* Alert, confirm, toaster */
|
|
4909
5146
|
.tf-alert {
|
|
4910
5147
|
display: flex;
|
|
5148
|
+
flex-wrap: wrap;
|
|
4911
5149
|
align-items: flex-start;
|
|
4912
5150
|
gap: 12px;
|
|
4913
5151
|
padding: 12px 12px 12px 16px;
|
|
@@ -4951,7 +5189,8 @@ label.tf-menu-item {
|
|
|
4951
5189
|
color: var(--lilac-ink);
|
|
4952
5190
|
}
|
|
4953
5191
|
.tf-alert-body {
|
|
4954
|
-
|
|
5192
|
+
/* when the alert is too narrow for text and actions, the actions move to their own line */
|
|
5193
|
+
flex: 1 1 200px;
|
|
4955
5194
|
min-width: 0;
|
|
4956
5195
|
display: flex;
|
|
4957
5196
|
flex-direction: column;
|
|
@@ -4967,8 +5206,11 @@ label.tf-menu-item {
|
|
|
4967
5206
|
.tf-alert-actions {
|
|
4968
5207
|
flex: none;
|
|
4969
5208
|
display: flex;
|
|
5209
|
+
flex-wrap: wrap;
|
|
4970
5210
|
align-items: center;
|
|
4971
5211
|
gap: 4px;
|
|
5212
|
+
max-width: 100%;
|
|
5213
|
+
margin-left: auto;
|
|
4972
5214
|
}
|
|
4973
5215
|
.tf-alert .tf-iconbtn-ghost {
|
|
4974
5216
|
background: transparent;
|
|
@@ -5973,14 +6215,29 @@ label.tf-menu-item {
|
|
|
5973
6215
|
display: inline-flex;
|
|
5974
6216
|
align-items: center;
|
|
5975
6217
|
gap: 8px;
|
|
5976
|
-
|
|
5977
|
-
|
|
6218
|
+
/* grows with a long title (two lines at most) instead of spilling over */
|
|
6219
|
+
min-height: var(--control-sm);
|
|
6220
|
+
box-sizing: border-box;
|
|
6221
|
+
padding: 4px 12px 4px 4px;
|
|
5978
6222
|
border-radius: var(--radius-pill);
|
|
5979
6223
|
background: var(--surface-sunken);
|
|
5980
6224
|
color: var(--ink);
|
|
5981
6225
|
text-decoration: none;
|
|
5982
6226
|
font: 500 12px/16px var(--font-sans);
|
|
5983
|
-
max-width: 260px;
|
|
6227
|
+
max-width: min(260px, 100%);
|
|
6228
|
+
}
|
|
6229
|
+
.tf-source-title {
|
|
6230
|
+
min-width: 0;
|
|
6231
|
+
display: -webkit-box;
|
|
6232
|
+
-webkit-box-orient: vertical;
|
|
6233
|
+
-webkit-line-clamp: 2;
|
|
6234
|
+
line-clamp: 2;
|
|
6235
|
+
overflow: hidden;
|
|
6236
|
+
overflow-wrap: anywhere;
|
|
6237
|
+
}
|
|
6238
|
+
.tf-source > .tf-ico,
|
|
6239
|
+
.tf-source-n {
|
|
6240
|
+
flex: none;
|
|
5984
6241
|
}
|
|
5985
6242
|
.tf-source:hover {
|
|
5986
6243
|
background: var(--line);
|
|
@@ -7103,17 +7360,25 @@ label.tf-menu-item {
|
|
|
7103
7360
|
color: var(--ink-muted);
|
|
7104
7361
|
}
|
|
7105
7362
|
.tf-csteps {
|
|
7363
|
+
/* one row at every width: steps shrink to their numbers instead of wrapping */
|
|
7364
|
+
container: tf-csteps / inline-size;
|
|
7106
7365
|
display: flex;
|
|
7107
7366
|
gap: 8px;
|
|
7108
7367
|
margin: 0;
|
|
7109
7368
|
padding: 0;
|
|
7110
7369
|
list-style: none;
|
|
7111
|
-
flex-wrap: wrap;
|
|
7112
7370
|
}
|
|
7113
7371
|
.tf-csteps li {
|
|
7114
7372
|
display: flex;
|
|
7115
7373
|
align-items: center;
|
|
7116
7374
|
gap: 8px;
|
|
7375
|
+
min-width: 0;
|
|
7376
|
+
}
|
|
7377
|
+
.tf-cstep-label {
|
|
7378
|
+
min-width: 0;
|
|
7379
|
+
overflow: hidden;
|
|
7380
|
+
text-overflow: ellipsis;
|
|
7381
|
+
white-space: nowrap;
|
|
7117
7382
|
}
|
|
7118
7383
|
.tf-csteps li + li::before {
|
|
7119
7384
|
content: "";
|
|
@@ -7142,6 +7407,40 @@ label.tf-menu-item {
|
|
|
7142
7407
|
.tf-csteps button:disabled {
|
|
7143
7408
|
cursor: default;
|
|
7144
7409
|
}
|
|
7410
|
+
.tf-csteps button {
|
|
7411
|
+
min-width: 0;
|
|
7412
|
+
max-width: 100%;
|
|
7413
|
+
}
|
|
7414
|
+
.tf-csteps.compact li:not(.cur) .tf-cstep-label {
|
|
7415
|
+
position: absolute;
|
|
7416
|
+
width: 1px;
|
|
7417
|
+
height: 1px;
|
|
7418
|
+
overflow: hidden;
|
|
7419
|
+
clip-path: inset(50%);
|
|
7420
|
+
white-space: nowrap;
|
|
7421
|
+
}
|
|
7422
|
+
.tf-csteps.compact li:not(.cur) button {
|
|
7423
|
+
padding: 0 4px;
|
|
7424
|
+
}
|
|
7425
|
+
.tf-csteps.compact li + li::before {
|
|
7426
|
+
width: 12px;
|
|
7427
|
+
}
|
|
7428
|
+
@container tf-csteps (max-width: 560px) {
|
|
7429
|
+
.tf-csteps li:not(.cur) .tf-cstep-label {
|
|
7430
|
+
position: absolute;
|
|
7431
|
+
width: 1px;
|
|
7432
|
+
height: 1px;
|
|
7433
|
+
overflow: hidden;
|
|
7434
|
+
clip-path: inset(50%);
|
|
7435
|
+
white-space: nowrap;
|
|
7436
|
+
}
|
|
7437
|
+
.tf-csteps li:not(.cur) button {
|
|
7438
|
+
padding: 0 4px;
|
|
7439
|
+
}
|
|
7440
|
+
.tf-csteps li + li::before {
|
|
7441
|
+
width: 12px;
|
|
7442
|
+
}
|
|
7443
|
+
}
|
|
7145
7444
|
.tf-csteps li.cur button {
|
|
7146
7445
|
background: var(--surface);
|
|
7147
7446
|
color: var(--ink);
|
|
@@ -7308,7 +7607,7 @@ label.tf-menu-item {
|
|
|
7308
7607
|
color: var(--on-frame);
|
|
7309
7608
|
box-shadow: var(--shadow-float), 0 0 0 var(--line-width) var(--line);
|
|
7310
7609
|
}
|
|
7311
|
-
.tf-plan.featured .tf-plan-head span,
|
|
7610
|
+
.tf-plan.featured .tf-plan-head span:not(.tf-badge),
|
|
7312
7611
|
.tf-plan.featured .tf-plan-price span,
|
|
7313
7612
|
.tf-plan.featured .tf-plan-price s,
|
|
7314
7613
|
.tf-plan.featured .tf-plan-feats li.no {
|
|
@@ -7339,10 +7638,22 @@ label.tf-menu-item {
|
|
|
7339
7638
|
.tf-plan-head b {
|
|
7340
7639
|
font: 600 18px/24px var(--font-sans);
|
|
7341
7640
|
}
|
|
7342
|
-
.tf-plan-head span {
|
|
7641
|
+
.tf-plan-head span:not(.tf-badge) {
|
|
7343
7642
|
font: 500 13px/18px var(--font-sans);
|
|
7344
7643
|
color: var(--ink-muted);
|
|
7345
7644
|
}
|
|
7645
|
+
/* "Current plan" next to the name, and the note under the price */
|
|
7646
|
+
.tf-plan-head .tf-plan-current {
|
|
7647
|
+
align-self: flex-start;
|
|
7648
|
+
}
|
|
7649
|
+
.tf-plan-note {
|
|
7650
|
+
margin: -4px 0 0;
|
|
7651
|
+
font: 500 12px/16px var(--font-sans);
|
|
7652
|
+
color: var(--ink-muted);
|
|
7653
|
+
}
|
|
7654
|
+
a.tf-plan-cta {
|
|
7655
|
+
text-decoration: none;
|
|
7656
|
+
}
|
|
7346
7657
|
.tf-plan-price {
|
|
7347
7658
|
display: flex;
|
|
7348
7659
|
align-items: baseline;
|
|
@@ -9443,7 +9754,7 @@ label.tf-menu-item {
|
|
|
9443
9754
|
.tf-tabbar {
|
|
9444
9755
|
display: grid;
|
|
9445
9756
|
grid-auto-flow: column;
|
|
9446
|
-
grid-auto-columns: 1fr;
|
|
9757
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
9447
9758
|
padding: 4px 8px calc(4px + env(safe-area-inset-bottom, 0px));
|
|
9448
9759
|
background: var(--frame);
|
|
9449
9760
|
border-radius: var(--radius-1) var(--radius-1) 0 0;
|
|
@@ -9462,6 +9773,17 @@ label.tf-menu-item {
|
|
|
9462
9773
|
cursor: pointer;
|
|
9463
9774
|
border-radius: var(--radius-1);
|
|
9464
9775
|
}
|
|
9776
|
+
.tf-tabbar-item {
|
|
9777
|
+
min-width: 0;
|
|
9778
|
+
}
|
|
9779
|
+
.tf-tabbar-label {
|
|
9780
|
+
max-width: 100%;
|
|
9781
|
+
padding: 0 4px;
|
|
9782
|
+
box-sizing: border-box;
|
|
9783
|
+
overflow: hidden;
|
|
9784
|
+
text-overflow: ellipsis;
|
|
9785
|
+
white-space: nowrap;
|
|
9786
|
+
}
|
|
9465
9787
|
.tf-tabbar-item.on {
|
|
9466
9788
|
color: var(--on-frame);
|
|
9467
9789
|
background: var(--frame-hover);
|
|
@@ -9770,6 +10092,22 @@ label.tf-menu-item {
|
|
|
9770
10092
|
padding-bottom: 10px;
|
|
9771
10093
|
color: var(--ink-muted);
|
|
9772
10094
|
}
|
|
10095
|
+
/* in a narrow column (a filter sidebar) the number fields give their padding to the digits */
|
|
10096
|
+
.tf-range {
|
|
10097
|
+
container: tf-range / inline-size;
|
|
10098
|
+
}
|
|
10099
|
+
@container tf-range (max-width: 280px) {
|
|
10100
|
+
.tf-range-inputs {
|
|
10101
|
+
gap: 4px;
|
|
10102
|
+
}
|
|
10103
|
+
.tf-range-num .tf-input {
|
|
10104
|
+
padding-left: 10px;
|
|
10105
|
+
padding-right: 24px;
|
|
10106
|
+
}
|
|
10107
|
+
.tf-range-num > span {
|
|
10108
|
+
right: 10px;
|
|
10109
|
+
}
|
|
10110
|
+
}
|
|
9773
10111
|
.tf-range-vals {
|
|
9774
10112
|
display: flex;
|
|
9775
10113
|
justify-content: space-between;
|
|
@@ -9923,6 +10261,31 @@ label.tf-menu-item {
|
|
|
9923
10261
|
font: 500 12px/16px var(--font-sans);
|
|
9924
10262
|
color: var(--ink-muted);
|
|
9925
10263
|
}
|
|
10264
|
+
/* layout="list": compact rows */
|
|
10265
|
+
.tf-tiles.list {
|
|
10266
|
+
grid-template-columns: minmax(0, 1fr);
|
|
10267
|
+
gap: 8px;
|
|
10268
|
+
}
|
|
10269
|
+
.tf-tiles.list .tf-tile {
|
|
10270
|
+
flex-direction: row;
|
|
10271
|
+
align-items: center;
|
|
10272
|
+
gap: 12px;
|
|
10273
|
+
padding: 8px 44px 8px 8px;
|
|
10274
|
+
}
|
|
10275
|
+
.tf-tiles.list .tf-tile-art {
|
|
10276
|
+
flex: none;
|
|
10277
|
+
width: 40px;
|
|
10278
|
+
height: var(--density-control);
|
|
10279
|
+
aspect-ratio: auto;
|
|
10280
|
+
}
|
|
10281
|
+
.tf-tiles.list .tf-tile-label {
|
|
10282
|
+
min-width: 0;
|
|
10283
|
+
padding: 0;
|
|
10284
|
+
}
|
|
10285
|
+
.tf-tiles.list .tf-tile-check {
|
|
10286
|
+
top: 50%;
|
|
10287
|
+
translate: 0 -50%;
|
|
10288
|
+
}
|
|
9926
10289
|
.tf-tile-check {
|
|
9927
10290
|
position: absolute;
|
|
9928
10291
|
top: 14px;
|
|
@@ -11032,6 +11395,16 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
11032
11395
|
color: var(--paper-ink);
|
|
11033
11396
|
box-shadow: inset 0 0 0 1px var(--line);
|
|
11034
11397
|
}
|
|
11398
|
+
/* QrCode: dark modules on paper, in every theme (scanners expect dark on light) */
|
|
11399
|
+
.tf-qr {
|
|
11400
|
+
display: block;
|
|
11401
|
+
width: 100%;
|
|
11402
|
+
height: auto;
|
|
11403
|
+
color: var(--paper-ink);
|
|
11404
|
+
}
|
|
11405
|
+
.tf-qr-bg {
|
|
11406
|
+
fill: var(--paper);
|
|
11407
|
+
}
|
|
11035
11408
|
.tf-2fa-qr > * {
|
|
11036
11409
|
max-width: 100%;
|
|
11037
11410
|
max-height: 100%;
|
|
@@ -11283,7 +11656,8 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
11283
11656
|
border-radius: var(--radius-md);
|
|
11284
11657
|
overflow: hidden;
|
|
11285
11658
|
background: var(--surface-sunken);
|
|
11286
|
-
|
|
11659
|
+
/* sideways drags move the divider; the page still scrolls up and down over it */
|
|
11660
|
+
touch-action: pan-y;
|
|
11287
11661
|
user-select: none;
|
|
11288
11662
|
cursor: ew-resize;
|
|
11289
11663
|
}
|
|
@@ -12183,6 +12557,14 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12183
12557
|
.tf-togglegroup .tf-toggle {
|
|
12184
12558
|
height: var(--control-sm);
|
|
12185
12559
|
}
|
|
12560
|
+
.tf-togglegroup.block {
|
|
12561
|
+
display: flex;
|
|
12562
|
+
flex-wrap: nowrap;
|
|
12563
|
+
width: auto;
|
|
12564
|
+
}
|
|
12565
|
+
.tf-togglegroup.block .tf-toggle {
|
|
12566
|
+
flex: 1 1 0;
|
|
12567
|
+
}
|
|
12186
12568
|
.tf-togglegroup .tf-toggle.icon {
|
|
12187
12569
|
width: 32px;
|
|
12188
12570
|
}
|
|
@@ -12393,6 +12775,11 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12393
12775
|
text-align: left;
|
|
12394
12776
|
cursor: pointer;
|
|
12395
12777
|
}
|
|
12778
|
+
.tf-selectmenu.sm {
|
|
12779
|
+
height: var(--control-sm);
|
|
12780
|
+
padding: 0 12px;
|
|
12781
|
+
font-size: 13px;
|
|
12782
|
+
}
|
|
12396
12783
|
.tf-selectmenu.empty .tf-selectmenu-value {
|
|
12397
12784
|
color: var(--ink-subtle);
|
|
12398
12785
|
}
|
|
@@ -12669,26 +13056,44 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12669
13056
|
outline-offset: -2px;
|
|
12670
13057
|
}
|
|
12671
13058
|
|
|
12672
|
-
/* Sidebar */
|
|
13059
|
+
/* Sidebar: floating (a card), attached (flush with the screen's edge) or on the AppShell frame */
|
|
12673
13060
|
.tf-sidebar {
|
|
12674
13061
|
display: flex;
|
|
12675
13062
|
flex-direction: column;
|
|
12676
|
-
|
|
13063
|
+
flex: none;
|
|
13064
|
+
gap: 12px;
|
|
12677
13065
|
width: 248px;
|
|
12678
13066
|
padding: 12px;
|
|
12679
13067
|
box-sizing: border-box;
|
|
12680
13068
|
border-radius: var(--radius-lg);
|
|
12681
13069
|
background: var(--surface);
|
|
12682
13070
|
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
13071
|
+
color: var(--ink);
|
|
12683
13072
|
transition: width var(--dur-base) var(--ease-out);
|
|
12684
13073
|
}
|
|
12685
13074
|
.tf-sidebar.collapsed {
|
|
12686
13075
|
width: 64px;
|
|
12687
13076
|
}
|
|
13077
|
+
.tf-sidebar.attached {
|
|
13078
|
+
align-self: stretch;
|
|
13079
|
+
min-height: 100%;
|
|
13080
|
+
border-radius: 0;
|
|
13081
|
+
box-shadow: none;
|
|
13082
|
+
background: var(--sidebar);
|
|
13083
|
+
border-right: 1px solid var(--sidebar-border);
|
|
13084
|
+
}
|
|
13085
|
+
.tf-sidebar-head {
|
|
13086
|
+
display: flex;
|
|
13087
|
+
align-items: center;
|
|
13088
|
+
gap: 8px;
|
|
13089
|
+
min-height: var(--density-control);
|
|
13090
|
+
padding: 0 4px;
|
|
13091
|
+
}
|
|
12688
13092
|
.tf-sidebar-body {
|
|
12689
13093
|
display: flex;
|
|
12690
13094
|
flex-direction: column;
|
|
12691
|
-
|
|
13095
|
+
/* groups sit clearly apart; a label sits close to its own items */
|
|
13096
|
+
gap: 20px;
|
|
12692
13097
|
flex: 1;
|
|
12693
13098
|
min-height: 0;
|
|
12694
13099
|
overflow-y: auto;
|
|
@@ -12701,13 +13106,49 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12701
13106
|
padding: 0;
|
|
12702
13107
|
list-style: none;
|
|
12703
13108
|
}
|
|
13109
|
+
.tf-sidebar-grouphead {
|
|
13110
|
+
display: flex;
|
|
13111
|
+
align-items: center;
|
|
13112
|
+
gap: 4px;
|
|
13113
|
+
min-height: 24px;
|
|
13114
|
+
margin-bottom: 8px;
|
|
13115
|
+
padding: 0 4px 0 12px;
|
|
13116
|
+
}
|
|
12704
13117
|
.tf-sidebar-grouplabel {
|
|
12705
|
-
|
|
13118
|
+
display: flex;
|
|
13119
|
+
align-items: center;
|
|
13120
|
+
gap: 4px;
|
|
13121
|
+
flex: 1;
|
|
13122
|
+
min-width: 0;
|
|
13123
|
+
padding: 0;
|
|
13124
|
+
border: 0;
|
|
13125
|
+
background: none;
|
|
12706
13126
|
font: 500 11px/14px var(--font-sans);
|
|
12707
13127
|
letter-spacing: 0.06em;
|
|
12708
13128
|
text-transform: uppercase;
|
|
13129
|
+
text-align: left;
|
|
12709
13130
|
color: var(--ink-muted);
|
|
12710
13131
|
}
|
|
13132
|
+
button.tf-sidebar-grouplabel {
|
|
13133
|
+
cursor: pointer;
|
|
13134
|
+
}
|
|
13135
|
+
button.tf-sidebar-grouplabel:hover {
|
|
13136
|
+
color: var(--ink);
|
|
13137
|
+
}
|
|
13138
|
+
button.tf-sidebar-grouplabel:focus-visible {
|
|
13139
|
+
outline: 2px solid var(--focus);
|
|
13140
|
+
outline-offset: 2px;
|
|
13141
|
+
}
|
|
13142
|
+
.tf-sidebar-grouplabel[aria-expanded="false"] .tf-sidebar-chev {
|
|
13143
|
+
transform: rotate(-90deg);
|
|
13144
|
+
}
|
|
13145
|
+
.tf-sidebar-groupaction {
|
|
13146
|
+
flex: none;
|
|
13147
|
+
margin-left: auto;
|
|
13148
|
+
}
|
|
13149
|
+
.tf-sidebar-li {
|
|
13150
|
+
position: relative;
|
|
13151
|
+
}
|
|
12711
13152
|
.tf-sidebar-item {
|
|
12712
13153
|
display: flex;
|
|
12713
13154
|
align-items: center;
|
|
@@ -12715,15 +13156,86 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12715
13156
|
width: 100%;
|
|
12716
13157
|
height: var(--density-control);
|
|
12717
13158
|
padding: 0 12px;
|
|
13159
|
+
box-sizing: border-box;
|
|
12718
13160
|
border: 0;
|
|
12719
13161
|
border-radius: var(--radius-pill);
|
|
12720
13162
|
background: transparent;
|
|
12721
13163
|
color: var(--ink-muted);
|
|
12722
13164
|
font: 500 13px/18px var(--font-sans);
|
|
12723
13165
|
text-align: left;
|
|
13166
|
+
text-decoration: none;
|
|
12724
13167
|
cursor: pointer;
|
|
12725
13168
|
}
|
|
12726
|
-
|
|
13169
|
+
/* Filter options (Sidebar as="aside"): a checkbox or radio mark, the label and a count */
|
|
13170
|
+
.tf-sidebar-option {
|
|
13171
|
+
position: relative;
|
|
13172
|
+
}
|
|
13173
|
+
.tf-sidebar-option.disabled {
|
|
13174
|
+
opacity: 0.45;
|
|
13175
|
+
cursor: default;
|
|
13176
|
+
}
|
|
13177
|
+
.tf-sidebar-input {
|
|
13178
|
+
position: absolute;
|
|
13179
|
+
width: 1px;
|
|
13180
|
+
height: 1px;
|
|
13181
|
+
margin: 0;
|
|
13182
|
+
opacity: 0;
|
|
13183
|
+
pointer-events: none;
|
|
13184
|
+
}
|
|
13185
|
+
.tf-sidebar-mark {
|
|
13186
|
+
display: grid;
|
|
13187
|
+
place-items: center;
|
|
13188
|
+
flex: none;
|
|
13189
|
+
width: 18px;
|
|
13190
|
+
height: 18px;
|
|
13191
|
+
box-sizing: border-box;
|
|
13192
|
+
border-radius: var(--radius-1);
|
|
13193
|
+
border: 1.5px solid var(--line-strong);
|
|
13194
|
+
background: var(--surface);
|
|
13195
|
+
color: var(--primary-foreground);
|
|
13196
|
+
transition:
|
|
13197
|
+
background-color var(--dur-fast) var(--ease-out),
|
|
13198
|
+
border-color var(--dur-fast) var(--ease-out);
|
|
13199
|
+
}
|
|
13200
|
+
.tf-sidebar-mark.radio {
|
|
13201
|
+
border-radius: var(--radius-full);
|
|
13202
|
+
}
|
|
13203
|
+
.tf-sidebar-mark svg {
|
|
13204
|
+
opacity: 0;
|
|
13205
|
+
}
|
|
13206
|
+
.tf-sidebar-input:checked + .tf-sidebar-mark {
|
|
13207
|
+
background: var(--primary);
|
|
13208
|
+
border-color: var(--primary);
|
|
13209
|
+
}
|
|
13210
|
+
.tf-sidebar-input:checked + .tf-sidebar-mark.radio {
|
|
13211
|
+
box-shadow: inset 0 0 0 3px var(--surface);
|
|
13212
|
+
}
|
|
13213
|
+
.tf-sidebar-input:checked + .tf-sidebar-mark svg {
|
|
13214
|
+
opacity: 1;
|
|
13215
|
+
}
|
|
13216
|
+
.tf-sidebar-input:focus-visible + .tf-sidebar-mark {
|
|
13217
|
+
outline: 2px solid var(--focus);
|
|
13218
|
+
outline-offset: 2px;
|
|
13219
|
+
}
|
|
13220
|
+
.tf-sidebar-option:has(.tf-sidebar-input:checked) {
|
|
13221
|
+
color: var(--ink);
|
|
13222
|
+
}
|
|
13223
|
+
/* free content in a group (sliders, date fields, chips) */
|
|
13224
|
+
.tf-sidebar-content {
|
|
13225
|
+
display: flex;
|
|
13226
|
+
flex-direction: column;
|
|
13227
|
+
gap: 12px;
|
|
13228
|
+
padding: 4px 12px 0;
|
|
13229
|
+
min-width: 0;
|
|
13230
|
+
}
|
|
13231
|
+
.tf-sidebar-groupbody {
|
|
13232
|
+
display: flex;
|
|
13233
|
+
flex-direction: column;
|
|
13234
|
+
gap: 2px;
|
|
13235
|
+
min-width: 0;
|
|
13236
|
+
}
|
|
13237
|
+
.tf-sidebar-item:hover,
|
|
13238
|
+
.tf-sidebar-item.flying {
|
|
12727
13239
|
background: var(--sidebar-accent);
|
|
12728
13240
|
color: var(--ink);
|
|
12729
13241
|
}
|
|
@@ -12738,10 +13250,21 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12738
13250
|
outline: 2px solid var(--focus);
|
|
12739
13251
|
outline-offset: 2px;
|
|
12740
13252
|
}
|
|
13253
|
+
.tf-sidebar-item:disabled {
|
|
13254
|
+
opacity: 0.45;
|
|
13255
|
+
cursor: not-allowed;
|
|
13256
|
+
}
|
|
13257
|
+
.tf-sidebar-item:disabled:hover {
|
|
13258
|
+
background: transparent;
|
|
13259
|
+
color: var(--ink-muted);
|
|
13260
|
+
}
|
|
12741
13261
|
.tf-sidebar-item.nested {
|
|
12742
13262
|
height: var(--control-sm);
|
|
12743
13263
|
padding-left: 40px;
|
|
12744
13264
|
}
|
|
13265
|
+
.tf-sidebar-sub {
|
|
13266
|
+
margin-top: 2px !important;
|
|
13267
|
+
}
|
|
12745
13268
|
.tf-sidebar-label {
|
|
12746
13269
|
flex: 1;
|
|
12747
13270
|
min-width: 0;
|
|
@@ -12750,22 +13273,107 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12750
13273
|
white-space: nowrap;
|
|
12751
13274
|
}
|
|
12752
13275
|
.tf-sidebar-chev {
|
|
13276
|
+
flex: none;
|
|
12753
13277
|
transition: transform var(--dur-base) var(--ease-out);
|
|
12754
13278
|
}
|
|
12755
13279
|
.tf-sidebar-item[aria-expanded="true"] .tf-sidebar-chev {
|
|
12756
13280
|
transform: rotate(180deg);
|
|
12757
13281
|
}
|
|
13282
|
+
.tf-sidebar-ext {
|
|
13283
|
+
flex: none;
|
|
13284
|
+
opacity: 0.7;
|
|
13285
|
+
}
|
|
13286
|
+
.tf-sidebar-count {
|
|
13287
|
+
flex: none;
|
|
13288
|
+
min-width: 20px;
|
|
13289
|
+
height: 20px;
|
|
13290
|
+
padding: 0 6px;
|
|
13291
|
+
box-sizing: border-box;
|
|
13292
|
+
border-radius: var(--radius-pill);
|
|
13293
|
+
background: var(--count);
|
|
13294
|
+
color: var(--on-count);
|
|
13295
|
+
font: 600 11px/20px var(--font-sans);
|
|
13296
|
+
text-align: center;
|
|
13297
|
+
}
|
|
13298
|
+
.tf-sidebar-badge {
|
|
13299
|
+
flex: none;
|
|
13300
|
+
height: 20px;
|
|
13301
|
+
padding: 0 8px;
|
|
13302
|
+
box-sizing: border-box;
|
|
13303
|
+
border-radius: var(--radius-pill);
|
|
13304
|
+
background: var(--count);
|
|
13305
|
+
color: var(--on-count);
|
|
13306
|
+
font: 600 10px/20px var(--font-sans);
|
|
13307
|
+
letter-spacing: 0.04em;
|
|
13308
|
+
text-transform: uppercase;
|
|
13309
|
+
}
|
|
13310
|
+
.tf-sidebar-dot {
|
|
13311
|
+
flex: none;
|
|
13312
|
+
width: 8px;
|
|
13313
|
+
height: 8px;
|
|
13314
|
+
border-radius: var(--radius-full);
|
|
13315
|
+
background: var(--count);
|
|
13316
|
+
}
|
|
13317
|
+
.tf-sidebar-sr {
|
|
13318
|
+
position: absolute;
|
|
13319
|
+
width: 1px;
|
|
13320
|
+
height: 1px;
|
|
13321
|
+
overflow: hidden;
|
|
13322
|
+
clip-path: inset(50%);
|
|
13323
|
+
white-space: nowrap;
|
|
13324
|
+
}
|
|
13325
|
+
/* the "…" menu of an item shows on hover and focus */
|
|
13326
|
+
.tf-sidebar-li.with-actions > .tf-sidebar-item {
|
|
13327
|
+
padding-right: 40px;
|
|
13328
|
+
}
|
|
13329
|
+
.tf-sidebar-more {
|
|
13330
|
+
position: absolute;
|
|
13331
|
+
top: 4px;
|
|
13332
|
+
right: 4px;
|
|
13333
|
+
opacity: 0;
|
|
13334
|
+
transition: opacity var(--dur-fast) var(--ease-out);
|
|
13335
|
+
}
|
|
13336
|
+
.tf-sidebar-li:hover > .tf-sidebar-more,
|
|
13337
|
+
.tf-sidebar-more:focus-visible,
|
|
13338
|
+
.tf-sidebar-more[aria-expanded="true"] {
|
|
13339
|
+
opacity: 1;
|
|
13340
|
+
}
|
|
12758
13341
|
.tf-sidebar-foot {
|
|
12759
13342
|
display: flex;
|
|
12760
13343
|
align-items: center;
|
|
12761
|
-
justify-content: space-between;
|
|
12762
13344
|
gap: 8px;
|
|
12763
13345
|
padding-top: 12px;
|
|
12764
13346
|
border-top: 1px solid var(--sidebar-border);
|
|
12765
13347
|
}
|
|
13348
|
+
.tf-sidebar-foot > :not(.tf-sidebar-toggle) {
|
|
13349
|
+
flex: 1;
|
|
13350
|
+
min-width: 0;
|
|
13351
|
+
}
|
|
13352
|
+
.tf-sidebar-toggle {
|
|
13353
|
+
flex: none;
|
|
13354
|
+
margin-left: auto;
|
|
13355
|
+
}
|
|
13356
|
+
.tf-sidebar-head .tf-pop-anchor,
|
|
13357
|
+
.tf-sidebar-foot .tf-pop-anchor {
|
|
13358
|
+
display: block;
|
|
13359
|
+
min-width: 0;
|
|
13360
|
+
}
|
|
13361
|
+
.tf-sidebar-head .tf-wssw {
|
|
13362
|
+
width: 100%;
|
|
13363
|
+
}
|
|
13364
|
+
.tf-sidebar-head .tf-wssw .tf-option-text {
|
|
13365
|
+
flex: 1;
|
|
13366
|
+
min-width: 0;
|
|
13367
|
+
}
|
|
13368
|
+
|
|
13369
|
+
/* collapsed: icons only; labels stay the accessible names, tooltips and flyouts show them */
|
|
13370
|
+
.tf-sidebar.collapsed .tf-sidebar-body {
|
|
13371
|
+
gap: 12px;
|
|
13372
|
+
}
|
|
12766
13373
|
.tf-sidebar.collapsed .tf-sidebar-label,
|
|
12767
13374
|
.tf-sidebar.collapsed .tf-sidebar-chev,
|
|
12768
|
-
.tf-sidebar.collapsed .tf-sidebar-
|
|
13375
|
+
.tf-sidebar.collapsed .tf-sidebar-ext,
|
|
13376
|
+
.tf-sidebar.collapsed .tf-sidebar-grouphead {
|
|
12769
13377
|
position: absolute;
|
|
12770
13378
|
width: 1px;
|
|
12771
13379
|
height: 1px;
|
|
@@ -12773,12 +13381,19 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12773
13381
|
clip-path: inset(50%);
|
|
12774
13382
|
white-space: nowrap;
|
|
12775
13383
|
}
|
|
13384
|
+
.tf-sidebar.collapsed .tf-sidebar-group + .tf-sidebar-group {
|
|
13385
|
+
padding-top: 12px;
|
|
13386
|
+
border-top: 1px solid var(--sidebar-border);
|
|
13387
|
+
}
|
|
12776
13388
|
.tf-sidebar.collapsed .tf-sidebar-item {
|
|
12777
13389
|
position: relative;
|
|
12778
13390
|
justify-content: center;
|
|
12779
13391
|
padding: 0;
|
|
12780
13392
|
}
|
|
12781
|
-
.tf-sidebar.collapsed .tf-
|
|
13393
|
+
.tf-sidebar.collapsed .tf-sidebar-item.has-current {
|
|
13394
|
+
background: var(--sidebar-accent);
|
|
13395
|
+
}
|
|
13396
|
+
.tf-sidebar.collapsed .tf-sidebar-count {
|
|
12782
13397
|
position: absolute;
|
|
12783
13398
|
top: -2px;
|
|
12784
13399
|
right: -2px;
|
|
@@ -12788,57 +13403,317 @@ button.tf-runs-main[aria-expanded]:hover {
|
|
|
12788
13403
|
font-size: 10px;
|
|
12789
13404
|
line-height: 16px;
|
|
12790
13405
|
}
|
|
13406
|
+
.tf-sidebar.collapsed .tf-sidebar-dot,
|
|
13407
|
+
.tf-sidebar.collapsed .tf-sidebar-badge {
|
|
13408
|
+
position: absolute;
|
|
13409
|
+
top: 6px;
|
|
13410
|
+
right: 8px;
|
|
13411
|
+
width: 8px;
|
|
13412
|
+
height: 8px;
|
|
13413
|
+
padding: 0;
|
|
13414
|
+
font-size: 0;
|
|
13415
|
+
}
|
|
13416
|
+
.tf-sidebar.collapsed .tf-sidebar-head {
|
|
13417
|
+
justify-content: center;
|
|
13418
|
+
padding: 0;
|
|
13419
|
+
}
|
|
12791
13420
|
.tf-sidebar.collapsed .tf-sidebar-foot {
|
|
12792
13421
|
flex-direction: column;
|
|
12793
13422
|
}
|
|
12794
|
-
|
|
12795
|
-
|
|
12796
|
-
|
|
12797
|
-
|
|
12798
|
-
|
|
12799
|
-
grid-template-columns: minmax(0, 1fr);
|
|
12800
|
-
}
|
|
12801
|
-
.tf-navmenu-feature {
|
|
12802
|
-
min-height: 0;
|
|
12803
|
-
}
|
|
12804
|
-
.tf-navmenu-list {
|
|
12805
|
-
flex-wrap: wrap;
|
|
12806
|
-
}
|
|
12807
|
-
.tf-menubar {
|
|
12808
|
-
flex-wrap: wrap;
|
|
12809
|
-
border-radius: var(--radius-lg);
|
|
12810
|
-
}
|
|
13423
|
+
.tf-sidebar.collapsed .tf-sidebar-foot > :not(.tf-sidebar-toggle) {
|
|
13424
|
+
flex: none;
|
|
13425
|
+
}
|
|
13426
|
+
.tf-sidebar.collapsed .tf-sidebar-toggle {
|
|
13427
|
+
margin-left: 0;
|
|
12811
13428
|
}
|
|
12812
13429
|
|
|
12813
|
-
/*
|
|
12814
|
-
.tf-
|
|
12815
|
-
|
|
12816
|
-
|
|
12817
|
-
animation-name: tf-sheet-left;
|
|
13430
|
+
/* tooltips, flyouts and item menus float in the portal, so the scrolling body does not clip them */
|
|
13431
|
+
.tf-sidebar-layer {
|
|
13432
|
+
position: fixed;
|
|
13433
|
+
z-index: var(--z-palette);
|
|
12818
13434
|
}
|
|
12819
|
-
.tf-
|
|
12820
|
-
|
|
12821
|
-
|
|
12822
|
-
|
|
12823
|
-
|
|
12824
|
-
|
|
13435
|
+
.tf-sidebar-tip {
|
|
13436
|
+
display: inline-flex;
|
|
13437
|
+
align-items: center;
|
|
13438
|
+
gap: 8px;
|
|
13439
|
+
padding: 4px 8px;
|
|
13440
|
+
border-radius: var(--radius-sm);
|
|
13441
|
+
background: var(--frame);
|
|
13442
|
+
color: var(--on-frame);
|
|
13443
|
+
font: 500 12px/16px var(--font-sans);
|
|
13444
|
+
white-space: nowrap;
|
|
13445
|
+
pointer-events: none;
|
|
13446
|
+
animation: tf-fade var(--dur-fast) var(--ease-out) both;
|
|
12825
13447
|
}
|
|
12826
|
-
.tf-
|
|
12827
|
-
|
|
12828
|
-
animation-name: tf-sheet-top;
|
|
13448
|
+
.tf-sidebar-tipcount {
|
|
13449
|
+
color: var(--on-frame-muted);
|
|
12829
13450
|
}
|
|
12830
|
-
.tf-
|
|
12831
|
-
|
|
12832
|
-
|
|
12833
|
-
|
|
13451
|
+
.tf-sidebar-flyout {
|
|
13452
|
+
min-width: 200px;
|
|
13453
|
+
padding: 6px;
|
|
13454
|
+
border-radius: var(--radius-md);
|
|
13455
|
+
background: var(--surface);
|
|
13456
|
+
color: var(--ink);
|
|
13457
|
+
box-shadow: var(--shadow-float), 0 0 0 var(--line-width) var(--line);
|
|
13458
|
+
animation: tf-fade var(--dur-fast) var(--ease-out) both;
|
|
12834
13459
|
}
|
|
12835
|
-
|
|
12836
|
-
|
|
12837
|
-
|
|
12838
|
-
|
|
12839
|
-
|
|
13460
|
+
.tf-sidebar-flyout ul {
|
|
13461
|
+
display: flex;
|
|
13462
|
+
flex-direction: column;
|
|
13463
|
+
gap: 2px;
|
|
13464
|
+
margin: 0;
|
|
13465
|
+
padding: 0;
|
|
13466
|
+
list-style: none;
|
|
12840
13467
|
}
|
|
12841
|
-
|
|
13468
|
+
.tf-sidebar-flytitle {
|
|
13469
|
+
padding: 6px 12px 8px;
|
|
13470
|
+
font: 500 11px/14px var(--font-sans);
|
|
13471
|
+
letter-spacing: 0.06em;
|
|
13472
|
+
text-transform: uppercase;
|
|
13473
|
+
color: var(--ink-muted);
|
|
13474
|
+
}
|
|
13475
|
+
.tf-sidebar-flyout .tf-sidebar-item.nested {
|
|
13476
|
+
padding-left: 12px;
|
|
13477
|
+
}
|
|
13478
|
+
|
|
13479
|
+
/* on the AppShell frame */
|
|
13480
|
+
.tf-sidebar.shell {
|
|
13481
|
+
align-self: stretch;
|
|
13482
|
+
padding: 16px 8px 8px;
|
|
13483
|
+
border-radius: 0;
|
|
13484
|
+
background: transparent;
|
|
13485
|
+
box-shadow: none;
|
|
13486
|
+
color: var(--on-frame);
|
|
13487
|
+
}
|
|
13488
|
+
.tf-sidebar.shell .tf-sidebar-item,
|
|
13489
|
+
.tf-sidebar.shell .tf-sidebar-grouplabel {
|
|
13490
|
+
color: var(--on-frame-muted);
|
|
13491
|
+
}
|
|
13492
|
+
.tf-sidebar.shell .tf-sidebar-item:hover,
|
|
13493
|
+
.tf-sidebar.shell .tf-sidebar-item.flying,
|
|
13494
|
+
.tf-sidebar.shell.collapsed .tf-sidebar-item.has-current {
|
|
13495
|
+
background: var(--frame-hover);
|
|
13496
|
+
color: var(--on-frame);
|
|
13497
|
+
}
|
|
13498
|
+
.tf-sidebar.shell .tf-sidebar-item.has-current,
|
|
13499
|
+
.tf-sidebar.shell button.tf-sidebar-grouplabel:hover {
|
|
13500
|
+
color: var(--on-frame);
|
|
13501
|
+
}
|
|
13502
|
+
.tf-sidebar.shell .tf-sidebar-item[aria-current="page"] {
|
|
13503
|
+
background: var(--frame-active);
|
|
13504
|
+
color: var(--on-frame);
|
|
13505
|
+
}
|
|
13506
|
+
.tf-sidebar.shell .tf-sidebar-item:disabled:hover {
|
|
13507
|
+
background: transparent;
|
|
13508
|
+
color: var(--on-frame-muted);
|
|
13509
|
+
}
|
|
13510
|
+
.tf-sidebar.shell .tf-sidebar-foot,
|
|
13511
|
+
.tf-sidebar.shell.collapsed .tf-sidebar-group + .tf-sidebar-group {
|
|
13512
|
+
border-color: var(--frame-hover);
|
|
13513
|
+
}
|
|
13514
|
+
.tf-sidebar.shell .tf-iconbtn-ghost {
|
|
13515
|
+
color: var(--on-frame-muted);
|
|
13516
|
+
}
|
|
13517
|
+
.tf-sidebar.shell .tf-iconbtn-ghost:hover {
|
|
13518
|
+
background: var(--frame-hover);
|
|
13519
|
+
color: var(--on-frame);
|
|
13520
|
+
}
|
|
13521
|
+
.tf-sidebar.shell .tf-sidebar-head {
|
|
13522
|
+
min-height: 44px;
|
|
13523
|
+
}
|
|
13524
|
+
|
|
13525
|
+
/* UserMenu: the signed-in person, opening their account menu */
|
|
13526
|
+
.tf-usermenu {
|
|
13527
|
+
display: flex;
|
|
13528
|
+
align-items: center;
|
|
13529
|
+
gap: 10px;
|
|
13530
|
+
width: 100%;
|
|
13531
|
+
min-height: 44px;
|
|
13532
|
+
padding: 4px 8px 4px 4px;
|
|
13533
|
+
box-sizing: border-box;
|
|
13534
|
+
border: 0;
|
|
13535
|
+
border-radius: var(--radius-pill);
|
|
13536
|
+
background: transparent;
|
|
13537
|
+
color: var(--ink);
|
|
13538
|
+
font: inherit;
|
|
13539
|
+
text-align: left;
|
|
13540
|
+
cursor: pointer;
|
|
13541
|
+
}
|
|
13542
|
+
.tf-usermenu.compact {
|
|
13543
|
+
width: auto;
|
|
13544
|
+
padding: 4px;
|
|
13545
|
+
}
|
|
13546
|
+
.tf-usermenu:hover,
|
|
13547
|
+
.tf-usermenu[aria-expanded="true"] {
|
|
13548
|
+
background: var(--sidebar-accent);
|
|
13549
|
+
}
|
|
13550
|
+
.tf-usermenu:focus-visible {
|
|
13551
|
+
outline: 2px solid var(--focus);
|
|
13552
|
+
outline-offset: 2px;
|
|
13553
|
+
}
|
|
13554
|
+
.tf-usermenu-avatar {
|
|
13555
|
+
display: inline-flex;
|
|
13556
|
+
flex: none;
|
|
13557
|
+
}
|
|
13558
|
+
.tf-usermenu-text {
|
|
13559
|
+
display: flex;
|
|
13560
|
+
flex-direction: column;
|
|
13561
|
+
flex: 1;
|
|
13562
|
+
min-width: 0;
|
|
13563
|
+
}
|
|
13564
|
+
.tf-usermenu-name {
|
|
13565
|
+
font: 500 13px/18px var(--font-sans);
|
|
13566
|
+
overflow: hidden;
|
|
13567
|
+
text-overflow: ellipsis;
|
|
13568
|
+
white-space: nowrap;
|
|
13569
|
+
}
|
|
13570
|
+
.tf-usermenu-mail {
|
|
13571
|
+
font: 500 11px/14px var(--font-sans);
|
|
13572
|
+
color: var(--ink-muted);
|
|
13573
|
+
overflow: hidden;
|
|
13574
|
+
text-overflow: ellipsis;
|
|
13575
|
+
white-space: nowrap;
|
|
13576
|
+
}
|
|
13577
|
+
.tf-sidebar.shell .tf-usermenu {
|
|
13578
|
+
color: var(--on-frame);
|
|
13579
|
+
}
|
|
13580
|
+
.tf-sidebar.shell .tf-usermenu:hover,
|
|
13581
|
+
.tf-sidebar.shell .tf-usermenu[aria-expanded="true"] {
|
|
13582
|
+
background: var(--frame-hover);
|
|
13583
|
+
}
|
|
13584
|
+
.tf-sidebar.shell .tf-usermenu-mail {
|
|
13585
|
+
color: var(--on-frame-muted);
|
|
13586
|
+
}
|
|
13587
|
+
.tf-wssw.compact {
|
|
13588
|
+
padding: 4px;
|
|
13589
|
+
}
|
|
13590
|
+
|
|
13591
|
+
/* the bar that opens the sidebar as a drawer on phones */
|
|
13592
|
+
.tf-sidebar-bar,
|
|
13593
|
+
.tf-sidebar-scrim {
|
|
13594
|
+
display: none;
|
|
13595
|
+
}
|
|
13596
|
+
@media (max-width: 760px) {
|
|
13597
|
+
.tf-sidebar-bar {
|
|
13598
|
+
display: flex;
|
|
13599
|
+
align-items: center;
|
|
13600
|
+
gap: 8px;
|
|
13601
|
+
min-height: 52px;
|
|
13602
|
+
padding: 6px 12px 6px 6px;
|
|
13603
|
+
box-sizing: border-box;
|
|
13604
|
+
border-radius: var(--radius-lg);
|
|
13605
|
+
background: var(--surface);
|
|
13606
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
13607
|
+
color: var(--ink);
|
|
13608
|
+
}
|
|
13609
|
+
.tf-sidebar-bar.attached {
|
|
13610
|
+
border-radius: 0;
|
|
13611
|
+
box-shadow: none;
|
|
13612
|
+
background: var(--sidebar);
|
|
13613
|
+
border-bottom: 1px solid var(--sidebar-border);
|
|
13614
|
+
}
|
|
13615
|
+
.tf-sidebar-bar.shell {
|
|
13616
|
+
min-height: 56px;
|
|
13617
|
+
padding: 8px 8px 8px 0;
|
|
13618
|
+
border-radius: 0;
|
|
13619
|
+
box-shadow: none;
|
|
13620
|
+
background: transparent;
|
|
13621
|
+
color: var(--on-frame);
|
|
13622
|
+
}
|
|
13623
|
+
.tf-sidebar-bar.shell .tf-iconbtn-ghost {
|
|
13624
|
+
color: var(--on-frame);
|
|
13625
|
+
}
|
|
13626
|
+
.tf-sidebar-bar > :not(.tf-iconbtn) {
|
|
13627
|
+
min-width: 0;
|
|
13628
|
+
}
|
|
13629
|
+
.tf-sidebar,
|
|
13630
|
+
.tf-sidebar.attached,
|
|
13631
|
+
.tf-sidebar.shell {
|
|
13632
|
+
position: fixed;
|
|
13633
|
+
top: 0;
|
|
13634
|
+
bottom: 0;
|
|
13635
|
+
left: 0;
|
|
13636
|
+
z-index: var(--z-overlay);
|
|
13637
|
+
width: min(300px, 86vw);
|
|
13638
|
+
min-height: 0;
|
|
13639
|
+
padding: 12px;
|
|
13640
|
+
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
13641
|
+
box-shadow: var(--shadow-float), 0 0 0 var(--line-width) var(--line);
|
|
13642
|
+
transform: translateX(-105%);
|
|
13643
|
+
visibility: hidden;
|
|
13644
|
+
transition:
|
|
13645
|
+
transform var(--dur-base) var(--ease-out),
|
|
13646
|
+
visibility 0s linear var(--dur-base);
|
|
13647
|
+
}
|
|
13648
|
+
.tf-sidebar.shell {
|
|
13649
|
+
background: var(--frame);
|
|
13650
|
+
}
|
|
13651
|
+
.tf-sidebar.attached {
|
|
13652
|
+
background: var(--sidebar);
|
|
13653
|
+
}
|
|
13654
|
+
.tf-sidebar.open {
|
|
13655
|
+
transform: none;
|
|
13656
|
+
visibility: visible;
|
|
13657
|
+
transition: transform var(--dur-base) var(--ease-out);
|
|
13658
|
+
}
|
|
13659
|
+
.tf-sidebar-toggle {
|
|
13660
|
+
display: none;
|
|
13661
|
+
}
|
|
13662
|
+
.tf-sidebar-scrim {
|
|
13663
|
+
display: block;
|
|
13664
|
+
position: fixed;
|
|
13665
|
+
inset: 0;
|
|
13666
|
+
z-index: var(--z-overlay);
|
|
13667
|
+
background: var(--scrim-strong);
|
|
13668
|
+
animation: tf-fade var(--dur-base) var(--ease-out) both;
|
|
13669
|
+
}
|
|
13670
|
+
}
|
|
13671
|
+
|
|
13672
|
+
@media (max-width: 760px) {
|
|
13673
|
+
.tf-navmenu-panel.with-feature {
|
|
13674
|
+
grid-template-columns: minmax(0, 1fr);
|
|
13675
|
+
}
|
|
13676
|
+
.tf-navmenu-feature {
|
|
13677
|
+
min-height: 0;
|
|
13678
|
+
}
|
|
13679
|
+
.tf-navmenu-list {
|
|
13680
|
+
flex-wrap: wrap;
|
|
13681
|
+
}
|
|
13682
|
+
.tf-menubar {
|
|
13683
|
+
flex-wrap: wrap;
|
|
13684
|
+
border-radius: var(--radius-lg);
|
|
13685
|
+
}
|
|
13686
|
+
}
|
|
13687
|
+
|
|
13688
|
+
/* Drawer (sheet) sides */
|
|
13689
|
+
.tf-drawer.side-left {
|
|
13690
|
+
right: auto;
|
|
13691
|
+
left: 0;
|
|
13692
|
+
animation-name: tf-sheet-left;
|
|
13693
|
+
}
|
|
13694
|
+
.tf-drawer.side-top,
|
|
13695
|
+
.tf-drawer.side-bottom {
|
|
13696
|
+
left: 0;
|
|
13697
|
+
right: 0;
|
|
13698
|
+
width: 100%;
|
|
13699
|
+
max-height: min(80%, 640px);
|
|
13700
|
+
}
|
|
13701
|
+
.tf-drawer.side-top {
|
|
13702
|
+
bottom: auto;
|
|
13703
|
+
animation-name: tf-sheet-top;
|
|
13704
|
+
}
|
|
13705
|
+
.tf-drawer.side-bottom {
|
|
13706
|
+
top: auto;
|
|
13707
|
+
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
|
|
13708
|
+
animation-name: tf-sheet-bottom;
|
|
13709
|
+
}
|
|
13710
|
+
@keyframes tf-sheet-left {
|
|
13711
|
+
from {
|
|
13712
|
+
opacity: 0;
|
|
13713
|
+
transform: translateX(calc(-24px * var(--motion-travel)));
|
|
13714
|
+
}
|
|
13715
|
+
}
|
|
13716
|
+
@keyframes tf-sheet-top {
|
|
12842
13717
|
from {
|
|
12843
13718
|
opacity: 0;
|
|
12844
13719
|
transform: translateY(calc(-24px * var(--motion-travel)));
|
|
@@ -12977,7 +13852,7 @@ a.tf-iconbtn {
|
|
|
12977
13852
|
/* Tablet: asides move below the main column, nav labels and the page nav shrink to icons */
|
|
12978
13853
|
@container tf-shell (max-width: 1180px) {
|
|
12979
13854
|
.tf-sheet:not(.tf-sheet-2):not(.tf-sheet-nav) {
|
|
12980
|
-
grid-template-columns:
|
|
13855
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
12981
13856
|
}
|
|
12982
13857
|
.tf-sheet-nav.tf-sheet-aside {
|
|
12983
13858
|
grid-template-columns: 208px minmax(0, 1fr);
|
|
@@ -12985,6 +13860,13 @@ a.tf-iconbtn {
|
|
|
12985
13860
|
.tf-sheet > .tf-main ~ :not(.tf-dock-float) {
|
|
12986
13861
|
grid-column: 2;
|
|
12987
13862
|
}
|
|
13863
|
+
/* with the sidebar there is no rail column: asides go below the main column */
|
|
13864
|
+
.tf-sheet.tf-sheet-norail:not(.tf-sheet-2) {
|
|
13865
|
+
grid-template-columns: minmax(0, 1fr);
|
|
13866
|
+
}
|
|
13867
|
+
.tf-sheet-norail > .tf-main ~ :not(.tf-dock-float) {
|
|
13868
|
+
grid-column: 1;
|
|
13869
|
+
}
|
|
12988
13870
|
/* the dock floats over the end of the sheet, not of the main column (asides follow it) */
|
|
12989
13871
|
.tf-main-dock {
|
|
12990
13872
|
padding-bottom: 0;
|
|
@@ -13015,7 +13897,7 @@ a.tf-iconbtn {
|
|
|
13015
13897
|
@container tf-shell (max-width: 1040px) {
|
|
13016
13898
|
.tf-sheet-nav,
|
|
13017
13899
|
.tf-sheet-nav.tf-sheet-aside {
|
|
13018
|
-
grid-template-columns:
|
|
13900
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
13019
13901
|
}
|
|
13020
13902
|
.tf-subnav-eyebrow {
|
|
13021
13903
|
display: none;
|
|
@@ -13112,6 +13994,21 @@ a.tf-iconbtn {
|
|
|
13112
13994
|
.tf-rail-group {
|
|
13113
13995
|
flex-direction: row;
|
|
13114
13996
|
}
|
|
13997
|
+
/* on phones the rail is a row of icons, expanded or not */
|
|
13998
|
+
.tf-rail.expanded {
|
|
13999
|
+
width: auto;
|
|
14000
|
+
}
|
|
14001
|
+
.tf-rail.expanded .tf-rail-btn {
|
|
14002
|
+
display: grid;
|
|
14003
|
+
width: 40px;
|
|
14004
|
+
padding: 0;
|
|
14005
|
+
}
|
|
14006
|
+
.tf-rail.expanded .tf-rail-label {
|
|
14007
|
+
display: none;
|
|
14008
|
+
}
|
|
14009
|
+
.tf-rail.expanded .tf-dotcount {
|
|
14010
|
+
position: absolute;
|
|
14011
|
+
}
|
|
13115
14012
|
.tf-main {
|
|
13116
14013
|
gap: var(--space-4);
|
|
13117
14014
|
}
|
|
@@ -13203,6 +14100,56 @@ a.tf-iconbtn {
|
|
|
13203
14100
|
max-width: 100%;
|
|
13204
14101
|
overflow-x: auto;
|
|
13205
14102
|
}
|
|
14103
|
+
/* Table stack: narrow boxes show every row as a card, each cell with its column label */
|
|
14104
|
+
.tf-table-stackbox {
|
|
14105
|
+
container: tf-table / inline-size;
|
|
14106
|
+
}
|
|
14107
|
+
@container tf-table (max-width: 600px) {
|
|
14108
|
+
.tf-table.stack thead {
|
|
14109
|
+
position: absolute;
|
|
14110
|
+
width: 1px;
|
|
14111
|
+
height: 1px;
|
|
14112
|
+
overflow: hidden;
|
|
14113
|
+
clip-path: inset(50%);
|
|
14114
|
+
}
|
|
14115
|
+
.tf-table.stack,
|
|
14116
|
+
.tf-table.stack tbody,
|
|
14117
|
+
.tf-table.stack tr {
|
|
14118
|
+
display: block;
|
|
14119
|
+
}
|
|
14120
|
+
.tf-table.stack tr {
|
|
14121
|
+
padding: 8px 0;
|
|
14122
|
+
border-bottom: 1px solid var(--line);
|
|
14123
|
+
}
|
|
14124
|
+
.tf-table.stack tr:last-child {
|
|
14125
|
+
border-bottom: 0;
|
|
14126
|
+
}
|
|
14127
|
+
.tf-table.stack td {
|
|
14128
|
+
display: flex;
|
|
14129
|
+
align-items: center;
|
|
14130
|
+
justify-content: space-between;
|
|
14131
|
+
gap: 16px;
|
|
14132
|
+
height: auto;
|
|
14133
|
+
min-height: var(--control-sm);
|
|
14134
|
+
padding: 4px 0;
|
|
14135
|
+
border-bottom: 0;
|
|
14136
|
+
text-align: right;
|
|
14137
|
+
white-space: normal;
|
|
14138
|
+
}
|
|
14139
|
+
.tf-table.stack td::before {
|
|
14140
|
+
content: attr(data-label);
|
|
14141
|
+
flex: none;
|
|
14142
|
+
max-width: 50%;
|
|
14143
|
+
text-align: left;
|
|
14144
|
+
font: 500 11px/14px var(--font-sans);
|
|
14145
|
+
letter-spacing: 0.06em;
|
|
14146
|
+
text-transform: uppercase;
|
|
14147
|
+
color: var(--ink-muted);
|
|
14148
|
+
}
|
|
14149
|
+
.tf-table.stack tbody tr:hover td {
|
|
14150
|
+
background: transparent;
|
|
14151
|
+
}
|
|
14152
|
+
}
|
|
13206
14153
|
|
|
13207
14154
|
/* ── Phone: components ── */
|
|
13208
14155
|
@media (max-width: 760px) {
|
|
@@ -13237,15 +14184,15 @@ a.tf-iconbtn {
|
|
|
13237
14184
|
height: 52px;
|
|
13238
14185
|
}
|
|
13239
14186
|
|
|
13240
|
-
/* segmented controls and tabs scroll sideways when the labels do not fit */
|
|
13241
|
-
.tf-seg,
|
|
13242
|
-
.tf-tabs {
|
|
14187
|
+
/* segmented controls and tabs scroll sideways when the labels do not fit (block ones shrink) */
|
|
14188
|
+
.tf-seg:not(.block),
|
|
14189
|
+
.tf-tabs:not(.tf-tabs-block) {
|
|
13243
14190
|
max-width: 100%;
|
|
13244
14191
|
overflow-x: auto;
|
|
13245
14192
|
scrollbar-width: none;
|
|
13246
14193
|
}
|
|
13247
|
-
.tf-seg-item,
|
|
13248
|
-
.tf-tab {
|
|
14194
|
+
.tf-seg:not(.block) .tf-seg-item,
|
|
14195
|
+
.tf-tabs:not(.tf-tabs-block) .tf-tab {
|
|
13249
14196
|
flex: none;
|
|
13250
14197
|
}
|
|
13251
14198
|
.tf-seg,
|
|
@@ -13394,6 +14341,71 @@ a.tf-iconbtn {
|
|
|
13394
14341
|
}
|
|
13395
14342
|
}
|
|
13396
14343
|
|
|
14344
|
+
/* AppShell with a sidebar on phones: the sidebar's bar on top of the frame, the sheet below */
|
|
14345
|
+
@media (max-width: 760px) {
|
|
14346
|
+
.tf-shell.tf-shell-sidebar {
|
|
14347
|
+
grid-template-columns: minmax(0, 1fr);
|
|
14348
|
+
padding: 0 8px 8px;
|
|
14349
|
+
}
|
|
14350
|
+
}
|
|
14351
|
+
|
|
14352
|
+
/* Fluid at every width: segmented controls, tabs and toggle groups never push past their
|
|
14353
|
+
container. When space runs short the items shrink and their labels end in an ellipsis. */
|
|
14354
|
+
.tf-tabs {
|
|
14355
|
+
max-width: 100%;
|
|
14356
|
+
box-sizing: border-box;
|
|
14357
|
+
}
|
|
14358
|
+
.tf-seg-item,
|
|
14359
|
+
.tf-tab,
|
|
14360
|
+
.tf-togglegroup .tf-toggle {
|
|
14361
|
+
min-width: 0;
|
|
14362
|
+
}
|
|
14363
|
+
.tf-seg-label,
|
|
14364
|
+
.tf-tab,
|
|
14365
|
+
.tf-toggle-label {
|
|
14366
|
+
overflow: hidden;
|
|
14367
|
+
text-overflow: ellipsis;
|
|
14368
|
+
white-space: nowrap;
|
|
14369
|
+
}
|
|
14370
|
+
|
|
14371
|
+
/* key hints mean nothing on touch screens */
|
|
14372
|
+
@media (pointer: coarse) {
|
|
14373
|
+
.tf-search .tf-kbd {
|
|
14374
|
+
display: none;
|
|
14375
|
+
}
|
|
14376
|
+
}
|
|
14377
|
+
|
|
14378
|
+
/* Fluid actions: an action row measures itself, so its buttons answer to the box it sits in (a
|
|
14379
|
+
thin card, a side panel, a phone) instead of the window. When the row is narrow it wraps and
|
|
14380
|
+
its buttons share the full width; when it is very narrow each button takes a line. The rows are
|
|
14381
|
+
the kit's own footers and action bars, and plain `.tf-row`s of buttons placed directly in a
|
|
14382
|
+
column box (panel, card, dialog, form …), where they always span the box. */
|
|
14383
|
+
:is(
|
|
14384
|
+
.tf-modal-foot,
|
|
14385
|
+
.tf-card-foot,
|
|
14386
|
+
.tf-approval-foot,
|
|
14387
|
+
.tf-review-actions,
|
|
14388
|
+
.tf-cookie-actions,
|
|
14389
|
+
.tf-push-actions,
|
|
14390
|
+
.tf-insight-actions,
|
|
14391
|
+
.tf-journal-foot,
|
|
14392
|
+
:is(.tf-panel, .tf-card, .tf-modal, .tf-drawer, .tf-popover, .tf-form, .tf-col)
|
|
14393
|
+
> .tf-row:not(:has(> :not(.tf-btn, .tf-iconbtn)))
|
|
14394
|
+
) {
|
|
14395
|
+
container: tf-actions / inline-size;
|
|
14396
|
+
flex-wrap: wrap;
|
|
14397
|
+
}
|
|
14398
|
+
@container tf-actions (max-width: 400px) {
|
|
14399
|
+
.tf-btn {
|
|
14400
|
+
flex: 1 1 auto;
|
|
14401
|
+
}
|
|
14402
|
+
}
|
|
14403
|
+
@container tf-actions (max-width: 240px) {
|
|
14404
|
+
.tf-btn {
|
|
14405
|
+
flex-basis: 100%;
|
|
14406
|
+
}
|
|
14407
|
+
}
|
|
14408
|
+
|
|
13397
14409
|
/* 07-polish.css */
|
|
13398
14410
|
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
13399
14411
|
/* ───────────── Polish ─────────────
|
|
@@ -13604,10 +14616,17 @@ textarea.tf-input,
|
|
|
13604
14616
|
.tf-card,
|
|
13605
14617
|
.tf-stat,
|
|
13606
14618
|
.tf-dock,
|
|
13607
|
-
.tf-sidebar,
|
|
14619
|
+
.tf-sidebar:not(.shell),
|
|
13608
14620
|
.tf-map-legend,
|
|
13609
14621
|
.tf-map-ctl,
|
|
13610
|
-
.tf-map-pop
|
|
14622
|
+
.tf-map-pop,
|
|
14623
|
+
.tf-vital,
|
|
14624
|
+
.tf-journal,
|
|
14625
|
+
.tf-goal,
|
|
14626
|
+
.tf-insight,
|
|
14627
|
+
.tf-consent-item,
|
|
14628
|
+
.tf-nw,
|
|
14629
|
+
.tf-policy
|
|
13611
14630
|
):not(
|
|
13612
14631
|
:is(
|
|
13613
14632
|
.tf-panel,
|
|
@@ -13623,6 +14642,13 @@ textarea.tf-input,
|
|
|
13623
14642
|
.tf-palette,
|
|
13624
14643
|
.tf-modal,
|
|
13625
14644
|
.tf-drawer,
|
|
14645
|
+
.tf-vital,
|
|
14646
|
+
.tf-journal,
|
|
14647
|
+
.tf-goal,
|
|
14648
|
+
.tf-insight,
|
|
14649
|
+
.tf-consent-item,
|
|
14650
|
+
.tf-nw,
|
|
14651
|
+
.tf-policy,
|
|
13626
14652
|
.tf-glass
|
|
13627
14653
|
)
|
|
13628
14654
|
*
|
|
@@ -13717,6 +14743,10 @@ textarea.tf-input,
|
|
|
13717
14743
|
.tf-modal,
|
|
13718
14744
|
.tf-drawer,
|
|
13719
14745
|
.tf-glass,
|
|
14746
|
+
.tf-insight,
|
|
14747
|
+
.tf-policy,
|
|
14748
|
+
.tf-consent-item,
|
|
14749
|
+
.tf-journal,
|
|
13720
14750
|
.tf-btngroup,
|
|
13721
14751
|
.tf-map-ctl,
|
|
13722
14752
|
.tf-topbar
|
|
@@ -13742,7 +14772,21 @@ textarea.tf-input,
|
|
|
13742
14772
|
}
|
|
13743
14773
|
[data-surface="glass"]
|
|
13744
14774
|
:is(.tf-iconbtn-soft, .tf-iconbtn-outline, .tf-btn-secondary, .tf-chip):not(
|
|
13745
|
-
:is(
|
|
14775
|
+
:is(
|
|
14776
|
+
.tf-panel,
|
|
14777
|
+
.tf-card,
|
|
14778
|
+
.tf-dock,
|
|
14779
|
+
.tf-popover,
|
|
14780
|
+
.tf-menu,
|
|
14781
|
+
.tf-modal,
|
|
14782
|
+
.tf-drawer,
|
|
14783
|
+
.tf-insight,
|
|
14784
|
+
.tf-policy,
|
|
14785
|
+
.tf-consent-item,
|
|
14786
|
+
.tf-journal,
|
|
14787
|
+
.tf-glass
|
|
14788
|
+
)
|
|
14789
|
+
*
|
|
13746
14790
|
):not(.tf-solid):not([aria-pressed="true"]):hover {
|
|
13747
14791
|
background:
|
|
13748
14792
|
linear-gradient(var(--glass-hover), var(--glass-hover)) border-box,
|
|
@@ -13793,10 +14837,17 @@ textarea.tf-input,
|
|
|
13793
14837
|
.tf-card,
|
|
13794
14838
|
.tf-stat,
|
|
13795
14839
|
.tf-dock,
|
|
13796
|
-
.tf-sidebar,
|
|
14840
|
+
.tf-sidebar:not(.shell),
|
|
13797
14841
|
.tf-map-legend,
|
|
13798
14842
|
.tf-map-ctl,
|
|
13799
|
-
.tf-map-pop
|
|
14843
|
+
.tf-map-pop,
|
|
14844
|
+
.tf-vital,
|
|
14845
|
+
.tf-journal,
|
|
14846
|
+
.tf-goal,
|
|
14847
|
+
.tf-insight,
|
|
14848
|
+
.tf-consent-item,
|
|
14849
|
+
.tf-nw,
|
|
14850
|
+
.tf-policy
|
|
13800
14851
|
) {
|
|
13801
14852
|
outline: 1px solid CanvasText;
|
|
13802
14853
|
outline-offset: -1px;
|
|
@@ -13825,11 +14876,13 @@ textarea.tf-input,
|
|
|
13825
14876
|
inset: 0;
|
|
13826
14877
|
z-index: 1;
|
|
13827
14878
|
display: grid;
|
|
13828
|
-
grid-template-columns:
|
|
14879
|
+
grid-template-columns:
|
|
14880
|
+
minmax(0, var(--floating-start, 320px)) minmax(0, 1fr)
|
|
14881
|
+
minmax(0, var(--floating-end, 340px));
|
|
13829
14882
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
13830
14883
|
grid-template-areas:
|
|
13831
14884
|
"top top top"
|
|
13832
|
-
"start
|
|
14885
|
+
"start controls end"
|
|
13833
14886
|
"bottom bottom bottom";
|
|
13834
14887
|
gap: var(--space-4);
|
|
13835
14888
|
padding: var(--space-4);
|
|
@@ -13860,6 +14913,32 @@ textarea.tf-input,
|
|
|
13860
14913
|
grid-area: bottom;
|
|
13861
14914
|
justify-self: center;
|
|
13862
14915
|
}
|
|
14916
|
+
/* background controls and source notes: the free corner, clear of the panels and the dock */
|
|
14917
|
+
.tf-floating-ui > .tf-floating-controls {
|
|
14918
|
+
grid-area: controls;
|
|
14919
|
+
align-self: end;
|
|
14920
|
+
justify-self: end;
|
|
14921
|
+
display: flex;
|
|
14922
|
+
flex-direction: column;
|
|
14923
|
+
align-items: flex-end;
|
|
14924
|
+
gap: var(--space-2);
|
|
14925
|
+
pointer-events: none;
|
|
14926
|
+
}
|
|
14927
|
+
.tf-floating-controls > * {
|
|
14928
|
+
pointer-events: auto;
|
|
14929
|
+
}
|
|
14930
|
+
.tf-floating-attribution {
|
|
14931
|
+
max-width: 100%;
|
|
14932
|
+
padding: 2px 8px;
|
|
14933
|
+
border-radius: var(--radius-sm);
|
|
14934
|
+
background: var(--surface);
|
|
14935
|
+
color: var(--ink-muted);
|
|
14936
|
+
font: 500 11px/16px var(--font-sans);
|
|
14937
|
+
overflow-wrap: anywhere;
|
|
14938
|
+
}
|
|
14939
|
+
.tf-floating-handle {
|
|
14940
|
+
display: none;
|
|
14941
|
+
}
|
|
13863
14942
|
.tf-floating-ui > :is(.tf-floating-top, .tf-floating-bottom) {
|
|
13864
14943
|
pointer-events: none;
|
|
13865
14944
|
}
|
|
@@ -13885,7 +14964,76 @@ textarea.tf-input,
|
|
|
13885
14964
|
gap: var(--space-3);
|
|
13886
14965
|
padding: var(--space-3);
|
|
13887
14966
|
}
|
|
13888
|
-
|
|
14967
|
+
.tf-floating-ui > .tf-floating-controls {
|
|
14968
|
+
grid-area: auto;
|
|
14969
|
+
grid-row: 3;
|
|
14970
|
+
}
|
|
14971
|
+
/* the end slot as a bottom sheet over the background: a peek, or most of the height */
|
|
14972
|
+
.tf-floating.has-sheet .tf-floating-ui {
|
|
14973
|
+
grid-template-rows: auto auto minmax(120px, 1fr) auto;
|
|
14974
|
+
grid-template-areas:
|
|
14975
|
+
"top"
|
|
14976
|
+
"start"
|
|
14977
|
+
"."
|
|
14978
|
+
"bottom";
|
|
14979
|
+
padding-bottom: calc(var(--space-3) + 96px);
|
|
14980
|
+
}
|
|
14981
|
+
.tf-floating.has-sheet .tf-floating-end {
|
|
14982
|
+
position: absolute;
|
|
14983
|
+
left: var(--space-3);
|
|
14984
|
+
right: var(--space-3);
|
|
14985
|
+
bottom: 0;
|
|
14986
|
+
z-index: 2;
|
|
14987
|
+
max-height: 96px;
|
|
14988
|
+
overflow: hidden;
|
|
14989
|
+
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
14990
|
+
background: var(--surface);
|
|
14991
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
14992
|
+
transition: max-height var(--dur-base) var(--ease-out);
|
|
14993
|
+
}
|
|
14994
|
+
[data-surface="glass"].tf-floating.has-sheet .tf-floating-end {
|
|
14995
|
+
background: var(--glass);
|
|
14996
|
+
-webkit-backdrop-filter: var(--glass-filter);
|
|
14997
|
+
backdrop-filter: var(--glass-filter);
|
|
14998
|
+
}
|
|
14999
|
+
.tf-floating.has-sheet.sheet-full .tf-floating-end {
|
|
15000
|
+
max-height: 75%;
|
|
15001
|
+
overflow-y: auto;
|
|
15002
|
+
}
|
|
15003
|
+
.tf-floating.has-sheet .tf-floating-handle {
|
|
15004
|
+
display: block;
|
|
15005
|
+
position: sticky;
|
|
15006
|
+
top: 0;
|
|
15007
|
+
z-index: 1;
|
|
15008
|
+
width: 100%;
|
|
15009
|
+
height: 24px;
|
|
15010
|
+
margin: 0;
|
|
15011
|
+
padding: 0;
|
|
15012
|
+
border: 0;
|
|
15013
|
+
background: transparent;
|
|
15014
|
+
cursor: pointer;
|
|
15015
|
+
}
|
|
15016
|
+
.tf-floating.has-sheet .tf-floating-handle::before {
|
|
15017
|
+
content: "";
|
|
15018
|
+
display: block;
|
|
15019
|
+
width: 40px;
|
|
15020
|
+
height: 4px;
|
|
15021
|
+
margin: 10px auto;
|
|
15022
|
+
border-radius: var(--radius-pill);
|
|
15023
|
+
background: var(--line-strong);
|
|
15024
|
+
}
|
|
15025
|
+
.tf-floating.has-sheet .tf-floating-handle:focus-visible {
|
|
15026
|
+
outline: 2px solid var(--focus);
|
|
15027
|
+
outline-offset: -2px;
|
|
15028
|
+
}
|
|
15029
|
+
}
|
|
15030
|
+
|
|
15031
|
+
/* in a glass layout the attribution is glass too */
|
|
15032
|
+
[data-surface="glass"] .tf-floating-attribution {
|
|
15033
|
+
background: var(--glass);
|
|
15034
|
+
-webkit-backdrop-filter: var(--glass-filter);
|
|
15035
|
+
backdrop-filter: var(--glass-filter);
|
|
15036
|
+
}
|
|
13889
15037
|
|
|
13890
15038
|
/* 09-motion.css */
|
|
13891
15039
|
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
@@ -13915,183 +15063,1555 @@ textarea.tf-input,
|
|
|
13915
15063
|
translate: calc(40px * var(--motion-travel)) 0;
|
|
13916
15064
|
}
|
|
13917
15065
|
}
|
|
13918
|
-
@keyframes tf-out-left {
|
|
13919
|
-
to {
|
|
13920
|
-
opacity: 0;
|
|
13921
|
-
translate: calc(-40px * var(--motion-travel)) 0;
|
|
13922
|
-
}
|
|
15066
|
+
@keyframes tf-out-left {
|
|
15067
|
+
to {
|
|
15068
|
+
opacity: 0;
|
|
15069
|
+
translate: calc(-40px * var(--motion-travel)) 0;
|
|
15070
|
+
}
|
|
15071
|
+
}
|
|
15072
|
+
@keyframes tf-out-up {
|
|
15073
|
+
to {
|
|
15074
|
+
opacity: 0;
|
|
15075
|
+
translate: 0 calc(-40px * var(--motion-travel));
|
|
15076
|
+
}
|
|
15077
|
+
}
|
|
15078
|
+
@keyframes tf-out-down {
|
|
15079
|
+
to {
|
|
15080
|
+
opacity: 0;
|
|
15081
|
+
translate: 0 calc(16px * var(--motion-travel));
|
|
15082
|
+
}
|
|
15083
|
+
}
|
|
15084
|
+
[data-closing] {
|
|
15085
|
+
pointer-events: none;
|
|
15086
|
+
}
|
|
15087
|
+
.tf-popover[data-closing],
|
|
15088
|
+
.tf-hovercard[data-closing],
|
|
15089
|
+
.tf-modal-wrap[data-closing] .tf-modal,
|
|
15090
|
+
.tf-overlay[data-closing] :is(.tf-modal, .tf-confirm),
|
|
15091
|
+
.tf-palette-wrap[data-closing] .tf-palette {
|
|
15092
|
+
animation: tf-out var(--dur-exit) var(--ease-in-out) forwards;
|
|
15093
|
+
}
|
|
15094
|
+
.tf-tooltip[data-closing],
|
|
15095
|
+
.tf-modal-wrap[data-closing] .tf-backdrop,
|
|
15096
|
+
.tf-overlay[data-closing] .tf-backdrop,
|
|
15097
|
+
.tf-palette-wrap[data-closing],
|
|
15098
|
+
.tf-drawer-wrap[data-closing] {
|
|
15099
|
+
animation: tf-out-fade var(--dur-exit) var(--ease-in-out) forwards;
|
|
15100
|
+
}
|
|
15101
|
+
.tf-drawer-wrap[data-closing] .tf-drawer {
|
|
15102
|
+
animation: tf-out-right var(--dur-exit) var(--ease-in-out) forwards;
|
|
15103
|
+
}
|
|
15104
|
+
.tf-drawer-wrap[data-closing] .tf-drawer.side-left {
|
|
15105
|
+
animation-name: tf-out-left;
|
|
15106
|
+
}
|
|
15107
|
+
.tf-drawer-wrap[data-closing] .tf-drawer.side-top {
|
|
15108
|
+
animation-name: tf-out-up;
|
|
15109
|
+
}
|
|
15110
|
+
.tf-drawer-wrap[data-closing] .tf-drawer.side-bottom,
|
|
15111
|
+
.tf-toast[data-closing] {
|
|
15112
|
+
animation: tf-out-down var(--dur-exit) var(--ease-in-out) forwards;
|
|
15113
|
+
}
|
|
15114
|
+
|
|
15115
|
+
/* ── Reveal: a Stagger below the fold waits until it scrolls into view ── */
|
|
15116
|
+
.tf-stagger[data-reveal="waiting"] > *,
|
|
15117
|
+
.tf-stagger[data-reveal="waiting"] > * * {
|
|
15118
|
+
animation-play-state: paused;
|
|
15119
|
+
}
|
|
15120
|
+
|
|
15121
|
+
/* ── Page transitions (startViewTransition, Next.js and React view transitions) ── */
|
|
15122
|
+
@keyframes tf-vt-out {
|
|
15123
|
+
to {
|
|
15124
|
+
opacity: 0;
|
|
15125
|
+
translate: 0 calc(-6px * var(--motion-travel));
|
|
15126
|
+
}
|
|
15127
|
+
}
|
|
15128
|
+
@keyframes tf-vt-in {
|
|
15129
|
+
from {
|
|
15130
|
+
opacity: 0;
|
|
15131
|
+
translate: 0 calc(10px * var(--motion-travel));
|
|
15132
|
+
}
|
|
15133
|
+
}
|
|
15134
|
+
:root::view-transition-old(root) {
|
|
15135
|
+
animation: tf-vt-out var(--dur-base) var(--ease-in-out) both;
|
|
15136
|
+
}
|
|
15137
|
+
:root::view-transition-new(root) {
|
|
15138
|
+
animation: tf-vt-in var(--dur-enter) var(--ease-out) both;
|
|
15139
|
+
}
|
|
15140
|
+
|
|
15141
|
+
/* ── Expressive: things come into focus as they rise (Halo; Pro keeps a blur of 0) ── */
|
|
15142
|
+
@keyframes tf-focus-in {
|
|
15143
|
+
from {
|
|
15144
|
+
filter: blur(var(--motion-blur));
|
|
15145
|
+
}
|
|
15146
|
+
to {
|
|
15147
|
+
filter: none;
|
|
15148
|
+
}
|
|
15149
|
+
}
|
|
15150
|
+
[data-motion="expressive"] :is(.tf-stagger > *, .tf-in) {
|
|
15151
|
+
animation-name: tf-rise, tf-focus-in;
|
|
15152
|
+
}
|
|
15153
|
+
[data-motion="expressive"] .tf-topbar {
|
|
15154
|
+
animation-name: tf-drop, tf-focus-in;
|
|
15155
|
+
}
|
|
15156
|
+
|
|
15157
|
+
/* 10-ambient.css */
|
|
15158
|
+
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
15159
|
+
/* Ambient: a calm, living background for glass UI. Soft colour fields from the kit (pastels in
|
|
15160
|
+
* Halo, a faint aurora in Pro) drift slowly; a photo or video can take their place under a scrim.
|
|
15161
|
+
* The drift only moves (transform), stops with motion off and pauses off screen.
|
|
15162
|
+
*/
|
|
15163
|
+
:where(:has(> .tf-ambient:not(.fixed))) {
|
|
15164
|
+
position: relative;
|
|
15165
|
+
isolation: isolate;
|
|
15166
|
+
}
|
|
15167
|
+
.tf-ambient {
|
|
15168
|
+
position: absolute;
|
|
15169
|
+
inset: 0;
|
|
15170
|
+
z-index: -1;
|
|
15171
|
+
overflow: hidden;
|
|
15172
|
+
background: var(--ambient-base);
|
|
15173
|
+
pointer-events: none;
|
|
15174
|
+
}
|
|
15175
|
+
.tf-ambient.fixed {
|
|
15176
|
+
position: fixed;
|
|
15177
|
+
}
|
|
15178
|
+
.tf-ambient-field {
|
|
15179
|
+
position: absolute;
|
|
15180
|
+
width: 75%;
|
|
15181
|
+
aspect-ratio: 1;
|
|
15182
|
+
border-radius: var(--radius-1);
|
|
15183
|
+
background: radial-gradient(closest-side, var(--field), transparent);
|
|
15184
|
+
animation: tf-ambient-drift 34s var(--ease-in-out) infinite alternate;
|
|
15185
|
+
}
|
|
15186
|
+
.tf-ambient-field:nth-child(1) {
|
|
15187
|
+
top: -30%;
|
|
15188
|
+
left: -15%;
|
|
15189
|
+
}
|
|
15190
|
+
.tf-ambient-field:nth-child(2) {
|
|
15191
|
+
top: -10%;
|
|
15192
|
+
right: -25%;
|
|
15193
|
+
animation-duration: 41s;
|
|
15194
|
+
animation-direction: alternate-reverse;
|
|
15195
|
+
}
|
|
15196
|
+
.tf-ambient-field:nth-child(3) {
|
|
15197
|
+
bottom: -35%;
|
|
15198
|
+
left: 10%;
|
|
15199
|
+
animation-duration: 47s;
|
|
15200
|
+
}
|
|
15201
|
+
.tf-ambient-field:nth-child(4) {
|
|
15202
|
+
bottom: -25%;
|
|
15203
|
+
right: -10%;
|
|
15204
|
+
animation-duration: 38s;
|
|
15205
|
+
animation-direction: alternate-reverse;
|
|
15206
|
+
}
|
|
15207
|
+
.tf-ambient-field:nth-child(n + 5) {
|
|
15208
|
+
top: 20%;
|
|
15209
|
+
left: 30%;
|
|
15210
|
+
width: 55%;
|
|
15211
|
+
animation-duration: 52s;
|
|
15212
|
+
}
|
|
15213
|
+
@keyframes tf-ambient-drift {
|
|
15214
|
+
to {
|
|
15215
|
+
translate: 12% 9%;
|
|
15216
|
+
scale: 1.15;
|
|
15217
|
+
}
|
|
15218
|
+
}
|
|
15219
|
+
.tf-ambient.still .tf-ambient-field,
|
|
15220
|
+
.tf-ambient[data-paused] .tf-ambient-field {
|
|
15221
|
+
animation-play-state: paused;
|
|
15222
|
+
}
|
|
15223
|
+
.tf-ambient-media {
|
|
15224
|
+
position: absolute;
|
|
15225
|
+
inset: 0;
|
|
15226
|
+
width: 100%;
|
|
15227
|
+
height: 100%;
|
|
15228
|
+
object-fit: cover;
|
|
15229
|
+
}
|
|
15230
|
+
.tf-ambient.media::after {
|
|
15231
|
+
content: "";
|
|
15232
|
+
position: absolute;
|
|
15233
|
+
inset: 0;
|
|
15234
|
+
background: var(--ambient-scrim);
|
|
15235
|
+
}
|
|
15236
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15237
|
+
.tf-ambient-field {
|
|
15238
|
+
animation: none;
|
|
15239
|
+
}
|
|
15240
|
+
}
|
|
15241
|
+
[data-motion="off"] .tf-ambient-field {
|
|
15242
|
+
animation: none;
|
|
15243
|
+
}
|
|
15244
|
+
|
|
15245
|
+
/* 11-life.css */
|
|
15246
|
+
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
15247
|
+
/* Life: habits, mood, vitals, activity rings, sleep, medication, journal, goals, insights, consent */
|
|
15248
|
+
|
|
15249
|
+
/* HabitTracker */
|
|
15250
|
+
.tf-habits {
|
|
15251
|
+
container: tf-habits / inline-size;
|
|
15252
|
+
display: grid;
|
|
15253
|
+
gap: 4px;
|
|
15254
|
+
min-width: 0;
|
|
15255
|
+
}
|
|
15256
|
+
.tf-habit-days,
|
|
15257
|
+
.tf-habit-marks {
|
|
15258
|
+
display: grid;
|
|
15259
|
+
grid-auto-flow: column;
|
|
15260
|
+
grid-auto-columns: 24px;
|
|
15261
|
+
gap: 6px;
|
|
15262
|
+
}
|
|
15263
|
+
.tf-habit-days {
|
|
15264
|
+
justify-self: end;
|
|
15265
|
+
padding-right: 12px;
|
|
15266
|
+
font: 500 11px/16px var(--font-sans);
|
|
15267
|
+
color: var(--ink-muted);
|
|
15268
|
+
text-align: center;
|
|
15269
|
+
}
|
|
15270
|
+
.tf-habit {
|
|
15271
|
+
display: grid;
|
|
15272
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
15273
|
+
align-items: center;
|
|
15274
|
+
gap: 12px;
|
|
15275
|
+
padding: 8px 12px;
|
|
15276
|
+
border-radius: var(--radius-md);
|
|
15277
|
+
}
|
|
15278
|
+
.tf-habit:hover {
|
|
15279
|
+
background: var(--surface-sunken);
|
|
15280
|
+
}
|
|
15281
|
+
.tf-habit-text {
|
|
15282
|
+
display: flex;
|
|
15283
|
+
flex-direction: column;
|
|
15284
|
+
min-width: 0;
|
|
15285
|
+
}
|
|
15286
|
+
.tf-habit-text b {
|
|
15287
|
+
overflow: hidden;
|
|
15288
|
+
text-overflow: ellipsis;
|
|
15289
|
+
white-space: nowrap;
|
|
15290
|
+
font: 500 14px/20px var(--font-sans);
|
|
15291
|
+
}
|
|
15292
|
+
.tf-habit-text small {
|
|
15293
|
+
display: flex;
|
|
15294
|
+
flex-wrap: wrap;
|
|
15295
|
+
gap: 4px 10px;
|
|
15296
|
+
font: 500 12px/16px var(--font-sans);
|
|
15297
|
+
color: var(--ink-muted);
|
|
15298
|
+
}
|
|
15299
|
+
.tf-habit-streak {
|
|
15300
|
+
display: inline-flex;
|
|
15301
|
+
align-items: center;
|
|
15302
|
+
gap: 4px;
|
|
15303
|
+
color: var(--butter-ink);
|
|
15304
|
+
}
|
|
15305
|
+
.tf-habit-mark {
|
|
15306
|
+
display: grid;
|
|
15307
|
+
place-items: center;
|
|
15308
|
+
width: 24px;
|
|
15309
|
+
height: 24px;
|
|
15310
|
+
box-sizing: border-box;
|
|
15311
|
+
padding: 0;
|
|
15312
|
+
border: 1.5px solid var(--line-strong);
|
|
15313
|
+
border-radius: var(--radius-1);
|
|
15314
|
+
background: transparent;
|
|
15315
|
+
color: var(--primary-foreground);
|
|
15316
|
+
}
|
|
15317
|
+
.tf-habit-mark.done {
|
|
15318
|
+
border-color: var(--mint-ink);
|
|
15319
|
+
background: var(--mint-ink);
|
|
15320
|
+
}
|
|
15321
|
+
/* missed: an empty ring with a small cross; no entry: a faint dashed ring */
|
|
15322
|
+
.tf-habit-mark.missed {
|
|
15323
|
+
color: var(--ink-subtle);
|
|
15324
|
+
}
|
|
15325
|
+
.tf-habit-mark:not(.done):not(.missed) {
|
|
15326
|
+
border-style: dashed;
|
|
15327
|
+
border-color: var(--line);
|
|
15328
|
+
}
|
|
15329
|
+
.tf-habit-mark.today {
|
|
15330
|
+
box-shadow:
|
|
15331
|
+
0 0 0 2px var(--surface),
|
|
15332
|
+
0 0 0 4px var(--line-strong);
|
|
15333
|
+
}
|
|
15334
|
+
/* narrow: the marks go under the name, the day labels line up with them */
|
|
15335
|
+
@container tf-habits (max-width: 400px) {
|
|
15336
|
+
.tf-habit {
|
|
15337
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
15338
|
+
row-gap: 8px;
|
|
15339
|
+
}
|
|
15340
|
+
.tf-habit-marks {
|
|
15341
|
+
grid-column: 1 / -1;
|
|
15342
|
+
}
|
|
15343
|
+
.tf-habit-days {
|
|
15344
|
+
justify-self: start;
|
|
15345
|
+
padding: 0 0 0 12px;
|
|
15346
|
+
}
|
|
15347
|
+
}
|
|
15348
|
+
@container tf-habits (max-width: 240px) {
|
|
15349
|
+
.tf-habit-days,
|
|
15350
|
+
.tf-habit-marks {
|
|
15351
|
+
gap: 2px;
|
|
15352
|
+
}
|
|
15353
|
+
}
|
|
15354
|
+
button.tf-habit-mark {
|
|
15355
|
+
cursor: pointer;
|
|
15356
|
+
}
|
|
15357
|
+
button.tf-habit-mark:focus-visible {
|
|
15358
|
+
outline: 2px solid var(--focus);
|
|
15359
|
+
outline-offset: 4px;
|
|
15360
|
+
}
|
|
15361
|
+
|
|
15362
|
+
/* MoodPicker */
|
|
15363
|
+
.tf-mood {
|
|
15364
|
+
min-width: 0;
|
|
15365
|
+
margin: 0;
|
|
15366
|
+
padding: 0;
|
|
15367
|
+
border: 0;
|
|
15368
|
+
}
|
|
15369
|
+
.tf-mood-q {
|
|
15370
|
+
padding: 0;
|
|
15371
|
+
margin-bottom: 12px;
|
|
15372
|
+
font: 500 14px/20px var(--font-sans);
|
|
15373
|
+
}
|
|
15374
|
+
.tf-mood-scale {
|
|
15375
|
+
container: tf-mood / inline-size;
|
|
15376
|
+
display: grid;
|
|
15377
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
15378
|
+
gap: 8px;
|
|
15379
|
+
}
|
|
15380
|
+
.tf-mood-opt {
|
|
15381
|
+
position: relative;
|
|
15382
|
+
display: flex;
|
|
15383
|
+
flex-direction: column;
|
|
15384
|
+
align-items: center;
|
|
15385
|
+
justify-content: center;
|
|
15386
|
+
gap: 4px;
|
|
15387
|
+
min-width: 0;
|
|
15388
|
+
min-height: 72px;
|
|
15389
|
+
padding: 8px 4px;
|
|
15390
|
+
box-sizing: border-box;
|
|
15391
|
+
border-radius: var(--radius-md);
|
|
15392
|
+
color: var(--ink-muted);
|
|
15393
|
+
font: 500 12px/16px var(--font-sans);
|
|
15394
|
+
cursor: pointer;
|
|
15395
|
+
}
|
|
15396
|
+
/* the picked level keeps the tint its tf-t-* class gives it */
|
|
15397
|
+
.tf-mood-opt:not(.on) {
|
|
15398
|
+
background: var(--surface-sunken);
|
|
15399
|
+
}
|
|
15400
|
+
.tf-mood.compact .tf-mood-opt {
|
|
15401
|
+
min-height: 48px;
|
|
15402
|
+
}
|
|
15403
|
+
.tf-mood-opt span {
|
|
15404
|
+
max-width: 100%;
|
|
15405
|
+
overflow: hidden;
|
|
15406
|
+
text-overflow: ellipsis;
|
|
15407
|
+
white-space: nowrap;
|
|
15408
|
+
}
|
|
15409
|
+
/* narrow: tighter cells so every word still fits */
|
|
15410
|
+
@container tf-mood (max-width: 300px) {
|
|
15411
|
+
.tf-mood-opt {
|
|
15412
|
+
padding: 8px 2px;
|
|
15413
|
+
font-size: 11px;
|
|
15414
|
+
}
|
|
15415
|
+
}
|
|
15416
|
+
.tf-mood-opt input {
|
|
15417
|
+
position: absolute;
|
|
15418
|
+
inset: 0;
|
|
15419
|
+
margin: 0;
|
|
15420
|
+
opacity: 0;
|
|
15421
|
+
cursor: pointer;
|
|
15422
|
+
}
|
|
15423
|
+
.tf-mood-opt:hover {
|
|
15424
|
+
color: var(--ink);
|
|
15425
|
+
}
|
|
15426
|
+
.tf-mood-opt.on {
|
|
15427
|
+
box-shadow: inset 0 0 0 2px currentColor;
|
|
15428
|
+
}
|
|
15429
|
+
.tf-mood-opt:has(input:focus-visible) {
|
|
15430
|
+
outline: 2px solid var(--focus);
|
|
15431
|
+
outline-offset: 2px;
|
|
15432
|
+
}
|
|
15433
|
+
|
|
15434
|
+
/* VitalTile */
|
|
15435
|
+
.tf-vital {
|
|
15436
|
+
display: flex;
|
|
15437
|
+
flex-direction: column;
|
|
15438
|
+
gap: 12px;
|
|
15439
|
+
min-width: 0;
|
|
15440
|
+
padding: 16px;
|
|
15441
|
+
border-radius: var(--radius-lg);
|
|
15442
|
+
background: var(--surface);
|
|
15443
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
15444
|
+
}
|
|
15445
|
+
.tf-vital-head {
|
|
15446
|
+
display: flex;
|
|
15447
|
+
align-items: center;
|
|
15448
|
+
justify-content: space-between;
|
|
15449
|
+
gap: 8px;
|
|
15450
|
+
}
|
|
15451
|
+
.tf-vital-head .tf-badge {
|
|
15452
|
+
flex: none;
|
|
15453
|
+
white-space: nowrap;
|
|
15454
|
+
}
|
|
15455
|
+
.tf-vital-label {
|
|
15456
|
+
display: inline-flex;
|
|
15457
|
+
align-items: center;
|
|
15458
|
+
gap: 6px;
|
|
15459
|
+
min-width: 0;
|
|
15460
|
+
font: 500 13px/18px var(--font-sans);
|
|
15461
|
+
color: var(--ink-muted);
|
|
15462
|
+
}
|
|
15463
|
+
.tf-vital-main {
|
|
15464
|
+
display: flex;
|
|
15465
|
+
align-items: flex-end;
|
|
15466
|
+
justify-content: space-between;
|
|
15467
|
+
gap: 12px;
|
|
15468
|
+
}
|
|
15469
|
+
.tf-vital-value {
|
|
15470
|
+
font: 600 22px/28px var(--font-sans);
|
|
15471
|
+
letter-spacing: -0.02em;
|
|
15472
|
+
font-variant-numeric: tabular-nums;
|
|
15473
|
+
}
|
|
15474
|
+
.tf-vital-value small {
|
|
15475
|
+
margin-left: 4px;
|
|
15476
|
+
font: 500 13px/18px var(--font-sans);
|
|
15477
|
+
letter-spacing: 0;
|
|
15478
|
+
color: var(--ink-muted);
|
|
15479
|
+
}
|
|
15480
|
+
.tf-vital-band {
|
|
15481
|
+
position: relative;
|
|
15482
|
+
height: 8px;
|
|
15483
|
+
border-radius: var(--radius-pill);
|
|
15484
|
+
background: var(--surface-sunken);
|
|
15485
|
+
}
|
|
15486
|
+
.tf-vital-normal {
|
|
15487
|
+
position: absolute;
|
|
15488
|
+
top: 0;
|
|
15489
|
+
bottom: 0;
|
|
15490
|
+
border-radius: var(--radius-pill);
|
|
15491
|
+
background: var(--mint);
|
|
15492
|
+
}
|
|
15493
|
+
.tf-vital-dot {
|
|
15494
|
+
position: absolute;
|
|
15495
|
+
top: 50%;
|
|
15496
|
+
width: 14px;
|
|
15497
|
+
height: 14px;
|
|
15498
|
+
box-sizing: border-box;
|
|
15499
|
+
border: 3px solid var(--surface);
|
|
15500
|
+
border-radius: var(--radius-full);
|
|
15501
|
+
background: var(--mint-ink);
|
|
15502
|
+
translate: -50% -50%;
|
|
15503
|
+
}
|
|
15504
|
+
.tf-vital.is-low .tf-vital-dot,
|
|
15505
|
+
.tf-vital.is-high .tf-vital-dot {
|
|
15506
|
+
background: var(--butter-ink);
|
|
15507
|
+
}
|
|
15508
|
+
.tf-vital-foot {
|
|
15509
|
+
display: flex;
|
|
15510
|
+
flex-wrap: wrap;
|
|
15511
|
+
justify-content: space-between;
|
|
15512
|
+
gap: 4px 12px;
|
|
15513
|
+
font: 500 12px/16px var(--font-sans);
|
|
15514
|
+
color: var(--ink-muted);
|
|
15515
|
+
}
|
|
15516
|
+
|
|
15517
|
+
/* ActivityRings */
|
|
15518
|
+
.tf-rings {
|
|
15519
|
+
display: flex;
|
|
15520
|
+
flex-wrap: wrap;
|
|
15521
|
+
align-items: center;
|
|
15522
|
+
gap: 20px;
|
|
15523
|
+
min-width: 0;
|
|
15524
|
+
}
|
|
15525
|
+
.tf-rings svg {
|
|
15526
|
+
flex: none;
|
|
15527
|
+
}
|
|
15528
|
+
.tf-rings-legend {
|
|
15529
|
+
display: flex;
|
|
15530
|
+
flex-direction: column;
|
|
15531
|
+
gap: 8px;
|
|
15532
|
+
min-width: 0;
|
|
15533
|
+
margin: 0;
|
|
15534
|
+
padding: 0;
|
|
15535
|
+
list-style: none;
|
|
15536
|
+
}
|
|
15537
|
+
.tf-rings-legend li {
|
|
15538
|
+
display: grid;
|
|
15539
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
15540
|
+
align-items: center;
|
|
15541
|
+
column-gap: 8px;
|
|
15542
|
+
}
|
|
15543
|
+
.tf-rings-key {
|
|
15544
|
+
width: 10px;
|
|
15545
|
+
height: 10px;
|
|
15546
|
+
border-radius: var(--radius-1);
|
|
15547
|
+
}
|
|
15548
|
+
.tf-rings-name {
|
|
15549
|
+
font: 500 12px/16px var(--font-sans);
|
|
15550
|
+
color: var(--ink-muted);
|
|
15551
|
+
}
|
|
15552
|
+
.tf-rings-legend b {
|
|
15553
|
+
grid-column: 2;
|
|
15554
|
+
font: 600 14px/20px var(--font-sans);
|
|
15555
|
+
font-variant-numeric: tabular-nums;
|
|
15556
|
+
}
|
|
15557
|
+
|
|
15558
|
+
/* SleepChart */
|
|
15559
|
+
.tf-sleep {
|
|
15560
|
+
display: flex;
|
|
15561
|
+
flex-direction: column;
|
|
15562
|
+
gap: 16px;
|
|
15563
|
+
min-width: 0;
|
|
15564
|
+
}
|
|
15565
|
+
.tf-sleep-chart {
|
|
15566
|
+
display: flex;
|
|
15567
|
+
flex-direction: column;
|
|
15568
|
+
gap: 6px;
|
|
15569
|
+
}
|
|
15570
|
+
.tf-sleep-lane {
|
|
15571
|
+
display: grid;
|
|
15572
|
+
grid-template-columns: 52px minmax(0, 1fr);
|
|
15573
|
+
align-items: center;
|
|
15574
|
+
gap: 12px;
|
|
15575
|
+
}
|
|
15576
|
+
.tf-sleep-name {
|
|
15577
|
+
font: 500 12px/16px var(--font-sans);
|
|
15578
|
+
color: var(--ink-muted);
|
|
15579
|
+
}
|
|
15580
|
+
.tf-sleep-track {
|
|
15581
|
+
position: relative;
|
|
15582
|
+
height: 20px;
|
|
15583
|
+
border-radius: var(--radius-sm);
|
|
15584
|
+
background: var(--surface-sunken);
|
|
15585
|
+
}
|
|
15586
|
+
.tf-sleep-seg {
|
|
15587
|
+
position: absolute;
|
|
15588
|
+
top: 2px;
|
|
15589
|
+
bottom: 2px;
|
|
15590
|
+
min-width: 2px;
|
|
15591
|
+
border-radius: var(--radius-sm);
|
|
15592
|
+
}
|
|
15593
|
+
.tf-sleep-axis {
|
|
15594
|
+
display: flex;
|
|
15595
|
+
justify-content: space-between;
|
|
15596
|
+
margin-left: 64px;
|
|
15597
|
+
font: 500 11px/16px var(--font-sans);
|
|
15598
|
+
color: var(--ink-muted);
|
|
15599
|
+
font-variant-numeric: tabular-nums;
|
|
15600
|
+
}
|
|
15601
|
+
.tf-sleep-sum {
|
|
15602
|
+
display: flex;
|
|
15603
|
+
flex-wrap: wrap;
|
|
15604
|
+
align-items: center;
|
|
15605
|
+
justify-content: space-between;
|
|
15606
|
+
gap: 8px 16px;
|
|
15607
|
+
}
|
|
15608
|
+
.tf-sleep-sum b {
|
|
15609
|
+
font: 600 14px/20px var(--font-sans);
|
|
15610
|
+
}
|
|
15611
|
+
.tf-sleep-sum ul {
|
|
15612
|
+
display: flex;
|
|
15613
|
+
flex-wrap: wrap;
|
|
15614
|
+
gap: 4px 14px;
|
|
15615
|
+
margin: 0;
|
|
15616
|
+
padding: 0;
|
|
15617
|
+
list-style: none;
|
|
15618
|
+
}
|
|
15619
|
+
.tf-sleep-sum li {
|
|
15620
|
+
display: inline-flex;
|
|
15621
|
+
align-items: center;
|
|
15622
|
+
gap: 6px;
|
|
15623
|
+
font: 500 12px/16px var(--font-sans);
|
|
15624
|
+
color: var(--ink-muted);
|
|
15625
|
+
}
|
|
15626
|
+
.tf-sleep-sum li span:last-child {
|
|
15627
|
+
color: var(--ink);
|
|
15628
|
+
font-weight: 500;
|
|
15629
|
+
font-variant-numeric: tabular-nums;
|
|
15630
|
+
}
|
|
15631
|
+
|
|
15632
|
+
/* MedicationList */
|
|
15633
|
+
.tf-meds {
|
|
15634
|
+
container: tf-meds / inline-size;
|
|
15635
|
+
display: flex;
|
|
15636
|
+
flex-direction: column;
|
|
15637
|
+
gap: 4px;
|
|
15638
|
+
min-width: 0;
|
|
15639
|
+
margin: 0;
|
|
15640
|
+
padding: 0;
|
|
15641
|
+
list-style: none;
|
|
15642
|
+
}
|
|
15643
|
+
.tf-med {
|
|
15644
|
+
display: grid;
|
|
15645
|
+
grid-template-columns: 48px auto minmax(0, 1fr) auto;
|
|
15646
|
+
align-items: center;
|
|
15647
|
+
gap: 12px;
|
|
15648
|
+
padding: 8px 12px;
|
|
15649
|
+
border-radius: var(--radius-md);
|
|
15650
|
+
}
|
|
15651
|
+
.tf-med.is-due {
|
|
15652
|
+
background: var(--surface-sunken);
|
|
15653
|
+
}
|
|
15654
|
+
.tf-med-time {
|
|
15655
|
+
font: 500 13px/18px var(--font-sans);
|
|
15656
|
+
font-variant-numeric: tabular-nums;
|
|
15657
|
+
color: var(--ink-muted);
|
|
15658
|
+
}
|
|
15659
|
+
.tf-med-text {
|
|
15660
|
+
display: flex;
|
|
15661
|
+
flex-direction: column;
|
|
15662
|
+
min-width: 0;
|
|
15663
|
+
}
|
|
15664
|
+
.tf-med-text b {
|
|
15665
|
+
font: 500 14px/20px var(--font-sans);
|
|
15666
|
+
overflow-wrap: break-word;
|
|
15667
|
+
}
|
|
15668
|
+
.tf-med-text small {
|
|
15669
|
+
font: 500 12px/16px var(--font-sans);
|
|
15670
|
+
color: var(--ink-muted);
|
|
15671
|
+
}
|
|
15672
|
+
.tf-med.is-taken .tf-med-text b {
|
|
15673
|
+
color: var(--ink-muted);
|
|
15674
|
+
}
|
|
15675
|
+
.tf-med-act {
|
|
15676
|
+
display: inline-flex;
|
|
15677
|
+
align-items: center;
|
|
15678
|
+
gap: 8px;
|
|
15679
|
+
}
|
|
15680
|
+
/* narrow: time, name and status; the icon gives way */
|
|
15681
|
+
@container tf-meds (max-width: 400px) {
|
|
15682
|
+
.tf-med {
|
|
15683
|
+
grid-template-columns: 44px minmax(0, 1fr) auto;
|
|
15684
|
+
gap: 8px;
|
|
15685
|
+
padding: 8px;
|
|
15686
|
+
}
|
|
15687
|
+
.tf-med > .tf-tinticon {
|
|
15688
|
+
display: none;
|
|
15689
|
+
}
|
|
15690
|
+
}
|
|
15691
|
+
|
|
15692
|
+
/* JournalEntry */
|
|
15693
|
+
.tf-journal {
|
|
15694
|
+
display: flex;
|
|
15695
|
+
flex-direction: column;
|
|
15696
|
+
gap: 8px;
|
|
15697
|
+
min-width: 0;
|
|
15698
|
+
padding: 20px;
|
|
15699
|
+
border-radius: var(--radius-lg);
|
|
15700
|
+
background: var(--surface);
|
|
15701
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
15702
|
+
}
|
|
15703
|
+
.tf-journal-head {
|
|
15704
|
+
display: flex;
|
|
15705
|
+
flex-wrap: wrap;
|
|
15706
|
+
align-items: center;
|
|
15707
|
+
justify-content: space-between;
|
|
15708
|
+
gap: 8px;
|
|
15709
|
+
font: 500 12px/16px var(--font-sans);
|
|
15710
|
+
color: var(--ink-muted);
|
|
15711
|
+
}
|
|
15712
|
+
.tf-journal-mood {
|
|
15713
|
+
display: inline-flex;
|
|
15714
|
+
align-items: center;
|
|
15715
|
+
gap: 4px;
|
|
15716
|
+
padding: 2px 8px;
|
|
15717
|
+
border-radius: var(--radius-pill);
|
|
15718
|
+
}
|
|
15719
|
+
.tf-journal-title {
|
|
15720
|
+
margin: 0;
|
|
15721
|
+
font: 600 14px/20px var(--font-sans);
|
|
15722
|
+
}
|
|
15723
|
+
.tf-journal-body {
|
|
15724
|
+
font: 500 14px/20px var(--font-sans);
|
|
15725
|
+
color: var(--ink);
|
|
15726
|
+
overflow-wrap: anywhere;
|
|
15727
|
+
}
|
|
15728
|
+
.tf-journal-body p {
|
|
15729
|
+
margin: 0 0 8px;
|
|
15730
|
+
}
|
|
15731
|
+
.tf-journal-foot {
|
|
15732
|
+
display: flex;
|
|
15733
|
+
flex-wrap: wrap;
|
|
15734
|
+
align-items: center;
|
|
15735
|
+
justify-content: space-between;
|
|
15736
|
+
gap: 8px;
|
|
15737
|
+
padding-top: 4px;
|
|
15738
|
+
}
|
|
15739
|
+
.tf-journal-tags {
|
|
15740
|
+
display: flex;
|
|
15741
|
+
flex-wrap: wrap;
|
|
15742
|
+
gap: 6px;
|
|
15743
|
+
}
|
|
15744
|
+
|
|
15745
|
+
/* GoalCard */
|
|
15746
|
+
.tf-goal {
|
|
15747
|
+
display: flex;
|
|
15748
|
+
flex-direction: column;
|
|
15749
|
+
gap: 12px;
|
|
15750
|
+
min-width: 0;
|
|
15751
|
+
padding: 20px;
|
|
15752
|
+
border-radius: var(--radius-lg);
|
|
15753
|
+
background: var(--surface);
|
|
15754
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
15755
|
+
}
|
|
15756
|
+
/* narrow: the icon steps aside so the title keeps whole words */
|
|
15757
|
+
@container tf-goal (max-width: 280px) {
|
|
15758
|
+
.tf-goal-head > .tf-tinticon {
|
|
15759
|
+
display: none;
|
|
15760
|
+
}
|
|
15761
|
+
}
|
|
15762
|
+
.tf-goal-head {
|
|
15763
|
+
container: tf-goal / inline-size;
|
|
15764
|
+
display: flex;
|
|
15765
|
+
align-items: center;
|
|
15766
|
+
gap: 12px;
|
|
15767
|
+
}
|
|
15768
|
+
.tf-goal-head .tf-option-text {
|
|
15769
|
+
flex: 1;
|
|
15770
|
+
padding: 0;
|
|
15771
|
+
}
|
|
15772
|
+
.tf-goal-head b {
|
|
15773
|
+
font: 600 14px/20px var(--font-sans);
|
|
15774
|
+
}
|
|
15775
|
+
.tf-goal-pct {
|
|
15776
|
+
font: 600 18px/24px var(--font-sans);
|
|
15777
|
+
font-variant-numeric: tabular-nums;
|
|
15778
|
+
}
|
|
15779
|
+
.tf-goal-bar {
|
|
15780
|
+
height: 10px;
|
|
15781
|
+
overflow: hidden;
|
|
15782
|
+
border-radius: var(--radius-pill);
|
|
15783
|
+
background: var(--surface-sunken);
|
|
15784
|
+
}
|
|
15785
|
+
.tf-goal-bar > span {
|
|
15786
|
+
display: block;
|
|
15787
|
+
height: 100%;
|
|
15788
|
+
border-radius: var(--radius-pill);
|
|
15789
|
+
}
|
|
15790
|
+
.tf-goal-meta,
|
|
15791
|
+
.tf-goal-note {
|
|
15792
|
+
margin: 0;
|
|
15793
|
+
font: 500 12px/16px var(--font-sans);
|
|
15794
|
+
color: var(--ink-muted);
|
|
15795
|
+
}
|
|
15796
|
+
.tf-goal-steps {
|
|
15797
|
+
display: flex;
|
|
15798
|
+
flex-direction: column;
|
|
15799
|
+
gap: 6px;
|
|
15800
|
+
margin: 0;
|
|
15801
|
+
padding: 0;
|
|
15802
|
+
list-style: none;
|
|
15803
|
+
font: 500 13px/18px var(--font-sans);
|
|
15804
|
+
}
|
|
15805
|
+
.tf-goal-steps li {
|
|
15806
|
+
display: flex;
|
|
15807
|
+
align-items: center;
|
|
15808
|
+
gap: 8px;
|
|
15809
|
+
}
|
|
15810
|
+
.tf-goal-steps li.done {
|
|
15811
|
+
color: var(--ink-muted);
|
|
15812
|
+
}
|
|
15813
|
+
.tf-goal-step {
|
|
15814
|
+
display: grid;
|
|
15815
|
+
place-items: center;
|
|
15816
|
+
flex: none;
|
|
15817
|
+
width: 16px;
|
|
15818
|
+
height: 16px;
|
|
15819
|
+
box-sizing: border-box;
|
|
15820
|
+
border: 1.5px solid var(--line-strong);
|
|
15821
|
+
border-radius: var(--radius-1);
|
|
15822
|
+
color: var(--primary-foreground);
|
|
15823
|
+
}
|
|
15824
|
+
.tf-goal-steps li.done .tf-goal-step {
|
|
15825
|
+
border-color: var(--primary);
|
|
15826
|
+
background: var(--primary);
|
|
15827
|
+
}
|
|
15828
|
+
|
|
15829
|
+
/* InsightCard */
|
|
15830
|
+
.tf-insight {
|
|
15831
|
+
display: flex;
|
|
15832
|
+
flex-direction: column;
|
|
15833
|
+
gap: 12px;
|
|
15834
|
+
min-width: 0;
|
|
15835
|
+
padding: 16px 16px 16px 20px;
|
|
15836
|
+
border-radius: var(--radius-lg);
|
|
15837
|
+
background: var(--surface);
|
|
15838
|
+
box-shadow:
|
|
15839
|
+
0 0 0 var(--line-width) var(--line),
|
|
15840
|
+
inset 3px 0 0 var(--sky-ink);
|
|
15841
|
+
/* on glass the card takes a faint wash of its tone */
|
|
15842
|
+
--tint: var(--sky);
|
|
15843
|
+
}
|
|
15844
|
+
.tf-insight.is-success {
|
|
15845
|
+
--tint: var(--mint);
|
|
15846
|
+
box-shadow:
|
|
15847
|
+
0 0 0 var(--line-width) var(--line),
|
|
15848
|
+
inset 3px 0 0 var(--mint-ink);
|
|
15849
|
+
}
|
|
15850
|
+
.tf-insight.is-warning {
|
|
15851
|
+
--tint: var(--butter);
|
|
15852
|
+
box-shadow:
|
|
15853
|
+
0 0 0 var(--line-width) var(--line),
|
|
15854
|
+
inset 3px 0 0 var(--butter-ink);
|
|
15855
|
+
}
|
|
15856
|
+
.tf-insight.is-highlight {
|
|
15857
|
+
--tint: var(--lilac);
|
|
15858
|
+
box-shadow:
|
|
15859
|
+
0 0 0 var(--line-width) var(--line),
|
|
15860
|
+
inset 3px 0 0 var(--lilac-ink);
|
|
15861
|
+
}
|
|
15862
|
+
.tf-insight-head {
|
|
15863
|
+
display: flex;
|
|
15864
|
+
align-items: flex-start;
|
|
15865
|
+
gap: 12px;
|
|
15866
|
+
}
|
|
15867
|
+
.tf-insight-titles {
|
|
15868
|
+
display: flex;
|
|
15869
|
+
flex: 1;
|
|
15870
|
+
flex-direction: column;
|
|
15871
|
+
min-width: 0;
|
|
15872
|
+
}
|
|
15873
|
+
.tf-insight-titles small {
|
|
15874
|
+
font: 500 12px/16px var(--font-sans);
|
|
15875
|
+
color: var(--ink-muted);
|
|
15876
|
+
}
|
|
15877
|
+
.tf-insight-titles b {
|
|
15878
|
+
font: 600 15px/20px var(--font-sans);
|
|
15879
|
+
overflow-wrap: anywhere;
|
|
15880
|
+
}
|
|
15881
|
+
.tf-insight-body {
|
|
15882
|
+
font: 500 14px/20px var(--font-sans);
|
|
15883
|
+
color: var(--ink);
|
|
15884
|
+
}
|
|
15885
|
+
.tf-insight-why button {
|
|
15886
|
+
display: inline-flex;
|
|
15887
|
+
align-items: center;
|
|
15888
|
+
gap: 6px;
|
|
15889
|
+
min-height: 24px;
|
|
15890
|
+
padding: 0;
|
|
15891
|
+
border: 0;
|
|
15892
|
+
background: none;
|
|
15893
|
+
color: var(--ink-muted);
|
|
15894
|
+
font: 500 12px/16px var(--font-sans);
|
|
15895
|
+
cursor: pointer;
|
|
15896
|
+
}
|
|
15897
|
+
.tf-insight-why button:hover {
|
|
15898
|
+
color: var(--ink);
|
|
15899
|
+
}
|
|
15900
|
+
.tf-insight-why button:focus-visible {
|
|
15901
|
+
outline: 2px solid var(--focus);
|
|
15902
|
+
outline-offset: 2px;
|
|
15903
|
+
border-radius: var(--radius-sm);
|
|
15904
|
+
}
|
|
15905
|
+
.tf-insight-why button[aria-expanded="true"] .tf-insight-chev {
|
|
15906
|
+
rotate: 180deg;
|
|
15907
|
+
}
|
|
15908
|
+
.tf-insight-whytext {
|
|
15909
|
+
margin-top: 8px;
|
|
15910
|
+
padding: 12px;
|
|
15911
|
+
border-radius: var(--radius-md);
|
|
15912
|
+
background: var(--surface-sunken);
|
|
15913
|
+
font: 500 13px/18px var(--font-sans);
|
|
15914
|
+
color: var(--ink-muted);
|
|
15915
|
+
}
|
|
15916
|
+
.tf-insight-actions {
|
|
15917
|
+
display: flex;
|
|
15918
|
+
flex-wrap: wrap;
|
|
15919
|
+
justify-content: flex-end;
|
|
15920
|
+
gap: 8px;
|
|
15921
|
+
}
|
|
15922
|
+
|
|
15923
|
+
/* ConsentList */
|
|
15924
|
+
.tf-consent {
|
|
15925
|
+
display: flex;
|
|
15926
|
+
flex-direction: column;
|
|
15927
|
+
gap: 12px;
|
|
15928
|
+
min-width: 0;
|
|
15929
|
+
}
|
|
15930
|
+
.tf-consent-item {
|
|
15931
|
+
display: flex;
|
|
15932
|
+
flex-direction: column;
|
|
15933
|
+
gap: 12px;
|
|
15934
|
+
padding: 16px;
|
|
15935
|
+
border-radius: var(--radius-lg);
|
|
15936
|
+
background: var(--surface);
|
|
15937
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
15938
|
+
}
|
|
15939
|
+
.tf-consent-head {
|
|
15940
|
+
display: flex;
|
|
15941
|
+
flex-wrap: wrap;
|
|
15942
|
+
align-items: center;
|
|
15943
|
+
gap: 12px;
|
|
15944
|
+
}
|
|
15945
|
+
.tf-consent-head .tf-option-text {
|
|
15946
|
+
flex: 1;
|
|
15947
|
+
min-width: 140px;
|
|
15948
|
+
padding: 0;
|
|
15949
|
+
}
|
|
15950
|
+
.tf-consent-purpose {
|
|
15951
|
+
margin: 0;
|
|
15952
|
+
font: 500 13px/18px var(--font-sans);
|
|
15953
|
+
color: var(--ink-muted);
|
|
15954
|
+
}
|
|
15955
|
+
.tf-consent-scopes {
|
|
15956
|
+
display: flex;
|
|
15957
|
+
flex-direction: column;
|
|
15958
|
+
margin: 0;
|
|
15959
|
+
padding: 0;
|
|
15960
|
+
list-style: none;
|
|
15961
|
+
}
|
|
15962
|
+
.tf-consent-scopes li {
|
|
15963
|
+
display: flex;
|
|
15964
|
+
align-items: center;
|
|
15965
|
+
justify-content: space-between;
|
|
15966
|
+
gap: 12px;
|
|
15967
|
+
padding: 10px 0;
|
|
15968
|
+
border-top: 1px solid var(--line);
|
|
15969
|
+
}
|
|
15970
|
+
.tf-consent-scopes .tf-option-text {
|
|
15971
|
+
min-width: 0;
|
|
15972
|
+
padding: 0;
|
|
15973
|
+
}
|
|
15974
|
+
.tf-consent-req {
|
|
15975
|
+
flex: none;
|
|
15976
|
+
font: 500 12px/16px var(--font-sans);
|
|
15977
|
+
color: var(--ink-muted);
|
|
15978
|
+
}
|
|
15979
|
+
|
|
15980
|
+
/* 12-household.css */
|
|
15981
|
+
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
15982
|
+
/* Life: budgets, subscriptions, net worth, deadlines, policies, coverage, claims, documents */
|
|
15983
|
+
|
|
15984
|
+
/* BudgetList */
|
|
15985
|
+
.tf-budgets,
|
|
15986
|
+
.tf-subs ul,
|
|
15987
|
+
.tf-deadlines,
|
|
15988
|
+
.tf-docs,
|
|
15989
|
+
.tf-claim-steps,
|
|
15990
|
+
.tf-nw-side ul {
|
|
15991
|
+
margin: 0;
|
|
15992
|
+
padding: 0;
|
|
15993
|
+
list-style: none;
|
|
15994
|
+
}
|
|
15995
|
+
.tf-budgets {
|
|
15996
|
+
display: flex;
|
|
15997
|
+
flex-direction: column;
|
|
15998
|
+
gap: 4px;
|
|
15999
|
+
min-width: 0;
|
|
16000
|
+
}
|
|
16001
|
+
.tf-budget {
|
|
16002
|
+
container: tf-budget / inline-size;
|
|
16003
|
+
display: flex;
|
|
16004
|
+
align-items: center;
|
|
16005
|
+
gap: 12px;
|
|
16006
|
+
width: 100%;
|
|
16007
|
+
padding: 10px 12px;
|
|
16008
|
+
box-sizing: border-box;
|
|
16009
|
+
border: 0;
|
|
16010
|
+
border-radius: var(--radius-md);
|
|
16011
|
+
background: transparent;
|
|
16012
|
+
color: var(--ink);
|
|
16013
|
+
font: inherit;
|
|
16014
|
+
text-align: left;
|
|
16015
|
+
}
|
|
16016
|
+
button.tf-budget {
|
|
16017
|
+
cursor: pointer;
|
|
16018
|
+
}
|
|
16019
|
+
button.tf-budget:hover {
|
|
16020
|
+
background: var(--accent);
|
|
16021
|
+
}
|
|
16022
|
+
button.tf-budget:focus-visible {
|
|
16023
|
+
outline: 2px solid var(--focus);
|
|
16024
|
+
outline-offset: 2px;
|
|
16025
|
+
}
|
|
16026
|
+
.tf-budget-main {
|
|
16027
|
+
display: flex;
|
|
16028
|
+
flex: 1;
|
|
16029
|
+
flex-direction: column;
|
|
16030
|
+
gap: 6px;
|
|
16031
|
+
min-width: 0;
|
|
16032
|
+
}
|
|
16033
|
+
.tf-budget-top {
|
|
16034
|
+
display: flex;
|
|
16035
|
+
flex-wrap: wrap;
|
|
16036
|
+
align-items: baseline;
|
|
16037
|
+
justify-content: space-between;
|
|
16038
|
+
gap: 0 12px;
|
|
16039
|
+
}
|
|
16040
|
+
/* narrow: the icon steps aside so the category keeps its name */
|
|
16041
|
+
@container tf-budget (max-width: 300px) {
|
|
16042
|
+
.tf-budget > .tf-tinticon {
|
|
16043
|
+
display: none;
|
|
16044
|
+
}
|
|
16045
|
+
}
|
|
16046
|
+
.tf-budget-top b {
|
|
16047
|
+
min-width: 0;
|
|
16048
|
+
overflow: hidden;
|
|
16049
|
+
text-overflow: ellipsis;
|
|
16050
|
+
white-space: nowrap;
|
|
16051
|
+
font: 500 14px/20px var(--font-sans);
|
|
16052
|
+
}
|
|
16053
|
+
.tf-budget-nums {
|
|
16054
|
+
flex: none;
|
|
16055
|
+
font: 600 13px/18px var(--font-sans);
|
|
16056
|
+
font-variant-numeric: tabular-nums;
|
|
16057
|
+
}
|
|
16058
|
+
.tf-budget-nums small {
|
|
16059
|
+
font-weight: 500;
|
|
16060
|
+
color: var(--ink-muted);
|
|
16061
|
+
}
|
|
16062
|
+
.tf-budget-bar {
|
|
16063
|
+
display: block;
|
|
16064
|
+
height: 8px;
|
|
16065
|
+
overflow: hidden;
|
|
16066
|
+
border-radius: var(--radius-pill);
|
|
16067
|
+
background: var(--surface-sunken);
|
|
16068
|
+
}
|
|
16069
|
+
.tf-budget-bar > span {
|
|
16070
|
+
display: block;
|
|
16071
|
+
height: 100%;
|
|
16072
|
+
border-radius: var(--radius-pill);
|
|
16073
|
+
}
|
|
16074
|
+
.tf-budget-left {
|
|
16075
|
+
font: 500 12px/16px var(--font-sans);
|
|
16076
|
+
color: var(--ink-muted);
|
|
16077
|
+
}
|
|
16078
|
+
.tf-budget-left.over {
|
|
16079
|
+
color: var(--blush-ink);
|
|
16080
|
+
font-weight: 500;
|
|
16081
|
+
}
|
|
16082
|
+
|
|
16083
|
+
/* SubscriptionList */
|
|
16084
|
+
.tf-subs {
|
|
16085
|
+
display: flex;
|
|
16086
|
+
flex-direction: column;
|
|
16087
|
+
gap: 8px;
|
|
16088
|
+
min-width: 0;
|
|
16089
|
+
}
|
|
16090
|
+
.tf-subs ul {
|
|
16091
|
+
container: tf-subs / inline-size;
|
|
16092
|
+
display: flex;
|
|
16093
|
+
flex-direction: column;
|
|
16094
|
+
}
|
|
16095
|
+
.tf-sub {
|
|
16096
|
+
display: flex;
|
|
16097
|
+
align-items: center;
|
|
16098
|
+
gap: 12px;
|
|
16099
|
+
padding: 10px 4px;
|
|
16100
|
+
border-bottom: 1px solid var(--line);
|
|
16101
|
+
}
|
|
16102
|
+
.tf-sub:last-child {
|
|
16103
|
+
border-bottom: 0;
|
|
16104
|
+
}
|
|
16105
|
+
.tf-sub-text {
|
|
16106
|
+
display: flex;
|
|
16107
|
+
flex: 1;
|
|
16108
|
+
flex-direction: column;
|
|
16109
|
+
min-width: 0;
|
|
16110
|
+
}
|
|
16111
|
+
.tf-sub-text b {
|
|
16112
|
+
overflow: hidden;
|
|
16113
|
+
text-overflow: ellipsis;
|
|
16114
|
+
white-space: nowrap;
|
|
16115
|
+
font: 500 14px/20px var(--font-sans);
|
|
16116
|
+
}
|
|
16117
|
+
.tf-sub-text small {
|
|
16118
|
+
font: 500 12px/16px var(--font-sans);
|
|
16119
|
+
color: var(--ink-muted);
|
|
16120
|
+
}
|
|
16121
|
+
.tf-sub-amount {
|
|
16122
|
+
flex: none;
|
|
16123
|
+
font: 600 14px/20px var(--font-sans);
|
|
16124
|
+
font-variant-numeric: tabular-nums;
|
|
16125
|
+
text-align: right;
|
|
16126
|
+
}
|
|
16127
|
+
.tf-sub-amount small {
|
|
16128
|
+
margin-left: 2px;
|
|
16129
|
+
font-weight: 500;
|
|
16130
|
+
color: var(--ink-muted);
|
|
16131
|
+
}
|
|
16132
|
+
/* narrow: amount and trial badge go under the name, the menu stays at the end */
|
|
16133
|
+
@container tf-subs (max-width: 380px) {
|
|
16134
|
+
.tf-sub {
|
|
16135
|
+
display: grid;
|
|
16136
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
16137
|
+
gap: 4px 12px;
|
|
16138
|
+
align-items: center;
|
|
16139
|
+
}
|
|
16140
|
+
.tf-sub > :first-child {
|
|
16141
|
+
grid-row: 1 / span 2;
|
|
16142
|
+
align-self: start;
|
|
16143
|
+
}
|
|
16144
|
+
.tf-sub > .tf-sub-text,
|
|
16145
|
+
.tf-sub > .tf-badge,
|
|
16146
|
+
.tf-sub > .tf-sub-amount {
|
|
16147
|
+
grid-column: 2;
|
|
16148
|
+
justify-self: start;
|
|
16149
|
+
text-align: left;
|
|
16150
|
+
}
|
|
16151
|
+
.tf-sub > :last-child:not(.tf-sub-amount) {
|
|
16152
|
+
grid-column: 3;
|
|
16153
|
+
grid-row: 1;
|
|
16154
|
+
}
|
|
16155
|
+
}
|
|
16156
|
+
.tf-sub.is-cancelled .tf-sub-text b,
|
|
16157
|
+
.tf-sub.is-cancelled .tf-sub-amount {
|
|
16158
|
+
color: var(--ink-muted);
|
|
16159
|
+
text-decoration: line-through;
|
|
16160
|
+
}
|
|
16161
|
+
.tf-subs-total {
|
|
16162
|
+
display: flex;
|
|
16163
|
+
flex-wrap: wrap;
|
|
16164
|
+
align-items: baseline;
|
|
16165
|
+
justify-content: space-between;
|
|
16166
|
+
gap: 4px 12px;
|
|
16167
|
+
padding: 12px;
|
|
16168
|
+
border-radius: var(--radius-md);
|
|
16169
|
+
background: var(--surface-sunken);
|
|
16170
|
+
font: 500 13px/18px var(--font-sans);
|
|
16171
|
+
color: var(--ink-muted);
|
|
16172
|
+
}
|
|
16173
|
+
.tf-subs-total b {
|
|
16174
|
+
color: var(--ink);
|
|
16175
|
+
font: 600 15px/20px var(--font-sans);
|
|
16176
|
+
}
|
|
16177
|
+
|
|
16178
|
+
/* NetWorthCard */
|
|
16179
|
+
.tf-nw {
|
|
16180
|
+
display: flex;
|
|
16181
|
+
flex-direction: column;
|
|
16182
|
+
gap: 16px;
|
|
16183
|
+
min-width: 0;
|
|
16184
|
+
padding: 20px;
|
|
16185
|
+
border-radius: var(--radius-lg);
|
|
16186
|
+
background: var(--surface);
|
|
16187
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
16188
|
+
}
|
|
16189
|
+
.tf-nw-head {
|
|
16190
|
+
display: flex;
|
|
16191
|
+
flex-wrap: wrap;
|
|
16192
|
+
align-items: flex-end;
|
|
16193
|
+
justify-content: space-between;
|
|
16194
|
+
gap: 12px;
|
|
16195
|
+
}
|
|
16196
|
+
.tf-nw-head > :first-child {
|
|
16197
|
+
flex: 1 1 200px;
|
|
16198
|
+
}
|
|
16199
|
+
.tf-nw-head > :last-child:not(:first-child) {
|
|
16200
|
+
flex: none;
|
|
16201
|
+
max-width: 45%;
|
|
16202
|
+
}
|
|
16203
|
+
.tf-nw-title {
|
|
16204
|
+
font: 500 13px/18px var(--font-sans);
|
|
16205
|
+
color: var(--ink-muted);
|
|
16206
|
+
}
|
|
16207
|
+
.tf-nw-total {
|
|
16208
|
+
font: 600 24px/38px var(--font-sans);
|
|
16209
|
+
letter-spacing: -0.02em;
|
|
16210
|
+
font-variant-numeric: tabular-nums;
|
|
16211
|
+
}
|
|
16212
|
+
.tf-nw-change {
|
|
16213
|
+
display: inline-flex;
|
|
16214
|
+
align-items: center;
|
|
16215
|
+
gap: 4px;
|
|
16216
|
+
font: 500 12px/16px var(--font-sans);
|
|
16217
|
+
color: var(--mint-ink);
|
|
16218
|
+
}
|
|
16219
|
+
.tf-nw-change.down {
|
|
16220
|
+
color: var(--blush-ink);
|
|
16221
|
+
}
|
|
16222
|
+
.tf-nw-change.down .tf-ico {
|
|
16223
|
+
rotate: 180deg;
|
|
16224
|
+
}
|
|
16225
|
+
.tf-nw-change span {
|
|
16226
|
+
font-weight: 500;
|
|
16227
|
+
color: var(--ink-muted);
|
|
16228
|
+
}
|
|
16229
|
+
.tf-nw-sides {
|
|
16230
|
+
display: grid;
|
|
16231
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
16232
|
+
gap: 16px;
|
|
16233
|
+
}
|
|
16234
|
+
.tf-nw-side {
|
|
16235
|
+
display: flex;
|
|
16236
|
+
flex-direction: column;
|
|
16237
|
+
gap: 8px;
|
|
16238
|
+
min-width: 0;
|
|
16239
|
+
}
|
|
16240
|
+
.tf-nw-sidehead {
|
|
16241
|
+
display: flex;
|
|
16242
|
+
justify-content: space-between;
|
|
16243
|
+
gap: 8px;
|
|
16244
|
+
padding-bottom: 8px;
|
|
16245
|
+
border-bottom: 1px solid var(--line);
|
|
16246
|
+
font: 500 12px/16px var(--font-sans);
|
|
16247
|
+
color: var(--ink-muted);
|
|
16248
|
+
}
|
|
16249
|
+
.tf-nw-sidehead b {
|
|
16250
|
+
color: var(--ink);
|
|
16251
|
+
font-variant-numeric: tabular-nums;
|
|
16252
|
+
}
|
|
16253
|
+
.tf-nw-side li {
|
|
16254
|
+
display: flex;
|
|
16255
|
+
justify-content: space-between;
|
|
16256
|
+
gap: 8px;
|
|
16257
|
+
padding: 4px 0;
|
|
16258
|
+
font: 500 13px/18px var(--font-sans);
|
|
16259
|
+
}
|
|
16260
|
+
.tf-nw-side li span:first-child {
|
|
16261
|
+
display: inline-flex;
|
|
16262
|
+
align-items: center;
|
|
16263
|
+
gap: 6px;
|
|
16264
|
+
min-width: 0;
|
|
16265
|
+
color: var(--ink-muted);
|
|
16266
|
+
}
|
|
16267
|
+
.tf-nw-side li span:last-child {
|
|
16268
|
+
font-variant-numeric: tabular-nums;
|
|
16269
|
+
}
|
|
16270
|
+
|
|
16271
|
+
/* DeadlineList */
|
|
16272
|
+
.tf-deadlines {
|
|
16273
|
+
display: flex;
|
|
16274
|
+
flex-direction: column;
|
|
16275
|
+
gap: 4px;
|
|
16276
|
+
min-width: 0;
|
|
16277
|
+
}
|
|
16278
|
+
.tf-deadline {
|
|
16279
|
+
display: flex;
|
|
16280
|
+
flex-wrap: wrap;
|
|
16281
|
+
align-items: center;
|
|
16282
|
+
gap: 8px 12px;
|
|
16283
|
+
padding: 8px 12px;
|
|
16284
|
+
border-radius: var(--radius-md);
|
|
16285
|
+
}
|
|
16286
|
+
.tf-deadline.is-overdue {
|
|
16287
|
+
background: var(--blush);
|
|
16288
|
+
}
|
|
16289
|
+
.tf-deadline.is-soon {
|
|
16290
|
+
background: var(--surface-sunken);
|
|
16291
|
+
}
|
|
16292
|
+
.tf-deadline-date {
|
|
16293
|
+
display: flex;
|
|
16294
|
+
flex: none;
|
|
16295
|
+
flex-direction: column;
|
|
16296
|
+
align-items: center;
|
|
16297
|
+
width: 40px;
|
|
16298
|
+
padding: 4px 0;
|
|
16299
|
+
border-radius: var(--radius-sm);
|
|
16300
|
+
background: var(--surface);
|
|
16301
|
+
box-shadow: inset 0 0 0 1px var(--line);
|
|
16302
|
+
}
|
|
16303
|
+
.tf-deadline-date b {
|
|
16304
|
+
font: 600 14px/20px var(--font-sans);
|
|
16305
|
+
font-variant-numeric: tabular-nums;
|
|
16306
|
+
}
|
|
16307
|
+
.tf-deadline-date small {
|
|
16308
|
+
font: 500 10px/12px var(--font-sans);
|
|
16309
|
+
text-transform: uppercase;
|
|
16310
|
+
color: var(--ink-muted);
|
|
16311
|
+
}
|
|
16312
|
+
.tf-deadline-text {
|
|
16313
|
+
display: flex;
|
|
16314
|
+
flex: 1 1 160px;
|
|
16315
|
+
flex-direction: column;
|
|
16316
|
+
min-width: 0;
|
|
16317
|
+
}
|
|
16318
|
+
.tf-deadline-text b {
|
|
16319
|
+
font: 500 14px/20px var(--font-sans);
|
|
16320
|
+
overflow-wrap: break-word;
|
|
16321
|
+
}
|
|
16322
|
+
.tf-deadline-text small {
|
|
16323
|
+
font: 500 12px/16px var(--font-sans);
|
|
16324
|
+
color: var(--ink-muted);
|
|
16325
|
+
}
|
|
16326
|
+
.tf-deadline-amount {
|
|
16327
|
+
font: 600 13px/18px var(--font-sans);
|
|
16328
|
+
font-variant-numeric: tabular-nums;
|
|
16329
|
+
}
|
|
16330
|
+
.tf-deadline.is-done .tf-deadline-text b {
|
|
16331
|
+
color: var(--ink-muted);
|
|
16332
|
+
text-decoration: line-through;
|
|
16333
|
+
}
|
|
16334
|
+
.tf-deadline-done {
|
|
16335
|
+
color: var(--mint-ink);
|
|
16336
|
+
}
|
|
16337
|
+
|
|
16338
|
+
/* PolicyCard */
|
|
16339
|
+
.tf-policy {
|
|
16340
|
+
display: flex;
|
|
16341
|
+
flex-direction: column;
|
|
16342
|
+
gap: 16px;
|
|
16343
|
+
min-width: 0;
|
|
16344
|
+
padding: 20px;
|
|
16345
|
+
border-radius: var(--radius-lg);
|
|
16346
|
+
background: var(--surface);
|
|
16347
|
+
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
16348
|
+
}
|
|
16349
|
+
.tf-policy-head {
|
|
16350
|
+
display: flex;
|
|
16351
|
+
flex-wrap: wrap;
|
|
16352
|
+
align-items: center;
|
|
16353
|
+
gap: 12px;
|
|
16354
|
+
}
|
|
16355
|
+
.tf-policy-head .tf-option-text {
|
|
16356
|
+
flex: 1;
|
|
16357
|
+
min-width: 120px;
|
|
16358
|
+
padding: 0;
|
|
16359
|
+
}
|
|
16360
|
+
.tf-policy-head b {
|
|
16361
|
+
font: 600 15px/20px var(--font-sans);
|
|
16362
|
+
}
|
|
16363
|
+
.tf-policy-facts {
|
|
16364
|
+
display: grid;
|
|
16365
|
+
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
|
|
16366
|
+
gap: 12px;
|
|
16367
|
+
margin: 0;
|
|
16368
|
+
}
|
|
16369
|
+
.tf-policy-facts div {
|
|
16370
|
+
min-width: 0;
|
|
16371
|
+
}
|
|
16372
|
+
.tf-policy-facts dt {
|
|
16373
|
+
font: 500 11px/14px var(--font-sans);
|
|
16374
|
+
letter-spacing: 0.04em;
|
|
16375
|
+
text-transform: uppercase;
|
|
16376
|
+
color: var(--ink-muted);
|
|
16377
|
+
}
|
|
16378
|
+
.tf-policy-facts dd {
|
|
16379
|
+
margin: 2px 0 0;
|
|
16380
|
+
font: 600 15px/20px var(--font-sans);
|
|
16381
|
+
font-variant-numeric: tabular-nums;
|
|
16382
|
+
overflow-wrap: break-word;
|
|
16383
|
+
}
|
|
16384
|
+
.tf-policy-foot {
|
|
16385
|
+
display: flex;
|
|
16386
|
+
flex-wrap: wrap;
|
|
16387
|
+
align-items: center;
|
|
16388
|
+
justify-content: space-between;
|
|
16389
|
+
gap: 8px;
|
|
16390
|
+
padding-top: 12px;
|
|
16391
|
+
border-top: 1px solid var(--line);
|
|
16392
|
+
font: 500 12px/16px var(--font-sans);
|
|
16393
|
+
color: var(--ink-muted);
|
|
16394
|
+
}
|
|
16395
|
+
.tf-policy-actions {
|
|
16396
|
+
display: inline-flex;
|
|
16397
|
+
flex-wrap: wrap;
|
|
16398
|
+
gap: 8px;
|
|
16399
|
+
}
|
|
16400
|
+
|
|
16401
|
+
/* CoverageMatrix */
|
|
16402
|
+
.tf-coverage {
|
|
16403
|
+
display: flex;
|
|
16404
|
+
flex-direction: column;
|
|
16405
|
+
gap: 12px;
|
|
16406
|
+
min-width: 0;
|
|
16407
|
+
}
|
|
16408
|
+
.tf-coverage-sum {
|
|
16409
|
+
display: flex;
|
|
16410
|
+
flex-wrap: wrap;
|
|
16411
|
+
gap: 8px 16px;
|
|
13923
16412
|
}
|
|
13924
|
-
|
|
13925
|
-
|
|
13926
|
-
opacity: 0;
|
|
13927
|
-
translate: 0 calc(-40px * var(--motion-travel));
|
|
13928
|
-
}
|
|
16413
|
+
.tf-coverage-box {
|
|
16414
|
+
container: tf-coverage / inline-size;
|
|
13929
16415
|
}
|
|
13930
|
-
|
|
13931
|
-
|
|
13932
|
-
|
|
13933
|
-
translate: 0 calc(16px * var(--motion-travel));
|
|
13934
|
-
}
|
|
16416
|
+
.tf-coverage-table {
|
|
16417
|
+
width: 100%;
|
|
16418
|
+
border-collapse: collapse;
|
|
13935
16419
|
}
|
|
13936
|
-
|
|
13937
|
-
|
|
16420
|
+
.tf-coverage-table th,
|
|
16421
|
+
.tf-coverage-table td {
|
|
16422
|
+
padding: 10px 8px;
|
|
16423
|
+
border-top: 1px solid var(--line);
|
|
16424
|
+
text-align: left;
|
|
16425
|
+
vertical-align: middle;
|
|
13938
16426
|
}
|
|
13939
|
-
.tf-
|
|
13940
|
-
|
|
13941
|
-
.tf-modal-wrap[data-closing] .tf-modal,
|
|
13942
|
-
.tf-overlay[data-closing] :is(.tf-modal, .tf-confirm),
|
|
13943
|
-
.tf-palette-wrap[data-closing] .tf-palette {
|
|
13944
|
-
animation: tf-out var(--dur-exit) var(--ease-in-out) forwards;
|
|
16427
|
+
.tf-coverage-table th {
|
|
16428
|
+
font-weight: inherit;
|
|
13945
16429
|
}
|
|
13946
|
-
.tf-
|
|
13947
|
-
|
|
13948
|
-
|
|
13949
|
-
.tf-palette-wrap[data-closing],
|
|
13950
|
-
.tf-drawer-wrap[data-closing] {
|
|
13951
|
-
animation: tf-out-fade var(--dur-exit) var(--ease-in-out) forwards;
|
|
16430
|
+
.tf-coverage-table th b {
|
|
16431
|
+
display: block;
|
|
16432
|
+
font: 500 14px/20px var(--font-sans);
|
|
13952
16433
|
}
|
|
13953
|
-
.tf-
|
|
13954
|
-
|
|
16434
|
+
.tf-coverage-table th small {
|
|
16435
|
+
font: 500 12px/16px var(--font-sans);
|
|
16436
|
+
color: var(--ink-muted);
|
|
13955
16437
|
}
|
|
13956
|
-
.tf-
|
|
13957
|
-
|
|
16438
|
+
.tf-coverage-table td:nth-child(2) {
|
|
16439
|
+
white-space: nowrap;
|
|
13958
16440
|
}
|
|
13959
|
-
.tf-
|
|
13960
|
-
|
|
16441
|
+
.tf-coverage-note {
|
|
16442
|
+
font: 500 13px/18px var(--font-sans);
|
|
16443
|
+
color: var(--ink-muted);
|
|
13961
16444
|
}
|
|
13962
|
-
.tf-
|
|
13963
|
-
|
|
13964
|
-
animation: tf-out-down var(--dur-exit) var(--ease-in-out) forwards;
|
|
16445
|
+
.tf-coverage-table tr.is-none th b {
|
|
16446
|
+
color: var(--blush-ink);
|
|
13965
16447
|
}
|
|
13966
|
-
|
|
13967
|
-
|
|
13968
|
-
.tf-
|
|
13969
|
-
.tf-
|
|
13970
|
-
|
|
16448
|
+
/* narrow: each risk becomes a block, its status top right, the note underneath */
|
|
16449
|
+
@container tf-coverage (max-width: 440px) {
|
|
16450
|
+
.tf-coverage-table,
|
|
16451
|
+
.tf-coverage-table tbody {
|
|
16452
|
+
display: block;
|
|
16453
|
+
}
|
|
16454
|
+
.tf-coverage-table tr {
|
|
16455
|
+
display: grid;
|
|
16456
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
16457
|
+
gap: 4px 12px;
|
|
16458
|
+
padding: 10px 4px;
|
|
16459
|
+
border-top: 1px solid var(--line);
|
|
16460
|
+
}
|
|
16461
|
+
.tf-coverage-table th,
|
|
16462
|
+
.tf-coverage-table td {
|
|
16463
|
+
padding: 0;
|
|
16464
|
+
border-top: 0;
|
|
16465
|
+
}
|
|
16466
|
+
.tf-coverage-table td.tf-coverage-note {
|
|
16467
|
+
grid-column: 1 / -1;
|
|
16468
|
+
}
|
|
13971
16469
|
}
|
|
13972
16470
|
|
|
13973
|
-
/*
|
|
13974
|
-
|
|
13975
|
-
|
|
13976
|
-
|
|
13977
|
-
|
|
13978
|
-
|
|
16471
|
+
/* ClaimTimeline */
|
|
16472
|
+
.tf-claim {
|
|
16473
|
+
display: flex;
|
|
16474
|
+
flex-direction: column;
|
|
16475
|
+
gap: 16px;
|
|
16476
|
+
min-width: 0;
|
|
13979
16477
|
}
|
|
13980
|
-
|
|
13981
|
-
|
|
13982
|
-
|
|
13983
|
-
|
|
13984
|
-
|
|
16478
|
+
.tf-claim-head {
|
|
16479
|
+
display: flex;
|
|
16480
|
+
flex-wrap: wrap;
|
|
16481
|
+
align-items: flex-start;
|
|
16482
|
+
justify-content: space-between;
|
|
16483
|
+
gap: 12px;
|
|
13985
16484
|
}
|
|
13986
|
-
|
|
13987
|
-
|
|
16485
|
+
.tf-claim-head .tf-option-text {
|
|
16486
|
+
padding: 0;
|
|
13988
16487
|
}
|
|
13989
|
-
|
|
13990
|
-
|
|
16488
|
+
.tf-claim-head b {
|
|
16489
|
+
font: 600 15px/20px var(--font-sans);
|
|
13991
16490
|
}
|
|
13992
|
-
|
|
13993
|
-
|
|
13994
|
-
|
|
13995
|
-
|
|
13996
|
-
|
|
13997
|
-
|
|
13998
|
-
to {
|
|
13999
|
-
filter: none;
|
|
14000
|
-
}
|
|
16491
|
+
.tf-claim-amount {
|
|
16492
|
+
display: flex;
|
|
16493
|
+
flex-direction: column;
|
|
16494
|
+
align-items: flex-end;
|
|
16495
|
+
font: 600 18px/24px var(--font-sans);
|
|
16496
|
+
font-variant-numeric: tabular-nums;
|
|
14001
16497
|
}
|
|
14002
|
-
|
|
14003
|
-
|
|
16498
|
+
.tf-claim-amount small {
|
|
16499
|
+
font: 500 11px/14px var(--font-sans);
|
|
16500
|
+
color: var(--ink-muted);
|
|
14004
16501
|
}
|
|
14005
|
-
|
|
14006
|
-
|
|
16502
|
+
.tf-claim-steps {
|
|
16503
|
+
display: flex;
|
|
16504
|
+
flex-direction: column;
|
|
14007
16505
|
}
|
|
14008
|
-
|
|
14009
|
-
/* 10-ambient.css */
|
|
14010
|
-
/* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
|
|
14011
|
-
/* Ambient: a calm, living background for glass UI. Soft colour fields from the kit (pastels in
|
|
14012
|
-
* Halo, a faint aurora in Pro) drift slowly; a photo or video can take their place under a scrim.
|
|
14013
|
-
* The drift only moves (transform), stops with motion off and pauses off screen.
|
|
14014
|
-
*/
|
|
14015
|
-
:where(:has(> .tf-ambient:not(.fixed))) {
|
|
16506
|
+
.tf-claim-steps li {
|
|
14016
16507
|
position: relative;
|
|
14017
|
-
|
|
16508
|
+
display: flex;
|
|
16509
|
+
gap: 12px;
|
|
16510
|
+
padding-bottom: 16px;
|
|
14018
16511
|
}
|
|
14019
|
-
.tf-
|
|
16512
|
+
.tf-claim-steps li:last-child {
|
|
16513
|
+
padding-bottom: 0;
|
|
16514
|
+
}
|
|
16515
|
+
.tf-claim-steps li:not(:last-child)::before {
|
|
16516
|
+
content: "";
|
|
14020
16517
|
position: absolute;
|
|
14021
|
-
|
|
14022
|
-
|
|
14023
|
-
|
|
14024
|
-
|
|
14025
|
-
|
|
16518
|
+
top: 20px;
|
|
16519
|
+
bottom: 0;
|
|
16520
|
+
left: 9px;
|
|
16521
|
+
width: 2px;
|
|
16522
|
+
background: var(--line);
|
|
14026
16523
|
}
|
|
14027
|
-
.tf-
|
|
14028
|
-
|
|
16524
|
+
.tf-claim-steps li.is-done:not(:last-child)::before {
|
|
16525
|
+
background: var(--mint-ink);
|
|
14029
16526
|
}
|
|
14030
|
-
.tf-
|
|
14031
|
-
position:
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
|
|
16527
|
+
.tf-claim-dot {
|
|
16528
|
+
position: relative;
|
|
16529
|
+
display: grid;
|
|
16530
|
+
place-items: center;
|
|
16531
|
+
flex: none;
|
|
16532
|
+
width: 20px;
|
|
16533
|
+
height: 20px;
|
|
16534
|
+
box-sizing: border-box;
|
|
16535
|
+
border: 2px solid var(--line-strong);
|
|
16536
|
+
border-radius: var(--radius-full);
|
|
16537
|
+
background: var(--surface);
|
|
16538
|
+
color: var(--primary-foreground);
|
|
14037
16539
|
}
|
|
14038
|
-
.tf-
|
|
14039
|
-
|
|
14040
|
-
|
|
16540
|
+
.tf-claim-steps li.is-done .tf-claim-dot {
|
|
16541
|
+
border-color: var(--mint-ink);
|
|
16542
|
+
background: var(--mint-ink);
|
|
14041
16543
|
}
|
|
14042
|
-
.tf-
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
animation-duration: 41s;
|
|
14046
|
-
animation-direction: alternate-reverse;
|
|
16544
|
+
.tf-claim-steps li.is-current .tf-claim-dot {
|
|
16545
|
+
border-color: var(--primary);
|
|
16546
|
+
box-shadow: 0 0 0 4px var(--accent);
|
|
14047
16547
|
}
|
|
14048
|
-
.tf-
|
|
14049
|
-
|
|
14050
|
-
|
|
14051
|
-
animation-duration: 47s;
|
|
16548
|
+
.tf-claim-steps li.is-failed .tf-claim-dot {
|
|
16549
|
+
border-color: var(--blush-ink);
|
|
16550
|
+
background: var(--blush-ink);
|
|
14052
16551
|
}
|
|
14053
|
-
.tf-
|
|
14054
|
-
|
|
14055
|
-
|
|
14056
|
-
|
|
14057
|
-
animation-direction: alternate-reverse;
|
|
16552
|
+
.tf-claim-text {
|
|
16553
|
+
display: flex;
|
|
16554
|
+
flex-direction: column;
|
|
16555
|
+
min-width: 0;
|
|
14058
16556
|
}
|
|
14059
|
-
.tf-
|
|
14060
|
-
|
|
14061
|
-
left: 30%;
|
|
14062
|
-
width: 55%;
|
|
14063
|
-
animation-duration: 52s;
|
|
16557
|
+
.tf-claim-text b {
|
|
16558
|
+
font: 500 14px/20px var(--font-sans);
|
|
14064
16559
|
}
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
scale: 1.15;
|
|
14069
|
-
}
|
|
16560
|
+
.tf-claim-steps li.is-todo .tf-claim-text b {
|
|
16561
|
+
color: var(--ink-muted);
|
|
16562
|
+
font-weight: 500;
|
|
14070
16563
|
}
|
|
14071
|
-
.tf-
|
|
14072
|
-
|
|
14073
|
-
|
|
16564
|
+
.tf-claim-text small {
|
|
16565
|
+
font: 500 12px/16px var(--font-sans);
|
|
16566
|
+
color: var(--ink-muted);
|
|
14074
16567
|
}
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
16568
|
+
|
|
16569
|
+
/* DocumentList */
|
|
16570
|
+
.tf-docs {
|
|
16571
|
+
display: flex;
|
|
16572
|
+
flex-direction: column;
|
|
16573
|
+
gap: 4px;
|
|
16574
|
+
min-width: 0;
|
|
16575
|
+
}
|
|
16576
|
+
.tf-doc {
|
|
16577
|
+
display: flex;
|
|
16578
|
+
flex-wrap: wrap;
|
|
16579
|
+
align-items: center;
|
|
16580
|
+
gap: 8px 12px;
|
|
14078
16581
|
width: 100%;
|
|
14079
|
-
|
|
14080
|
-
|
|
16582
|
+
padding: 10px 12px;
|
|
16583
|
+
box-sizing: border-box;
|
|
16584
|
+
border: 0;
|
|
16585
|
+
border-radius: var(--radius-md);
|
|
16586
|
+
background: transparent;
|
|
16587
|
+
color: var(--ink);
|
|
16588
|
+
font: inherit;
|
|
16589
|
+
text-align: left;
|
|
14081
16590
|
}
|
|
14082
|
-
.tf-
|
|
14083
|
-
|
|
14084
|
-
position: absolute;
|
|
14085
|
-
inset: 0;
|
|
14086
|
-
background: var(--ambient-scrim);
|
|
16591
|
+
button.tf-doc {
|
|
16592
|
+
cursor: pointer;
|
|
14087
16593
|
}
|
|
14088
|
-
|
|
14089
|
-
|
|
14090
|
-
animation: none;
|
|
14091
|
-
}
|
|
16594
|
+
button.tf-doc:hover {
|
|
16595
|
+
background: var(--accent);
|
|
14092
16596
|
}
|
|
14093
|
-
|
|
14094
|
-
|
|
16597
|
+
button.tf-doc:focus-visible {
|
|
16598
|
+
outline: 2px solid var(--focus);
|
|
16599
|
+
outline-offset: 2px;
|
|
16600
|
+
}
|
|
16601
|
+
.tf-doc-text {
|
|
16602
|
+
display: flex;
|
|
16603
|
+
flex: 1 1 160px;
|
|
16604
|
+
flex-direction: column;
|
|
16605
|
+
min-width: 0;
|
|
16606
|
+
}
|
|
16607
|
+
.tf-doc-text b {
|
|
16608
|
+
font: 500 14px/20px var(--font-sans);
|
|
16609
|
+
overflow-wrap: break-word;
|
|
16610
|
+
}
|
|
16611
|
+
.tf-doc-text small,
|
|
16612
|
+
.tf-doc-valid {
|
|
16613
|
+
font: 500 12px/16px var(--font-sans);
|
|
16614
|
+
color: var(--ink-muted);
|
|
14095
16615
|
}
|
|
14096
16616
|
|
|
14097
16617
|
/* 90-pro-look.css */
|
|
@@ -14510,6 +17030,14 @@ select.tf-input {
|
|
|
14510
17030
|
gap: var(--line-width);
|
|
14511
17031
|
box-shadow: 0 0 0 var(--line-width) var(--line);
|
|
14512
17032
|
}
|
|
17033
|
+
/* with the sidebar, the sidebar and the sheet sit side by side on the same hairline */
|
|
17034
|
+
.tf-shell.tf-shell-sidebar {
|
|
17035
|
+
padding: 0;
|
|
17036
|
+
gap: var(--line-width);
|
|
17037
|
+
}
|
|
17038
|
+
.tf-shell-sidebar > .tf-sidebar.shell {
|
|
17039
|
+
border-radius: 0;
|
|
17040
|
+
}
|
|
14513
17041
|
.tf-topbar,
|
|
14514
17042
|
.tf-shell .tf-topbar {
|
|
14515
17043
|
border-radius: 0;
|