@twentyfirstmedia/halo 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/ibm-plex-mono-latin-500-normal.woff +0 -0
- package/dist/fonts/og/ibm-plex-mono-latin-600-normal.woff +0 -0
- package/dist/fonts/og/plus-jakarta-sans-latin-400-normal.woff +0 -0
- package/dist/fonts/og/plus-jakarta-sans-latin-500-normal.woff +0 -0
- package/dist/fonts/og/plus-jakarta-sans-latin-600-normal.woff +0 -0
- package/dist/fonts/og/plus-jakarta-sans-latin-700-normal.woff +0 -0
- package/dist/fonts/og/plus-jakarta-sans-latin-800-normal.woff +0 -0
- package/dist/scoped.css +2655 -93
- package/dist/styles.css +2609 -86
- package/dist/tailwind.css +5 -0
- package/dist/tokens.css +30 -0
- package/dist/tokens.json +40 -0
- package/package.json +3 -2
package/dist/scoped.css
CHANGED
|
@@ -335,6 +335,11 @@
|
|
|
335
335
|
--chart-lilac: var(--lilac);
|
|
336
336
|
--chart-butter: var(--butter);
|
|
337
337
|
--chart-blush: var(--blush);
|
|
338
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
339
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
340
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
341
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
342
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
338
343
|
--ok: #2f5d16;
|
|
339
344
|
--ok-bg: #d6efc3;
|
|
340
345
|
--info: #1f4f8a;
|
|
@@ -483,6 +488,11 @@
|
|
|
483
488
|
--chart-lilac: var(--lilac-ink);
|
|
484
489
|
--chart-butter: var(--butter-ink);
|
|
485
490
|
--chart-blush: var(--blush-ink);
|
|
491
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
492
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
493
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
494
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
495
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
486
496
|
--ok: #a8db86;
|
|
487
497
|
--ok-bg: #24401a;
|
|
488
498
|
--info: #9cc6f7;
|
|
@@ -632,6 +642,11 @@
|
|
|
632
642
|
--chart-lilac: var(--lilac-ink);
|
|
633
643
|
--chart-butter: var(--butter-ink);
|
|
634
644
|
--chart-blush: var(--blush-ink);
|
|
645
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
646
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
647
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
648
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
649
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
635
650
|
--ok: #a8db86;
|
|
636
651
|
--ok-bg: #24401a;
|
|
637
652
|
--info: #9cc6f7;
|
|
@@ -781,6 +796,11 @@
|
|
|
781
796
|
--chart-lilac: var(--lilac);
|
|
782
797
|
--chart-butter: var(--butter);
|
|
783
798
|
--chart-blush: var(--blush);
|
|
799
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
800
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
801
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
802
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
803
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
784
804
|
--ok: #2f5d16;
|
|
785
805
|
--ok-bg: #d6efc3;
|
|
786
806
|
--info: #1f4f8a;
|
|
@@ -929,6 +949,11 @@
|
|
|
929
949
|
--chart-lilac: var(--lilac-ink);
|
|
930
950
|
--chart-butter: var(--butter-ink);
|
|
931
951
|
--chart-blush: var(--blush-ink);
|
|
952
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
953
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
954
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
955
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
956
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
932
957
|
--ok: #a8db86;
|
|
933
958
|
--ok-bg: #24401a;
|
|
934
959
|
--info: #9cc6f7;
|
|
@@ -1076,6 +1101,11 @@
|
|
|
1076
1101
|
--chart-lilac: var(--lilac);
|
|
1077
1102
|
--chart-butter: var(--butter);
|
|
1078
1103
|
--chart-blush: var(--blush);
|
|
1104
|
+
--ramp-1: color-mix(in oklab, var(--chart-1) 12%, var(--background));
|
|
1105
|
+
--ramp-2: color-mix(in oklab, var(--chart-1) 28%, var(--background));
|
|
1106
|
+
--ramp-3: color-mix(in oklab, var(--chart-1) 46%, var(--background));
|
|
1107
|
+
--ramp-4: color-mix(in oklab, var(--chart-1) 66%, var(--background));
|
|
1108
|
+
--ramp-5: color-mix(in oklab, var(--chart-1) 88%, var(--background));
|
|
1079
1109
|
--ok: #2f5d16;
|
|
1080
1110
|
--ok-bg: #d6efc3;
|
|
1081
1111
|
--info: #1f4f8a;
|
|
@@ -1620,7 +1650,8 @@
|
|
|
1620
1650
|
border-radius: var(--radius-pill);
|
|
1621
1651
|
background: var(--surface-sunken);
|
|
1622
1652
|
color: var(--ink-muted);
|
|
1623
|
-
min-width: 220px;
|
|
1653
|
+
min-width: min(220px, 100%);
|
|
1654
|
+
box-sizing: border-box;
|
|
1624
1655
|
}
|
|
1625
1656
|
:where([data-kit="halo"]) .tf-search input {
|
|
1626
1657
|
border: 0;
|
|
@@ -1629,6 +1660,7 @@
|
|
|
1629
1660
|
font: 500 14px/20px var(--font-sans);
|
|
1630
1661
|
color: var(--ink);
|
|
1631
1662
|
width: 100%;
|
|
1663
|
+
min-width: 0;
|
|
1632
1664
|
}
|
|
1633
1665
|
:where([data-kit="halo"]) .tf-search input::placeholder {
|
|
1634
1666
|
color: var(--ink-subtle);
|
|
@@ -1710,7 +1742,7 @@
|
|
|
1710
1742
|
display: flex;
|
|
1711
1743
|
}
|
|
1712
1744
|
:where([data-kit="halo"]) .tf-tabs-block .tf-tab {
|
|
1713
|
-
flex: 1;
|
|
1745
|
+
flex: 1 1 0;
|
|
1714
1746
|
}
|
|
1715
1747
|
|
|
1716
1748
|
/* StatTile */
|
|
@@ -2027,6 +2059,36 @@
|
|
|
2027
2059
|
background: var(--accent);
|
|
2028
2060
|
color: var(--accent-foreground);
|
|
2029
2061
|
}
|
|
2062
|
+
/* expanded: names next to the icons (the sheet's first column follows the rail's width) */
|
|
2063
|
+
:where([data-kit="halo"]) .tf-rail {
|
|
2064
|
+
transition: width var(--dur-base) var(--ease-out);
|
|
2065
|
+
}
|
|
2066
|
+
:where([data-kit="halo"]) .tf-rail.expanded {
|
|
2067
|
+
width: 200px;
|
|
2068
|
+
}
|
|
2069
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-rail-group {
|
|
2070
|
+
align-items: stretch;
|
|
2071
|
+
}
|
|
2072
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-rail-btn {
|
|
2073
|
+
display: flex;
|
|
2074
|
+
align-items: center;
|
|
2075
|
+
gap: 12px;
|
|
2076
|
+
width: 100%;
|
|
2077
|
+
padding: 0 10px;
|
|
2078
|
+
box-sizing: border-box;
|
|
2079
|
+
border-radius: var(--radius-pill);
|
|
2080
|
+
}
|
|
2081
|
+
:where([data-kit="halo"]) .tf-rail-label {
|
|
2082
|
+
min-width: 0;
|
|
2083
|
+
overflow: hidden;
|
|
2084
|
+
text-overflow: ellipsis;
|
|
2085
|
+
white-space: nowrap;
|
|
2086
|
+
font: 600 13px/18px var(--font-sans);
|
|
2087
|
+
}
|
|
2088
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-dotcount {
|
|
2089
|
+
position: static;
|
|
2090
|
+
margin-left: auto;
|
|
2091
|
+
}
|
|
2030
2092
|
:where([data-kit="halo"]) .tf-rail-btn[aria-current="page"] {
|
|
2031
2093
|
background: var(--primary);
|
|
2032
2094
|
color: var(--primary-foreground);
|
|
@@ -2176,9 +2238,28 @@
|
|
|
2176
2238
|
:where([data-kit="halo"]) .tf-shell .tf-topbar {
|
|
2177
2239
|
padding: 0 var(--space-6);
|
|
2178
2240
|
}
|
|
2241
|
+
/* AppShell with navigation="sidebar": the labelled sidebar on the frame, the sheet beside it */
|
|
2242
|
+
:where([data-kit="halo"]) .tf-shell.tf-shell-sidebar {
|
|
2243
|
+
display: grid;
|
|
2244
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
2245
|
+
align-items: stretch;
|
|
2246
|
+
padding: 8px;
|
|
2247
|
+
}
|
|
2248
|
+
:where([data-kit="halo"]) .tf-shell-tools {
|
|
2249
|
+
display: flex;
|
|
2250
|
+
justify-content: flex-end;
|
|
2251
|
+
flex-wrap: wrap;
|
|
2252
|
+
gap: 8px;
|
|
2253
|
+
}
|
|
2254
|
+
:where([data-kit="halo"]) .tf-sheet.tf-sheet-norail {
|
|
2255
|
+
grid-template-columns: minmax(0, 1fr) 300px;
|
|
2256
|
+
}
|
|
2257
|
+
:where([data-kit="halo"]) .tf-sheet.tf-sheet-norail.tf-sheet-2 {
|
|
2258
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2259
|
+
}
|
|
2179
2260
|
:where([data-kit="halo"]) .tf-sheet {
|
|
2180
2261
|
display: grid;
|
|
2181
|
-
grid-template-columns:
|
|
2262
|
+
grid-template-columns: auto 1fr 300px;
|
|
2182
2263
|
gap: var(--space-6);
|
|
2183
2264
|
padding: var(--space-6);
|
|
2184
2265
|
background: var(--canvas);
|
|
@@ -2695,6 +2776,64 @@
|
|
|
2695
2776
|
background: var(--accent);
|
|
2696
2777
|
color: var(--accent-foreground);
|
|
2697
2778
|
}
|
|
2779
|
+
:where([data-kit="halo"]) a.tf-row-item {
|
|
2780
|
+
text-decoration: none;
|
|
2781
|
+
}
|
|
2782
|
+
:where([data-kit="halo"]) .tf-row-text {
|
|
2783
|
+
min-width: 0;
|
|
2784
|
+
}
|
|
2785
|
+
/* not interactive: no hover, no pointer */
|
|
2786
|
+
:where([data-kit="halo"]) .tf-row-item.static {
|
|
2787
|
+
cursor: default;
|
|
2788
|
+
}
|
|
2789
|
+
:where([data-kit="halo"]) .tf-row-item.static:hover {
|
|
2790
|
+
background: transparent;
|
|
2791
|
+
color: var(--ink);
|
|
2792
|
+
}
|
|
2793
|
+
/* own buttons: the title is the link or button and its hit area stretches over the row */
|
|
2794
|
+
:where([data-kit="halo"]) .tf-row-item.has-hit {
|
|
2795
|
+
position: relative;
|
|
2796
|
+
}
|
|
2797
|
+
:where([data-kit="halo"]) .tf-row-item.has-hit:hover {
|
|
2798
|
+
background: transparent;
|
|
2799
|
+
color: var(--ink);
|
|
2800
|
+
}
|
|
2801
|
+
:where([data-kit="halo"]) .tf-row-item.has-hit:has(.tf-row-hit:hover) {
|
|
2802
|
+
background: var(--accent);
|
|
2803
|
+
color: var(--accent-foreground);
|
|
2804
|
+
}
|
|
2805
|
+
:where([data-kit="halo"]) .tf-row-item.has-hit:has(.tf-row-hit:focus-visible) {
|
|
2806
|
+
outline: 2px solid var(--focus);
|
|
2807
|
+
outline-offset: 2px;
|
|
2808
|
+
}
|
|
2809
|
+
:where([data-kit="halo"]) .tf-row-hit {
|
|
2810
|
+
display: block;
|
|
2811
|
+
padding: 0;
|
|
2812
|
+
border: 0;
|
|
2813
|
+
background: none;
|
|
2814
|
+
color: inherit;
|
|
2815
|
+
font: inherit;
|
|
2816
|
+
text-align: left;
|
|
2817
|
+
text-decoration: none;
|
|
2818
|
+
cursor: pointer;
|
|
2819
|
+
outline: none;
|
|
2820
|
+
}
|
|
2821
|
+
:where([data-kit="halo"]) .tf-row-hit::after {
|
|
2822
|
+
content: "";
|
|
2823
|
+
position: absolute;
|
|
2824
|
+
inset: 0;
|
|
2825
|
+
border-radius: inherit;
|
|
2826
|
+
}
|
|
2827
|
+
:where([data-kit="halo"]) .tf-row-item.has-actions {
|
|
2828
|
+
grid-template-columns: auto 1fr auto auto;
|
|
2829
|
+
}
|
|
2830
|
+
:where([data-kit="halo"]) .tf-row-actions {
|
|
2831
|
+
position: relative;
|
|
2832
|
+
z-index: 1;
|
|
2833
|
+
display: flex;
|
|
2834
|
+
align-items: center;
|
|
2835
|
+
gap: 4px;
|
|
2836
|
+
}
|
|
2698
2837
|
:where([data-kit="halo"]) .tf-row-item[aria-current="true"] {
|
|
2699
2838
|
background: var(--surface);
|
|
2700
2839
|
box-shadow: var(--shadow-card);
|
|
@@ -2706,12 +2845,27 @@
|
|
|
2706
2845
|
gap: 8px;
|
|
2707
2846
|
}
|
|
2708
2847
|
:where([data-kit="halo"]) .tf-row-sub {
|
|
2848
|
+
display: block;
|
|
2709
2849
|
font: 500 13px/18px var(--font-sans);
|
|
2710
2850
|
color: var(--ink-muted);
|
|
2711
2851
|
white-space: nowrap;
|
|
2712
2852
|
overflow: hidden;
|
|
2713
2853
|
text-overflow: ellipsis;
|
|
2714
2854
|
}
|
|
2855
|
+
/* titleLines / subtitleLines: wrap, then end in an ellipsis after that many lines */
|
|
2856
|
+
:where([data-kit="halo"]) .tf-row-sub.clamp,
|
|
2857
|
+
:where([data-kit="halo"]) .tf-row-clamp {
|
|
2858
|
+
display: -webkit-box;
|
|
2859
|
+
-webkit-box-orient: vertical;
|
|
2860
|
+
-webkit-line-clamp: var(--lines, 2);
|
|
2861
|
+
line-clamp: var(--lines, 2);
|
|
2862
|
+
white-space: normal;
|
|
2863
|
+
overflow: hidden;
|
|
2864
|
+
min-width: 0;
|
|
2865
|
+
}
|
|
2866
|
+
:where([data-kit="halo"]) .tf-row-title.clamp {
|
|
2867
|
+
align-items: flex-start;
|
|
2868
|
+
}
|
|
2715
2869
|
:where([data-kit="halo"]) .tf-row-meta {
|
|
2716
2870
|
font: 600 12px/16px var(--font-sans);
|
|
2717
2871
|
color: var(--ink-muted);
|
|
@@ -2898,6 +3052,13 @@
|
|
|
2898
3052
|
font: 600 13px/1 var(--font-sans);
|
|
2899
3053
|
cursor: pointer;
|
|
2900
3054
|
}
|
|
3055
|
+
:where([data-kit="halo"]) a.tf-page {
|
|
3056
|
+
display: inline-flex;
|
|
3057
|
+
align-items: center;
|
|
3058
|
+
justify-content: center;
|
|
3059
|
+
box-sizing: border-box;
|
|
3060
|
+
text-decoration: none;
|
|
3061
|
+
}
|
|
2901
3062
|
:where([data-kit="halo"]) .tf-page:hover {
|
|
2902
3063
|
background: var(--accent);
|
|
2903
3064
|
color: var(--ink);
|
|
@@ -2908,18 +3069,42 @@
|
|
|
2908
3069
|
}
|
|
2909
3070
|
:where([data-kit="halo"]) .tf-crumbs {
|
|
2910
3071
|
display: flex;
|
|
3072
|
+
flex-wrap: wrap;
|
|
2911
3073
|
align-items: center;
|
|
2912
3074
|
gap: 6px;
|
|
3075
|
+
min-width: 0;
|
|
2913
3076
|
font: 600 13px/18px var(--font-sans);
|
|
2914
3077
|
color: var(--ink-muted);
|
|
2915
3078
|
}
|
|
2916
|
-
|
|
3079
|
+
/* links and buttons get a 24px target without moving the text */
|
|
3080
|
+
:where([data-kit="halo"]) .tf-crumb {
|
|
3081
|
+
display: inline-flex;
|
|
3082
|
+
align-items: center;
|
|
3083
|
+
min-height: 24px;
|
|
3084
|
+
max-width: 100%;
|
|
3085
|
+
padding: 0 4px;
|
|
3086
|
+
/* the target grows to 24px around the 18px line without moving the text */
|
|
3087
|
+
margin: -3px -4px;
|
|
3088
|
+
border: 0;
|
|
3089
|
+
border-radius: var(--radius-sm);
|
|
3090
|
+
background: none;
|
|
2917
3091
|
color: inherit;
|
|
3092
|
+
font: inherit;
|
|
2918
3093
|
text-decoration: none;
|
|
3094
|
+
overflow-wrap: anywhere;
|
|
3095
|
+
}
|
|
3096
|
+
:where([data-kit="halo"]) a.tf-crumb,
|
|
3097
|
+
:where([data-kit="halo"]) button.tf-crumb {
|
|
3098
|
+
cursor: pointer;
|
|
2919
3099
|
}
|
|
2920
|
-
:where([data-kit="halo"]) .tf-
|
|
3100
|
+
:where([data-kit="halo"]) a.tf-crumb:hover,
|
|
3101
|
+
:where([data-kit="halo"]) button.tf-crumb:hover {
|
|
2921
3102
|
color: var(--ink);
|
|
2922
3103
|
}
|
|
3104
|
+
:where([data-kit="halo"]) .tf-crumb:focus-visible {
|
|
3105
|
+
outline: 2px solid var(--focus);
|
|
3106
|
+
outline-offset: 0;
|
|
3107
|
+
}
|
|
2923
3108
|
:where([data-kit="halo"]) .tf-crumbs [aria-current] {
|
|
2924
3109
|
color: var(--ink);
|
|
2925
3110
|
}
|
|
@@ -2961,7 +3146,7 @@
|
|
|
2961
3146
|
cursor: pointer;
|
|
2962
3147
|
}
|
|
2963
3148
|
:where([data-kit="halo"]) .tf-sheet-2 {
|
|
2964
|
-
grid-template-columns:
|
|
3149
|
+
grid-template-columns: auto 1fr;
|
|
2965
3150
|
}
|
|
2966
3151
|
:where([data-kit="halo"]) .tf-main {
|
|
2967
3152
|
display: flex;
|
|
@@ -3034,6 +3219,26 @@
|
|
|
3034
3219
|
justify-content: center;
|
|
3035
3220
|
}
|
|
3036
3221
|
}
|
|
3222
|
+
/* the TopBar measured that the labels do not fit: icons only, at any width */
|
|
3223
|
+
:where([data-kit="halo"]) .tf-nav.tight .tf-nav-label {
|
|
3224
|
+
display: none;
|
|
3225
|
+
}
|
|
3226
|
+
:where([data-kit="halo"]) .tf-nav.tight .tf-nav-item {
|
|
3227
|
+
position: relative;
|
|
3228
|
+
width: 36px;
|
|
3229
|
+
padding: 0;
|
|
3230
|
+
justify-content: center;
|
|
3231
|
+
}
|
|
3232
|
+
:where([data-kit="halo"]) .tf-nav.tight .tf-nav-item .tf-nav-count {
|
|
3233
|
+
position: absolute;
|
|
3234
|
+
top: -2px;
|
|
3235
|
+
right: -4px;
|
|
3236
|
+
min-width: 16px;
|
|
3237
|
+
height: 16px;
|
|
3238
|
+
padding: 0 4px;
|
|
3239
|
+
font-size: 10px;
|
|
3240
|
+
line-height: 16px;
|
|
3241
|
+
}
|
|
3037
3242
|
:where([data-kit="halo"]) .tf-main {
|
|
3038
3243
|
animation: none;
|
|
3039
3244
|
}
|
|
@@ -3159,6 +3364,19 @@
|
|
|
3159
3364
|
:where([data-kit="halo"]) .tf-user-text {
|
|
3160
3365
|
display: flex;
|
|
3161
3366
|
flex-direction: column;
|
|
3367
|
+
min-width: 0;
|
|
3368
|
+
max-width: 200px;
|
|
3369
|
+
}
|
|
3370
|
+
/* a long name or address ends in an ellipsis instead of pushing the nav out (title has it whole) */
|
|
3371
|
+
:where([data-kit="halo"]) .tf-user-name,
|
|
3372
|
+
:where([data-kit="halo"]) .tf-user-mail {
|
|
3373
|
+
overflow: hidden;
|
|
3374
|
+
text-overflow: ellipsis;
|
|
3375
|
+
white-space: nowrap;
|
|
3376
|
+
}
|
|
3377
|
+
:where([data-kit="halo"]) .tf-user {
|
|
3378
|
+
min-width: 0;
|
|
3379
|
+
flex-shrink: 1;
|
|
3162
3380
|
}
|
|
3163
3381
|
|
|
3164
3382
|
/* Checkbox: real box + SVG check (no pseudo-elements on the input) */
|
|
@@ -3171,9 +3389,12 @@
|
|
|
3171
3389
|
}
|
|
3172
3390
|
:where([data-kit="halo"]) .tf-checkbox input {
|
|
3173
3391
|
position: absolute;
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3392
|
+
/* the box keeps its size; the hit area is at least 24px (WCAG 2.2 target size) */
|
|
3393
|
+
top: 50%;
|
|
3394
|
+
left: 50%;
|
|
3395
|
+
translate: -50% -50%;
|
|
3396
|
+
width: max(24px, 100%);
|
|
3397
|
+
height: max(24px, 100%);
|
|
3177
3398
|
margin: 0;
|
|
3178
3399
|
opacity: 0;
|
|
3179
3400
|
cursor: pointer;
|
|
@@ -4247,6 +4468,23 @@
|
|
|
4247
4468
|
font: 600 13px/18px var(--font-sans);
|
|
4248
4469
|
pointer-events: none;
|
|
4249
4470
|
}
|
|
4471
|
+
/* an interactive control at the end (reveal password, clear, copy) */
|
|
4472
|
+
:where([data-kit="halo"]) .tf-input-action {
|
|
4473
|
+
position: absolute;
|
|
4474
|
+
right: 4px;
|
|
4475
|
+
top: 50%;
|
|
4476
|
+
transform: translateY(-50%);
|
|
4477
|
+
display: inline-flex;
|
|
4478
|
+
}
|
|
4479
|
+
:where([data-kit="halo"]) .tf-inputwrap.has-action .tf-input {
|
|
4480
|
+
padding-right: 44px;
|
|
4481
|
+
}
|
|
4482
|
+
:where([data-kit="halo"]) .tf-inputwrap.has-action.has-suffix .tf-input {
|
|
4483
|
+
padding-right: 72px;
|
|
4484
|
+
}
|
|
4485
|
+
:where([data-kit="halo"]) .tf-inputwrap.has-action .tf-input-suffix {
|
|
4486
|
+
right: 44px;
|
|
4487
|
+
}
|
|
4250
4488
|
:where([data-kit="halo"]) .tf-input-suffix.err {
|
|
4251
4489
|
color: var(--blush-ink);
|
|
4252
4490
|
}
|
|
@@ -4406,7 +4644,7 @@
|
|
|
4406
4644
|
display: flex;
|
|
4407
4645
|
}
|
|
4408
4646
|
:where([data-kit="halo"]) .tf-seg.block .tf-seg-item {
|
|
4409
|
-
flex: 1;
|
|
4647
|
+
flex: 1 1 0;
|
|
4410
4648
|
}
|
|
4411
4649
|
:where([data-kit="halo"]) .tf-seg-item {
|
|
4412
4650
|
position: relative;
|
|
@@ -5018,6 +5256,10 @@
|
|
|
5018
5256
|
border-color var(--dur-fast) ease,
|
|
5019
5257
|
background-color var(--dur-fast) ease;
|
|
5020
5258
|
}
|
|
5259
|
+
:where([data-kit="halo"]) .tf-drop.disabled {
|
|
5260
|
+
opacity: 0.5;
|
|
5261
|
+
cursor: not-allowed;
|
|
5262
|
+
}
|
|
5021
5263
|
:where([data-kit="halo"]) .tf-drop b {
|
|
5022
5264
|
font: 600 14px/20px var(--font-sans);
|
|
5023
5265
|
margin-top: 4px;
|
|
@@ -5080,6 +5322,7 @@
|
|
|
5080
5322
|
/* Alert, confirm, toaster */
|
|
5081
5323
|
:where([data-kit="halo"]) .tf-alert {
|
|
5082
5324
|
display: flex;
|
|
5325
|
+
flex-wrap: wrap;
|
|
5083
5326
|
align-items: flex-start;
|
|
5084
5327
|
gap: 12px;
|
|
5085
5328
|
padding: 12px 12px 12px 16px;
|
|
@@ -5123,7 +5366,8 @@
|
|
|
5123
5366
|
color: var(--lilac-ink);
|
|
5124
5367
|
}
|
|
5125
5368
|
:where([data-kit="halo"]) .tf-alert-body {
|
|
5126
|
-
|
|
5369
|
+
/* when the alert is too narrow for text and actions, the actions move to their own line */
|
|
5370
|
+
flex: 1 1 200px;
|
|
5127
5371
|
min-width: 0;
|
|
5128
5372
|
display: flex;
|
|
5129
5373
|
flex-direction: column;
|
|
@@ -5139,8 +5383,11 @@
|
|
|
5139
5383
|
:where([data-kit="halo"]) .tf-alert-actions {
|
|
5140
5384
|
flex: none;
|
|
5141
5385
|
display: flex;
|
|
5386
|
+
flex-wrap: wrap;
|
|
5142
5387
|
align-items: center;
|
|
5143
5388
|
gap: 4px;
|
|
5389
|
+
max-width: 100%;
|
|
5390
|
+
margin-left: auto;
|
|
5144
5391
|
}
|
|
5145
5392
|
:where([data-kit="halo"]) .tf-alert .tf-iconbtn-ghost {
|
|
5146
5393
|
background: transparent;
|
|
@@ -6149,14 +6396,29 @@
|
|
|
6149
6396
|
display: inline-flex;
|
|
6150
6397
|
align-items: center;
|
|
6151
6398
|
gap: 8px;
|
|
6152
|
-
|
|
6153
|
-
|
|
6399
|
+
/* grows with a long title (two lines at most) instead of spilling over */
|
|
6400
|
+
min-height: 32px;
|
|
6401
|
+
box-sizing: border-box;
|
|
6402
|
+
padding: 4px 12px 4px 4px;
|
|
6154
6403
|
border-radius: var(--radius-pill);
|
|
6155
6404
|
background: var(--surface-sunken);
|
|
6156
6405
|
color: var(--ink);
|
|
6157
6406
|
text-decoration: none;
|
|
6158
6407
|
font: 600 12px/16px var(--font-sans);
|
|
6159
|
-
max-width: 260px;
|
|
6408
|
+
max-width: min(260px, 100%);
|
|
6409
|
+
}
|
|
6410
|
+
:where([data-kit="halo"]) .tf-source-title {
|
|
6411
|
+
min-width: 0;
|
|
6412
|
+
display: -webkit-box;
|
|
6413
|
+
-webkit-box-orient: vertical;
|
|
6414
|
+
-webkit-line-clamp: 2;
|
|
6415
|
+
line-clamp: 2;
|
|
6416
|
+
overflow: hidden;
|
|
6417
|
+
overflow-wrap: anywhere;
|
|
6418
|
+
}
|
|
6419
|
+
:where([data-kit="halo"]) .tf-source > .tf-ico,
|
|
6420
|
+
:where([data-kit="halo"]) .tf-source-n {
|
|
6421
|
+
flex: none;
|
|
6160
6422
|
}
|
|
6161
6423
|
:where([data-kit="halo"]) .tf-source:hover {
|
|
6162
6424
|
background: var(--line);
|
|
@@ -7279,17 +7541,25 @@
|
|
|
7279
7541
|
color: var(--ink-muted);
|
|
7280
7542
|
}
|
|
7281
7543
|
:where([data-kit="halo"]) .tf-csteps {
|
|
7544
|
+
/* one row at every width: steps shrink to their numbers instead of wrapping */
|
|
7545
|
+
container: tf-csteps / inline-size;
|
|
7282
7546
|
display: flex;
|
|
7283
7547
|
gap: 8px;
|
|
7284
7548
|
margin: 0;
|
|
7285
7549
|
padding: 0;
|
|
7286
7550
|
list-style: none;
|
|
7287
|
-
flex-wrap: wrap;
|
|
7288
7551
|
}
|
|
7289
7552
|
:where([data-kit="halo"]) .tf-csteps li {
|
|
7290
7553
|
display: flex;
|
|
7291
7554
|
align-items: center;
|
|
7292
7555
|
gap: 8px;
|
|
7556
|
+
min-width: 0;
|
|
7557
|
+
}
|
|
7558
|
+
:where([data-kit="halo"]) .tf-cstep-label {
|
|
7559
|
+
min-width: 0;
|
|
7560
|
+
overflow: hidden;
|
|
7561
|
+
text-overflow: ellipsis;
|
|
7562
|
+
white-space: nowrap;
|
|
7293
7563
|
}
|
|
7294
7564
|
:where([data-kit="halo"]) .tf-csteps li + li::before {
|
|
7295
7565
|
content: "";
|
|
@@ -7318,6 +7588,40 @@
|
|
|
7318
7588
|
:where([data-kit="halo"]) .tf-csteps button:disabled {
|
|
7319
7589
|
cursor: default;
|
|
7320
7590
|
}
|
|
7591
|
+
:where([data-kit="halo"]) .tf-csteps button {
|
|
7592
|
+
min-width: 0;
|
|
7593
|
+
max-width: 100%;
|
|
7594
|
+
}
|
|
7595
|
+
:where([data-kit="halo"]) .tf-csteps.compact li:not(.cur) .tf-cstep-label {
|
|
7596
|
+
position: absolute;
|
|
7597
|
+
width: 1px;
|
|
7598
|
+
height: 1px;
|
|
7599
|
+
overflow: hidden;
|
|
7600
|
+
clip-path: inset(50%);
|
|
7601
|
+
white-space: nowrap;
|
|
7602
|
+
}
|
|
7603
|
+
:where([data-kit="halo"]) .tf-csteps.compact li:not(.cur) button {
|
|
7604
|
+
padding: 0 4px;
|
|
7605
|
+
}
|
|
7606
|
+
:where([data-kit="halo"]) .tf-csteps.compact li + li::before {
|
|
7607
|
+
width: 12px;
|
|
7608
|
+
}
|
|
7609
|
+
@container tf-csteps (max-width: 560px) {
|
|
7610
|
+
:where([data-kit="halo"]) .tf-csteps li:not(.cur) .tf-cstep-label {
|
|
7611
|
+
position: absolute;
|
|
7612
|
+
width: 1px;
|
|
7613
|
+
height: 1px;
|
|
7614
|
+
overflow: hidden;
|
|
7615
|
+
clip-path: inset(50%);
|
|
7616
|
+
white-space: nowrap;
|
|
7617
|
+
}
|
|
7618
|
+
:where([data-kit="halo"]) .tf-csteps li:not(.cur) button {
|
|
7619
|
+
padding: 0 4px;
|
|
7620
|
+
}
|
|
7621
|
+
:where([data-kit="halo"]) .tf-csteps li + li::before {
|
|
7622
|
+
width: 12px;
|
|
7623
|
+
}
|
|
7624
|
+
}
|
|
7321
7625
|
:where([data-kit="halo"]) .tf-csteps li.cur button {
|
|
7322
7626
|
background: var(--surface);
|
|
7323
7627
|
color: var(--ink);
|
|
@@ -7484,7 +7788,7 @@
|
|
|
7484
7788
|
color: var(--on-frame);
|
|
7485
7789
|
box-shadow: var(--shadow-float);
|
|
7486
7790
|
}
|
|
7487
|
-
:where([data-kit="halo"]) .tf-plan.featured .tf-plan-head span,
|
|
7791
|
+
:where([data-kit="halo"]) .tf-plan.featured .tf-plan-head span:not(.tf-badge),
|
|
7488
7792
|
:where([data-kit="halo"]) .tf-plan.featured .tf-plan-price span,
|
|
7489
7793
|
:where([data-kit="halo"]) .tf-plan.featured .tf-plan-price s,
|
|
7490
7794
|
:where([data-kit="halo"]) .tf-plan.featured .tf-plan-feats li.no {
|
|
@@ -7515,10 +7819,22 @@
|
|
|
7515
7819
|
:where([data-kit="halo"]) .tf-plan-head b {
|
|
7516
7820
|
font: 700 20px/26px var(--font-sans);
|
|
7517
7821
|
}
|
|
7518
|
-
:where([data-kit="halo"]) .tf-plan-head span {
|
|
7822
|
+
:where([data-kit="halo"]) .tf-plan-head span:not(.tf-badge) {
|
|
7519
7823
|
font: 500 13px/18px var(--font-sans);
|
|
7520
7824
|
color: var(--ink-muted);
|
|
7521
7825
|
}
|
|
7826
|
+
/* "Current plan" next to the name, and the note under the price */
|
|
7827
|
+
:where([data-kit="halo"]) .tf-plan-head .tf-plan-current {
|
|
7828
|
+
align-self: flex-start;
|
|
7829
|
+
}
|
|
7830
|
+
:where([data-kit="halo"]) .tf-plan-note {
|
|
7831
|
+
margin: -4px 0 0;
|
|
7832
|
+
font: 500 12px/16px var(--font-sans);
|
|
7833
|
+
color: var(--ink-muted);
|
|
7834
|
+
}
|
|
7835
|
+
:where([data-kit="halo"]) a.tf-plan-cta {
|
|
7836
|
+
text-decoration: none;
|
|
7837
|
+
}
|
|
7522
7838
|
:where([data-kit="halo"]) .tf-plan-price {
|
|
7523
7839
|
display: flex;
|
|
7524
7840
|
align-items: baseline;
|
|
@@ -9623,7 +9939,7 @@
|
|
|
9623
9939
|
:where([data-kit="halo"]) .tf-tabbar {
|
|
9624
9940
|
display: grid;
|
|
9625
9941
|
grid-auto-flow: column;
|
|
9626
|
-
grid-auto-columns: 1fr;
|
|
9942
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
9627
9943
|
padding: 4px 8px calc(4px + env(safe-area-inset-bottom, 0px));
|
|
9628
9944
|
background: var(--frame);
|
|
9629
9945
|
border-radius: 24px 24px 0 0;
|
|
@@ -9642,6 +9958,17 @@
|
|
|
9642
9958
|
cursor: pointer;
|
|
9643
9959
|
border-radius: 16px;
|
|
9644
9960
|
}
|
|
9961
|
+
:where([data-kit="halo"]) .tf-tabbar-item {
|
|
9962
|
+
min-width: 0;
|
|
9963
|
+
}
|
|
9964
|
+
:where([data-kit="halo"]) .tf-tabbar-label {
|
|
9965
|
+
max-width: 100%;
|
|
9966
|
+
padding: 0 4px;
|
|
9967
|
+
box-sizing: border-box;
|
|
9968
|
+
overflow: hidden;
|
|
9969
|
+
text-overflow: ellipsis;
|
|
9970
|
+
white-space: nowrap;
|
|
9971
|
+
}
|
|
9645
9972
|
:where([data-kit="halo"]) .tf-tabbar-item.on {
|
|
9646
9973
|
color: var(--on-frame);
|
|
9647
9974
|
background: var(--frame-hover);
|
|
@@ -9953,6 +10280,22 @@
|
|
|
9953
10280
|
padding-bottom: 10px;
|
|
9954
10281
|
color: var(--ink-muted);
|
|
9955
10282
|
}
|
|
10283
|
+
/* in a narrow column (a filter sidebar) the number fields give their padding to the digits */
|
|
10284
|
+
:where([data-kit="halo"]) .tf-range {
|
|
10285
|
+
container: tf-range / inline-size;
|
|
10286
|
+
}
|
|
10287
|
+
@container tf-range (max-width: 280px) {
|
|
10288
|
+
:where([data-kit="halo"]) .tf-range-inputs {
|
|
10289
|
+
gap: 4px;
|
|
10290
|
+
}
|
|
10291
|
+
:where([data-kit="halo"]) .tf-range-num .tf-input {
|
|
10292
|
+
padding-left: 10px;
|
|
10293
|
+
padding-right: 24px;
|
|
10294
|
+
}
|
|
10295
|
+
:where([data-kit="halo"]) .tf-range-num > span {
|
|
10296
|
+
right: 10px;
|
|
10297
|
+
}
|
|
10298
|
+
}
|
|
9956
10299
|
:where([data-kit="halo"]) .tf-range-vals {
|
|
9957
10300
|
display: flex;
|
|
9958
10301
|
justify-content: space-between;
|
|
@@ -10106,6 +10449,31 @@
|
|
|
10106
10449
|
font: 500 12px/16px var(--font-sans);
|
|
10107
10450
|
color: var(--ink-muted);
|
|
10108
10451
|
}
|
|
10452
|
+
/* layout="list": compact rows */
|
|
10453
|
+
:where([data-kit="halo"]) .tf-tiles.list {
|
|
10454
|
+
grid-template-columns: minmax(0, 1fr);
|
|
10455
|
+
gap: 8px;
|
|
10456
|
+
}
|
|
10457
|
+
:where([data-kit="halo"]) .tf-tiles.list .tf-tile {
|
|
10458
|
+
flex-direction: row;
|
|
10459
|
+
align-items: center;
|
|
10460
|
+
gap: 12px;
|
|
10461
|
+
padding: 8px 44px 8px 8px;
|
|
10462
|
+
}
|
|
10463
|
+
:where([data-kit="halo"]) .tf-tiles.list .tf-tile-art {
|
|
10464
|
+
flex: none;
|
|
10465
|
+
width: 40px;
|
|
10466
|
+
height: 40px;
|
|
10467
|
+
aspect-ratio: auto;
|
|
10468
|
+
}
|
|
10469
|
+
:where([data-kit="halo"]) .tf-tiles.list .tf-tile-label {
|
|
10470
|
+
min-width: 0;
|
|
10471
|
+
padding: 0;
|
|
10472
|
+
}
|
|
10473
|
+
:where([data-kit="halo"]) .tf-tiles.list .tf-tile-check {
|
|
10474
|
+
top: 50%;
|
|
10475
|
+
translate: 0 -50%;
|
|
10476
|
+
}
|
|
10109
10477
|
:where([data-kit="halo"]) .tf-tile-check {
|
|
10110
10478
|
position: absolute;
|
|
10111
10479
|
top: 14px;
|
|
@@ -11215,6 +11583,16 @@
|
|
|
11215
11583
|
color: var(--paper-ink);
|
|
11216
11584
|
box-shadow: inset 0 0 0 1px var(--line);
|
|
11217
11585
|
}
|
|
11586
|
+
/* QrCode: dark modules on paper, in every theme (scanners expect dark on light) */
|
|
11587
|
+
:where([data-kit="halo"]) .tf-qr {
|
|
11588
|
+
display: block;
|
|
11589
|
+
width: 100%;
|
|
11590
|
+
height: auto;
|
|
11591
|
+
color: var(--paper-ink);
|
|
11592
|
+
}
|
|
11593
|
+
:where([data-kit="halo"]) .tf-qr-bg {
|
|
11594
|
+
fill: var(--paper);
|
|
11595
|
+
}
|
|
11218
11596
|
:where([data-kit="halo"]) .tf-2fa-qr > * {
|
|
11219
11597
|
max-width: 100%;
|
|
11220
11598
|
max-height: 100%;
|
|
@@ -11466,7 +11844,8 @@
|
|
|
11466
11844
|
border-radius: var(--radius-md);
|
|
11467
11845
|
overflow: hidden;
|
|
11468
11846
|
background: var(--surface-sunken);
|
|
11469
|
-
|
|
11847
|
+
/* sideways drags move the divider; the page still scrolls up and down over it */
|
|
11848
|
+
touch-action: pan-y;
|
|
11470
11849
|
user-select: none;
|
|
11471
11850
|
cursor: ew-resize;
|
|
11472
11851
|
}
|
|
@@ -12369,6 +12748,14 @@
|
|
|
12369
12748
|
:where([data-kit="halo"]) .tf-togglegroup .tf-toggle {
|
|
12370
12749
|
height: 32px;
|
|
12371
12750
|
}
|
|
12751
|
+
:where([data-kit="halo"]) .tf-togglegroup.block {
|
|
12752
|
+
display: flex;
|
|
12753
|
+
flex-wrap: nowrap;
|
|
12754
|
+
width: auto;
|
|
12755
|
+
}
|
|
12756
|
+
:where([data-kit="halo"]) .tf-togglegroup.block .tf-toggle {
|
|
12757
|
+
flex: 1 1 0;
|
|
12758
|
+
}
|
|
12372
12759
|
:where([data-kit="halo"]) .tf-togglegroup .tf-toggle.icon {
|
|
12373
12760
|
width: 32px;
|
|
12374
12761
|
}
|
|
@@ -12579,6 +12966,11 @@
|
|
|
12579
12966
|
text-align: left;
|
|
12580
12967
|
cursor: pointer;
|
|
12581
12968
|
}
|
|
12969
|
+
:where([data-kit="halo"]) .tf-selectmenu.sm {
|
|
12970
|
+
height: 32px;
|
|
12971
|
+
padding: 0 12px;
|
|
12972
|
+
font-size: 13px;
|
|
12973
|
+
}
|
|
12582
12974
|
:where([data-kit="halo"]) .tf-selectmenu.empty .tf-selectmenu-value {
|
|
12583
12975
|
color: var(--ink-subtle);
|
|
12584
12976
|
}
|
|
@@ -12855,26 +13247,44 @@
|
|
|
12855
13247
|
outline-offset: -2px;
|
|
12856
13248
|
}
|
|
12857
13249
|
|
|
12858
|
-
/* Sidebar */
|
|
13250
|
+
/* Sidebar: floating (a card), attached (flush with the screen's edge) or on the AppShell frame */
|
|
12859
13251
|
:where([data-kit="halo"]) .tf-sidebar {
|
|
12860
13252
|
display: flex;
|
|
12861
13253
|
flex-direction: column;
|
|
12862
|
-
|
|
13254
|
+
flex: none;
|
|
13255
|
+
gap: 12px;
|
|
12863
13256
|
width: 248px;
|
|
12864
13257
|
padding: 12px;
|
|
12865
13258
|
box-sizing: border-box;
|
|
12866
13259
|
border-radius: var(--radius-lg);
|
|
12867
13260
|
background: var(--surface);
|
|
12868
13261
|
box-shadow: var(--shadow-card);
|
|
13262
|
+
color: var(--ink);
|
|
12869
13263
|
transition: width var(--dur-base) var(--ease-out);
|
|
12870
13264
|
}
|
|
12871
13265
|
:where([data-kit="halo"]) .tf-sidebar.collapsed {
|
|
12872
13266
|
width: 64px;
|
|
12873
13267
|
}
|
|
13268
|
+
:where([data-kit="halo"]) .tf-sidebar.attached {
|
|
13269
|
+
align-self: stretch;
|
|
13270
|
+
min-height: 100%;
|
|
13271
|
+
border-radius: 0;
|
|
13272
|
+
box-shadow: none;
|
|
13273
|
+
background: var(--sidebar);
|
|
13274
|
+
border-right: 1px solid var(--sidebar-border);
|
|
13275
|
+
}
|
|
13276
|
+
:where([data-kit="halo"]) .tf-sidebar-head {
|
|
13277
|
+
display: flex;
|
|
13278
|
+
align-items: center;
|
|
13279
|
+
gap: 8px;
|
|
13280
|
+
min-height: 40px;
|
|
13281
|
+
padding: 0 4px;
|
|
13282
|
+
}
|
|
12874
13283
|
:where([data-kit="halo"]) .tf-sidebar-body {
|
|
12875
13284
|
display: flex;
|
|
12876
13285
|
flex-direction: column;
|
|
12877
|
-
|
|
13286
|
+
/* groups sit clearly apart; a label sits close to its own items */
|
|
13287
|
+
gap: 20px;
|
|
12878
13288
|
flex: 1;
|
|
12879
13289
|
min-height: 0;
|
|
12880
13290
|
overflow-y: auto;
|
|
@@ -12887,13 +13297,49 @@
|
|
|
12887
13297
|
padding: 0;
|
|
12888
13298
|
list-style: none;
|
|
12889
13299
|
}
|
|
13300
|
+
:where([data-kit="halo"]) .tf-sidebar-grouphead {
|
|
13301
|
+
display: flex;
|
|
13302
|
+
align-items: center;
|
|
13303
|
+
gap: 4px;
|
|
13304
|
+
min-height: 24px;
|
|
13305
|
+
margin-bottom: 8px;
|
|
13306
|
+
padding: 0 4px 0 12px;
|
|
13307
|
+
}
|
|
12890
13308
|
:where([data-kit="halo"]) .tf-sidebar-grouplabel {
|
|
12891
|
-
|
|
13309
|
+
display: flex;
|
|
13310
|
+
align-items: center;
|
|
13311
|
+
gap: 4px;
|
|
13312
|
+
flex: 1;
|
|
13313
|
+
min-width: 0;
|
|
13314
|
+
padding: 0;
|
|
13315
|
+
border: 0;
|
|
13316
|
+
background: none;
|
|
12892
13317
|
font: 600 11px/14px var(--font-sans);
|
|
12893
13318
|
letter-spacing: 0.06em;
|
|
12894
13319
|
text-transform: uppercase;
|
|
13320
|
+
text-align: left;
|
|
12895
13321
|
color: var(--ink-muted);
|
|
12896
13322
|
}
|
|
13323
|
+
:where([data-kit="halo"]) button.tf-sidebar-grouplabel {
|
|
13324
|
+
cursor: pointer;
|
|
13325
|
+
}
|
|
13326
|
+
:where([data-kit="halo"]) button.tf-sidebar-grouplabel:hover {
|
|
13327
|
+
color: var(--ink);
|
|
13328
|
+
}
|
|
13329
|
+
:where([data-kit="halo"]) button.tf-sidebar-grouplabel:focus-visible {
|
|
13330
|
+
outline: 2px solid var(--focus);
|
|
13331
|
+
outline-offset: 2px;
|
|
13332
|
+
}
|
|
13333
|
+
:where([data-kit="halo"]) .tf-sidebar-grouplabel[aria-expanded="false"] .tf-sidebar-chev {
|
|
13334
|
+
transform: rotate(-90deg);
|
|
13335
|
+
}
|
|
13336
|
+
:where([data-kit="halo"]) .tf-sidebar-groupaction {
|
|
13337
|
+
flex: none;
|
|
13338
|
+
margin-left: auto;
|
|
13339
|
+
}
|
|
13340
|
+
:where([data-kit="halo"]) .tf-sidebar-li {
|
|
13341
|
+
position: relative;
|
|
13342
|
+
}
|
|
12897
13343
|
:where([data-kit="halo"]) .tf-sidebar-item {
|
|
12898
13344
|
display: flex;
|
|
12899
13345
|
align-items: center;
|
|
@@ -12901,15 +13347,86 @@
|
|
|
12901
13347
|
width: 100%;
|
|
12902
13348
|
height: 40px;
|
|
12903
13349
|
padding: 0 12px;
|
|
13350
|
+
box-sizing: border-box;
|
|
12904
13351
|
border: 0;
|
|
12905
13352
|
border-radius: var(--radius-pill);
|
|
12906
13353
|
background: transparent;
|
|
12907
13354
|
color: var(--ink-muted);
|
|
12908
13355
|
font: 600 13px/18px var(--font-sans);
|
|
12909
13356
|
text-align: left;
|
|
13357
|
+
text-decoration: none;
|
|
12910
13358
|
cursor: pointer;
|
|
12911
13359
|
}
|
|
12912
|
-
|
|
13360
|
+
/* Filter options (Sidebar as="aside"): a checkbox or radio mark, the label and a count */
|
|
13361
|
+
:where([data-kit="halo"]) .tf-sidebar-option {
|
|
13362
|
+
position: relative;
|
|
13363
|
+
}
|
|
13364
|
+
:where([data-kit="halo"]) .tf-sidebar-option.disabled {
|
|
13365
|
+
opacity: 0.45;
|
|
13366
|
+
cursor: default;
|
|
13367
|
+
}
|
|
13368
|
+
:where([data-kit="halo"]) .tf-sidebar-input {
|
|
13369
|
+
position: absolute;
|
|
13370
|
+
width: 1px;
|
|
13371
|
+
height: 1px;
|
|
13372
|
+
margin: 0;
|
|
13373
|
+
opacity: 0;
|
|
13374
|
+
pointer-events: none;
|
|
13375
|
+
}
|
|
13376
|
+
:where([data-kit="halo"]) .tf-sidebar-mark {
|
|
13377
|
+
display: grid;
|
|
13378
|
+
place-items: center;
|
|
13379
|
+
flex: none;
|
|
13380
|
+
width: 18px;
|
|
13381
|
+
height: 18px;
|
|
13382
|
+
box-sizing: border-box;
|
|
13383
|
+
border-radius: 6px;
|
|
13384
|
+
border: 1.5px solid var(--line-strong);
|
|
13385
|
+
background: var(--surface);
|
|
13386
|
+
color: var(--primary-foreground);
|
|
13387
|
+
transition:
|
|
13388
|
+
background-color var(--dur-fast) var(--ease-out),
|
|
13389
|
+
border-color var(--dur-fast) var(--ease-out);
|
|
13390
|
+
}
|
|
13391
|
+
:where([data-kit="halo"]) .tf-sidebar-mark.radio {
|
|
13392
|
+
border-radius: 50%;
|
|
13393
|
+
}
|
|
13394
|
+
:where([data-kit="halo"]) .tf-sidebar-mark svg {
|
|
13395
|
+
opacity: 0;
|
|
13396
|
+
}
|
|
13397
|
+
:where([data-kit="halo"]) .tf-sidebar-input:checked + .tf-sidebar-mark {
|
|
13398
|
+
background: var(--primary);
|
|
13399
|
+
border-color: var(--primary);
|
|
13400
|
+
}
|
|
13401
|
+
:where([data-kit="halo"]) .tf-sidebar-input:checked + .tf-sidebar-mark.radio {
|
|
13402
|
+
box-shadow: inset 0 0 0 3px var(--surface);
|
|
13403
|
+
}
|
|
13404
|
+
:where([data-kit="halo"]) .tf-sidebar-input:checked + .tf-sidebar-mark svg {
|
|
13405
|
+
opacity: 1;
|
|
13406
|
+
}
|
|
13407
|
+
:where([data-kit="halo"]) .tf-sidebar-input:focus-visible + .tf-sidebar-mark {
|
|
13408
|
+
outline: 2px solid var(--focus);
|
|
13409
|
+
outline-offset: 2px;
|
|
13410
|
+
}
|
|
13411
|
+
:where([data-kit="halo"]) .tf-sidebar-option:has(.tf-sidebar-input:checked) {
|
|
13412
|
+
color: var(--ink);
|
|
13413
|
+
}
|
|
13414
|
+
/* free content in a group (sliders, date fields, chips) */
|
|
13415
|
+
:where([data-kit="halo"]) .tf-sidebar-content {
|
|
13416
|
+
display: flex;
|
|
13417
|
+
flex-direction: column;
|
|
13418
|
+
gap: 12px;
|
|
13419
|
+
padding: 4px 12px 0;
|
|
13420
|
+
min-width: 0;
|
|
13421
|
+
}
|
|
13422
|
+
:where([data-kit="halo"]) .tf-sidebar-groupbody {
|
|
13423
|
+
display: flex;
|
|
13424
|
+
flex-direction: column;
|
|
13425
|
+
gap: 2px;
|
|
13426
|
+
min-width: 0;
|
|
13427
|
+
}
|
|
13428
|
+
:where([data-kit="halo"]) .tf-sidebar-item:hover,
|
|
13429
|
+
:where([data-kit="halo"]) .tf-sidebar-item.flying {
|
|
12913
13430
|
background: var(--sidebar-accent);
|
|
12914
13431
|
color: var(--ink);
|
|
12915
13432
|
}
|
|
@@ -12924,10 +13441,21 @@
|
|
|
12924
13441
|
outline: 2px solid var(--focus);
|
|
12925
13442
|
outline-offset: 2px;
|
|
12926
13443
|
}
|
|
13444
|
+
:where([data-kit="halo"]) .tf-sidebar-item:disabled {
|
|
13445
|
+
opacity: 0.45;
|
|
13446
|
+
cursor: not-allowed;
|
|
13447
|
+
}
|
|
13448
|
+
:where([data-kit="halo"]) .tf-sidebar-item:disabled:hover {
|
|
13449
|
+
background: transparent;
|
|
13450
|
+
color: var(--ink-muted);
|
|
13451
|
+
}
|
|
12927
13452
|
:where([data-kit="halo"]) .tf-sidebar-item.nested {
|
|
12928
13453
|
height: 32px;
|
|
12929
13454
|
padding-left: 40px;
|
|
12930
13455
|
}
|
|
13456
|
+
:where([data-kit="halo"]) .tf-sidebar-sub {
|
|
13457
|
+
margin-top: 2px !important;
|
|
13458
|
+
}
|
|
12931
13459
|
:where([data-kit="halo"]) .tf-sidebar-label {
|
|
12932
13460
|
flex: 1;
|
|
12933
13461
|
min-width: 0;
|
|
@@ -12936,22 +13464,107 @@
|
|
|
12936
13464
|
white-space: nowrap;
|
|
12937
13465
|
}
|
|
12938
13466
|
:where([data-kit="halo"]) .tf-sidebar-chev {
|
|
13467
|
+
flex: none;
|
|
12939
13468
|
transition: transform var(--dur-base) var(--ease-out);
|
|
12940
13469
|
}
|
|
12941
13470
|
:where([data-kit="halo"]) .tf-sidebar-item[aria-expanded="true"] .tf-sidebar-chev {
|
|
12942
13471
|
transform: rotate(180deg);
|
|
12943
13472
|
}
|
|
13473
|
+
:where([data-kit="halo"]) .tf-sidebar-ext {
|
|
13474
|
+
flex: none;
|
|
13475
|
+
opacity: 0.7;
|
|
13476
|
+
}
|
|
13477
|
+
:where([data-kit="halo"]) .tf-sidebar-count {
|
|
13478
|
+
flex: none;
|
|
13479
|
+
min-width: 20px;
|
|
13480
|
+
height: 20px;
|
|
13481
|
+
padding: 0 6px;
|
|
13482
|
+
box-sizing: border-box;
|
|
13483
|
+
border-radius: var(--radius-pill);
|
|
13484
|
+
background: var(--count);
|
|
13485
|
+
color: var(--on-count);
|
|
13486
|
+
font: 700 11px/20px var(--font-sans);
|
|
13487
|
+
text-align: center;
|
|
13488
|
+
}
|
|
13489
|
+
:where([data-kit="halo"]) .tf-sidebar-badge {
|
|
13490
|
+
flex: none;
|
|
13491
|
+
height: 20px;
|
|
13492
|
+
padding: 0 8px;
|
|
13493
|
+
box-sizing: border-box;
|
|
13494
|
+
border-radius: var(--radius-pill);
|
|
13495
|
+
background: var(--count);
|
|
13496
|
+
color: var(--on-count);
|
|
13497
|
+
font: 700 10px/20px var(--font-sans);
|
|
13498
|
+
letter-spacing: 0.04em;
|
|
13499
|
+
text-transform: uppercase;
|
|
13500
|
+
}
|
|
13501
|
+
:where([data-kit="halo"]) .tf-sidebar-dot {
|
|
13502
|
+
flex: none;
|
|
13503
|
+
width: 8px;
|
|
13504
|
+
height: 8px;
|
|
13505
|
+
border-radius: 50%;
|
|
13506
|
+
background: var(--count);
|
|
13507
|
+
}
|
|
13508
|
+
:where([data-kit="halo"]) .tf-sidebar-sr {
|
|
13509
|
+
position: absolute;
|
|
13510
|
+
width: 1px;
|
|
13511
|
+
height: 1px;
|
|
13512
|
+
overflow: hidden;
|
|
13513
|
+
clip-path: inset(50%);
|
|
13514
|
+
white-space: nowrap;
|
|
13515
|
+
}
|
|
13516
|
+
/* the "…" menu of an item shows on hover and focus */
|
|
13517
|
+
:where([data-kit="halo"]) .tf-sidebar-li.with-actions > .tf-sidebar-item {
|
|
13518
|
+
padding-right: 40px;
|
|
13519
|
+
}
|
|
13520
|
+
:where([data-kit="halo"]) .tf-sidebar-more {
|
|
13521
|
+
position: absolute;
|
|
13522
|
+
top: 4px;
|
|
13523
|
+
right: 4px;
|
|
13524
|
+
opacity: 0;
|
|
13525
|
+
transition: opacity var(--dur-fast) var(--ease-out);
|
|
13526
|
+
}
|
|
13527
|
+
:where([data-kit="halo"]) .tf-sidebar-li:hover > .tf-sidebar-more,
|
|
13528
|
+
:where([data-kit="halo"]) .tf-sidebar-more:focus-visible,
|
|
13529
|
+
:where([data-kit="halo"]) .tf-sidebar-more[aria-expanded="true"] {
|
|
13530
|
+
opacity: 1;
|
|
13531
|
+
}
|
|
12944
13532
|
:where([data-kit="halo"]) .tf-sidebar-foot {
|
|
12945
13533
|
display: flex;
|
|
12946
13534
|
align-items: center;
|
|
12947
|
-
justify-content: space-between;
|
|
12948
13535
|
gap: 8px;
|
|
12949
13536
|
padding-top: 12px;
|
|
12950
13537
|
border-top: 1px solid var(--sidebar-border);
|
|
12951
13538
|
}
|
|
13539
|
+
:where([data-kit="halo"]) .tf-sidebar-foot > :not(.tf-sidebar-toggle) {
|
|
13540
|
+
flex: 1;
|
|
13541
|
+
min-width: 0;
|
|
13542
|
+
}
|
|
13543
|
+
:where([data-kit="halo"]) .tf-sidebar-toggle {
|
|
13544
|
+
flex: none;
|
|
13545
|
+
margin-left: auto;
|
|
13546
|
+
}
|
|
13547
|
+
:where([data-kit="halo"]) .tf-sidebar-head .tf-pop-anchor,
|
|
13548
|
+
:where([data-kit="halo"]) .tf-sidebar-foot .tf-pop-anchor {
|
|
13549
|
+
display: block;
|
|
13550
|
+
min-width: 0;
|
|
13551
|
+
}
|
|
13552
|
+
:where([data-kit="halo"]) .tf-sidebar-head .tf-wssw {
|
|
13553
|
+
width: 100%;
|
|
13554
|
+
}
|
|
13555
|
+
:where([data-kit="halo"]) .tf-sidebar-head .tf-wssw .tf-option-text {
|
|
13556
|
+
flex: 1;
|
|
13557
|
+
min-width: 0;
|
|
13558
|
+
}
|
|
13559
|
+
|
|
13560
|
+
/* collapsed: icons only; labels stay the accessible names, tooltips and flyouts show them */
|
|
13561
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-body {
|
|
13562
|
+
gap: 12px;
|
|
13563
|
+
}
|
|
12952
13564
|
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-label,
|
|
12953
13565
|
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-chev,
|
|
12954
|
-
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-
|
|
13566
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-ext,
|
|
13567
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-grouphead {
|
|
12955
13568
|
position: absolute;
|
|
12956
13569
|
width: 1px;
|
|
12957
13570
|
height: 1px;
|
|
@@ -12959,12 +13572,19 @@
|
|
|
12959
13572
|
clip-path: inset(50%);
|
|
12960
13573
|
white-space: nowrap;
|
|
12961
13574
|
}
|
|
13575
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-group + .tf-sidebar-group {
|
|
13576
|
+
padding-top: 12px;
|
|
13577
|
+
border-top: 1px solid var(--sidebar-border);
|
|
13578
|
+
}
|
|
12962
13579
|
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-item {
|
|
12963
13580
|
position: relative;
|
|
12964
13581
|
justify-content: center;
|
|
12965
13582
|
padding: 0;
|
|
12966
13583
|
}
|
|
12967
|
-
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-
|
|
13584
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-item.has-current {
|
|
13585
|
+
background: var(--sidebar-accent);
|
|
13586
|
+
}
|
|
13587
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-count {
|
|
12968
13588
|
position: absolute;
|
|
12969
13589
|
top: -2px;
|
|
12970
13590
|
right: -2px;
|
|
@@ -12974,57 +13594,317 @@
|
|
|
12974
13594
|
font-size: 10px;
|
|
12975
13595
|
line-height: 16px;
|
|
12976
13596
|
}
|
|
13597
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-dot,
|
|
13598
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-badge {
|
|
13599
|
+
position: absolute;
|
|
13600
|
+
top: 6px;
|
|
13601
|
+
right: 8px;
|
|
13602
|
+
width: 8px;
|
|
13603
|
+
height: 8px;
|
|
13604
|
+
padding: 0;
|
|
13605
|
+
font-size: 0;
|
|
13606
|
+
}
|
|
13607
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-head {
|
|
13608
|
+
justify-content: center;
|
|
13609
|
+
padding: 0;
|
|
13610
|
+
}
|
|
12977
13611
|
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-foot {
|
|
12978
13612
|
flex-direction: column;
|
|
12979
13613
|
}
|
|
12980
|
-
|
|
12981
|
-
:
|
|
12982
|
-
|
|
12983
|
-
|
|
12984
|
-
:
|
|
12985
|
-
grid-template-columns: minmax(0, 1fr);
|
|
12986
|
-
}
|
|
12987
|
-
:where([data-kit="halo"]) .tf-navmenu-feature {
|
|
12988
|
-
min-height: 0;
|
|
12989
|
-
}
|
|
12990
|
-
:where([data-kit="halo"]) .tf-navmenu-list {
|
|
12991
|
-
flex-wrap: wrap;
|
|
12992
|
-
}
|
|
12993
|
-
:where([data-kit="halo"]) .tf-menubar {
|
|
12994
|
-
flex-wrap: wrap;
|
|
12995
|
-
border-radius: var(--radius-lg);
|
|
12996
|
-
}
|
|
13614
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-foot > :not(.tf-sidebar-toggle) {
|
|
13615
|
+
flex: none;
|
|
13616
|
+
}
|
|
13617
|
+
:where([data-kit="halo"]) .tf-sidebar.collapsed .tf-sidebar-toggle {
|
|
13618
|
+
margin-left: 0;
|
|
12997
13619
|
}
|
|
12998
13620
|
|
|
12999
|
-
/*
|
|
13000
|
-
:where([data-kit="halo"]) .tf-
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
animation-name: tf-halo-sheet-left;
|
|
13621
|
+
/* tooltips, flyouts and item menus float in the portal, so the scrolling body does not clip them */
|
|
13622
|
+
:where([data-kit="halo"]) .tf-sidebar-layer {
|
|
13623
|
+
position: fixed;
|
|
13624
|
+
z-index: var(--z-palette);
|
|
13004
13625
|
}
|
|
13005
|
-
:where([data-kit="halo"]) .tf-
|
|
13006
|
-
:
|
|
13007
|
-
|
|
13008
|
-
|
|
13009
|
-
|
|
13010
|
-
|
|
13626
|
+
:where([data-kit="halo"]) .tf-sidebar-tip {
|
|
13627
|
+
display: inline-flex;
|
|
13628
|
+
align-items: center;
|
|
13629
|
+
gap: 8px;
|
|
13630
|
+
padding: 4px 8px;
|
|
13631
|
+
border-radius: var(--radius-sm);
|
|
13632
|
+
background: var(--frame);
|
|
13633
|
+
color: var(--on-frame);
|
|
13634
|
+
font: 600 12px/16px var(--font-sans);
|
|
13635
|
+
white-space: nowrap;
|
|
13636
|
+
pointer-events: none;
|
|
13637
|
+
animation: tf-halo-fade var(--dur-fast) var(--ease-out) both;
|
|
13011
13638
|
}
|
|
13012
|
-
:where([data-kit="halo"]) .tf-
|
|
13013
|
-
|
|
13014
|
-
animation-name: tf-halo-sheet-top;
|
|
13639
|
+
:where([data-kit="halo"]) .tf-sidebar-tipcount {
|
|
13640
|
+
color: var(--on-frame-muted);
|
|
13015
13641
|
}
|
|
13016
|
-
:where([data-kit="halo"]) .tf-
|
|
13017
|
-
|
|
13018
|
-
|
|
13019
|
-
|
|
13642
|
+
:where([data-kit="halo"]) .tf-sidebar-flyout {
|
|
13643
|
+
min-width: 200px;
|
|
13644
|
+
padding: 6px;
|
|
13645
|
+
border-radius: var(--radius-md);
|
|
13646
|
+
background: var(--surface);
|
|
13647
|
+
color: var(--ink);
|
|
13648
|
+
box-shadow: var(--shadow-float);
|
|
13649
|
+
animation: tf-halo-fade var(--dur-fast) var(--ease-out) both;
|
|
13020
13650
|
}
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
13024
|
-
|
|
13025
|
-
|
|
13651
|
+
:where([data-kit="halo"]) .tf-sidebar-flyout ul {
|
|
13652
|
+
display: flex;
|
|
13653
|
+
flex-direction: column;
|
|
13654
|
+
gap: 2px;
|
|
13655
|
+
margin: 0;
|
|
13656
|
+
padding: 0;
|
|
13657
|
+
list-style: none;
|
|
13026
13658
|
}
|
|
13027
|
-
|
|
13659
|
+
:where([data-kit="halo"]) .tf-sidebar-flytitle {
|
|
13660
|
+
padding: 6px 12px 8px;
|
|
13661
|
+
font: 600 11px/14px var(--font-sans);
|
|
13662
|
+
letter-spacing: 0.06em;
|
|
13663
|
+
text-transform: uppercase;
|
|
13664
|
+
color: var(--ink-muted);
|
|
13665
|
+
}
|
|
13666
|
+
:where([data-kit="halo"]) .tf-sidebar-flyout .tf-sidebar-item.nested {
|
|
13667
|
+
padding-left: 12px;
|
|
13668
|
+
}
|
|
13669
|
+
|
|
13670
|
+
/* on the AppShell frame */
|
|
13671
|
+
:where([data-kit="halo"]) .tf-sidebar.shell {
|
|
13672
|
+
align-self: stretch;
|
|
13673
|
+
padding: 16px 8px 8px;
|
|
13674
|
+
border-radius: 0;
|
|
13675
|
+
background: transparent;
|
|
13676
|
+
box-shadow: none;
|
|
13677
|
+
color: var(--on-frame);
|
|
13678
|
+
}
|
|
13679
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item,
|
|
13680
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-grouplabel {
|
|
13681
|
+
color: var(--on-frame-muted);
|
|
13682
|
+
}
|
|
13683
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item:hover,
|
|
13684
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item.flying,
|
|
13685
|
+
:where([data-kit="halo"]) .tf-sidebar.shell.collapsed .tf-sidebar-item.has-current {
|
|
13686
|
+
background: var(--frame-hover);
|
|
13687
|
+
color: var(--on-frame);
|
|
13688
|
+
}
|
|
13689
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item.has-current,
|
|
13690
|
+
:where([data-kit="halo"]) .tf-sidebar.shell button.tf-sidebar-grouplabel:hover {
|
|
13691
|
+
color: var(--on-frame);
|
|
13692
|
+
}
|
|
13693
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item[aria-current="page"] {
|
|
13694
|
+
background: var(--frame-active);
|
|
13695
|
+
color: var(--on-frame);
|
|
13696
|
+
}
|
|
13697
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-item:disabled:hover {
|
|
13698
|
+
background: transparent;
|
|
13699
|
+
color: var(--on-frame-muted);
|
|
13700
|
+
}
|
|
13701
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-foot,
|
|
13702
|
+
:where([data-kit="halo"]) .tf-sidebar.shell.collapsed .tf-sidebar-group + .tf-sidebar-group {
|
|
13703
|
+
border-color: var(--frame-hover);
|
|
13704
|
+
}
|
|
13705
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-iconbtn-ghost {
|
|
13706
|
+
color: var(--on-frame-muted);
|
|
13707
|
+
}
|
|
13708
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-iconbtn-ghost:hover {
|
|
13709
|
+
background: var(--frame-hover);
|
|
13710
|
+
color: var(--on-frame);
|
|
13711
|
+
}
|
|
13712
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-sidebar-head {
|
|
13713
|
+
min-height: 44px;
|
|
13714
|
+
}
|
|
13715
|
+
|
|
13716
|
+
/* UserMenu: the signed-in person, opening their account menu */
|
|
13717
|
+
:where([data-kit="halo"]) .tf-usermenu {
|
|
13718
|
+
display: flex;
|
|
13719
|
+
align-items: center;
|
|
13720
|
+
gap: 10px;
|
|
13721
|
+
width: 100%;
|
|
13722
|
+
min-height: 44px;
|
|
13723
|
+
padding: 4px 8px 4px 4px;
|
|
13724
|
+
box-sizing: border-box;
|
|
13725
|
+
border: 0;
|
|
13726
|
+
border-radius: var(--radius-pill);
|
|
13727
|
+
background: transparent;
|
|
13728
|
+
color: var(--ink);
|
|
13729
|
+
font: inherit;
|
|
13730
|
+
text-align: left;
|
|
13731
|
+
cursor: pointer;
|
|
13732
|
+
}
|
|
13733
|
+
:where([data-kit="halo"]) .tf-usermenu.compact {
|
|
13734
|
+
width: auto;
|
|
13735
|
+
padding: 4px;
|
|
13736
|
+
}
|
|
13737
|
+
:where([data-kit="halo"]) .tf-usermenu:hover,
|
|
13738
|
+
:where([data-kit="halo"]) .tf-usermenu[aria-expanded="true"] {
|
|
13739
|
+
background: var(--sidebar-accent);
|
|
13740
|
+
}
|
|
13741
|
+
:where([data-kit="halo"]) .tf-usermenu:focus-visible {
|
|
13742
|
+
outline: 2px solid var(--focus);
|
|
13743
|
+
outline-offset: 2px;
|
|
13744
|
+
}
|
|
13745
|
+
:where([data-kit="halo"]) .tf-usermenu-avatar {
|
|
13746
|
+
display: inline-flex;
|
|
13747
|
+
flex: none;
|
|
13748
|
+
}
|
|
13749
|
+
:where([data-kit="halo"]) .tf-usermenu-text {
|
|
13750
|
+
display: flex;
|
|
13751
|
+
flex-direction: column;
|
|
13752
|
+
flex: 1;
|
|
13753
|
+
min-width: 0;
|
|
13754
|
+
}
|
|
13755
|
+
:where([data-kit="halo"]) .tf-usermenu-name {
|
|
13756
|
+
font: 600 13px/18px var(--font-sans);
|
|
13757
|
+
overflow: hidden;
|
|
13758
|
+
text-overflow: ellipsis;
|
|
13759
|
+
white-space: nowrap;
|
|
13760
|
+
}
|
|
13761
|
+
:where([data-kit="halo"]) .tf-usermenu-mail {
|
|
13762
|
+
font: 500 11px/14px var(--font-sans);
|
|
13763
|
+
color: var(--ink-muted);
|
|
13764
|
+
overflow: hidden;
|
|
13765
|
+
text-overflow: ellipsis;
|
|
13766
|
+
white-space: nowrap;
|
|
13767
|
+
}
|
|
13768
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-usermenu {
|
|
13769
|
+
color: var(--on-frame);
|
|
13770
|
+
}
|
|
13771
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-usermenu:hover,
|
|
13772
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-usermenu[aria-expanded="true"] {
|
|
13773
|
+
background: var(--frame-hover);
|
|
13774
|
+
}
|
|
13775
|
+
:where([data-kit="halo"]) .tf-sidebar.shell .tf-usermenu-mail {
|
|
13776
|
+
color: var(--on-frame-muted);
|
|
13777
|
+
}
|
|
13778
|
+
:where([data-kit="halo"]) .tf-wssw.compact {
|
|
13779
|
+
padding: 4px;
|
|
13780
|
+
}
|
|
13781
|
+
|
|
13782
|
+
/* the bar that opens the sidebar as a drawer on phones */
|
|
13783
|
+
:where([data-kit="halo"]) .tf-sidebar-bar,
|
|
13784
|
+
:where([data-kit="halo"]) .tf-sidebar-scrim {
|
|
13785
|
+
display: none;
|
|
13786
|
+
}
|
|
13787
|
+
@media (max-width: 760px) {
|
|
13788
|
+
:where([data-kit="halo"]) .tf-sidebar-bar {
|
|
13789
|
+
display: flex;
|
|
13790
|
+
align-items: center;
|
|
13791
|
+
gap: 8px;
|
|
13792
|
+
min-height: 52px;
|
|
13793
|
+
padding: 6px 12px 6px 6px;
|
|
13794
|
+
box-sizing: border-box;
|
|
13795
|
+
border-radius: var(--radius-lg);
|
|
13796
|
+
background: var(--surface);
|
|
13797
|
+
box-shadow: var(--shadow-card);
|
|
13798
|
+
color: var(--ink);
|
|
13799
|
+
}
|
|
13800
|
+
:where([data-kit="halo"]) .tf-sidebar-bar.attached {
|
|
13801
|
+
border-radius: 0;
|
|
13802
|
+
box-shadow: none;
|
|
13803
|
+
background: var(--sidebar);
|
|
13804
|
+
border-bottom: 1px solid var(--sidebar-border);
|
|
13805
|
+
}
|
|
13806
|
+
:where([data-kit="halo"]) .tf-sidebar-bar.shell {
|
|
13807
|
+
min-height: 56px;
|
|
13808
|
+
padding: 8px 8px 8px 0;
|
|
13809
|
+
border-radius: 0;
|
|
13810
|
+
box-shadow: none;
|
|
13811
|
+
background: transparent;
|
|
13812
|
+
color: var(--on-frame);
|
|
13813
|
+
}
|
|
13814
|
+
:where([data-kit="halo"]) .tf-sidebar-bar.shell .tf-iconbtn-ghost {
|
|
13815
|
+
color: var(--on-frame);
|
|
13816
|
+
}
|
|
13817
|
+
:where([data-kit="halo"]) .tf-sidebar-bar > :not(.tf-iconbtn) {
|
|
13818
|
+
min-width: 0;
|
|
13819
|
+
}
|
|
13820
|
+
:where([data-kit="halo"]) .tf-sidebar,
|
|
13821
|
+
:where([data-kit="halo"]) .tf-sidebar.attached,
|
|
13822
|
+
:where([data-kit="halo"]) .tf-sidebar.shell {
|
|
13823
|
+
position: fixed;
|
|
13824
|
+
top: 0;
|
|
13825
|
+
bottom: 0;
|
|
13826
|
+
left: 0;
|
|
13827
|
+
z-index: var(--z-overlay);
|
|
13828
|
+
width: min(300px, 86vw);
|
|
13829
|
+
min-height: 0;
|
|
13830
|
+
padding: 12px;
|
|
13831
|
+
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
|
13832
|
+
box-shadow: var(--shadow-float);
|
|
13833
|
+
transform: translateX(-105%);
|
|
13834
|
+
visibility: hidden;
|
|
13835
|
+
transition:
|
|
13836
|
+
transform var(--dur-base) var(--ease-out),
|
|
13837
|
+
visibility 0s linear var(--dur-base);
|
|
13838
|
+
}
|
|
13839
|
+
:where([data-kit="halo"]) .tf-sidebar.shell {
|
|
13840
|
+
background: var(--frame);
|
|
13841
|
+
}
|
|
13842
|
+
:where([data-kit="halo"]) .tf-sidebar.attached {
|
|
13843
|
+
background: var(--sidebar);
|
|
13844
|
+
}
|
|
13845
|
+
:where([data-kit="halo"]) .tf-sidebar.open {
|
|
13846
|
+
transform: none;
|
|
13847
|
+
visibility: visible;
|
|
13848
|
+
transition: transform var(--dur-base) var(--ease-out);
|
|
13849
|
+
}
|
|
13850
|
+
:where([data-kit="halo"]) .tf-sidebar-toggle {
|
|
13851
|
+
display: none;
|
|
13852
|
+
}
|
|
13853
|
+
:where([data-kit="halo"]) .tf-sidebar-scrim {
|
|
13854
|
+
display: block;
|
|
13855
|
+
position: fixed;
|
|
13856
|
+
inset: 0;
|
|
13857
|
+
z-index: var(--z-overlay);
|
|
13858
|
+
background: var(--scrim-strong);
|
|
13859
|
+
animation: tf-halo-fade var(--dur-base) var(--ease-out) both;
|
|
13860
|
+
}
|
|
13861
|
+
}
|
|
13862
|
+
|
|
13863
|
+
@media (max-width: 760px) {
|
|
13864
|
+
:where([data-kit="halo"]) .tf-navmenu-panel.with-feature {
|
|
13865
|
+
grid-template-columns: minmax(0, 1fr);
|
|
13866
|
+
}
|
|
13867
|
+
:where([data-kit="halo"]) .tf-navmenu-feature {
|
|
13868
|
+
min-height: 0;
|
|
13869
|
+
}
|
|
13870
|
+
:where([data-kit="halo"]) .tf-navmenu-list {
|
|
13871
|
+
flex-wrap: wrap;
|
|
13872
|
+
}
|
|
13873
|
+
:where([data-kit="halo"]) .tf-menubar {
|
|
13874
|
+
flex-wrap: wrap;
|
|
13875
|
+
border-radius: var(--radius-lg);
|
|
13876
|
+
}
|
|
13877
|
+
}
|
|
13878
|
+
|
|
13879
|
+
/* Drawer (sheet) sides */
|
|
13880
|
+
:where([data-kit="halo"]) .tf-drawer.side-left {
|
|
13881
|
+
right: auto;
|
|
13882
|
+
left: 0;
|
|
13883
|
+
animation-name: tf-halo-sheet-left;
|
|
13884
|
+
}
|
|
13885
|
+
:where([data-kit="halo"]) .tf-drawer.side-top,
|
|
13886
|
+
:where([data-kit="halo"]) .tf-drawer.side-bottom {
|
|
13887
|
+
left: 0;
|
|
13888
|
+
right: 0;
|
|
13889
|
+
width: 100%;
|
|
13890
|
+
max-height: min(80%, 640px);
|
|
13891
|
+
}
|
|
13892
|
+
:where([data-kit="halo"]) .tf-drawer.side-top {
|
|
13893
|
+
bottom: auto;
|
|
13894
|
+
animation-name: tf-halo-sheet-top;
|
|
13895
|
+
}
|
|
13896
|
+
:where([data-kit="halo"]) .tf-drawer.side-bottom {
|
|
13897
|
+
top: auto;
|
|
13898
|
+
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
|
|
13899
|
+
animation-name: tf-halo-sheet-bottom;
|
|
13900
|
+
}
|
|
13901
|
+
@keyframes tf-halo-sheet-left {
|
|
13902
|
+
from {
|
|
13903
|
+
opacity: 0;
|
|
13904
|
+
transform: translateX(calc(-24px * var(--motion-travel)));
|
|
13905
|
+
}
|
|
13906
|
+
}
|
|
13907
|
+
@keyframes tf-halo-sheet-top {
|
|
13028
13908
|
from {
|
|
13029
13909
|
opacity: 0;
|
|
13030
13910
|
transform: translateY(calc(-24px * var(--motion-travel)));
|
|
@@ -13162,7 +14042,7 @@
|
|
|
13162
14042
|
/* Tablet: asides move below the main column, nav labels and the page nav shrink to icons */
|
|
13163
14043
|
@container tf-shell (max-width: 1180px) {
|
|
13164
14044
|
:where([data-kit="halo"]) .tf-sheet:not(.tf-sheet-2):not(.tf-sheet-nav) {
|
|
13165
|
-
grid-template-columns:
|
|
14045
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
13166
14046
|
}
|
|
13167
14047
|
:where([data-kit="halo"]) .tf-sheet-nav.tf-sheet-aside {
|
|
13168
14048
|
grid-template-columns: 208px minmax(0, 1fr);
|
|
@@ -13170,6 +14050,13 @@
|
|
|
13170
14050
|
:where([data-kit="halo"]) .tf-sheet > .tf-main ~ :not(.tf-dock-float) {
|
|
13171
14051
|
grid-column: 2;
|
|
13172
14052
|
}
|
|
14053
|
+
/* with the sidebar there is no rail column: asides go below the main column */
|
|
14054
|
+
:where([data-kit="halo"]) .tf-sheet.tf-sheet-norail:not(.tf-sheet-2) {
|
|
14055
|
+
grid-template-columns: minmax(0, 1fr);
|
|
14056
|
+
}
|
|
14057
|
+
:where([data-kit="halo"]) .tf-sheet-norail > .tf-main ~ :not(.tf-dock-float) {
|
|
14058
|
+
grid-column: 1;
|
|
14059
|
+
}
|
|
13173
14060
|
/* the dock floats over the end of the sheet, not of the main column (asides follow it) */
|
|
13174
14061
|
:where([data-kit="halo"]) .tf-main-dock {
|
|
13175
14062
|
padding-bottom: 0;
|
|
@@ -13200,7 +14087,7 @@
|
|
|
13200
14087
|
@container tf-shell (max-width: 1040px) {
|
|
13201
14088
|
:where([data-kit="halo"]) .tf-sheet-nav,
|
|
13202
14089
|
:where([data-kit="halo"]) .tf-sheet-nav.tf-sheet-aside {
|
|
13203
|
-
grid-template-columns:
|
|
14090
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
13204
14091
|
}
|
|
13205
14092
|
:where([data-kit="halo"]) .tf-subnav-eyebrow {
|
|
13206
14093
|
display: none;
|
|
@@ -13297,6 +14184,21 @@
|
|
|
13297
14184
|
:where([data-kit="halo"]) .tf-rail-group {
|
|
13298
14185
|
flex-direction: row;
|
|
13299
14186
|
}
|
|
14187
|
+
/* on phones the rail is a row of icons, expanded or not */
|
|
14188
|
+
:where([data-kit="halo"]) .tf-rail.expanded {
|
|
14189
|
+
width: auto;
|
|
14190
|
+
}
|
|
14191
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-rail-btn {
|
|
14192
|
+
display: grid;
|
|
14193
|
+
width: 40px;
|
|
14194
|
+
padding: 0;
|
|
14195
|
+
}
|
|
14196
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-rail-label {
|
|
14197
|
+
display: none;
|
|
14198
|
+
}
|
|
14199
|
+
:where([data-kit="halo"]) .tf-rail.expanded .tf-dotcount {
|
|
14200
|
+
position: absolute;
|
|
14201
|
+
}
|
|
13300
14202
|
:where([data-kit="halo"]) .tf-main {
|
|
13301
14203
|
gap: var(--space-4);
|
|
13302
14204
|
}
|
|
@@ -13388,6 +14290,56 @@
|
|
|
13388
14290
|
max-width: 100%;
|
|
13389
14291
|
overflow-x: auto;
|
|
13390
14292
|
}
|
|
14293
|
+
/* Table stack: narrow boxes show every row as a card, each cell with its column label */
|
|
14294
|
+
:where([data-kit="halo"]) .tf-table-stackbox {
|
|
14295
|
+
container: tf-table / inline-size;
|
|
14296
|
+
}
|
|
14297
|
+
@container tf-table (max-width: 600px) {
|
|
14298
|
+
:where([data-kit="halo"]) .tf-table.stack thead {
|
|
14299
|
+
position: absolute;
|
|
14300
|
+
width: 1px;
|
|
14301
|
+
height: 1px;
|
|
14302
|
+
overflow: hidden;
|
|
14303
|
+
clip-path: inset(50%);
|
|
14304
|
+
}
|
|
14305
|
+
:where([data-kit="halo"]) .tf-table.stack,
|
|
14306
|
+
:where([data-kit="halo"]) .tf-table.stack tbody,
|
|
14307
|
+
:where([data-kit="halo"]) .tf-table.stack tr {
|
|
14308
|
+
display: block;
|
|
14309
|
+
}
|
|
14310
|
+
:where([data-kit="halo"]) .tf-table.stack tr {
|
|
14311
|
+
padding: 8px 0;
|
|
14312
|
+
border-bottom: 1px solid var(--line);
|
|
14313
|
+
}
|
|
14314
|
+
:where([data-kit="halo"]) .tf-table.stack tr:last-child {
|
|
14315
|
+
border-bottom: 0;
|
|
14316
|
+
}
|
|
14317
|
+
:where([data-kit="halo"]) .tf-table.stack td {
|
|
14318
|
+
display: flex;
|
|
14319
|
+
align-items: center;
|
|
14320
|
+
justify-content: space-between;
|
|
14321
|
+
gap: 16px;
|
|
14322
|
+
height: auto;
|
|
14323
|
+
min-height: 32px;
|
|
14324
|
+
padding: 4px 0;
|
|
14325
|
+
border-bottom: 0;
|
|
14326
|
+
text-align: right;
|
|
14327
|
+
white-space: normal;
|
|
14328
|
+
}
|
|
14329
|
+
:where([data-kit="halo"]) .tf-table.stack td::before {
|
|
14330
|
+
content: attr(data-label);
|
|
14331
|
+
flex: none;
|
|
14332
|
+
max-width: 50%;
|
|
14333
|
+
text-align: left;
|
|
14334
|
+
font: 600 11px/14px var(--font-sans);
|
|
14335
|
+
letter-spacing: 0.06em;
|
|
14336
|
+
text-transform: uppercase;
|
|
14337
|
+
color: var(--ink-muted);
|
|
14338
|
+
}
|
|
14339
|
+
:where([data-kit="halo"]) .tf-table.stack tbody tr:hover td {
|
|
14340
|
+
background: transparent;
|
|
14341
|
+
}
|
|
14342
|
+
}
|
|
13391
14343
|
|
|
13392
14344
|
/* ── Phone: components ── */
|
|
13393
14345
|
@media (max-width: 760px) {
|
|
@@ -13422,15 +14374,15 @@
|
|
|
13422
14374
|
height: 52px;
|
|
13423
14375
|
}
|
|
13424
14376
|
|
|
13425
|
-
/* segmented controls and tabs scroll sideways when the labels do not fit */
|
|
13426
|
-
:where([data-kit="halo"]) .tf-seg,
|
|
13427
|
-
:where([data-kit="halo"]) .tf-tabs {
|
|
14377
|
+
/* segmented controls and tabs scroll sideways when the labels do not fit (block ones shrink) */
|
|
14378
|
+
:where([data-kit="halo"]) .tf-seg:not(.block),
|
|
14379
|
+
:where([data-kit="halo"]) .tf-tabs:not(.tf-tabs-block) {
|
|
13428
14380
|
max-width: 100%;
|
|
13429
14381
|
overflow-x: auto;
|
|
13430
14382
|
scrollbar-width: none;
|
|
13431
14383
|
}
|
|
13432
|
-
:where([data-kit="halo"]) .tf-seg-item,
|
|
13433
|
-
:where([data-kit="halo"]) .tf-tab {
|
|
14384
|
+
:where([data-kit="halo"]) .tf-seg:not(.block) .tf-seg-item,
|
|
14385
|
+
:where([data-kit="halo"]) .tf-tabs:not(.tf-tabs-block) .tf-tab {
|
|
13434
14386
|
flex: none;
|
|
13435
14387
|
}
|
|
13436
14388
|
:where([data-kit="halo"]) .tf-seg,
|
|
@@ -13579,6 +14531,71 @@
|
|
|
13579
14531
|
}
|
|
13580
14532
|
}
|
|
13581
14533
|
|
|
14534
|
+
/* AppShell with a sidebar on phones: the sidebar's bar on top of the frame, the sheet below */
|
|
14535
|
+
@media (max-width: 760px) {
|
|
14536
|
+
:where([data-kit="halo"]) .tf-shell.tf-shell-sidebar {
|
|
14537
|
+
grid-template-columns: minmax(0, 1fr);
|
|
14538
|
+
padding: 0 8px 8px;
|
|
14539
|
+
}
|
|
14540
|
+
}
|
|
14541
|
+
|
|
14542
|
+
/* Fluid at every width: segmented controls, tabs and toggle groups never push past their
|
|
14543
|
+
container. When space runs short the items shrink and their labels end in an ellipsis. */
|
|
14544
|
+
:where([data-kit="halo"]) .tf-tabs {
|
|
14545
|
+
max-width: 100%;
|
|
14546
|
+
box-sizing: border-box;
|
|
14547
|
+
}
|
|
14548
|
+
:where([data-kit="halo"]) .tf-seg-item,
|
|
14549
|
+
:where([data-kit="halo"]) .tf-tab,
|
|
14550
|
+
:where([data-kit="halo"]) .tf-togglegroup .tf-toggle {
|
|
14551
|
+
min-width: 0;
|
|
14552
|
+
}
|
|
14553
|
+
:where([data-kit="halo"]) .tf-seg-label,
|
|
14554
|
+
:where([data-kit="halo"]) .tf-tab,
|
|
14555
|
+
:where([data-kit="halo"]) .tf-toggle-label {
|
|
14556
|
+
overflow: hidden;
|
|
14557
|
+
text-overflow: ellipsis;
|
|
14558
|
+
white-space: nowrap;
|
|
14559
|
+
}
|
|
14560
|
+
|
|
14561
|
+
/* key hints mean nothing on touch screens */
|
|
14562
|
+
@media (pointer: coarse) {
|
|
14563
|
+
:where([data-kit="halo"]) .tf-search .tf-kbd {
|
|
14564
|
+
display: none;
|
|
14565
|
+
}
|
|
14566
|
+
}
|
|
14567
|
+
|
|
14568
|
+
/* Fluid actions: an action row measures itself, so its buttons answer to the box it sits in (a
|
|
14569
|
+
thin card, a side panel, a phone) instead of the window. When the row is narrow it wraps and
|
|
14570
|
+
its buttons share the full width; when it is very narrow each button takes a line. The rows are
|
|
14571
|
+
the kit's own footers and action bars, and plain `.tf-row`s of buttons placed directly in a
|
|
14572
|
+
column box (panel, card, dialog, form …), where they always span the box. */
|
|
14573
|
+
:where([data-kit="halo"]) :is(
|
|
14574
|
+
.tf-modal-foot,
|
|
14575
|
+
.tf-card-foot,
|
|
14576
|
+
.tf-approval-foot,
|
|
14577
|
+
.tf-review-actions,
|
|
14578
|
+
.tf-cookie-actions,
|
|
14579
|
+
.tf-push-actions,
|
|
14580
|
+
.tf-insight-actions,
|
|
14581
|
+
.tf-journal-foot,
|
|
14582
|
+
:is(.tf-panel, .tf-card, .tf-modal, .tf-drawer, .tf-popover, .tf-form, .tf-col)
|
|
14583
|
+
> .tf-row:not(:has(> :not(.tf-btn, .tf-iconbtn)))
|
|
14584
|
+
) {
|
|
14585
|
+
container: tf-actions / inline-size;
|
|
14586
|
+
flex-wrap: wrap;
|
|
14587
|
+
}
|
|
14588
|
+
@container tf-actions (max-width: 400px) {
|
|
14589
|
+
:where([data-kit="halo"]) .tf-btn {
|
|
14590
|
+
flex: 1 1 auto;
|
|
14591
|
+
}
|
|
14592
|
+
}
|
|
14593
|
+
@container tf-actions (max-width: 240px) {
|
|
14594
|
+
:where([data-kit="halo"]) .tf-btn {
|
|
14595
|
+
flex-basis: 100%;
|
|
14596
|
+
}
|
|
14597
|
+
}
|
|
14598
|
+
|
|
13582
14599
|
/* 07-polish.css */
|
|
13583
14600
|
/* ───────────── Polish ─────────────
|
|
13584
14601
|
Small consistency fixes found by auditing every preview in both kits and themes. Zero
|
|
@@ -13786,10 +14803,17 @@
|
|
|
13786
14803
|
.tf-card,
|
|
13787
14804
|
.tf-stat,
|
|
13788
14805
|
.tf-dock,
|
|
13789
|
-
.tf-sidebar,
|
|
14806
|
+
.tf-sidebar:not(.shell),
|
|
13790
14807
|
.tf-map-legend,
|
|
13791
14808
|
.tf-map-ctl,
|
|
13792
|
-
.tf-map-pop
|
|
14809
|
+
.tf-map-pop,
|
|
14810
|
+
.tf-vital,
|
|
14811
|
+
.tf-journal,
|
|
14812
|
+
.tf-goal,
|
|
14813
|
+
.tf-insight,
|
|
14814
|
+
.tf-consent-item,
|
|
14815
|
+
.tf-nw,
|
|
14816
|
+
.tf-policy
|
|
13793
14817
|
):not(
|
|
13794
14818
|
:is(
|
|
13795
14819
|
.tf-panel,
|
|
@@ -13805,6 +14829,13 @@
|
|
|
13805
14829
|
.tf-palette,
|
|
13806
14830
|
.tf-modal,
|
|
13807
14831
|
.tf-drawer,
|
|
14832
|
+
.tf-vital,
|
|
14833
|
+
.tf-journal,
|
|
14834
|
+
.tf-goal,
|
|
14835
|
+
.tf-insight,
|
|
14836
|
+
.tf-consent-item,
|
|
14837
|
+
.tf-nw,
|
|
14838
|
+
.tf-policy,
|
|
13808
14839
|
.tf-glass
|
|
13809
14840
|
)
|
|
13810
14841
|
*
|
|
@@ -13815,10 +14846,17 @@
|
|
|
13815
14846
|
.tf-card,
|
|
13816
14847
|
.tf-stat,
|
|
13817
14848
|
.tf-dock,
|
|
13818
|
-
.tf-sidebar,
|
|
14849
|
+
.tf-sidebar:not(.shell),
|
|
13819
14850
|
.tf-map-legend,
|
|
13820
14851
|
.tf-map-ctl,
|
|
13821
|
-
.tf-map-pop
|
|
14852
|
+
.tf-map-pop,
|
|
14853
|
+
.tf-vital,
|
|
14854
|
+
.tf-journal,
|
|
14855
|
+
.tf-goal,
|
|
14856
|
+
.tf-insight,
|
|
14857
|
+
.tf-consent-item,
|
|
14858
|
+
.tf-nw,
|
|
14859
|
+
.tf-policy
|
|
13822
14860
|
):not(
|
|
13823
14861
|
:is(
|
|
13824
14862
|
.tf-panel,
|
|
@@ -13834,6 +14872,13 @@
|
|
|
13834
14872
|
.tf-palette,
|
|
13835
14873
|
.tf-modal,
|
|
13836
14874
|
.tf-drawer,
|
|
14875
|
+
.tf-vital,
|
|
14876
|
+
.tf-journal,
|
|
14877
|
+
.tf-goal,
|
|
14878
|
+
.tf-insight,
|
|
14879
|
+
.tf-consent-item,
|
|
14880
|
+
.tf-nw,
|
|
14881
|
+
.tf-policy,
|
|
13837
14882
|
.tf-glass
|
|
13838
14883
|
)
|
|
13839
14884
|
*
|
|
@@ -13950,6 +14995,10 @@
|
|
|
13950
14995
|
.tf-modal,
|
|
13951
14996
|
.tf-drawer,
|
|
13952
14997
|
.tf-glass,
|
|
14998
|
+
.tf-insight,
|
|
14999
|
+
.tf-policy,
|
|
15000
|
+
.tf-consent-item,
|
|
15001
|
+
.tf-journal,
|
|
13953
15002
|
.tf-btngroup,
|
|
13954
15003
|
.tf-map-ctl,
|
|
13955
15004
|
.tf-topbar
|
|
@@ -13979,6 +15028,10 @@
|
|
|
13979
15028
|
.tf-modal,
|
|
13980
15029
|
.tf-drawer,
|
|
13981
15030
|
.tf-glass,
|
|
15031
|
+
.tf-insight,
|
|
15032
|
+
.tf-policy,
|
|
15033
|
+
.tf-consent-item,
|
|
15034
|
+
.tf-journal,
|
|
13982
15035
|
.tf-btngroup,
|
|
13983
15036
|
.tf-map-ctl,
|
|
13984
15037
|
.tf-topbar
|
|
@@ -14004,10 +15057,38 @@
|
|
|
14004
15057
|
}
|
|
14005
15058
|
:where([data-kit="halo"])[data-surface="glass"]
|
|
14006
15059
|
:is(.tf-iconbtn-soft, .tf-iconbtn-outline, .tf-btn-secondary, .tf-chip):not(
|
|
14007
|
-
:is(
|
|
15060
|
+
:is(
|
|
15061
|
+
.tf-panel,
|
|
15062
|
+
.tf-card,
|
|
15063
|
+
.tf-dock,
|
|
15064
|
+
.tf-popover,
|
|
15065
|
+
.tf-menu,
|
|
15066
|
+
.tf-modal,
|
|
15067
|
+
.tf-drawer,
|
|
15068
|
+
.tf-insight,
|
|
15069
|
+
.tf-policy,
|
|
15070
|
+
.tf-consent-item,
|
|
15071
|
+
.tf-journal,
|
|
15072
|
+
.tf-glass
|
|
15073
|
+
)
|
|
15074
|
+
*
|
|
14008
15075
|
):not(.tf-solid):not([aria-pressed="true"]):hover, :where([data-kit="halo"]) [data-surface="glass"]
|
|
14009
15076
|
:is(.tf-iconbtn-soft, .tf-iconbtn-outline, .tf-btn-secondary, .tf-chip):not(
|
|
14010
|
-
:is(
|
|
15077
|
+
:is(
|
|
15078
|
+
.tf-panel,
|
|
15079
|
+
.tf-card,
|
|
15080
|
+
.tf-dock,
|
|
15081
|
+
.tf-popover,
|
|
15082
|
+
.tf-menu,
|
|
15083
|
+
.tf-modal,
|
|
15084
|
+
.tf-drawer,
|
|
15085
|
+
.tf-insight,
|
|
15086
|
+
.tf-policy,
|
|
15087
|
+
.tf-consent-item,
|
|
15088
|
+
.tf-journal,
|
|
15089
|
+
.tf-glass
|
|
15090
|
+
)
|
|
15091
|
+
*
|
|
14011
15092
|
):not(.tf-solid):not([aria-pressed="true"]):hover {
|
|
14012
15093
|
background:
|
|
14013
15094
|
linear-gradient(var(--glass-hover), var(--glass-hover)) border-box,
|
|
@@ -14059,10 +15140,17 @@
|
|
|
14059
15140
|
.tf-card,
|
|
14060
15141
|
.tf-stat,
|
|
14061
15142
|
.tf-dock,
|
|
14062
|
-
.tf-sidebar,
|
|
15143
|
+
.tf-sidebar:not(.shell),
|
|
14063
15144
|
.tf-map-legend,
|
|
14064
15145
|
.tf-map-ctl,
|
|
14065
|
-
.tf-map-pop
|
|
15146
|
+
.tf-map-pop,
|
|
15147
|
+
.tf-vital,
|
|
15148
|
+
.tf-journal,
|
|
15149
|
+
.tf-goal,
|
|
15150
|
+
.tf-insight,
|
|
15151
|
+
.tf-consent-item,
|
|
15152
|
+
.tf-nw,
|
|
15153
|
+
.tf-policy
|
|
14066
15154
|
),
|
|
14067
15155
|
:where([data-kit="halo"]) [data-surface="glass"]
|
|
14068
15156
|
:is(
|
|
@@ -14070,10 +15158,17 @@
|
|
|
14070
15158
|
.tf-card,
|
|
14071
15159
|
.tf-stat,
|
|
14072
15160
|
.tf-dock,
|
|
14073
|
-
.tf-sidebar,
|
|
15161
|
+
.tf-sidebar:not(.shell),
|
|
14074
15162
|
.tf-map-legend,
|
|
14075
15163
|
.tf-map-ctl,
|
|
14076
|
-
.tf-map-pop
|
|
15164
|
+
.tf-map-pop,
|
|
15165
|
+
.tf-vital,
|
|
15166
|
+
.tf-journal,
|
|
15167
|
+
.tf-goal,
|
|
15168
|
+
.tf-insight,
|
|
15169
|
+
.tf-consent-item,
|
|
15170
|
+
.tf-nw,
|
|
15171
|
+
.tf-policy
|
|
14077
15172
|
) {
|
|
14078
15173
|
outline: 1px solid CanvasText;
|
|
14079
15174
|
outline-offset: -1px;
|
|
@@ -14102,11 +15197,13 @@
|
|
|
14102
15197
|
inset: 0;
|
|
14103
15198
|
z-index: 1;
|
|
14104
15199
|
display: grid;
|
|
14105
|
-
grid-template-columns:
|
|
15200
|
+
grid-template-columns:
|
|
15201
|
+
minmax(0, var(--floating-start, 320px)) minmax(0, 1fr)
|
|
15202
|
+
minmax(0, var(--floating-end, 340px));
|
|
14106
15203
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
14107
15204
|
grid-template-areas:
|
|
14108
15205
|
"top top top"
|
|
14109
|
-
"start
|
|
15206
|
+
"start controls end"
|
|
14110
15207
|
"bottom bottom bottom";
|
|
14111
15208
|
gap: var(--space-4);
|
|
14112
15209
|
padding: var(--space-4);
|
|
@@ -14137,16 +15234,42 @@
|
|
|
14137
15234
|
grid-area: bottom;
|
|
14138
15235
|
justify-self: center;
|
|
14139
15236
|
}
|
|
14140
|
-
:
|
|
15237
|
+
/* background controls and source notes: the free corner, clear of the panels and the dock */
|
|
15238
|
+
:where([data-kit="halo"]) .tf-floating-ui > .tf-floating-controls {
|
|
15239
|
+
grid-area: controls;
|
|
15240
|
+
align-self: end;
|
|
15241
|
+
justify-self: end;
|
|
15242
|
+
display: flex;
|
|
15243
|
+
flex-direction: column;
|
|
15244
|
+
align-items: flex-end;
|
|
15245
|
+
gap: var(--space-2);
|
|
14141
15246
|
pointer-events: none;
|
|
14142
15247
|
}
|
|
14143
|
-
:where([data-kit="halo"]) .tf-floating-
|
|
15248
|
+
:where([data-kit="halo"]) .tf-floating-controls > * {
|
|
14144
15249
|
pointer-events: auto;
|
|
14145
15250
|
}
|
|
14146
|
-
|
|
14147
|
-
|
|
14148
|
-
:
|
|
14149
|
-
|
|
15251
|
+
:where([data-kit="halo"]) .tf-floating-attribution {
|
|
15252
|
+
max-width: 100%;
|
|
15253
|
+
padding: 2px 8px;
|
|
15254
|
+
border-radius: var(--radius-sm);
|
|
15255
|
+
background: var(--surface);
|
|
15256
|
+
color: var(--ink-muted);
|
|
15257
|
+
font: 500 11px/16px var(--font-sans);
|
|
15258
|
+
overflow-wrap: anywhere;
|
|
15259
|
+
}
|
|
15260
|
+
:where([data-kit="halo"]) .tf-floating-handle {
|
|
15261
|
+
display: none;
|
|
15262
|
+
}
|
|
15263
|
+
:where([data-kit="halo"]) .tf-floating-ui > :is(.tf-floating-top, .tf-floating-bottom) {
|
|
15264
|
+
pointer-events: none;
|
|
15265
|
+
}
|
|
15266
|
+
:where([data-kit="halo"]) .tf-floating-ui > :is(.tf-floating-top, .tf-floating-bottom) > * {
|
|
15267
|
+
pointer-events: auto;
|
|
15268
|
+
}
|
|
15269
|
+
@container tf-floating (max-width: 720px) {
|
|
15270
|
+
/* on a phone the layout grows with its slots and the background fills behind them */
|
|
15271
|
+
:where([data-kit="halo"]) .tf-floating-ui {
|
|
15272
|
+
position: relative;
|
|
14150
15273
|
/* the padding counts into the height it inherits, so the bottom slot stays inside */
|
|
14151
15274
|
box-sizing: border-box;
|
|
14152
15275
|
min-height: inherit;
|
|
@@ -14162,6 +15285,75 @@
|
|
|
14162
15285
|
gap: var(--space-3);
|
|
14163
15286
|
padding: var(--space-3);
|
|
14164
15287
|
}
|
|
15288
|
+
:where([data-kit="halo"]) .tf-floating-ui > .tf-floating-controls {
|
|
15289
|
+
grid-area: auto;
|
|
15290
|
+
grid-row: 3;
|
|
15291
|
+
}
|
|
15292
|
+
/* the end slot as a bottom sheet over the background: a peek, or most of the height */
|
|
15293
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet .tf-floating-ui {
|
|
15294
|
+
grid-template-rows: auto auto minmax(120px, 1fr) auto;
|
|
15295
|
+
grid-template-areas:
|
|
15296
|
+
"top"
|
|
15297
|
+
"start"
|
|
15298
|
+
"."
|
|
15299
|
+
"bottom";
|
|
15300
|
+
padding-bottom: calc(var(--space-3) + 96px);
|
|
15301
|
+
}
|
|
15302
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet .tf-floating-end {
|
|
15303
|
+
position: absolute;
|
|
15304
|
+
left: var(--space-3);
|
|
15305
|
+
right: var(--space-3);
|
|
15306
|
+
bottom: 0;
|
|
15307
|
+
z-index: 2;
|
|
15308
|
+
max-height: 96px;
|
|
15309
|
+
overflow: hidden;
|
|
15310
|
+
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
|
|
15311
|
+
background: var(--surface);
|
|
15312
|
+
box-shadow: var(--shadow-card);
|
|
15313
|
+
transition: max-height var(--dur-base) var(--ease-out);
|
|
15314
|
+
}
|
|
15315
|
+
:where([data-kit="halo"])[data-surface="glass"].tf-floating.has-sheet .tf-floating-end, :where([data-kit="halo"]) [data-surface="glass"].tf-floating.has-sheet .tf-floating-end {
|
|
15316
|
+
background: var(--glass);
|
|
15317
|
+
-webkit-backdrop-filter: var(--glass-filter);
|
|
15318
|
+
backdrop-filter: var(--glass-filter);
|
|
15319
|
+
}
|
|
15320
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet.sheet-full .tf-floating-end {
|
|
15321
|
+
max-height: 75%;
|
|
15322
|
+
overflow-y: auto;
|
|
15323
|
+
}
|
|
15324
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet .tf-floating-handle {
|
|
15325
|
+
display: block;
|
|
15326
|
+
position: sticky;
|
|
15327
|
+
top: 0;
|
|
15328
|
+
z-index: 1;
|
|
15329
|
+
width: 100%;
|
|
15330
|
+
height: 24px;
|
|
15331
|
+
margin: 0;
|
|
15332
|
+
padding: 0;
|
|
15333
|
+
border: 0;
|
|
15334
|
+
background: transparent;
|
|
15335
|
+
cursor: pointer;
|
|
15336
|
+
}
|
|
15337
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet .tf-floating-handle::before {
|
|
15338
|
+
content: "";
|
|
15339
|
+
display: block;
|
|
15340
|
+
width: 40px;
|
|
15341
|
+
height: 4px;
|
|
15342
|
+
margin: 10px auto;
|
|
15343
|
+
border-radius: var(--radius-pill);
|
|
15344
|
+
background: var(--line-strong);
|
|
15345
|
+
}
|
|
15346
|
+
:where([data-kit="halo"]) .tf-floating.has-sheet .tf-floating-handle:focus-visible {
|
|
15347
|
+
outline: 2px solid var(--focus);
|
|
15348
|
+
outline-offset: -2px;
|
|
15349
|
+
}
|
|
15350
|
+
}
|
|
15351
|
+
|
|
15352
|
+
/* in a glass layout the attribution is glass too */
|
|
15353
|
+
:where([data-kit="halo"])[data-surface="glass"] .tf-floating-attribution, :where([data-kit="halo"]) [data-surface="glass"] .tf-floating-attribution {
|
|
15354
|
+
background: var(--glass);
|
|
15355
|
+
-webkit-backdrop-filter: var(--glass-filter);
|
|
15356
|
+
backdrop-filter: var(--glass-filter);
|
|
14165
15357
|
}
|
|
14166
15358
|
|
|
14167
15359
|
/* 09-motion.css */
|
|
@@ -14368,3 +15560,1373 @@
|
|
|
14368
15560
|
:where([data-kit="halo"])[data-motion="off"] .tf-ambient-field, :where([data-kit="halo"]) [data-motion="off"] .tf-ambient-field {
|
|
14369
15561
|
animation: none;
|
|
14370
15562
|
}
|
|
15563
|
+
|
|
15564
|
+
/* 11-life.css */
|
|
15565
|
+
/* Life: habits, mood, vitals, activity rings, sleep, medication, journal, goals, insights, consent */
|
|
15566
|
+
|
|
15567
|
+
/* HabitTracker */
|
|
15568
|
+
:where([data-kit="halo"]) .tf-habits {
|
|
15569
|
+
container: tf-habits / inline-size;
|
|
15570
|
+
display: grid;
|
|
15571
|
+
gap: 4px;
|
|
15572
|
+
min-width: 0;
|
|
15573
|
+
}
|
|
15574
|
+
:where([data-kit="halo"]) .tf-habit-days,
|
|
15575
|
+
:where([data-kit="halo"]) .tf-habit-marks {
|
|
15576
|
+
display: grid;
|
|
15577
|
+
grid-auto-flow: column;
|
|
15578
|
+
grid-auto-columns: 24px;
|
|
15579
|
+
gap: 6px;
|
|
15580
|
+
}
|
|
15581
|
+
:where([data-kit="halo"]) .tf-habit-days {
|
|
15582
|
+
justify-self: end;
|
|
15583
|
+
padding-right: 12px;
|
|
15584
|
+
font: 600 11px/16px var(--font-sans);
|
|
15585
|
+
color: var(--ink-muted);
|
|
15586
|
+
text-align: center;
|
|
15587
|
+
}
|
|
15588
|
+
:where([data-kit="halo"]) .tf-habit {
|
|
15589
|
+
display: grid;
|
|
15590
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
15591
|
+
align-items: center;
|
|
15592
|
+
gap: 12px;
|
|
15593
|
+
padding: 8px 12px;
|
|
15594
|
+
border-radius: var(--radius-md);
|
|
15595
|
+
}
|
|
15596
|
+
:where([data-kit="halo"]) .tf-habit:hover {
|
|
15597
|
+
background: var(--surface-sunken);
|
|
15598
|
+
}
|
|
15599
|
+
:where([data-kit="halo"]) .tf-habit-text {
|
|
15600
|
+
display: flex;
|
|
15601
|
+
flex-direction: column;
|
|
15602
|
+
min-width: 0;
|
|
15603
|
+
}
|
|
15604
|
+
:where([data-kit="halo"]) .tf-habit-text b {
|
|
15605
|
+
overflow: hidden;
|
|
15606
|
+
text-overflow: ellipsis;
|
|
15607
|
+
white-space: nowrap;
|
|
15608
|
+
font: 600 14px/20px var(--font-sans);
|
|
15609
|
+
}
|
|
15610
|
+
:where([data-kit="halo"]) .tf-habit-text small {
|
|
15611
|
+
display: flex;
|
|
15612
|
+
flex-wrap: wrap;
|
|
15613
|
+
gap: 4px 10px;
|
|
15614
|
+
font: 500 12px/16px var(--font-sans);
|
|
15615
|
+
color: var(--ink-muted);
|
|
15616
|
+
}
|
|
15617
|
+
:where([data-kit="halo"]) .tf-habit-streak {
|
|
15618
|
+
display: inline-flex;
|
|
15619
|
+
align-items: center;
|
|
15620
|
+
gap: 4px;
|
|
15621
|
+
color: var(--butter-ink);
|
|
15622
|
+
}
|
|
15623
|
+
:where([data-kit="halo"]) .tf-habit-mark {
|
|
15624
|
+
display: grid;
|
|
15625
|
+
place-items: center;
|
|
15626
|
+
width: 24px;
|
|
15627
|
+
height: 24px;
|
|
15628
|
+
box-sizing: border-box;
|
|
15629
|
+
padding: 0;
|
|
15630
|
+
border: 1.5px solid var(--line-strong);
|
|
15631
|
+
border-radius: 50%;
|
|
15632
|
+
background: transparent;
|
|
15633
|
+
color: var(--primary-foreground);
|
|
15634
|
+
}
|
|
15635
|
+
:where([data-kit="halo"]) .tf-habit-mark.done {
|
|
15636
|
+
border-color: var(--mint-ink);
|
|
15637
|
+
background: var(--mint-ink);
|
|
15638
|
+
}
|
|
15639
|
+
/* missed: an empty ring with a small cross; no entry: a faint dashed ring */
|
|
15640
|
+
:where([data-kit="halo"]) .tf-habit-mark.missed {
|
|
15641
|
+
color: var(--ink-subtle);
|
|
15642
|
+
}
|
|
15643
|
+
:where([data-kit="halo"]) .tf-habit-mark:not(.done):not(.missed) {
|
|
15644
|
+
border-style: dashed;
|
|
15645
|
+
border-color: var(--line);
|
|
15646
|
+
}
|
|
15647
|
+
:where([data-kit="halo"]) .tf-habit-mark.today {
|
|
15648
|
+
box-shadow:
|
|
15649
|
+
0 0 0 2px var(--surface),
|
|
15650
|
+
0 0 0 4px var(--line-strong);
|
|
15651
|
+
}
|
|
15652
|
+
/* narrow: the marks go under the name, the day labels line up with them */
|
|
15653
|
+
@container tf-habits (max-width: 400px) {
|
|
15654
|
+
:where([data-kit="halo"]) .tf-habit {
|
|
15655
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
15656
|
+
row-gap: 8px;
|
|
15657
|
+
}
|
|
15658
|
+
:where([data-kit="halo"]) .tf-habit-marks {
|
|
15659
|
+
grid-column: 1 / -1;
|
|
15660
|
+
}
|
|
15661
|
+
:where([data-kit="halo"]) .tf-habit-days {
|
|
15662
|
+
justify-self: start;
|
|
15663
|
+
padding: 0 0 0 12px;
|
|
15664
|
+
}
|
|
15665
|
+
}
|
|
15666
|
+
@container tf-habits (max-width: 240px) {
|
|
15667
|
+
:where([data-kit="halo"]) .tf-habit-days,
|
|
15668
|
+
:where([data-kit="halo"]) .tf-habit-marks {
|
|
15669
|
+
gap: 2px;
|
|
15670
|
+
}
|
|
15671
|
+
}
|
|
15672
|
+
:where([data-kit="halo"]) button.tf-habit-mark {
|
|
15673
|
+
cursor: pointer;
|
|
15674
|
+
}
|
|
15675
|
+
:where([data-kit="halo"]) button.tf-habit-mark:focus-visible {
|
|
15676
|
+
outline: 2px solid var(--focus);
|
|
15677
|
+
outline-offset: 4px;
|
|
15678
|
+
}
|
|
15679
|
+
|
|
15680
|
+
/* MoodPicker */
|
|
15681
|
+
:where([data-kit="halo"]) .tf-mood {
|
|
15682
|
+
min-width: 0;
|
|
15683
|
+
margin: 0;
|
|
15684
|
+
padding: 0;
|
|
15685
|
+
border: 0;
|
|
15686
|
+
}
|
|
15687
|
+
:where([data-kit="halo"]) .tf-mood-q {
|
|
15688
|
+
padding: 0;
|
|
15689
|
+
margin-bottom: 12px;
|
|
15690
|
+
font: 600 14px/20px var(--font-sans);
|
|
15691
|
+
}
|
|
15692
|
+
:where([data-kit="halo"]) .tf-mood-scale {
|
|
15693
|
+
container: tf-mood / inline-size;
|
|
15694
|
+
display: grid;
|
|
15695
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
15696
|
+
gap: 8px;
|
|
15697
|
+
}
|
|
15698
|
+
:where([data-kit="halo"]) .tf-mood-opt {
|
|
15699
|
+
position: relative;
|
|
15700
|
+
display: flex;
|
|
15701
|
+
flex-direction: column;
|
|
15702
|
+
align-items: center;
|
|
15703
|
+
justify-content: center;
|
|
15704
|
+
gap: 4px;
|
|
15705
|
+
min-width: 0;
|
|
15706
|
+
min-height: 72px;
|
|
15707
|
+
padding: 8px 4px;
|
|
15708
|
+
box-sizing: border-box;
|
|
15709
|
+
border-radius: var(--radius-md);
|
|
15710
|
+
color: var(--ink-muted);
|
|
15711
|
+
font: 600 12px/16px var(--font-sans);
|
|
15712
|
+
cursor: pointer;
|
|
15713
|
+
}
|
|
15714
|
+
/* the picked level keeps the tint its tf-t-* class gives it */
|
|
15715
|
+
:where([data-kit="halo"]) .tf-mood-opt:not(.on) {
|
|
15716
|
+
background: var(--surface-sunken);
|
|
15717
|
+
}
|
|
15718
|
+
:where([data-kit="halo"]) .tf-mood.compact .tf-mood-opt {
|
|
15719
|
+
min-height: 48px;
|
|
15720
|
+
}
|
|
15721
|
+
:where([data-kit="halo"]) .tf-mood-opt span {
|
|
15722
|
+
max-width: 100%;
|
|
15723
|
+
overflow: hidden;
|
|
15724
|
+
text-overflow: ellipsis;
|
|
15725
|
+
white-space: nowrap;
|
|
15726
|
+
}
|
|
15727
|
+
/* narrow: tighter cells so every word still fits */
|
|
15728
|
+
@container tf-mood (max-width: 300px) {
|
|
15729
|
+
:where([data-kit="halo"]) .tf-mood-opt {
|
|
15730
|
+
padding: 8px 2px;
|
|
15731
|
+
font-size: 11px;
|
|
15732
|
+
}
|
|
15733
|
+
}
|
|
15734
|
+
:where([data-kit="halo"]) .tf-mood-opt input {
|
|
15735
|
+
position: absolute;
|
|
15736
|
+
inset: 0;
|
|
15737
|
+
margin: 0;
|
|
15738
|
+
opacity: 0;
|
|
15739
|
+
cursor: pointer;
|
|
15740
|
+
}
|
|
15741
|
+
:where([data-kit="halo"]) .tf-mood-opt:hover {
|
|
15742
|
+
color: var(--ink);
|
|
15743
|
+
}
|
|
15744
|
+
:where([data-kit="halo"]) .tf-mood-opt.on {
|
|
15745
|
+
box-shadow: inset 0 0 0 2px currentColor;
|
|
15746
|
+
}
|
|
15747
|
+
:where([data-kit="halo"]) .tf-mood-opt:has(input:focus-visible) {
|
|
15748
|
+
outline: 2px solid var(--focus);
|
|
15749
|
+
outline-offset: 2px;
|
|
15750
|
+
}
|
|
15751
|
+
|
|
15752
|
+
/* VitalTile */
|
|
15753
|
+
:where([data-kit="halo"]) .tf-vital {
|
|
15754
|
+
display: flex;
|
|
15755
|
+
flex-direction: column;
|
|
15756
|
+
gap: 12px;
|
|
15757
|
+
min-width: 0;
|
|
15758
|
+
padding: 16px;
|
|
15759
|
+
border-radius: var(--radius-lg);
|
|
15760
|
+
background: var(--surface);
|
|
15761
|
+
box-shadow: var(--shadow-card);
|
|
15762
|
+
}
|
|
15763
|
+
:where([data-kit="halo"]) .tf-vital-head {
|
|
15764
|
+
display: flex;
|
|
15765
|
+
align-items: center;
|
|
15766
|
+
justify-content: space-between;
|
|
15767
|
+
gap: 8px;
|
|
15768
|
+
}
|
|
15769
|
+
:where([data-kit="halo"]) .tf-vital-head .tf-badge {
|
|
15770
|
+
flex: none;
|
|
15771
|
+
white-space: nowrap;
|
|
15772
|
+
}
|
|
15773
|
+
:where([data-kit="halo"]) .tf-vital-label {
|
|
15774
|
+
display: inline-flex;
|
|
15775
|
+
align-items: center;
|
|
15776
|
+
gap: 6px;
|
|
15777
|
+
min-width: 0;
|
|
15778
|
+
font: 600 13px/18px var(--font-sans);
|
|
15779
|
+
color: var(--ink-muted);
|
|
15780
|
+
}
|
|
15781
|
+
:where([data-kit="halo"]) .tf-vital-main {
|
|
15782
|
+
display: flex;
|
|
15783
|
+
align-items: flex-end;
|
|
15784
|
+
justify-content: space-between;
|
|
15785
|
+
gap: 12px;
|
|
15786
|
+
}
|
|
15787
|
+
:where([data-kit="halo"]) .tf-vital-value {
|
|
15788
|
+
font: 700 28px/34px var(--font-sans);
|
|
15789
|
+
letter-spacing: -0.02em;
|
|
15790
|
+
font-variant-numeric: tabular-nums;
|
|
15791
|
+
}
|
|
15792
|
+
:where([data-kit="halo"]) .tf-vital-value small {
|
|
15793
|
+
margin-left: 4px;
|
|
15794
|
+
font: 600 13px/18px var(--font-sans);
|
|
15795
|
+
letter-spacing: 0;
|
|
15796
|
+
color: var(--ink-muted);
|
|
15797
|
+
}
|
|
15798
|
+
:where([data-kit="halo"]) .tf-vital-band {
|
|
15799
|
+
position: relative;
|
|
15800
|
+
height: 8px;
|
|
15801
|
+
border-radius: var(--radius-pill);
|
|
15802
|
+
background: var(--surface-sunken);
|
|
15803
|
+
}
|
|
15804
|
+
:where([data-kit="halo"]) .tf-vital-normal {
|
|
15805
|
+
position: absolute;
|
|
15806
|
+
top: 0;
|
|
15807
|
+
bottom: 0;
|
|
15808
|
+
border-radius: var(--radius-pill);
|
|
15809
|
+
background: var(--mint);
|
|
15810
|
+
}
|
|
15811
|
+
:where([data-kit="halo"]) .tf-vital-dot {
|
|
15812
|
+
position: absolute;
|
|
15813
|
+
top: 50%;
|
|
15814
|
+
width: 14px;
|
|
15815
|
+
height: 14px;
|
|
15816
|
+
box-sizing: border-box;
|
|
15817
|
+
border: 3px solid var(--surface);
|
|
15818
|
+
border-radius: 50%;
|
|
15819
|
+
background: var(--mint-ink);
|
|
15820
|
+
translate: -50% -50%;
|
|
15821
|
+
}
|
|
15822
|
+
:where([data-kit="halo"]) .tf-vital.is-low .tf-vital-dot,
|
|
15823
|
+
:where([data-kit="halo"]) .tf-vital.is-high .tf-vital-dot {
|
|
15824
|
+
background: var(--butter-ink);
|
|
15825
|
+
}
|
|
15826
|
+
:where([data-kit="halo"]) .tf-vital-foot {
|
|
15827
|
+
display: flex;
|
|
15828
|
+
flex-wrap: wrap;
|
|
15829
|
+
justify-content: space-between;
|
|
15830
|
+
gap: 4px 12px;
|
|
15831
|
+
font: 500 12px/16px var(--font-sans);
|
|
15832
|
+
color: var(--ink-muted);
|
|
15833
|
+
}
|
|
15834
|
+
|
|
15835
|
+
/* ActivityRings */
|
|
15836
|
+
:where([data-kit="halo"]) .tf-rings {
|
|
15837
|
+
display: flex;
|
|
15838
|
+
flex-wrap: wrap;
|
|
15839
|
+
align-items: center;
|
|
15840
|
+
gap: 20px;
|
|
15841
|
+
min-width: 0;
|
|
15842
|
+
}
|
|
15843
|
+
:where([data-kit="halo"]) .tf-rings svg {
|
|
15844
|
+
flex: none;
|
|
15845
|
+
}
|
|
15846
|
+
:where([data-kit="halo"]) .tf-rings-legend {
|
|
15847
|
+
display: flex;
|
|
15848
|
+
flex-direction: column;
|
|
15849
|
+
gap: 8px;
|
|
15850
|
+
min-width: 0;
|
|
15851
|
+
margin: 0;
|
|
15852
|
+
padding: 0;
|
|
15853
|
+
list-style: none;
|
|
15854
|
+
}
|
|
15855
|
+
:where([data-kit="halo"]) .tf-rings-legend li {
|
|
15856
|
+
display: grid;
|
|
15857
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
15858
|
+
align-items: center;
|
|
15859
|
+
column-gap: 8px;
|
|
15860
|
+
}
|
|
15861
|
+
:where([data-kit="halo"]) .tf-rings-key {
|
|
15862
|
+
width: 10px;
|
|
15863
|
+
height: 10px;
|
|
15864
|
+
border-radius: 50%;
|
|
15865
|
+
}
|
|
15866
|
+
:where([data-kit="halo"]) .tf-rings-name {
|
|
15867
|
+
font: 600 12px/16px var(--font-sans);
|
|
15868
|
+
color: var(--ink-muted);
|
|
15869
|
+
}
|
|
15870
|
+
:where([data-kit="halo"]) .tf-rings-legend b {
|
|
15871
|
+
grid-column: 2;
|
|
15872
|
+
font: 700 14px/20px var(--font-sans);
|
|
15873
|
+
font-variant-numeric: tabular-nums;
|
|
15874
|
+
}
|
|
15875
|
+
|
|
15876
|
+
/* SleepChart */
|
|
15877
|
+
:where([data-kit="halo"]) .tf-sleep {
|
|
15878
|
+
display: flex;
|
|
15879
|
+
flex-direction: column;
|
|
15880
|
+
gap: 16px;
|
|
15881
|
+
min-width: 0;
|
|
15882
|
+
}
|
|
15883
|
+
:where([data-kit="halo"]) .tf-sleep-chart {
|
|
15884
|
+
display: flex;
|
|
15885
|
+
flex-direction: column;
|
|
15886
|
+
gap: 6px;
|
|
15887
|
+
}
|
|
15888
|
+
:where([data-kit="halo"]) .tf-sleep-lane {
|
|
15889
|
+
display: grid;
|
|
15890
|
+
grid-template-columns: 52px minmax(0, 1fr);
|
|
15891
|
+
align-items: center;
|
|
15892
|
+
gap: 12px;
|
|
15893
|
+
}
|
|
15894
|
+
:where([data-kit="halo"]) .tf-sleep-name {
|
|
15895
|
+
font: 600 12px/16px var(--font-sans);
|
|
15896
|
+
color: var(--ink-muted);
|
|
15897
|
+
}
|
|
15898
|
+
:where([data-kit="halo"]) .tf-sleep-track {
|
|
15899
|
+
position: relative;
|
|
15900
|
+
height: 20px;
|
|
15901
|
+
border-radius: var(--radius-sm);
|
|
15902
|
+
background: var(--surface-sunken);
|
|
15903
|
+
}
|
|
15904
|
+
:where([data-kit="halo"]) .tf-sleep-seg {
|
|
15905
|
+
position: absolute;
|
|
15906
|
+
top: 2px;
|
|
15907
|
+
bottom: 2px;
|
|
15908
|
+
min-width: 2px;
|
|
15909
|
+
border-radius: var(--radius-sm);
|
|
15910
|
+
}
|
|
15911
|
+
:where([data-kit="halo"]) .tf-sleep-axis {
|
|
15912
|
+
display: flex;
|
|
15913
|
+
justify-content: space-between;
|
|
15914
|
+
margin-left: 64px;
|
|
15915
|
+
font: 500 11px/16px var(--font-sans);
|
|
15916
|
+
color: var(--ink-muted);
|
|
15917
|
+
font-variant-numeric: tabular-nums;
|
|
15918
|
+
}
|
|
15919
|
+
:where([data-kit="halo"]) .tf-sleep-sum {
|
|
15920
|
+
display: flex;
|
|
15921
|
+
flex-wrap: wrap;
|
|
15922
|
+
align-items: center;
|
|
15923
|
+
justify-content: space-between;
|
|
15924
|
+
gap: 8px 16px;
|
|
15925
|
+
}
|
|
15926
|
+
:where([data-kit="halo"]) .tf-sleep-sum b {
|
|
15927
|
+
font: 700 14px/20px var(--font-sans);
|
|
15928
|
+
}
|
|
15929
|
+
:where([data-kit="halo"]) .tf-sleep-sum ul {
|
|
15930
|
+
display: flex;
|
|
15931
|
+
flex-wrap: wrap;
|
|
15932
|
+
gap: 4px 14px;
|
|
15933
|
+
margin: 0;
|
|
15934
|
+
padding: 0;
|
|
15935
|
+
list-style: none;
|
|
15936
|
+
}
|
|
15937
|
+
:where([data-kit="halo"]) .tf-sleep-sum li {
|
|
15938
|
+
display: inline-flex;
|
|
15939
|
+
align-items: center;
|
|
15940
|
+
gap: 6px;
|
|
15941
|
+
font: 500 12px/16px var(--font-sans);
|
|
15942
|
+
color: var(--ink-muted);
|
|
15943
|
+
}
|
|
15944
|
+
:where([data-kit="halo"]) .tf-sleep-sum li span:last-child {
|
|
15945
|
+
color: var(--ink);
|
|
15946
|
+
font-weight: 600;
|
|
15947
|
+
font-variant-numeric: tabular-nums;
|
|
15948
|
+
}
|
|
15949
|
+
|
|
15950
|
+
/* MedicationList */
|
|
15951
|
+
:where([data-kit="halo"]) .tf-meds {
|
|
15952
|
+
container: tf-meds / inline-size;
|
|
15953
|
+
display: flex;
|
|
15954
|
+
flex-direction: column;
|
|
15955
|
+
gap: 4px;
|
|
15956
|
+
min-width: 0;
|
|
15957
|
+
margin: 0;
|
|
15958
|
+
padding: 0;
|
|
15959
|
+
list-style: none;
|
|
15960
|
+
}
|
|
15961
|
+
:where([data-kit="halo"]) .tf-med {
|
|
15962
|
+
display: grid;
|
|
15963
|
+
grid-template-columns: 48px auto minmax(0, 1fr) auto;
|
|
15964
|
+
align-items: center;
|
|
15965
|
+
gap: 12px;
|
|
15966
|
+
padding: 8px 12px;
|
|
15967
|
+
border-radius: var(--radius-md);
|
|
15968
|
+
}
|
|
15969
|
+
:where([data-kit="halo"]) .tf-med.is-due {
|
|
15970
|
+
background: var(--surface-sunken);
|
|
15971
|
+
}
|
|
15972
|
+
:where([data-kit="halo"]) .tf-med-time {
|
|
15973
|
+
font: 600 13px/18px var(--font-sans);
|
|
15974
|
+
font-variant-numeric: tabular-nums;
|
|
15975
|
+
color: var(--ink-muted);
|
|
15976
|
+
}
|
|
15977
|
+
:where([data-kit="halo"]) .tf-med-text {
|
|
15978
|
+
display: flex;
|
|
15979
|
+
flex-direction: column;
|
|
15980
|
+
min-width: 0;
|
|
15981
|
+
}
|
|
15982
|
+
:where([data-kit="halo"]) .tf-med-text b {
|
|
15983
|
+
font: 600 14px/20px var(--font-sans);
|
|
15984
|
+
overflow-wrap: break-word;
|
|
15985
|
+
}
|
|
15986
|
+
:where([data-kit="halo"]) .tf-med-text small {
|
|
15987
|
+
font: 500 12px/16px var(--font-sans);
|
|
15988
|
+
color: var(--ink-muted);
|
|
15989
|
+
}
|
|
15990
|
+
:where([data-kit="halo"]) .tf-med.is-taken .tf-med-text b {
|
|
15991
|
+
color: var(--ink-muted);
|
|
15992
|
+
}
|
|
15993
|
+
:where([data-kit="halo"]) .tf-med-act {
|
|
15994
|
+
display: inline-flex;
|
|
15995
|
+
align-items: center;
|
|
15996
|
+
gap: 8px;
|
|
15997
|
+
}
|
|
15998
|
+
/* narrow: time, name and status; the icon gives way */
|
|
15999
|
+
@container tf-meds (max-width: 400px) {
|
|
16000
|
+
:where([data-kit="halo"]) .tf-med {
|
|
16001
|
+
grid-template-columns: 44px minmax(0, 1fr) auto;
|
|
16002
|
+
gap: 8px;
|
|
16003
|
+
padding: 8px;
|
|
16004
|
+
}
|
|
16005
|
+
:where([data-kit="halo"]) .tf-med > .tf-tinticon {
|
|
16006
|
+
display: none;
|
|
16007
|
+
}
|
|
16008
|
+
}
|
|
16009
|
+
|
|
16010
|
+
/* JournalEntry */
|
|
16011
|
+
:where([data-kit="halo"]) .tf-journal {
|
|
16012
|
+
display: flex;
|
|
16013
|
+
flex-direction: column;
|
|
16014
|
+
gap: 8px;
|
|
16015
|
+
min-width: 0;
|
|
16016
|
+
padding: 20px;
|
|
16017
|
+
border-radius: var(--radius-lg);
|
|
16018
|
+
background: var(--surface);
|
|
16019
|
+
box-shadow: var(--shadow-card);
|
|
16020
|
+
}
|
|
16021
|
+
:where([data-kit="halo"]) .tf-journal-head {
|
|
16022
|
+
display: flex;
|
|
16023
|
+
flex-wrap: wrap;
|
|
16024
|
+
align-items: center;
|
|
16025
|
+
justify-content: space-between;
|
|
16026
|
+
gap: 8px;
|
|
16027
|
+
font: 600 12px/16px var(--font-sans);
|
|
16028
|
+
color: var(--ink-muted);
|
|
16029
|
+
}
|
|
16030
|
+
:where([data-kit="halo"]) .tf-journal-mood {
|
|
16031
|
+
display: inline-flex;
|
|
16032
|
+
align-items: center;
|
|
16033
|
+
gap: 4px;
|
|
16034
|
+
padding: 2px 8px;
|
|
16035
|
+
border-radius: var(--radius-pill);
|
|
16036
|
+
}
|
|
16037
|
+
:where([data-kit="halo"]) .tf-journal-title {
|
|
16038
|
+
margin: 0;
|
|
16039
|
+
font: 700 16px/22px var(--font-sans);
|
|
16040
|
+
}
|
|
16041
|
+
:where([data-kit="halo"]) .tf-journal-body {
|
|
16042
|
+
font: 500 14px/22px var(--font-sans);
|
|
16043
|
+
color: var(--ink);
|
|
16044
|
+
overflow-wrap: anywhere;
|
|
16045
|
+
}
|
|
16046
|
+
:where([data-kit="halo"]) .tf-journal-body p {
|
|
16047
|
+
margin: 0 0 8px;
|
|
16048
|
+
}
|
|
16049
|
+
:where([data-kit="halo"]) .tf-journal-foot {
|
|
16050
|
+
display: flex;
|
|
16051
|
+
flex-wrap: wrap;
|
|
16052
|
+
align-items: center;
|
|
16053
|
+
justify-content: space-between;
|
|
16054
|
+
gap: 8px;
|
|
16055
|
+
padding-top: 4px;
|
|
16056
|
+
}
|
|
16057
|
+
:where([data-kit="halo"]) .tf-journal-tags {
|
|
16058
|
+
display: flex;
|
|
16059
|
+
flex-wrap: wrap;
|
|
16060
|
+
gap: 6px;
|
|
16061
|
+
}
|
|
16062
|
+
|
|
16063
|
+
/* GoalCard */
|
|
16064
|
+
:where([data-kit="halo"]) .tf-goal {
|
|
16065
|
+
display: flex;
|
|
16066
|
+
flex-direction: column;
|
|
16067
|
+
gap: 12px;
|
|
16068
|
+
min-width: 0;
|
|
16069
|
+
padding: 20px;
|
|
16070
|
+
border-radius: var(--radius-lg);
|
|
16071
|
+
background: var(--surface);
|
|
16072
|
+
box-shadow: var(--shadow-card);
|
|
16073
|
+
}
|
|
16074
|
+
/* narrow: the icon steps aside so the title keeps whole words */
|
|
16075
|
+
@container tf-goal (max-width: 280px) {
|
|
16076
|
+
:where([data-kit="halo"]) .tf-goal-head > .tf-tinticon {
|
|
16077
|
+
display: none;
|
|
16078
|
+
}
|
|
16079
|
+
}
|
|
16080
|
+
:where([data-kit="halo"]) .tf-goal-head {
|
|
16081
|
+
container: tf-goal / inline-size;
|
|
16082
|
+
display: flex;
|
|
16083
|
+
align-items: center;
|
|
16084
|
+
gap: 12px;
|
|
16085
|
+
}
|
|
16086
|
+
:where([data-kit="halo"]) .tf-goal-head .tf-option-text {
|
|
16087
|
+
flex: 1;
|
|
16088
|
+
padding: 0;
|
|
16089
|
+
}
|
|
16090
|
+
:where([data-kit="halo"]) .tf-goal-head b {
|
|
16091
|
+
font: 700 14px/20px var(--font-sans);
|
|
16092
|
+
}
|
|
16093
|
+
:where([data-kit="halo"]) .tf-goal-pct {
|
|
16094
|
+
font: 700 20px/26px var(--font-sans);
|
|
16095
|
+
font-variant-numeric: tabular-nums;
|
|
16096
|
+
}
|
|
16097
|
+
:where([data-kit="halo"]) .tf-goal-bar {
|
|
16098
|
+
height: 10px;
|
|
16099
|
+
overflow: hidden;
|
|
16100
|
+
border-radius: var(--radius-pill);
|
|
16101
|
+
background: var(--surface-sunken);
|
|
16102
|
+
}
|
|
16103
|
+
:where([data-kit="halo"]) .tf-goal-bar > span {
|
|
16104
|
+
display: block;
|
|
16105
|
+
height: 100%;
|
|
16106
|
+
border-radius: var(--radius-pill);
|
|
16107
|
+
}
|
|
16108
|
+
:where([data-kit="halo"]) .tf-goal-meta,
|
|
16109
|
+
:where([data-kit="halo"]) .tf-goal-note {
|
|
16110
|
+
margin: 0;
|
|
16111
|
+
font: 500 12px/16px var(--font-sans);
|
|
16112
|
+
color: var(--ink-muted);
|
|
16113
|
+
}
|
|
16114
|
+
:where([data-kit="halo"]) .tf-goal-steps {
|
|
16115
|
+
display: flex;
|
|
16116
|
+
flex-direction: column;
|
|
16117
|
+
gap: 6px;
|
|
16118
|
+
margin: 0;
|
|
16119
|
+
padding: 0;
|
|
16120
|
+
list-style: none;
|
|
16121
|
+
font: 500 13px/18px var(--font-sans);
|
|
16122
|
+
}
|
|
16123
|
+
:where([data-kit="halo"]) .tf-goal-steps li {
|
|
16124
|
+
display: flex;
|
|
16125
|
+
align-items: center;
|
|
16126
|
+
gap: 8px;
|
|
16127
|
+
}
|
|
16128
|
+
:where([data-kit="halo"]) .tf-goal-steps li.done {
|
|
16129
|
+
color: var(--ink-muted);
|
|
16130
|
+
}
|
|
16131
|
+
:where([data-kit="halo"]) .tf-goal-step {
|
|
16132
|
+
display: grid;
|
|
16133
|
+
place-items: center;
|
|
16134
|
+
flex: none;
|
|
16135
|
+
width: 16px;
|
|
16136
|
+
height: 16px;
|
|
16137
|
+
box-sizing: border-box;
|
|
16138
|
+
border: 1.5px solid var(--line-strong);
|
|
16139
|
+
border-radius: 50%;
|
|
16140
|
+
color: var(--primary-foreground);
|
|
16141
|
+
}
|
|
16142
|
+
:where([data-kit="halo"]) .tf-goal-steps li.done .tf-goal-step {
|
|
16143
|
+
border-color: var(--primary);
|
|
16144
|
+
background: var(--primary);
|
|
16145
|
+
}
|
|
16146
|
+
|
|
16147
|
+
/* InsightCard */
|
|
16148
|
+
:where([data-kit="halo"]) .tf-insight {
|
|
16149
|
+
display: flex;
|
|
16150
|
+
flex-direction: column;
|
|
16151
|
+
gap: 12px;
|
|
16152
|
+
min-width: 0;
|
|
16153
|
+
padding: 16px 16px 16px 20px;
|
|
16154
|
+
border-radius: var(--radius-lg);
|
|
16155
|
+
background: var(--surface);
|
|
16156
|
+
box-shadow:
|
|
16157
|
+
var(--shadow-card),
|
|
16158
|
+
inset 3px 0 0 var(--sky-ink);
|
|
16159
|
+
/* on glass the card takes a faint wash of its tone */
|
|
16160
|
+
--tint: var(--sky);
|
|
16161
|
+
}
|
|
16162
|
+
:where([data-kit="halo"]) .tf-insight.is-success {
|
|
16163
|
+
--tint: var(--mint);
|
|
16164
|
+
box-shadow:
|
|
16165
|
+
var(--shadow-card),
|
|
16166
|
+
inset 3px 0 0 var(--mint-ink);
|
|
16167
|
+
}
|
|
16168
|
+
:where([data-kit="halo"]) .tf-insight.is-warning {
|
|
16169
|
+
--tint: var(--butter);
|
|
16170
|
+
box-shadow:
|
|
16171
|
+
var(--shadow-card),
|
|
16172
|
+
inset 3px 0 0 var(--butter-ink);
|
|
16173
|
+
}
|
|
16174
|
+
:where([data-kit="halo"]) .tf-insight.is-highlight {
|
|
16175
|
+
--tint: var(--lilac);
|
|
16176
|
+
box-shadow:
|
|
16177
|
+
var(--shadow-card),
|
|
16178
|
+
inset 3px 0 0 var(--lilac-ink);
|
|
16179
|
+
}
|
|
16180
|
+
:where([data-kit="halo"]) .tf-insight-head {
|
|
16181
|
+
display: flex;
|
|
16182
|
+
align-items: flex-start;
|
|
16183
|
+
gap: 12px;
|
|
16184
|
+
}
|
|
16185
|
+
:where([data-kit="halo"]) .tf-insight-titles {
|
|
16186
|
+
display: flex;
|
|
16187
|
+
flex: 1;
|
|
16188
|
+
flex-direction: column;
|
|
16189
|
+
min-width: 0;
|
|
16190
|
+
}
|
|
16191
|
+
:where([data-kit="halo"]) .tf-insight-titles small {
|
|
16192
|
+
font: 600 12px/16px var(--font-sans);
|
|
16193
|
+
color: var(--ink-muted);
|
|
16194
|
+
}
|
|
16195
|
+
:where([data-kit="halo"]) .tf-insight-titles b {
|
|
16196
|
+
font: 700 15px/22px var(--font-sans);
|
|
16197
|
+
overflow-wrap: anywhere;
|
|
16198
|
+
}
|
|
16199
|
+
:where([data-kit="halo"]) .tf-insight-body {
|
|
16200
|
+
font: 500 14px/20px var(--font-sans);
|
|
16201
|
+
color: var(--ink);
|
|
16202
|
+
}
|
|
16203
|
+
:where([data-kit="halo"]) .tf-insight-why button {
|
|
16204
|
+
display: inline-flex;
|
|
16205
|
+
align-items: center;
|
|
16206
|
+
gap: 6px;
|
|
16207
|
+
min-height: 24px;
|
|
16208
|
+
padding: 0;
|
|
16209
|
+
border: 0;
|
|
16210
|
+
background: none;
|
|
16211
|
+
color: var(--ink-muted);
|
|
16212
|
+
font: 600 12px/16px var(--font-sans);
|
|
16213
|
+
cursor: pointer;
|
|
16214
|
+
}
|
|
16215
|
+
:where([data-kit="halo"]) .tf-insight-why button:hover {
|
|
16216
|
+
color: var(--ink);
|
|
16217
|
+
}
|
|
16218
|
+
:where([data-kit="halo"]) .tf-insight-why button:focus-visible {
|
|
16219
|
+
outline: 2px solid var(--focus);
|
|
16220
|
+
outline-offset: 2px;
|
|
16221
|
+
border-radius: var(--radius-sm);
|
|
16222
|
+
}
|
|
16223
|
+
:where([data-kit="halo"]) .tf-insight-why button[aria-expanded="true"] .tf-insight-chev {
|
|
16224
|
+
rotate: 180deg;
|
|
16225
|
+
}
|
|
16226
|
+
:where([data-kit="halo"]) .tf-insight-whytext {
|
|
16227
|
+
margin-top: 8px;
|
|
16228
|
+
padding: 12px;
|
|
16229
|
+
border-radius: var(--radius-md);
|
|
16230
|
+
background: var(--surface-sunken);
|
|
16231
|
+
font: 500 13px/18px var(--font-sans);
|
|
16232
|
+
color: var(--ink-muted);
|
|
16233
|
+
}
|
|
16234
|
+
:where([data-kit="halo"]) .tf-insight-actions {
|
|
16235
|
+
display: flex;
|
|
16236
|
+
flex-wrap: wrap;
|
|
16237
|
+
justify-content: flex-end;
|
|
16238
|
+
gap: 8px;
|
|
16239
|
+
}
|
|
16240
|
+
|
|
16241
|
+
/* ConsentList */
|
|
16242
|
+
:where([data-kit="halo"]) .tf-consent {
|
|
16243
|
+
display: flex;
|
|
16244
|
+
flex-direction: column;
|
|
16245
|
+
gap: 12px;
|
|
16246
|
+
min-width: 0;
|
|
16247
|
+
}
|
|
16248
|
+
:where([data-kit="halo"]) .tf-consent-item {
|
|
16249
|
+
display: flex;
|
|
16250
|
+
flex-direction: column;
|
|
16251
|
+
gap: 12px;
|
|
16252
|
+
padding: 16px;
|
|
16253
|
+
border-radius: var(--radius-lg);
|
|
16254
|
+
background: var(--surface);
|
|
16255
|
+
box-shadow: var(--shadow-card);
|
|
16256
|
+
}
|
|
16257
|
+
:where([data-kit="halo"]) .tf-consent-head {
|
|
16258
|
+
display: flex;
|
|
16259
|
+
flex-wrap: wrap;
|
|
16260
|
+
align-items: center;
|
|
16261
|
+
gap: 12px;
|
|
16262
|
+
}
|
|
16263
|
+
:where([data-kit="halo"]) .tf-consent-head .tf-option-text {
|
|
16264
|
+
flex: 1;
|
|
16265
|
+
min-width: 140px;
|
|
16266
|
+
padding: 0;
|
|
16267
|
+
}
|
|
16268
|
+
:where([data-kit="halo"]) .tf-consent-purpose {
|
|
16269
|
+
margin: 0;
|
|
16270
|
+
font: 500 13px/18px var(--font-sans);
|
|
16271
|
+
color: var(--ink-muted);
|
|
16272
|
+
}
|
|
16273
|
+
:where([data-kit="halo"]) .tf-consent-scopes {
|
|
16274
|
+
display: flex;
|
|
16275
|
+
flex-direction: column;
|
|
16276
|
+
margin: 0;
|
|
16277
|
+
padding: 0;
|
|
16278
|
+
list-style: none;
|
|
16279
|
+
}
|
|
16280
|
+
:where([data-kit="halo"]) .tf-consent-scopes li {
|
|
16281
|
+
display: flex;
|
|
16282
|
+
align-items: center;
|
|
16283
|
+
justify-content: space-between;
|
|
16284
|
+
gap: 12px;
|
|
16285
|
+
padding: 10px 0;
|
|
16286
|
+
border-top: 1px solid var(--line);
|
|
16287
|
+
}
|
|
16288
|
+
:where([data-kit="halo"]) .tf-consent-scopes .tf-option-text {
|
|
16289
|
+
min-width: 0;
|
|
16290
|
+
padding: 0;
|
|
16291
|
+
}
|
|
16292
|
+
:where([data-kit="halo"]) .tf-consent-req {
|
|
16293
|
+
flex: none;
|
|
16294
|
+
font: 600 12px/16px var(--font-sans);
|
|
16295
|
+
color: var(--ink-muted);
|
|
16296
|
+
}
|
|
16297
|
+
|
|
16298
|
+
/* 12-household.css */
|
|
16299
|
+
/* Life: budgets, subscriptions, net worth, deadlines, policies, coverage, claims, documents */
|
|
16300
|
+
|
|
16301
|
+
/* BudgetList */
|
|
16302
|
+
:where([data-kit="halo"]) .tf-budgets,
|
|
16303
|
+
:where([data-kit="halo"]) .tf-subs ul,
|
|
16304
|
+
:where([data-kit="halo"]) .tf-deadlines,
|
|
16305
|
+
:where([data-kit="halo"]) .tf-docs,
|
|
16306
|
+
:where([data-kit="halo"]) .tf-claim-steps,
|
|
16307
|
+
:where([data-kit="halo"]) .tf-nw-side ul {
|
|
16308
|
+
margin: 0;
|
|
16309
|
+
padding: 0;
|
|
16310
|
+
list-style: none;
|
|
16311
|
+
}
|
|
16312
|
+
:where([data-kit="halo"]) .tf-budgets {
|
|
16313
|
+
display: flex;
|
|
16314
|
+
flex-direction: column;
|
|
16315
|
+
gap: 4px;
|
|
16316
|
+
min-width: 0;
|
|
16317
|
+
}
|
|
16318
|
+
:where([data-kit="halo"]) .tf-budget {
|
|
16319
|
+
container: tf-budget / inline-size;
|
|
16320
|
+
display: flex;
|
|
16321
|
+
align-items: center;
|
|
16322
|
+
gap: 12px;
|
|
16323
|
+
width: 100%;
|
|
16324
|
+
padding: 10px 12px;
|
|
16325
|
+
box-sizing: border-box;
|
|
16326
|
+
border: 0;
|
|
16327
|
+
border-radius: var(--radius-md);
|
|
16328
|
+
background: transparent;
|
|
16329
|
+
color: var(--ink);
|
|
16330
|
+
font: inherit;
|
|
16331
|
+
text-align: left;
|
|
16332
|
+
}
|
|
16333
|
+
:where([data-kit="halo"]) button.tf-budget {
|
|
16334
|
+
cursor: pointer;
|
|
16335
|
+
}
|
|
16336
|
+
:where([data-kit="halo"]) button.tf-budget:hover {
|
|
16337
|
+
background: var(--accent);
|
|
16338
|
+
}
|
|
16339
|
+
:where([data-kit="halo"]) button.tf-budget:focus-visible {
|
|
16340
|
+
outline: 2px solid var(--focus);
|
|
16341
|
+
outline-offset: 2px;
|
|
16342
|
+
}
|
|
16343
|
+
:where([data-kit="halo"]) .tf-budget-main {
|
|
16344
|
+
display: flex;
|
|
16345
|
+
flex: 1;
|
|
16346
|
+
flex-direction: column;
|
|
16347
|
+
gap: 6px;
|
|
16348
|
+
min-width: 0;
|
|
16349
|
+
}
|
|
16350
|
+
:where([data-kit="halo"]) .tf-budget-top {
|
|
16351
|
+
display: flex;
|
|
16352
|
+
flex-wrap: wrap;
|
|
16353
|
+
align-items: baseline;
|
|
16354
|
+
justify-content: space-between;
|
|
16355
|
+
gap: 0 12px;
|
|
16356
|
+
}
|
|
16357
|
+
/* narrow: the icon steps aside so the category keeps its name */
|
|
16358
|
+
@container tf-budget (max-width: 300px) {
|
|
16359
|
+
:where([data-kit="halo"]) .tf-budget > .tf-tinticon {
|
|
16360
|
+
display: none;
|
|
16361
|
+
}
|
|
16362
|
+
}
|
|
16363
|
+
:where([data-kit="halo"]) .tf-budget-top b {
|
|
16364
|
+
min-width: 0;
|
|
16365
|
+
overflow: hidden;
|
|
16366
|
+
text-overflow: ellipsis;
|
|
16367
|
+
white-space: nowrap;
|
|
16368
|
+
font: 600 14px/20px var(--font-sans);
|
|
16369
|
+
}
|
|
16370
|
+
:where([data-kit="halo"]) .tf-budget-nums {
|
|
16371
|
+
flex: none;
|
|
16372
|
+
font: 700 13px/18px var(--font-sans);
|
|
16373
|
+
font-variant-numeric: tabular-nums;
|
|
16374
|
+
}
|
|
16375
|
+
:where([data-kit="halo"]) .tf-budget-nums small {
|
|
16376
|
+
font-weight: 500;
|
|
16377
|
+
color: var(--ink-muted);
|
|
16378
|
+
}
|
|
16379
|
+
:where([data-kit="halo"]) .tf-budget-bar {
|
|
16380
|
+
display: block;
|
|
16381
|
+
height: 8px;
|
|
16382
|
+
overflow: hidden;
|
|
16383
|
+
border-radius: var(--radius-pill);
|
|
16384
|
+
background: var(--surface-sunken);
|
|
16385
|
+
}
|
|
16386
|
+
:where([data-kit="halo"]) .tf-budget-bar > span {
|
|
16387
|
+
display: block;
|
|
16388
|
+
height: 100%;
|
|
16389
|
+
border-radius: var(--radius-pill);
|
|
16390
|
+
}
|
|
16391
|
+
:where([data-kit="halo"]) .tf-budget-left {
|
|
16392
|
+
font: 500 12px/16px var(--font-sans);
|
|
16393
|
+
color: var(--ink-muted);
|
|
16394
|
+
}
|
|
16395
|
+
:where([data-kit="halo"]) .tf-budget-left.over {
|
|
16396
|
+
color: var(--blush-ink);
|
|
16397
|
+
font-weight: 600;
|
|
16398
|
+
}
|
|
16399
|
+
|
|
16400
|
+
/* SubscriptionList */
|
|
16401
|
+
:where([data-kit="halo"]) .tf-subs {
|
|
16402
|
+
display: flex;
|
|
16403
|
+
flex-direction: column;
|
|
16404
|
+
gap: 8px;
|
|
16405
|
+
min-width: 0;
|
|
16406
|
+
}
|
|
16407
|
+
:where([data-kit="halo"]) .tf-subs ul {
|
|
16408
|
+
container: tf-subs / inline-size;
|
|
16409
|
+
display: flex;
|
|
16410
|
+
flex-direction: column;
|
|
16411
|
+
}
|
|
16412
|
+
:where([data-kit="halo"]) .tf-sub {
|
|
16413
|
+
display: flex;
|
|
16414
|
+
align-items: center;
|
|
16415
|
+
gap: 12px;
|
|
16416
|
+
padding: 10px 4px;
|
|
16417
|
+
border-bottom: 1px solid var(--line);
|
|
16418
|
+
}
|
|
16419
|
+
:where([data-kit="halo"]) .tf-sub:last-child {
|
|
16420
|
+
border-bottom: 0;
|
|
16421
|
+
}
|
|
16422
|
+
:where([data-kit="halo"]) .tf-sub-text {
|
|
16423
|
+
display: flex;
|
|
16424
|
+
flex: 1;
|
|
16425
|
+
flex-direction: column;
|
|
16426
|
+
min-width: 0;
|
|
16427
|
+
}
|
|
16428
|
+
:where([data-kit="halo"]) .tf-sub-text b {
|
|
16429
|
+
overflow: hidden;
|
|
16430
|
+
text-overflow: ellipsis;
|
|
16431
|
+
white-space: nowrap;
|
|
16432
|
+
font: 600 14px/20px var(--font-sans);
|
|
16433
|
+
}
|
|
16434
|
+
:where([data-kit="halo"]) .tf-sub-text small {
|
|
16435
|
+
font: 500 12px/16px var(--font-sans);
|
|
16436
|
+
color: var(--ink-muted);
|
|
16437
|
+
}
|
|
16438
|
+
:where([data-kit="halo"]) .tf-sub-amount {
|
|
16439
|
+
flex: none;
|
|
16440
|
+
font: 700 14px/20px var(--font-sans);
|
|
16441
|
+
font-variant-numeric: tabular-nums;
|
|
16442
|
+
text-align: right;
|
|
16443
|
+
}
|
|
16444
|
+
:where([data-kit="halo"]) .tf-sub-amount small {
|
|
16445
|
+
margin-left: 2px;
|
|
16446
|
+
font-weight: 500;
|
|
16447
|
+
color: var(--ink-muted);
|
|
16448
|
+
}
|
|
16449
|
+
/* narrow: amount and trial badge go under the name, the menu stays at the end */
|
|
16450
|
+
@container tf-subs (max-width: 380px) {
|
|
16451
|
+
:where([data-kit="halo"]) .tf-sub {
|
|
16452
|
+
display: grid;
|
|
16453
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
16454
|
+
gap: 4px 12px;
|
|
16455
|
+
align-items: center;
|
|
16456
|
+
}
|
|
16457
|
+
:where([data-kit="halo"]) .tf-sub > :first-child {
|
|
16458
|
+
grid-row: 1 / span 2;
|
|
16459
|
+
align-self: start;
|
|
16460
|
+
}
|
|
16461
|
+
:where([data-kit="halo"]) .tf-sub > .tf-sub-text,
|
|
16462
|
+
:where([data-kit="halo"]) .tf-sub > .tf-badge,
|
|
16463
|
+
:where([data-kit="halo"]) .tf-sub > .tf-sub-amount {
|
|
16464
|
+
grid-column: 2;
|
|
16465
|
+
justify-self: start;
|
|
16466
|
+
text-align: left;
|
|
16467
|
+
}
|
|
16468
|
+
:where([data-kit="halo"]) .tf-sub > :last-child:not(.tf-sub-amount) {
|
|
16469
|
+
grid-column: 3;
|
|
16470
|
+
grid-row: 1;
|
|
16471
|
+
}
|
|
16472
|
+
}
|
|
16473
|
+
:where([data-kit="halo"]) .tf-sub.is-cancelled .tf-sub-text b,
|
|
16474
|
+
:where([data-kit="halo"]) .tf-sub.is-cancelled .tf-sub-amount {
|
|
16475
|
+
color: var(--ink-muted);
|
|
16476
|
+
text-decoration: line-through;
|
|
16477
|
+
}
|
|
16478
|
+
:where([data-kit="halo"]) .tf-subs-total {
|
|
16479
|
+
display: flex;
|
|
16480
|
+
flex-wrap: wrap;
|
|
16481
|
+
align-items: baseline;
|
|
16482
|
+
justify-content: space-between;
|
|
16483
|
+
gap: 4px 12px;
|
|
16484
|
+
padding: 12px;
|
|
16485
|
+
border-radius: var(--radius-md);
|
|
16486
|
+
background: var(--surface-sunken);
|
|
16487
|
+
font: 500 13px/18px var(--font-sans);
|
|
16488
|
+
color: var(--ink-muted);
|
|
16489
|
+
}
|
|
16490
|
+
:where([data-kit="halo"]) .tf-subs-total b {
|
|
16491
|
+
color: var(--ink);
|
|
16492
|
+
font: 700 15px/20px var(--font-sans);
|
|
16493
|
+
}
|
|
16494
|
+
|
|
16495
|
+
/* NetWorthCard */
|
|
16496
|
+
:where([data-kit="halo"]) .tf-nw {
|
|
16497
|
+
display: flex;
|
|
16498
|
+
flex-direction: column;
|
|
16499
|
+
gap: 16px;
|
|
16500
|
+
min-width: 0;
|
|
16501
|
+
padding: 20px;
|
|
16502
|
+
border-radius: var(--radius-lg);
|
|
16503
|
+
background: var(--surface);
|
|
16504
|
+
box-shadow: var(--shadow-card);
|
|
16505
|
+
}
|
|
16506
|
+
:where([data-kit="halo"]) .tf-nw-head {
|
|
16507
|
+
display: flex;
|
|
16508
|
+
flex-wrap: wrap;
|
|
16509
|
+
align-items: flex-end;
|
|
16510
|
+
justify-content: space-between;
|
|
16511
|
+
gap: 12px;
|
|
16512
|
+
}
|
|
16513
|
+
:where([data-kit="halo"]) .tf-nw-head > :first-child {
|
|
16514
|
+
flex: 1 1 200px;
|
|
16515
|
+
}
|
|
16516
|
+
:where([data-kit="halo"]) .tf-nw-head > :last-child:not(:first-child) {
|
|
16517
|
+
flex: none;
|
|
16518
|
+
max-width: 45%;
|
|
16519
|
+
}
|
|
16520
|
+
:where([data-kit="halo"]) .tf-nw-title {
|
|
16521
|
+
font: 600 13px/18px var(--font-sans);
|
|
16522
|
+
color: var(--ink-muted);
|
|
16523
|
+
}
|
|
16524
|
+
:where([data-kit="halo"]) .tf-nw-total {
|
|
16525
|
+
font: 700 32px/38px var(--font-sans);
|
|
16526
|
+
letter-spacing: -0.02em;
|
|
16527
|
+
font-variant-numeric: tabular-nums;
|
|
16528
|
+
}
|
|
16529
|
+
:where([data-kit="halo"]) .tf-nw-change {
|
|
16530
|
+
display: inline-flex;
|
|
16531
|
+
align-items: center;
|
|
16532
|
+
gap: 4px;
|
|
16533
|
+
font: 600 12px/16px var(--font-sans);
|
|
16534
|
+
color: var(--mint-ink);
|
|
16535
|
+
}
|
|
16536
|
+
:where([data-kit="halo"]) .tf-nw-change.down {
|
|
16537
|
+
color: var(--blush-ink);
|
|
16538
|
+
}
|
|
16539
|
+
:where([data-kit="halo"]) .tf-nw-change.down .tf-ico {
|
|
16540
|
+
rotate: 180deg;
|
|
16541
|
+
}
|
|
16542
|
+
:where([data-kit="halo"]) .tf-nw-change span {
|
|
16543
|
+
font-weight: 500;
|
|
16544
|
+
color: var(--ink-muted);
|
|
16545
|
+
}
|
|
16546
|
+
:where([data-kit="halo"]) .tf-nw-sides {
|
|
16547
|
+
display: grid;
|
|
16548
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
16549
|
+
gap: 16px;
|
|
16550
|
+
}
|
|
16551
|
+
:where([data-kit="halo"]) .tf-nw-side {
|
|
16552
|
+
display: flex;
|
|
16553
|
+
flex-direction: column;
|
|
16554
|
+
gap: 8px;
|
|
16555
|
+
min-width: 0;
|
|
16556
|
+
}
|
|
16557
|
+
:where([data-kit="halo"]) .tf-nw-sidehead {
|
|
16558
|
+
display: flex;
|
|
16559
|
+
justify-content: space-between;
|
|
16560
|
+
gap: 8px;
|
|
16561
|
+
padding-bottom: 8px;
|
|
16562
|
+
border-bottom: 1px solid var(--line);
|
|
16563
|
+
font: 600 12px/16px var(--font-sans);
|
|
16564
|
+
color: var(--ink-muted);
|
|
16565
|
+
}
|
|
16566
|
+
:where([data-kit="halo"]) .tf-nw-sidehead b {
|
|
16567
|
+
color: var(--ink);
|
|
16568
|
+
font-variant-numeric: tabular-nums;
|
|
16569
|
+
}
|
|
16570
|
+
:where([data-kit="halo"]) .tf-nw-side li {
|
|
16571
|
+
display: flex;
|
|
16572
|
+
justify-content: space-between;
|
|
16573
|
+
gap: 8px;
|
|
16574
|
+
padding: 4px 0;
|
|
16575
|
+
font: 500 13px/18px var(--font-sans);
|
|
16576
|
+
}
|
|
16577
|
+
:where([data-kit="halo"]) .tf-nw-side li span:first-child {
|
|
16578
|
+
display: inline-flex;
|
|
16579
|
+
align-items: center;
|
|
16580
|
+
gap: 6px;
|
|
16581
|
+
min-width: 0;
|
|
16582
|
+
color: var(--ink-muted);
|
|
16583
|
+
}
|
|
16584
|
+
:where([data-kit="halo"]) .tf-nw-side li span:last-child {
|
|
16585
|
+
font-variant-numeric: tabular-nums;
|
|
16586
|
+
}
|
|
16587
|
+
|
|
16588
|
+
/* DeadlineList */
|
|
16589
|
+
:where([data-kit="halo"]) .tf-deadlines {
|
|
16590
|
+
display: flex;
|
|
16591
|
+
flex-direction: column;
|
|
16592
|
+
gap: 4px;
|
|
16593
|
+
min-width: 0;
|
|
16594
|
+
}
|
|
16595
|
+
:where([data-kit="halo"]) .tf-deadline {
|
|
16596
|
+
display: flex;
|
|
16597
|
+
flex-wrap: wrap;
|
|
16598
|
+
align-items: center;
|
|
16599
|
+
gap: 8px 12px;
|
|
16600
|
+
padding: 8px 12px;
|
|
16601
|
+
border-radius: var(--radius-md);
|
|
16602
|
+
}
|
|
16603
|
+
:where([data-kit="halo"]) .tf-deadline.is-overdue {
|
|
16604
|
+
background: var(--blush);
|
|
16605
|
+
}
|
|
16606
|
+
:where([data-kit="halo"]) .tf-deadline.is-soon {
|
|
16607
|
+
background: var(--surface-sunken);
|
|
16608
|
+
}
|
|
16609
|
+
:where([data-kit="halo"]) .tf-deadline-date {
|
|
16610
|
+
display: flex;
|
|
16611
|
+
flex: none;
|
|
16612
|
+
flex-direction: column;
|
|
16613
|
+
align-items: center;
|
|
16614
|
+
width: 40px;
|
|
16615
|
+
padding: 4px 0;
|
|
16616
|
+
border-radius: var(--radius-sm);
|
|
16617
|
+
background: var(--surface);
|
|
16618
|
+
box-shadow: inset 0 0 0 1px var(--line);
|
|
16619
|
+
}
|
|
16620
|
+
:where([data-kit="halo"]) .tf-deadline-date b {
|
|
16621
|
+
font: 700 16px/20px var(--font-sans);
|
|
16622
|
+
font-variant-numeric: tabular-nums;
|
|
16623
|
+
}
|
|
16624
|
+
:where([data-kit="halo"]) .tf-deadline-date small {
|
|
16625
|
+
font: 600 10px/12px var(--font-sans);
|
|
16626
|
+
text-transform: uppercase;
|
|
16627
|
+
color: var(--ink-muted);
|
|
16628
|
+
}
|
|
16629
|
+
:where([data-kit="halo"]) .tf-deadline-text {
|
|
16630
|
+
display: flex;
|
|
16631
|
+
flex: 1 1 160px;
|
|
16632
|
+
flex-direction: column;
|
|
16633
|
+
min-width: 0;
|
|
16634
|
+
}
|
|
16635
|
+
:where([data-kit="halo"]) .tf-deadline-text b {
|
|
16636
|
+
font: 600 14px/20px var(--font-sans);
|
|
16637
|
+
overflow-wrap: break-word;
|
|
16638
|
+
}
|
|
16639
|
+
:where([data-kit="halo"]) .tf-deadline-text small {
|
|
16640
|
+
font: 500 12px/16px var(--font-sans);
|
|
16641
|
+
color: var(--ink-muted);
|
|
16642
|
+
}
|
|
16643
|
+
:where([data-kit="halo"]) .tf-deadline-amount {
|
|
16644
|
+
font: 700 13px/18px var(--font-sans);
|
|
16645
|
+
font-variant-numeric: tabular-nums;
|
|
16646
|
+
}
|
|
16647
|
+
:where([data-kit="halo"]) .tf-deadline.is-done .tf-deadline-text b {
|
|
16648
|
+
color: var(--ink-muted);
|
|
16649
|
+
text-decoration: line-through;
|
|
16650
|
+
}
|
|
16651
|
+
:where([data-kit="halo"]) .tf-deadline-done {
|
|
16652
|
+
color: var(--mint-ink);
|
|
16653
|
+
}
|
|
16654
|
+
|
|
16655
|
+
/* PolicyCard */
|
|
16656
|
+
:where([data-kit="halo"]) .tf-policy {
|
|
16657
|
+
display: flex;
|
|
16658
|
+
flex-direction: column;
|
|
16659
|
+
gap: 16px;
|
|
16660
|
+
min-width: 0;
|
|
16661
|
+
padding: 20px;
|
|
16662
|
+
border-radius: var(--radius-lg);
|
|
16663
|
+
background: var(--surface);
|
|
16664
|
+
box-shadow: var(--shadow-card);
|
|
16665
|
+
}
|
|
16666
|
+
:where([data-kit="halo"]) .tf-policy-head {
|
|
16667
|
+
display: flex;
|
|
16668
|
+
flex-wrap: wrap;
|
|
16669
|
+
align-items: center;
|
|
16670
|
+
gap: 12px;
|
|
16671
|
+
}
|
|
16672
|
+
:where([data-kit="halo"]) .tf-policy-head .tf-option-text {
|
|
16673
|
+
flex: 1;
|
|
16674
|
+
min-width: 120px;
|
|
16675
|
+
padding: 0;
|
|
16676
|
+
}
|
|
16677
|
+
:where([data-kit="halo"]) .tf-policy-head b {
|
|
16678
|
+
font: 700 15px/20px var(--font-sans);
|
|
16679
|
+
}
|
|
16680
|
+
:where([data-kit="halo"]) .tf-policy-facts {
|
|
16681
|
+
display: grid;
|
|
16682
|
+
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
|
|
16683
|
+
gap: 12px;
|
|
16684
|
+
margin: 0;
|
|
16685
|
+
}
|
|
16686
|
+
:where([data-kit="halo"]) .tf-policy-facts div {
|
|
16687
|
+
min-width: 0;
|
|
16688
|
+
}
|
|
16689
|
+
:where([data-kit="halo"]) .tf-policy-facts dt {
|
|
16690
|
+
font: 600 11px/14px var(--font-sans);
|
|
16691
|
+
letter-spacing: 0.04em;
|
|
16692
|
+
text-transform: uppercase;
|
|
16693
|
+
color: var(--ink-muted);
|
|
16694
|
+
}
|
|
16695
|
+
:where([data-kit="halo"]) .tf-policy-facts dd {
|
|
16696
|
+
margin: 2px 0 0;
|
|
16697
|
+
font: 700 15px/20px var(--font-sans);
|
|
16698
|
+
font-variant-numeric: tabular-nums;
|
|
16699
|
+
overflow-wrap: break-word;
|
|
16700
|
+
}
|
|
16701
|
+
:where([data-kit="halo"]) .tf-policy-foot {
|
|
16702
|
+
display: flex;
|
|
16703
|
+
flex-wrap: wrap;
|
|
16704
|
+
align-items: center;
|
|
16705
|
+
justify-content: space-between;
|
|
16706
|
+
gap: 8px;
|
|
16707
|
+
padding-top: 12px;
|
|
16708
|
+
border-top: 1px solid var(--line);
|
|
16709
|
+
font: 500 12px/16px var(--font-sans);
|
|
16710
|
+
color: var(--ink-muted);
|
|
16711
|
+
}
|
|
16712
|
+
:where([data-kit="halo"]) .tf-policy-actions {
|
|
16713
|
+
display: inline-flex;
|
|
16714
|
+
flex-wrap: wrap;
|
|
16715
|
+
gap: 8px;
|
|
16716
|
+
}
|
|
16717
|
+
|
|
16718
|
+
/* CoverageMatrix */
|
|
16719
|
+
:where([data-kit="halo"]) .tf-coverage {
|
|
16720
|
+
display: flex;
|
|
16721
|
+
flex-direction: column;
|
|
16722
|
+
gap: 12px;
|
|
16723
|
+
min-width: 0;
|
|
16724
|
+
}
|
|
16725
|
+
:where([data-kit="halo"]) .tf-coverage-sum {
|
|
16726
|
+
display: flex;
|
|
16727
|
+
flex-wrap: wrap;
|
|
16728
|
+
gap: 8px 16px;
|
|
16729
|
+
}
|
|
16730
|
+
:where([data-kit="halo"]) .tf-coverage-box {
|
|
16731
|
+
container: tf-coverage / inline-size;
|
|
16732
|
+
}
|
|
16733
|
+
:where([data-kit="halo"]) .tf-coverage-table {
|
|
16734
|
+
width: 100%;
|
|
16735
|
+
border-collapse: collapse;
|
|
16736
|
+
}
|
|
16737
|
+
:where([data-kit="halo"]) .tf-coverage-table th,
|
|
16738
|
+
:where([data-kit="halo"]) .tf-coverage-table td {
|
|
16739
|
+
padding: 10px 8px;
|
|
16740
|
+
border-top: 1px solid var(--line);
|
|
16741
|
+
text-align: left;
|
|
16742
|
+
vertical-align: middle;
|
|
16743
|
+
}
|
|
16744
|
+
:where([data-kit="halo"]) .tf-coverage-table th {
|
|
16745
|
+
font-weight: inherit;
|
|
16746
|
+
}
|
|
16747
|
+
:where([data-kit="halo"]) .tf-coverage-table th b {
|
|
16748
|
+
display: block;
|
|
16749
|
+
font: 600 14px/20px var(--font-sans);
|
|
16750
|
+
}
|
|
16751
|
+
:where([data-kit="halo"]) .tf-coverage-table th small {
|
|
16752
|
+
font: 500 12px/16px var(--font-sans);
|
|
16753
|
+
color: var(--ink-muted);
|
|
16754
|
+
}
|
|
16755
|
+
:where([data-kit="halo"]) .tf-coverage-table td:nth-child(2) {
|
|
16756
|
+
white-space: nowrap;
|
|
16757
|
+
}
|
|
16758
|
+
:where([data-kit="halo"]) .tf-coverage-note {
|
|
16759
|
+
font: 500 13px/18px var(--font-sans);
|
|
16760
|
+
color: var(--ink-muted);
|
|
16761
|
+
}
|
|
16762
|
+
:where([data-kit="halo"]) .tf-coverage-table tr.is-none th b {
|
|
16763
|
+
color: var(--blush-ink);
|
|
16764
|
+
}
|
|
16765
|
+
/* narrow: each risk becomes a block, its status top right, the note underneath */
|
|
16766
|
+
@container tf-coverage (max-width: 440px) {
|
|
16767
|
+
:where([data-kit="halo"]) .tf-coverage-table,
|
|
16768
|
+
:where([data-kit="halo"]) .tf-coverage-table tbody {
|
|
16769
|
+
display: block;
|
|
16770
|
+
}
|
|
16771
|
+
:where([data-kit="halo"]) .tf-coverage-table tr {
|
|
16772
|
+
display: grid;
|
|
16773
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
16774
|
+
gap: 4px 12px;
|
|
16775
|
+
padding: 10px 4px;
|
|
16776
|
+
border-top: 1px solid var(--line);
|
|
16777
|
+
}
|
|
16778
|
+
:where([data-kit="halo"]) .tf-coverage-table th,
|
|
16779
|
+
:where([data-kit="halo"]) .tf-coverage-table td {
|
|
16780
|
+
padding: 0;
|
|
16781
|
+
border-top: 0;
|
|
16782
|
+
}
|
|
16783
|
+
:where([data-kit="halo"]) .tf-coverage-table td.tf-coverage-note {
|
|
16784
|
+
grid-column: 1 / -1;
|
|
16785
|
+
}
|
|
16786
|
+
}
|
|
16787
|
+
|
|
16788
|
+
/* ClaimTimeline */
|
|
16789
|
+
:where([data-kit="halo"]) .tf-claim {
|
|
16790
|
+
display: flex;
|
|
16791
|
+
flex-direction: column;
|
|
16792
|
+
gap: 16px;
|
|
16793
|
+
min-width: 0;
|
|
16794
|
+
}
|
|
16795
|
+
:where([data-kit="halo"]) .tf-claim-head {
|
|
16796
|
+
display: flex;
|
|
16797
|
+
flex-wrap: wrap;
|
|
16798
|
+
align-items: flex-start;
|
|
16799
|
+
justify-content: space-between;
|
|
16800
|
+
gap: 12px;
|
|
16801
|
+
}
|
|
16802
|
+
:where([data-kit="halo"]) .tf-claim-head .tf-option-text {
|
|
16803
|
+
padding: 0;
|
|
16804
|
+
}
|
|
16805
|
+
:where([data-kit="halo"]) .tf-claim-head b {
|
|
16806
|
+
font: 700 15px/20px var(--font-sans);
|
|
16807
|
+
}
|
|
16808
|
+
:where([data-kit="halo"]) .tf-claim-amount {
|
|
16809
|
+
display: flex;
|
|
16810
|
+
flex-direction: column;
|
|
16811
|
+
align-items: flex-end;
|
|
16812
|
+
font: 700 18px/24px var(--font-sans);
|
|
16813
|
+
font-variant-numeric: tabular-nums;
|
|
16814
|
+
}
|
|
16815
|
+
:where([data-kit="halo"]) .tf-claim-amount small {
|
|
16816
|
+
font: 600 11px/14px var(--font-sans);
|
|
16817
|
+
color: var(--ink-muted);
|
|
16818
|
+
}
|
|
16819
|
+
:where([data-kit="halo"]) .tf-claim-steps {
|
|
16820
|
+
display: flex;
|
|
16821
|
+
flex-direction: column;
|
|
16822
|
+
}
|
|
16823
|
+
:where([data-kit="halo"]) .tf-claim-steps li {
|
|
16824
|
+
position: relative;
|
|
16825
|
+
display: flex;
|
|
16826
|
+
gap: 12px;
|
|
16827
|
+
padding-bottom: 16px;
|
|
16828
|
+
}
|
|
16829
|
+
:where([data-kit="halo"]) .tf-claim-steps li:last-child {
|
|
16830
|
+
padding-bottom: 0;
|
|
16831
|
+
}
|
|
16832
|
+
:where([data-kit="halo"]) .tf-claim-steps li:not(:last-child)::before {
|
|
16833
|
+
content: "";
|
|
16834
|
+
position: absolute;
|
|
16835
|
+
top: 20px;
|
|
16836
|
+
bottom: 0;
|
|
16837
|
+
left: 9px;
|
|
16838
|
+
width: 2px;
|
|
16839
|
+
background: var(--line);
|
|
16840
|
+
}
|
|
16841
|
+
:where([data-kit="halo"]) .tf-claim-steps li.is-done:not(:last-child)::before {
|
|
16842
|
+
background: var(--mint-ink);
|
|
16843
|
+
}
|
|
16844
|
+
:where([data-kit="halo"]) .tf-claim-dot {
|
|
16845
|
+
position: relative;
|
|
16846
|
+
display: grid;
|
|
16847
|
+
place-items: center;
|
|
16848
|
+
flex: none;
|
|
16849
|
+
width: 20px;
|
|
16850
|
+
height: 20px;
|
|
16851
|
+
box-sizing: border-box;
|
|
16852
|
+
border: 2px solid var(--line-strong);
|
|
16853
|
+
border-radius: 50%;
|
|
16854
|
+
background: var(--surface);
|
|
16855
|
+
color: var(--primary-foreground);
|
|
16856
|
+
}
|
|
16857
|
+
:where([data-kit="halo"]) .tf-claim-steps li.is-done .tf-claim-dot {
|
|
16858
|
+
border-color: var(--mint-ink);
|
|
16859
|
+
background: var(--mint-ink);
|
|
16860
|
+
}
|
|
16861
|
+
:where([data-kit="halo"]) .tf-claim-steps li.is-current .tf-claim-dot {
|
|
16862
|
+
border-color: var(--primary);
|
|
16863
|
+
box-shadow: 0 0 0 4px var(--accent);
|
|
16864
|
+
}
|
|
16865
|
+
:where([data-kit="halo"]) .tf-claim-steps li.is-failed .tf-claim-dot {
|
|
16866
|
+
border-color: var(--blush-ink);
|
|
16867
|
+
background: var(--blush-ink);
|
|
16868
|
+
}
|
|
16869
|
+
:where([data-kit="halo"]) .tf-claim-text {
|
|
16870
|
+
display: flex;
|
|
16871
|
+
flex-direction: column;
|
|
16872
|
+
min-width: 0;
|
|
16873
|
+
}
|
|
16874
|
+
:where([data-kit="halo"]) .tf-claim-text b {
|
|
16875
|
+
font: 600 14px/20px var(--font-sans);
|
|
16876
|
+
}
|
|
16877
|
+
:where([data-kit="halo"]) .tf-claim-steps li.is-todo .tf-claim-text b {
|
|
16878
|
+
color: var(--ink-muted);
|
|
16879
|
+
font-weight: 500;
|
|
16880
|
+
}
|
|
16881
|
+
:where([data-kit="halo"]) .tf-claim-text small {
|
|
16882
|
+
font: 500 12px/16px var(--font-sans);
|
|
16883
|
+
color: var(--ink-muted);
|
|
16884
|
+
}
|
|
16885
|
+
|
|
16886
|
+
/* DocumentList */
|
|
16887
|
+
:where([data-kit="halo"]) .tf-docs {
|
|
16888
|
+
display: flex;
|
|
16889
|
+
flex-direction: column;
|
|
16890
|
+
gap: 4px;
|
|
16891
|
+
min-width: 0;
|
|
16892
|
+
}
|
|
16893
|
+
:where([data-kit="halo"]) .tf-doc {
|
|
16894
|
+
display: flex;
|
|
16895
|
+
flex-wrap: wrap;
|
|
16896
|
+
align-items: center;
|
|
16897
|
+
gap: 8px 12px;
|
|
16898
|
+
width: 100%;
|
|
16899
|
+
padding: 10px 12px;
|
|
16900
|
+
box-sizing: border-box;
|
|
16901
|
+
border: 0;
|
|
16902
|
+
border-radius: var(--radius-md);
|
|
16903
|
+
background: transparent;
|
|
16904
|
+
color: var(--ink);
|
|
16905
|
+
font: inherit;
|
|
16906
|
+
text-align: left;
|
|
16907
|
+
}
|
|
16908
|
+
:where([data-kit="halo"]) button.tf-doc {
|
|
16909
|
+
cursor: pointer;
|
|
16910
|
+
}
|
|
16911
|
+
:where([data-kit="halo"]) button.tf-doc:hover {
|
|
16912
|
+
background: var(--accent);
|
|
16913
|
+
}
|
|
16914
|
+
:where([data-kit="halo"]) button.tf-doc:focus-visible {
|
|
16915
|
+
outline: 2px solid var(--focus);
|
|
16916
|
+
outline-offset: 2px;
|
|
16917
|
+
}
|
|
16918
|
+
:where([data-kit="halo"]) .tf-doc-text {
|
|
16919
|
+
display: flex;
|
|
16920
|
+
flex: 1 1 160px;
|
|
16921
|
+
flex-direction: column;
|
|
16922
|
+
min-width: 0;
|
|
16923
|
+
}
|
|
16924
|
+
:where([data-kit="halo"]) .tf-doc-text b {
|
|
16925
|
+
font: 600 14px/20px var(--font-sans);
|
|
16926
|
+
overflow-wrap: break-word;
|
|
16927
|
+
}
|
|
16928
|
+
:where([data-kit="halo"]) .tf-doc-text small,
|
|
16929
|
+
:where([data-kit="halo"]) .tf-doc-valid {
|
|
16930
|
+
font: 500 12px/16px var(--font-sans);
|
|
16931
|
+
color: var(--ink-muted);
|
|
16932
|
+
}
|