@keenmate/pure-admin-core 2.6.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -16
- package/dist/css/main.css +1865 -257
- package/package.json +1 -1
- package/src/scss/_base-css-variables.scss +37 -19
- package/src/scss/_core.scss +11 -0
- package/src/scss/core-components/_alerts.scss +2 -2
- package/src/scss/core-components/_base.scss +19 -2
- package/src/scss/core-components/_buttons.scss +12 -8
- package/src/scss/core-components/_callouts.scss +1 -1
- package/src/scss/core-components/_cards.scss +4 -4
- package/src/scss/core-components/_checkbox-lists.scss +2 -2
- package/src/scss/core-components/_comparison.scss +7 -4
- package/src/scss/core-components/_data-display.scss +24 -15
- package/src/scss/core-components/_data-viz.scss +139 -131
- package/src/scss/core-components/_file-selector.scss +34 -34
- package/src/scss/core-components/_kpi-base.scss +169 -0
- package/src/scss/core-components/_kpi-bento.scss +182 -0
- package/src/scss/core-components/_kpi-comparison-gauges.scss +132 -0
- package/src/scss/core-components/_kpi-editorial-minimal.scss +128 -0
- package/src/scss/core-components/_kpi-hero-supporting.scss +210 -0
- package/src/scss/core-components/_kpi-numeric-strip.scss +154 -0
- package/src/scss/core-components/_kpi-sparkline-list.scss +171 -0
- package/src/scss/core-components/_kpi-terminal.scss +229 -0
- package/src/scss/core-components/_lists.scss +4 -4
- package/src/scss/core-components/_logic-tree.scss +2 -2
- package/src/scss/core-components/_modals.scss +69 -0
- package/src/scss/core-components/_notifications.scss +17 -17
- package/src/scss/core-components/_popconfirm.scss +1 -1
- package/src/scss/core-components/_statistics.scss +25 -19
- package/src/scss/core-components/_tabs.scss +12 -12
- package/src/scss/core-components/_timeline.scss +30 -30
- package/src/scss/core-components/badges/_composite-badge-variants.scss +7 -7
- package/src/scss/core-components/badges/_composite-badge.scss +1 -1
- package/src/scss/core-components/badges/_labels.scss +6 -6
- package/src/scss/core-components/forms/_input-wrapper.scss +1 -1
- package/src/scss/core-components/forms/_query-editor.scss +10 -10
- package/src/scss/core-components/layout/_sidebar-states.scss +1 -0
- package/src/scss/core-components/layout/_sidebar.scss +1 -0
- package/src/scss/variables/_colors.scss +1 -0
- package/src/scss/variables/_components.scss +3 -2
package/dist/css/main.css
CHANGED
|
@@ -2629,6 +2629,19 @@ p {
|
|
|
2629
2629
|
padding: 0;
|
|
2630
2630
|
}
|
|
2631
2631
|
|
|
2632
|
+
:where(a) {
|
|
2633
|
+
color: var(--pa-link-color);
|
|
2634
|
+
text-decoration: underline;
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
:where(a:hover) {
|
|
2638
|
+
color: var(--pa-link-color-hover);
|
|
2639
|
+
}
|
|
2640
|
+
|
|
2641
|
+
:where(a:visited) {
|
|
2642
|
+
color: var(--pa-link-color-visited);
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2632
2645
|
ul, ol {
|
|
2633
2646
|
margin: 0 0 1.6rem 0;
|
|
2634
2647
|
padding: 0;
|
|
@@ -2692,7 +2705,7 @@ body::before {
|
|
|
2692
2705
|
left: 0;
|
|
2693
2706
|
right: 0;
|
|
2694
2707
|
bottom: 0;
|
|
2695
|
-
background: radial-gradient(circle at 20% 80%,
|
|
2708
|
+
background: radial-gradient(circle at 20% 80%, color-mix(in srgb, var(--pa-accent) 3%, transparent) 0%, transparent 50%), radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--pa-accent) 3%, transparent) 0%, transparent 50%);
|
|
2696
2709
|
pointer-events: none;
|
|
2697
2710
|
z-index: -1;
|
|
2698
2711
|
}
|
|
@@ -3132,6 +3145,7 @@ body.loaded .pa-sidebar__label {
|
|
|
3132
3145
|
}
|
|
3133
3146
|
.pa-sidebar__submenu > .pa-sidebar__item > .pa-sidebar__link--active {
|
|
3134
3147
|
background-color: var(--pa-sidebar-submenu-active-bg);
|
|
3148
|
+
color: var(--pa-sidebar-submenu-active-text);
|
|
3135
3149
|
border-inline-end-color: var(--pa-accent);
|
|
3136
3150
|
}
|
|
3137
3151
|
.pa-sidebar__submenu > .pa-sidebar__item > .pa-sidebar__toggle {
|
|
@@ -3271,6 +3285,7 @@ body.loaded .pa-sidebar__chevron {
|
|
|
3271
3285
|
.sidebar-hidden .pa-layout__sidebar--icon-collapse .pa-sidebar__submenu:hover .pa-sidebar__link--active,
|
|
3272
3286
|
.sidebar-hidden .pa-layout__sidebar--icon-collapse .pa-sidebar__submenu:hover .pa-sidebar__toggle--active {
|
|
3273
3287
|
background-color: var(--pa-sidebar-submenu-active-bg);
|
|
3288
|
+
color: var(--pa-sidebar-submenu-active-text);
|
|
3274
3289
|
}
|
|
3275
3290
|
.sidebar-hidden .pa-layout__sidebar--icon-collapse .pa-sidebar__item:hover > .pa-sidebar__submenu .pa-sidebar__icon,
|
|
3276
3291
|
.sidebar-hidden .pa-layout__sidebar--icon-collapse .pa-sidebar__submenu:hover .pa-sidebar__icon {
|
|
@@ -5664,11 +5679,11 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5664
5679
|
border-top: none !important;
|
|
5665
5680
|
}
|
|
5666
5681
|
.pa-card--live-up {
|
|
5667
|
-
background-color:
|
|
5682
|
+
background-color: color-mix(in srgb, var(--pa-positive) 10%, transparent);
|
|
5668
5683
|
transition: background-color 0.3s ease;
|
|
5669
5684
|
}
|
|
5670
5685
|
.pa-card--live-down {
|
|
5671
|
-
background-color:
|
|
5686
|
+
background-color: color-mix(in srgb, var(--pa-negative) 10%, transparent);
|
|
5672
5687
|
transition: background-color 0.3s ease;
|
|
5673
5688
|
}
|
|
5674
5689
|
.pa-card--live-neutral {
|
|
@@ -5826,7 +5841,7 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5826
5841
|
}
|
|
5827
5842
|
.pa-card__tab:hover {
|
|
5828
5843
|
color: var(--pa-text-color-1);
|
|
5829
|
-
background-color:
|
|
5844
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
5830
5845
|
}
|
|
5831
5846
|
.pa-card__tab--active {
|
|
5832
5847
|
color: var(--pa-accent);
|
|
@@ -5856,7 +5871,7 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
|
|
|
5856
5871
|
transition: all 0.1s ease-out;
|
|
5857
5872
|
}
|
|
5858
5873
|
.pa-card__tabs--inline .pa-card__tab:hover {
|
|
5859
|
-
background-color:
|
|
5874
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
5860
5875
|
color: var(--pa-text-color-1);
|
|
5861
5876
|
}
|
|
5862
5877
|
.pa-card__tabs--inline .pa-card__tab--active {
|
|
@@ -5923,11 +5938,11 @@ a.pa-card p {
|
|
|
5923
5938
|
}
|
|
5924
5939
|
.pa-tabs__item:hover {
|
|
5925
5940
|
color: var(--pa-text-color-1);
|
|
5926
|
-
background-color:
|
|
5941
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
5927
5942
|
}
|
|
5928
5943
|
.pa-tabs__item--active {
|
|
5929
|
-
color:
|
|
5930
|
-
border-bottom-color:
|
|
5944
|
+
color: var(--pa-accent);
|
|
5945
|
+
border-bottom-color: var(--pa-accent);
|
|
5931
5946
|
font-weight: 600;
|
|
5932
5947
|
}
|
|
5933
5948
|
.pa-tabs__item i {
|
|
@@ -5953,8 +5968,8 @@ a.pa-card p {
|
|
|
5953
5968
|
background-color: var(--pa-main-bg);
|
|
5954
5969
|
}
|
|
5955
5970
|
.pa-tabs--pills .pa-tabs__item:hover {
|
|
5956
|
-
background-color:
|
|
5957
|
-
border-color:
|
|
5971
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
5972
|
+
border-color: color-mix(in srgb, var(--pa-accent) 30%, transparent);
|
|
5958
5973
|
color: var(--pa-text-color-1);
|
|
5959
5974
|
}
|
|
5960
5975
|
.pa-tabs--pills .pa-tabs__item--active {
|
|
@@ -5976,7 +5991,7 @@ a.pa-card p {
|
|
|
5976
5991
|
padding: 0.8rem 1.2rem;
|
|
5977
5992
|
}
|
|
5978
5993
|
.pa-tabs--boxed .pa-tabs__item:hover {
|
|
5979
|
-
background-color:
|
|
5994
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
5980
5995
|
color: var(--pa-text-color-1);
|
|
5981
5996
|
}
|
|
5982
5997
|
.pa-tabs--boxed .pa-tabs__item--active {
|
|
@@ -6008,11 +6023,11 @@ a.pa-card p {
|
|
|
6008
6023
|
min-height: 4rem;
|
|
6009
6024
|
}
|
|
6010
6025
|
.pa-tabs--vertical .pa-tabs__item:hover {
|
|
6011
|
-
background-color:
|
|
6026
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
6012
6027
|
}
|
|
6013
6028
|
.pa-tabs--vertical .pa-tabs__item--active {
|
|
6014
|
-
border-inline-end-color:
|
|
6015
|
-
background-color:
|
|
6029
|
+
border-inline-end-color: var(--pa-accent);
|
|
6030
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
6016
6031
|
}
|
|
6017
6032
|
.pa-tabs--vertical .pa-tabs__item i {
|
|
6018
6033
|
width: 2.4rem;
|
|
@@ -6204,7 +6219,7 @@ a.pa-card p {
|
|
|
6204
6219
|
height: 4rem;
|
|
6205
6220
|
}
|
|
6206
6221
|
.pa-tabs__container--card .pa-tabs__overflow-toggle:hover {
|
|
6207
|
-
background-color:
|
|
6222
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
6208
6223
|
color: var(--pa-text-color-1);
|
|
6209
6224
|
}
|
|
6210
6225
|
.pa-tabs__container--card .pa-tabs__overflow-toggle--has-active {
|
|
@@ -6248,10 +6263,10 @@ a.pa-card p {
|
|
|
6248
6263
|
white-space: nowrap;
|
|
6249
6264
|
}
|
|
6250
6265
|
.pa-tabs__container--card .pa-tabs__overflow-menu .pa-tabs__item:hover {
|
|
6251
|
-
background-color:
|
|
6266
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
6252
6267
|
}
|
|
6253
6268
|
.pa-tabs__container--card .pa-tabs__overflow-menu .pa-tabs__item--active {
|
|
6254
|
-
background-color:
|
|
6269
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
6255
6270
|
border-bottom: none;
|
|
6256
6271
|
}
|
|
6257
6272
|
.pa-tabs__vertical-layout {
|
|
@@ -6295,20 +6310,24 @@ a.pa-card p {
|
|
|
6295
6310
|
font-size: 2rem;
|
|
6296
6311
|
}
|
|
6297
6312
|
.pa-stat__icon--primary {
|
|
6298
|
-
background-color:
|
|
6299
|
-
color:
|
|
6313
|
+
background-color: var(--pa-accent-light);
|
|
6314
|
+
color: var(--pa-accent);
|
|
6300
6315
|
}
|
|
6301
6316
|
.pa-stat__icon--success {
|
|
6302
|
-
background-color:
|
|
6303
|
-
color:
|
|
6317
|
+
background-color: var(--pa-success-bg-light);
|
|
6318
|
+
color: var(--pa-success-bg);
|
|
6304
6319
|
}
|
|
6305
6320
|
.pa-stat__icon--warning {
|
|
6306
|
-
background-color:
|
|
6307
|
-
color:
|
|
6321
|
+
background-color: var(--pa-warning-bg-light);
|
|
6322
|
+
color: var(--pa-warning-bg);
|
|
6323
|
+
}
|
|
6324
|
+
.pa-stat__icon--danger {
|
|
6325
|
+
background-color: var(--pa-danger-bg-light);
|
|
6326
|
+
color: var(--pa-danger-bg);
|
|
6308
6327
|
}
|
|
6309
6328
|
.pa-stat__icon--info {
|
|
6310
|
-
background-color:
|
|
6311
|
-
color:
|
|
6329
|
+
background-color: var(--pa-info-bg-light);
|
|
6330
|
+
color: var(--pa-info-bg);
|
|
6312
6331
|
}
|
|
6313
6332
|
.pa-stat__content {
|
|
6314
6333
|
flex: 1;
|
|
@@ -6347,14 +6366,20 @@ a.pa-card p {
|
|
|
6347
6366
|
font-size: 1.2rem;
|
|
6348
6367
|
font-weight: 600;
|
|
6349
6368
|
}
|
|
6369
|
+
.pa-stat--hero .pa-stat__change--very-positive, .pa-stat--hero-compact .pa-stat__change--very-positive {
|
|
6370
|
+
color: var(--pa-very-positive);
|
|
6371
|
+
}
|
|
6350
6372
|
.pa-stat--hero .pa-stat__change--positive, .pa-stat--hero-compact .pa-stat__change--positive {
|
|
6351
|
-
color:
|
|
6373
|
+
color: var(--pa-positive);
|
|
6374
|
+
}
|
|
6375
|
+
.pa-stat--hero .pa-stat__change--neutral, .pa-stat--hero-compact .pa-stat__change--neutral {
|
|
6376
|
+
color: var(--pa-neutral);
|
|
6352
6377
|
}
|
|
6353
6378
|
.pa-stat--hero .pa-stat__change--negative, .pa-stat--hero-compact .pa-stat__change--negative {
|
|
6354
|
-
color:
|
|
6379
|
+
color: var(--pa-negative);
|
|
6355
6380
|
}
|
|
6356
|
-
.pa-stat--hero .pa-stat__change--
|
|
6357
|
-
color: var(--pa-
|
|
6381
|
+
.pa-stat--hero .pa-stat__change--very-negative, .pa-stat--hero-compact .pa-stat__change--very-negative {
|
|
6382
|
+
color: var(--pa-very-negative);
|
|
6358
6383
|
}
|
|
6359
6384
|
.pa-stat--square {
|
|
6360
6385
|
container-type: inline-size;
|
|
@@ -6497,21 +6522,21 @@ a.pa-card p {
|
|
|
6497
6522
|
}
|
|
6498
6523
|
.pa-list-basic--icon li::before {
|
|
6499
6524
|
content: "✓";
|
|
6500
|
-
color:
|
|
6525
|
+
color: var(--pa-success);
|
|
6501
6526
|
font-weight: 600;
|
|
6502
6527
|
flex-shrink: 0;
|
|
6503
6528
|
}
|
|
6504
6529
|
.pa-list-basic--icon.pa-list-basic--danger li::before {
|
|
6505
6530
|
content: "✗";
|
|
6506
|
-
color:
|
|
6531
|
+
color: var(--pa-danger);
|
|
6507
6532
|
}
|
|
6508
6533
|
.pa-list-basic--icon.pa-list-basic--info li::before {
|
|
6509
6534
|
content: "→";
|
|
6510
|
-
color:
|
|
6535
|
+
color: var(--pa-info);
|
|
6511
6536
|
}
|
|
6512
6537
|
.pa-list-basic--icon.pa-list-basic--warning li::before {
|
|
6513
6538
|
content: "!";
|
|
6514
|
-
color:
|
|
6539
|
+
color: var(--pa-warning);
|
|
6515
6540
|
}
|
|
6516
6541
|
|
|
6517
6542
|
.pa-list-ordered {
|
|
@@ -6767,7 +6792,7 @@ a.pa-card p {
|
|
|
6767
6792
|
}
|
|
6768
6793
|
.pa-composite-badge__button:focus {
|
|
6769
6794
|
outline: none;
|
|
6770
|
-
box-shadow: 0 0 0 2px
|
|
6795
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-danger) 25%, transparent);
|
|
6771
6796
|
}
|
|
6772
6797
|
|
|
6773
6798
|
/* ========================================
|
|
@@ -7031,7 +7056,7 @@ a.pa-card p {
|
|
|
7031
7056
|
background-color: rgb(51, 149.4, 255);
|
|
7032
7057
|
}
|
|
7033
7058
|
.pa-composite-badge--btn-primary .pa-composite-badge__button:focus {
|
|
7034
|
-
box-shadow: 0 0 0 2px
|
|
7059
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-btn-primary-bg) 25%, transparent);
|
|
7035
7060
|
}
|
|
7036
7061
|
.pa-composite-badge--btn-secondary .pa-composite-badge__button {
|
|
7037
7062
|
background-color: #6c757d;
|
|
@@ -7040,7 +7065,7 @@ a.pa-card p {
|
|
|
7040
7065
|
background-color: #545b62;
|
|
7041
7066
|
}
|
|
7042
7067
|
.pa-composite-badge--btn-secondary .pa-composite-badge__button:focus {
|
|
7043
|
-
box-shadow: 0 0 0 2px
|
|
7068
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-btn-secondary-bg) 25%, transparent);
|
|
7044
7069
|
}
|
|
7045
7070
|
.pa-composite-badge--btn-success .pa-composite-badge__button {
|
|
7046
7071
|
background-color: #22c55e;
|
|
@@ -7049,7 +7074,7 @@ a.pa-card p {
|
|
|
7049
7074
|
background-color: rgb(26.4935064935, 153.5064935065, 73.2467532468);
|
|
7050
7075
|
}
|
|
7051
7076
|
.pa-composite-badge--btn-success .pa-composite-badge__button:focus {
|
|
7052
|
-
box-shadow: 0 0 0 2px
|
|
7077
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-success) 25%, transparent);
|
|
7053
7078
|
}
|
|
7054
7079
|
.pa-composite-badge--btn-warning .pa-composite-badge__button {
|
|
7055
7080
|
background-color: #f97316;
|
|
@@ -7059,7 +7084,7 @@ a.pa-card p {
|
|
|
7059
7084
|
background-color: rgb(214.4769874477, 91.129707113, 5.5230125523);
|
|
7060
7085
|
}
|
|
7061
7086
|
.pa-composite-badge--btn-warning .pa-composite-badge__button:focus {
|
|
7062
|
-
box-shadow: 0 0 0 2px
|
|
7087
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-warning) 25%, transparent);
|
|
7063
7088
|
}
|
|
7064
7089
|
.pa-composite-badge--btn-info .pa-composite-badge__button {
|
|
7065
7090
|
background-color: #17a2b8;
|
|
@@ -7068,7 +7093,7 @@ a.pa-card p {
|
|
|
7068
7093
|
background-color: rgb(17.3333333333, 122.0869565217, 138.6666666667);
|
|
7069
7094
|
}
|
|
7070
7095
|
.pa-composite-badge--btn-info .pa-composite-badge__button:focus {
|
|
7071
|
-
box-shadow: 0 0 0 2px
|
|
7096
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-info) 25%, transparent);
|
|
7072
7097
|
}
|
|
7073
7098
|
.pa-composite-badge--btn-light .pa-composite-badge__button {
|
|
7074
7099
|
background-color: #f8f9fa;
|
|
@@ -7078,7 +7103,7 @@ a.pa-card p {
|
|
|
7078
7103
|
background-color: #e9ecef;
|
|
7079
7104
|
}
|
|
7080
7105
|
.pa-composite-badge--btn-light .pa-composite-badge__button:focus {
|
|
7081
|
-
box-shadow: 0 0 0 2px
|
|
7106
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-btn-light-bg) 25%, transparent);
|
|
7082
7107
|
}
|
|
7083
7108
|
.pa-composite-badge--btn-dark .pa-composite-badge__button {
|
|
7084
7109
|
background-color: #343a40;
|
|
@@ -7087,7 +7112,7 @@ a.pa-card p {
|
|
|
7087
7112
|
background-color: #1d2124;
|
|
7088
7113
|
}
|
|
7089
7114
|
.pa-composite-badge--btn-dark .pa-composite-badge__button:focus {
|
|
7090
|
-
box-shadow: 0 0 0 2px
|
|
7115
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--pa-btn-dark-bg) 25%, transparent);
|
|
7091
7116
|
}
|
|
7092
7117
|
|
|
7093
7118
|
/* ========================================
|
|
@@ -7167,17 +7192,17 @@ a.pa-card p {
|
|
|
7167
7192
|
background-color: var(--pa-accent-light);
|
|
7168
7193
|
}
|
|
7169
7194
|
.pa-label--secondary {
|
|
7170
|
-
background-color:
|
|
7171
|
-
color:
|
|
7172
|
-
border-color:
|
|
7195
|
+
background-color: color-mix(in srgb, var(--pa-btn-secondary-bg) 10%, transparent);
|
|
7196
|
+
color: var(--pa-btn-secondary-bg);
|
|
7197
|
+
border-color: var(--pa-btn-secondary-bg);
|
|
7173
7198
|
}
|
|
7174
7199
|
.pa-label--secondary.pa-label--outline {
|
|
7175
7200
|
background-color: transparent;
|
|
7176
|
-
color:
|
|
7177
|
-
border-color:
|
|
7201
|
+
color: var(--pa-btn-secondary-bg);
|
|
7202
|
+
border-color: var(--pa-btn-secondary-bg);
|
|
7178
7203
|
}
|
|
7179
7204
|
.pa-label--secondary.pa-label--outline:hover {
|
|
7180
|
-
background-color:
|
|
7205
|
+
background-color: color-mix(in srgb, var(--pa-btn-secondary-bg) 10%, transparent);
|
|
7181
7206
|
}
|
|
7182
7207
|
.pa-label--success {
|
|
7183
7208
|
background-color: var(--pa-success-bg-light);
|
|
@@ -7764,15 +7789,16 @@ a.pa-card p {
|
|
|
7764
7789
|
.pa-btn-split {
|
|
7765
7790
|
position: relative;
|
|
7766
7791
|
display: inline-flex;
|
|
7767
|
-
border-radius: var(--pa-border-radius);
|
|
7768
|
-
overflow: hidden;
|
|
7769
7792
|
}
|
|
7770
|
-
.pa-btn-split .pa-btn {
|
|
7771
|
-
border-radius: 0;
|
|
7772
|
-
|
|
7773
|
-
.pa-btn-split .pa-btn:first-child {
|
|
7793
|
+
.pa-btn-split > .pa-btn:first-child {
|
|
7794
|
+
border-start-end-radius: 0;
|
|
7795
|
+
border-end-end-radius: 0;
|
|
7774
7796
|
border-inline-end: none;
|
|
7775
7797
|
}
|
|
7798
|
+
.pa-btn-split > .pa-btn-split__toggle {
|
|
7799
|
+
border-start-start-radius: 0;
|
|
7800
|
+
border-end-start-radius: 0;
|
|
7801
|
+
}
|
|
7776
7802
|
.pa-btn-split__toggle {
|
|
7777
7803
|
border-inline-start: 1px solid rgba(255, 255, 255, 0.25);
|
|
7778
7804
|
padding-inline: 0;
|
|
@@ -8776,8 +8802,8 @@ a.pa-card p {
|
|
|
8776
8802
|
}
|
|
8777
8803
|
.pa-alert--primary {
|
|
8778
8804
|
color: var(--pa-accent);
|
|
8779
|
-
background-color:
|
|
8780
|
-
border-color:
|
|
8805
|
+
background-color: color-mix(in srgb, var(--pa-accent) 8%, transparent);
|
|
8806
|
+
border-color: color-mix(in srgb, var(--pa-accent) 20%, transparent);
|
|
8781
8807
|
}
|
|
8782
8808
|
.pa-alert--secondary {
|
|
8783
8809
|
color: var(--pa-text-color-2);
|
|
@@ -9047,7 +9073,7 @@ a.pa-card p {
|
|
|
9047
9073
|
}
|
|
9048
9074
|
.pa-callout--primary {
|
|
9049
9075
|
border-inline-start-color: var(--pa-accent);
|
|
9050
|
-
background-color:
|
|
9076
|
+
background-color: color-mix(in srgb, var(--pa-accent) 8%, transparent);
|
|
9051
9077
|
}
|
|
9052
9078
|
.pa-callout--secondary {
|
|
9053
9079
|
border-inline-start-color: var(--pa-text-color-2);
|
|
@@ -9722,7 +9748,7 @@ a.pa-card p {
|
|
|
9722
9748
|
}
|
|
9723
9749
|
.pa-input-wrapper__clear:hover {
|
|
9724
9750
|
opacity: 1;
|
|
9725
|
-
color:
|
|
9751
|
+
color: var(--pa-danger);
|
|
9726
9752
|
}
|
|
9727
9753
|
.pa-input-wrapper__clear:focus {
|
|
9728
9754
|
outline: none;
|
|
@@ -9797,16 +9823,16 @@ a.pa-card p {
|
|
|
9797
9823
|
}
|
|
9798
9824
|
.pa-search-highlight__field {
|
|
9799
9825
|
display: inline;
|
|
9800
|
-
background-color:
|
|
9801
|
-
color:
|
|
9826
|
+
background-color: color-mix(in srgb, var(--pa-accent) 15%, transparent);
|
|
9827
|
+
color: var(--pa-accent);
|
|
9802
9828
|
padding: 0.2rem 0.4rem;
|
|
9803
9829
|
border-radius: var(--pa-border-radius-sm);
|
|
9804
9830
|
font-weight: 500;
|
|
9805
9831
|
}
|
|
9806
9832
|
.pa-search-highlight__operator {
|
|
9807
9833
|
display: inline;
|
|
9808
|
-
background-color:
|
|
9809
|
-
color:
|
|
9834
|
+
background-color: color-mix(in srgb, var(--pa-success) 15%, transparent);
|
|
9835
|
+
color: var(--pa-success);
|
|
9810
9836
|
padding: 0.2rem 0.4rem;
|
|
9811
9837
|
border-radius: var(--pa-border-radius-sm);
|
|
9812
9838
|
font-weight: 500;
|
|
@@ -9957,24 +9983,24 @@ a.pa-card p {
|
|
|
9957
9983
|
font-weight: 500;
|
|
9958
9984
|
}
|
|
9959
9985
|
.pa-inline-query-token--field {
|
|
9960
|
-
background-color:
|
|
9986
|
+
background-color: color-mix(in srgb, var(--pa-accent) 15%, transparent);
|
|
9961
9987
|
color: var(--pa-text-color-1);
|
|
9962
9988
|
}
|
|
9963
9989
|
.pa-inline-query-token--field.pa-inline-query-token--invalid {
|
|
9964
|
-
background-color:
|
|
9990
|
+
background-color: color-mix(in srgb, var(--pa-danger) 15%, transparent);
|
|
9965
9991
|
color: var(--pa-text-color-1);
|
|
9966
9992
|
text-decoration: wavy underline;
|
|
9967
9993
|
}
|
|
9968
9994
|
.pa-inline-query-token--operator {
|
|
9969
|
-
background-color:
|
|
9995
|
+
background-color: color-mix(in srgb, var(--pa-text-color-2) 15%, transparent);
|
|
9970
9996
|
color: var(--pa-text-color-1);
|
|
9971
9997
|
}
|
|
9972
9998
|
.pa-inline-query-token--value {
|
|
9973
|
-
background-color:
|
|
9999
|
+
background-color: color-mix(in srgb, var(--pa-success) 15%, transparent);
|
|
9974
10000
|
color: var(--pa-text-color-1);
|
|
9975
10001
|
}
|
|
9976
10002
|
.pa-inline-query-token--keyword {
|
|
9977
|
-
background-color:
|
|
10003
|
+
background-color: color-mix(in srgb, var(--pa-warning) 15%, transparent);
|
|
9978
10004
|
color: var(--pa-text-color-1);
|
|
9979
10005
|
font-style: italic;
|
|
9980
10006
|
}
|
|
@@ -10028,7 +10054,7 @@ a.pa-card p {
|
|
|
10028
10054
|
flex-shrink: 0;
|
|
10029
10055
|
font-size: 1.2rem;
|
|
10030
10056
|
padding: 0.2rem 0.6rem;
|
|
10031
|
-
background-color:
|
|
10057
|
+
background-color: color-mix(in srgb, var(--pa-text-color-2) 10%, transparent);
|
|
10032
10058
|
color: var(--pa-text-color-2);
|
|
10033
10059
|
border-radius: var(--pa-border-radius-sm);
|
|
10034
10060
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
@@ -10257,12 +10283,12 @@ web-multiselect {
|
|
|
10257
10283
|
cursor: pointer;
|
|
10258
10284
|
}
|
|
10259
10285
|
.pa-file-dropzone:hover {
|
|
10260
|
-
border-color:
|
|
10261
|
-
background:
|
|
10286
|
+
border-color: var(--pa-accent);
|
|
10287
|
+
background: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
10262
10288
|
}
|
|
10263
10289
|
.pa-file-dropzone--active {
|
|
10264
|
-
border-color:
|
|
10265
|
-
background:
|
|
10290
|
+
border-color: var(--pa-accent);
|
|
10291
|
+
background: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
10266
10292
|
border-style: solid;
|
|
10267
10293
|
}
|
|
10268
10294
|
.pa-file-dropzone__input {
|
|
@@ -10288,7 +10314,7 @@ web-multiselect {
|
|
|
10288
10314
|
margin-bottom: 0.4rem;
|
|
10289
10315
|
}
|
|
10290
10316
|
.pa-file-dropzone__text strong {
|
|
10291
|
-
color:
|
|
10317
|
+
color: var(--pa-accent);
|
|
10292
10318
|
font-weight: 600;
|
|
10293
10319
|
}
|
|
10294
10320
|
.pa-file-dropzone__hint {
|
|
@@ -10327,7 +10353,7 @@ web-multiselect {
|
|
|
10327
10353
|
transition: all 0.1s ease-out;
|
|
10328
10354
|
}
|
|
10329
10355
|
.pa-file-dropzone__file-card:hover {
|
|
10330
|
-
border-color:
|
|
10356
|
+
border-color: var(--pa-accent);
|
|
10331
10357
|
box-shadow: 0 1.6px 4.8px rgba(0, 0, 0, 0.1);
|
|
10332
10358
|
}
|
|
10333
10359
|
.pa-file-dropzone__file-card-icon {
|
|
@@ -10355,7 +10381,7 @@ web-multiselect {
|
|
|
10355
10381
|
width: 2rem;
|
|
10356
10382
|
height: 2rem;
|
|
10357
10383
|
border: none;
|
|
10358
|
-
background:
|
|
10384
|
+
background: var(--pa-danger);
|
|
10359
10385
|
color: #ffffff;
|
|
10360
10386
|
cursor: pointer;
|
|
10361
10387
|
border-radius: 50%;
|
|
@@ -10375,7 +10401,7 @@ web-multiselect {
|
|
|
10375
10401
|
}
|
|
10376
10402
|
.pa-file-dropzone__file-card-remove:hover {
|
|
10377
10403
|
transform: scale(1.1);
|
|
10378
|
-
background:
|
|
10404
|
+
background: color-mix(in srgb, var(--pa-danger) 90%, transparent);
|
|
10379
10405
|
}
|
|
10380
10406
|
.pa-file-dropzone__image-card {
|
|
10381
10407
|
position: relative;
|
|
@@ -10416,7 +10442,7 @@ web-multiselect {
|
|
|
10416
10442
|
opacity: 1;
|
|
10417
10443
|
}
|
|
10418
10444
|
.pa-file-dropzone__image-card-remove:hover {
|
|
10419
|
-
background:
|
|
10445
|
+
background: var(--pa-danger);
|
|
10420
10446
|
transform: scale(1.1);
|
|
10421
10447
|
}
|
|
10422
10448
|
.pa-file-dropzone__summary {
|
|
@@ -10435,7 +10461,7 @@ web-multiselect {
|
|
|
10435
10461
|
transition: background-color 0.1s ease-out;
|
|
10436
10462
|
}
|
|
10437
10463
|
.pa-file-dropzone__summary-line:hover {
|
|
10438
|
-
background-color:
|
|
10464
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
10439
10465
|
}
|
|
10440
10466
|
.pa-file-dropzone__summary-line:not(:last-child)::after {
|
|
10441
10467
|
content: " • ";
|
|
@@ -10445,7 +10471,7 @@ web-multiselect {
|
|
|
10445
10471
|
}
|
|
10446
10472
|
.pa-file-dropzone__summary-count {
|
|
10447
10473
|
font-weight: 500;
|
|
10448
|
-
color:
|
|
10474
|
+
color: var(--pa-accent);
|
|
10449
10475
|
}
|
|
10450
10476
|
.pa-file-dropzone__summary-size {
|
|
10451
10477
|
color: var(--pa-text-color-2);
|
|
@@ -10519,7 +10545,7 @@ web-multiselect {
|
|
|
10519
10545
|
justify-content: center;
|
|
10520
10546
|
}
|
|
10521
10547
|
.pa-file-popover__close:hover {
|
|
10522
|
-
background:
|
|
10548
|
+
background: color-mix(in srgb, var(--pa-text-color-2) 10%, transparent);
|
|
10523
10549
|
color: var(--pa-text-color-1);
|
|
10524
10550
|
}
|
|
10525
10551
|
.pa-file-popover__body {
|
|
@@ -10553,10 +10579,10 @@ web-multiselect {
|
|
|
10553
10579
|
color: var(--pa-text-color-1);
|
|
10554
10580
|
}
|
|
10555
10581
|
.pa-file-popover__table tbody tr:hover {
|
|
10556
|
-
background:
|
|
10582
|
+
background: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
10557
10583
|
}
|
|
10558
10584
|
.pa-file-popover__table tbody tr.uploading {
|
|
10559
|
-
background:
|
|
10585
|
+
background: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
10560
10586
|
}
|
|
10561
10587
|
.pa-file-popover__file-name {
|
|
10562
10588
|
overflow: hidden;
|
|
@@ -10573,14 +10599,14 @@ web-multiselect {
|
|
|
10573
10599
|
}
|
|
10574
10600
|
.pa-file-popover__progress-bar {
|
|
10575
10601
|
height: 6.4px;
|
|
10576
|
-
background:
|
|
10602
|
+
background: color-mix(in srgb, var(--pa-accent) 20%, transparent);
|
|
10577
10603
|
border-radius: var(--pa-border-radius-sm);
|
|
10578
10604
|
overflow: hidden;
|
|
10579
10605
|
margin-bottom: 0.4rem;
|
|
10580
10606
|
}
|
|
10581
10607
|
.pa-file-popover__progress-fill {
|
|
10582
10608
|
height: 100%;
|
|
10583
|
-
background:
|
|
10609
|
+
background: var(--pa-accent);
|
|
10584
10610
|
border-radius: var(--pa-border-radius-sm);
|
|
10585
10611
|
transition: width 0.48s ease;
|
|
10586
10612
|
}
|
|
@@ -10597,13 +10623,13 @@ web-multiselect {
|
|
|
10597
10623
|
color: var(--pa-text-color-2);
|
|
10598
10624
|
}
|
|
10599
10625
|
.pa-file-popover__status--uploading {
|
|
10600
|
-
color:
|
|
10626
|
+
color: var(--pa-accent);
|
|
10601
10627
|
}
|
|
10602
10628
|
.pa-file-popover__status--complete {
|
|
10603
|
-
color:
|
|
10629
|
+
color: var(--pa-success);
|
|
10604
10630
|
}
|
|
10605
10631
|
.pa-file-popover__status--error {
|
|
10606
|
-
color:
|
|
10632
|
+
color: var(--pa-danger);
|
|
10607
10633
|
}
|
|
10608
10634
|
.pa-file-popover__remove-cell {
|
|
10609
10635
|
text-align: center;
|
|
@@ -10615,7 +10641,7 @@ web-multiselect {
|
|
|
10615
10641
|
height: 3.2rem;
|
|
10616
10642
|
border: 1px solid var(--pa-border-color);
|
|
10617
10643
|
background: var(--pa-card-bg);
|
|
10618
|
-
color:
|
|
10644
|
+
color: var(--pa-danger);
|
|
10619
10645
|
cursor: pointer;
|
|
10620
10646
|
border-radius: var(--pa-border-radius-sm);
|
|
10621
10647
|
font-size: 2.4rem;
|
|
@@ -10627,9 +10653,9 @@ web-multiselect {
|
|
|
10627
10653
|
font-weight: 700;
|
|
10628
10654
|
}
|
|
10629
10655
|
.pa-file-popover__remove-btn:hover {
|
|
10630
|
-
background:
|
|
10656
|
+
background: var(--pa-danger);
|
|
10631
10657
|
color: #ffffff;
|
|
10632
|
-
border-color:
|
|
10658
|
+
border-color: var(--pa-danger);
|
|
10633
10659
|
transform: scale(1.1);
|
|
10634
10660
|
}
|
|
10635
10661
|
|
|
@@ -10666,9 +10692,9 @@ web-multiselect {
|
|
|
10666
10692
|
display: flex;
|
|
10667
10693
|
align-items: center;
|
|
10668
10694
|
justify-content: center;
|
|
10669
|
-
background:
|
|
10695
|
+
background: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
10670
10696
|
border-radius: var(--pa-border-radius);
|
|
10671
|
-
color:
|
|
10697
|
+
color: var(--pa-accent);
|
|
10672
10698
|
}
|
|
10673
10699
|
.pa-file-item__info {
|
|
10674
10700
|
flex: 1;
|
|
@@ -10704,8 +10730,8 @@ web-multiselect {
|
|
|
10704
10730
|
justify-content: center;
|
|
10705
10731
|
}
|
|
10706
10732
|
.pa-file-item__remove:hover {
|
|
10707
|
-
background:
|
|
10708
|
-
color:
|
|
10733
|
+
background: color-mix(in srgb, var(--pa-danger) 10%, transparent);
|
|
10734
|
+
color: var(--pa-danger);
|
|
10709
10735
|
}
|
|
10710
10736
|
.pa-file-item__remove::before {
|
|
10711
10737
|
content: "×";
|
|
@@ -10752,7 +10778,7 @@ web-multiselect {
|
|
|
10752
10778
|
justify-content: center;
|
|
10753
10779
|
}
|
|
10754
10780
|
.pa-file-preview__remove:hover {
|
|
10755
|
-
background:
|
|
10781
|
+
background: var(--pa-danger);
|
|
10756
10782
|
transform: scale(1.1);
|
|
10757
10783
|
}
|
|
10758
10784
|
.pa-file-preview__remove::before {
|
|
@@ -10777,13 +10803,13 @@ web-multiselect {
|
|
|
10777
10803
|
}
|
|
10778
10804
|
.pa-file-progress__bar {
|
|
10779
10805
|
height: 6.4px;
|
|
10780
|
-
background:
|
|
10806
|
+
background: color-mix(in srgb, var(--pa-accent) 20%, transparent);
|
|
10781
10807
|
border-radius: var(--pa-border-radius-sm);
|
|
10782
10808
|
overflow: hidden;
|
|
10783
10809
|
}
|
|
10784
10810
|
.pa-file-progress__fill {
|
|
10785
10811
|
height: 100%;
|
|
10786
|
-
background:
|
|
10812
|
+
background: var(--pa-accent);
|
|
10787
10813
|
border-radius: var(--pa-border-radius-sm);
|
|
10788
10814
|
transition: width 0.48s ease;
|
|
10789
10815
|
}
|
|
@@ -10800,10 +10826,10 @@ web-multiselect {
|
|
|
10800
10826
|
font-weight: 600;
|
|
10801
10827
|
}
|
|
10802
10828
|
.pa-file-progress__status--complete {
|
|
10803
|
-
color:
|
|
10829
|
+
color: var(--pa-success);
|
|
10804
10830
|
}
|
|
10805
10831
|
.pa-file-progress__status--error {
|
|
10806
|
-
color:
|
|
10832
|
+
color: var(--pa-danger);
|
|
10807
10833
|
}
|
|
10808
10834
|
|
|
10809
10835
|
.pa-file-icon--pdf::before {
|
|
@@ -10835,9 +10861,9 @@ web-multiselect {
|
|
|
10835
10861
|
}
|
|
10836
10862
|
|
|
10837
10863
|
.pa-file-dropzone-overlay {
|
|
10838
|
-
background:
|
|
10864
|
+
background: color-mix(in srgb, var(--pa-accent) 15%, transparent);
|
|
10839
10865
|
backdrop-filter: blur(3.2px);
|
|
10840
|
-
border: 4.8px dashed
|
|
10866
|
+
border: 4.8px dashed var(--pa-accent);
|
|
10841
10867
|
border-radius: var(--pa-border-radius);
|
|
10842
10868
|
display: flex;
|
|
10843
10869
|
align-items: center;
|
|
@@ -10855,7 +10881,7 @@ web-multiselect {
|
|
|
10855
10881
|
.pa-file-dropzone-overlay__text {
|
|
10856
10882
|
font-size: 2rem;
|
|
10857
10883
|
font-weight: 600;
|
|
10858
|
-
color:
|
|
10884
|
+
color: var(--pa-accent);
|
|
10859
10885
|
}
|
|
10860
10886
|
|
|
10861
10887
|
/* ========================================
|
|
@@ -10974,7 +11000,7 @@ web-multiselect {
|
|
|
10974
11000
|
cursor: not-allowed;
|
|
10975
11001
|
}
|
|
10976
11002
|
.pa-checkbox-list__item--locked:hover {
|
|
10977
|
-
background-color:
|
|
11003
|
+
background-color: color-mix(in srgb, var(--pa-warning) 5%, transparent);
|
|
10978
11004
|
}
|
|
10979
11005
|
.pa-checkbox-list__item--locked .pa-checkbox-list__checkbox {
|
|
10980
11006
|
cursor: not-allowed;
|
|
@@ -10985,7 +11011,7 @@ web-multiselect {
|
|
|
10985
11011
|
position: relative;
|
|
10986
11012
|
}
|
|
10987
11013
|
.pa-checkbox-list__item--locked .pa-checkbox-list__label .pa-checkbox-list__text {
|
|
10988
|
-
color:
|
|
11014
|
+
color: var(--pa-warning);
|
|
10989
11015
|
}
|
|
10990
11016
|
.pa-checkbox-list__item--locked .pa-checkbox-list__label .pa-checkbox-list__text::before {
|
|
10991
11017
|
content: "🔒 ";
|
|
@@ -11795,7 +11821,7 @@ tbody tr:hover .pa-comparison-table__copy {
|
|
|
11795
11821
|
opacity: 1;
|
|
11796
11822
|
}
|
|
11797
11823
|
.pa-comparison-table__changed {
|
|
11798
|
-
background-color:
|
|
11824
|
+
background-color: color-mix(in srgb, #ec4899 15%, transparent);
|
|
11799
11825
|
position: relative;
|
|
11800
11826
|
}
|
|
11801
11827
|
.pa-comparison-table__changed::before {
|
|
@@ -11808,19 +11834,19 @@ tbody tr:hover .pa-comparison-table__copy {
|
|
|
11808
11834
|
background-color: #ec4899;
|
|
11809
11835
|
}
|
|
11810
11836
|
.pa-comparison-table__changed--solid {
|
|
11811
|
-
background-color:
|
|
11837
|
+
background-color: color-mix(in srgb, #ec4899 25%, transparent) !important;
|
|
11812
11838
|
}
|
|
11813
11839
|
.pa-comparison-table__changed--solid::before {
|
|
11814
11840
|
content: none;
|
|
11815
11841
|
}
|
|
11816
11842
|
.pa-comparison-table__conflict {
|
|
11817
|
-
background-color:
|
|
11843
|
+
background-color: color-mix(in srgb, #f97316 15%, transparent);
|
|
11818
11844
|
}
|
|
11819
11845
|
.pa-comparison-table__conflict::before {
|
|
11820
11846
|
background-color: #f97316;
|
|
11821
11847
|
}
|
|
11822
11848
|
.pa-comparison-table__conflict--solid {
|
|
11823
|
-
background-color:
|
|
11849
|
+
background-color: color-mix(in srgb, #f97316 25%, transparent) !important;
|
|
11824
11850
|
}
|
|
11825
11851
|
.pa-comparison-table__conflict--solid::before {
|
|
11826
11852
|
content: none;
|
|
@@ -12517,6 +12543,7 @@ code {
|
|
|
12517
12543
|
.pa-modal__footer {
|
|
12518
12544
|
padding: 1.2rem 1.6rem;
|
|
12519
12545
|
border-top: 1px solid var(--pa-border-color);
|
|
12546
|
+
border-radius: 0 0 var(--pa-border-radius) var(--pa-border-radius);
|
|
12520
12547
|
display: flex;
|
|
12521
12548
|
justify-content: flex-end;
|
|
12522
12549
|
gap: 1.2rem;
|
|
@@ -12559,6 +12586,55 @@ code {
|
|
|
12559
12586
|
color: var(--pa-btn-danger-text);
|
|
12560
12587
|
}
|
|
12561
12588
|
|
|
12589
|
+
.pa-modal--banded .pa-modal__header {
|
|
12590
|
+
background-color: var(--pa-modal-band-bg);
|
|
12591
|
+
color: var(--pa-modal-band-text);
|
|
12592
|
+
border-bottom-color: var(--pa-modal-band-border);
|
|
12593
|
+
}
|
|
12594
|
+
.pa-modal--banded .pa-modal__header .pa-modal__title {
|
|
12595
|
+
color: var(--pa-modal-band-text);
|
|
12596
|
+
}
|
|
12597
|
+
.pa-modal--banded .pa-modal__footer {
|
|
12598
|
+
background-color: var(--pa-modal-band-bg);
|
|
12599
|
+
color: var(--pa-modal-band-text);
|
|
12600
|
+
border-top-color: var(--pa-modal-band-border);
|
|
12601
|
+
}
|
|
12602
|
+
.pa-modal--banded .pa-modal__header .pa-btn,
|
|
12603
|
+
.pa-modal--banded .pa-modal__footer .pa-btn {
|
|
12604
|
+
background-color: var(--pa-text-color-1);
|
|
12605
|
+
color: var(--pa-modal-content-bg);
|
|
12606
|
+
border-color: var(--pa-text-color-1);
|
|
12607
|
+
}
|
|
12608
|
+
.pa-modal--banded .pa-modal__header .pa-btn:hover,
|
|
12609
|
+
.pa-modal--banded .pa-modal__footer .pa-btn:hover {
|
|
12610
|
+
background-color: color-mix(in srgb, var(--pa-text-color-1) 85%, transparent);
|
|
12611
|
+
border-color: color-mix(in srgb, var(--pa-text-color-1) 85%, transparent);
|
|
12612
|
+
}
|
|
12613
|
+
|
|
12614
|
+
.pa-modal--banded.pa-modal--success {
|
|
12615
|
+
--pa-modal-band-bg: var(--pa-alert-success-bg);
|
|
12616
|
+
--pa-modal-band-text: var(--pa-alert-success-text);
|
|
12617
|
+
--pa-modal-band-border: var(--pa-alert-success-border);
|
|
12618
|
+
}
|
|
12619
|
+
|
|
12620
|
+
.pa-modal--banded.pa-modal--warning {
|
|
12621
|
+
--pa-modal-band-bg: var(--pa-alert-warning-bg);
|
|
12622
|
+
--pa-modal-band-text: var(--pa-alert-warning-text);
|
|
12623
|
+
--pa-modal-band-border: var(--pa-alert-warning-border);
|
|
12624
|
+
}
|
|
12625
|
+
|
|
12626
|
+
.pa-modal--banded.pa-modal--danger {
|
|
12627
|
+
--pa-modal-band-bg: var(--pa-alert-danger-bg);
|
|
12628
|
+
--pa-modal-band-text: var(--pa-alert-danger-text);
|
|
12629
|
+
--pa-modal-band-border: var(--pa-alert-danger-border);
|
|
12630
|
+
}
|
|
12631
|
+
|
|
12632
|
+
.pa-modal--banded.pa-modal--info {
|
|
12633
|
+
--pa-modal-band-bg: var(--pa-alert-info-bg);
|
|
12634
|
+
--pa-modal-band-text: var(--pa-alert-info-text);
|
|
12635
|
+
--pa-modal-band-border: var(--pa-alert-info-border);
|
|
12636
|
+
}
|
|
12637
|
+
|
|
12562
12638
|
.pa-modal__body--scrollable {
|
|
12563
12639
|
max-height: 60vh;
|
|
12564
12640
|
overflow-y: auto;
|
|
@@ -13258,51 +13334,51 @@ code {
|
|
|
13258
13334
|
width: 15px;
|
|
13259
13335
|
height: 15px;
|
|
13260
13336
|
background: var(--pa-main-bg);
|
|
13261
|
-
border: 1px solid
|
|
13262
|
-
border-radius:
|
|
13263
|
-
box-shadow: 3px 3px 0
|
|
13337
|
+
border: 1px solid var(--pa-accent);
|
|
13338
|
+
border-radius: 30%;
|
|
13339
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-accent) 50%, transparent);
|
|
13264
13340
|
}
|
|
13265
13341
|
.pa-timeline--simple .pa-timeline__item--primary::before {
|
|
13266
|
-
border-color:
|
|
13267
|
-
box-shadow: 3px 3px 0
|
|
13342
|
+
border-color: var(--pa-btn-primary-bg);
|
|
13343
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-btn-primary-bg) 50%, transparent);
|
|
13268
13344
|
}
|
|
13269
13345
|
.pa-timeline--simple .pa-timeline__item--success::before {
|
|
13270
|
-
border-color:
|
|
13271
|
-
box-shadow: 3px 3px 0
|
|
13346
|
+
border-color: var(--pa-success);
|
|
13347
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-success) 50%, transparent);
|
|
13272
13348
|
}
|
|
13273
13349
|
.pa-timeline--simple .pa-timeline__item--warning::before {
|
|
13274
|
-
border-color:
|
|
13275
|
-
box-shadow: 3px 3px 0
|
|
13350
|
+
border-color: var(--pa-warning);
|
|
13351
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-warning) 50%, transparent);
|
|
13276
13352
|
}
|
|
13277
13353
|
.pa-timeline--simple .pa-timeline__item--danger::before {
|
|
13278
|
-
border-color:
|
|
13279
|
-
box-shadow: 3px 3px 0
|
|
13354
|
+
border-color: var(--pa-danger);
|
|
13355
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-danger) 50%, transparent);
|
|
13280
13356
|
}
|
|
13281
13357
|
.pa-timeline--simple .pa-timeline__item--info::before {
|
|
13282
|
-
border-color:
|
|
13283
|
-
box-shadow: 3px 3px 0
|
|
13358
|
+
border-color: var(--pa-info);
|
|
13359
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-info) 50%, transparent);
|
|
13284
13360
|
}
|
|
13285
13361
|
.pa-timeline--simple .pa-timeline__item--secondary::before {
|
|
13286
13362
|
border-color: var(--pa-text-color-2);
|
|
13287
|
-
box-shadow: 3px 3px 0
|
|
13363
|
+
box-shadow: 3px 3px 0 color-mix(in srgb, var(--pa-text-color-2) 50%, transparent);
|
|
13288
13364
|
}
|
|
13289
13365
|
.pa-timeline--simple .pa-timeline__item--filled::before {
|
|
13290
|
-
background:
|
|
13366
|
+
background: var(--pa-accent);
|
|
13291
13367
|
}
|
|
13292
13368
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--primary::before {
|
|
13293
|
-
background:
|
|
13369
|
+
background: var(--pa-btn-primary-bg);
|
|
13294
13370
|
}
|
|
13295
13371
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--success::before {
|
|
13296
|
-
background:
|
|
13372
|
+
background: var(--pa-success);
|
|
13297
13373
|
}
|
|
13298
13374
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--warning::before {
|
|
13299
|
-
background:
|
|
13375
|
+
background: var(--pa-warning);
|
|
13300
13376
|
}
|
|
13301
13377
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--danger::before {
|
|
13302
|
-
background:
|
|
13378
|
+
background: var(--pa-danger);
|
|
13303
13379
|
}
|
|
13304
13380
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--info::before {
|
|
13305
|
-
background:
|
|
13381
|
+
background: var(--pa-info);
|
|
13306
13382
|
}
|
|
13307
13383
|
.pa-timeline--simple .pa-timeline__item--filled.pa-timeline__item--secondary::before {
|
|
13308
13384
|
background: var(--pa-text-color-2);
|
|
@@ -13330,7 +13406,7 @@ code {
|
|
|
13330
13406
|
content: "";
|
|
13331
13407
|
position: absolute;
|
|
13332
13408
|
width: 2px;
|
|
13333
|
-
background:
|
|
13409
|
+
background: var(--pa-accent);
|
|
13334
13410
|
top: 0;
|
|
13335
13411
|
bottom: 0;
|
|
13336
13412
|
left: 50%;
|
|
@@ -13375,7 +13451,7 @@ code {
|
|
|
13375
13451
|
height: 2px;
|
|
13376
13452
|
top: calc(50% - 1px);
|
|
13377
13453
|
right: 8px;
|
|
13378
|
-
background:
|
|
13454
|
+
background: var(--pa-accent);
|
|
13379
13455
|
z-index: 1;
|
|
13380
13456
|
}
|
|
13381
13457
|
.pa-timeline--alternating .pa-timeline__item:nth-child(even) {
|
|
@@ -13411,7 +13487,7 @@ code {
|
|
|
13411
13487
|
height: 2px;
|
|
13412
13488
|
top: calc(50% - 1px);
|
|
13413
13489
|
left: 8px;
|
|
13414
|
-
background:
|
|
13490
|
+
background: var(--pa-accent);
|
|
13415
13491
|
z-index: 1;
|
|
13416
13492
|
}
|
|
13417
13493
|
.pa-timeline--alternating .pa-timeline__date {
|
|
@@ -13421,7 +13497,7 @@ code {
|
|
|
13421
13497
|
text-align: center;
|
|
13422
13498
|
font-size: 1.4rem;
|
|
13423
13499
|
font-weight: 700;
|
|
13424
|
-
color:
|
|
13500
|
+
color: var(--pa-accent);
|
|
13425
13501
|
text-transform: uppercase;
|
|
13426
13502
|
letter-spacing: 1px;
|
|
13427
13503
|
z-index: 1;
|
|
@@ -13434,15 +13510,15 @@ code {
|
|
|
13434
13510
|
width: 40px;
|
|
13435
13511
|
height: 40px;
|
|
13436
13512
|
top: calc(50% - 20px);
|
|
13437
|
-
background:
|
|
13438
|
-
border: 2px solid
|
|
13513
|
+
background: var(--pa-warning);
|
|
13514
|
+
border: 2px solid var(--pa-accent);
|
|
13439
13515
|
border-radius: 50%;
|
|
13440
13516
|
font-size: 1.8rem;
|
|
13441
|
-
color:
|
|
13517
|
+
color: var(--pa-accent);
|
|
13442
13518
|
z-index: 1;
|
|
13443
13519
|
}
|
|
13444
13520
|
.pa-timeline--alternating .pa-timeline__content {
|
|
13445
|
-
background:
|
|
13521
|
+
background: var(--pa-warning);
|
|
13446
13522
|
position: relative;
|
|
13447
13523
|
}
|
|
13448
13524
|
.pa-timeline--alternating .pa-timeline__content h3 {
|
|
@@ -13455,7 +13531,7 @@ code {
|
|
|
13455
13531
|
margin: 0;
|
|
13456
13532
|
font-size: 1.6rem;
|
|
13457
13533
|
line-height: 1.8;
|
|
13458
|
-
color:
|
|
13534
|
+
color: var(--pa-warning-text);
|
|
13459
13535
|
}
|
|
13460
13536
|
@media (max-width: 767px) {
|
|
13461
13537
|
.pa-timeline--alternating:not(.pa-timeline--keep-layout)::after {
|
|
@@ -13593,7 +13669,7 @@ code {
|
|
|
13593
13669
|
line-height: 1.8;
|
|
13594
13670
|
}
|
|
13595
13671
|
.pa-timeline--feed .pa-timeline__content a {
|
|
13596
|
-
color:
|
|
13672
|
+
color: var(--pa-accent);
|
|
13597
13673
|
text-decoration: none;
|
|
13598
13674
|
font-weight: 500;
|
|
13599
13675
|
}
|
|
@@ -14196,11 +14272,11 @@ code {
|
|
|
14196
14272
|
background: #fff;
|
|
14197
14273
|
}
|
|
14198
14274
|
.pa-logic-tree__block--and {
|
|
14199
|
-
border-color:
|
|
14275
|
+
border-color: var(--pa-warning);
|
|
14200
14276
|
background: linear-gradient(135deg, #fff8e1 0%, #ffffff 100%);
|
|
14201
14277
|
}
|
|
14202
14278
|
.pa-logic-tree__block--or {
|
|
14203
|
-
border-color:
|
|
14279
|
+
border-color: var(--pa-info);
|
|
14204
14280
|
background: linear-gradient(135deg, #e3f2fd 0%, #ffffff 100%);
|
|
14205
14281
|
}
|
|
14206
14282
|
.pa-logic-tree__block--group {
|
|
@@ -14450,14 +14526,14 @@ code {
|
|
|
14450
14526
|
background: none;
|
|
14451
14527
|
border: none;
|
|
14452
14528
|
padding: 0;
|
|
14453
|
-
color:
|
|
14529
|
+
color: var(--pa-accent);
|
|
14454
14530
|
font-size: 1.4rem;
|
|
14455
14531
|
font-weight: 500;
|
|
14456
14532
|
cursor: pointer;
|
|
14457
14533
|
transition: color 0.1s ease-out;
|
|
14458
14534
|
}
|
|
14459
14535
|
.pa-notifications__mark-read:hover {
|
|
14460
|
-
color:
|
|
14536
|
+
color: var(--pa-accent-hover);
|
|
14461
14537
|
}
|
|
14462
14538
|
|
|
14463
14539
|
.pa-notifications__list {
|
|
@@ -14483,10 +14559,10 @@ code {
|
|
|
14483
14559
|
background-color: var(--pa-accent-light);
|
|
14484
14560
|
}
|
|
14485
14561
|
.pa-notifications__item--unread {
|
|
14486
|
-
background-color:
|
|
14562
|
+
background-color: color-mix(in srgb, var(--pa-accent) 5%, transparent);
|
|
14487
14563
|
}
|
|
14488
14564
|
.pa-notifications__item--unread:hover {
|
|
14489
|
-
background-color:
|
|
14565
|
+
background-color: color-mix(in srgb, var(--pa-accent) 10%, transparent);
|
|
14490
14566
|
}
|
|
14491
14567
|
|
|
14492
14568
|
.pa-notifications__icon-wrapper {
|
|
@@ -14496,29 +14572,29 @@ code {
|
|
|
14496
14572
|
display: flex;
|
|
14497
14573
|
align-items: center;
|
|
14498
14574
|
justify-content: center;
|
|
14499
|
-
border-radius: 50%;
|
|
14500
14575
|
font-size: 1.6rem;
|
|
14501
|
-
background-color: var(--pa-accent-light);
|
|
14502
14576
|
color: var(--pa-accent);
|
|
14577
|
+
border: 1px solid transparent;
|
|
14578
|
+
border-radius: var(--pa-border-radius);
|
|
14503
14579
|
}
|
|
14504
14580
|
.pa-notifications__icon-wrapper--primary {
|
|
14505
|
-
|
|
14506
|
-
color:
|
|
14581
|
+
border-color: var(--pa-btn-primary-bg);
|
|
14582
|
+
color: var(--pa-btn-primary-bg);
|
|
14507
14583
|
}
|
|
14508
14584
|
.pa-notifications__icon-wrapper--success {
|
|
14509
|
-
|
|
14510
|
-
color:
|
|
14585
|
+
border-color: var(--pa-success);
|
|
14586
|
+
color: var(--pa-success);
|
|
14511
14587
|
}
|
|
14512
14588
|
.pa-notifications__icon-wrapper--warning {
|
|
14513
|
-
|
|
14514
|
-
color:
|
|
14589
|
+
border-color: var(--pa-warning);
|
|
14590
|
+
color: var(--pa-warning);
|
|
14515
14591
|
}
|
|
14516
14592
|
.pa-notifications__icon-wrapper--danger {
|
|
14517
|
-
|
|
14518
|
-
color:
|
|
14593
|
+
border-color: var(--pa-danger);
|
|
14594
|
+
color: var(--pa-danger);
|
|
14519
14595
|
}
|
|
14520
14596
|
.pa-notifications__icon-wrapper--secondary {
|
|
14521
|
-
|
|
14597
|
+
border-color: var(--pa-text-color-2);
|
|
14522
14598
|
color: var(--pa-text-color-2);
|
|
14523
14599
|
}
|
|
14524
14600
|
|
|
@@ -14557,14 +14633,14 @@ code {
|
|
|
14557
14633
|
text-align: center;
|
|
14558
14634
|
}
|
|
14559
14635
|
.pa-notifications__footer a {
|
|
14560
|
-
color:
|
|
14636
|
+
color: var(--pa-accent);
|
|
14561
14637
|
font-size: 1.4rem;
|
|
14562
14638
|
font-weight: 500;
|
|
14563
14639
|
text-decoration: none;
|
|
14564
14640
|
transition: color 0.1s ease-out;
|
|
14565
14641
|
}
|
|
14566
14642
|
.pa-notifications__footer a:hover {
|
|
14567
|
-
color:
|
|
14643
|
+
color: var(--pa-accent-hover);
|
|
14568
14644
|
}
|
|
14569
14645
|
|
|
14570
14646
|
@media (max-width: 768px) {
|
|
@@ -14696,7 +14772,7 @@ code {
|
|
|
14696
14772
|
display: flex;
|
|
14697
14773
|
gap: 0.8rem;
|
|
14698
14774
|
justify-content: flex-end;
|
|
14699
|
-
background-color:
|
|
14775
|
+
background-color: color-mix(in srgb, var(--pa-border-color) 30%, transparent);
|
|
14700
14776
|
}
|
|
14701
14777
|
.pa-popconfirm__actions .pa-btn {
|
|
14702
14778
|
font-size: 1.2rem;
|
|
@@ -15255,7 +15331,7 @@ code {
|
|
|
15255
15331
|
.pa-field--copied .pa-field__value::after {
|
|
15256
15332
|
content: "Copied!" !important;
|
|
15257
15333
|
opacity: 1 !important;
|
|
15258
|
-
color: var(--pa-
|
|
15334
|
+
color: var(--pa-success);
|
|
15259
15335
|
}
|
|
15260
15336
|
|
|
15261
15337
|
.pa-field-group {
|
|
@@ -15515,16 +15591,20 @@ code {
|
|
|
15515
15591
|
font-size: 1.3rem;
|
|
15516
15592
|
}
|
|
15517
15593
|
.pa-fields--chips .pa-field__value--success {
|
|
15518
|
-
background: var(--pa-success-bg-light
|
|
15519
|
-
color: var(--pa-success
|
|
15594
|
+
background: var(--pa-success-bg-light);
|
|
15595
|
+
color: var(--pa-success);
|
|
15520
15596
|
}
|
|
15521
15597
|
.pa-fields--chips .pa-field__value--warning {
|
|
15522
|
-
background: var(--pa-warning-bg-light
|
|
15523
|
-
color: var(--pa-warning
|
|
15598
|
+
background: var(--pa-warning-bg-light);
|
|
15599
|
+
color: var(--pa-warning);
|
|
15524
15600
|
}
|
|
15525
15601
|
.pa-fields--chips .pa-field__value--danger {
|
|
15526
|
-
background: var(--pa-danger-bg-light
|
|
15527
|
-
color: var(--pa-danger
|
|
15602
|
+
background: var(--pa-danger-bg-light);
|
|
15603
|
+
color: var(--pa-danger);
|
|
15604
|
+
}
|
|
15605
|
+
.pa-fields--chips .pa-field__value--info {
|
|
15606
|
+
background: var(--pa-info-bg-light);
|
|
15607
|
+
color: var(--pa-info);
|
|
15528
15608
|
}
|
|
15529
15609
|
|
|
15530
15610
|
.pa-desc-container {
|
|
@@ -15684,7 +15764,7 @@ code {
|
|
|
15684
15764
|
.pa-desc-table__value--copied::after {
|
|
15685
15765
|
content: "Copied!" !important;
|
|
15686
15766
|
opacity: 1 !important;
|
|
15687
|
-
color: var(--pa-
|
|
15767
|
+
color: var(--pa-success);
|
|
15688
15768
|
}
|
|
15689
15769
|
|
|
15690
15770
|
.pa-dot-leaders {
|
|
@@ -15960,7 +16040,7 @@ code {
|
|
|
15960
16040
|
.pa-banded__row--copied .pa-banded__value::after {
|
|
15961
16041
|
content: "Copied!" !important;
|
|
15962
16042
|
opacity: 1 !important;
|
|
15963
|
-
color: var(--pa-
|
|
16043
|
+
color: var(--pa-success);
|
|
15964
16044
|
}
|
|
15965
16045
|
|
|
15966
16046
|
.pa-accent-grid {
|
|
@@ -15971,19 +16051,19 @@ code {
|
|
|
15971
16051
|
.pa-accent-grid__item {
|
|
15972
16052
|
padding: 0.8rem 1.2rem;
|
|
15973
16053
|
padding-inline-start: 1.4rem;
|
|
15974
|
-
border-inline-start: 3px solid var(--pa-accent
|
|
16054
|
+
border-inline-start: 3px solid var(--pa-accent);
|
|
15975
16055
|
}
|
|
15976
16056
|
.pa-accent-grid__item--success {
|
|
15977
|
-
border-inline-start-color: var(--pa-success
|
|
16057
|
+
border-inline-start-color: var(--pa-success);
|
|
15978
16058
|
}
|
|
15979
16059
|
.pa-accent-grid__item--warning {
|
|
15980
|
-
border-inline-start-color: var(--pa-warning
|
|
16060
|
+
border-inline-start-color: var(--pa-warning);
|
|
15981
16061
|
}
|
|
15982
16062
|
.pa-accent-grid__item--danger {
|
|
15983
|
-
border-inline-start-color: var(--pa-danger
|
|
16063
|
+
border-inline-start-color: var(--pa-danger);
|
|
15984
16064
|
}
|
|
15985
16065
|
.pa-accent-grid__item--info {
|
|
15986
|
-
border-inline-start-color: var(--pa-info
|
|
16066
|
+
border-inline-start-color: var(--pa-info);
|
|
15987
16067
|
}
|
|
15988
16068
|
.pa-accent-grid__label {
|
|
15989
16069
|
font-size: 1.1rem;
|
|
@@ -16050,7 +16130,7 @@ code {
|
|
|
16050
16130
|
.pa-accent-grid__item--copied .pa-accent-grid__value::after {
|
|
16051
16131
|
content: "Copied!" !important;
|
|
16052
16132
|
opacity: 1 !important;
|
|
16053
|
-
color: var(--pa-
|
|
16133
|
+
color: var(--pa-success);
|
|
16054
16134
|
}
|
|
16055
16135
|
|
|
16056
16136
|
/* ========================================
|
|
@@ -16060,7 +16140,7 @@ code {
|
|
|
16060
16140
|
.pa-progress {
|
|
16061
16141
|
width: 100%;
|
|
16062
16142
|
height: 0.8rem;
|
|
16063
|
-
background:
|
|
16143
|
+
background: var(--pa-surface-track);
|
|
16064
16144
|
border-radius: var(--pa-border-radius);
|
|
16065
16145
|
overflow: hidden;
|
|
16066
16146
|
position: relative;
|
|
@@ -16068,7 +16148,7 @@ code {
|
|
|
16068
16148
|
.pa-progress__fill {
|
|
16069
16149
|
height: 100%;
|
|
16070
16150
|
width: var(--value, 0%);
|
|
16071
|
-
background:
|
|
16151
|
+
background: var(--pa-accent);
|
|
16072
16152
|
border-radius: inherit;
|
|
16073
16153
|
transition: width 0.25s ease;
|
|
16074
16154
|
}
|
|
@@ -16093,16 +16173,16 @@ code {
|
|
|
16093
16173
|
height: 1.2rem;
|
|
16094
16174
|
}
|
|
16095
16175
|
.pa-progress--success > .pa-progress__fill {
|
|
16096
|
-
background:
|
|
16176
|
+
background: var(--pa-success);
|
|
16097
16177
|
}
|
|
16098
16178
|
.pa-progress--warning > .pa-progress__fill {
|
|
16099
|
-
background:
|
|
16179
|
+
background: var(--pa-warning);
|
|
16100
16180
|
}
|
|
16101
16181
|
.pa-progress--danger > .pa-progress__fill {
|
|
16102
|
-
background:
|
|
16182
|
+
background: var(--pa-danger);
|
|
16103
16183
|
}
|
|
16104
16184
|
.pa-progress--info > .pa-progress__fill {
|
|
16105
|
-
background:
|
|
16185
|
+
background: var(--pa-info);
|
|
16106
16186
|
}
|
|
16107
16187
|
.pa-progress--rounded {
|
|
16108
16188
|
border-radius: 50rem;
|
|
@@ -16135,28 +16215,28 @@ code {
|
|
|
16135
16215
|
height: 1.2rem;
|
|
16136
16216
|
border-radius: var(--pa-border-radius);
|
|
16137
16217
|
overflow: hidden;
|
|
16138
|
-
background:
|
|
16218
|
+
background: var(--pa-surface-track);
|
|
16139
16219
|
}
|
|
16140
16220
|
.pa-stacked-bar__segment {
|
|
16141
16221
|
height: 100%;
|
|
16142
16222
|
width: var(--value, 0%);
|
|
16143
16223
|
transition: width 0.25s ease;
|
|
16144
|
-
background:
|
|
16224
|
+
background: var(--pa-accent);
|
|
16145
16225
|
}
|
|
16146
16226
|
.pa-stacked-bar__segment--success {
|
|
16147
|
-
background:
|
|
16227
|
+
background: var(--pa-success);
|
|
16148
16228
|
}
|
|
16149
16229
|
.pa-stacked-bar__segment--warning {
|
|
16150
|
-
background:
|
|
16230
|
+
background: var(--pa-warning);
|
|
16151
16231
|
}
|
|
16152
16232
|
.pa-stacked-bar__segment--danger {
|
|
16153
|
-
background:
|
|
16233
|
+
background: var(--pa-danger);
|
|
16154
16234
|
}
|
|
16155
16235
|
.pa-stacked-bar__segment--info {
|
|
16156
|
-
background:
|
|
16236
|
+
background: var(--pa-info);
|
|
16157
16237
|
}
|
|
16158
16238
|
.pa-stacked-bar__segment--secondary {
|
|
16159
|
-
background:
|
|
16239
|
+
background: var(--pa-btn-secondary-bg);
|
|
16160
16240
|
}
|
|
16161
16241
|
.pa-stacked-bar__legend {
|
|
16162
16242
|
display: flex;
|
|
@@ -16178,22 +16258,22 @@ code {
|
|
|
16178
16258
|
flex-shrink: 0;
|
|
16179
16259
|
}
|
|
16180
16260
|
.pa-stacked-bar__legend-swatch--primary {
|
|
16181
|
-
background:
|
|
16261
|
+
background: var(--pa-accent);
|
|
16182
16262
|
}
|
|
16183
16263
|
.pa-stacked-bar__legend-swatch--success {
|
|
16184
|
-
background:
|
|
16264
|
+
background: var(--pa-success);
|
|
16185
16265
|
}
|
|
16186
16266
|
.pa-stacked-bar__legend-swatch--warning {
|
|
16187
|
-
background:
|
|
16267
|
+
background: var(--pa-warning);
|
|
16188
16268
|
}
|
|
16189
16269
|
.pa-stacked-bar__legend-swatch--danger {
|
|
16190
|
-
background:
|
|
16270
|
+
background: var(--pa-danger);
|
|
16191
16271
|
}
|
|
16192
16272
|
.pa-stacked-bar__legend-swatch--info {
|
|
16193
|
-
background:
|
|
16273
|
+
background: var(--pa-info);
|
|
16194
16274
|
}
|
|
16195
16275
|
.pa-stacked-bar__legend-swatch--secondary {
|
|
16196
|
-
background:
|
|
16276
|
+
background: var(--pa-btn-secondary-bg);
|
|
16197
16277
|
}
|
|
16198
16278
|
.pa-stacked-bar--sm {
|
|
16199
16279
|
height: 0.5rem;
|
|
@@ -16209,7 +16289,7 @@ code {
|
|
|
16209
16289
|
width: 8rem;
|
|
16210
16290
|
height: 8rem;
|
|
16211
16291
|
border-radius: 50%;
|
|
16212
|
-
background: conic-gradient(
|
|
16292
|
+
background: conic-gradient(var(--pa-accent) calc(var(--value, 0) * 3.6deg), var(--pa-surface-track) 0deg);
|
|
16213
16293
|
display: flex;
|
|
16214
16294
|
align-items: center;
|
|
16215
16295
|
justify-content: center;
|
|
@@ -16257,57 +16337,65 @@ code {
|
|
|
16257
16337
|
font-size: 1.2rem;
|
|
16258
16338
|
}
|
|
16259
16339
|
.pa-progress-ring--success {
|
|
16260
|
-
background: conic-gradient(
|
|
16340
|
+
background: conic-gradient(var(--pa-success) calc(var(--value, 0) * 3.6deg), var(--pa-surface-track) 0deg);
|
|
16261
16341
|
}
|
|
16262
16342
|
.pa-progress-ring--warning {
|
|
16263
|
-
background: conic-gradient(
|
|
16343
|
+
background: conic-gradient(var(--pa-warning) calc(var(--value, 0) * 3.6deg), var(--pa-surface-track) 0deg);
|
|
16264
16344
|
}
|
|
16265
16345
|
.pa-progress-ring--danger {
|
|
16266
|
-
background: conic-gradient(
|
|
16346
|
+
background: conic-gradient(var(--pa-danger) calc(var(--value, 0) * 3.6deg), var(--pa-surface-track) 0deg);
|
|
16267
16347
|
}
|
|
16268
16348
|
.pa-progress-ring--info {
|
|
16269
|
-
background: conic-gradient(
|
|
16349
|
+
background: conic-gradient(var(--pa-info) calc(var(--value, 0) * 3.6deg), var(--pa-surface-track) 0deg);
|
|
16270
16350
|
}
|
|
16271
16351
|
|
|
16272
16352
|
.pa-gauge {
|
|
16273
|
-
|
|
16274
|
-
|
|
16275
|
-
|
|
16276
|
-
|
|
16277
|
-
|
|
16353
|
+
--pa-gauge-fill: var(--pa-accent);
|
|
16354
|
+
--pa-gauge-size: 12rem;
|
|
16355
|
+
width: var(--pa-gauge-size);
|
|
16356
|
+
height: calc(var(--pa-gauge-size) / 2);
|
|
16357
|
+
margin-bottom: 1.6rem;
|
|
16278
16358
|
position: relative;
|
|
16279
16359
|
flex-shrink: 0;
|
|
16280
16360
|
}
|
|
16361
|
+
.pa-gauge::before {
|
|
16362
|
+
content: "";
|
|
16363
|
+
position: absolute;
|
|
16364
|
+
inset: 0;
|
|
16365
|
+
border-radius: var(--pa-gauge-size) var(--pa-gauge-size) 0 0;
|
|
16366
|
+
background: conic-gradient(from 0.75turn at 50% 100%, var(--pa-gauge-fill) calc(var(--value, 0) * 1.8deg), var(--pa-surface-track) 0deg);
|
|
16367
|
+
-webkit-mask-image: radial-gradient(circle farthest-side at 50% 100%, transparent 0 70%, #000 70%);
|
|
16368
|
+
mask-image: radial-gradient(circle farthest-side at 50% 100%, transparent 0 70%, #000 70%);
|
|
16369
|
+
}
|
|
16281
16370
|
.pa-gauge__inner {
|
|
16282
16371
|
position: absolute;
|
|
16283
16372
|
bottom: 0;
|
|
16284
16373
|
left: 15%;
|
|
16285
16374
|
right: 15%;
|
|
16286
16375
|
height: 70%;
|
|
16287
|
-
border-radius: 12rem 12rem 0 0;
|
|
16288
|
-
background: var(--pa-card-bg);
|
|
16289
16376
|
display: flex;
|
|
16290
|
-
|
|
16291
|
-
|
|
16292
|
-
justify-content: flex-end;
|
|
16293
|
-
padding-bottom: 0.4rem;
|
|
16377
|
+
align-items: flex-end;
|
|
16378
|
+
justify-content: center;
|
|
16294
16379
|
}
|
|
16295
16380
|
.pa-gauge__value {
|
|
16296
|
-
font-size: 2.
|
|
16381
|
+
font-size: 2.8rem;
|
|
16297
16382
|
font-weight: 700;
|
|
16298
16383
|
line-height: 1;
|
|
16299
16384
|
color: var(--pa-text-color-1);
|
|
16300
16385
|
}
|
|
16301
|
-
.pa-gauge__label {
|
|
16302
|
-
font-size: 1.2rem;
|
|
16303
|
-
color: var(--pa-text-color-2);
|
|
16304
|
-
margin-top: 0.4rem;
|
|
16305
|
-
}
|
|
16306
|
-
.pa-gauge__min, .pa-gauge__max {
|
|
16386
|
+
.pa-gauge__label, .pa-gauge__min, .pa-gauge__max {
|
|
16307
16387
|
position: absolute;
|
|
16308
|
-
|
|
16388
|
+
top: 100%;
|
|
16389
|
+
margin-top: 0.4rem;
|
|
16309
16390
|
font-size: 1rem;
|
|
16391
|
+
line-height: 1.2rem;
|
|
16310
16392
|
color: var(--pa-text-color-2);
|
|
16393
|
+
white-space: nowrap;
|
|
16394
|
+
}
|
|
16395
|
+
.pa-gauge__label {
|
|
16396
|
+
left: 50%;
|
|
16397
|
+
transform: translateX(-50%);
|
|
16398
|
+
font-size: 1.2rem;
|
|
16311
16399
|
}
|
|
16312
16400
|
.pa-gauge__min {
|
|
16313
16401
|
left: 0;
|
|
@@ -16316,19 +16404,19 @@ code {
|
|
|
16316
16404
|
right: 0;
|
|
16317
16405
|
}
|
|
16318
16406
|
.pa-gauge--success {
|
|
16319
|
-
|
|
16407
|
+
--pa-gauge-fill: var(--pa-success);
|
|
16320
16408
|
}
|
|
16321
16409
|
.pa-gauge--warning {
|
|
16322
|
-
|
|
16410
|
+
--pa-gauge-fill: var(--pa-warning);
|
|
16323
16411
|
}
|
|
16324
16412
|
.pa-gauge--danger {
|
|
16325
|
-
|
|
16413
|
+
--pa-gauge-fill: var(--pa-danger);
|
|
16326
16414
|
}
|
|
16327
16415
|
.pa-gauge--info {
|
|
16328
|
-
|
|
16416
|
+
--pa-gauge-fill: var(--pa-info);
|
|
16329
16417
|
}
|
|
16330
|
-
.pa-gauge--zones {
|
|
16331
|
-
background: conic-gradient(from 0.75turn
|
|
16418
|
+
.pa-gauge--zones::before {
|
|
16419
|
+
background: conic-gradient(from 0.75turn at 50% 100%, var(--pa-success) 0deg, var(--pa-success) 90deg, var(--pa-warning) 90deg, var(--pa-warning) 135deg, var(--pa-danger) 135deg, var(--pa-danger) 180deg, var(--pa-surface-track) 180deg);
|
|
16332
16420
|
}
|
|
16333
16421
|
|
|
16334
16422
|
.pa-data-bar {
|
|
@@ -16346,31 +16434,31 @@ code {
|
|
|
16346
16434
|
.pa-data-bar__track {
|
|
16347
16435
|
width: 100%;
|
|
16348
16436
|
height: 0.4rem;
|
|
16349
|
-
background:
|
|
16437
|
+
background: var(--pa-surface-track);
|
|
16350
16438
|
border-radius: var(--pa-border-radius-sm);
|
|
16351
16439
|
overflow: hidden;
|
|
16352
16440
|
}
|
|
16353
16441
|
.pa-data-bar__fill {
|
|
16354
16442
|
height: 100%;
|
|
16355
16443
|
width: var(--value, 0%);
|
|
16356
|
-
background:
|
|
16444
|
+
background: var(--pa-accent);
|
|
16357
16445
|
border-radius: inherit;
|
|
16358
16446
|
transition: width 0.25s ease;
|
|
16359
16447
|
}
|
|
16360
16448
|
.pa-data-bar--success .pa-data-bar__fill {
|
|
16361
|
-
background:
|
|
16449
|
+
background: var(--pa-success);
|
|
16362
16450
|
}
|
|
16363
16451
|
.pa-data-bar--warning .pa-data-bar__fill {
|
|
16364
|
-
background:
|
|
16452
|
+
background: var(--pa-warning);
|
|
16365
16453
|
}
|
|
16366
16454
|
.pa-data-bar--danger .pa-data-bar__fill {
|
|
16367
|
-
background:
|
|
16455
|
+
background: var(--pa-danger);
|
|
16368
16456
|
}
|
|
16369
16457
|
.pa-data-bar--info .pa-data-bar__fill {
|
|
16370
|
-
background:
|
|
16458
|
+
background: var(--pa-info);
|
|
16371
16459
|
}
|
|
16372
16460
|
.pa-data-bar--negative .pa-data-bar__fill {
|
|
16373
|
-
background:
|
|
16461
|
+
background: var(--pa-danger);
|
|
16374
16462
|
margin-inline-start: auto;
|
|
16375
16463
|
}
|
|
16376
16464
|
|
|
@@ -16382,43 +16470,43 @@ code {
|
|
|
16382
16470
|
}
|
|
16383
16471
|
.pa-heatmap__cell {
|
|
16384
16472
|
border-radius: var(--pa-border-radius-sm);
|
|
16385
|
-
background:
|
|
16473
|
+
background: var(--pa-surface-track);
|
|
16386
16474
|
}
|
|
16387
16475
|
.pa-heatmap__cell[data-level="1"] {
|
|
16388
|
-
background:
|
|
16476
|
+
background: color-mix(in srgb, var(--pa-accent) 20%, transparent);
|
|
16389
16477
|
}
|
|
16390
16478
|
.pa-heatmap__cell[data-level="2"] {
|
|
16391
|
-
background:
|
|
16479
|
+
background: color-mix(in srgb, var(--pa-accent) 40%, transparent);
|
|
16392
16480
|
}
|
|
16393
16481
|
.pa-heatmap__cell[data-level="3"] {
|
|
16394
|
-
background:
|
|
16482
|
+
background: color-mix(in srgb, var(--pa-accent) 65%, transparent);
|
|
16395
16483
|
}
|
|
16396
16484
|
.pa-heatmap__cell[data-level="4"] {
|
|
16397
|
-
background:
|
|
16485
|
+
background: var(--pa-accent);
|
|
16398
16486
|
}
|
|
16399
16487
|
.pa-heatmap--success .pa-heatmap__cell[data-level="1"] {
|
|
16400
|
-
background:
|
|
16488
|
+
background: color-mix(in srgb, var(--pa-success) 20%, transparent);
|
|
16401
16489
|
}
|
|
16402
16490
|
.pa-heatmap--success .pa-heatmap__cell[data-level="2"] {
|
|
16403
|
-
background:
|
|
16491
|
+
background: color-mix(in srgb, var(--pa-success) 40%, transparent);
|
|
16404
16492
|
}
|
|
16405
16493
|
.pa-heatmap--success .pa-heatmap__cell[data-level="3"] {
|
|
16406
|
-
background:
|
|
16494
|
+
background: color-mix(in srgb, var(--pa-success) 65%, transparent);
|
|
16407
16495
|
}
|
|
16408
16496
|
.pa-heatmap--success .pa-heatmap__cell[data-level="4"] {
|
|
16409
|
-
background:
|
|
16497
|
+
background: var(--pa-success);
|
|
16410
16498
|
}
|
|
16411
16499
|
.pa-heatmap--danger .pa-heatmap__cell[data-level="1"] {
|
|
16412
|
-
background:
|
|
16500
|
+
background: color-mix(in srgb, var(--pa-danger) 20%, transparent);
|
|
16413
16501
|
}
|
|
16414
16502
|
.pa-heatmap--danger .pa-heatmap__cell[data-level="2"] {
|
|
16415
|
-
background:
|
|
16503
|
+
background: color-mix(in srgb, var(--pa-danger) 40%, transparent);
|
|
16416
16504
|
}
|
|
16417
16505
|
.pa-heatmap--danger .pa-heatmap__cell[data-level="3"] {
|
|
16418
|
-
background:
|
|
16506
|
+
background: color-mix(in srgb, var(--pa-danger) 65%, transparent);
|
|
16419
16507
|
}
|
|
16420
16508
|
.pa-heatmap--danger .pa-heatmap__cell[data-level="4"] {
|
|
16421
|
-
background:
|
|
16509
|
+
background: var(--pa-danger);
|
|
16422
16510
|
}
|
|
16423
16511
|
.pa-heatmap__legend {
|
|
16424
16512
|
display: flex;
|
|
@@ -16432,19 +16520,19 @@ code {
|
|
|
16432
16520
|
width: 1.2rem;
|
|
16433
16521
|
height: 1.2rem;
|
|
16434
16522
|
border-radius: var(--pa-border-radius-sm);
|
|
16435
|
-
background:
|
|
16523
|
+
background: var(--pa-surface-track);
|
|
16436
16524
|
}
|
|
16437
16525
|
.pa-heatmap__legend-cell[data-level="1"] {
|
|
16438
|
-
background:
|
|
16526
|
+
background: color-mix(in srgb, var(--pa-accent) 20%, transparent);
|
|
16439
16527
|
}
|
|
16440
16528
|
.pa-heatmap__legend-cell[data-level="2"] {
|
|
16441
|
-
background:
|
|
16529
|
+
background: color-mix(in srgb, var(--pa-accent) 40%, transparent);
|
|
16442
16530
|
}
|
|
16443
16531
|
.pa-heatmap__legend-cell[data-level="3"] {
|
|
16444
|
-
background:
|
|
16532
|
+
background: color-mix(in srgb, var(--pa-accent) 65%, transparent);
|
|
16445
16533
|
}
|
|
16446
16534
|
.pa-heatmap__legend-cell[data-level="4"] {
|
|
16447
|
-
background:
|
|
16535
|
+
background: var(--pa-accent);
|
|
16448
16536
|
}
|
|
16449
16537
|
.pa-heatmap--compact {
|
|
16450
16538
|
grid-template-columns: repeat(53, 1rem);
|
|
@@ -16464,22 +16552,22 @@ code {
|
|
|
16464
16552
|
.pa-sparkline__bar {
|
|
16465
16553
|
width: 0.3rem;
|
|
16466
16554
|
height: var(--value, 50%);
|
|
16467
|
-
background:
|
|
16555
|
+
background: var(--pa-accent);
|
|
16468
16556
|
border-radius: var(--pa-border-radius-sm) var(--pa-border-radius-sm) 0 0;
|
|
16469
16557
|
transition: height 0.25s ease;
|
|
16470
16558
|
min-height: 1px;
|
|
16471
16559
|
}
|
|
16472
16560
|
.pa-sparkline--success .pa-sparkline__bar {
|
|
16473
|
-
background:
|
|
16561
|
+
background: var(--pa-success);
|
|
16474
16562
|
}
|
|
16475
16563
|
.pa-sparkline--warning .pa-sparkline__bar {
|
|
16476
|
-
background:
|
|
16564
|
+
background: var(--pa-warning);
|
|
16477
16565
|
}
|
|
16478
16566
|
.pa-sparkline--danger .pa-sparkline__bar {
|
|
16479
|
-
background:
|
|
16567
|
+
background: var(--pa-danger);
|
|
16480
16568
|
}
|
|
16481
16569
|
.pa-sparkline--info .pa-sparkline__bar {
|
|
16482
|
-
background:
|
|
16570
|
+
background: var(--pa-info);
|
|
16483
16571
|
}
|
|
16484
16572
|
.pa-sparkline--sm {
|
|
16485
16573
|
height: 2rem;
|
|
@@ -16524,7 +16612,7 @@ code {
|
|
|
16524
16612
|
.pa-bar-list__bar {
|
|
16525
16613
|
width: 100%;
|
|
16526
16614
|
height: 0.4rem;
|
|
16527
|
-
background:
|
|
16615
|
+
background: var(--pa-surface-track);
|
|
16528
16616
|
border-radius: var(--pa-border-radius-sm);
|
|
16529
16617
|
overflow: hidden;
|
|
16530
16618
|
}
|
|
@@ -16533,21 +16621,21 @@ code {
|
|
|
16533
16621
|
display: block;
|
|
16534
16622
|
height: 100%;
|
|
16535
16623
|
width: var(--value, 0%);
|
|
16536
|
-
background:
|
|
16624
|
+
background: var(--pa-accent);
|
|
16537
16625
|
border-radius: inherit;
|
|
16538
16626
|
transition: width 0.25s ease;
|
|
16539
16627
|
}
|
|
16540
16628
|
.pa-bar-list--success .pa-bar-list__bar::after {
|
|
16541
|
-
background:
|
|
16629
|
+
background: var(--pa-success);
|
|
16542
16630
|
}
|
|
16543
16631
|
.pa-bar-list--warning .pa-bar-list__bar::after {
|
|
16544
|
-
background:
|
|
16632
|
+
background: var(--pa-warning);
|
|
16545
16633
|
}
|
|
16546
16634
|
.pa-bar-list--danger .pa-bar-list__bar::after {
|
|
16547
|
-
background:
|
|
16635
|
+
background: var(--pa-danger);
|
|
16548
16636
|
}
|
|
16549
16637
|
.pa-bar-list--info .pa-bar-list__bar::after {
|
|
16550
|
-
background:
|
|
16638
|
+
background: var(--pa-info);
|
|
16551
16639
|
}
|
|
16552
16640
|
.pa-bar-list--compact {
|
|
16553
16641
|
gap: 0.8rem;
|
|
@@ -16563,6 +16651,1526 @@ code {
|
|
|
16563
16651
|
height: 0.3rem;
|
|
16564
16652
|
}
|
|
16565
16653
|
|
|
16654
|
+
/* ========================================
|
|
16655
|
+
KPI · shared base
|
|
16656
|
+
Cross-cutting building blocks used by every pa-kpi-* showcase.
|
|
16657
|
+
Tokens (--pa-positive, --pa-detail-bg, --pa-chart-trendline-*) live in
|
|
16658
|
+
_base-css-variables.scss; this file only defines the shared class
|
|
16659
|
+
surface that consumes them.
|
|
16660
|
+
======================================== */
|
|
16661
|
+
/* ----- LIVE indicator (title-bar pulse) ---------------------------------
|
|
16662
|
+
Used in every KPI card header — a small mono "LIVE" caption with a
|
|
16663
|
+
pulsing green dot. Sits next to the card title. */
|
|
16664
|
+
.pa-kpi-live {
|
|
16665
|
+
display: inline-flex;
|
|
16666
|
+
align-items: center;
|
|
16667
|
+
gap: 0.6rem;
|
|
16668
|
+
font-family: var(--base-font-family-mono);
|
|
16669
|
+
font-size: 1.2rem;
|
|
16670
|
+
font-weight: 600;
|
|
16671
|
+
letter-spacing: 0.06em;
|
|
16672
|
+
color: var(--pa-text-secondary);
|
|
16673
|
+
}
|
|
16674
|
+
.pa-kpi-live__dot {
|
|
16675
|
+
width: 0.8rem;
|
|
16676
|
+
height: 0.8rem;
|
|
16677
|
+
border-radius: 50%;
|
|
16678
|
+
background: var(--pa-positive);
|
|
16679
|
+
box-shadow: 0 0 6px var(--pa-positive);
|
|
16680
|
+
animation: pa-kpi-pulse 1.6s ease-in-out infinite;
|
|
16681
|
+
}
|
|
16682
|
+
|
|
16683
|
+
@keyframes pa-kpi-pulse {
|
|
16684
|
+
50% {
|
|
16685
|
+
opacity: 0.35;
|
|
16686
|
+
}
|
|
16687
|
+
}
|
|
16688
|
+
/* ----- Card header row --------------------------------------------------
|
|
16689
|
+
Title (h2/h3 by author choice) on one side, controls + LIVE on the other.
|
|
16690
|
+
Wraps onto multiple rows on narrow cards. Every showcase uses this shape. */
|
|
16691
|
+
.pa-kpi-header {
|
|
16692
|
+
display: flex;
|
|
16693
|
+
justify-content: space-between;
|
|
16694
|
+
align-items: center;
|
|
16695
|
+
gap: 1.6rem;
|
|
16696
|
+
flex-wrap: wrap;
|
|
16697
|
+
}
|
|
16698
|
+
|
|
16699
|
+
/* ----- Card footer caption ---------------------------------------------
|
|
16700
|
+
Two-line mono caption row at the bottom of the card (left: data source,
|
|
16701
|
+
right: timestamp). Strong text inside picks up the focal color so things
|
|
16702
|
+
like a metric name or count stand out. */
|
|
16703
|
+
.pa-kpi-footer {
|
|
16704
|
+
display: flex;
|
|
16705
|
+
justify-content: space-between;
|
|
16706
|
+
align-items: center;
|
|
16707
|
+
flex-wrap: wrap;
|
|
16708
|
+
gap: 1rem;
|
|
16709
|
+
font-family: var(--base-font-family-mono);
|
|
16710
|
+
font-size: 1.2rem;
|
|
16711
|
+
color: var(--pa-text-secondary);
|
|
16712
|
+
}
|
|
16713
|
+
.pa-kpi-footer strong {
|
|
16714
|
+
color: var(--pa-text-color-1);
|
|
16715
|
+
font-weight: 700;
|
|
16716
|
+
}
|
|
16717
|
+
|
|
16718
|
+
/* ----- Sparkline endpoint dot ------------------------------------------
|
|
16719
|
+
The SVG circle that marks the end of a sparkline is converted to a CSS
|
|
16720
|
+
span at init time — the SVG uses preserveAspectRatio="none" so an
|
|
16721
|
+
embedded <circle> renders as an oval at non-square aspect ratios.
|
|
16722
|
+
See kpi-showcases.js for the conversion; here we only style the result. */
|
|
16723
|
+
.pa-kpi-spark-dot {
|
|
16724
|
+
position: absolute;
|
|
16725
|
+
width: 6px;
|
|
16726
|
+
height: 6px;
|
|
16727
|
+
margin: -3px 0 0 -3px; /* centre on the (left, top) anchor */
|
|
16728
|
+
border-radius: 50%;
|
|
16729
|
+
background: currentColor; /* inherits sentiment color from chart wrapper */
|
|
16730
|
+
pointer-events: none;
|
|
16731
|
+
}
|
|
16732
|
+
|
|
16733
|
+
/* Wrapper inserted around an SVG sparkline at init time when its parent
|
|
16734
|
+
isn't already a positioned anchor — so the .pa-kpi-spark-dot can be
|
|
16735
|
+
absolutely positioned relative to the chart. */
|
|
16736
|
+
.pa-kpi-spark-wrap {
|
|
16737
|
+
display: block;
|
|
16738
|
+
position: relative;
|
|
16739
|
+
width: 100%;
|
|
16740
|
+
}
|
|
16741
|
+
|
|
16742
|
+
/* ----- Hover detail popover --------------------------------------------
|
|
16743
|
+
Bloomberg-dark by default regardless of host theme (terminal/data-dashboard
|
|
16744
|
+
aesthetic). Override the --pa-detail-* tokens at :root or .pa-kpi-detail
|
|
16745
|
+
level for a light/theme-aware variant.
|
|
16746
|
+
|
|
16747
|
+
Positioned by Floating UI anchored to a virtual element at the cursor —
|
|
16748
|
+
the JS appends each popover to <body> at init so ancestor overflow:hidden
|
|
16749
|
+
doesn't clip it. position: fixed because cursor coords are viewport-
|
|
16750
|
+
relative; pointer-events:none so the cursor passes through cleanly and
|
|
16751
|
+
tile mouseleave fires reliably. */
|
|
16752
|
+
.pa-kpi-detail {
|
|
16753
|
+
position: fixed;
|
|
16754
|
+
top: 0;
|
|
16755
|
+
left: 0;
|
|
16756
|
+
visibility: hidden;
|
|
16757
|
+
pointer-events: none;
|
|
16758
|
+
z-index: 9000;
|
|
16759
|
+
min-width: 26rem;
|
|
16760
|
+
max-width: 32rem;
|
|
16761
|
+
background: var(--pa-detail-bg);
|
|
16762
|
+
color: var(--pa-detail-text);
|
|
16763
|
+
padding: 1.2rem 1.5rem;
|
|
16764
|
+
font-family: var(--base-font-family-mono);
|
|
16765
|
+
font-size: 1.25rem;
|
|
16766
|
+
line-height: 1.5;
|
|
16767
|
+
border-radius: 0.4rem;
|
|
16768
|
+
box-shadow: var(--pa-detail-shadow);
|
|
16769
|
+
}
|
|
16770
|
+
.pa-kpi-detail[data-show] {
|
|
16771
|
+
visibility: visible;
|
|
16772
|
+
}
|
|
16773
|
+
.pa-kpi-detail__title {
|
|
16774
|
+
text-transform: uppercase;
|
|
16775
|
+
letter-spacing: 0.08em;
|
|
16776
|
+
font-size: 1.05rem;
|
|
16777
|
+
font-weight: 700;
|
|
16778
|
+
color: var(--pa-detail-title);
|
|
16779
|
+
margin-bottom: 0.6rem;
|
|
16780
|
+
}
|
|
16781
|
+
.pa-kpi-detail dl {
|
|
16782
|
+
display: grid;
|
|
16783
|
+
grid-template-columns: 1fr auto;
|
|
16784
|
+
gap: 0.35rem 1.6rem;
|
|
16785
|
+
margin: 0;
|
|
16786
|
+
}
|
|
16787
|
+
.pa-kpi-detail dt {
|
|
16788
|
+
margin: 0;
|
|
16789
|
+
color: var(--pa-detail-row-label);
|
|
16790
|
+
font-weight: 400;
|
|
16791
|
+
}
|
|
16792
|
+
.pa-kpi-detail dd {
|
|
16793
|
+
margin: 0;
|
|
16794
|
+
text-align: end;
|
|
16795
|
+
font-weight: 600;
|
|
16796
|
+
font-variant-numeric: tabular-nums;
|
|
16797
|
+
}
|
|
16798
|
+
.pa-kpi-detail {
|
|
16799
|
+
/* Inline sentiment hints for dd content (e.g. <dd>+12% <span class="pos">…</span></dd>) */
|
|
16800
|
+
}
|
|
16801
|
+
.pa-kpi-detail .pos {
|
|
16802
|
+
color: var(--pa-positive);
|
|
16803
|
+
}
|
|
16804
|
+
.pa-kpi-detail .neg {
|
|
16805
|
+
color: var(--pa-negative);
|
|
16806
|
+
}
|
|
16807
|
+
.pa-kpi-detail .warn {
|
|
16808
|
+
color: var(--pa-warning);
|
|
16809
|
+
}
|
|
16810
|
+
|
|
16811
|
+
/* ----- Section heading strip used outside card chrome -------------------
|
|
16812
|
+
The 7 showcases each render a "stress-test" section that places tiles
|
|
16813
|
+
directly inside .pa-col-* page-grid cells (no card wrapper). The strip
|
|
16814
|
+
above those layouts hosts a label or LIVE indicator at the row's end. */
|
|
16815
|
+
.pa-kpi-sectionhead {
|
|
16816
|
+
display: flex;
|
|
16817
|
+
justify-content: flex-end;
|
|
16818
|
+
align-items: center;
|
|
16819
|
+
gap: 1.6rem;
|
|
16820
|
+
margin-bottom: 1.2rem;
|
|
16821
|
+
}
|
|
16822
|
+
|
|
16823
|
+
/* ========================================
|
|
16824
|
+
KPI · Terminal grid
|
|
16825
|
+
Bloomberg-style dense panel: mono numbers, status pills, inline SVG
|
|
16826
|
+
sparklines, ▲▼ deltas, segmented view-mode toggle (VALUE/Δ%/TREND).
|
|
16827
|
+
Shared chrome (header, live, footer, detail popover, spark-dot) is in
|
|
16828
|
+
_kpi-base.scss.
|
|
16829
|
+
======================================== */
|
|
16830
|
+
/* ----- View-mode toggle (segmented button group) ------------------------ */
|
|
16831
|
+
.pa-kpi-terminal__controls {
|
|
16832
|
+
display: inline-flex;
|
|
16833
|
+
align-items: center;
|
|
16834
|
+
gap: 1.6rem;
|
|
16835
|
+
}
|
|
16836
|
+
|
|
16837
|
+
.pa-kpi-terminal__viewtoggle {
|
|
16838
|
+
display: inline-flex;
|
|
16839
|
+
border: 1px solid var(--pa-border-color);
|
|
16840
|
+
border-radius: 0.4rem;
|
|
16841
|
+
overflow: hidden;
|
|
16842
|
+
}
|
|
16843
|
+
|
|
16844
|
+
.pa-kpi-terminal__viewbtn {
|
|
16845
|
+
background: transparent;
|
|
16846
|
+
border: 0;
|
|
16847
|
+
color: var(--pa-text-color-2);
|
|
16848
|
+
padding: 0.4rem 1.1rem;
|
|
16849
|
+
font-family: var(--base-font-family-mono);
|
|
16850
|
+
font-size: 1.1rem;
|
|
16851
|
+
font-weight: 600;
|
|
16852
|
+
letter-spacing: 0.06em;
|
|
16853
|
+
cursor: pointer;
|
|
16854
|
+
transition: background-color 0.1s ease-out, color 0.1s ease-out;
|
|
16855
|
+
}
|
|
16856
|
+
.pa-kpi-terminal__viewbtn:hover {
|
|
16857
|
+
color: var(--pa-text-color-1);
|
|
16858
|
+
}
|
|
16859
|
+
.pa-kpi-terminal__viewbtn.is-active {
|
|
16860
|
+
background: var(--pa-text-color-1);
|
|
16861
|
+
color: var(--pa-card-bg);
|
|
16862
|
+
}
|
|
16863
|
+
|
|
16864
|
+
/* ----- Grid + tile borders ----------------------------------------------
|
|
16865
|
+
Hairline 1px borders between tiles, no gap. Last-row/last-column
|
|
16866
|
+
borders suppressed via :nth-last-child / :nth-child selectors. */
|
|
16867
|
+
.pa-kpi-terminal__body {
|
|
16868
|
+
padding: 0;
|
|
16869
|
+
}
|
|
16870
|
+
|
|
16871
|
+
.pa-kpi-terminal__grid {
|
|
16872
|
+
display: grid;
|
|
16873
|
+
grid-template-columns: repeat(2, 1fr);
|
|
16874
|
+
}
|
|
16875
|
+
.pa-kpi-terminal__grid .pa-kpi-tile {
|
|
16876
|
+
border-bottom: 1px solid var(--pa-border-color);
|
|
16877
|
+
border-right: 1px solid var(--pa-border-color);
|
|
16878
|
+
}
|
|
16879
|
+
|
|
16880
|
+
.pa-kpi-terminal__grid--2col .pa-kpi-tile:nth-child(2n) {
|
|
16881
|
+
border-right: 0;
|
|
16882
|
+
}
|
|
16883
|
+
.pa-kpi-terminal__grid--2col .pa-kpi-tile:nth-last-child(-n+2) {
|
|
16884
|
+
border-bottom: 0;
|
|
16885
|
+
}
|
|
16886
|
+
|
|
16887
|
+
/* ----- Tile (per-KPI panel) --------------------------------------------- */
|
|
16888
|
+
.pa-kpi-tile {
|
|
16889
|
+
position: relative;
|
|
16890
|
+
padding: 1.4rem 1.8rem 1.6rem;
|
|
16891
|
+
min-height: 16rem;
|
|
16892
|
+
display: flex;
|
|
16893
|
+
flex-direction: column;
|
|
16894
|
+
/* Standalone modifier: tile lives directly inside a .pa-col-* (no
|
|
16895
|
+
neighbour cells in a parent grid) — gets a full border + card bg so
|
|
16896
|
+
it doesn't look orphaned. */
|
|
16897
|
+
}
|
|
16898
|
+
.pa-kpi-tile--standalone {
|
|
16899
|
+
background: var(--pa-card-bg);
|
|
16900
|
+
border: 1px solid var(--pa-border-color);
|
|
16901
|
+
margin-bottom: 1.2rem;
|
|
16902
|
+
}
|
|
16903
|
+
.pa-kpi-tile--standalone:last-child {
|
|
16904
|
+
margin-bottom: 0;
|
|
16905
|
+
}
|
|
16906
|
+
|
|
16907
|
+
/* ----- Tile head: ID · period + status pill ----------------------------- */
|
|
16908
|
+
.pa-kpi-tile__head {
|
|
16909
|
+
display: flex;
|
|
16910
|
+
justify-content: space-between;
|
|
16911
|
+
align-items: center;
|
|
16912
|
+
font-family: var(--base-font-family-mono);
|
|
16913
|
+
font-size: 1.3rem;
|
|
16914
|
+
letter-spacing: 0.04em;
|
|
16915
|
+
margin-bottom: 0.3rem;
|
|
16916
|
+
}
|
|
16917
|
+
|
|
16918
|
+
.pa-kpi-tile__id {
|
|
16919
|
+
color: var(--pa-text-tertiary);
|
|
16920
|
+
font-weight: 600;
|
|
16921
|
+
}
|
|
16922
|
+
|
|
16923
|
+
.pa-kpi-tile__status {
|
|
16924
|
+
font-family: var(--base-font-family-mono);
|
|
16925
|
+
font-size: 1.2rem;
|
|
16926
|
+
font-weight: 700;
|
|
16927
|
+
letter-spacing: 0.08em;
|
|
16928
|
+
padding: 0.3rem 0.9rem;
|
|
16929
|
+
line-height: 1.3;
|
|
16930
|
+
}
|
|
16931
|
+
.pa-kpi-tile__status--warn {
|
|
16932
|
+
background: var(--pa-warning-bg);
|
|
16933
|
+
color: var(--pa-btn-warning-text);
|
|
16934
|
+
}
|
|
16935
|
+
.pa-kpi-tile__status {
|
|
16936
|
+
/* GOOD is the "default" state — text-only, no chrome */
|
|
16937
|
+
}
|
|
16938
|
+
.pa-kpi-tile__status--good {
|
|
16939
|
+
background: transparent;
|
|
16940
|
+
color: var(--pa-text-color-1);
|
|
16941
|
+
padding: 0.2rem 0;
|
|
16942
|
+
}
|
|
16943
|
+
.pa-kpi-tile__status--neutral {
|
|
16944
|
+
background: color-mix(in srgb, var(--pa-text-color-2) 25%, transparent);
|
|
16945
|
+
color: var(--pa-text-color-1);
|
|
16946
|
+
}
|
|
16947
|
+
|
|
16948
|
+
/* ----- Label ------------------------------------------------------------ */
|
|
16949
|
+
.pa-kpi-tile__label {
|
|
16950
|
+
font-family: var(--base-font-family-mono);
|
|
16951
|
+
font-size: 1.4rem;
|
|
16952
|
+
font-weight: 700;
|
|
16953
|
+
letter-spacing: 0.1em;
|
|
16954
|
+
text-transform: uppercase;
|
|
16955
|
+
color: var(--pa-text-strong);
|
|
16956
|
+
margin-bottom: 0.8rem;
|
|
16957
|
+
}
|
|
16958
|
+
|
|
16959
|
+
/* ----- Big value with 3-mode swap --------------------------------------
|
|
16960
|
+
Author renders three .pa-kpi-tile__value siblings (data-mode="value" /
|
|
16961
|
+
"delta" / "trend"); the active mode is selected via the
|
|
16962
|
+
.pa-kpi-terminal[data-view="X"] attribute. JS toggles that attribute
|
|
16963
|
+
when the segmented control is clicked. */
|
|
16964
|
+
.pa-kpi-tile__values {
|
|
16965
|
+
margin-bottom: 0.4rem;
|
|
16966
|
+
}
|
|
16967
|
+
|
|
16968
|
+
.pa-kpi-tile__value {
|
|
16969
|
+
display: none;
|
|
16970
|
+
align-items: baseline;
|
|
16971
|
+
gap: 0.3rem;
|
|
16972
|
+
font-family: var(--base-font-family-mono);
|
|
16973
|
+
line-height: 1;
|
|
16974
|
+
}
|
|
16975
|
+
.pa-kpi-tile__value--very-positive .pa-kpi-tile__num {
|
|
16976
|
+
color: var(--pa-very-positive);
|
|
16977
|
+
}
|
|
16978
|
+
.pa-kpi-tile__value--positive .pa-kpi-tile__num {
|
|
16979
|
+
color: var(--pa-positive);
|
|
16980
|
+
}
|
|
16981
|
+
.pa-kpi-tile__value--neutral .pa-kpi-tile__num {
|
|
16982
|
+
color: var(--pa-neutral);
|
|
16983
|
+
}
|
|
16984
|
+
.pa-kpi-tile__value--negative .pa-kpi-tile__num {
|
|
16985
|
+
color: var(--pa-negative);
|
|
16986
|
+
}
|
|
16987
|
+
.pa-kpi-tile__value--very-negative .pa-kpi-tile__num {
|
|
16988
|
+
color: var(--pa-very-negative);
|
|
16989
|
+
}
|
|
16990
|
+
|
|
16991
|
+
.pa-kpi-terminal[data-view=value] .pa-kpi-tile__value[data-mode=value],
|
|
16992
|
+
.pa-kpi-terminal[data-view=delta] .pa-kpi-tile__value[data-mode=delta],
|
|
16993
|
+
.pa-kpi-terminal[data-view=trend] .pa-kpi-tile__value[data-mode=trend] {
|
|
16994
|
+
display: inline-flex;
|
|
16995
|
+
}
|
|
16996
|
+
|
|
16997
|
+
.pa-kpi-tile__num {
|
|
16998
|
+
font-size: 3.8rem;
|
|
16999
|
+
font-weight: 700;
|
|
17000
|
+
letter-spacing: -0.02em;
|
|
17001
|
+
color: var(--pa-text-color-1);
|
|
17002
|
+
}
|
|
17003
|
+
|
|
17004
|
+
.pa-kpi-tile__unit {
|
|
17005
|
+
font-size: 1.6rem;
|
|
17006
|
+
font-weight: 500;
|
|
17007
|
+
color: var(--pa-text-secondary);
|
|
17008
|
+
}
|
|
17009
|
+
|
|
17010
|
+
/* ----- Previous-value + delta row -------------------------------------- */
|
|
17011
|
+
.pa-kpi-tile__prev {
|
|
17012
|
+
display: flex;
|
|
17013
|
+
justify-content: space-between;
|
|
17014
|
+
align-items: center;
|
|
17015
|
+
font-family: var(--base-font-family-mono);
|
|
17016
|
+
font-size: 1.3rem;
|
|
17017
|
+
margin-top: auto; /* push to bottom of flex column */
|
|
17018
|
+
margin-bottom: 0.4rem;
|
|
17019
|
+
color: var(--pa-text-tertiary);
|
|
17020
|
+
}
|
|
17021
|
+
|
|
17022
|
+
.pa-kpi-tile__delta--very-positive {
|
|
17023
|
+
color: var(--pa-very-positive);
|
|
17024
|
+
}
|
|
17025
|
+
.pa-kpi-tile__delta--positive {
|
|
17026
|
+
color: var(--pa-positive);
|
|
17027
|
+
}
|
|
17028
|
+
.pa-kpi-tile__delta--neutral {
|
|
17029
|
+
color: var(--pa-neutral);
|
|
17030
|
+
}
|
|
17031
|
+
.pa-kpi-tile__delta--negative {
|
|
17032
|
+
color: var(--pa-negative);
|
|
17033
|
+
}
|
|
17034
|
+
.pa-kpi-tile__delta--very-negative {
|
|
17035
|
+
color: var(--pa-very-negative);
|
|
17036
|
+
}
|
|
17037
|
+
|
|
17038
|
+
/* ----- Sparkline -------------------------------------------------------- */
|
|
17039
|
+
.pa-kpi-tile__spark {
|
|
17040
|
+
display: block;
|
|
17041
|
+
width: 100%;
|
|
17042
|
+
height: var(--pa-chart-trendline-height);
|
|
17043
|
+
overflow: visible;
|
|
17044
|
+
}
|
|
17045
|
+
.pa-kpi-tile__spark polyline {
|
|
17046
|
+
fill: none;
|
|
17047
|
+
stroke: currentColor;
|
|
17048
|
+
stroke-width: var(--pa-chart-trendline-stroke);
|
|
17049
|
+
stroke-linecap: round;
|
|
17050
|
+
stroke-linejoin: round;
|
|
17051
|
+
}
|
|
17052
|
+
|
|
17053
|
+
/* Sentiment-coloured sparkline. Class names use up/down wording but pick
|
|
17054
|
+
colours from the sentiment-of-the-change axis, not line shape — so an
|
|
17055
|
+
error-rate metric whose line is falling but the change is good uses
|
|
17056
|
+
--up. See showcase docs for the rationale. Colour is set on both the
|
|
17057
|
+
SVG and the JS-inserted .pa-kpi-spark-wrap so currentColor resolves
|
|
17058
|
+
for the SVG content (line) and the HTML dot (inside the wrap). */
|
|
17059
|
+
.pa-kpi-tile--up-strong .pa-kpi-tile__spark, .pa-kpi-tile--up-strong .pa-kpi-spark-wrap {
|
|
17060
|
+
color: var(--pa-very-positive);
|
|
17061
|
+
}
|
|
17062
|
+
.pa-kpi-tile--up .pa-kpi-tile__spark, .pa-kpi-tile--up .pa-kpi-spark-wrap {
|
|
17063
|
+
color: var(--pa-positive);
|
|
17064
|
+
}
|
|
17065
|
+
.pa-kpi-tile--flat .pa-kpi-tile__spark, .pa-kpi-tile--flat .pa-kpi-spark-wrap {
|
|
17066
|
+
color: var(--pa-neutral);
|
|
17067
|
+
}
|
|
17068
|
+
.pa-kpi-tile--down .pa-kpi-tile__spark, .pa-kpi-tile--down .pa-kpi-spark-wrap {
|
|
17069
|
+
color: var(--pa-negative);
|
|
17070
|
+
}
|
|
17071
|
+
.pa-kpi-tile--down-strong .pa-kpi-tile__spark, .pa-kpi-tile--down-strong .pa-kpi-spark-wrap {
|
|
17072
|
+
color: var(--pa-very-negative);
|
|
17073
|
+
}
|
|
17074
|
+
|
|
17075
|
+
/* ========================================
|
|
17076
|
+
KPI · Sparkline list
|
|
17077
|
+
Each KPI is one row: label · sparkline · value · Δ%. Built for vertical
|
|
17078
|
+
scanning rather than per-tile depth — no view-mode toggle, no status
|
|
17079
|
+
pills. Container queries collapse 4-col → 2-row → 3-row as the card
|
|
17080
|
+
narrows.
|
|
17081
|
+
======================================== */
|
|
17082
|
+
/* Card is a query container so rows react to *card* width, not viewport. */
|
|
17083
|
+
.pa-kpi-spark-list {
|
|
17084
|
+
container-type: inline-size;
|
|
17085
|
+
}
|
|
17086
|
+
|
|
17087
|
+
.pa-kpi-spark-list__body {
|
|
17088
|
+
padding: 0;
|
|
17089
|
+
}
|
|
17090
|
+
|
|
17091
|
+
/* ----- Row: wide 4-column grid (label · chart · value · delta) ---------- */
|
|
17092
|
+
.pa-kpi-spark-row {
|
|
17093
|
+
display: grid;
|
|
17094
|
+
grid-template-columns: minmax(14rem, 28%) minmax(10rem, 1fr) minmax(8rem, 18%) minmax(7rem, 12%);
|
|
17095
|
+
align-items: center;
|
|
17096
|
+
gap: 1.6rem;
|
|
17097
|
+
padding: 1.4rem 2rem;
|
|
17098
|
+
border-bottom: 1px solid var(--pa-border-color);
|
|
17099
|
+
}
|
|
17100
|
+
.pa-kpi-spark-row:last-child {
|
|
17101
|
+
border-bottom: 0;
|
|
17102
|
+
}
|
|
17103
|
+
|
|
17104
|
+
/* Mid-narrow card (1×3 page-grid + 45% column): stack to 2 rows.
|
|
17105
|
+
Label/value/delta on top, full-width chart below. Default order is
|
|
17106
|
+
value-above-chart; use .pa-kpi-spark-list--chart-first to flip. */
|
|
17107
|
+
@container (max-width: 640px) {
|
|
17108
|
+
.pa-kpi-spark-row {
|
|
17109
|
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
17110
|
+
grid-template-rows: auto auto;
|
|
17111
|
+
grid-template-areas: "label value delta" "chart chart chart";
|
|
17112
|
+
column-gap: 1.2rem;
|
|
17113
|
+
row-gap: 0.4rem;
|
|
17114
|
+
align-items: baseline;
|
|
17115
|
+
padding: 1.2rem 1.6rem;
|
|
17116
|
+
}
|
|
17117
|
+
.pa-kpi-spark-row__label {
|
|
17118
|
+
grid-area: label;
|
|
17119
|
+
align-self: center;
|
|
17120
|
+
font-size: 1.25rem;
|
|
17121
|
+
}
|
|
17122
|
+
.pa-kpi-spark-row__value {
|
|
17123
|
+
grid-area: value;
|
|
17124
|
+
}
|
|
17125
|
+
.pa-kpi-spark-row__delta {
|
|
17126
|
+
grid-area: delta;
|
|
17127
|
+
font-size: 1.25rem;
|
|
17128
|
+
}
|
|
17129
|
+
.pa-kpi-spark-row__chart {
|
|
17130
|
+
grid-area: chart;
|
|
17131
|
+
}
|
|
17132
|
+
.pa-kpi-spark-row__num {
|
|
17133
|
+
font-size: 2rem;
|
|
17134
|
+
}
|
|
17135
|
+
/* --chart-first: rotates the canonical L→R order 90°. Label on top,
|
|
17136
|
+
chart in the middle, value+delta side-by-side at the bottom. */
|
|
17137
|
+
.pa-kpi-spark-list--chart-first .pa-kpi-spark-row {
|
|
17138
|
+
grid-template-columns: 1fr auto;
|
|
17139
|
+
grid-template-rows: auto auto auto;
|
|
17140
|
+
grid-template-areas: "label label" "chart chart" "value delta";
|
|
17141
|
+
row-gap: 0.5rem;
|
|
17142
|
+
column-gap: 1rem;
|
|
17143
|
+
padding: 1.2rem 1.6rem;
|
|
17144
|
+
}
|
|
17145
|
+
.pa-kpi-spark-list--chart-first .pa-kpi-spark-row__label {
|
|
17146
|
+
align-self: start;
|
|
17147
|
+
}
|
|
17148
|
+
.pa-kpi-spark-list--chart-first .pa-kpi-spark-row__value {
|
|
17149
|
+
text-align: start;
|
|
17150
|
+
align-self: baseline;
|
|
17151
|
+
}
|
|
17152
|
+
.pa-kpi-spark-list--chart-first .pa-kpi-spark-row__delta {
|
|
17153
|
+
align-self: baseline;
|
|
17154
|
+
}
|
|
17155
|
+
}
|
|
17156
|
+
/* Very narrow card (~280–360px, 25% page-grid stress test): force the
|
|
17157
|
+
chart-first 3-row layout regardless of modifier. */
|
|
17158
|
+
@container (max-width: 360px) {
|
|
17159
|
+
.pa-kpi-spark-row {
|
|
17160
|
+
grid-template-columns: 1fr auto;
|
|
17161
|
+
grid-template-rows: auto auto auto;
|
|
17162
|
+
grid-template-areas: "label label" "chart chart" "value delta";
|
|
17163
|
+
row-gap: 0.5rem;
|
|
17164
|
+
column-gap: 1rem;
|
|
17165
|
+
padding: 1.2rem 1.4rem;
|
|
17166
|
+
}
|
|
17167
|
+
.pa-kpi-spark-row__label {
|
|
17168
|
+
grid-area: label;
|
|
17169
|
+
align-self: start;
|
|
17170
|
+
}
|
|
17171
|
+
.pa-kpi-spark-row__chart {
|
|
17172
|
+
grid-area: chart;
|
|
17173
|
+
}
|
|
17174
|
+
.pa-kpi-spark-row__value {
|
|
17175
|
+
grid-area: value;
|
|
17176
|
+
text-align: start;
|
|
17177
|
+
align-self: baseline;
|
|
17178
|
+
}
|
|
17179
|
+
.pa-kpi-spark-row__delta {
|
|
17180
|
+
grid-area: delta;
|
|
17181
|
+
align-self: baseline;
|
|
17182
|
+
}
|
|
17183
|
+
}
|
|
17184
|
+
/* ----- Cell typography -------------------------------------------------- */
|
|
17185
|
+
.pa-kpi-spark-row__label {
|
|
17186
|
+
font-family: var(--base-font-family-mono);
|
|
17187
|
+
font-size: 1.4rem;
|
|
17188
|
+
font-weight: 700;
|
|
17189
|
+
letter-spacing: 0.1em;
|
|
17190
|
+
text-transform: uppercase;
|
|
17191
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17192
|
+
}
|
|
17193
|
+
|
|
17194
|
+
/* Sparkline cell — line + filled area + trailing dot (the dot is rendered
|
|
17195
|
+
as a CSS span by the JS init pass; see kpi-showcases.js). */
|
|
17196
|
+
.pa-kpi-spark-row__chart {
|
|
17197
|
+
position: relative; /* anchor for .pa-kpi-spark-dot */
|
|
17198
|
+
}
|
|
17199
|
+
.pa-kpi-spark-row__chart svg {
|
|
17200
|
+
display: block;
|
|
17201
|
+
width: 100%;
|
|
17202
|
+
height: var(--pa-chart-trendline-height);
|
|
17203
|
+
overflow: visible;
|
|
17204
|
+
}
|
|
17205
|
+
.pa-kpi-spark-row__chart polyline {
|
|
17206
|
+
fill: none;
|
|
17207
|
+
stroke: currentColor;
|
|
17208
|
+
stroke-width: var(--pa-chart-trendline-stroke);
|
|
17209
|
+
stroke-linecap: round;
|
|
17210
|
+
stroke-linejoin: round;
|
|
17211
|
+
}
|
|
17212
|
+
.pa-kpi-spark-row__chart polygon {
|
|
17213
|
+
fill: currentColor;
|
|
17214
|
+
fill-opacity: 0.18; /* same hue as line, soft area shading */
|
|
17215
|
+
stroke: none;
|
|
17216
|
+
}
|
|
17217
|
+
|
|
17218
|
+
/* Sentiment-coloured sparkline. Color is set on the chart wrapper so
|
|
17219
|
+
currentColor resolves for both the SVG content (line/area) and the
|
|
17220
|
+
dot inside the wrapper. */
|
|
17221
|
+
.pa-kpi-spark-row--up-strong .pa-kpi-spark-row__chart {
|
|
17222
|
+
color: var(--pa-very-positive);
|
|
17223
|
+
}
|
|
17224
|
+
.pa-kpi-spark-row--up .pa-kpi-spark-row__chart {
|
|
17225
|
+
color: var(--pa-positive);
|
|
17226
|
+
}
|
|
17227
|
+
.pa-kpi-spark-row--flat .pa-kpi-spark-row__chart {
|
|
17228
|
+
color: var(--pa-neutral);
|
|
17229
|
+
}
|
|
17230
|
+
.pa-kpi-spark-row--down .pa-kpi-spark-row__chart {
|
|
17231
|
+
color: var(--pa-negative);
|
|
17232
|
+
}
|
|
17233
|
+
.pa-kpi-spark-row--down-strong .pa-kpi-spark-row__chart {
|
|
17234
|
+
color: var(--pa-very-negative);
|
|
17235
|
+
}
|
|
17236
|
+
|
|
17237
|
+
/* ----- Value (focal white number + muted unit) ------------------------- */
|
|
17238
|
+
.pa-kpi-spark-row__value {
|
|
17239
|
+
font-family: var(--base-font-family-mono);
|
|
17240
|
+
text-align: end;
|
|
17241
|
+
line-height: 1;
|
|
17242
|
+
}
|
|
17243
|
+
|
|
17244
|
+
.pa-kpi-spark-row__num {
|
|
17245
|
+
font-size: 2.6rem;
|
|
17246
|
+
font-weight: 700;
|
|
17247
|
+
letter-spacing: -0.02em;
|
|
17248
|
+
color: var(--pa-text-color-1);
|
|
17249
|
+
}
|
|
17250
|
+
|
|
17251
|
+
.pa-kpi-spark-row__unit {
|
|
17252
|
+
font-size: 1.3rem;
|
|
17253
|
+
font-weight: 500;
|
|
17254
|
+
color: var(--pa-text-secondary);
|
|
17255
|
+
margin-left: 0.2rem;
|
|
17256
|
+
}
|
|
17257
|
+
|
|
17258
|
+
/* ----- Delta (sentiment-coloured) -------------------------------------- */
|
|
17259
|
+
.pa-kpi-spark-row__delta {
|
|
17260
|
+
font-family: var(--base-font-family-mono);
|
|
17261
|
+
font-size: 1.4rem;
|
|
17262
|
+
font-weight: 600;
|
|
17263
|
+
text-align: end;
|
|
17264
|
+
font-variant-numeric: tabular-nums;
|
|
17265
|
+
}
|
|
17266
|
+
.pa-kpi-spark-row__delta--very-positive {
|
|
17267
|
+
color: var(--pa-very-positive);
|
|
17268
|
+
}
|
|
17269
|
+
.pa-kpi-spark-row__delta--positive {
|
|
17270
|
+
color: var(--pa-positive);
|
|
17271
|
+
}
|
|
17272
|
+
.pa-kpi-spark-row__delta--neutral {
|
|
17273
|
+
color: var(--pa-neutral);
|
|
17274
|
+
}
|
|
17275
|
+
.pa-kpi-spark-row__delta--negative {
|
|
17276
|
+
color: var(--pa-negative);
|
|
17277
|
+
}
|
|
17278
|
+
.pa-kpi-spark-row__delta--very-negative {
|
|
17279
|
+
color: var(--pa-very-negative);
|
|
17280
|
+
}
|
|
17281
|
+
|
|
17282
|
+
/* ========================================
|
|
17283
|
+
KPI · Comparison gauges
|
|
17284
|
+
Goal-oriented progress bars. Each KPI shows label · value, a bar with a
|
|
17285
|
+
target tick, and a 0 · tgt scale below. Bar fill = value/target * 100%,
|
|
17286
|
+
capped visually so overshoots are signalled by colour, not overflow.
|
|
17287
|
+
======================================== */
|
|
17288
|
+
.pa-kpi-gauge-list {
|
|
17289
|
+
container-type: inline-size;
|
|
17290
|
+
}
|
|
17291
|
+
|
|
17292
|
+
.pa-kpi-gauge-list__body {
|
|
17293
|
+
padding: 0;
|
|
17294
|
+
}
|
|
17295
|
+
|
|
17296
|
+
/* 2-column internal grid by default; collapses to 1-col when card narrows. */
|
|
17297
|
+
.pa-kpi-gauge-list__grid {
|
|
17298
|
+
display: grid;
|
|
17299
|
+
grid-template-columns: repeat(2, 1fr);
|
|
17300
|
+
}
|
|
17301
|
+
|
|
17302
|
+
@container (max-width: 600px) {
|
|
17303
|
+
.pa-kpi-gauge-list__grid {
|
|
17304
|
+
grid-template-columns: 1fr;
|
|
17305
|
+
}
|
|
17306
|
+
}
|
|
17307
|
+
/* ----- Gauge tile (label/value head · bar · 0/tgt scale) ---------------- */
|
|
17308
|
+
.pa-kpi-gauge {
|
|
17309
|
+
position: relative;
|
|
17310
|
+
padding: 1.6rem 2rem;
|
|
17311
|
+
border-bottom: 1px solid var(--pa-border-color);
|
|
17312
|
+
border-right: 1px solid var(--pa-border-color);
|
|
17313
|
+
/* Per-tile bar colour cascade — modifiers below set the var, the fill
|
|
17314
|
+
reads it. Cleaner than per-modifier-per-element rules; host apps can
|
|
17315
|
+
override at the tile level via inline style="--pa-kpi-bar-color: …". */
|
|
17316
|
+
--pa-kpi-bar-color: var(--pa-positive);
|
|
17317
|
+
}
|
|
17318
|
+
.pa-kpi-gauge:nth-child(2n) {
|
|
17319
|
+
border-right: 0;
|
|
17320
|
+
}
|
|
17321
|
+
.pa-kpi-gauge:nth-last-child(-n+2) {
|
|
17322
|
+
border-bottom: 0;
|
|
17323
|
+
}
|
|
17324
|
+
.pa-kpi-gauge--positive {
|
|
17325
|
+
--pa-kpi-bar-color: var(--pa-positive);
|
|
17326
|
+
}
|
|
17327
|
+
.pa-kpi-gauge--warning {
|
|
17328
|
+
--pa-kpi-bar-color: var(--pa-warning);
|
|
17329
|
+
}
|
|
17330
|
+
.pa-kpi-gauge--negative {
|
|
17331
|
+
--pa-kpi-bar-color: var(--pa-negative);
|
|
17332
|
+
}
|
|
17333
|
+
.pa-kpi-gauge--neutral {
|
|
17334
|
+
--pa-kpi-bar-color: color-mix(in srgb, var(--pa-text-color-1) 70%, transparent);
|
|
17335
|
+
}
|
|
17336
|
+
|
|
17337
|
+
@container (max-width: 600px) {
|
|
17338
|
+
.pa-kpi-gauge {
|
|
17339
|
+
border-right: 0;
|
|
17340
|
+
}
|
|
17341
|
+
.pa-kpi-gauge:nth-last-child(-n+2) {
|
|
17342
|
+
border-bottom: 1px solid var(--pa-border-color);
|
|
17343
|
+
}
|
|
17344
|
+
.pa-kpi-gauge:last-child {
|
|
17345
|
+
border-bottom: 0;
|
|
17346
|
+
}
|
|
17347
|
+
}
|
|
17348
|
+
/* ----- Head: label left, value right (baseline-aligned) ----------------- */
|
|
17349
|
+
.pa-kpi-gauge__head {
|
|
17350
|
+
display: flex;
|
|
17351
|
+
justify-content: space-between;
|
|
17352
|
+
align-items: baseline;
|
|
17353
|
+
gap: 1.2rem;
|
|
17354
|
+
margin-bottom: 0.8rem;
|
|
17355
|
+
}
|
|
17356
|
+
|
|
17357
|
+
.pa-kpi-gauge__label {
|
|
17358
|
+
font-family: var(--base-font-family-mono);
|
|
17359
|
+
font-size: 1.4rem;
|
|
17360
|
+
font-weight: 700;
|
|
17361
|
+
letter-spacing: 0.1em;
|
|
17362
|
+
text-transform: uppercase;
|
|
17363
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17364
|
+
}
|
|
17365
|
+
|
|
17366
|
+
.pa-kpi-gauge__value {
|
|
17367
|
+
font-family: var(--base-font-family-mono);
|
|
17368
|
+
line-height: 1;
|
|
17369
|
+
}
|
|
17370
|
+
|
|
17371
|
+
.pa-kpi-gauge__num {
|
|
17372
|
+
font-size: 2.6rem;
|
|
17373
|
+
font-weight: 700;
|
|
17374
|
+
letter-spacing: -0.02em;
|
|
17375
|
+
color: var(--pa-text-color-1);
|
|
17376
|
+
}
|
|
17377
|
+
|
|
17378
|
+
.pa-kpi-gauge__unit {
|
|
17379
|
+
font-size: 1.3rem;
|
|
17380
|
+
font-weight: 500;
|
|
17381
|
+
color: var(--pa-text-secondary);
|
|
17382
|
+
margin-left: 0.2rem;
|
|
17383
|
+
}
|
|
17384
|
+
|
|
17385
|
+
/* ----- Bar (track + sentiment-coloured fill + target tick) -------------- */
|
|
17386
|
+
.pa-kpi-gauge__bar {
|
|
17387
|
+
/* Author-controlled tick position (default 100% — the target sits at the
|
|
17388
|
+
right edge of the bar's "0 → target" scale). Override per-tile via
|
|
17389
|
+
style="--pa-kpi-gauge-tick-pos: 80%" if the bar represents a wider
|
|
17390
|
+
scale where the target sits inside the bar. */
|
|
17391
|
+
--pa-kpi-gauge-tick-pos: 100%;
|
|
17392
|
+
--pa-kpi-gauge-tick-color: var(--pa-text-color-1);
|
|
17393
|
+
position: relative;
|
|
17394
|
+
height: 0.7rem;
|
|
17395
|
+
background: var(--pa-surface-track);
|
|
17396
|
+
margin-bottom: 0.5rem;
|
|
17397
|
+
overflow: visible; /* tick can sit just outside the track */
|
|
17398
|
+
/* Target tick — small bar slightly taller than the track. Centred on
|
|
17399
|
+
--pa-kpi-gauge-tick-pos via the negative margin-left (matches half
|
|
17400
|
+
the tick width). Full opacity so it stays readable on dark themes
|
|
17401
|
+
against bright orange/green fills. */
|
|
17402
|
+
}
|
|
17403
|
+
.pa-kpi-gauge__bar::after {
|
|
17404
|
+
content: "";
|
|
17405
|
+
position: absolute;
|
|
17406
|
+
left: var(--pa-kpi-gauge-tick-pos);
|
|
17407
|
+
margin-left: -0.15rem;
|
|
17408
|
+
top: -0.2rem;
|
|
17409
|
+
bottom: -0.2rem;
|
|
17410
|
+
width: 0.3rem;
|
|
17411
|
+
background: var(--pa-kpi-gauge-tick-color);
|
|
17412
|
+
}
|
|
17413
|
+
|
|
17414
|
+
.pa-kpi-gauge__fill {
|
|
17415
|
+
height: 100%;
|
|
17416
|
+
background: var(--pa-kpi-bar-color);
|
|
17417
|
+
/* Width set inline per tile via style="width: X%". */
|
|
17418
|
+
transition: width 0.3s ease;
|
|
17419
|
+
}
|
|
17420
|
+
|
|
17421
|
+
/* ----- Scale row (0 left · tgt XYZ right) ------------------------------- */
|
|
17422
|
+
.pa-kpi-gauge__scale {
|
|
17423
|
+
display: flex;
|
|
17424
|
+
justify-content: space-between;
|
|
17425
|
+
font-family: var(--base-font-family-mono);
|
|
17426
|
+
font-size: 1.2rem;
|
|
17427
|
+
color: var(--pa-text-tertiary);
|
|
17428
|
+
}
|
|
17429
|
+
|
|
17430
|
+
/* ========================================
|
|
17431
|
+
KPI · Hero + supporting
|
|
17432
|
+
Marketing/exec dashboard pattern: one headline metric on the left (huge
|
|
17433
|
+
container-query-relative value, inline meta row, big filled-area
|
|
17434
|
+
sparkline), and a vertical rail of compact supporting tiles on the
|
|
17435
|
+
right. Container query collapses to single column on narrow cards.
|
|
17436
|
+
======================================== */
|
|
17437
|
+
.pa-kpi-hero-list {
|
|
17438
|
+
container-type: inline-size;
|
|
17439
|
+
}
|
|
17440
|
+
|
|
17441
|
+
.pa-kpi-hero-list__body {
|
|
17442
|
+
padding: 1.6rem;
|
|
17443
|
+
}
|
|
17444
|
+
|
|
17445
|
+
/* ----- Layout: hero left, rail right ------------------------------------ */
|
|
17446
|
+
.pa-kpi-hero-list__layout {
|
|
17447
|
+
display: grid;
|
|
17448
|
+
grid-template-columns: 1fr 1fr;
|
|
17449
|
+
gap: 1.4rem;
|
|
17450
|
+
}
|
|
17451
|
+
|
|
17452
|
+
@container (max-width: 700px) {
|
|
17453
|
+
.pa-kpi-hero-list__layout {
|
|
17454
|
+
grid-template-columns: 1fr;
|
|
17455
|
+
}
|
|
17456
|
+
}
|
|
17457
|
+
.pa-kpi-hero-list__rail {
|
|
17458
|
+
display: flex;
|
|
17459
|
+
flex-direction: column;
|
|
17460
|
+
gap: 1rem;
|
|
17461
|
+
}
|
|
17462
|
+
|
|
17463
|
+
/* ----- HERO panel (label · big value · meta row · sparkline) ------------ */
|
|
17464
|
+
.pa-kpi-hero-main {
|
|
17465
|
+
position: relative;
|
|
17466
|
+
padding: 1.8rem 2rem;
|
|
17467
|
+
border: 1px solid var(--pa-border-color);
|
|
17468
|
+
display: flex;
|
|
17469
|
+
flex-direction: column;
|
|
17470
|
+
gap: 0.6rem;
|
|
17471
|
+
/* Sentiment cascade — chart and delta inherit via currentColor. */
|
|
17472
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17473
|
+
}
|
|
17474
|
+
.pa-kpi-hero-main--positive {
|
|
17475
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17476
|
+
}
|
|
17477
|
+
.pa-kpi-hero-main--negative {
|
|
17478
|
+
--pa-kpi-accent: var(--pa-negative);
|
|
17479
|
+
}
|
|
17480
|
+
.pa-kpi-hero-main--neutral {
|
|
17481
|
+
--pa-kpi-accent: var(--pa-neutral);
|
|
17482
|
+
}
|
|
17483
|
+
.pa-kpi-hero-main--up-strong {
|
|
17484
|
+
--pa-kpi-accent: var(--pa-very-positive);
|
|
17485
|
+
}
|
|
17486
|
+
|
|
17487
|
+
.pa-kpi-hero-main__label {
|
|
17488
|
+
font-family: var(--base-font-family-mono);
|
|
17489
|
+
font-size: 1.4rem;
|
|
17490
|
+
font-weight: 700;
|
|
17491
|
+
letter-spacing: 0.1em;
|
|
17492
|
+
text-transform: uppercase;
|
|
17493
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17494
|
+
}
|
|
17495
|
+
|
|
17496
|
+
.pa-kpi-hero-main__value {
|
|
17497
|
+
display: inline-flex;
|
|
17498
|
+
align-items: baseline;
|
|
17499
|
+
font-family: var(--base-font-family-mono);
|
|
17500
|
+
line-height: 1;
|
|
17501
|
+
margin: 0.4rem 0 0.6rem;
|
|
17502
|
+
}
|
|
17503
|
+
|
|
17504
|
+
.pa-kpi-hero-main__num {
|
|
17505
|
+
/* Container-query-relative: scales with the hero panel's width.
|
|
17506
|
+
Floor keeps it readable in narrow page-grid cards. */
|
|
17507
|
+
font-size: clamp(4rem, 17cqi, 7rem);
|
|
17508
|
+
font-weight: 700;
|
|
17509
|
+
letter-spacing: -0.02em;
|
|
17510
|
+
color: var(--pa-text-color-1);
|
|
17511
|
+
}
|
|
17512
|
+
|
|
17513
|
+
.pa-kpi-hero-main__unit {
|
|
17514
|
+
font-size: clamp(1.8rem, 8cqi, 3rem);
|
|
17515
|
+
font-weight: 500;
|
|
17516
|
+
color: var(--pa-text-secondary);
|
|
17517
|
+
margin: 0 0.1rem;
|
|
17518
|
+
}
|
|
17519
|
+
|
|
17520
|
+
/* Meta row: inline delta + period text + target on one baseline. */
|
|
17521
|
+
.pa-kpi-hero-main__meta {
|
|
17522
|
+
display: grid;
|
|
17523
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
17524
|
+
align-items: baseline;
|
|
17525
|
+
gap: 0.4rem 1.4rem;
|
|
17526
|
+
font-family: var(--base-font-family-mono);
|
|
17527
|
+
font-size: 1.3rem;
|
|
17528
|
+
}
|
|
17529
|
+
|
|
17530
|
+
.pa-kpi-hero-main__delta {
|
|
17531
|
+
display: inline-flex;
|
|
17532
|
+
align-items: baseline;
|
|
17533
|
+
gap: 0.4rem;
|
|
17534
|
+
color: var(--pa-kpi-accent);
|
|
17535
|
+
font-weight: 700;
|
|
17536
|
+
font-size: 1.5rem;
|
|
17537
|
+
line-height: 1.2;
|
|
17538
|
+
}
|
|
17539
|
+
|
|
17540
|
+
.pa-kpi-hero-main__period {
|
|
17541
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17542
|
+
line-height: 1.3;
|
|
17543
|
+
}
|
|
17544
|
+
|
|
17545
|
+
.pa-kpi-hero-main__target {
|
|
17546
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
17547
|
+
text-align: end;
|
|
17548
|
+
}
|
|
17549
|
+
|
|
17550
|
+
/* Hero sparkline — chart container fills extra vertical space (when the
|
|
17551
|
+
rail forces a tall row); SVG inside stays at fixed pixel height so the
|
|
17552
|
+
line shape is never distorted along Y. The SVG uses
|
|
17553
|
+
preserveAspectRatio="none", so any element that should keep its shape
|
|
17554
|
+
needs to live outside that scaling or have fixed pixel dimensions. */
|
|
17555
|
+
.pa-kpi-hero-main__chart {
|
|
17556
|
+
flex: 1 1 10rem;
|
|
17557
|
+
min-height: 10rem;
|
|
17558
|
+
margin-top: 0.6rem;
|
|
17559
|
+
color: var(--pa-kpi-accent);
|
|
17560
|
+
display: flex;
|
|
17561
|
+
align-items: flex-end; /* SVG wrap pinned to bottom */
|
|
17562
|
+
}
|
|
17563
|
+
.pa-kpi-hero-main__chart polyline {
|
|
17564
|
+
fill: none;
|
|
17565
|
+
stroke: currentColor;
|
|
17566
|
+
stroke-width: var(--pa-chart-trendline-stroke);
|
|
17567
|
+
stroke-linecap: round;
|
|
17568
|
+
stroke-linejoin: round;
|
|
17569
|
+
}
|
|
17570
|
+
.pa-kpi-hero-main__chart polygon {
|
|
17571
|
+
fill: currentColor;
|
|
17572
|
+
fill-opacity: 0.18;
|
|
17573
|
+
stroke: none;
|
|
17574
|
+
}
|
|
17575
|
+
|
|
17576
|
+
.pa-kpi-hero-main__chart-svg {
|
|
17577
|
+
position: relative;
|
|
17578
|
+
display: block;
|
|
17579
|
+
width: 100%;
|
|
17580
|
+
height: var(--pa-chart-trendline-height);
|
|
17581
|
+
}
|
|
17582
|
+
.pa-kpi-hero-main__chart-svg svg {
|
|
17583
|
+
display: block;
|
|
17584
|
+
width: 100%;
|
|
17585
|
+
height: 100%;
|
|
17586
|
+
overflow: visible;
|
|
17587
|
+
}
|
|
17588
|
+
|
|
17589
|
+
/* ----- SIDE rail tile (2×2 grid, value spans both rows on right) -------- */
|
|
17590
|
+
.pa-kpi-hero-side {
|
|
17591
|
+
position: relative;
|
|
17592
|
+
padding: 1.2rem 1.4rem;
|
|
17593
|
+
border: 1px solid var(--pa-border-color);
|
|
17594
|
+
display: grid;
|
|
17595
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
17596
|
+
grid-template-areas: "label value" "delta value";
|
|
17597
|
+
column-gap: 1.2rem;
|
|
17598
|
+
row-gap: 0.4rem;
|
|
17599
|
+
align-items: center;
|
|
17600
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17601
|
+
}
|
|
17602
|
+
.pa-kpi-hero-side--positive {
|
|
17603
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17604
|
+
}
|
|
17605
|
+
.pa-kpi-hero-side--negative {
|
|
17606
|
+
--pa-kpi-accent: var(--pa-negative);
|
|
17607
|
+
}
|
|
17608
|
+
.pa-kpi-hero-side--neutral {
|
|
17609
|
+
--pa-kpi-accent: var(--pa-neutral);
|
|
17610
|
+
}
|
|
17611
|
+
.pa-kpi-hero-side--up-strong {
|
|
17612
|
+
--pa-kpi-accent: var(--pa-very-positive);
|
|
17613
|
+
}
|
|
17614
|
+
|
|
17615
|
+
.pa-kpi-hero-side__label {
|
|
17616
|
+
grid-area: label;
|
|
17617
|
+
align-self: end; /* tucks against the vertically-centred value */
|
|
17618
|
+
font-family: var(--base-font-family-mono);
|
|
17619
|
+
font-size: 1.3rem;
|
|
17620
|
+
font-weight: 700;
|
|
17621
|
+
letter-spacing: 0.1em;
|
|
17622
|
+
text-transform: uppercase;
|
|
17623
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17624
|
+
line-height: 1.25;
|
|
17625
|
+
}
|
|
17626
|
+
|
|
17627
|
+
.pa-kpi-hero-side__value {
|
|
17628
|
+
grid-area: value;
|
|
17629
|
+
align-self: center;
|
|
17630
|
+
font-family: var(--base-font-family-mono);
|
|
17631
|
+
line-height: 1;
|
|
17632
|
+
white-space: nowrap;
|
|
17633
|
+
display: inline-flex;
|
|
17634
|
+
align-items: baseline;
|
|
17635
|
+
}
|
|
17636
|
+
|
|
17637
|
+
.pa-kpi-hero-side__num {
|
|
17638
|
+
font-size: 2.4rem;
|
|
17639
|
+
font-weight: 700;
|
|
17640
|
+
letter-spacing: -0.02em;
|
|
17641
|
+
color: var(--pa-text-color-1);
|
|
17642
|
+
}
|
|
17643
|
+
|
|
17644
|
+
.pa-kpi-hero-side__unit {
|
|
17645
|
+
font-size: 1.5rem;
|
|
17646
|
+
font-weight: 500;
|
|
17647
|
+
color: var(--pa-text-secondary);
|
|
17648
|
+
margin: 0 0.35rem;
|
|
17649
|
+
}
|
|
17650
|
+
|
|
17651
|
+
.pa-kpi-hero-side__delta {
|
|
17652
|
+
grid-area: delta;
|
|
17653
|
+
align-self: start;
|
|
17654
|
+
font-family: var(--base-font-family-mono);
|
|
17655
|
+
font-size: 1.2rem;
|
|
17656
|
+
font-weight: 600;
|
|
17657
|
+
color: var(--pa-kpi-accent);
|
|
17658
|
+
}
|
|
17659
|
+
|
|
17660
|
+
/* ========================================
|
|
17661
|
+
KPI · Bento layout
|
|
17662
|
+
Magazine-style asymmetric tile sizing with sparklines as soft background
|
|
17663
|
+
fills behind the values. 6 tiles arranged on a 6-col × 3-row grid
|
|
17664
|
+
(hero left-half × 2 rows, two stacked right-half × 2 rows, three equal
|
|
17665
|
+
tiles bottom row). Tile placement by source order via :nth-child.
|
|
17666
|
+
======================================== */
|
|
17667
|
+
.pa-kpi-bento {
|
|
17668
|
+
container-type: inline-size;
|
|
17669
|
+
}
|
|
17670
|
+
|
|
17671
|
+
.pa-kpi-bento__body {
|
|
17672
|
+
padding: 1.6rem;
|
|
17673
|
+
}
|
|
17674
|
+
|
|
17675
|
+
/* ----- Bento grid ------------------------------------------------------- */
|
|
17676
|
+
.pa-kpi-bento__grid {
|
|
17677
|
+
display: grid;
|
|
17678
|
+
grid-template-columns: repeat(6, 1fr);
|
|
17679
|
+
grid-template-rows: 12rem 12rem 12rem;
|
|
17680
|
+
grid-template-areas: "hero hero hero a a a" "hero hero hero b b b" "c c d d e e";
|
|
17681
|
+
gap: 1rem;
|
|
17682
|
+
}
|
|
17683
|
+
.pa-kpi-bento__grid > :nth-child(1) {
|
|
17684
|
+
grid-area: hero;
|
|
17685
|
+
}
|
|
17686
|
+
.pa-kpi-bento__grid > :nth-child(2) {
|
|
17687
|
+
grid-area: a;
|
|
17688
|
+
}
|
|
17689
|
+
.pa-kpi-bento__grid > :nth-child(3) {
|
|
17690
|
+
grid-area: b;
|
|
17691
|
+
}
|
|
17692
|
+
.pa-kpi-bento__grid > :nth-child(4) {
|
|
17693
|
+
grid-area: c;
|
|
17694
|
+
}
|
|
17695
|
+
.pa-kpi-bento__grid > :nth-child(5) {
|
|
17696
|
+
grid-area: d;
|
|
17697
|
+
}
|
|
17698
|
+
.pa-kpi-bento__grid > :nth-child(6) {
|
|
17699
|
+
grid-area: e;
|
|
17700
|
+
}
|
|
17701
|
+
|
|
17702
|
+
/* Narrow card → stack everything single column. Hero modifier still
|
|
17703
|
+
bumps the value font-size so it reads as the headline. */
|
|
17704
|
+
@container (max-width: 700px) {
|
|
17705
|
+
.pa-kpi-bento__grid {
|
|
17706
|
+
grid-template-columns: 1fr;
|
|
17707
|
+
grid-template-rows: auto;
|
|
17708
|
+
grid-template-areas: none;
|
|
17709
|
+
gap: 0.8rem;
|
|
17710
|
+
}
|
|
17711
|
+
.pa-kpi-bento__grid > :nth-child(n) {
|
|
17712
|
+
grid-area: auto;
|
|
17713
|
+
}
|
|
17714
|
+
.pa-kpi-bento-tile {
|
|
17715
|
+
min-height: 10rem;
|
|
17716
|
+
}
|
|
17717
|
+
.pa-kpi-bento-tile--hero {
|
|
17718
|
+
min-height: 14rem;
|
|
17719
|
+
}
|
|
17720
|
+
}
|
|
17721
|
+
/* ----- Tile (per-KPI bento cell) ---------------------------------------- */
|
|
17722
|
+
.pa-kpi-bento-tile {
|
|
17723
|
+
/* Per-tile inline-size container so the value font-size scales with
|
|
17724
|
+
*this* tile's width via cqi (not the outer card's width). The hero
|
|
17725
|
+
and the smaller bottom tiles each scale to their own column. */
|
|
17726
|
+
container-type: inline-size;
|
|
17727
|
+
position: relative;
|
|
17728
|
+
overflow: hidden;
|
|
17729
|
+
padding: 1.3rem 1.5rem;
|
|
17730
|
+
border: 1px solid var(--pa-border-color);
|
|
17731
|
+
background: var(--pa-card-bg);
|
|
17732
|
+
display: grid;
|
|
17733
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
17734
|
+
grid-template-rows: auto 1fr auto;
|
|
17735
|
+
grid-template-areas: "label delta" ". . " "value value";
|
|
17736
|
+
gap: 0.4rem 1rem;
|
|
17737
|
+
/* Sparkline + delta sentiment cascade via currentColor. */
|
|
17738
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17739
|
+
}
|
|
17740
|
+
.pa-kpi-bento-tile--positive {
|
|
17741
|
+
--pa-kpi-accent: var(--pa-positive);
|
|
17742
|
+
}
|
|
17743
|
+
.pa-kpi-bento-tile--negative {
|
|
17744
|
+
--pa-kpi-accent: var(--pa-negative);
|
|
17745
|
+
}
|
|
17746
|
+
.pa-kpi-bento-tile--neutral {
|
|
17747
|
+
--pa-kpi-accent: var(--pa-neutral);
|
|
17748
|
+
}
|
|
17749
|
+
.pa-kpi-bento-tile--up-strong {
|
|
17750
|
+
--pa-kpi-accent: var(--pa-very-positive);
|
|
17751
|
+
}
|
|
17752
|
+
.pa-kpi-bento-tile--down-strong {
|
|
17753
|
+
--pa-kpi-accent: var(--pa-very-negative);
|
|
17754
|
+
}
|
|
17755
|
+
.pa-kpi-bento-tile--hero {
|
|
17756
|
+
padding: 1.6rem 1.8rem;
|
|
17757
|
+
}
|
|
17758
|
+
.pa-kpi-bento-tile--hero .pa-kpi-bento-tile__num {
|
|
17759
|
+
font-size: clamp(3.6rem, 22cqi, 7rem);
|
|
17760
|
+
}
|
|
17761
|
+
.pa-kpi-bento-tile--hero .pa-kpi-bento-tile__unit {
|
|
17762
|
+
font-size: clamp(1.6rem, 9cqi, 2.6rem);
|
|
17763
|
+
}
|
|
17764
|
+
.pa-kpi-bento-tile--hero .pa-kpi-bento-tile__label,
|
|
17765
|
+
.pa-kpi-bento-tile--hero .pa-kpi-bento-tile__delta {
|
|
17766
|
+
font-size: 1.4rem;
|
|
17767
|
+
}
|
|
17768
|
+
.pa-kpi-bento-tile--hero .pa-kpi-bento-tile__chart {
|
|
17769
|
+
height: 70%;
|
|
17770
|
+
}
|
|
17771
|
+
|
|
17772
|
+
/* ----- Top row: label + delta, both layered over the chart -------------- */
|
|
17773
|
+
.pa-kpi-bento-tile__label {
|
|
17774
|
+
grid-area: label;
|
|
17775
|
+
font-family: var(--base-font-family-mono);
|
|
17776
|
+
font-size: 1.3rem;
|
|
17777
|
+
font-weight: 700;
|
|
17778
|
+
letter-spacing: 0.1em;
|
|
17779
|
+
text-transform: uppercase;
|
|
17780
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 60%, transparent);
|
|
17781
|
+
z-index: 1;
|
|
17782
|
+
line-height: 1.2;
|
|
17783
|
+
}
|
|
17784
|
+
|
|
17785
|
+
.pa-kpi-bento-tile__delta {
|
|
17786
|
+
grid-area: delta;
|
|
17787
|
+
font-family: var(--base-font-family-mono);
|
|
17788
|
+
font-size: 1.3rem;
|
|
17789
|
+
font-weight: 700;
|
|
17790
|
+
color: var(--pa-kpi-accent);
|
|
17791
|
+
z-index: 1;
|
|
17792
|
+
align-self: start;
|
|
17793
|
+
line-height: 1.2;
|
|
17794
|
+
}
|
|
17795
|
+
|
|
17796
|
+
/* ----- Value (bottom of grid, layered over chart) ----------------------- */
|
|
17797
|
+
.pa-kpi-bento-tile__value {
|
|
17798
|
+
grid-area: value;
|
|
17799
|
+
align-self: end;
|
|
17800
|
+
position: relative;
|
|
17801
|
+
z-index: 1;
|
|
17802
|
+
font-family: var(--base-font-family-mono);
|
|
17803
|
+
display: inline-flex;
|
|
17804
|
+
align-items: baseline;
|
|
17805
|
+
line-height: 1;
|
|
17806
|
+
white-space: nowrap;
|
|
17807
|
+
}
|
|
17808
|
+
|
|
17809
|
+
.pa-kpi-bento-tile__num {
|
|
17810
|
+
font-size: clamp(2rem, 14cqi, 3.2rem);
|
|
17811
|
+
font-weight: 700;
|
|
17812
|
+
letter-spacing: -0.02em;
|
|
17813
|
+
color: var(--pa-text-color-1);
|
|
17814
|
+
}
|
|
17815
|
+
|
|
17816
|
+
.pa-kpi-bento-tile__unit {
|
|
17817
|
+
font-size: clamp(1.2rem, 7cqi, 1.6rem);
|
|
17818
|
+
font-weight: 500;
|
|
17819
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
17820
|
+
margin: 0 0.3rem;
|
|
17821
|
+
}
|
|
17822
|
+
|
|
17823
|
+
/* ----- Sparkline background ---------------------------------------------
|
|
17824
|
+
Absolutely positioned, fills the bottom 65% of the tile. The value sits
|
|
17825
|
+
over it (z-index: 1 above). The line/area read through behind the
|
|
17826
|
+
digits at lower opacity so the value remains the focal point. SVG is
|
|
17827
|
+
nested in a fixed-height wrapper so taller tiles don't distort the line
|
|
17828
|
+
shape (preserveAspectRatio="none" would otherwise stretch the Y axis). */
|
|
17829
|
+
.pa-kpi-bento-tile__chart {
|
|
17830
|
+
position: absolute;
|
|
17831
|
+
left: 0;
|
|
17832
|
+
right: 0;
|
|
17833
|
+
bottom: 0;
|
|
17834
|
+
height: 65%;
|
|
17835
|
+
pointer-events: none;
|
|
17836
|
+
color: var(--pa-kpi-accent);
|
|
17837
|
+
z-index: 0;
|
|
17838
|
+
display: flex;
|
|
17839
|
+
align-items: flex-end;
|
|
17840
|
+
}
|
|
17841
|
+
.pa-kpi-bento-tile__chart svg {
|
|
17842
|
+
display: block;
|
|
17843
|
+
width: 100%;
|
|
17844
|
+
height: 100%;
|
|
17845
|
+
overflow: visible;
|
|
17846
|
+
}
|
|
17847
|
+
.pa-kpi-bento-tile__chart polyline {
|
|
17848
|
+
fill: none;
|
|
17849
|
+
stroke: currentColor;
|
|
17850
|
+
stroke-opacity: 0.55;
|
|
17851
|
+
stroke-width: var(--pa-chart-trendline-stroke);
|
|
17852
|
+
stroke-linecap: round;
|
|
17853
|
+
stroke-linejoin: round;
|
|
17854
|
+
}
|
|
17855
|
+
.pa-kpi-bento-tile__chart polygon {
|
|
17856
|
+
fill: currentColor;
|
|
17857
|
+
fill-opacity: 0.1;
|
|
17858
|
+
stroke: none;
|
|
17859
|
+
}
|
|
17860
|
+
|
|
17861
|
+
.pa-kpi-bento-tile__chart-svg {
|
|
17862
|
+
position: relative;
|
|
17863
|
+
display: block;
|
|
17864
|
+
width: 100%;
|
|
17865
|
+
height: var(--pa-chart-trendline-height);
|
|
17866
|
+
}
|
|
17867
|
+
|
|
17868
|
+
/* ========================================
|
|
17869
|
+
KPI · Numeric strip (densest)
|
|
17870
|
+
Tabular "spreadsheet-style" table card with metric/now/prev/Δ%/vs target
|
|
17871
|
+
columns — most data per pixel, no chart chrome. Each row is its own
|
|
17872
|
+
grid sharing the same column template so cells align across rows
|
|
17873
|
+
without needing subgrid. Wide-only by design — no responsive collapse;
|
|
17874
|
+
narrow placements should use Comparison gauges instead.
|
|
17875
|
+
======================================== */
|
|
17876
|
+
.pa-kpi-strip__body {
|
|
17877
|
+
padding: 0;
|
|
17878
|
+
}
|
|
17879
|
+
|
|
17880
|
+
/* ----- Table layout ----------------------------------------------------- */
|
|
17881
|
+
.pa-kpi-strip__row,
|
|
17882
|
+
.pa-kpi-strip__head-row {
|
|
17883
|
+
display: grid;
|
|
17884
|
+
grid-template-columns: minmax(0, 2fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.6fr); /* target (bar + pct stacked) */
|
|
17885
|
+
column-gap: 1.6rem;
|
|
17886
|
+
align-items: center;
|
|
17887
|
+
position: relative;
|
|
17888
|
+
padding: 1.1rem 1.6rem;
|
|
17889
|
+
}
|
|
17890
|
+
|
|
17891
|
+
/* Divider between data rows / between head and first row only. */
|
|
17892
|
+
.pa-kpi-strip__row + .pa-kpi-strip__row,
|
|
17893
|
+
.pa-kpi-strip__head-row + .pa-kpi-strip__row {
|
|
17894
|
+
border-top: 1px solid var(--pa-border-color);
|
|
17895
|
+
}
|
|
17896
|
+
|
|
17897
|
+
/* Hover host: subtle row highlight so the cursor-anchored popover has a
|
|
17898
|
+
clear "this row" anchor. */
|
|
17899
|
+
.pa-kpi-strip__row:hover {
|
|
17900
|
+
background: var(--pa-surface-hover);
|
|
17901
|
+
}
|
|
17902
|
+
|
|
17903
|
+
/* ----- Header cells (uppercase mono captions) --------------------------- */
|
|
17904
|
+
.pa-kpi-strip__head {
|
|
17905
|
+
font-family: var(--base-font-family-mono);
|
|
17906
|
+
font-size: 1.1rem;
|
|
17907
|
+
font-weight: 700;
|
|
17908
|
+
letter-spacing: 0.1em;
|
|
17909
|
+
text-transform: uppercase;
|
|
17910
|
+
color: var(--pa-text-tertiary);
|
|
17911
|
+
}
|
|
17912
|
+
.pa-kpi-strip__head--num {
|
|
17913
|
+
text-align: end;
|
|
17914
|
+
}
|
|
17915
|
+
|
|
17916
|
+
/* ----- Metric label ----------------------------------------------------- */
|
|
17917
|
+
.pa-kpi-strip__metric {
|
|
17918
|
+
font-family: var(--base-font-family-mono);
|
|
17919
|
+
font-size: 1.4rem;
|
|
17920
|
+
font-weight: 700;
|
|
17921
|
+
letter-spacing: 0.08em;
|
|
17922
|
+
text-transform: uppercase;
|
|
17923
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 78%, transparent);
|
|
17924
|
+
line-height: 1.2;
|
|
17925
|
+
}
|
|
17926
|
+
|
|
17927
|
+
/* ----- NOW (focal value) ------------------------------------------------ */
|
|
17928
|
+
.pa-kpi-strip__now {
|
|
17929
|
+
font-family: var(--base-font-family-mono);
|
|
17930
|
+
font-size: 1.8rem;
|
|
17931
|
+
font-weight: 700;
|
|
17932
|
+
text-align: end;
|
|
17933
|
+
display: flex;
|
|
17934
|
+
align-items: baseline;
|
|
17935
|
+
justify-content: flex-end;
|
|
17936
|
+
color: var(--pa-text-color-1);
|
|
17937
|
+
white-space: nowrap;
|
|
17938
|
+
line-height: 1;
|
|
17939
|
+
}
|
|
17940
|
+
.pa-kpi-strip__now .pa-kpi-strip__num {
|
|
17941
|
+
font-weight: 700;
|
|
17942
|
+
}
|
|
17943
|
+
.pa-kpi-strip__now .pa-kpi-strip__unit {
|
|
17944
|
+
font-size: 1.1rem;
|
|
17945
|
+
font-weight: 500;
|
|
17946
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
17947
|
+
margin: 0 0.2rem;
|
|
17948
|
+
}
|
|
17949
|
+
|
|
17950
|
+
/* ----- PREV (reference data, low contrast) ------------------------------ */
|
|
17951
|
+
.pa-kpi-strip__prev {
|
|
17952
|
+
font-family: var(--base-font-family-mono);
|
|
17953
|
+
font-size: 1.5rem;
|
|
17954
|
+
font-weight: 500;
|
|
17955
|
+
color: var(--pa-text-tertiary);
|
|
17956
|
+
text-align: end;
|
|
17957
|
+
white-space: nowrap;
|
|
17958
|
+
}
|
|
17959
|
+
|
|
17960
|
+
/* ----- Δ% (sentiment-coloured) ------------------------------------------ */
|
|
17961
|
+
.pa-kpi-strip__delta {
|
|
17962
|
+
font-family: var(--base-font-family-mono);
|
|
17963
|
+
font-size: 1.5rem;
|
|
17964
|
+
font-weight: 700;
|
|
17965
|
+
text-align: end;
|
|
17966
|
+
white-space: nowrap;
|
|
17967
|
+
color: var(--pa-positive);
|
|
17968
|
+
}
|
|
17969
|
+
.pa-kpi-strip__delta--positive {
|
|
17970
|
+
color: var(--pa-positive);
|
|
17971
|
+
}
|
|
17972
|
+
.pa-kpi-strip__delta--negative {
|
|
17973
|
+
color: var(--pa-negative);
|
|
17974
|
+
}
|
|
17975
|
+
.pa-kpi-strip__delta--neutral {
|
|
17976
|
+
color: var(--pa-neutral);
|
|
17977
|
+
}
|
|
17978
|
+
.pa-kpi-strip__delta--up-strong {
|
|
17979
|
+
color: var(--pa-very-positive);
|
|
17980
|
+
}
|
|
17981
|
+
.pa-kpi-strip__delta--down-strong {
|
|
17982
|
+
color: var(--pa-very-negative);
|
|
17983
|
+
}
|
|
17984
|
+
|
|
17985
|
+
/* ----- VS TARGET (bar + pct stacked, capped at 100% visual) -------------
|
|
17986
|
+
Theme-neutral grey fill — the pct value itself signals overshoot /
|
|
17987
|
+
undershoot ("97" vs "108" vs "54") so colour reinforcement isn't
|
|
17988
|
+
needed. The bar visually caps at 100% via overflow: hidden so an
|
|
17989
|
+
over-target metric reads as "fully filled" rather than overflowing. */
|
|
17990
|
+
.pa-kpi-strip__target {
|
|
17991
|
+
display: flex;
|
|
17992
|
+
flex-direction: column;
|
|
17993
|
+
gap: 0.35rem;
|
|
17994
|
+
}
|
|
17995
|
+
|
|
17996
|
+
.pa-kpi-strip__bar {
|
|
17997
|
+
position: relative;
|
|
17998
|
+
height: 0.5rem;
|
|
17999
|
+
background: var(--pa-surface-track);
|
|
18000
|
+
overflow: hidden;
|
|
18001
|
+
border-radius: 0.1rem;
|
|
18002
|
+
}
|
|
18003
|
+
|
|
18004
|
+
.pa-kpi-strip__fill {
|
|
18005
|
+
position: absolute;
|
|
18006
|
+
top: 0;
|
|
18007
|
+
left: 0;
|
|
18008
|
+
bottom: 0;
|
|
18009
|
+
background: color-mix(in srgb, var(--pa-text-color-1) 40%, transparent);
|
|
18010
|
+
}
|
|
18011
|
+
|
|
18012
|
+
.pa-kpi-strip__bar-pct {
|
|
18013
|
+
font-family: var(--base-font-family-mono);
|
|
18014
|
+
font-size: 1.05rem;
|
|
18015
|
+
font-weight: 600;
|
|
18016
|
+
color: var(--pa-text-secondary);
|
|
18017
|
+
align-self: flex-end;
|
|
18018
|
+
line-height: 1;
|
|
18019
|
+
}
|
|
18020
|
+
|
|
18021
|
+
/* ----- --no-prev: 4-col layout (metric / now / Δ% / target) -------------
|
|
18022
|
+
Useful for narrow placements; markup omits the prev cells. */
|
|
18023
|
+
.pa-kpi-strip--no-prev .pa-kpi-strip__row,
|
|
18024
|
+
.pa-kpi-strip--no-prev .pa-kpi-strip__head-row {
|
|
18025
|
+
grid-template-columns: minmax(0, 2fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.6fr);
|
|
18026
|
+
}
|
|
18027
|
+
|
|
18028
|
+
/* ========================================
|
|
18029
|
+
KPI · Editorial minimal
|
|
18030
|
+
Six KPIs in a 2×3 / 3×2 grid with hairline rules between cells,
|
|
18031
|
+
generous space, and an extra-light-weight number as the focal point per
|
|
18032
|
+
tile. No charts, no pills — the design's whole identity is the thin
|
|
18033
|
+
numeral. Renders as a table card (zero card-body padding) so hairlines
|
|
18034
|
+
go edge-to-edge.
|
|
18035
|
+
======================================== */
|
|
18036
|
+
.pa-kpi-edit__body {
|
|
18037
|
+
padding: 0;
|
|
18038
|
+
}
|
|
18039
|
+
|
|
18040
|
+
/* ----- Grid + hairline rules -------------------------------------------
|
|
18041
|
+
`gap: 1px` over `background: var(--pa-border-color)` with each tile
|
|
18042
|
+
painting `background: var(--pa-card-bg)` on top. Only the gap shows
|
|
18043
|
+
through, giving perfect single-pixel hairlines on every interior
|
|
18044
|
+
boundary (vertical and horizontal) for free, regardless of column
|
|
18045
|
+
count. The card's outer border supplies the perimeter. */
|
|
18046
|
+
.pa-kpi-edit__grid {
|
|
18047
|
+
display: grid;
|
|
18048
|
+
grid-template-columns: repeat(3, 1fr);
|
|
18049
|
+
gap: 1px;
|
|
18050
|
+
background: var(--pa-border-color);
|
|
18051
|
+
container-type: inline-size;
|
|
18052
|
+
}
|
|
18053
|
+
|
|
18054
|
+
@container (max-width: 640px) {
|
|
18055
|
+
.pa-kpi-edit__grid {
|
|
18056
|
+
grid-template-columns: repeat(2, 1fr);
|
|
18057
|
+
}
|
|
18058
|
+
}
|
|
18059
|
+
@container (max-width: 360px) {
|
|
18060
|
+
.pa-kpi-edit__grid {
|
|
18061
|
+
grid-template-columns: 1fr;
|
|
18062
|
+
}
|
|
18063
|
+
}
|
|
18064
|
+
/* Modifier: force 2-col regardless of card width. For placements wanting
|
|
18065
|
+
a deterministic 2×N layout (e.g. 4 tiles as clean 2×2) instead of
|
|
18066
|
+
relying on the container query to land in the right bucket. */
|
|
18067
|
+
.pa-kpi-edit__grid--2col {
|
|
18068
|
+
grid-template-columns: repeat(2, 1fr);
|
|
18069
|
+
}
|
|
18070
|
+
|
|
18071
|
+
/* ----- Tile (editorial spacing leans on the 2.4rem padding) ------------- */
|
|
18072
|
+
.pa-kpi-edit__tile {
|
|
18073
|
+
background: var(--pa-card-bg);
|
|
18074
|
+
padding: 2.4rem 2rem;
|
|
18075
|
+
display: flex;
|
|
18076
|
+
flex-direction: column;
|
|
18077
|
+
gap: 1.2rem;
|
|
18078
|
+
position: relative;
|
|
18079
|
+
min-width: 0;
|
|
18080
|
+
/* Hover host: faint wash so the cursor-anchored popover has a clear
|
|
18081
|
+
"this tile" anchor. */
|
|
18082
|
+
}
|
|
18083
|
+
.pa-kpi-edit__tile:hover {
|
|
18084
|
+
background: color-mix(in srgb, var(--pa-text-color-1) 4%, var(--pa-card-bg));
|
|
18085
|
+
}
|
|
18086
|
+
|
|
18087
|
+
/* ----- Label (uppercase mono caption) ----------------------------------- */
|
|
18088
|
+
.pa-kpi-edit__label {
|
|
18089
|
+
font-family: var(--base-font-family-mono);
|
|
18090
|
+
font-size: 1.2rem;
|
|
18091
|
+
font-weight: 600;
|
|
18092
|
+
letter-spacing: 0.12em;
|
|
18093
|
+
text-transform: uppercase;
|
|
18094
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
18095
|
+
line-height: 1.3;
|
|
18096
|
+
}
|
|
18097
|
+
|
|
18098
|
+
/* ----- Value (the editorial signature) ---------------------------------
|
|
18099
|
+
- NOT mono — mono fonts rarely have a true 200 weight; using the body
|
|
18100
|
+
sans gives proper thin glyphs that read as "editorial" rather than
|
|
18101
|
+
"monospace at low contrast".
|
|
18102
|
+
- font-weight: 200 (extra-light). 300 was tested first but didn't read
|
|
18103
|
+
distinctly enough as "light" against the body's 400 default.
|
|
18104
|
+
- clamp() lets the number shrink in narrow 25% page-grid cells without
|
|
18105
|
+
manual breakpoints. */
|
|
18106
|
+
.pa-kpi-edit__value {
|
|
18107
|
+
font-family: var(--base-font-family);
|
|
18108
|
+
font-size: clamp(3.2rem, 18cqi, 5.6rem);
|
|
18109
|
+
font-weight: 200;
|
|
18110
|
+
letter-spacing: -0.02em;
|
|
18111
|
+
line-height: 1;
|
|
18112
|
+
color: var(--pa-text-color-1);
|
|
18113
|
+
display: flex;
|
|
18114
|
+
align-items: baseline;
|
|
18115
|
+
gap: 0.2rem;
|
|
18116
|
+
flex-wrap: wrap;
|
|
18117
|
+
}
|
|
18118
|
+
|
|
18119
|
+
.pa-kpi-edit__num {
|
|
18120
|
+
font-weight: 200;
|
|
18121
|
+
font-variant-numeric: tabular-nums;
|
|
18122
|
+
}
|
|
18123
|
+
|
|
18124
|
+
.pa-kpi-edit__unit {
|
|
18125
|
+
font-size: 0.4em;
|
|
18126
|
+
font-weight: 300;
|
|
18127
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
18128
|
+
letter-spacing: 0;
|
|
18129
|
+
}
|
|
18130
|
+
|
|
18131
|
+
/* ----- Meta row (delta + tgt) ------------------------------------------ */
|
|
18132
|
+
.pa-kpi-edit__meta {
|
|
18133
|
+
display: flex;
|
|
18134
|
+
align-items: baseline;
|
|
18135
|
+
gap: 1.4rem;
|
|
18136
|
+
font-family: var(--base-font-family-mono);
|
|
18137
|
+
font-size: 1.3rem;
|
|
18138
|
+
line-height: 1.3;
|
|
18139
|
+
flex-wrap: wrap;
|
|
18140
|
+
}
|
|
18141
|
+
|
|
18142
|
+
.pa-kpi-edit__delta {
|
|
18143
|
+
font-weight: 700;
|
|
18144
|
+
white-space: nowrap;
|
|
18145
|
+
color: var(--pa-positive);
|
|
18146
|
+
}
|
|
18147
|
+
.pa-kpi-edit__delta--positive {
|
|
18148
|
+
color: var(--pa-positive);
|
|
18149
|
+
}
|
|
18150
|
+
.pa-kpi-edit__delta--negative {
|
|
18151
|
+
color: var(--pa-negative);
|
|
18152
|
+
}
|
|
18153
|
+
.pa-kpi-edit__delta--neutral {
|
|
18154
|
+
color: var(--pa-neutral);
|
|
18155
|
+
}
|
|
18156
|
+
.pa-kpi-edit__delta--up-strong {
|
|
18157
|
+
color: var(--pa-very-positive);
|
|
18158
|
+
}
|
|
18159
|
+
.pa-kpi-edit__delta--down-strong {
|
|
18160
|
+
color: var(--pa-very-negative);
|
|
18161
|
+
}
|
|
18162
|
+
|
|
18163
|
+
.pa-kpi-edit__target {
|
|
18164
|
+
font-weight: 500;
|
|
18165
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 50%, transparent);
|
|
18166
|
+
white-space: nowrap;
|
|
18167
|
+
}
|
|
18168
|
+
.pa-kpi-edit__target em {
|
|
18169
|
+
font-style: normal;
|
|
18170
|
+
color: color-mix(in srgb, var(--pa-text-color-1) 38%, transparent);
|
|
18171
|
+
margin-right: 0.5rem;
|
|
18172
|
+
}
|
|
18173
|
+
|
|
16566
18174
|
/* ========================================
|
|
16567
18175
|
Utility Components
|
|
16568
18176
|
Font utilities, compact mode, component showcase
|