@twentyfirstmedia/pro 0.7.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
@@ -14646,7 +14646,14 @@
14646
14646
  .tf-insight,
14647
14647
  .tf-consent-item,
14648
14648
  .tf-nw,
14649
- .tf-policy
14649
+ .tf-policy,
14650
+ .tf-connector,
14651
+ .tf-device,
14652
+ .tf-vehicle,
14653
+ .tf-nowplaying,
14654
+ .tf-workout,
14655
+ .tf-booking,
14656
+ .tf-scorecard
14650
14657
  ):not(
14651
14658
  :is(
14652
14659
  .tf-panel,
@@ -14669,6 +14676,13 @@
14669
14676
  .tf-consent-item,
14670
14677
  .tf-nw,
14671
14678
  .tf-policy,
14679
+ .tf-connector,
14680
+ .tf-device,
14681
+ .tf-vehicle,
14682
+ .tf-nowplaying,
14683
+ .tf-workout,
14684
+ .tf-booking,
14685
+ .tf-scorecard,
14672
14686
  .tf-glass
14673
14687
  )
14674
14688
  *
@@ -14689,7 +14703,14 @@
14689
14703
  .tf-insight,
14690
14704
  .tf-consent-item,
14691
14705
  .tf-nw,
14692
- .tf-policy
14706
+ .tf-policy,
14707
+ .tf-connector,
14708
+ .tf-device,
14709
+ .tf-vehicle,
14710
+ .tf-nowplaying,
14711
+ .tf-workout,
14712
+ .tf-booking,
14713
+ .tf-scorecard
14693
14714
  ):not(
14694
14715
  :is(
14695
14716
  .tf-panel,
@@ -14712,6 +14733,13 @@
14712
14733
  .tf-consent-item,
14713
14734
  .tf-nw,
14714
14735
  .tf-policy,
14736
+ .tf-connector,
14737
+ .tf-device,
14738
+ .tf-vehicle,
14739
+ .tf-nowplaying,
14740
+ .tf-workout,
14741
+ .tf-booking,
14742
+ .tf-scorecard,
14715
14743
  .tf-glass
14716
14744
  )
14717
14745
  *
@@ -14832,6 +14860,13 @@
14832
14860
  .tf-policy,
14833
14861
  .tf-consent-item,
14834
14862
  .tf-journal,
14863
+ .tf-connector,
14864
+ .tf-device,
14865
+ .tf-vehicle,
14866
+ .tf-nowplaying,
14867
+ .tf-workout,
14868
+ .tf-booking,
14869
+ .tf-scorecard,
14835
14870
  .tf-btngroup,
14836
14871
  .tf-map-ctl,
14837
14872
  .tf-topbar
@@ -14865,6 +14900,13 @@
14865
14900
  .tf-policy,
14866
14901
  .tf-consent-item,
14867
14902
  .tf-journal,
14903
+ .tf-connector,
14904
+ .tf-device,
14905
+ .tf-vehicle,
14906
+ .tf-nowplaying,
14907
+ .tf-workout,
14908
+ .tf-booking,
14909
+ .tf-scorecard,
14868
14910
  .tf-btngroup,
14869
14911
  .tf-map-ctl,
14870
14912
  .tf-topbar
@@ -14902,6 +14944,13 @@
14902
14944
  .tf-policy,
14903
14945
  .tf-consent-item,
14904
14946
  .tf-journal,
14947
+ .tf-connector,
14948
+ .tf-device,
14949
+ .tf-vehicle,
14950
+ .tf-nowplaying,
14951
+ .tf-workout,
14952
+ .tf-booking,
14953
+ .tf-scorecard,
14905
14954
  .tf-glass
14906
14955
  )
14907
14956
  *
@@ -14919,6 +14968,13 @@
14919
14968
  .tf-policy,
14920
14969
  .tf-consent-item,
14921
14970
  .tf-journal,
14971
+ .tf-connector,
14972
+ .tf-device,
14973
+ .tf-vehicle,
14974
+ .tf-nowplaying,
14975
+ .tf-workout,
14976
+ .tf-booking,
14977
+ .tf-scorecard,
14922
14978
  .tf-glass
14923
14979
  )
14924
14980
  *
@@ -14983,7 +15039,14 @@
14983
15039
  .tf-insight,
14984
15040
  .tf-consent-item,
14985
15041
  .tf-nw,
14986
- .tf-policy
15042
+ .tf-policy,
15043
+ .tf-connector,
15044
+ .tf-device,
15045
+ .tf-vehicle,
15046
+ .tf-nowplaying,
15047
+ .tf-workout,
15048
+ .tf-booking,
15049
+ .tf-scorecard
14987
15050
  ),
14988
15051
  :where([data-kit="pro"]) [data-surface="glass"]
14989
15052
  :is(
@@ -15001,7 +15064,14 @@
15001
15064
  .tf-insight,
15002
15065
  .tf-consent-item,
15003
15066
  .tf-nw,
15004
- .tf-policy
15067
+ .tf-policy,
15068
+ .tf-connector,
15069
+ .tf-device,
15070
+ .tf-vehicle,
15071
+ .tf-nowplaying,
15072
+ .tf-workout,
15073
+ .tf-booking,
15074
+ .tf-scorecard
15005
15075
  ) {
15006
15076
  outline: 1px solid CanvasText;
15007
15077
  outline-offset: -1px;
@@ -16768,6 +16838,1057 @@
16768
16838
  color: var(--ink-muted);
16769
16839
  }
16770
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
+
16771
17892
  /* 90-pro-look.css */
16772
17893
  /* Pro look ("Clean Dark Pro", reference/pro): monochrome surfaces on a visible 1px hairline grid,
16773
17894
  square corners (2px on controls), Geist and Geist Mono, colour only for state, dense by default.