@twentyfirstmedia/pro 0.6.0 → 0.8.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/dist/scoped.css CHANGED
@@ -14396,6 +14396,37 @@
14396
14396
  }
14397
14397
  }
14398
14398
 
14399
+ /* Fluid actions: an action row measures itself, so its buttons answer to the box it sits in (a
14400
+ thin card, a side panel, a phone) instead of the window. When the row is narrow it wraps and
14401
+ its buttons share the full width; when it is very narrow each button takes a line. The rows are
14402
+ the kit's own footers and action bars, and plain `.tf-row`s of buttons placed directly in a
14403
+ column box (panel, card, dialog, form …), where they always span the box. */
14404
+ :where([data-kit="pro"]) :is(
14405
+ .tf-modal-foot,
14406
+ .tf-card-foot,
14407
+ .tf-approval-foot,
14408
+ .tf-review-actions,
14409
+ .tf-cookie-actions,
14410
+ .tf-push-actions,
14411
+ .tf-insight-actions,
14412
+ .tf-journal-foot,
14413
+ :is(.tf-panel, .tf-card, .tf-modal, .tf-drawer, .tf-popover, .tf-form, .tf-col)
14414
+ > .tf-row:not(:has(> :not(.tf-btn, .tf-iconbtn)))
14415
+ ) {
14416
+ container: tf-actions / inline-size;
14417
+ flex-wrap: wrap;
14418
+ }
14419
+ @container tf-actions (max-width: 400px) {
14420
+ :where([data-kit="pro"]) .tf-btn {
14421
+ flex: 1 1 auto;
14422
+ }
14423
+ }
14424
+ @container tf-actions (max-width: 240px) {
14425
+ :where([data-kit="pro"]) .tf-btn {
14426
+ flex-basis: 100%;
14427
+ }
14428
+ }
14429
+
14399
14430
  /* 07-polish.css */
14400
14431
  /* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
14401
14432
  /* ───────────── Polish ─────────────
@@ -14605,10 +14636,24 @@
14605
14636
  .tf-card,
14606
14637
  .tf-stat,
14607
14638
  .tf-dock,
14608
- .tf-sidebar,
14639
+ .tf-sidebar:not(.shell),
14609
14640
  .tf-map-legend,
14610
14641
  .tf-map-ctl,
14611
- .tf-map-pop
14642
+ .tf-map-pop,
14643
+ .tf-vital,
14644
+ .tf-journal,
14645
+ .tf-goal,
14646
+ .tf-insight,
14647
+ .tf-consent-item,
14648
+ .tf-nw,
14649
+ .tf-policy,
14650
+ .tf-connector,
14651
+ .tf-device,
14652
+ .tf-vehicle,
14653
+ .tf-nowplaying,
14654
+ .tf-workout,
14655
+ .tf-booking,
14656
+ .tf-scorecard
14612
14657
  ):not(
14613
14658
  :is(
14614
14659
  .tf-panel,
@@ -14624,6 +14669,20 @@
14624
14669
  .tf-palette,
14625
14670
  .tf-modal,
14626
14671
  .tf-drawer,
14672
+ .tf-vital,
14673
+ .tf-journal,
14674
+ .tf-goal,
14675
+ .tf-insight,
14676
+ .tf-consent-item,
14677
+ .tf-nw,
14678
+ .tf-policy,
14679
+ .tf-connector,
14680
+ .tf-device,
14681
+ .tf-vehicle,
14682
+ .tf-nowplaying,
14683
+ .tf-workout,
14684
+ .tf-booking,
14685
+ .tf-scorecard,
14627
14686
  .tf-glass
14628
14687
  )
14629
14688
  *
@@ -14634,10 +14693,24 @@
14634
14693
  .tf-card,
14635
14694
  .tf-stat,
14636
14695
  .tf-dock,
14637
- .tf-sidebar,
14696
+ .tf-sidebar:not(.shell),
14638
14697
  .tf-map-legend,
14639
14698
  .tf-map-ctl,
14640
- .tf-map-pop
14699
+ .tf-map-pop,
14700
+ .tf-vital,
14701
+ .tf-journal,
14702
+ .tf-goal,
14703
+ .tf-insight,
14704
+ .tf-consent-item,
14705
+ .tf-nw,
14706
+ .tf-policy,
14707
+ .tf-connector,
14708
+ .tf-device,
14709
+ .tf-vehicle,
14710
+ .tf-nowplaying,
14711
+ .tf-workout,
14712
+ .tf-booking,
14713
+ .tf-scorecard
14641
14714
  ):not(
14642
14715
  :is(
14643
14716
  .tf-panel,
@@ -14653,6 +14726,20 @@
14653
14726
  .tf-palette,
14654
14727
  .tf-modal,
14655
14728
  .tf-drawer,
14729
+ .tf-vital,
14730
+ .tf-journal,
14731
+ .tf-goal,
14732
+ .tf-insight,
14733
+ .tf-consent-item,
14734
+ .tf-nw,
14735
+ .tf-policy,
14736
+ .tf-connector,
14737
+ .tf-device,
14738
+ .tf-vehicle,
14739
+ .tf-nowplaying,
14740
+ .tf-workout,
14741
+ .tf-booking,
14742
+ .tf-scorecard,
14656
14743
  .tf-glass
14657
14744
  )
14658
14745
  *
@@ -14769,6 +14856,17 @@
14769
14856
  .tf-modal,
14770
14857
  .tf-drawer,
14771
14858
  .tf-glass,
14859
+ .tf-insight,
14860
+ .tf-policy,
14861
+ .tf-consent-item,
14862
+ .tf-journal,
14863
+ .tf-connector,
14864
+ .tf-device,
14865
+ .tf-vehicle,
14866
+ .tf-nowplaying,
14867
+ .tf-workout,
14868
+ .tf-booking,
14869
+ .tf-scorecard,
14772
14870
  .tf-btngroup,
14773
14871
  .tf-map-ctl,
14774
14872
  .tf-topbar
@@ -14798,6 +14896,17 @@
14798
14896
  .tf-modal,
14799
14897
  .tf-drawer,
14800
14898
  .tf-glass,
14899
+ .tf-insight,
14900
+ .tf-policy,
14901
+ .tf-consent-item,
14902
+ .tf-journal,
14903
+ .tf-connector,
14904
+ .tf-device,
14905
+ .tf-vehicle,
14906
+ .tf-nowplaying,
14907
+ .tf-workout,
14908
+ .tf-booking,
14909
+ .tf-scorecard,
14801
14910
  .tf-btngroup,
14802
14911
  .tf-map-ctl,
14803
14912
  .tf-topbar
@@ -14823,10 +14932,52 @@
14823
14932
  }
14824
14933
  :where([data-kit="pro"])[data-surface="glass"]
14825
14934
  :is(.tf-iconbtn-soft, .tf-iconbtn-outline, .tf-btn-secondary, .tf-chip):not(
14826
- :is(.tf-panel, .tf-card, .tf-dock, .tf-popover, .tf-menu, .tf-modal, .tf-drawer, .tf-glass) *
14935
+ :is(
14936
+ .tf-panel,
14937
+ .tf-card,
14938
+ .tf-dock,
14939
+ .tf-popover,
14940
+ .tf-menu,
14941
+ .tf-modal,
14942
+ .tf-drawer,
14943
+ .tf-insight,
14944
+ .tf-policy,
14945
+ .tf-consent-item,
14946
+ .tf-journal,
14947
+ .tf-connector,
14948
+ .tf-device,
14949
+ .tf-vehicle,
14950
+ .tf-nowplaying,
14951
+ .tf-workout,
14952
+ .tf-booking,
14953
+ .tf-scorecard,
14954
+ .tf-glass
14955
+ )
14956
+ *
14827
14957
  ):not(.tf-solid):not([aria-pressed="true"]):hover, :where([data-kit="pro"]) [data-surface="glass"]
14828
14958
  :is(.tf-iconbtn-soft, .tf-iconbtn-outline, .tf-btn-secondary, .tf-chip):not(
14829
- :is(.tf-panel, .tf-card, .tf-dock, .tf-popover, .tf-menu, .tf-modal, .tf-drawer, .tf-glass) *
14959
+ :is(
14960
+ .tf-panel,
14961
+ .tf-card,
14962
+ .tf-dock,
14963
+ .tf-popover,
14964
+ .tf-menu,
14965
+ .tf-modal,
14966
+ .tf-drawer,
14967
+ .tf-insight,
14968
+ .tf-policy,
14969
+ .tf-consent-item,
14970
+ .tf-journal,
14971
+ .tf-connector,
14972
+ .tf-device,
14973
+ .tf-vehicle,
14974
+ .tf-nowplaying,
14975
+ .tf-workout,
14976
+ .tf-booking,
14977
+ .tf-scorecard,
14978
+ .tf-glass
14979
+ )
14980
+ *
14830
14981
  ):not(.tf-solid):not([aria-pressed="true"]):hover {
14831
14982
  background:
14832
14983
  linear-gradient(var(--glass-hover), var(--glass-hover)) border-box,
@@ -14878,10 +15029,24 @@
14878
15029
  .tf-card,
14879
15030
  .tf-stat,
14880
15031
  .tf-dock,
14881
- .tf-sidebar,
15032
+ .tf-sidebar:not(.shell),
14882
15033
  .tf-map-legend,
14883
15034
  .tf-map-ctl,
14884
- .tf-map-pop
15035
+ .tf-map-pop,
15036
+ .tf-vital,
15037
+ .tf-journal,
15038
+ .tf-goal,
15039
+ .tf-insight,
15040
+ .tf-consent-item,
15041
+ .tf-nw,
15042
+ .tf-policy,
15043
+ .tf-connector,
15044
+ .tf-device,
15045
+ .tf-vehicle,
15046
+ .tf-nowplaying,
15047
+ .tf-workout,
15048
+ .tf-booking,
15049
+ .tf-scorecard
14885
15050
  ),
14886
15051
  :where([data-kit="pro"]) [data-surface="glass"]
14887
15052
  :is(
@@ -14889,10 +15054,24 @@
14889
15054
  .tf-card,
14890
15055
  .tf-stat,
14891
15056
  .tf-dock,
14892
- .tf-sidebar,
15057
+ .tf-sidebar:not(.shell),
14893
15058
  .tf-map-legend,
14894
15059
  .tf-map-ctl,
14895
- .tf-map-pop
15060
+ .tf-map-pop,
15061
+ .tf-vital,
15062
+ .tf-journal,
15063
+ .tf-goal,
15064
+ .tf-insight,
15065
+ .tf-consent-item,
15066
+ .tf-nw,
15067
+ .tf-policy,
15068
+ .tf-connector,
15069
+ .tf-device,
15070
+ .tf-vehicle,
15071
+ .tf-nowplaying,
15072
+ .tf-workout,
15073
+ .tf-booking,
15074
+ .tf-scorecard
14896
15075
  ) {
14897
15076
  outline: 1px solid CanvasText;
14898
15077
  outline-offset: -1px;
@@ -15287,6 +15466,2429 @@
15287
15466
  animation: none;
15288
15467
  }
15289
15468
 
15469
+ /* 11-life.css */
15470
+ /* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
15471
+ /* Life: habits, mood, vitals, activity rings, sleep, medication, journal, goals, insights, consent */
15472
+
15473
+ /* HabitTracker */
15474
+ :where([data-kit="pro"]) .tf-habits {
15475
+ container: tf-habits / inline-size;
15476
+ display: grid;
15477
+ gap: 4px;
15478
+ min-width: 0;
15479
+ }
15480
+ :where([data-kit="pro"]) .tf-habit-days,
15481
+ :where([data-kit="pro"]) .tf-habit-marks {
15482
+ display: grid;
15483
+ grid-auto-flow: column;
15484
+ grid-auto-columns: 24px;
15485
+ gap: 6px;
15486
+ }
15487
+ :where([data-kit="pro"]) .tf-habit-days {
15488
+ justify-self: end;
15489
+ padding-right: 12px;
15490
+ font: 500 11px/16px var(--font-sans);
15491
+ color: var(--ink-muted);
15492
+ text-align: center;
15493
+ }
15494
+ :where([data-kit="pro"]) .tf-habit {
15495
+ display: grid;
15496
+ grid-template-columns: auto minmax(0, 1fr) auto;
15497
+ align-items: center;
15498
+ gap: 12px;
15499
+ padding: 8px 12px;
15500
+ border-radius: var(--radius-md);
15501
+ }
15502
+ :where([data-kit="pro"]) .tf-habit:hover {
15503
+ background: var(--surface-sunken);
15504
+ }
15505
+ :where([data-kit="pro"]) .tf-habit-text {
15506
+ display: flex;
15507
+ flex-direction: column;
15508
+ min-width: 0;
15509
+ }
15510
+ :where([data-kit="pro"]) .tf-habit-text b {
15511
+ overflow: hidden;
15512
+ text-overflow: ellipsis;
15513
+ white-space: nowrap;
15514
+ font: 500 14px/20px var(--font-sans);
15515
+ }
15516
+ :where([data-kit="pro"]) .tf-habit-text small {
15517
+ display: flex;
15518
+ flex-wrap: wrap;
15519
+ gap: 4px 10px;
15520
+ font: 500 12px/16px var(--font-sans);
15521
+ color: var(--ink-muted);
15522
+ }
15523
+ :where([data-kit="pro"]) .tf-habit-streak {
15524
+ display: inline-flex;
15525
+ align-items: center;
15526
+ gap: 4px;
15527
+ color: var(--butter-ink);
15528
+ }
15529
+ :where([data-kit="pro"]) .tf-habit-mark {
15530
+ display: grid;
15531
+ place-items: center;
15532
+ width: 24px;
15533
+ height: 24px;
15534
+ box-sizing: border-box;
15535
+ padding: 0;
15536
+ border: 1.5px solid var(--line-strong);
15537
+ border-radius: var(--radius-1);
15538
+ background: transparent;
15539
+ color: var(--primary-foreground);
15540
+ }
15541
+ :where([data-kit="pro"]) .tf-habit-mark.done {
15542
+ border-color: var(--mint-ink);
15543
+ background: var(--mint-ink);
15544
+ }
15545
+ /* missed: an empty ring with a small cross; no entry: a faint dashed ring */
15546
+ :where([data-kit="pro"]) .tf-habit-mark.missed {
15547
+ color: var(--ink-subtle);
15548
+ }
15549
+ :where([data-kit="pro"]) .tf-habit-mark:not(.done):not(.missed) {
15550
+ border-style: dashed;
15551
+ border-color: var(--line);
15552
+ }
15553
+ :where([data-kit="pro"]) .tf-habit-mark.today {
15554
+ box-shadow:
15555
+ 0 0 0 2px var(--surface),
15556
+ 0 0 0 4px var(--line-strong);
15557
+ }
15558
+ /* narrow: the marks go under the name, the day labels line up with them */
15559
+ @container tf-habits (max-width: 400px) {
15560
+ :where([data-kit="pro"]) .tf-habit {
15561
+ grid-template-columns: auto minmax(0, 1fr);
15562
+ row-gap: 8px;
15563
+ }
15564
+ :where([data-kit="pro"]) .tf-habit-marks {
15565
+ grid-column: 1 / -1;
15566
+ }
15567
+ :where([data-kit="pro"]) .tf-habit-days {
15568
+ justify-self: start;
15569
+ padding: 0 0 0 12px;
15570
+ }
15571
+ }
15572
+ @container tf-habits (max-width: 240px) {
15573
+ :where([data-kit="pro"]) .tf-habit-days,
15574
+ :where([data-kit="pro"]) .tf-habit-marks {
15575
+ gap: 2px;
15576
+ }
15577
+ }
15578
+ :where([data-kit="pro"]) button.tf-habit-mark {
15579
+ cursor: pointer;
15580
+ }
15581
+ :where([data-kit="pro"]) button.tf-habit-mark:focus-visible {
15582
+ outline: 2px solid var(--focus);
15583
+ outline-offset: 4px;
15584
+ }
15585
+
15586
+ /* MoodPicker */
15587
+ :where([data-kit="pro"]) .tf-mood {
15588
+ min-width: 0;
15589
+ margin: 0;
15590
+ padding: 0;
15591
+ border: 0;
15592
+ }
15593
+ :where([data-kit="pro"]) .tf-mood-q {
15594
+ padding: 0;
15595
+ margin-bottom: 12px;
15596
+ font: 500 14px/20px var(--font-sans);
15597
+ }
15598
+ :where([data-kit="pro"]) .tf-mood-scale {
15599
+ container: tf-mood / inline-size;
15600
+ display: grid;
15601
+ grid-template-columns: repeat(5, minmax(0, 1fr));
15602
+ gap: 8px;
15603
+ }
15604
+ :where([data-kit="pro"]) .tf-mood-opt {
15605
+ position: relative;
15606
+ display: flex;
15607
+ flex-direction: column;
15608
+ align-items: center;
15609
+ justify-content: center;
15610
+ gap: 4px;
15611
+ min-width: 0;
15612
+ min-height: 72px;
15613
+ padding: 8px 4px;
15614
+ box-sizing: border-box;
15615
+ border-radius: var(--radius-md);
15616
+ color: var(--ink-muted);
15617
+ font: 500 12px/16px var(--font-sans);
15618
+ cursor: pointer;
15619
+ }
15620
+ /* the picked level keeps the tint its tf-t-* class gives it */
15621
+ :where([data-kit="pro"]) .tf-mood-opt:not(.on) {
15622
+ background: var(--surface-sunken);
15623
+ }
15624
+ :where([data-kit="pro"]) .tf-mood.compact .tf-mood-opt {
15625
+ min-height: 48px;
15626
+ }
15627
+ :where([data-kit="pro"]) .tf-mood-opt span {
15628
+ max-width: 100%;
15629
+ overflow: hidden;
15630
+ text-overflow: ellipsis;
15631
+ white-space: nowrap;
15632
+ }
15633
+ /* narrow: tighter cells so every word still fits */
15634
+ @container tf-mood (max-width: 300px) {
15635
+ :where([data-kit="pro"]) .tf-mood-opt {
15636
+ padding: 8px 2px;
15637
+ font-size: 11px;
15638
+ }
15639
+ }
15640
+ :where([data-kit="pro"]) .tf-mood-opt input {
15641
+ position: absolute;
15642
+ inset: 0;
15643
+ margin: 0;
15644
+ opacity: 0;
15645
+ cursor: pointer;
15646
+ }
15647
+ :where([data-kit="pro"]) .tf-mood-opt:hover {
15648
+ color: var(--ink);
15649
+ }
15650
+ :where([data-kit="pro"]) .tf-mood-opt.on {
15651
+ box-shadow: inset 0 0 0 2px currentColor;
15652
+ }
15653
+ :where([data-kit="pro"]) .tf-mood-opt:has(input:focus-visible) {
15654
+ outline: 2px solid var(--focus);
15655
+ outline-offset: 2px;
15656
+ }
15657
+
15658
+ /* VitalTile */
15659
+ :where([data-kit="pro"]) .tf-vital {
15660
+ display: flex;
15661
+ flex-direction: column;
15662
+ gap: 12px;
15663
+ min-width: 0;
15664
+ padding: 16px;
15665
+ border-radius: var(--radius-lg);
15666
+ background: var(--surface);
15667
+ box-shadow: 0 0 0 var(--line-width) var(--line);
15668
+ }
15669
+ :where([data-kit="pro"]) .tf-vital-head {
15670
+ display: flex;
15671
+ align-items: center;
15672
+ justify-content: space-between;
15673
+ gap: 8px;
15674
+ }
15675
+ :where([data-kit="pro"]) .tf-vital-head .tf-badge {
15676
+ flex: none;
15677
+ white-space: nowrap;
15678
+ }
15679
+ :where([data-kit="pro"]) .tf-vital-label {
15680
+ display: inline-flex;
15681
+ align-items: center;
15682
+ gap: 6px;
15683
+ min-width: 0;
15684
+ font: 500 13px/18px var(--font-sans);
15685
+ color: var(--ink-muted);
15686
+ }
15687
+ :where([data-kit="pro"]) .tf-vital-main {
15688
+ display: flex;
15689
+ align-items: flex-end;
15690
+ justify-content: space-between;
15691
+ gap: 12px;
15692
+ }
15693
+ :where([data-kit="pro"]) .tf-vital-value {
15694
+ font: 600 22px/28px var(--font-sans);
15695
+ letter-spacing: -0.02em;
15696
+ font-variant-numeric: tabular-nums;
15697
+ }
15698
+ :where([data-kit="pro"]) .tf-vital-value small {
15699
+ margin-left: 4px;
15700
+ font: 500 13px/18px var(--font-sans);
15701
+ letter-spacing: 0;
15702
+ color: var(--ink-muted);
15703
+ }
15704
+ :where([data-kit="pro"]) .tf-vital-band {
15705
+ position: relative;
15706
+ height: 8px;
15707
+ border-radius: var(--radius-pill);
15708
+ background: var(--surface-sunken);
15709
+ }
15710
+ :where([data-kit="pro"]) .tf-vital-normal {
15711
+ position: absolute;
15712
+ top: 0;
15713
+ bottom: 0;
15714
+ border-radius: var(--radius-pill);
15715
+ background: var(--mint);
15716
+ }
15717
+ :where([data-kit="pro"]) .tf-vital-dot {
15718
+ position: absolute;
15719
+ top: 50%;
15720
+ width: 14px;
15721
+ height: 14px;
15722
+ box-sizing: border-box;
15723
+ border: 3px solid var(--surface);
15724
+ border-radius: var(--radius-full);
15725
+ background: var(--mint-ink);
15726
+ translate: -50% -50%;
15727
+ }
15728
+ :where([data-kit="pro"]) .tf-vital.is-low .tf-vital-dot,
15729
+ :where([data-kit="pro"]) .tf-vital.is-high .tf-vital-dot {
15730
+ background: var(--butter-ink);
15731
+ }
15732
+ :where([data-kit="pro"]) .tf-vital-foot {
15733
+ display: flex;
15734
+ flex-wrap: wrap;
15735
+ justify-content: space-between;
15736
+ gap: 4px 12px;
15737
+ font: 500 12px/16px var(--font-sans);
15738
+ color: var(--ink-muted);
15739
+ }
15740
+
15741
+ /* ActivityRings */
15742
+ :where([data-kit="pro"]) .tf-rings {
15743
+ display: flex;
15744
+ flex-wrap: wrap;
15745
+ align-items: center;
15746
+ gap: 20px;
15747
+ min-width: 0;
15748
+ }
15749
+ :where([data-kit="pro"]) .tf-rings svg {
15750
+ flex: none;
15751
+ }
15752
+ :where([data-kit="pro"]) .tf-rings-legend {
15753
+ display: flex;
15754
+ flex-direction: column;
15755
+ gap: 8px;
15756
+ min-width: 0;
15757
+ margin: 0;
15758
+ padding: 0;
15759
+ list-style: none;
15760
+ }
15761
+ :where([data-kit="pro"]) .tf-rings-legend li {
15762
+ display: grid;
15763
+ grid-template-columns: auto minmax(0, 1fr);
15764
+ align-items: center;
15765
+ column-gap: 8px;
15766
+ }
15767
+ :where([data-kit="pro"]) .tf-rings-key {
15768
+ width: 10px;
15769
+ height: 10px;
15770
+ border-radius: var(--radius-1);
15771
+ }
15772
+ :where([data-kit="pro"]) .tf-rings-name {
15773
+ font: 500 12px/16px var(--font-sans);
15774
+ color: var(--ink-muted);
15775
+ }
15776
+ :where([data-kit="pro"]) .tf-rings-legend b {
15777
+ grid-column: 2;
15778
+ font: 600 14px/20px var(--font-sans);
15779
+ font-variant-numeric: tabular-nums;
15780
+ }
15781
+
15782
+ /* SleepChart */
15783
+ :where([data-kit="pro"]) .tf-sleep {
15784
+ display: flex;
15785
+ flex-direction: column;
15786
+ gap: 16px;
15787
+ min-width: 0;
15788
+ }
15789
+ :where([data-kit="pro"]) .tf-sleep-chart {
15790
+ display: flex;
15791
+ flex-direction: column;
15792
+ gap: 6px;
15793
+ }
15794
+ :where([data-kit="pro"]) .tf-sleep-lane {
15795
+ display: grid;
15796
+ grid-template-columns: 52px minmax(0, 1fr);
15797
+ align-items: center;
15798
+ gap: 12px;
15799
+ }
15800
+ :where([data-kit="pro"]) .tf-sleep-name {
15801
+ font: 500 12px/16px var(--font-sans);
15802
+ color: var(--ink-muted);
15803
+ }
15804
+ :where([data-kit="pro"]) .tf-sleep-track {
15805
+ position: relative;
15806
+ height: 20px;
15807
+ border-radius: var(--radius-sm);
15808
+ background: var(--surface-sunken);
15809
+ }
15810
+ :where([data-kit="pro"]) .tf-sleep-seg {
15811
+ position: absolute;
15812
+ top: 2px;
15813
+ bottom: 2px;
15814
+ min-width: 2px;
15815
+ border-radius: var(--radius-sm);
15816
+ }
15817
+ :where([data-kit="pro"]) .tf-sleep-axis {
15818
+ display: flex;
15819
+ justify-content: space-between;
15820
+ margin-left: 64px;
15821
+ font: 500 11px/16px var(--font-sans);
15822
+ color: var(--ink-muted);
15823
+ font-variant-numeric: tabular-nums;
15824
+ }
15825
+ :where([data-kit="pro"]) .tf-sleep-sum {
15826
+ display: flex;
15827
+ flex-wrap: wrap;
15828
+ align-items: center;
15829
+ justify-content: space-between;
15830
+ gap: 8px 16px;
15831
+ }
15832
+ :where([data-kit="pro"]) .tf-sleep-sum b {
15833
+ font: 600 14px/20px var(--font-sans);
15834
+ }
15835
+ :where([data-kit="pro"]) .tf-sleep-sum ul {
15836
+ display: flex;
15837
+ flex-wrap: wrap;
15838
+ gap: 4px 14px;
15839
+ margin: 0;
15840
+ padding: 0;
15841
+ list-style: none;
15842
+ }
15843
+ :where([data-kit="pro"]) .tf-sleep-sum li {
15844
+ display: inline-flex;
15845
+ align-items: center;
15846
+ gap: 6px;
15847
+ font: 500 12px/16px var(--font-sans);
15848
+ color: var(--ink-muted);
15849
+ }
15850
+ :where([data-kit="pro"]) .tf-sleep-sum li span:last-child {
15851
+ color: var(--ink);
15852
+ font-weight: 500;
15853
+ font-variant-numeric: tabular-nums;
15854
+ }
15855
+
15856
+ /* MedicationList */
15857
+ :where([data-kit="pro"]) .tf-meds {
15858
+ container: tf-meds / inline-size;
15859
+ display: flex;
15860
+ flex-direction: column;
15861
+ gap: 4px;
15862
+ min-width: 0;
15863
+ margin: 0;
15864
+ padding: 0;
15865
+ list-style: none;
15866
+ }
15867
+ :where([data-kit="pro"]) .tf-med {
15868
+ display: grid;
15869
+ grid-template-columns: 48px auto minmax(0, 1fr) auto;
15870
+ align-items: center;
15871
+ gap: 12px;
15872
+ padding: 8px 12px;
15873
+ border-radius: var(--radius-md);
15874
+ }
15875
+ :where([data-kit="pro"]) .tf-med.is-due {
15876
+ background: var(--surface-sunken);
15877
+ }
15878
+ :where([data-kit="pro"]) .tf-med-time {
15879
+ font: 500 13px/18px var(--font-sans);
15880
+ font-variant-numeric: tabular-nums;
15881
+ color: var(--ink-muted);
15882
+ }
15883
+ :where([data-kit="pro"]) .tf-med-text {
15884
+ display: flex;
15885
+ flex-direction: column;
15886
+ min-width: 0;
15887
+ }
15888
+ :where([data-kit="pro"]) .tf-med-text b {
15889
+ font: 500 14px/20px var(--font-sans);
15890
+ overflow-wrap: break-word;
15891
+ }
15892
+ :where([data-kit="pro"]) .tf-med-text small {
15893
+ font: 500 12px/16px var(--font-sans);
15894
+ color: var(--ink-muted);
15895
+ }
15896
+ :where([data-kit="pro"]) .tf-med.is-taken .tf-med-text b {
15897
+ color: var(--ink-muted);
15898
+ }
15899
+ :where([data-kit="pro"]) .tf-med-act {
15900
+ display: inline-flex;
15901
+ align-items: center;
15902
+ gap: 8px;
15903
+ }
15904
+ /* narrow: time, name and status; the icon gives way */
15905
+ @container tf-meds (max-width: 400px) {
15906
+ :where([data-kit="pro"]) .tf-med {
15907
+ grid-template-columns: 44px minmax(0, 1fr) auto;
15908
+ gap: 8px;
15909
+ padding: 8px;
15910
+ }
15911
+ :where([data-kit="pro"]) .tf-med > .tf-tinticon {
15912
+ display: none;
15913
+ }
15914
+ }
15915
+
15916
+ /* JournalEntry */
15917
+ :where([data-kit="pro"]) .tf-journal {
15918
+ display: flex;
15919
+ flex-direction: column;
15920
+ gap: 8px;
15921
+ min-width: 0;
15922
+ padding: 20px;
15923
+ border-radius: var(--radius-lg);
15924
+ background: var(--surface);
15925
+ box-shadow: 0 0 0 var(--line-width) var(--line);
15926
+ }
15927
+ :where([data-kit="pro"]) .tf-journal-head {
15928
+ display: flex;
15929
+ flex-wrap: wrap;
15930
+ align-items: center;
15931
+ justify-content: space-between;
15932
+ gap: 8px;
15933
+ font: 500 12px/16px var(--font-sans);
15934
+ color: var(--ink-muted);
15935
+ }
15936
+ :where([data-kit="pro"]) .tf-journal-mood {
15937
+ display: inline-flex;
15938
+ align-items: center;
15939
+ gap: 4px;
15940
+ padding: 2px 8px;
15941
+ border-radius: var(--radius-pill);
15942
+ }
15943
+ :where([data-kit="pro"]) .tf-journal-title {
15944
+ margin: 0;
15945
+ font: 600 14px/20px var(--font-sans);
15946
+ }
15947
+ :where([data-kit="pro"]) .tf-journal-body {
15948
+ font: 500 14px/20px var(--font-sans);
15949
+ color: var(--ink);
15950
+ overflow-wrap: anywhere;
15951
+ }
15952
+ :where([data-kit="pro"]) .tf-journal-body p {
15953
+ margin: 0 0 8px;
15954
+ }
15955
+ :where([data-kit="pro"]) .tf-journal-foot {
15956
+ display: flex;
15957
+ flex-wrap: wrap;
15958
+ align-items: center;
15959
+ justify-content: space-between;
15960
+ gap: 8px;
15961
+ padding-top: 4px;
15962
+ }
15963
+ :where([data-kit="pro"]) .tf-journal-tags {
15964
+ display: flex;
15965
+ flex-wrap: wrap;
15966
+ gap: 6px;
15967
+ }
15968
+
15969
+ /* GoalCard */
15970
+ :where([data-kit="pro"]) .tf-goal {
15971
+ display: flex;
15972
+ flex-direction: column;
15973
+ gap: 12px;
15974
+ min-width: 0;
15975
+ padding: 20px;
15976
+ border-radius: var(--radius-lg);
15977
+ background: var(--surface);
15978
+ box-shadow: 0 0 0 var(--line-width) var(--line);
15979
+ }
15980
+ /* narrow: the icon steps aside so the title keeps whole words */
15981
+ @container tf-goal (max-width: 280px) {
15982
+ :where([data-kit="pro"]) .tf-goal-head > .tf-tinticon {
15983
+ display: none;
15984
+ }
15985
+ }
15986
+ :where([data-kit="pro"]) .tf-goal-head {
15987
+ container: tf-goal / inline-size;
15988
+ display: flex;
15989
+ align-items: center;
15990
+ gap: 12px;
15991
+ }
15992
+ :where([data-kit="pro"]) .tf-goal-head .tf-option-text {
15993
+ flex: 1;
15994
+ padding: 0;
15995
+ }
15996
+ :where([data-kit="pro"]) .tf-goal-head b {
15997
+ font: 600 14px/20px var(--font-sans);
15998
+ }
15999
+ :where([data-kit="pro"]) .tf-goal-pct {
16000
+ font: 600 18px/24px var(--font-sans);
16001
+ font-variant-numeric: tabular-nums;
16002
+ }
16003
+ :where([data-kit="pro"]) .tf-goal-bar {
16004
+ height: 10px;
16005
+ overflow: hidden;
16006
+ border-radius: var(--radius-pill);
16007
+ background: var(--surface-sunken);
16008
+ }
16009
+ :where([data-kit="pro"]) .tf-goal-bar > span {
16010
+ display: block;
16011
+ height: 100%;
16012
+ border-radius: var(--radius-pill);
16013
+ }
16014
+ :where([data-kit="pro"]) .tf-goal-meta,
16015
+ :where([data-kit="pro"]) .tf-goal-note {
16016
+ margin: 0;
16017
+ font: 500 12px/16px var(--font-sans);
16018
+ color: var(--ink-muted);
16019
+ }
16020
+ :where([data-kit="pro"]) .tf-goal-steps {
16021
+ display: flex;
16022
+ flex-direction: column;
16023
+ gap: 6px;
16024
+ margin: 0;
16025
+ padding: 0;
16026
+ list-style: none;
16027
+ font: 500 13px/18px var(--font-sans);
16028
+ }
16029
+ :where([data-kit="pro"]) .tf-goal-steps li {
16030
+ display: flex;
16031
+ align-items: center;
16032
+ gap: 8px;
16033
+ }
16034
+ :where([data-kit="pro"]) .tf-goal-steps li.done {
16035
+ color: var(--ink-muted);
16036
+ }
16037
+ :where([data-kit="pro"]) .tf-goal-step {
16038
+ display: grid;
16039
+ place-items: center;
16040
+ flex: none;
16041
+ width: 16px;
16042
+ height: 16px;
16043
+ box-sizing: border-box;
16044
+ border: 1.5px solid var(--line-strong);
16045
+ border-radius: var(--radius-1);
16046
+ color: var(--primary-foreground);
16047
+ }
16048
+ :where([data-kit="pro"]) .tf-goal-steps li.done .tf-goal-step {
16049
+ border-color: var(--primary);
16050
+ background: var(--primary);
16051
+ }
16052
+
16053
+ /* InsightCard */
16054
+ :where([data-kit="pro"]) .tf-insight {
16055
+ display: flex;
16056
+ flex-direction: column;
16057
+ gap: 12px;
16058
+ min-width: 0;
16059
+ padding: 16px 16px 16px 20px;
16060
+ border-radius: var(--radius-lg);
16061
+ background: var(--surface);
16062
+ box-shadow:
16063
+ 0 0 0 var(--line-width) var(--line),
16064
+ inset 3px 0 0 var(--sky-ink);
16065
+ /* on glass the card takes a faint wash of its tone */
16066
+ --tint: var(--sky);
16067
+ }
16068
+ :where([data-kit="pro"]) .tf-insight.is-success {
16069
+ --tint: var(--mint);
16070
+ box-shadow:
16071
+ 0 0 0 var(--line-width) var(--line),
16072
+ inset 3px 0 0 var(--mint-ink);
16073
+ }
16074
+ :where([data-kit="pro"]) .tf-insight.is-warning {
16075
+ --tint: var(--butter);
16076
+ box-shadow:
16077
+ 0 0 0 var(--line-width) var(--line),
16078
+ inset 3px 0 0 var(--butter-ink);
16079
+ }
16080
+ :where([data-kit="pro"]) .tf-insight.is-highlight {
16081
+ --tint: var(--lilac);
16082
+ box-shadow:
16083
+ 0 0 0 var(--line-width) var(--line),
16084
+ inset 3px 0 0 var(--lilac-ink);
16085
+ }
16086
+ :where([data-kit="pro"]) .tf-insight-head {
16087
+ display: flex;
16088
+ align-items: flex-start;
16089
+ gap: 12px;
16090
+ }
16091
+ :where([data-kit="pro"]) .tf-insight-titles {
16092
+ display: flex;
16093
+ flex: 1;
16094
+ flex-direction: column;
16095
+ min-width: 0;
16096
+ }
16097
+ :where([data-kit="pro"]) .tf-insight-titles small {
16098
+ font: 500 12px/16px var(--font-sans);
16099
+ color: var(--ink-muted);
16100
+ }
16101
+ :where([data-kit="pro"]) .tf-insight-titles b {
16102
+ font: 600 15px/20px var(--font-sans);
16103
+ overflow-wrap: anywhere;
16104
+ }
16105
+ :where([data-kit="pro"]) .tf-insight-body {
16106
+ font: 500 14px/20px var(--font-sans);
16107
+ color: var(--ink);
16108
+ }
16109
+ :where([data-kit="pro"]) .tf-insight-why button {
16110
+ display: inline-flex;
16111
+ align-items: center;
16112
+ gap: 6px;
16113
+ min-height: 24px;
16114
+ padding: 0;
16115
+ border: 0;
16116
+ background: none;
16117
+ color: var(--ink-muted);
16118
+ font: 500 12px/16px var(--font-sans);
16119
+ cursor: pointer;
16120
+ }
16121
+ :where([data-kit="pro"]) .tf-insight-why button:hover {
16122
+ color: var(--ink);
16123
+ }
16124
+ :where([data-kit="pro"]) .tf-insight-why button:focus-visible {
16125
+ outline: 2px solid var(--focus);
16126
+ outline-offset: 2px;
16127
+ border-radius: var(--radius-sm);
16128
+ }
16129
+ :where([data-kit="pro"]) .tf-insight-why button[aria-expanded="true"] .tf-insight-chev {
16130
+ rotate: 180deg;
16131
+ }
16132
+ :where([data-kit="pro"]) .tf-insight-whytext {
16133
+ margin-top: 8px;
16134
+ padding: 12px;
16135
+ border-radius: var(--radius-md);
16136
+ background: var(--surface-sunken);
16137
+ font: 500 13px/18px var(--font-sans);
16138
+ color: var(--ink-muted);
16139
+ }
16140
+ :where([data-kit="pro"]) .tf-insight-actions {
16141
+ display: flex;
16142
+ flex-wrap: wrap;
16143
+ justify-content: flex-end;
16144
+ gap: 8px;
16145
+ }
16146
+
16147
+ /* ConsentList */
16148
+ :where([data-kit="pro"]) .tf-consent {
16149
+ display: flex;
16150
+ flex-direction: column;
16151
+ gap: 12px;
16152
+ min-width: 0;
16153
+ }
16154
+ :where([data-kit="pro"]) .tf-consent-item {
16155
+ display: flex;
16156
+ flex-direction: column;
16157
+ gap: 12px;
16158
+ padding: 16px;
16159
+ border-radius: var(--radius-lg);
16160
+ background: var(--surface);
16161
+ box-shadow: 0 0 0 var(--line-width) var(--line);
16162
+ }
16163
+ :where([data-kit="pro"]) .tf-consent-head {
16164
+ display: flex;
16165
+ flex-wrap: wrap;
16166
+ align-items: center;
16167
+ gap: 12px;
16168
+ }
16169
+ :where([data-kit="pro"]) .tf-consent-head .tf-option-text {
16170
+ flex: 1;
16171
+ min-width: 140px;
16172
+ padding: 0;
16173
+ }
16174
+ :where([data-kit="pro"]) .tf-consent-purpose {
16175
+ margin: 0;
16176
+ font: 500 13px/18px var(--font-sans);
16177
+ color: var(--ink-muted);
16178
+ }
16179
+ :where([data-kit="pro"]) .tf-consent-scopes {
16180
+ display: flex;
16181
+ flex-direction: column;
16182
+ margin: 0;
16183
+ padding: 0;
16184
+ list-style: none;
16185
+ }
16186
+ :where([data-kit="pro"]) .tf-consent-scopes li {
16187
+ display: flex;
16188
+ align-items: center;
16189
+ justify-content: space-between;
16190
+ gap: 12px;
16191
+ padding: 10px 0;
16192
+ border-top: 1px solid var(--line);
16193
+ }
16194
+ :where([data-kit="pro"]) .tf-consent-scopes .tf-option-text {
16195
+ min-width: 0;
16196
+ padding: 0;
16197
+ }
16198
+ :where([data-kit="pro"]) .tf-consent-req {
16199
+ flex: none;
16200
+ font: 500 12px/16px var(--font-sans);
16201
+ color: var(--ink-muted);
16202
+ }
16203
+
16204
+ /* 12-household.css */
16205
+ /* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
16206
+ /* Life: budgets, subscriptions, net worth, deadlines, policies, coverage, claims, documents */
16207
+
16208
+ /* BudgetList */
16209
+ :where([data-kit="pro"]) .tf-budgets,
16210
+ :where([data-kit="pro"]) .tf-subs ul,
16211
+ :where([data-kit="pro"]) .tf-deadlines,
16212
+ :where([data-kit="pro"]) .tf-docs,
16213
+ :where([data-kit="pro"]) .tf-claim-steps,
16214
+ :where([data-kit="pro"]) .tf-nw-side ul {
16215
+ margin: 0;
16216
+ padding: 0;
16217
+ list-style: none;
16218
+ }
16219
+ :where([data-kit="pro"]) .tf-budgets {
16220
+ display: flex;
16221
+ flex-direction: column;
16222
+ gap: 4px;
16223
+ min-width: 0;
16224
+ }
16225
+ :where([data-kit="pro"]) .tf-budget {
16226
+ container: tf-budget / inline-size;
16227
+ display: flex;
16228
+ align-items: center;
16229
+ gap: 12px;
16230
+ width: 100%;
16231
+ padding: 10px 12px;
16232
+ box-sizing: border-box;
16233
+ border: 0;
16234
+ border-radius: var(--radius-md);
16235
+ background: transparent;
16236
+ color: var(--ink);
16237
+ font: inherit;
16238
+ text-align: left;
16239
+ }
16240
+ :where([data-kit="pro"]) button.tf-budget {
16241
+ cursor: pointer;
16242
+ }
16243
+ :where([data-kit="pro"]) button.tf-budget:hover {
16244
+ background: var(--accent);
16245
+ }
16246
+ :where([data-kit="pro"]) button.tf-budget:focus-visible {
16247
+ outline: 2px solid var(--focus);
16248
+ outline-offset: 2px;
16249
+ }
16250
+ :where([data-kit="pro"]) .tf-budget-main {
16251
+ display: flex;
16252
+ flex: 1;
16253
+ flex-direction: column;
16254
+ gap: 6px;
16255
+ min-width: 0;
16256
+ }
16257
+ :where([data-kit="pro"]) .tf-budget-top {
16258
+ display: flex;
16259
+ flex-wrap: wrap;
16260
+ align-items: baseline;
16261
+ justify-content: space-between;
16262
+ gap: 0 12px;
16263
+ }
16264
+ /* narrow: the icon steps aside so the category keeps its name */
16265
+ @container tf-budget (max-width: 300px) {
16266
+ :where([data-kit="pro"]) .tf-budget > .tf-tinticon {
16267
+ display: none;
16268
+ }
16269
+ }
16270
+ :where([data-kit="pro"]) .tf-budget-top b {
16271
+ min-width: 0;
16272
+ overflow: hidden;
16273
+ text-overflow: ellipsis;
16274
+ white-space: nowrap;
16275
+ font: 500 14px/20px var(--font-sans);
16276
+ }
16277
+ :where([data-kit="pro"]) .tf-budget-nums {
16278
+ flex: none;
16279
+ font: 600 13px/18px var(--font-sans);
16280
+ font-variant-numeric: tabular-nums;
16281
+ }
16282
+ :where([data-kit="pro"]) .tf-budget-nums small {
16283
+ font-weight: 500;
16284
+ color: var(--ink-muted);
16285
+ }
16286
+ :where([data-kit="pro"]) .tf-budget-bar {
16287
+ display: block;
16288
+ height: 8px;
16289
+ overflow: hidden;
16290
+ border-radius: var(--radius-pill);
16291
+ background: var(--surface-sunken);
16292
+ }
16293
+ :where([data-kit="pro"]) .tf-budget-bar > span {
16294
+ display: block;
16295
+ height: 100%;
16296
+ border-radius: var(--radius-pill);
16297
+ }
16298
+ :where([data-kit="pro"]) .tf-budget-left {
16299
+ font: 500 12px/16px var(--font-sans);
16300
+ color: var(--ink-muted);
16301
+ }
16302
+ :where([data-kit="pro"]) .tf-budget-left.over {
16303
+ color: var(--blush-ink);
16304
+ font-weight: 500;
16305
+ }
16306
+
16307
+ /* SubscriptionList */
16308
+ :where([data-kit="pro"]) .tf-subs {
16309
+ display: flex;
16310
+ flex-direction: column;
16311
+ gap: 8px;
16312
+ min-width: 0;
16313
+ }
16314
+ :where([data-kit="pro"]) .tf-subs ul {
16315
+ container: tf-subs / inline-size;
16316
+ display: flex;
16317
+ flex-direction: column;
16318
+ }
16319
+ :where([data-kit="pro"]) .tf-sub {
16320
+ display: flex;
16321
+ align-items: center;
16322
+ gap: 12px;
16323
+ padding: 10px 4px;
16324
+ border-bottom: 1px solid var(--line);
16325
+ }
16326
+ :where([data-kit="pro"]) .tf-sub:last-child {
16327
+ border-bottom: 0;
16328
+ }
16329
+ :where([data-kit="pro"]) .tf-sub-text {
16330
+ display: flex;
16331
+ flex: 1;
16332
+ flex-direction: column;
16333
+ min-width: 0;
16334
+ }
16335
+ :where([data-kit="pro"]) .tf-sub-text b {
16336
+ overflow: hidden;
16337
+ text-overflow: ellipsis;
16338
+ white-space: nowrap;
16339
+ font: 500 14px/20px var(--font-sans);
16340
+ }
16341
+ :where([data-kit="pro"]) .tf-sub-text small {
16342
+ font: 500 12px/16px var(--font-sans);
16343
+ color: var(--ink-muted);
16344
+ }
16345
+ :where([data-kit="pro"]) .tf-sub-amount {
16346
+ flex: none;
16347
+ font: 600 14px/20px var(--font-sans);
16348
+ font-variant-numeric: tabular-nums;
16349
+ text-align: right;
16350
+ }
16351
+ :where([data-kit="pro"]) .tf-sub-amount small {
16352
+ margin-left: 2px;
16353
+ font-weight: 500;
16354
+ color: var(--ink-muted);
16355
+ }
16356
+ /* narrow: amount and trial badge go under the name, the menu stays at the end */
16357
+ @container tf-subs (max-width: 380px) {
16358
+ :where([data-kit="pro"]) .tf-sub {
16359
+ display: grid;
16360
+ grid-template-columns: auto minmax(0, 1fr) auto;
16361
+ gap: 4px 12px;
16362
+ align-items: center;
16363
+ }
16364
+ :where([data-kit="pro"]) .tf-sub > :first-child {
16365
+ grid-row: 1 / span 2;
16366
+ align-self: start;
16367
+ }
16368
+ :where([data-kit="pro"]) .tf-sub > .tf-sub-text,
16369
+ :where([data-kit="pro"]) .tf-sub > .tf-badge,
16370
+ :where([data-kit="pro"]) .tf-sub > .tf-sub-amount {
16371
+ grid-column: 2;
16372
+ justify-self: start;
16373
+ text-align: left;
16374
+ }
16375
+ :where([data-kit="pro"]) .tf-sub > :last-child:not(.tf-sub-amount) {
16376
+ grid-column: 3;
16377
+ grid-row: 1;
16378
+ }
16379
+ }
16380
+ :where([data-kit="pro"]) .tf-sub.is-cancelled .tf-sub-text b,
16381
+ :where([data-kit="pro"]) .tf-sub.is-cancelled .tf-sub-amount {
16382
+ color: var(--ink-muted);
16383
+ text-decoration: line-through;
16384
+ }
16385
+ :where([data-kit="pro"]) .tf-subs-total {
16386
+ display: flex;
16387
+ flex-wrap: wrap;
16388
+ align-items: baseline;
16389
+ justify-content: space-between;
16390
+ gap: 4px 12px;
16391
+ padding: 12px;
16392
+ border-radius: var(--radius-md);
16393
+ background: var(--surface-sunken);
16394
+ font: 500 13px/18px var(--font-sans);
16395
+ color: var(--ink-muted);
16396
+ }
16397
+ :where([data-kit="pro"]) .tf-subs-total b {
16398
+ color: var(--ink);
16399
+ font: 600 15px/20px var(--font-sans);
16400
+ }
16401
+
16402
+ /* NetWorthCard */
16403
+ :where([data-kit="pro"]) .tf-nw {
16404
+ display: flex;
16405
+ flex-direction: column;
16406
+ gap: 16px;
16407
+ min-width: 0;
16408
+ padding: 20px;
16409
+ border-radius: var(--radius-lg);
16410
+ background: var(--surface);
16411
+ box-shadow: 0 0 0 var(--line-width) var(--line);
16412
+ }
16413
+ :where([data-kit="pro"]) .tf-nw-head {
16414
+ display: flex;
16415
+ flex-wrap: wrap;
16416
+ align-items: flex-end;
16417
+ justify-content: space-between;
16418
+ gap: 12px;
16419
+ }
16420
+ :where([data-kit="pro"]) .tf-nw-head > :first-child {
16421
+ flex: 1 1 200px;
16422
+ }
16423
+ :where([data-kit="pro"]) .tf-nw-head > :last-child:not(:first-child) {
16424
+ flex: none;
16425
+ max-width: 45%;
16426
+ }
16427
+ :where([data-kit="pro"]) .tf-nw-title {
16428
+ font: 500 13px/18px var(--font-sans);
16429
+ color: var(--ink-muted);
16430
+ }
16431
+ :where([data-kit="pro"]) .tf-nw-total {
16432
+ font: 600 24px/38px var(--font-sans);
16433
+ letter-spacing: -0.02em;
16434
+ font-variant-numeric: tabular-nums;
16435
+ }
16436
+ :where([data-kit="pro"]) .tf-nw-change {
16437
+ display: inline-flex;
16438
+ align-items: center;
16439
+ gap: 4px;
16440
+ font: 500 12px/16px var(--font-sans);
16441
+ color: var(--mint-ink);
16442
+ }
16443
+ :where([data-kit="pro"]) .tf-nw-change.down {
16444
+ color: var(--blush-ink);
16445
+ }
16446
+ :where([data-kit="pro"]) .tf-nw-change.down .tf-ico {
16447
+ rotate: 180deg;
16448
+ }
16449
+ :where([data-kit="pro"]) .tf-nw-change span {
16450
+ font-weight: 500;
16451
+ color: var(--ink-muted);
16452
+ }
16453
+ :where([data-kit="pro"]) .tf-nw-sides {
16454
+ display: grid;
16455
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
16456
+ gap: 16px;
16457
+ }
16458
+ :where([data-kit="pro"]) .tf-nw-side {
16459
+ display: flex;
16460
+ flex-direction: column;
16461
+ gap: 8px;
16462
+ min-width: 0;
16463
+ }
16464
+ :where([data-kit="pro"]) .tf-nw-sidehead {
16465
+ display: flex;
16466
+ justify-content: space-between;
16467
+ gap: 8px;
16468
+ padding-bottom: 8px;
16469
+ border-bottom: 1px solid var(--line);
16470
+ font: 500 12px/16px var(--font-sans);
16471
+ color: var(--ink-muted);
16472
+ }
16473
+ :where([data-kit="pro"]) .tf-nw-sidehead b {
16474
+ color: var(--ink);
16475
+ font-variant-numeric: tabular-nums;
16476
+ }
16477
+ :where([data-kit="pro"]) .tf-nw-side li {
16478
+ display: flex;
16479
+ justify-content: space-between;
16480
+ gap: 8px;
16481
+ padding: 4px 0;
16482
+ font: 500 13px/18px var(--font-sans);
16483
+ }
16484
+ :where([data-kit="pro"]) .tf-nw-side li span:first-child {
16485
+ display: inline-flex;
16486
+ align-items: center;
16487
+ gap: 6px;
16488
+ min-width: 0;
16489
+ color: var(--ink-muted);
16490
+ }
16491
+ :where([data-kit="pro"]) .tf-nw-side li span:last-child {
16492
+ font-variant-numeric: tabular-nums;
16493
+ }
16494
+
16495
+ /* DeadlineList */
16496
+ :where([data-kit="pro"]) .tf-deadlines {
16497
+ display: flex;
16498
+ flex-direction: column;
16499
+ gap: 4px;
16500
+ min-width: 0;
16501
+ }
16502
+ :where([data-kit="pro"]) .tf-deadline {
16503
+ display: flex;
16504
+ flex-wrap: wrap;
16505
+ align-items: center;
16506
+ gap: 8px 12px;
16507
+ padding: 8px 12px;
16508
+ border-radius: var(--radius-md);
16509
+ }
16510
+ :where([data-kit="pro"]) .tf-deadline.is-overdue {
16511
+ background: var(--blush);
16512
+ }
16513
+ :where([data-kit="pro"]) .tf-deadline.is-soon {
16514
+ background: var(--surface-sunken);
16515
+ }
16516
+ :where([data-kit="pro"]) .tf-deadline-date {
16517
+ display: flex;
16518
+ flex: none;
16519
+ flex-direction: column;
16520
+ align-items: center;
16521
+ width: 40px;
16522
+ padding: 4px 0;
16523
+ border-radius: var(--radius-sm);
16524
+ background: var(--surface);
16525
+ box-shadow: inset 0 0 0 1px var(--line);
16526
+ }
16527
+ :where([data-kit="pro"]) .tf-deadline-date b {
16528
+ font: 600 14px/20px var(--font-sans);
16529
+ font-variant-numeric: tabular-nums;
16530
+ }
16531
+ :where([data-kit="pro"]) .tf-deadline-date small {
16532
+ font: 500 10px/12px var(--font-sans);
16533
+ text-transform: uppercase;
16534
+ color: var(--ink-muted);
16535
+ }
16536
+ :where([data-kit="pro"]) .tf-deadline-text {
16537
+ display: flex;
16538
+ flex: 1 1 160px;
16539
+ flex-direction: column;
16540
+ min-width: 0;
16541
+ }
16542
+ :where([data-kit="pro"]) .tf-deadline-text b {
16543
+ font: 500 14px/20px var(--font-sans);
16544
+ overflow-wrap: break-word;
16545
+ }
16546
+ :where([data-kit="pro"]) .tf-deadline-text small {
16547
+ font: 500 12px/16px var(--font-sans);
16548
+ color: var(--ink-muted);
16549
+ }
16550
+ :where([data-kit="pro"]) .tf-deadline-amount {
16551
+ font: 600 13px/18px var(--font-sans);
16552
+ font-variant-numeric: tabular-nums;
16553
+ }
16554
+ :where([data-kit="pro"]) .tf-deadline.is-done .tf-deadline-text b {
16555
+ color: var(--ink-muted);
16556
+ text-decoration: line-through;
16557
+ }
16558
+ :where([data-kit="pro"]) .tf-deadline-done {
16559
+ color: var(--mint-ink);
16560
+ }
16561
+
16562
+ /* PolicyCard */
16563
+ :where([data-kit="pro"]) .tf-policy {
16564
+ display: flex;
16565
+ flex-direction: column;
16566
+ gap: 16px;
16567
+ min-width: 0;
16568
+ padding: 20px;
16569
+ border-radius: var(--radius-lg);
16570
+ background: var(--surface);
16571
+ box-shadow: 0 0 0 var(--line-width) var(--line);
16572
+ }
16573
+ :where([data-kit="pro"]) .tf-policy-head {
16574
+ display: flex;
16575
+ flex-wrap: wrap;
16576
+ align-items: center;
16577
+ gap: 12px;
16578
+ }
16579
+ :where([data-kit="pro"]) .tf-policy-head .tf-option-text {
16580
+ flex: 1;
16581
+ min-width: 120px;
16582
+ padding: 0;
16583
+ }
16584
+ :where([data-kit="pro"]) .tf-policy-head b {
16585
+ font: 600 15px/20px var(--font-sans);
16586
+ }
16587
+ :where([data-kit="pro"]) .tf-policy-facts {
16588
+ display: grid;
16589
+ grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
16590
+ gap: 12px;
16591
+ margin: 0;
16592
+ }
16593
+ :where([data-kit="pro"]) .tf-policy-facts div {
16594
+ min-width: 0;
16595
+ }
16596
+ :where([data-kit="pro"]) .tf-policy-facts dt {
16597
+ font: 500 11px/14px var(--font-sans);
16598
+ letter-spacing: 0.04em;
16599
+ text-transform: uppercase;
16600
+ color: var(--ink-muted);
16601
+ }
16602
+ :where([data-kit="pro"]) .tf-policy-facts dd {
16603
+ margin: 2px 0 0;
16604
+ font: 600 15px/20px var(--font-sans);
16605
+ font-variant-numeric: tabular-nums;
16606
+ overflow-wrap: break-word;
16607
+ }
16608
+ :where([data-kit="pro"]) .tf-policy-foot {
16609
+ display: flex;
16610
+ flex-wrap: wrap;
16611
+ align-items: center;
16612
+ justify-content: space-between;
16613
+ gap: 8px;
16614
+ padding-top: 12px;
16615
+ border-top: 1px solid var(--line);
16616
+ font: 500 12px/16px var(--font-sans);
16617
+ color: var(--ink-muted);
16618
+ }
16619
+ :where([data-kit="pro"]) .tf-policy-actions {
16620
+ display: inline-flex;
16621
+ flex-wrap: wrap;
16622
+ gap: 8px;
16623
+ }
16624
+
16625
+ /* CoverageMatrix */
16626
+ :where([data-kit="pro"]) .tf-coverage {
16627
+ display: flex;
16628
+ flex-direction: column;
16629
+ gap: 12px;
16630
+ min-width: 0;
16631
+ }
16632
+ :where([data-kit="pro"]) .tf-coverage-sum {
16633
+ display: flex;
16634
+ flex-wrap: wrap;
16635
+ gap: 8px 16px;
16636
+ }
16637
+ :where([data-kit="pro"]) .tf-coverage-box {
16638
+ container: tf-coverage / inline-size;
16639
+ }
16640
+ :where([data-kit="pro"]) .tf-coverage-table {
16641
+ width: 100%;
16642
+ border-collapse: collapse;
16643
+ }
16644
+ :where([data-kit="pro"]) .tf-coverage-table th,
16645
+ :where([data-kit="pro"]) .tf-coverage-table td {
16646
+ padding: 10px 8px;
16647
+ border-top: 1px solid var(--line);
16648
+ text-align: left;
16649
+ vertical-align: middle;
16650
+ }
16651
+ :where([data-kit="pro"]) .tf-coverage-table th {
16652
+ font-weight: inherit;
16653
+ }
16654
+ :where([data-kit="pro"]) .tf-coverage-table th b {
16655
+ display: block;
16656
+ font: 500 14px/20px var(--font-sans);
16657
+ }
16658
+ :where([data-kit="pro"]) .tf-coverage-table th small {
16659
+ font: 500 12px/16px var(--font-sans);
16660
+ color: var(--ink-muted);
16661
+ }
16662
+ :where([data-kit="pro"]) .tf-coverage-table td:nth-child(2) {
16663
+ white-space: nowrap;
16664
+ }
16665
+ :where([data-kit="pro"]) .tf-coverage-note {
16666
+ font: 500 13px/18px var(--font-sans);
16667
+ color: var(--ink-muted);
16668
+ }
16669
+ :where([data-kit="pro"]) .tf-coverage-table tr.is-none th b {
16670
+ color: var(--blush-ink);
16671
+ }
16672
+ /* narrow: each risk becomes a block, its status top right, the note underneath */
16673
+ @container tf-coverage (max-width: 440px) {
16674
+ :where([data-kit="pro"]) .tf-coverage-table,
16675
+ :where([data-kit="pro"]) .tf-coverage-table tbody {
16676
+ display: block;
16677
+ }
16678
+ :where([data-kit="pro"]) .tf-coverage-table tr {
16679
+ display: grid;
16680
+ grid-template-columns: minmax(0, 1fr) auto;
16681
+ gap: 4px 12px;
16682
+ padding: 10px 4px;
16683
+ border-top: 1px solid var(--line);
16684
+ }
16685
+ :where([data-kit="pro"]) .tf-coverage-table th,
16686
+ :where([data-kit="pro"]) .tf-coverage-table td {
16687
+ padding: 0;
16688
+ border-top: 0;
16689
+ }
16690
+ :where([data-kit="pro"]) .tf-coverage-table td.tf-coverage-note {
16691
+ grid-column: 1 / -1;
16692
+ }
16693
+ }
16694
+
16695
+ /* ClaimTimeline */
16696
+ :where([data-kit="pro"]) .tf-claim {
16697
+ display: flex;
16698
+ flex-direction: column;
16699
+ gap: 16px;
16700
+ min-width: 0;
16701
+ }
16702
+ :where([data-kit="pro"]) .tf-claim-head {
16703
+ display: flex;
16704
+ flex-wrap: wrap;
16705
+ align-items: flex-start;
16706
+ justify-content: space-between;
16707
+ gap: 12px;
16708
+ }
16709
+ :where([data-kit="pro"]) .tf-claim-head .tf-option-text {
16710
+ padding: 0;
16711
+ }
16712
+ :where([data-kit="pro"]) .tf-claim-head b {
16713
+ font: 600 15px/20px var(--font-sans);
16714
+ }
16715
+ :where([data-kit="pro"]) .tf-claim-amount {
16716
+ display: flex;
16717
+ flex-direction: column;
16718
+ align-items: flex-end;
16719
+ font: 600 18px/24px var(--font-sans);
16720
+ font-variant-numeric: tabular-nums;
16721
+ }
16722
+ :where([data-kit="pro"]) .tf-claim-amount small {
16723
+ font: 500 11px/14px var(--font-sans);
16724
+ color: var(--ink-muted);
16725
+ }
16726
+ :where([data-kit="pro"]) .tf-claim-steps {
16727
+ display: flex;
16728
+ flex-direction: column;
16729
+ }
16730
+ :where([data-kit="pro"]) .tf-claim-steps li {
16731
+ position: relative;
16732
+ display: flex;
16733
+ gap: 12px;
16734
+ padding-bottom: 16px;
16735
+ }
16736
+ :where([data-kit="pro"]) .tf-claim-steps li:last-child {
16737
+ padding-bottom: 0;
16738
+ }
16739
+ :where([data-kit="pro"]) .tf-claim-steps li:not(:last-child)::before {
16740
+ content: "";
16741
+ position: absolute;
16742
+ top: 20px;
16743
+ bottom: 0;
16744
+ left: 9px;
16745
+ width: 2px;
16746
+ background: var(--line);
16747
+ }
16748
+ :where([data-kit="pro"]) .tf-claim-steps li.is-done:not(:last-child)::before {
16749
+ background: var(--mint-ink);
16750
+ }
16751
+ :where([data-kit="pro"]) .tf-claim-dot {
16752
+ position: relative;
16753
+ display: grid;
16754
+ place-items: center;
16755
+ flex: none;
16756
+ width: 20px;
16757
+ height: 20px;
16758
+ box-sizing: border-box;
16759
+ border: 2px solid var(--line-strong);
16760
+ border-radius: var(--radius-full);
16761
+ background: var(--surface);
16762
+ color: var(--primary-foreground);
16763
+ }
16764
+ :where([data-kit="pro"]) .tf-claim-steps li.is-done .tf-claim-dot {
16765
+ border-color: var(--mint-ink);
16766
+ background: var(--mint-ink);
16767
+ }
16768
+ :where([data-kit="pro"]) .tf-claim-steps li.is-current .tf-claim-dot {
16769
+ border-color: var(--primary);
16770
+ box-shadow: 0 0 0 4px var(--accent);
16771
+ }
16772
+ :where([data-kit="pro"]) .tf-claim-steps li.is-failed .tf-claim-dot {
16773
+ border-color: var(--blush-ink);
16774
+ background: var(--blush-ink);
16775
+ }
16776
+ :where([data-kit="pro"]) .tf-claim-text {
16777
+ display: flex;
16778
+ flex-direction: column;
16779
+ min-width: 0;
16780
+ }
16781
+ :where([data-kit="pro"]) .tf-claim-text b {
16782
+ font: 500 14px/20px var(--font-sans);
16783
+ }
16784
+ :where([data-kit="pro"]) .tf-claim-steps li.is-todo .tf-claim-text b {
16785
+ color: var(--ink-muted);
16786
+ font-weight: 500;
16787
+ }
16788
+ :where([data-kit="pro"]) .tf-claim-text small {
16789
+ font: 500 12px/16px var(--font-sans);
16790
+ color: var(--ink-muted);
16791
+ }
16792
+
16793
+ /* DocumentList */
16794
+ :where([data-kit="pro"]) .tf-docs {
16795
+ display: flex;
16796
+ flex-direction: column;
16797
+ gap: 4px;
16798
+ min-width: 0;
16799
+ }
16800
+ :where([data-kit="pro"]) .tf-doc {
16801
+ display: flex;
16802
+ flex-wrap: wrap;
16803
+ align-items: center;
16804
+ gap: 8px 12px;
16805
+ width: 100%;
16806
+ padding: 10px 12px;
16807
+ box-sizing: border-box;
16808
+ border: 0;
16809
+ border-radius: var(--radius-md);
16810
+ background: transparent;
16811
+ color: var(--ink);
16812
+ font: inherit;
16813
+ text-align: left;
16814
+ }
16815
+ :where([data-kit="pro"]) button.tf-doc {
16816
+ cursor: pointer;
16817
+ }
16818
+ :where([data-kit="pro"]) button.tf-doc:hover {
16819
+ background: var(--accent);
16820
+ }
16821
+ :where([data-kit="pro"]) button.tf-doc:focus-visible {
16822
+ outline: 2px solid var(--focus);
16823
+ outline-offset: 2px;
16824
+ }
16825
+ :where([data-kit="pro"]) .tf-doc-text {
16826
+ display: flex;
16827
+ flex: 1 1 160px;
16828
+ flex-direction: column;
16829
+ min-width: 0;
16830
+ }
16831
+ :where([data-kit="pro"]) .tf-doc-text b {
16832
+ font: 500 14px/20px var(--font-sans);
16833
+ overflow-wrap: break-word;
16834
+ }
16835
+ :where([data-kit="pro"]) .tf-doc-text small,
16836
+ :where([data-kit="pro"]) .tf-doc-valid {
16837
+ font: 500 12px/16px var(--font-sans);
16838
+ color: var(--ink-muted);
16839
+ }
16840
+
16841
+ /* 13-connectors.css */
16842
+ /* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
16843
+ /* Connectors: service marks, the connector gallery, sync status, agent activity */
16844
+
16845
+ /* ServiceMark */
16846
+ :where([data-kit="pro"]) .tf-svc {
16847
+ position: relative;
16848
+ display: inline-grid;
16849
+ flex: none;
16850
+ place-items: center;
16851
+ width: 36px;
16852
+ height: var(--density-control);
16853
+ box-sizing: border-box;
16854
+ border-radius: var(--radius-md);
16855
+ }
16856
+ :where([data-kit="pro"]) .tf-svc-sm {
16857
+ width: 24px;
16858
+ height: 24px;
16859
+ border-radius: var(--radius-sm);
16860
+ }
16861
+ :where([data-kit="pro"]) .tf-svc-lg {
16862
+ width: 48px;
16863
+ height: 48px;
16864
+ border-radius: var(--radius-lg);
16865
+ }
16866
+ :where([data-kit="pro"]) .tf-svc > img,
16867
+ :where([data-kit="pro"]) .tf-svc > svg:not(.tf-ico) {
16868
+ width: 62%;
16869
+ height: 62%;
16870
+ object-fit: contain;
16871
+ }
16872
+ :where([data-kit="pro"]) .tf-svc-mono {
16873
+ font: 600 13px/1 var(--font-sans);
16874
+ letter-spacing: 0.02em;
16875
+ }
16876
+ :where([data-kit="pro"]) .tf-svc-sm .tf-svc-mono {
16877
+ font-size: 10px;
16878
+ }
16879
+ :where([data-kit="pro"]) .tf-svc-lg .tf-svc-mono {
16880
+ font-size: 17px;
16881
+ }
16882
+ /* the state dot sits on the corner, ringed in the surface colour */
16883
+ :where([data-kit="pro"]) .tf-svc-dot {
16884
+ position: absolute;
16885
+ right: -2px;
16886
+ bottom: -2px;
16887
+ width: 10px;
16888
+ height: 10px;
16889
+ box-sizing: border-box;
16890
+ border: 2px solid var(--card);
16891
+ border-radius: var(--radius-full);
16892
+ background: var(--idle);
16893
+ }
16894
+ :where([data-kit="pro"]) .tf-svc-sm .tf-svc-dot {
16895
+ width: 8px;
16896
+ height: 8px;
16897
+ border-width: 1.5px;
16898
+ }
16899
+ :where([data-kit="pro"]) .tf-svc-dot.is-connected {
16900
+ background: var(--ok);
16901
+ }
16902
+ :where([data-kit="pro"]) .tf-svc-dot.is-syncing {
16903
+ background: var(--info);
16904
+ }
16905
+ :where([data-kit="pro"]) .tf-svc-dot.is-error {
16906
+ background: var(--danger);
16907
+ }
16908
+ :where([data-kit="pro"]) .tf-svc-dot.is-paused {
16909
+ background: var(--warn);
16910
+ }
16911
+
16912
+ /* ConnectorGallery */
16913
+ :where([data-kit="pro"]) .tf-connectors {
16914
+ display: flex;
16915
+ flex-direction: column;
16916
+ gap: 20px;
16917
+ min-width: 0;
16918
+ }
16919
+ :where([data-kit="pro"]) .tf-connectors-filters {
16920
+ display: flex;
16921
+ flex-direction: column;
16922
+ gap: 12px;
16923
+ }
16924
+ :where([data-kit="pro"]) .tf-connectors-chips {
16925
+ display: flex;
16926
+ flex-wrap: wrap;
16927
+ gap: 6px;
16928
+ }
16929
+ :where([data-kit="pro"]) .tf-connectors-group {
16930
+ display: flex;
16931
+ flex-direction: column;
16932
+ gap: 10px;
16933
+ }
16934
+ :where([data-kit="pro"]) .tf-connectors-title {
16935
+ margin: 0;
16936
+ font: 500 13px/18px var(--font-sans);
16937
+ color: var(--ink-muted);
16938
+ }
16939
+ :where([data-kit="pro"]) .tf-connectors-grid {
16940
+ display: grid;
16941
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
16942
+ gap: 12px;
16943
+ margin: 0;
16944
+ padding: 0;
16945
+ list-style: none;
16946
+ }
16947
+ :where([data-kit="pro"]) .tf-connector {
16948
+ display: flex;
16949
+ flex-direction: column;
16950
+ gap: 8px;
16951
+ min-width: 0;
16952
+ padding: 16px;
16953
+ border-radius: var(--radius-lg);
16954
+ background: var(--surface);
16955
+ box-shadow: 0 0 0 var(--line-width) var(--line);
16956
+ }
16957
+ :where([data-kit="pro"]) .tf-connector-head {
16958
+ display: flex;
16959
+ align-items: center;
16960
+ gap: 12px;
16961
+ min-width: 0;
16962
+ }
16963
+ :where([data-kit="pro"]) .tf-connector-head .tf-option-text {
16964
+ min-width: 0;
16965
+ padding: 0;
16966
+ }
16967
+ :where([data-kit="pro"]) .tf-connector-head b {
16968
+ font: 500 14px/20px var(--font-sans);
16969
+ }
16970
+ :where([data-kit="pro"]) .tf-connector-head small {
16971
+ overflow: hidden;
16972
+ text-overflow: ellipsis;
16973
+ white-space: nowrap;
16974
+ }
16975
+ :where([data-kit="pro"]) .tf-connector-desc {
16976
+ display: -webkit-box;
16977
+ margin: 0;
16978
+ overflow: hidden;
16979
+ -webkit-box-orient: vertical;
16980
+ -webkit-line-clamp: 2;
16981
+ font: 500 13px/18px var(--font-sans);
16982
+ color: var(--ink-muted);
16983
+ }
16984
+ :where([data-kit="pro"]) .tf-connector-note {
16985
+ margin: 0;
16986
+ font: 500 12px/16px var(--font-sans);
16987
+ color: var(--ink-subtle);
16988
+ }
16989
+ :where([data-kit="pro"]) .tf-connector-foot {
16990
+ display: flex;
16991
+ flex-wrap: wrap;
16992
+ align-items: center;
16993
+ justify-content: space-between;
16994
+ gap: 8px;
16995
+ margin-top: auto;
16996
+ padding-top: 4px;
16997
+ }
16998
+ :where([data-kit="pro"]) .tf-connector.is-soon {
16999
+ box-shadow: inset 0 0 0 1px var(--line);
17000
+ background: transparent;
17001
+ }
17002
+
17003
+ /* SyncStatus */
17004
+ :where([data-kit="pro"]) .tf-sync {
17005
+ display: flex;
17006
+ flex-direction: column;
17007
+ gap: 6px;
17008
+ min-width: 0;
17009
+ font: 500 13px/18px var(--font-sans);
17010
+ color: var(--ink);
17011
+ }
17012
+ :where([data-kit="pro"]) .tf-sync-line {
17013
+ display: flex;
17014
+ flex-wrap: wrap;
17015
+ align-items: center;
17016
+ gap: 4px 8px;
17017
+ }
17018
+ :where([data-kit="pro"]) .tf-sync-icon {
17019
+ display: inline-grid;
17020
+ flex: none;
17021
+ place-items: center;
17022
+ width: 20px;
17023
+ height: 20px;
17024
+ border-radius: var(--radius-1);
17025
+ background: var(--mint);
17026
+ color: var(--mint-ink);
17027
+ }
17028
+ :where([data-kit="pro"]) .tf-sync.is-syncing .tf-sync-icon {
17029
+ background: var(--sky);
17030
+ color: var(--sky-ink);
17031
+ }
17032
+ :where([data-kit="pro"]) .tf-sync.is-syncing .tf-sync-icon .tf-ico {
17033
+ animation: tf-pro-spin 1.2s linear infinite;
17034
+ }
17035
+ :where([data-kit="pro"]) .tf-sync.is-error .tf-sync-icon {
17036
+ background: var(--blush);
17037
+ color: var(--blush-ink);
17038
+ }
17039
+ :where([data-kit="pro"]) .tf-sync.is-paused .tf-sync-icon {
17040
+ background: var(--butter);
17041
+ color: var(--butter-ink);
17042
+ }
17043
+ :where([data-kit="pro"]) .tf-sync.is-never .tf-sync-icon {
17044
+ background: var(--surface-sunken);
17045
+ color: var(--ink-muted);
17046
+ }
17047
+ :where([data-kit="pro"]) .tf-sync-text small,
17048
+ :where([data-kit="pro"]) .tf-sync-next {
17049
+ font: 500 12px/16px var(--font-sans);
17050
+ color: var(--ink-muted);
17051
+ }
17052
+ :where([data-kit="pro"]) .tf-sync-line > .tf-btn {
17053
+ margin-left: auto;
17054
+ }
17055
+ :where([data-kit="pro"]) .tf-sync-error {
17056
+ margin: 0;
17057
+ font: 500 12px/16px var(--font-sans);
17058
+ color: var(--blush-ink);
17059
+ }
17060
+ :where([data-kit="pro"]) .tf-sync-counts {
17061
+ display: flex;
17062
+ flex-wrap: wrap;
17063
+ gap: 4px 14px;
17064
+ margin: 0;
17065
+ padding: 0 0 0 28px;
17066
+ list-style: none;
17067
+ font: 500 12px/16px var(--font-sans);
17068
+ color: var(--ink-muted);
17069
+ }
17070
+ :where([data-kit="pro"]) .tf-sync-counts b {
17071
+ font-weight: 500;
17072
+ color: var(--ink);
17073
+ font-variant-numeric: tabular-nums;
17074
+ }
17075
+ :where([data-kit="pro"]) .tf-sync.compact {
17076
+ font-size: 12px;
17077
+ line-height: 16px;
17078
+ color: var(--ink-muted);
17079
+ }
17080
+ :where([data-kit="pro"]) .tf-sync.compact .tf-sync-icon {
17081
+ width: 16px;
17082
+ height: 16px;
17083
+ }
17084
+ :where([data-kit="pro"]) .tf-sync.compact .tf-sync-icon .tf-ico {
17085
+ width: 11px;
17086
+ height: 11px;
17087
+ }
17088
+
17089
+ /* AgentActivity */
17090
+ :where([data-kit="pro"]) .tf-agentlog {
17091
+ display: flex;
17092
+ flex-direction: column;
17093
+ gap: 16px;
17094
+ min-width: 0;
17095
+ }
17096
+ :where([data-kit="pro"]) .tf-agentlog-day ul {
17097
+ display: flex;
17098
+ flex-direction: column;
17099
+ margin: 0;
17100
+ padding: 0;
17101
+ list-style: none;
17102
+ }
17103
+ :where([data-kit="pro"]) .tf-agentlog-title {
17104
+ margin: 0 0 4px;
17105
+ font: 500 12px/16px var(--font-sans);
17106
+ letter-spacing: 0.04em;
17107
+ text-transform: uppercase;
17108
+ color: var(--ink-muted);
17109
+ }
17110
+ :where([data-kit="pro"]) .tf-agentlog-item {
17111
+ display: flex;
17112
+ flex-wrap: wrap;
17113
+ align-items: flex-start;
17114
+ gap: 4px 12px;
17115
+ padding: 10px 0;
17116
+ border-bottom: 1px solid var(--line);
17117
+ }
17118
+ :where([data-kit="pro"]) .tf-agentlog-item:last-child {
17119
+ border-bottom: 0;
17120
+ }
17121
+ :where([data-kit="pro"]) .tf-agentlog-item > .tf-svc {
17122
+ margin-top: 1px;
17123
+ }
17124
+ :where([data-kit="pro"]) .tf-agentlog-main {
17125
+ display: flex;
17126
+ flex: 1 1 200px;
17127
+ flex-direction: column;
17128
+ gap: 2px;
17129
+ min-width: 0;
17130
+ }
17131
+ :where([data-kit="pro"]) .tf-agentlog-text {
17132
+ margin: 0;
17133
+ font: 500 14px/20px var(--font-sans);
17134
+ color: var(--ink);
17135
+ }
17136
+ :where([data-kit="pro"]) .tf-agentlog-item.is-declined .tf-agentlog-text,
17137
+ :where([data-kit="pro"]) .tf-agentlog-item.is-undone .tf-agentlog-text {
17138
+ color: var(--ink-muted);
17139
+ text-decoration: line-through;
17140
+ }
17141
+ :where([data-kit="pro"]) .tf-agentlog-detail {
17142
+ margin: 0;
17143
+ font: 500 13px/18px var(--font-sans);
17144
+ color: var(--ink-muted);
17145
+ }
17146
+ :where([data-kit="pro"]) .tf-agentlog-meta {
17147
+ display: flex;
17148
+ flex-wrap: wrap;
17149
+ align-items: center;
17150
+ gap: 4px 8px;
17151
+ margin: 2px 0 0;
17152
+ font: 500 12px/16px var(--font-sans);
17153
+ color: var(--ink-muted);
17154
+ }
17155
+ :where([data-kit="pro"]) .tf-agentlog-kind,
17156
+ :where([data-kit="pro"]) .tf-agentlog-state,
17157
+ :where([data-kit="pro"]) .tf-scope-level {
17158
+ display: inline-flex;
17159
+ align-items: center;
17160
+ padding: 0 6px;
17161
+ border-radius: var(--radius-pill);
17162
+ font: 500 11px/18px var(--font-sans);
17163
+ white-space: nowrap;
17164
+ background: var(--surface-sunken);
17165
+ color: var(--ink-muted);
17166
+ }
17167
+ :where([data-kit="pro"]) .tf-agentlog-kind.kind-act,
17168
+ :where([data-kit="pro"]) .tf-scope-level.is-act {
17169
+ background: var(--sky);
17170
+ color: var(--sky-ink);
17171
+ }
17172
+ :where([data-kit="pro"]) .tf-agentlog-kind.kind-money,
17173
+ :where([data-kit="pro"]) .tf-scope-level.is-money {
17174
+ background: var(--butter);
17175
+ color: var(--butter-ink);
17176
+ }
17177
+ :where([data-kit="pro"]) .tf-agentlog-state.is-waiting {
17178
+ background: var(--lilac);
17179
+ color: var(--lilac-ink);
17180
+ }
17181
+ :where([data-kit="pro"]) .tf-agentlog-state.is-failed {
17182
+ background: var(--blush);
17183
+ color: var(--blush-ink);
17184
+ }
17185
+ :where([data-kit="pro"]) .tf-agentlog-item > .tf-btn {
17186
+ flex: none;
17187
+ align-self: center;
17188
+ }
17189
+
17190
+ /* ConsentList: what a permission allows */
17191
+ :where([data-kit="pro"]) .tf-scope-level {
17192
+ align-self: flex-start;
17193
+ margin-top: 4px;
17194
+ }
17195
+
17196
+ /* ConnectionList */
17197
+ :where([data-kit="pro"]) .tf-connlist {
17198
+ container: tf-connlist / inline-size;
17199
+ display: flex;
17200
+ flex-direction: column;
17201
+ margin: 0;
17202
+ padding: 0;
17203
+ list-style: none;
17204
+ }
17205
+ :where([data-kit="pro"]) .tf-connlist-item {
17206
+ display: grid;
17207
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
17208
+ align-items: center;
17209
+ gap: 4px 12px;
17210
+ padding: 10px 0;
17211
+ border-bottom: 1px solid var(--line);
17212
+ }
17213
+ :where([data-kit="pro"]) .tf-connlist-item:last-child {
17214
+ border-bottom: 0;
17215
+ }
17216
+ :where([data-kit="pro"]) .tf-connlist-item .tf-option-text {
17217
+ min-width: 0;
17218
+ padding: 0;
17219
+ }
17220
+ :where([data-kit="pro"]) .tf-connlist-item .tf-option-text small {
17221
+ overflow: hidden;
17222
+ text-overflow: ellipsis;
17223
+ white-space: nowrap;
17224
+ }
17225
+ :where([data-kit="pro"]) .tf-connlist-item > .tf-btn {
17226
+ grid-column: 4;
17227
+ }
17228
+ /* narrow: the sync line goes under the name */
17229
+ @container tf-connlist (max-width: 480px) {
17230
+ :where([data-kit="pro"]) .tf-connlist-item {
17231
+ grid-template-columns: auto minmax(0, 1fr) auto;
17232
+ }
17233
+ :where([data-kit="pro"]) .tf-connlist-item > .tf-sync {
17234
+ grid-column: 2;
17235
+ grid-row: 2;
17236
+ }
17237
+ :where([data-kit="pro"]) .tf-connlist-item > .tf-btn {
17238
+ grid-column: 3;
17239
+ grid-row: 1;
17240
+ }
17241
+ }
17242
+
17243
+ /* 14-connected-data.css */
17244
+ /* Generated by scripts/pro-css.ts from packages/halo/css. Do not edit; the Pro look lives in 90-pro-look.css. */
17245
+ /* Connected data: devices, car, now playing, workouts, calls, bookings, golf, holdings */
17246
+
17247
+ /* the cards */
17248
+ :where([data-kit="pro"]) .tf-device,
17249
+ :where([data-kit="pro"]) .tf-vehicle,
17250
+ :where([data-kit="pro"]) .tf-nowplaying,
17251
+ :where([data-kit="pro"]) .tf-workout,
17252
+ :where([data-kit="pro"]) .tf-booking,
17253
+ :where([data-kit="pro"]) .tf-scorecard {
17254
+ display: flex;
17255
+ flex-direction: column;
17256
+ gap: 12px;
17257
+ min-width: 0;
17258
+ padding: 16px;
17259
+ box-sizing: border-box;
17260
+ border-radius: var(--radius-lg);
17261
+ background: var(--surface);
17262
+ box-shadow: 0 0 0 var(--line-width) var(--line);
17263
+ }
17264
+ :where([data-kit="pro"]) :is(
17265
+ .tf-device-head,
17266
+ .tf-vehicle-head,
17267
+ .tf-nowplaying-head,
17268
+ .tf-workout-head,
17269
+ .tf-booking-head,
17270
+ .tf-scorecard-head
17271
+ ) {
17272
+ display: flex;
17273
+ align-items: center;
17274
+ gap: 12px;
17275
+ min-width: 0;
17276
+ }
17277
+ :where([data-kit="pro"]) :is(
17278
+ .tf-device-head,
17279
+ .tf-vehicle-head,
17280
+ .tf-nowplaying-head,
17281
+ .tf-workout-head,
17282
+ .tf-booking-head,
17283
+ .tf-scorecard-head
17284
+ )
17285
+ > .tf-option-text {
17286
+ flex: 1;
17287
+ min-width: 0;
17288
+ padding: 0;
17289
+ }
17290
+ :where([data-kit="pro"]) :is(
17291
+ .tf-device-head,
17292
+ .tf-vehicle-head,
17293
+ .tf-nowplaying-head,
17294
+ .tf-workout-head,
17295
+ .tf-booking-head,
17296
+ .tf-scorecard-head
17297
+ )
17298
+ b {
17299
+ font: 500 14px/20px var(--font-sans);
17300
+ }
17301
+
17302
+ /* DeviceTile */
17303
+ :where([data-kit="pro"]) .tf-device-ico {
17304
+ display: inline-grid;
17305
+ flex: none;
17306
+ place-items: center;
17307
+ width: 36px;
17308
+ height: var(--density-control);
17309
+ border-radius: var(--radius-pill);
17310
+ background: var(--surface-sunken);
17311
+ color: var(--ink-muted);
17312
+ }
17313
+ :where([data-kit="pro"]) .tf-device-ico.is-on {
17314
+ background: var(--butter);
17315
+ color: var(--butter-ink);
17316
+ }
17317
+ :where([data-kit="pro"]) .tf-device.kind-thermostat .tf-device-ico.is-on {
17318
+ background: var(--blush);
17319
+ color: var(--blush-ink);
17320
+ }
17321
+ :where([data-kit="pro"]) .tf-device.kind-vacuum .tf-device-ico.is-on,
17322
+ :where([data-kit="pro"]) .tf-device.kind-purifier .tf-device-ico.is-on {
17323
+ background: var(--sky);
17324
+ color: var(--sky-ink);
17325
+ }
17326
+ :where([data-kit="pro"]) .tf-device-body {
17327
+ display: flex;
17328
+ flex-direction: column;
17329
+ gap: 2px;
17330
+ }
17331
+ :where([data-kit="pro"]) .tf-device-value {
17332
+ font: 600 22px/28px var(--font-sans);
17333
+ font-variant-numeric: tabular-nums;
17334
+ }
17335
+ :where([data-kit="pro"]) .tf-device.is-offline .tf-device-value,
17336
+ :where([data-kit="pro"]) .tf-device.is-off .tf-device-value {
17337
+ font-size: 14px;
17338
+ line-height: 22px;
17339
+ color: var(--ink-muted);
17340
+ }
17341
+ :where([data-kit="pro"]) .tf-device-status {
17342
+ font: 500 13px/18px var(--font-sans);
17343
+ color: var(--ink-muted);
17344
+ }
17345
+ :where([data-kit="pro"]) .tf-device-stepper {
17346
+ display: flex;
17347
+ align-items: center;
17348
+ justify-content: space-between;
17349
+ gap: 8px;
17350
+ padding: 4px;
17351
+ border-radius: var(--radius-pill);
17352
+ background: var(--surface-sunken);
17353
+ font: 500 13px/18px var(--font-sans);
17354
+ font-variant-numeric: tabular-nums;
17355
+ }
17356
+ :where([data-kit="pro"]) .tf-device-stepper > span {
17357
+ flex: 1;
17358
+ text-align: center;
17359
+ }
17360
+ :where([data-kit="pro"]) .tf-device-foot {
17361
+ display: flex;
17362
+ flex-wrap: wrap;
17363
+ align-items: center;
17364
+ gap: 8px;
17365
+ }
17366
+ :where([data-kit="pro"]) .tf-device-battery {
17367
+ display: inline-flex;
17368
+ align-items: center;
17369
+ gap: 4px;
17370
+ margin-right: auto;
17371
+ font: 500 12px/16px var(--font-sans);
17372
+ color: var(--ink-muted);
17373
+ }
17374
+ :where([data-kit="pro"]) .tf-device-battery.is-low {
17375
+ color: var(--blush-ink);
17376
+ }
17377
+
17378
+ /* VehicleCard */
17379
+ :where([data-kit="pro"]) .tf-vehicle-charge {
17380
+ display: flex;
17381
+ flex-wrap: wrap;
17382
+ align-items: baseline;
17383
+ gap: 4px 12px;
17384
+ }
17385
+ :where([data-kit="pro"]) .tf-vehicle-pct {
17386
+ font: 600 24px/38px var(--font-sans);
17387
+ font-variant-numeric: tabular-nums;
17388
+ }
17389
+ :where([data-kit="pro"]) .tf-vehicle-range {
17390
+ font: 500 14px/20px var(--font-sans);
17391
+ color: var(--ink-muted);
17392
+ }
17393
+ :where([data-kit="pro"]) .tf-vehicle-bar {
17394
+ position: relative;
17395
+ height: 12px;
17396
+ border-radius: var(--radius-pill);
17397
+ background: var(--surface-sunken);
17398
+ }
17399
+ :where([data-kit="pro"]) .tf-vehicle-fill {
17400
+ height: 100%;
17401
+ border-radius: var(--radius-pill);
17402
+ background: var(--mint-ink);
17403
+ }
17404
+ :where([data-kit="pro"]) .tf-vehicle-fill.is-charging {
17405
+ background: var(--sky-ink);
17406
+ }
17407
+ :where([data-kit="pro"]) .tf-vehicle-limit {
17408
+ position: absolute;
17409
+ top: -3px;
17410
+ bottom: -3px;
17411
+ width: 2px;
17412
+ margin-left: -1px;
17413
+ border-radius: 1px;
17414
+ background: var(--ink);
17415
+ }
17416
+ :where([data-kit="pro"]) .tf-vehicle-line {
17417
+ display: flex;
17418
+ flex-wrap: wrap;
17419
+ gap: 4px 14px;
17420
+ margin: 0;
17421
+ font: 500 13px/18px var(--font-sans);
17422
+ color: var(--ink-muted);
17423
+ }
17424
+ :where([data-kit="pro"]) .tf-vehicle-line > span {
17425
+ display: inline-flex;
17426
+ align-items: center;
17427
+ gap: 4px;
17428
+ }
17429
+ :where([data-kit="pro"]) .tf-vehicle-state.is-charging {
17430
+ color: var(--sky-ink);
17431
+ }
17432
+ :where([data-kit="pro"]) .tf-vehicle-controls {
17433
+ display: flex;
17434
+ flex-wrap: wrap;
17435
+ align-items: center;
17436
+ gap: 8px;
17437
+ }
17438
+ :where([data-kit="pro"]) .tf-vehicle-inside {
17439
+ margin-left: auto;
17440
+ font: 500 13px/18px var(--font-sans);
17441
+ color: var(--ink-muted);
17442
+ }
17443
+
17444
+ /* NowPlaying */
17445
+ :where([data-kit="pro"]) .tf-nowplaying {
17446
+ flex-direction: row;
17447
+ align-items: stretch;
17448
+ }
17449
+ :where([data-kit="pro"]) .tf-nowplaying-art {
17450
+ display: grid;
17451
+ flex: none;
17452
+ place-items: center;
17453
+ width: 88px;
17454
+ height: 88px;
17455
+ overflow: hidden;
17456
+ border-radius: var(--radius-md);
17457
+ background: var(--lilac);
17458
+ color: var(--lilac-ink);
17459
+ }
17460
+ :where([data-kit="pro"]) .tf-nowplaying-art > img {
17461
+ width: 100%;
17462
+ height: 100%;
17463
+ object-fit: cover;
17464
+ }
17465
+ :where([data-kit="pro"]) .tf-nowplaying-main {
17466
+ display: flex;
17467
+ flex: 1;
17468
+ flex-direction: column;
17469
+ gap: 8px;
17470
+ min-width: 0;
17471
+ }
17472
+ :where([data-kit="pro"]) .tf-nowplaying-head small {
17473
+ overflow: hidden;
17474
+ text-overflow: ellipsis;
17475
+ white-space: nowrap;
17476
+ }
17477
+ :where([data-kit="pro"]) .tf-nowplaying-progress {
17478
+ display: flex;
17479
+ flex-direction: column;
17480
+ gap: 2px;
17481
+ }
17482
+ :where([data-kit="pro"]) .tf-nowplaying-bar {
17483
+ height: 4px;
17484
+ overflow: hidden;
17485
+ border-radius: var(--radius-pill);
17486
+ background: var(--surface-sunken);
17487
+ }
17488
+ :where([data-kit="pro"]) .tf-nowplaying-bar > span {
17489
+ display: block;
17490
+ height: 100%;
17491
+ background: var(--ink);
17492
+ }
17493
+ :where([data-kit="pro"]) .tf-nowplaying-times {
17494
+ display: flex;
17495
+ justify-content: space-between;
17496
+ font: 500 11px/14px var(--font-sans);
17497
+ font-variant-numeric: tabular-nums;
17498
+ color: var(--ink-muted);
17499
+ }
17500
+ :where([data-kit="pro"]) .tf-nowplaying-foot {
17501
+ display: flex;
17502
+ flex-wrap: wrap;
17503
+ align-items: center;
17504
+ justify-content: space-between;
17505
+ gap: 4px 8px;
17506
+ margin-top: auto;
17507
+ }
17508
+ :where([data-kit="pro"]) .tf-nowplaying-device {
17509
+ font: 500 12px/16px var(--font-sans);
17510
+ color: var(--ink-muted);
17511
+ }
17512
+ :where([data-kit="pro"]) .tf-nowplaying-controls {
17513
+ display: inline-flex;
17514
+ align-items: center;
17515
+ gap: 4px;
17516
+ margin-left: auto;
17517
+ }
17518
+
17519
+ /* WorkoutCard */
17520
+ :where([data-kit="pro"]) .tf-workout-stats {
17521
+ display: grid;
17522
+ grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
17523
+ gap: 10px 16px;
17524
+ margin: 0;
17525
+ }
17526
+ :where([data-kit="pro"]) .tf-workout-stats dt {
17527
+ font: 500 12px/16px var(--font-sans);
17528
+ color: var(--ink-muted);
17529
+ }
17530
+ :where([data-kit="pro"]) .tf-workout-stats dd {
17531
+ margin: 0;
17532
+ font: 600 14px/20px var(--font-sans);
17533
+ font-variant-numeric: tabular-nums;
17534
+ }
17535
+ :where([data-kit="pro"]) .tf-workout-zones {
17536
+ display: flex;
17537
+ flex-direction: column;
17538
+ gap: 6px;
17539
+ }
17540
+ :where([data-kit="pro"]) .tf-workout-zones-title {
17541
+ font: 500 12px/16px var(--font-sans);
17542
+ color: var(--ink-muted);
17543
+ }
17544
+ :where([data-kit="pro"]) .tf-workout-zonebar {
17545
+ display: flex;
17546
+ gap: 2px;
17547
+ height: 8px;
17548
+ overflow: hidden;
17549
+ border-radius: var(--radius-pill);
17550
+ }
17551
+ :where([data-kit="pro"]) .tf-workout-zonebar > span {
17552
+ flex-basis: 0;
17553
+ min-width: 2px;
17554
+ }
17555
+ :where([data-kit="pro"]) .tf-workout-legend {
17556
+ display: flex;
17557
+ flex-wrap: wrap;
17558
+ gap: 4px 12px;
17559
+ margin: 0;
17560
+ padding: 0;
17561
+ list-style: none;
17562
+ font: 500 12px/16px var(--font-sans);
17563
+ color: var(--ink-muted);
17564
+ }
17565
+ :where([data-kit="pro"]) .tf-workout-legend li {
17566
+ display: inline-flex;
17567
+ align-items: center;
17568
+ gap: 4px;
17569
+ }
17570
+ :where([data-kit="pro"]) .tf-workout-legend i {
17571
+ width: 8px;
17572
+ height: 8px;
17573
+ border-radius: 2px;
17574
+ }
17575
+
17576
+ /* CallLog */
17577
+ :where([data-kit="pro"]) .tf-calls {
17578
+ display: flex;
17579
+ flex-direction: column;
17580
+ gap: 16px;
17581
+ min-width: 0;
17582
+ }
17583
+ :where([data-kit="pro"]) .tf-calls-day ul {
17584
+ margin: 0;
17585
+ padding: 0;
17586
+ list-style: none;
17587
+ }
17588
+ :where([data-kit="pro"]) .tf-call {
17589
+ display: flex;
17590
+ align-items: flex-start;
17591
+ gap: 12px;
17592
+ padding: 10px 0;
17593
+ border-bottom: 1px solid var(--line);
17594
+ }
17595
+ :where([data-kit="pro"]) .tf-call:last-child {
17596
+ border-bottom: 0;
17597
+ }
17598
+ :where([data-kit="pro"]) .tf-call-ico {
17599
+ display: inline-grid;
17600
+ flex: none;
17601
+ place-items: center;
17602
+ width: 32px;
17603
+ height: var(--control-sm);
17604
+ border-radius: var(--radius-pill);
17605
+ background: var(--surface-sunken);
17606
+ color: var(--ink-muted);
17607
+ }
17608
+ :where([data-kit="pro"]) .tf-call.is-missed .tf-call-ico {
17609
+ background: var(--blush);
17610
+ color: var(--blush-ink);
17611
+ }
17612
+ :where([data-kit="pro"]) .tf-call-main {
17613
+ display: flex;
17614
+ flex: 1;
17615
+ flex-direction: column;
17616
+ gap: 2px;
17617
+ min-width: 0;
17618
+ }
17619
+ :where([data-kit="pro"]) .tf-call-name {
17620
+ align-self: flex-start;
17621
+ padding: 0;
17622
+ border: 0;
17623
+ background: none;
17624
+ color: var(--ink);
17625
+ font: 500 14px/20px var(--font-sans);
17626
+ text-align: left;
17627
+ }
17628
+ :where([data-kit="pro"]) button.tf-call-name {
17629
+ cursor: pointer;
17630
+ }
17631
+ :where([data-kit="pro"]) button.tf-call-name:hover {
17632
+ text-decoration: underline;
17633
+ }
17634
+ :where([data-kit="pro"]) button.tf-call-name:focus-visible {
17635
+ outline: 2px solid var(--focus);
17636
+ outline-offset: 2px;
17637
+ border-radius: var(--radius-sm);
17638
+ }
17639
+ :where([data-kit="pro"]) .tf-call.is-missed .tf-call-name {
17640
+ color: var(--blush-ink);
17641
+ }
17642
+ :where([data-kit="pro"]) .tf-call-meta {
17643
+ font: 500 12px/16px var(--font-sans);
17644
+ color: var(--ink-muted);
17645
+ }
17646
+ :where([data-kit="pro"]) .tf-call-summary {
17647
+ margin: 2px 0 0;
17648
+ font: 500 13px/18px var(--font-sans);
17649
+ color: var(--ink);
17650
+ }
17651
+
17652
+ /* ReservationCard */
17653
+ :where([data-kit="pro"]) .tf-booking-when {
17654
+ margin: 0;
17655
+ font: 500 15px/20px var(--font-sans);
17656
+ }
17657
+ :where([data-kit="pro"]) .tf-booking-place {
17658
+ display: flex;
17659
+ align-items: center;
17660
+ gap: 4px;
17661
+ margin: 0;
17662
+ font: 500 13px/18px var(--font-sans);
17663
+ color: var(--ink-muted);
17664
+ }
17665
+ :where([data-kit="pro"]) .tf-booking-foot {
17666
+ display: flex;
17667
+ flex-wrap: wrap;
17668
+ align-items: center;
17669
+ justify-content: space-between;
17670
+ gap: 8px;
17671
+ }
17672
+ :where([data-kit="pro"]) .tf-booking-code {
17673
+ font: 500 12px/16px var(--font-sans);
17674
+ color: var(--ink-muted);
17675
+ }
17676
+ :where([data-kit="pro"]) .tf-booking-code b {
17677
+ font: 500 12px/16px var(--font-mono);
17678
+ color: var(--ink);
17679
+ }
17680
+ :where([data-kit="pro"]) .tf-booking.is-cancelled .tf-booking-when {
17681
+ color: var(--ink-muted);
17682
+ text-decoration: line-through;
17683
+ }
17684
+ :where([data-kit="pro"]) .tf-booking-actions {
17685
+ display: flex;
17686
+ flex-wrap: wrap;
17687
+ gap: 8px;
17688
+ }
17689
+
17690
+ /* Scorecard */
17691
+ :where([data-kit="pro"]) .tf-scorecard-total {
17692
+ display: flex;
17693
+ flex: none;
17694
+ flex-direction: column;
17695
+ align-items: flex-end;
17696
+ }
17697
+ :where([data-kit="pro"]) .tf-scorecard-total b {
17698
+ font: 600 24px/28px var(--font-sans);
17699
+ font-variant-numeric: tabular-nums;
17700
+ }
17701
+ :where([data-kit="pro"]) .tf-scorecard-total small {
17702
+ font: 500 12px/16px var(--font-sans);
17703
+ color: var(--ink-muted);
17704
+ }
17705
+ :where([data-kit="pro"]) .tf-scorecard-scroll {
17706
+ overflow-x: auto;
17707
+ }
17708
+ :where([data-kit="pro"]) .tf-scorecard-table {
17709
+ width: 100%;
17710
+ min-width: 360px;
17711
+ border-collapse: collapse;
17712
+ font: 500 13px/18px var(--font-sans);
17713
+ font-variant-numeric: tabular-nums;
17714
+ text-align: center;
17715
+ }
17716
+ :where([data-kit="pro"]) .tf-scorecard-table th,
17717
+ :where([data-kit="pro"]) .tf-scorecard-table td {
17718
+ padding: 6px 2px;
17719
+ border-bottom: 1px solid var(--line);
17720
+ }
17721
+ :where([data-kit="pro"]) .tf-scorecard-table th[scope="row"] {
17722
+ padding-right: 8px;
17723
+ text-align: left;
17724
+ font-weight: 500;
17725
+ color: var(--ink-muted);
17726
+ white-space: nowrap;
17727
+ }
17728
+ :where([data-kit="pro"]) .tf-scorecard-table thead th {
17729
+ font-weight: 500;
17730
+ color: var(--ink-muted);
17731
+ }
17732
+ :where([data-kit="pro"]) .tf-scorecard-table td:last-child,
17733
+ :where([data-kit="pro"]) .tf-scorecard-table th:last-child {
17734
+ background: var(--surface-sunken);
17735
+ }
17736
+ :where([data-kit="pro"]) .tf-scorecard-par td,
17737
+ :where([data-kit="pro"]) .tf-scorecard-putts td {
17738
+ color: var(--ink-muted);
17739
+ }
17740
+ :where([data-kit="pro"]) .tf-score {
17741
+ display: inline-grid;
17742
+ place-items: center;
17743
+ min-width: 22px;
17744
+ height: 22px;
17745
+ box-sizing: border-box;
17746
+ font-weight: 500;
17747
+ }
17748
+ /* the usual marks: circles under par, squares over it */
17749
+ :where([data-kit="pro"]) .tf-score.is-birdie {
17750
+ border: 1.5px solid currentColor;
17751
+ border-radius: var(--radius-1);
17752
+ }
17753
+ :where([data-kit="pro"]) .tf-score.is-eagle {
17754
+ border: 1.5px solid currentColor;
17755
+ border-radius: var(--radius-1);
17756
+ box-shadow:
17757
+ 0 0 0 2px var(--surface),
17758
+ 0 0 0 3.5px currentColor;
17759
+ }
17760
+ :where([data-kit="pro"]) .tf-score.is-bogey {
17761
+ border: 1.5px solid currentColor;
17762
+ border-radius: 2px;
17763
+ }
17764
+ :where([data-kit="pro"]) .tf-score.is-double {
17765
+ border: 1.5px solid currentColor;
17766
+ border-radius: 2px;
17767
+ box-shadow:
17768
+ 0 0 0 2px var(--surface),
17769
+ 0 0 0 3.5px currentColor;
17770
+ }
17771
+ :where([data-kit="pro"]) .tf-scorecard-legend {
17772
+ display: flex;
17773
+ flex-wrap: wrap;
17774
+ gap: 6px 16px;
17775
+ margin: 0;
17776
+ padding: 0;
17777
+ list-style: none;
17778
+ font: 500 12px/16px var(--font-sans);
17779
+ color: var(--ink-muted);
17780
+ }
17781
+ :where([data-kit="pro"]) .tf-scorecard-legend li {
17782
+ display: inline-flex;
17783
+ align-items: center;
17784
+ gap: 8px;
17785
+ }
17786
+ :where([data-kit="pro"]) .tf-scorecard-legend .tf-score {
17787
+ min-width: 14px;
17788
+ height: 14px;
17789
+ }
17790
+
17791
+ /* HoldingsList */
17792
+ :where([data-kit="pro"]) .tf-holdings {
17793
+ container: tf-holdings / inline-size;
17794
+ display: flex;
17795
+ flex-direction: column;
17796
+ margin: 0;
17797
+ padding: 0;
17798
+ list-style: none;
17799
+ }
17800
+ :where([data-kit="pro"]) .tf-holdings > li {
17801
+ border-bottom: 1px solid var(--line);
17802
+ }
17803
+ :where([data-kit="pro"]) .tf-holdings > li:last-child {
17804
+ border-bottom: 0;
17805
+ }
17806
+ :where([data-kit="pro"]) .tf-holding {
17807
+ display: grid;
17808
+ grid-template-columns: minmax(0, 1fr) auto minmax(96px, 160px);
17809
+ align-items: center;
17810
+ gap: 4px 16px;
17811
+ width: 100%;
17812
+ padding: 10px 0;
17813
+ border: 0;
17814
+ background: none;
17815
+ color: var(--ink);
17816
+ font: inherit;
17817
+ text-align: left;
17818
+ }
17819
+ :where([data-kit="pro"]) button.tf-holding {
17820
+ cursor: pointer;
17821
+ }
17822
+ :where([data-kit="pro"]) button.tf-holding:hover {
17823
+ background: var(--accent);
17824
+ }
17825
+ :where([data-kit="pro"]) button.tf-holding:focus-visible {
17826
+ outline: 2px solid var(--focus);
17827
+ outline-offset: 2px;
17828
+ }
17829
+ :where([data-kit="pro"]) .tf-holding .tf-option-text {
17830
+ min-width: 0;
17831
+ padding: 0;
17832
+ }
17833
+ :where([data-kit="pro"]) .tf-holding .tf-option-text b {
17834
+ overflow: hidden;
17835
+ text-overflow: ellipsis;
17836
+ white-space: nowrap;
17837
+ font: 500 14px/20px var(--font-sans);
17838
+ }
17839
+ :where([data-kit="pro"]) .tf-holding-nums {
17840
+ display: flex;
17841
+ flex-direction: column;
17842
+ align-items: flex-end;
17843
+ font-variant-numeric: tabular-nums;
17844
+ }
17845
+ :where([data-kit="pro"]) .tf-holding-nums b {
17846
+ font: 500 14px/20px var(--font-sans);
17847
+ }
17848
+ :where([data-kit="pro"]) .tf-holding-change {
17849
+ display: inline-flex;
17850
+ align-items: center;
17851
+ gap: 2px;
17852
+ font: 500 12px/16px var(--font-sans);
17853
+ color: var(--ink-muted);
17854
+ }
17855
+ :where([data-kit="pro"]) .tf-holding-change.is-up {
17856
+ color: var(--mint-ink);
17857
+ }
17858
+ :where([data-kit="pro"]) .tf-holding-change.is-down {
17859
+ color: var(--blush-ink);
17860
+ }
17861
+ :where([data-kit="pro"]) .tf-holding-change.is-down .tf-ico {
17862
+ transform: rotate(180deg);
17863
+ }
17864
+ :where([data-kit="pro"]) .tf-holding-weight {
17865
+ display: flex;
17866
+ flex-direction: column;
17867
+ gap: 4px;
17868
+ font: 500 11px/14px var(--font-sans);
17869
+ color: var(--ink-muted);
17870
+ }
17871
+ :where([data-kit="pro"]) .tf-holding-bar {
17872
+ height: 6px;
17873
+ overflow: hidden;
17874
+ border-radius: var(--radius-pill);
17875
+ background: var(--surface-sunken);
17876
+ }
17877
+ :where([data-kit="pro"]) .tf-holding-bar > span {
17878
+ display: block;
17879
+ height: 100%;
17880
+ background: var(--lilac-ink);
17881
+ }
17882
+ /* narrow: the share goes under the name */
17883
+ @container tf-holdings (max-width: 420px) {
17884
+ :where([data-kit="pro"]) .tf-holding {
17885
+ grid-template-columns: minmax(0, 1fr) auto;
17886
+ }
17887
+ :where([data-kit="pro"]) .tf-holding-weight {
17888
+ grid-column: 1 / -1;
17889
+ }
17890
+ }
17891
+
15290
17892
  /* 90-pro-look.css */
15291
17893
  /* Pro look ("Clean Dark Pro", reference/pro): monochrome surfaces on a visible 1px hairline grid,
15292
17894
  square corners (2px on controls), Geist and Geist Mono, colour only for state, dense by default.