/* Minification failed. Returning unminified contents.
(47,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(50,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(65,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(66,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(67,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(73,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(74,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(75,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(81,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(82,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(83,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(89,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(90,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(91,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(97,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(98,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(99,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(128,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(128,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(129,43): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(129,85): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(130,43): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(130,85): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(131,43): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(131,85): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(132,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(132,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(138,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(139,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(140,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(145,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(145,101): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(183,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(198,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(210,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(211,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(212,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(215,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(215,102): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(225,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(226,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(230,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(230,81): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(234,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(235,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(248,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(248,76): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(249,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(249,86): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(249,184): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(250,60): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(251,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(252,54): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(253,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(254,64): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(256,58): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(260,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(267,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(268,49): run-time error CSS1039: Token not allowed after unary operator: '-link-color'
(278,74): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(280,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(325,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(325,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(325,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(325,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(347,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(352,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(354,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(388,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(390,18): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-lift-shadow'
(394,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(396,18): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-lift-shadow'
(430,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(516,27): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(537,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(537,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(538,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(540,35): run-time error CSS1019: Unexpected token, found ' '
(540,35): run-time error CSS1019: Unexpected token, found ' '
(540,35): run-time error CSS1042: Expected function, found ' '
(540,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(548,38): run-time error CSS1019: Unexpected token, found ' '
(548,38): run-time error CSS1019: Unexpected token, found ' '
(548,38): run-time error CSS1042: Expected function, found ' '
(548,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(550,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(557,35): run-time error CSS1019: Unexpected token, found ' '
(557,35): run-time error CSS1019: Unexpected token, found ' '
(557,35): run-time error CSS1042: Expected function, found ' '
(557,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(561,38): run-time error CSS1019: Unexpected token, found ' '
(561,38): run-time error CSS1019: Unexpected token, found ' '
(561,38): run-time error CSS1042: Expected function, found ' '
(561,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(570,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(570,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(571,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(572,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(580,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(582,38): run-time error CSS1019: Unexpected token, found ' '
(582,38): run-time error CSS1019: Unexpected token, found ' '
(582,38): run-time error CSS1042: Expected function, found ' '
(582,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(583,35): run-time error CSS1019: Unexpected token, found ' '
(583,35): run-time error CSS1019: Unexpected token, found ' '
(583,35): run-time error CSS1042: Expected function, found ' '
(583,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(587,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(597,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(597,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(598,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(623,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(647,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(660,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(668,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(669,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(675,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(683,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(685,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(691,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(700,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(705,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(708,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(713,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(714,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(719,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(720,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(725,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(733,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(734,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(744,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(747,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(766,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(767,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(771,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(784,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(785,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(786,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(798,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(799,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(802,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(802,87): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(803,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(803,91): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(804,50): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(805,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(809,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(812,60): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(815,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(832,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(833,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(861,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(869,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(873,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(891,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(892,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(893,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(899,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(922,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(923,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(927,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(933,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(941,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(942,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(945,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(958,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(966,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1034,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(1035,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1035,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1054,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1055,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1057,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(1070,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1071,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1072,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(1079,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1083,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(1084,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1085,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(1099,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1101,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1102,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(1105,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1106,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1107,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1117,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1126,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1127,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1128,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1131,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1132,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1133,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1149,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1197,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1198,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1225,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1292,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1315,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1348,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1353,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1354,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1370,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1388,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1407,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1408,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1412,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1416,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1420,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1424,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(1426,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1430,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1434,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1438,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1442,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1443,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1444,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1448,36): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1452,35): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1458,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1500,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(1514,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(1534,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1540,24): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1637,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1714,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1731,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1737,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1742,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1745,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1764,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1782,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1798,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1799,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1805,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1806,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1810,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1814,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1815,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1829,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1830,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1831,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1899,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1907,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1915,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1924,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1933,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1951,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1984,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1990,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2004,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2023,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2034,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2035,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2048,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2049,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2070,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(2079,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(2089,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(2115,21): run-time error CSS1030: Expected identifier, found '.'
(2115,35): run-time error CSS1031: Expected selector, found ')'
(2115,35): run-time error CSS1025: Expected comma or open brace, found ')'
(2132,26): run-time error CSS1030: Expected identifier, found '.'
(2132,27): run-time error CSS1030: Expected identifier, found 'page-campaign'
(2132,40): run-time error CSS1031: Expected selector, found ')'
(2132,40): run-time error CSS1025: Expected comma or open brace, found ')'
(2141,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(2148,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2157,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2163,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2169,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2211,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2216,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2221,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2227,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2228,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2292,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2308,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(2318,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2319,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2322,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2325,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2328,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2336,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(2341,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2351,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2357,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2358,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2367,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2368,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2371,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2374,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2377,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2385,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2390,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2396,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2400,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2406,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2407,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2416,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2417,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2420,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2423,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2426,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2434,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2448,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2462,39): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2484,35): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(2487,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2488,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(2489,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2491,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(2535,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2539,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2556,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2568,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(2569,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(2574,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2575,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2576,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2581,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2609,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(2618,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2652,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(2708,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2739,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2750,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2762,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2772,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2779,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2787,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2797,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2804,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2812,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2830,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(2832,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2833,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2839,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(2849,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(2858,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(2860,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2861,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2867,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(2956,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(2965,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2971,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2972,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2981,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3002,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(3002,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(3002,104): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(3002,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(3003,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3004,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(3005,38): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(3006,39): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(3007,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3012,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3018,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3023,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3028,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3034,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3035,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3044,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3075,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3076,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3083,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3093,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(3096,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(3101,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(3103,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3112,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(3123,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(3124,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3127,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3144,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3175,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(3176,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(3179,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3183,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3190,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3199,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3201,66): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(3206,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3211,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3223,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(3238,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3244,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3248,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(3256,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(3295,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3296,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3300,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3301,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(3359,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3364,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3380,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3381,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3391,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3395,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3401,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3405,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3423,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3426,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3526,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3527,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3528,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3536,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3537,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3538,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3562,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(3564,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(3567,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3570,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3577,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3634,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3656,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(3657,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3677,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3685,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3689,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3697,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3698,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3702,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3706,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3714,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3732,21): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(3733,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(3751,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(3764,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3768,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(3769,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3770,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3774,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3778,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3817,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3822,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3827,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3847,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3848,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3857,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3858,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3859,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3863,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3864,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(3870,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3871,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(3872,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(3876,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3877,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3883,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3884,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3885,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(3889,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(3890,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(3896,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3897,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(3898,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(3902,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3903,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3909,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3910,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3911,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(3915,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(3916,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(3922,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3923,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(3924,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(3928,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3929,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3935,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3936,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3937,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3952,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(3978,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3987,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3988,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(3994,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(3995,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4017,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4033,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4042,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4048,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4050,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(4051,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4056,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4062,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4077,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4087,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4093,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4095,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(4096,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4101,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4107,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(4238,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4297,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4304,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4306,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4323,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4346,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4347,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(4389,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4390,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(4394,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(4404,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4418,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4419,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(4421,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(4433,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(4437,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4438,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4443,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4451,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(4490,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4514,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(4514,61): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(4514,90): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4520,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(4528,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4535,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4541,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4553,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4557,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4571,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4588,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4594,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4614,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(4616,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4617,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4633,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4766,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4778,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4791,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4809,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4810,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4843,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4844,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4857,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4862,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4892,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4892,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4892,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4913,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4917,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(4918,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4919,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(4923,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4928,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(4929,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4930,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5031,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5098,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5120,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5127,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5145,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5177,29): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5181,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5185,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5197,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5201,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5214,25): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5226,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5228,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5556,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5557,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(5580,32): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(5592,27): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(5595,21): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5605,16): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5610,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5621,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(5622,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5623,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5629,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5630,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5672,20): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5680,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5701,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark-muted'
(5737,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5744,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-hover'
(5756,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5763,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5787,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5787,88): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5788,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(5788,90): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5789,50): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(5789,88): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5800,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5801,66): run-time error CSS1039: Token not allowed after unary operator: '-status-standout'
(5802,66): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5803,66): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(5803,108): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5804,66): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(5805,66): run-time error CSS1039: Token not allowed after unary operator: '-status-neutral'
(5806,66): run-time error CSS1039: Token not allowed after unary operator: '-status-neutral'
(5808,47): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5809,69): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(5810,69): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(5820,59): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(5859,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(5869,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(5876,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(5878,37): run-time error CSS1046: Expect comma, found '0'
(5878,41): run-time error CSS1046: Expect comma, found '/'
(5905,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(5907,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5975,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5976,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(5980,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(5981,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5990,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(5991,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(6000,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6004,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6014,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6053,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(6064,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6079,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6085,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(6098,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(6115,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6121,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6126,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6127,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6130,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6147,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6183,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6187,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6206,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(6207,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6210,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6212,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6213,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6214,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6218,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(6219,24): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(6221,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6224,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(6225,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(6227,67): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(6228,68): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(6236,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(6239,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(6241,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(6253,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(6257,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6264,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(6275,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6298,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(6302,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(6306,67): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(6316,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6317,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(6318,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6326,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6327,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6369,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(6411,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6416,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6422,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(6477,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6486,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6497,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6565,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6573,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6577,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(6581,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6597,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6637,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6650,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6675,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6691,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6703,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(6707,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6716,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6752,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6761,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6766,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(6770,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6816,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6840,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6884,16): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6890,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6896,16): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6901,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6906,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(6937,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6949,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6955,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6959,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6982,28): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-softer'
(6987,28): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(6989,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7008,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7009,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7012,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7030,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7045,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7046,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7047,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7052,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7053,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7054,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7063,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7064,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7065,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7070,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7071,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold-text'
(7072,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(7075,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7076,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7077,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(7080,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7081,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(7082,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(7092,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7097,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7101,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(7102,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7105,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7106,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7110,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7125,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7126,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7129,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7130,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(7132,56): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7141,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7143,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7150,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7173,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7175,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted-soft'
(7179,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7185,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7193,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7195,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7196,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7207,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7210,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7211,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7214,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted-soft'
(7215,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7218,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(7219,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7220,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7227,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7233,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7238,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7249,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7250,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7251,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7259,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7260,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7262,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7273,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7285,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(7286,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7298,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7299,24): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(7300,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7303,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7304,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7305,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7308,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(7309,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(7310,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7320,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7321,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(7323,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(7331,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(7331,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(7332,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(7333,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7334,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7379,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7385,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7399,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7408,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7415,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(7427,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(7431,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7449,36): run-time error CSS1046: Expect comma, found '0'
(7449,40): run-time error CSS1046: Expect comma, found '/'
(7471,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7472,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7476,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7494,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7536,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7538,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7549,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7549,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7549,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7549,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7550,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7551,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7556,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7560,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(7562,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7572,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(7596,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(7607,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7608,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7623,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(7638,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7662,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7676,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7677,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7677,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7677,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7677,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7678,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7684,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7695,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(7697,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7708,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7714,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7716,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7724,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7724,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7724,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7724,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(7725,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7726,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(7729,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7741,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7750,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7758,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7779,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7783,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7784,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7790,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7794,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7795,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7808,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(7825,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(7834,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7836,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7848,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(7866,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7869,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7885,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7887,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7908,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(7927,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7941,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7942,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(7943,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7957,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7969,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(7970,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7972,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7982,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7987,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7996,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(8025,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8037,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8047,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(8047,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(8047,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(8047,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(8048,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8051,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8052,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8056,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(8057,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8061,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(8067,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8078,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8086,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8108,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8109,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(8116,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(8144,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8155,37): run-time error CSS1046: Expect comma, found '0'
(8155,41): run-time error CSS1046: Expect comma, found '/'
(8181,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8182,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8208,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(8209,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8237,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(8238,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8245,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8250,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8269,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8332,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8333,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8418,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8440,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8589,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(8604,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8609,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(8614,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8625,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8632,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(8633,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(8634,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8642,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8643,31): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(8655,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8667,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8676,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(8677,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(8678,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8692,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8695,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(8705,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8713,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(8718,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8722,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8728,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8733,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8738,22): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(8751,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8770,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8837,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(8872,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(8952,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(8963,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8964,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(8978,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9086,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(9092,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9095,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(9111,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9115,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9125,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9130,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9137,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9138,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9139,52): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(9140,51): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9141,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(9142,54): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9149,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9154,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9167,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9175,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9179,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9180,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9182,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9185,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9186,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9196,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9197,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9201,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9220,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(9221,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(9224,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9227,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(9228,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(9231,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9237,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(9238,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(9241,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9244,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(9245,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(9248,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9251,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(9252,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(9255,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(9258,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9259,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9276,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9280,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(9287,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9292,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(9295,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(9296,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(9297,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(9313,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9315,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9316,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9324,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9325,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9326,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9329,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9330,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9331,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9337,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9344,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9362,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(9374,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9384,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9390,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9392,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9402,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(9410,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9412,56): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9413,56): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(9414,55): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9417,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9418,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(9427,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9440,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9442,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9468,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9479,63): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9480,63): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(9481,62): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9513,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9517,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9518,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9521,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9522,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9526,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9527,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9538,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9539,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9543,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9544,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9547,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9548,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9552,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9553,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(9572,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9572,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9573,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9580,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9581,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9585,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(9594,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9595,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9600,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(9607,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9615,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9619,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9625,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9636,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9641,57): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(9645,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9647,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9648,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9666,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9676,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9679,36): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(9687,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(9689,56): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(9713,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9714,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9726,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9727,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9732,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9737,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9740,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9751,39): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9752,40): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(9753,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(9754,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9758,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9758,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9758,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9758,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9758,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9758,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9759,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(9760,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9770,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9776,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9776,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9776,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9776,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9777,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9781,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9785,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9789,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9797,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9798,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9801,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(9802,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9845,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9853,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(9861,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9868,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9869,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(9875,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(9886,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(9889,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(9890,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9901,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9905,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9919,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(9934,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9947,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(9963,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9971,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(9981,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10015,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10055,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10088,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(10102,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(10106,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10107,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(10111,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(10115,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(10136,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(10137,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10138,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(10142,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(10144,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(10196,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10216,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(10223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10231,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10234,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10241,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10247,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10259,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(10263,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10276,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10299,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10315,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10324,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10325,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10335,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(10344,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10348,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10365,15): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(10374,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(10375,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(10376,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10385,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10390,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10401,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10412,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10413,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10418,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(10419,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10430,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10436,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(10446,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10454,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(10455,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(10458,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(10459,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(10462,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(10463,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(10466,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(10467,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(10470,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(10471,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(10483,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10486,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(10487,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10505,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(10509,29): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(10513,29): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(10530,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(10530,84): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10533,46): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(10533,84): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10536,46): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(10536,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10553,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(10554,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10557,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(10558,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(10567,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(10602,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(10607,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(10619,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(10626,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(10632,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10637,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(10647,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10647,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10647,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10647,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10647,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10647,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10648,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10660,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10666,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10678,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(10692,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(10698,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10708,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10714,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10725,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10730,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10737,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10754,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(10759,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(10767,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(10770,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(10860,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10885,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(10885,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(10886,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10887,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(10888,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10938,35): run-time error CSS1019: Unexpected token, found ' '
(10938,35): run-time error CSS1019: Unexpected token, found ' '
(10938,35): run-time error CSS1042: Expected function, found ' '
(10938,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(10939,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(10939,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(10940,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(10947,38): run-time error CSS1019: Unexpected token, found ' '
(10947,38): run-time error CSS1019: Unexpected token, found ' '
(10947,38): run-time error CSS1042: Expected function, found ' '
(10947,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(10949,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(10962,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(10963,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10969,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10970,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(10991,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(10996,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11026,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11038,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11042,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(11053,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11065,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11079,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(11080,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(11084,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(11085,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(11093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11111,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11112,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11133,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(11137,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11178,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11180,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(11192,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11193,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11198,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11204,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(11256,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(11268,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11270,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11277,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11277,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11277,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11277,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11280,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11287,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11288,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11302,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(11314,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11316,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11322,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11322,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11322,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11322,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11336,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11341,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11354,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11366,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(11373,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11378,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11379,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11384,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11392,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11414,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(11427,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11428,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(11437,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11442,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11442,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11442,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11442,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11448,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11467,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11527,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11532,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11537,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(11537,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(11538,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11549,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11569,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11572,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11586,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11591,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11653,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11655,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11660,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11661,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11675,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11684,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11712,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(11724,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11725,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11729,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(11730,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(11734,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(11735,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(11739,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(11740,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(11745,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11762,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11769,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(11770,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11786,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(11813,65): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(11813,104): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11813,133): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11816,65): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(11816,104): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11816,133): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11819,65): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(11819,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11819,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11824,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11830,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11834,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(11838,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(11860,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(11882,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11882,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11882,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11882,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11883,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(11887,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11889,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(11895,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11895,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11895,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11895,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(11898,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(11904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(11963,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11963,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11963,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(11963,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11963,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11963,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(11964,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(11971,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(11976,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12014,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12018,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12022,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12022,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12022,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12022,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12023,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12026,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12034,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12062,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12073,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(12103,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12110,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12136,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(12173,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12187,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12212,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12213,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12214,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12258,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12263,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12285,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(12286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12290,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(12291,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(12295,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12314,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12323,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(12324,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(12332,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(12333,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(12343,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12372,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12400,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12415,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12424,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12439,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12459,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12467,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12473,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12481,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12504,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12536,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12554,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12561,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12561,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12561,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12561,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12562,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12565,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12570,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(12576,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12598,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12623,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(12624,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12625,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12632,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12637,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12645,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12658,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12676,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12677,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12706,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12714,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12734,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12738,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(12739,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12760,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12761,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12771,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12776,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12785,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12799,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(12800,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12803,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(12804,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12811,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12814,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12824,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(12828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(12834,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(12847,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12866,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12880,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12913,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12919,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12935,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12943,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(12968,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12978,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12982,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13049,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13055,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13060,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13070,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13080,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13113,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13113,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13113,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13113,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13114,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13122,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13144,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13145,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13146,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13146,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13149,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13157,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13190,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13195,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13203,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13203,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13211,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13231,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13255,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13256,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13265,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13272,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(13276,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13285,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13293,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13303,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13322,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13354,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13355,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13366,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13366,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13366,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13366,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13366,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13366,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13368,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13370,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13379,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13389,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13390,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13413,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13414,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13419,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13426,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13438,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13448,27): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13456,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13471,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(13472,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13481,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(13485,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(13499,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13528,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(13540,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13545,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(13549,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13557,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13564,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13569,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(13573,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13582,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13586,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13599,33): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13638,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13642,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13657,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13660,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13663,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13666,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13678,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13679,46): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(13681,51): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(13682,46): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(13683,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13688,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(13707,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13709,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13716,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(13721,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13722,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13755,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13756,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13799,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13799,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13799,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13799,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13800,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13813,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13823,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13888,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13889,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(13899,40): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(13904,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13905,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13906,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13906,108): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13910,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(13922,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13940,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(13950,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13952,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13977,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(13978,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13982,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13983,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13987,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13988,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(14005,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14013,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14014,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14018,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(14031,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(14040,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(14041,64): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(14061,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(14062,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(14063,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(14108,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14116,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14117,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14126,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(14138,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14141,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14145,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14156,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14159,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(14160,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14163,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(14166,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14169,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(14178,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14183,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14187,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14194,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14197,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14203,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14204,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14205,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14232,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14232,75): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14232,121): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14233,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14235,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(14254,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14270,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14274,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(14277,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14278,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14285,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(14286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14301,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14309,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14316,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14319,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(14335,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14350,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14351,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14352,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14358,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14361,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14362,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14371,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14376,36): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(14379,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(14386,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14399,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(14400,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(14401,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(14404,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(14405,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(14406,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(14409,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(14410,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(14411,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(14414,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14415,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(14416,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14419,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14420,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14421,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14443,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14445,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14459,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14460,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14461,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14478,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14479,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14485,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14495,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14525,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(14531,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14541,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14543,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14550,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14551,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14554,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14564,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14566,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14574,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14587,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14595,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14598,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14600,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14601,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14602,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14630,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14635,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14635,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14651,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14652,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14653,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14661,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14662,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14667,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14668,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14669,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14687,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14693,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14698,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14737,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14740,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14742,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14753,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14762,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14769,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14770,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14771,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14774,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14775,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14778,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14799,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14807,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14808,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14813,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14815,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14816,136): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14817,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14821,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14823,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14824,17): run-time error CSS1039: Token not allowed after unary operator: '-text-default'
(14833,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(14834,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14836,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14842,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14852,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14858,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14877,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14879,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14889,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14890,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14898,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14904,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14905,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14906,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14910,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14916,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14934,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14949,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14950,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14957,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14959,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14965,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14966,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14967,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14975,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14977,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14981,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14982,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14996,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15002,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15021,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15029,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15110,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15119,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15120,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15123,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15146,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15151,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15170,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15176,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15217,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15224,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(15231,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15237,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(15244,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15248,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15252,47): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-alt'
(15255,53): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(15259,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(15276,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15325,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(15343,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(15345,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15346,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15347,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(15353,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15354,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(15365,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15365,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15365,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15365,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15365,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15365,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15377,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(15386,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15397,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15413,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15413,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15413,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15413,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15413,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15413,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15414,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15421,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15422,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15435,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15440,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15458,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(15462,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15467,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15487,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15488,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15503,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(15518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15531,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15542,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15588,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15608,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15612,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(15612,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(15612,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15612,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15612,136): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15613,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15627,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15633,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15642,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15643,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(15670,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(15679,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15683,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(15697,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15698,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15730,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15744,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15753,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15758,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(15762,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(15763,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(15769,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15780,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15789,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(15804,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(15808,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15829,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15858,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15906,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15931,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(15950,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15955,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(15960,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(15969,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15981,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15985,33): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(15988,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15989,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15991,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15992,64): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(16003,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16008,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16012,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16025,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16034,58): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(16034,100): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(16035,59): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(16035,101): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(16036,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16036,100): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(16037,59): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(16037,98): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(16051,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16102,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16112,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16188,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16189,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16192,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16198,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16199,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16212,26): run-time error CSS1030: Expected identifier, found ':'
(16212,34): run-time error CSS1031: Expected selector, found ')'
(16212,34): run-time error CSS1025: Expected comma or open brace, found ')'
(16217,26): run-time error CSS1030: Expected identifier, found ':'
(16217,34): run-time error CSS1031: Expected selector, found ')'
(16217,34): run-time error CSS1025: Expected comma or open brace, found ')'
(16227,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16228,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16233,26): run-time error CSS1030: Expected identifier, found ':'
(16233,34): run-time error CSS1031: Expected selector, found ')'
(16233,34): run-time error CSS1025: Expected comma or open brace, found ')'
(16249,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16276,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16277,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16280,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16285,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16287,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16288,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16298,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16314,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16315,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16325,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16332,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16335,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16336,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16342,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16365,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16368,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16375,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16379,44): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(16383,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16384,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16387,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16388,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16411,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16419,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16423,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16427,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16428,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16440,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16450,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16451,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16453,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16471,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16484,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16493,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16495,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16496,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16517,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16525,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16530,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16541,47): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(16542,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(16542,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16546,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16546,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16553,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(16555,58): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16556,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16558,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16562,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16564,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16565,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16567,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16568,67): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16573,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16582,71): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16595,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16598,103): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16608,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16615,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(16615,115): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16619,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16621,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16624,50): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16626,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16639,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16644,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16653,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16679,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16682,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16687,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16691,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(16719,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16723,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16727,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16735,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16741,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16759,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16764,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16788,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16789,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16818,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(16822,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16828,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16832,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16837,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16837,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16841,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(16847,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(16848,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(16856,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16856,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16856,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16856,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16858,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16889,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16901,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16918,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16922,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16926,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(16930,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(16935,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(16939,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(16952,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16960,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16970,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16981,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(16986,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16990,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(16997,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17004,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17018,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17026,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17032,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17038,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17044,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17050,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17051,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17059,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17071,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17080,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17081,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17099,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(17104,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17107,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17118,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(17138,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17145,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17146,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(17156,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17166,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17177,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(17180,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(17183,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17186,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(17190,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(17199,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17208,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17214,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17220,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17223,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17237,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(17243,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17249,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(17250,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(17251,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(17259,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(17260,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17261,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17270,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(17279,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(17280,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17281,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(17298,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17314,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17315,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17333,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17334,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17335,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17342,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17346,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17366,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17371,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17381,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(17382,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(17383,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(17411,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17416,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17422,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17582,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17661,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17672,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17672,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17672,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17672,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17673,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17680,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17680,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17687,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17694,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17713,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17718,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17719,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17738,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17746,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17752,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17761,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17763,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17773,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17773,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17773,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17778,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17778,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17778,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17778,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17778,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17778,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17783,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17783,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17783,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17792,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17793,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17801,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17802,79): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17803,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17814,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17822,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17843,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(17844,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17853,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17855,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(17855,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(17856,45): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(17856,87): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(17857,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17857,76): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17860,60): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17860,104): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(17862,57): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(17883,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17884,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17890,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17895,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(17899,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17904,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(17905,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(17909,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17910,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17910,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17910,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17910,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17910,136): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17916,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17917,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17924,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17928,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17929,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17929,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17929,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17934,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17938,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(17942,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17947,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(17948,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(17961,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17974,15): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(17976,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17999,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18004,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18016,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(18022,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18023,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18037,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(18047,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18059,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(18083,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(18085,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18098,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(18099,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(18100,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(18116,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(18129,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18141,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(18146,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(18150,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18168,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18176,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18186,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18197,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(18205,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18209,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(18223,60): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(18225,60): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(18232,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18247,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18270,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18281,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18290,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18306,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(18309,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18316,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(18341,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18348,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18352,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18357,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18397,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18411,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18416,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(18447,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18451,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18465,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18475,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18479,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18486,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18487,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18496,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18504,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18511,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18513,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18535,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18542,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18549,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(18556,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(18569,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18570,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(18571,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18581,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18582,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18583,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18589,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18590,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18591,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18616,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18618,33): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(18630,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18636,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18642,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(18692,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18707,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18707,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18707,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18707,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18708,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18716,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18730,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18742,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18756,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18764,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18774,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18782,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18782,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18782,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18782,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18783,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18791,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18836,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(18842,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(18861,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18874,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18877,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18882,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(18887,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18899,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18904,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18911,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18915,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18924,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18935,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(18941,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18948,48): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(18949,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(18953,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18960,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(18961,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18962,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18972,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18978,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(18979,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18991,46): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(18991,81): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(19000,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19018,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19020,35): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(19043,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19044,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(19055,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19085,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19113,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19118,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19136,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19160,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19169,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19175,28): run-time error CSS1039: Token not allowed after unary operator: '-bh-pin-gold'
(19181,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-pin-gold'
(19200,33): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(19207,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19214,43): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19230,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19231,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19244,53): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19245,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19251,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19258,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19274,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(19278,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19281,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19316,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19325,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19335,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19342,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19346,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19347,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19366,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19367,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19375,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19376,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(19383,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19387,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19409,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19410,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19417,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19442,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19443,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19451,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19452,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19456,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19457,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19457,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19457,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19458,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19463,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19470,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19487,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19491,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19495,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(19500,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19501,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19510,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19511,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19511,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19511,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19511,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19513,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19518,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19519,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19530,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19535,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19541,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19541,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19541,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19541,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19542,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19543,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19544,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19545,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19546,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19552,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19556,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19571,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19578,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(19616,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19622,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19628,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(19637,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19652,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19731,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19736,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19753,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19758,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19764,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19781,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19788,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19792,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19832,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19839,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19860,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19861,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19866,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19873,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19877,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19878,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19896,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19907,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19912,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(19929,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19933,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(19946,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(19950,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19956,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19974,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(19975,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(19981,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19982,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(19988,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19989,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(20007,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20008,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20013,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20014,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20023,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20025,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20040,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20046,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20051,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20056,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20063,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20065,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20070,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20083,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20093,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20096,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20101,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20135,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20150,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(20161,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20166,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20175,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20177,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20184,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20208,58): run-time error CSS1030: Expected identifier, found '>'
(20208,81): run-time error CSS1031: Expected selector, found ')'
(20208,81): run-time error CSS1025: Expected comma or open brace, found ')'
(20214,58): run-time error CSS1030: Expected identifier, found '>'
(20214,81): run-time error CSS1031: Expected selector, found ')'
(20214,81): run-time error CSS1025: Expected comma or open brace, found ')'
(20222,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20222,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20222,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20222,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20223,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20225,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20251,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20283,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20291,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20298,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20303,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20304,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20313,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20314,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20318,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20326,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20344,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20350,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20364,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20371,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(20374,54): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(20375,51): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(20380,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20385,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20393,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20400,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20400,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20400,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20400,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20401,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20402,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20418,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(20420,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20426,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(20428,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20444,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20454,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20463,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20502,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20502,76): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20504,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(20504,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20522,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20527,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20541,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20561,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20562,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20563,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20570,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(20574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20590,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20597,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20604,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20610,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20614,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20643,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(20651,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20653,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20663,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20677,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20683,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20683,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20683,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20683,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20688,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20698,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(20703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20709,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20713,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20720,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20721,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(20736,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20744,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20776,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20787,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20816,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20832,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20832,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20832,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20832,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20833,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20884,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20887,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20887,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20887,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20887,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20888,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20966,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20967,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20999,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21009,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(21009,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(21010,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21011,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21012,35): run-time error CSS1019: Unexpected token, found ' '
(21012,35): run-time error CSS1019: Unexpected token, found ' '
(21012,35): run-time error CSS1042: Expected function, found ' '
(21012,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(21018,19): run-time error CSS1030: Expected identifier, found '>'
(21018,48): run-time error CSS1031: Expected selector, found ')'
(21018,48): run-time error CSS1025: Expected comma or open brace, found ')'
(21033,38): run-time error CSS1019: Unexpected token, found ' '
(21033,38): run-time error CSS1019: Unexpected token, found ' '
(21033,38): run-time error CSS1042: Expected function, found ' '
(21033,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(21039,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21043,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21044,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21045,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21048,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(21049,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(21052,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21053,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21054,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21057,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21058,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21061,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(21062,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(21063,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21073,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21080,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21085,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21091,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21145,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21145,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21146,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(21146,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(21147,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(21147,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(21148,43): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(21148,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21149,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(21149,80): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21154,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(21154,97): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(21157,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21157,86): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21162,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21169,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21170,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21173,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21174,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(21177,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(21178,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(21212,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21217,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21224,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21254,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(21263,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21265,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21275,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21296,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21314,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21320,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21320,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21320,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21320,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21325,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21335,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(21340,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21346,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21350,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(21358,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(21374,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21375,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21377,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(21467,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(21473,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(21473,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(21475,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21483,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21491,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21501,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(21535,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21540,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21541,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21572,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21575,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21576,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21577,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(21580,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21581,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(21582,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(21585,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21588,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(21591,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21598,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21602,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(21607,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21612,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21612,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21612,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21612,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21612,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21612,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21618,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21623,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21623,75): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21623,92): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21627,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21633,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(21677,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21684,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21690,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21695,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21701,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21712,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21712,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21712,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21712,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21713,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21714,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21725,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21736,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21744,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21749,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21754,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21767,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21770,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21776,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21788,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21794,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21812,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21825,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21874,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21877,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(21890,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21895,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21900,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21923,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21929,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21943,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21947,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(21957,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(21969,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(21973,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(21977,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(21981,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(21984,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(21985,44): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(21986,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(21987,43): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22030,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22033,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22034,78): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22035,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22049,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22059,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22088,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22088,93): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22089,103): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22091,34): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(22092,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22093,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22094,66): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22095,27): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22096,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22098,27): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22100,56): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22102,160): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(22102,202): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(22103,162): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22103,204): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(22104,164): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(22104,205): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(22105,163): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22105,200): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22137,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22157,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22174,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22175,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22183,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(22185,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22190,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22200,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22226,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22232,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22236,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22240,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22245,29): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(22278,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22293,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22294,71): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22298,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22320,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22336,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22340,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22355,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22360,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22367,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(22372,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22381,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22386,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22391,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22396,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(22402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22403,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22415,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22425,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22462,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22463,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22502,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22520,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22524,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22528,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(22539,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22541,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22549,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22550,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22561,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22565,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(22574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22580,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22598,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22607,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22612,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22619,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(22627,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(22634,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22639,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22664,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(22674,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22683,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22683,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22683,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22683,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22684,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22692,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22705,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22712,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22713,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22714,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22719,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22720,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22725,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22730,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22731,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22735,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22736,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22737,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22741,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22758,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22759,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22768,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22774,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22780,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22787,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22792,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22797,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22808,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22818,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(22838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22850,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(22864,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(22873,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22893,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22894,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22907,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22913,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22914,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22917,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22918,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22924,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22934,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22995,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22999,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23000,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23027,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23057,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23066,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23100,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23121,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23123,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23138,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23139,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(23155,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23156,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(23174,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23183,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23199,48): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23202,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(23203,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(23210,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23220,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23229,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23251,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23264,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23267,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23270,18): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23347,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23360,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23380,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23413,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23419,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23429,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(23438,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(23443,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23474,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23478,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23479,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23480,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23484,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23497,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23503,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(23510,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23511,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23516,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23525,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(23536,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23555,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23560,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23564,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23586,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23653,29): run-time error CSS1039: Token not allowed after unary operator: '-primary'
(23693,38): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23694,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23695,38): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(23696,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23731,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23741,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23758,14): run-time error CSS1039: Token not allowed after unary operator: '-bp-color'
(23758,44): run-time error CSS1039: Token not allowed after unary operator: '-bp-pct'
(23759,27): run-time error CSS1039: Token not allowed after unary operator: '-bp-pct'
(23771,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23783,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23792,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23798,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23804,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23804,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23804,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23806,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23813,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23813,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23813,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23813,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23815,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23823,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23827,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23834,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23853,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23854,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23862,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23867,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23871,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23877,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(23883,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23884,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23885,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23903,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23942,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23946,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23957,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23972,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23982,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23987,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(23993,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24004,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24019,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24020,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24021,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24030,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24040,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24054,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24055,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24059,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24062,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(24063,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(24064,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24071,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(24072,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(24077,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(24081,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(24082,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(24087,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(24121,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24122,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24131,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success-alt'
(24149,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24154,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24159,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(24167,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24175,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24177,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24188,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24195,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24196,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24199,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24207,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24210,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24211,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24217,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24221,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24222,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24225,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24254,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24265,50): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24274,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24282,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(24296,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24298,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(24304,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(24317,17): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(24328,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24329,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(24335,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(24365,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24372,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24376,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24392,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24395,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(24398,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24411,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(24417,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(24424,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(24428,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(24460,39): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24470,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(24475,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24477,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(24480,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(24483,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(24488,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24489,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(24490,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24503,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24509,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24514,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24519,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24526,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(24531,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24538,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24544,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24550,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24561,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(24562,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(24575,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24585,44): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(24586,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(24603,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(24604,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(24605,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(24608,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(24609,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(24610,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(24622,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24632,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(24632,90): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24633,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24633,89): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24634,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24640,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24654,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24663,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24669,31): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24670,32): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24670,84): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24674,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24680,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24684,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24687,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24688,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(24708,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24712,39): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24721,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(24722,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24738,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24743,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24747,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24752,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24761,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24766,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24770,44): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24773,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24784,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(24785,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24786,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(24787,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24803,34): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24807,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24809,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24818,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24820,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24832,40): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(24836,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24847,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24848,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24854,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24858,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24863,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24887,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24898,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24901,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24922,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24923,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24934,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24949,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24954,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25007,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25008,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25013,28): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25014,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25015,35): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25015,77): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25016,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(25016,68): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(25017,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25019,27): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25030,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25039,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25046,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25051,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25058,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25062,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25079,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25103,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25106,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25123,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25153,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25163,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25164,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25165,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25179,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25181,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25191,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25217,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25218,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25219,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25223,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25224,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25230,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25231,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25232,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(25235,36): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25240,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25252,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25254,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25264,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25264,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25271,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25273,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25283,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25283,82): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25287,30): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25287,94): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25288,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25288,134): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25288,279): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(25289,101): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25291,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25293,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25294,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25298,197): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25298,240): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25298,290): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(25299,81): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25300,125): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25302,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25303,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25303,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25305,43): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25306,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25309,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25311,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25312,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25314,74): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25316,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25318,60): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25319,59): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(25320,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25322,30): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25323,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25324,114): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25324,156): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25325,133): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25345,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25346,105): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25347,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25351,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25352,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25354,119): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(25355,55): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25355,149): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25356,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25356,77): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25357,178): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25360,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25361,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25365,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25366,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25376,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(25382,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(25386,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(25401,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25402,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25406,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25407,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25412,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25413,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25444,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25464,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25471,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25485,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25493,43): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25498,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(25501,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25511,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25514,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25515,36): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25516,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25522,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25533,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25534,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25535,24): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25542,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(25543,28): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25561,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25565,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25576,35): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25577,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25581,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25584,54): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25591,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(25592,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25609,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25618,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg-subtle'
(25619,28): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25631,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25645,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-info-soft'
(25646,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(25647,28): run-time error CSS1039: Token not allowed after unary operator: '-border-info-soft'
(25650,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-soft'
(25651,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(25652,28): run-time error CSS1039: Token not allowed after unary operator: '-border-danger-soft'
(25664,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25664,104): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25665,63): run-time error CSS1039: Token not allowed after unary operator: '-card-bg-subtle'
(25665,109): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25666,62): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(25666,101): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(25667,57): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25668,68): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25680,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25719,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(25720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25723,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(25724,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25727,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25728,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25763,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25784,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25784,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25785,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25786,81): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25787,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(25787,87): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25790,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25818,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25826,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25830,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25831,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25834,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(25835,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25850,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25869,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25923,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25945,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25963,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25972,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26018,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26055,38): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(26055,95): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(26055,133): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(26056,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(26056,96): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(26056,142): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(26057,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(26057,96): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(26057,135): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(26058,38): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(26058,93): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(26058,129): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(26072,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26075,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26090,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(26093,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26106,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26127,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26137,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26138,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26139,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26139,55): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26139,86): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26142,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26143,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26144,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26144,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26144,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26188,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26190,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26191,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26197,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26198,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26199,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26202,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26210,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26222,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26223,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26224,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26227,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26231,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26232,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26233,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26236,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26251,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26251,149): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26251,179): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26251,209): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26253,137): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26254,104): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26255,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26255,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26256,83): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26256,178): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26257,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26259,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26259,182): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26260,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26261,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26262,97): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26267,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26267,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26269,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26270,63): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26272,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26276,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26276,124): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26277,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26277,94): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26278,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26279,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26279,101): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26280,68): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26284,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26284,78): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26285,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26285,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26293,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26294,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26301,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26306,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26306,118): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26307,85): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26316,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26317,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26318,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26324,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26335,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26355,57): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26355,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26356,111): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26365,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26368,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26379,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26382,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26395,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26408,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26418,48): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(26419,54): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(26420,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(26421,54): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(26422,46): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(26423,52): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(26428,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26429,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26432,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26442,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26446,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26452,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(26455,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(26456,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(26457,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(26458,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(26459,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26460,60): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(26465,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26468,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26475,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26478,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26481,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26491,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26492,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26493,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26499,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26510,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26518,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26533,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26567,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26568,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26569,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26584,46): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26590,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26593,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26609,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26610,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26611,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26636,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26646,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26653,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26654,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26655,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26673,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26674,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26681,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26682,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26683,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26692,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26692,92): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26698,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26699,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26710,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26711,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26720,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26720,77): run-time error CSS1039: Token not allowed after unary operator: '-magenta'
(26723,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26734,55): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26737,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26741,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26744,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26748,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26754,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26755,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26765,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26769,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26781,55): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26786,57): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26791,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26792,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26802,35): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(26806,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(26809,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26812,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26814,33): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26818,55): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26822,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26824,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26830,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(26831,56): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26858,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26858,78): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26859,49): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26871,96): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26875,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(26876,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26880,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26908,22): run-time error CSS1039: Token not allowed after unary operator: '-success-bg'
(26909,17): run-time error CSS1039: Token not allowed after unary operator: '-success-text'
(26914,32): run-time error CSS1039: Token not allowed after unary operator: '-success-text'
(26928,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26931,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26952,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26953,32): run-time error CSS1030: Expected identifier, found ':'
(26953,46): run-time error CSS1031: Expected selector, found ')'
(26953,46): run-time error CSS1025: Expected comma or open brace, found ')'
(26957,32): run-time error CSS1030: Expected identifier, found ':'
(26957,40): run-time error CSS1031: Expected selector, found ')'
(26957,40): run-time error CSS1025: Expected comma or open brace, found ')'
(26967,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(26970,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26979,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26984,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26987,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27085,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27087,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27096,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27099,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27104,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27110,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(27125,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(27129,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(27137,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27139,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(27140,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27140,103): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27148,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27149,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27156,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27192,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(27196,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(27211,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27218,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27223,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27230,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27243,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27244,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27250,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27251,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27254,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27255,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27275,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27278,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27285,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27299,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27300,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27306,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27309,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27318,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27325,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27333,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27340,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27346,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27346,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27347,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27351,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27354,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(27363,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27387,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27394,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(27415,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27418,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27422,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27429,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(27458,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27459,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27470,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27473,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27490,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27531,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27544,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27564,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27577,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27584,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27595,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27599,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27614,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27636,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27637,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27647,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27651,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27653,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27660,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27669,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27670,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27690,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27696,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27699,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27700,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27703,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27708,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27714,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27718,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27725,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27726,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27739,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27759,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27777,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(27807,57): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27810,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(27811,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27812,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27832,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27861,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27862,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(27880,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27885,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27891,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27892,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27899,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(27900,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27903,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27904,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27912,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27913,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27919,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27926,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27938,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(27956,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(27957,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27959,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27964,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27964,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27964,123): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27966,23): run-time error CSS1030: Expected identifier, found ':'
(27966,31): run-time error CSS1031: Expected selector, found ')'
(27966,31): run-time error CSS1025: Expected comma or open brace, found ')'
(27971,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(27971,76): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27971,115): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27983,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27994,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-dark'
(27999,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28010,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28021,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28026,93): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28027,51): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28045,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28046,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28052,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28053,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28061,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28085,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28090,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28094,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28104,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28107,41): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28108,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(28108,83): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28109,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28113,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28117,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28123,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28184,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28195,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28197,63): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28201,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-dark'
(28203,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28207,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-dark'
(28209,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28213,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28215,64): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28224,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28227,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28235,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28252,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28266,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28271,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28274,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28275,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28278,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28283,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28287,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28295,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28298,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28299,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28302,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28313,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28314,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28317,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28320,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28329,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28330,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28340,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28341,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28342,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28349,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28350,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28351,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28360,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28361,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28362,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28376,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(28388,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28391,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28397,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28397,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28397,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28397,117): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28402,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28413,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28422,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28426,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(28430,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28439,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28446,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(28448,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28457,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28461,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28466,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28474,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28475,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(28487,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28504,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28504,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28508,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28519,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28548,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28549,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28557,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(28558,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28559,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28566,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28567,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28573,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28575,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28579,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28580,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28581,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(28585,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28586,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28587,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28594,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28610,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28611,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28617,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28631,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28644,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28670,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(28671,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28672,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28678,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28682,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28683,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28684,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28700,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28714,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28715,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28727,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28729,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28739,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28740,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28745,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28749,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28765,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28782,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28787,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28791,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28792,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28796,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28810,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28818,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28833,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28852,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28854,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28855,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28874,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28887,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28888,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28895,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28899,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28900,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28973,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28974,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28983,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28984,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28993,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28994,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28995,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29000,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29027,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29055,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29067,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29068,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29075,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29081,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29082,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29084,74): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29085,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29085,98): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29091,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29093,67): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29094,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29113,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29124,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29125,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29164,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29166,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29179,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29180,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29185,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29188,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29192,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29194,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29205,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29206,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29214,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29219,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29220,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29221,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29229,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29239,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29241,64): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29242,45): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29254,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-success-subtle'
(29254,80): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(29255,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29255,73): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29262,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29275,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29281,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29283,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29291,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29294,75): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29295,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29315,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29315,78): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29316,62): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29320,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29320,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29321,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29321,86): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29324,55): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(29325,45): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(29325,83): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29328,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29340,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29346,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29353,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29353,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29354,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29358,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29358,71): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29398,20): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(29430,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29431,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29433,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29464,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29465,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29471,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29477,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29485,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29486,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29501,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(29511,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29512,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29530,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29534,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29542,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29548,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(29563,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29601,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29602,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29603,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29606,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29623,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29640,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29677,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(29678,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(29713,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29714,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29715,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29726,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(29729,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29734,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29743,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29745,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29759,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29766,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29776,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29782,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29794,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29814,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29815,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29816,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29821,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29835,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29845,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29846,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29847,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29853,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29854,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29858,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29859,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29860,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29871,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29892,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(29893,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(29897,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29898,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29912,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29923,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29942,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29947,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29956,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29961,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29967,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29976,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29987,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29989,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30012,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30025,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30047,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30048,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30073,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(30099,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30103,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30115,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30123,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30131,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30137,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30150,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30158,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30160,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30167,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30173,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30181,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30187,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30203,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30211,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(30215,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(30238,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30242,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30249,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30259,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30304,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30342,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30343,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30369,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30375,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30384,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(30385,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30409,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30410,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30411,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30420,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30425,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30448,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30471,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30472,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30493,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30501,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30505,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30506,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30514,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30526,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30551,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30552,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30564,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30571,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30601,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30602,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30627,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30628,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30629,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30640,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30645,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30653,24): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30660,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30661,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30674,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30707,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30715,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30716,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30721,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30734,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30739,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30743,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30747,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30758,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30762,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30767,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30768,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30799,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30815,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30819,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30822,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30835,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30844,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30847,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(30852,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30853,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30862,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30869,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(30880,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30884,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30888,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(30893,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30898,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30915,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30919,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30928,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30937,58): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(30937,108): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30940,37): run-time error CSS1030: Expected identifier, found '.'
(30940,54): run-time error CSS1031: Expected selector, found ')'
(30940,54): run-time error CSS1025: Expected comma or open brace, found ')'
(30944,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30950,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30951,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30956,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30962,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30973,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30978,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30979,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30992,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31014,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(31023,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31026,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31037,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31038,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31061,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(31073,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31088,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31094,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31097,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31102,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31113,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31121,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31121,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31122,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31122,78): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31123,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(31123,77): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31134,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31138,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31143,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31160,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31161,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31162,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31168,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31169,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31176,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31177,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31180,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(31181,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31187,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31191,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31206,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(31215,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31218,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31219,73): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(31223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31235,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31242,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31249,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31263,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31274,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31283,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31285,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31290,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31294,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31295,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(31303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31312,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31318,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31329,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31336,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(31346,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31350,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31353,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31359,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31363,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31375,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31384,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31385,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31386,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(31392,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31397,46): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31415,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31415,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31415,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31415,121): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31415,138): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31415,158): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31416,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31423,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31430,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(31447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31458,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31459,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31467,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31474,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(31478,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31479,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31485,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31496,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(31497,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31505,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31525,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31525,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31525,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31525,121): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31525,138): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31525,158): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31526,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31530,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31533,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31537,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31541,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31545,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31554,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31555,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31556,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31567,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31590,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31600,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31609,37): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31623,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31631,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31638,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31660,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31663,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31672,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31677,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31689,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31690,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31694,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31695,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31712,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31713,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31716,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31717,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31718,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31725,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31734,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31756,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31757,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31766,31): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(31774,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31775,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(31781,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31785,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31803,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31807,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31808,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31809,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31815,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31815,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31816,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31820,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31833,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(31834,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31837,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31839,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31842,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31898,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31920,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31923,56): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(31929,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(31930,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31944,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31946,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31959,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31999,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32008,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32016,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32025,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32086,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(32130,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32140,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32141,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32153,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32155,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32159,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32169,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32170,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32175,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32196,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32197,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32198,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32201,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32202,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32214,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32218,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32230,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32231,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32235,73): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32236,66): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32238,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32239,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32241,76): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32244,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32245,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32248,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32249,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32260,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32266,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32267,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32282,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(32282,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32283,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32283,84): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32284,42): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(32284,81): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(32285,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32285,80): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32294,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32300,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(32306,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32312,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32318,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32324,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32329,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32330,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32341,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32367,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32369,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32378,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32383,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32387,60): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32388,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32395,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(32396,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32399,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32411,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32411,95): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32412,66): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32413,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32413,100): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32417,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32417,100): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32418,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(32418,100): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32423,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32430,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32433,69): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32448,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32462,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32475,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(32476,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32477,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32480,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32480,101): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32481,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32482,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32484,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32485,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32486,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32492,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32493,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32499,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32502,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32503,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32504,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32520,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(32521,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32525,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32527,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32528,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32529,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32531,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32532,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32536,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32537,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32538,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32543,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32544,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32553,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32567,68): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32568,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32571,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32572,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32578,135): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32588,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32589,61): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32590,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32590,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32593,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32593,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32594,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32600,48): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32602,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32603,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32605,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32607,49): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32609,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32610,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(32614,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32615,116): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32624,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32625,80): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32627,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32628,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32628,93): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32631,37): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(32633,30): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(32635,98): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32637,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32639,30): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32640,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32641,70): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32643,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32643,92): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32660,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(32661,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32666,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32669,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32675,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32679,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32684,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32685,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32690,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32698,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32709,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32712,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32717,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(32727,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(32728,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32729,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32736,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(32742,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32752,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32767,153): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(32769,50): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32770,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32780,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32781,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32782,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32783,41): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32786,107): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(32788,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32789,49): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(32790,47): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32796,71): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32797,103): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32797,141): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(32813,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32814,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(32818,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32824,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32833,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32834,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream'
(32835,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32836,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32842,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32843,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32844,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32845,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32849,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32850,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32853,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32865,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32866,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32875,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32875,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32876,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32886,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32891,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32896,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32909,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32910,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(32918,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32922,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32926,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32933,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32938,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32943,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32944,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32947,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32960,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32971,33): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(32981,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32991,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33000,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33011,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33031,36): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(33122,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33125,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33126,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33129,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33132,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33140,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33143,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33162,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33168,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33174,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33178,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33182,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(33183,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(33184,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33200,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33200,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33200,110): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33202,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33207,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33207,60): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33207,116): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33219,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33220,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33242,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33247,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33248,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33260,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33261,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33280,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33281,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33290,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33301,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(33302,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33330,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33331,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33332,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33358,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33368,27): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33369,38): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33378,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(33379,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33380,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33388,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33388,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(33396,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33401,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33406,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33410,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33413,57): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(33413,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33414,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33414,98): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33415,57): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33415,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33423,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(33423,82): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(33424,39): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(33424,81): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(33425,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(33425,81): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(33428,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33437,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33441,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33442,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(33446,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33450,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33455,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(33460,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33465,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33471,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33475,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(33504,34): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(33512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33518,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33531,51): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33534,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(33536,33): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(33542,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33543,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(33547,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33548,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33551,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(33557,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33560,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33566,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33587,56): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33587,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33588,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33590,72): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33591,34): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33594,36): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33595,70): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33600,43): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33601,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33602,65): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33604,73): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33617,144): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(33617,183): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33619,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33622,62): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33623,99): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33627,76): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33628,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33630,70): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33631,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33632,67): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33633,60): run-time error CSS1039: Token not allowed after unary operator: '-accent'
(33636,111): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33636,147): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33637,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33637,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33653,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33656,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33664,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33665,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33666,28): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(33671,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33672,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33681,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33681,159): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33848,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(33849,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33850,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33854,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33864,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33868,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33873,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33878,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33886,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(33887,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33894,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33899,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(33917,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33929,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(33948,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33950,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(33954,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33955,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(33958,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(33963,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(33986,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33991,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33995,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34011,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34015,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34021,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34022,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(34027,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34069,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34076,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34087,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(34088,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34089,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34095,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34103,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34109,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34112,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34117,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34121,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34122,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34125,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34149,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34153,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34160,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34178,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34182,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34186,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(34203,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(34204,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34212,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34217,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(34226,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34250,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34267,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(34279,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(34285,31): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(34299,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34304,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34313,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34320,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34333,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34337,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34341,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(34349,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34358,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(34391,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34398,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34399,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34422,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34433,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(34468,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34480,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34481,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(34488,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34495,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34517,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34535,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34536,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34545,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34548,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34561,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34571,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34572,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34574,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(34574,80): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(34575,40): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(34575,82): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(34576,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(34576,83): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(34581,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34587,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34587,94): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34593,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34595,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34603,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34604,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-tint'
(34607,81): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34608,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34619,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34624,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34628,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34643,29): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(34645,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34648,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34657,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34665,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34673,164): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(34673,207): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34675,129): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34676,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34676,81): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34679,144): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34679,209): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(34679,241): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34680,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34680,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34681,166): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34681,200): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34684,49): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34685,30): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34688,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34688,139): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(34688,171): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34689,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34689,83): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34691,129): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(34691,193): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34691,227): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34692,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34693,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34693,88): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34693,125): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34694,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34696,41): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(34697,40): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34702,69): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34703,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34703,150): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34704,86): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34709,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34709,144): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(34709,176): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34710,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34710,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34725,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34735,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-tint'
(34738,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34741,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34756,29): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34758,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34763,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34766,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34770,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34778,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34781,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34792,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34803,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34804,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34805,35): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34807,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34844,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(34845,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(34846,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34847,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(34852,88): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34854,72): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34854,130): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34860,57): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34863,57): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34880,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34890,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34892,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34897,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34899,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34934,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34936,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34942,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34942,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34943,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34943,104): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34969,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34977,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34981,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34984,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34994,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35002,111): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35005,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35045,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35045,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35057,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35058,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35065,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35072,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35073,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35097,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35098,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35135,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35141,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35157,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(35159,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(35165,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35166,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35169,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35184,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35192,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35193,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35194,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35202,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35220,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35221,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35222,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35224,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35228,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35231,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(35232,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(35236,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35268,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35276,54): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35285,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35294,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35294,74): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35295,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35296,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35298,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(35306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35320,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35325,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35329,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35330,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35333,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(35340,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35348,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35352,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35358,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35366,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35367,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35374,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(35375,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35382,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35383,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35387,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35393,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35394,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35395,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35398,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35399,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35403,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35410,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35413,61): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35414,62): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35432,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35433,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35437,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(35445,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35451,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35454,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35460,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35471,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35476,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35482,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35494,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(35498,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35498,77): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35501,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35502,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35507,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35510,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35513,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35514,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35518,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35521,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35536,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35542,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35553,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35581,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35583,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35584,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35596,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35597,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35600,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35601,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35602,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35612,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(35617,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35624,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35655,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35658,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35672,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35673,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35676,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35679,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35680,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(35681,24): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(35685,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35698,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35699,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35702,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35705,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35708,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35709,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35713,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35733,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35734,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35738,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35745,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35751,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35754,50): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35763,69): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35776,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35777,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35787,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35819,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35826,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35828,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(35835,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35836,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35838,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35842,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35855,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35857,46): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35858,51): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(35859,55): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(35860,57): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(35883,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35886,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35887,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35897,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35901,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35907,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35917,77): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35918,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35919,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35921,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35925,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35925,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35926,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35932,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35933,32): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35936,39): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35940,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35941,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35946,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35961,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35963,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35969,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35970,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35973,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35974,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35975,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35978,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35979,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35982,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35982,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35984,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35985,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35997,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36016,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36018,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36024,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36025,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36028,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36032,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36033,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36034,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36044,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36050,46): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36053,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36063,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36071,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36072,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36080,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36082,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36084,51): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36088,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36089,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36091,61): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36092,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36103,47): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36103,159): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36104,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36105,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36106,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36107,64): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36109,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36110,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36118,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36119,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36120,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36121,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36124,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36132,113): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(36133,45): run-time error CSS1039: Token not allowed after unary operator: '-bh-primary'
(36141,108): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36142,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36142,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36144,76): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(36147,81): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(36180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36186,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36214,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36219,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36220,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36231,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(36238,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36239,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36246,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36247,22): run-time error CSS1039: Token not allowed after unary operator: '-cream'
(36256,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36262,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36265,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36279,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36280,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36293,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36299,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36318,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36319,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36326,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36331,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36343,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36355,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36363,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36384,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36386,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36388,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36393,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36394,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36401,85): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36401,119): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36403,42): run-time error CSS1039: Token not allowed after unary operator: '-hover-bg'
(36404,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36406,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36407,128): run-time error CSS1039: Token not allowed after unary operator: '-subtle-bg'
(36407,180): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36408,56): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(36409,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36411,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36412,44): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36413,113): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(36413,165): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36413,217): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(36415,71): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36415,110): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36418,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36421,99): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(36421,137): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36423,69): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36424,43): run-time error CSS1039: Token not allowed after unary operator: '-hover-bg'
(36428,52): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36432,75): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36433,115): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36433,176): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36434,66): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36435,130): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36435,191): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(36437,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36437,85): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36442,93): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36448,16): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36455,101): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36460,103): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36464,135): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(36464,172): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36465,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36466,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36467,52): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36467,116): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36467,150): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36474,107): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36478,108): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36479,126): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36484,115): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36487,59): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36487,117): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36489,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36490,49): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36491,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36494,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36495,47): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36497,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36498,164): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36499,95): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36501,61): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(36503,58): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(36504,62): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(36507,149): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36510,112): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36513,137): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(36513,224): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36513,261): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36516,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36516,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36517,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36517,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36517,119): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36523,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36524,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36528,99): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36529,170): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36529,249): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(36530,55): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36553,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(36555,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36566,61): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(36567,61): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(36568,61): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(36569,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36571,58): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36572,60): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36581,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36581,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36585,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36587,93): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36588,57): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36589,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36592,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36592,78): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36592,185): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36598,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36598,174): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(36600,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36607,101): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36615,164): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(36619,71): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36622,82): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36622,122): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36622,183): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36633,96): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36634,89): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(36635,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36637,93): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36637,133): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36638,121): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(36639,57): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(36639,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36640,55): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(36642,100): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(36642,175): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-on-accent'
(36644,65): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36646,125): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36647,50): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(36647,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36648,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36649,89): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(36649,110): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36653,133): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36653,212): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36653,256): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36656,67): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36660,117): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(36663,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36670,94): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36674,157): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36674,187): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36674,217): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36675,51): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36677,59): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(36677,107): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(36677,159): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(36678,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(36682,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36683,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36685,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36691,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36691,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36693,33): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36693,222): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36694,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36699,31): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36702,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36702,91): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36703,53): run-time error CSS1039: Token not allowed after unary operator: '-text-heading'
(36708,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36716,32): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36718,117): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(36718,181): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(36719,71): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36722,49): run-time error CSS1039: Token not allowed after unary operator: '-text-heading'
(36723,52): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36726,35): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36728,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36728,96): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(36730,51): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36743,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36745,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36749,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36749,112): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36755,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36764,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36776,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36777,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36783,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36786,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36787,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36790,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36793,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36794,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36803,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36821,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36823,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36833,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(36836,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(36851,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36854,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36867,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36869,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36873,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36874,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36885,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36894,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36897,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36898,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36920,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36921,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36931,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(36931,79): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(36932,37): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(36932,79): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(36933,35): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(36933,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(36945,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36949,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36965,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36971,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36976,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36980,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36981,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37021,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37039,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37045,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37052,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37058,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37059,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37069,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37071,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37071,83): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37073,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37073,80): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37075,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37075,74): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37078,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37078,88): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37086,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37092,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37102,64): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37104,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37104,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37105,68): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37107,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37109,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37113,36): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37113,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37114,36): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(37114,78): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37115,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37115,75): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(37116,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37116,68): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37119,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37120,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37123,37): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(37123,91): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37127,77): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37129,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37131,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37131,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37135,47): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37135,91): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37136,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37136,90): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37138,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37139,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37139,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37140,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(37140,83): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37143,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37144,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37147,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37147,90): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37148,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37148,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37152,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37153,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37156,54): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37166,77): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37168,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37172,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37178,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37180,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37181,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37182,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37183,40): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(37185,45): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37186,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37189,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37190,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37195,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37198,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37198,60): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37202,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37208,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37210,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37214,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37215,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37217,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37219,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37223,50): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37225,48): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37232,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37234,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37244,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37256,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37261,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37281,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37282,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37291,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37292,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37298,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37304,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37309,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37310,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37319,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37322,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37323,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37336,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37347,37): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37349,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37350,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37368,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(37375,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(37376,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(37384,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37385,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37388,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37395,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37396,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37401,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37414,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37420,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37424,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(37425,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37439,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37442,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(37451,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37458,74): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37487,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37490,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37491,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37495,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37500,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37509,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37510,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37527,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37528,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37532,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37542,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37549,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37550,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(37558,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37578,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37581,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37583,64): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37584,64): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37586,48): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37596,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37599,125): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37600,28): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37604,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37604,67): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37605,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37608,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37609,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37610,99): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(37611,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37617,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37617,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37618,121): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37619,89): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37619,132): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37620,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37621,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37622,116): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37625,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37626,232): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37626,263): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37627,76): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37628,188): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(37628,230): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37628,285): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37629,34): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37630,149): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37631,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37632,51): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37633,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37633,86): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37634,117): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37636,146): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37638,191): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37638,228): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37638,277): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37649,37): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37650,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream'
(37650,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37653,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37654,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37655,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37658,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37659,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37661,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37664,75): run-time error CSS1039: Token not allowed after unary operator: '-cm-right'
(37668,43): run-time error CSS1039: Token not allowed after unary operator: '-cm-pane-h'
(37671,168): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37672,96): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37674,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37675,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37677,105): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37679,77): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37686,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(37690,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37690,142): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37693,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37695,30): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37696,116): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37697,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37698,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37699,142): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37700,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(37706,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37706,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37707,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37710,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37711,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37712,52): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37714,27): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37715,75): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37716,141): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37717,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37718,24): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37719,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37720,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37723,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37724,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37724,54): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37726,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37726,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37726,122): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37730,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37730,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37731,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37733,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37733,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37734,35): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37735,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37735,93): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37735,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37740,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37745,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37745,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37749,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37751,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37751,112): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37752,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37752,112): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37753,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37753,110): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37754,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37755,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37757,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37760,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(37760,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37761,29): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37762,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37763,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37764,48): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37768,56): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37769,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37769,114): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37770,56): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37771,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37771,134): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37772,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37774,64): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37775,82): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37776,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37776,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37777,30): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37781,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37781,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37783,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(37783,178): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37784,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37785,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37787,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37788,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37790,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37790,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37791,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37792,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(37794,54): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37795,59): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37796,82): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37797,54): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37797,96): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37800,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37800,72): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37801,45): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37802,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37804,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37805,63): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37806,135): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37809,176): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37810,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37810,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37810,136): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37811,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37811,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37811,126): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37814,129): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37814,168): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37814,219): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37816,41): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37816,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37816,126): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37819,127): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37820,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37823,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37823,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream-2'
(37826,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37826,91): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37826,141): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37827,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37828,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(37828,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37829,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37829,83): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37832,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37835,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37835,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37836,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37836,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37837,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37837,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37839,86): run-time error CSS1039: Token not allowed after unary operator: '-bh-social-accent'
(37841,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37844,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37844,144): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37846,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37847,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37849,54): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37849,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(37850,62): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37853,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37853,142): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37854,122): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37855,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37856,128): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37858,159): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37859,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37860,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37862,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37863,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37865,86): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37866,117): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37868,117): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37868,169): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37871,86): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37871,144): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37879,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37879,108): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37880,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37889,177): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37890,118): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37897,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37897,88): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37897,129): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37898,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37898,102): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37899,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37899,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37900,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37904,50): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37905,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37906,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37906,87): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37906,192): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37907,65): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37909,49): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37912,63): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37913,69): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37917,156): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37917,238): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37917,272): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37921,104): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37922,39): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37932,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37933,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37933,106): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37934,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37934,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37935,129): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37938,183): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37938,233): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37939,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37941,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37942,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37942,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37943,92): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(37944,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37944,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37944,127): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37948,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37950,71): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37953,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37955,138): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37955,179): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37955,211): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37956,47): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37956,91): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37956,133): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37957,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(37957,149): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37959,151): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37959,185): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37961,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37962,32): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37963,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37964,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37968,35): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37969,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37978,56): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37978,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37978,129): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37979,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(37979,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37980,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37980,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37985,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37991,194): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37992,34): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37992,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37993,34): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37993,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37994,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37994,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37997,111): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37998,111): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37999,111): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38000,115): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38001,121): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38037,37): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(38037,78): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38038,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(38038,76): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(38039,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38039,71): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38040,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(38040,79): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(38041,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38041,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38042,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(38042,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(38063,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38069,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38070,134): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38070,167): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38071,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38072,52): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(38073,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38074,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38079,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38080,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38088,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38095,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38095,90): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38095,131): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(38109,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38110,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38111,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38125,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38125,85): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38125,128): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38127,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38128,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38128,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38148,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38149,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38149,56): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38152,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38152,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38154,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38155,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38156,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38160,100): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38162,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38168,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(38168,62): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38200,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(38201,33): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38201,85): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38210,114): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(38211,151): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38211,195): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38211,227): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38212,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38212,84): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38215,71): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38216,47): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(38217,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38217,129): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38218,178): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38219,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38223,149): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38225,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38225,94): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(38225,132): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38226,48): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38227,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(38235,14): run-time error CSS1031: Expected selector, found '/'
(38235,14): run-time error CSS1025: Expected comma or open brace, found '/'
(38243,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38245,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38246,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38252,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38256,121): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38260,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38263,75): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38264,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38270,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38272,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38280,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38289,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38290,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38292,102): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38293,129): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(38294,88): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38296,105): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(38297,116): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38298,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38301,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38310,173): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38310,206): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38311,87): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38312,50): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38313,57): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38314,75): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38315,41): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38315,106): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38321,49): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38322,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38326,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38327,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38332,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38333,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38336,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38340,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38345,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38345,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38350,57): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(38351,40): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38353,73): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38354,73): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38356,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38356,55): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38358,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38360,37): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38363,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38364,77): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38365,27): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38367,26): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38368,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38368,75): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38369,25): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38370,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38376,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38376,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38377,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38380,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38380,72): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38383,114): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38384,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38385,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(38385,74): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38387,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38388,88): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38394,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38394,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38405,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38406,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38409,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38409,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38410,28): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38411,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38423,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38424,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38429,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38430,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38431,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(38438,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38439,35): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38442,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38442,58): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38449,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38449,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38453,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38453,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38462,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38462,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38464,82): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38464,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38465,48): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38469,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-text'
(38485,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-cream-2'
(38486,28): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38489,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-accent'
(38489,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38489,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38492,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-accent'
(38492,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38492,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38495,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38496,55): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(38501,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38501,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-hero-end'
(38501,121): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(38502,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(38503,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(38504,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(38508,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-cream'
(38508,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38508,100): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38510,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(38512,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38512,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38516,40): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38518,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38518,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38525,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38525,114): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38526,52): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38527,54): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38531,70): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38533,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary-safe'
(38533,73): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(38533,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38533,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38534,90): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38541,66): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38543,59): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(38544,72): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38545,100): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(38546,34): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(38561,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38561,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38571,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38571,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38574,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38574,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38575,77): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38575,102): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38588,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38588,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38594,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-ink'
(38594,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38595,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-safe'
(38595,100): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38609,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(38609,62): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38615,17): run-time error CSS1039: Token not allowed after unary operator: '-text-color'
(38615,70): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(38618,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38633,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38633,213): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38635,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38651,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(38653,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38655,44): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38658,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38659,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38662,49): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38662,222): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38662,267): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38666,49): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(38667,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38677,131): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38678,29): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38682,71): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38688,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38689,37): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38691,68): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38694,31): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(38694,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38694,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38695,70): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38703,52): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38707,237): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38711,150): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38717,72): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38718,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38719,41): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38720,41): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(38734,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38734,88): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38734,138): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38738,265): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38775,134): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38780,162): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38780,251): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38780,283): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38815,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38828,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38830,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38842,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38851,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38853,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38861,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38869,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38870,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38877,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38878,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38891,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38895,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38901,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38902,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38912,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38917,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38922,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38931,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38933,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38935,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38939,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38940,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38947,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38963,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38972,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38982,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(38983,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38984,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(38993,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38994,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(39006,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(39016,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39019,29): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(39031,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39035,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39041,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39050,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(39054,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39058,61): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(39066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39068,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39074,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39086,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(39092,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39093,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
 */
/* Bootstrap 5 utility backports for Bootstrap 4 --
   gap, me/ms (margin-end/start), pe/ps (padding-end/start), d-grid, fw-* (font-weight).
   These are used in 400+ places across the codebase. */
.gap-1 { gap: 0.25rem !important; }
.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }
.me-1 { margin-right: 0.25rem !important; }
.me-2 { margin-right: 0.5rem !important; }
.me-3 { margin-right: 1rem !important; }
.me-4 { margin-right: 1.5rem !important; }
.me-5 { margin-right: 3rem !important; }
.ms-1 { margin-left: 0.25rem !important; }
.ms-2 { margin-left: 0.5rem !important; }
.ms-3 { margin-left: 1rem !important; }
.ms-4 { margin-left: 1.5rem !important; }
.ms-5 { margin-left: 3rem !important; }
.ms-auto { margin-left: auto !important; }
.me-auto { margin-right: auto !important; }
.pe-1 { padding-right: 0.25rem !important; }
.pe-2 { padding-right: 0.5rem !important; }
.pe-3 { padding-right: 1rem !important; }
.ps-1 { padding-left: 0.25rem !important; }
.ps-2 { padding-left: 0.5rem !important; }
.ps-3 { padding-left: 1rem !important; }
.d-grid { display: grid !important; }
.fw-light { font-weight: 300 !important; }
.fw-normal { font-weight: 400 !important; }
.fw-medium { font-weight: 500 !important; }
.fw-semibold { font-weight: 600 !important; }
.fw-bold { font-weight: 700 !important; }
.fw-bolder { font-weight: bolder !important; }

/* Bootstrap 3 had .btn + .btn { margin-left: 5px } which BS4 dropped.
   Restores automatic spacing between adjacent sibling buttons site-wide.
   btn-group is unaffected (higher specificity margin-left: -1px wins). */
.btn + .btn { margin-left: 0.5rem; }
/* Safety: flex containers with gap handle their own spacing */
.d-flex > .btn + .btn { margin-left: 0; }

.badge {
    margin-left: 1px;
}

    .bg-secondary {
    color: var(--text-on-dark, #fff) !important;
}
.bg-danger {
    color: var(--text-on-dark, #fff) !important;
}
.scrollable-body {
    display: block; /* allow height and overflow to take effect */
    max-height: 600px; /* pick whatever fixed or max-height you need */
    overflow-y: auto; /* vertical scrollbar only when needed */
    overflow-x: auto; /* prevent a horizontal scrollbar */
}

.badge{
    font-size:100% !important;
}

/* Soft Badge Pattern - Use these instead of solid bg-* badges */
.badge-soft-success {
    background-color: var(--status-success-bg, #d4edda) !important;
    color: var(--status-success-text, #155724) !important;
    border: 1px solid var(--status-success-border, #c3e6cb);
    border-radius: 12px;
    padding: 0.35em 0.75em;
}

.badge-soft-danger {
    background-color: var(--status-danger-bg, #f8d7da) !important;
    color: var(--status-danger-text, #721c24) !important;
    border: 1px solid var(--status-danger-border, #f5c6cb);
    border-radius: 12px;
    padding: 0.35em 0.75em;
}

.badge-soft-warning {
    background-color: var(--status-warning-bg, #fff3cd) !important;
    color: var(--status-warning-text, #856404) !important;
    border: 1px solid var(--status-warning-border, #ffeeba);
    border-radius: 12px;
    padding: 0.35em 0.75em;
}

.badge-soft-info {
    background-color: var(--status-info-bg, #d1ecf1) !important;
    color: var(--status-info-text, #0c5460) !important;
    border: 1px solid var(--status-info-border, #bee5eb);
    border-radius: 12px;
    padding: 0.35em 0.75em;
}

.badge-soft-secondary {
    background-color: var(--bg-muted, #e9ecef) !important;
    color: var(--text-primary, #333) !important;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 12px;
    padding: 0.35em 0.75em;
}

/* ============================================================
   Status pill + entity chip -- the two badge primitives.
   Status pill = semantic state of a row (CONFIRMED / POSITIVE /
   OVERDUE ...). Uppercase, fully rounded, light-bg + dark-text.
   Always right-aligned in the row's first line.
   Entity chip = a quiet label (outlet name, +N more). Sentence
   case, squarish, purple tint, optional leading icon. Rides
   inline with its text. Deliberately NOT a pill so the two read
   as different things. Neither uses the Bootstrap .badge class
   (avoids .badge { font-size:100% !important }).
   ============================================================ */
.bh-status-pill {
    display: inline-block;
    flex-shrink: 0;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
}
.bh-status-pill i { margin-right: 0.3rem; }
.bh-status-pill.ok     { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.bh-status-pill.warn   { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.bh-status-pill.info   { background: var(--status-info-bg, #cce5ff);    color: var(--status-info-text, #004085); }
.bh-status-pill.danger { background: var(--status-danger-bg, #f8d7da);  color: var(--status-danger-text, #721c24); }
.bh-status-pill.muted  { background: var(--bg-muted, #e2e3e5);          color: var(--text-primary, #383d41); }

/* Message-alignment control (BHMessageArm.js) -- 5-point segmented + key-message checklist. Dark-mode safe. */
.bh-msg-row { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.bh-msg-5point { display: inline-flex; gap: .25rem; flex-wrap: wrap; }
.bh-msg-step {
    border: 1px solid var(--border-color, #ced4da);
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-primary, #212529);
    border-radius: 4px; padding: .15rem .4rem; font-size: .75rem; line-height: 1.1; cursor: pointer;
    display: inline-flex; flex-direction: column; align-items: center; min-width: 44px;
}
.bh-msg-step .bh-msg-step-lbl { font-size: .62rem; opacity: .7; }
.bh-msg-step.is-active { background: var(--brand-primary, #3d1a6f); color: #fff; border-color: var(--brand-primary, #3d1a6f); }
.bh-msg-checklist { display: flex; flex-direction: column; gap: .2rem; }
.bh-msg-km { font-size: .8rem; margin: 0; cursor: pointer; }
.bh-msg-km input { margin-right: .35rem; }
.bh-msg-km-readout { margin-top: .15rem; }
.bh-msg-cqi-preview { font-style: italic; opacity: .85; }

/* CQI -> lensed-ProofScore pairing (SYSTEM-WIDE rule, chairman 2026-06-23). The ONLY way CQI may render
   on any client/PDF/portal/public surface: beside its lensed ProofScore as a before/after-the-lens
   comparison. Markup contract = Scoring.ProofScorePairHtml / window.BHScoring.proofScorePairHtml. Never
   hand-build this; never show CQI alone. Dark-mode safe via theme tokens; the result (ProofScore) value
   colour is set inline by the helper from the CQI colour SSOT -- do NOT add colour here. PDF (PagedJS)
   reuses the same classes (print-safe: no shadows, token fallbacks resolve to literals). */
.bh-proofscore-pair {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .85rem;
    line-height: 1.2;
    color: var(--text-primary, #212529);
    white-space: nowrap;
}
.bh-proofscore-pair .bh-ps-before,
.bh-proofscore-pair .bh-ps-after {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.1;
}
.bh-proofscore-pair .bh-ps-k {
    font-size: .6rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    opacity: .65;
}
.bh-proofscore-pair .bh-ps-before .bh-ps-v {
    font-weight: 500;
    opacity: .7;
    color: var(--text-secondary, #6c757d);
}
.bh-proofscore-pair .bh-ps-after .bh-ps-v {
    font-weight: 700;
    /* colour applied inline by the helper from the CQI colour SSOT */
}
.bh-proofscore-pair .bh-ps-arrow {
    opacity: .55;
    font-size: .9rem;
}
.bh-proofscore-pair .bh-ps-lens {
    font-size: .6rem;
    font-style: italic;
    opacity: .6;
    padding: .05rem .3rem;
    border: 1px solid var(--border-color, #ced4da);
    border-radius: 3px;
}
.bh-proofscore-pair--compact { font-size: .78rem; gap: .3rem; }
.bh-proofscore-pair--compact .bh-ps-lens { display: none; }
.bh-proofscore-pair--compact .bh-ps-before,
.bh-proofscore-pair--compact .bh-ps-after { flex-direction: row; gap: .2rem; align-items: baseline; }

/* Prominence control (BHProminence.js) -- 4th arm of CQI and the Lens, 5-level segmented. Dark-mode safe. */
.bh-prom-row { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.bh-prom-5point { display: inline-flex; gap: .25rem; flex-wrap: wrap; }
.bh-prom-step {
    border: 1px solid var(--border-color, #ced4da);
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-primary, #212529);
    border-radius: 4px; padding: .15rem .5rem; font-size: .72rem; line-height: 1.1; cursor: pointer;
}
.bh-prom-step.is-active { background: var(--brand-primary, #3d1a6f); color: #fff; border-color: var(--brand-primary, #3d1a6f); }

.bh-entity-chip {
    display: inline-block;
    vertical-align: middle;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 400;
    margin-left: 6px;
    background: var(--bg-purple-tint, #f0e6f7);
    color: var(--brand-primary, #3d1a6f);
}
.bh-entity-chip.help { cursor: help; }
.bh-entity-chip i { margin-right: 0.3rem; }
.bh-entity-chip.neutral    { background: var(--bg-subtle, #f8f9fa); color: var(--text-secondary, #666); }
.bh-entity-chip.standalone { margin-left: 0; margin-top: 4px; }
.bh-entity-chip .chip-count {
    font-size: 0.7rem;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 1px 4px;
    border-radius: 3px;
    margin-left: 4px;
}

/* Media Monitoring (CRM) folder role colours: brand = teal (the client's own coverage), competitor = slate. */
.bh-entity-chip--brand { background: #e3f5f1; color: #0f6b5e; }
.bh-entity-chip--competitor { background: #eef1f6; color: #46506a; }
[data-theme="dark"] .bh-entity-chip--brand { background: rgba(15,107,94,0.22); color: #6fd9c6; }
[data-theme="dark"] .bh-entity-chip--competitor { background: rgba(70,80,106,0.30); color: #b9c2d8; }

/* Client portal: Notifications pill -- clean card, neutral recipient line, frequency chips, clear toggles. */
.bh-notify-card { background: var(--bg-card, #fff); border: 1px solid var(--border-default, #e7e2f2); border-radius: 10px; padding: 14px 16px; }
.bh-notify-recipient { background: var(--bg-subtle, #f4f6fb); border: 1px solid var(--border-default, #e2e7f2); border-radius: 8px; padding: 9px 12px; font-size: 0.85rem; color: var(--text-body, #3a4256); }
.bh-notify-recipient-cap { font-size: 0.78rem; color: var(--text-muted, #8089a0); margin-top: 2px; }
.bh-notify-label { font-weight: 700; color: var(--brand-primary, #3d1a6f); font-size: 0.9rem; margin: 14px 0 6px; }
.bh-notify-freqdesc { font-size: 0.8rem; color: var(--text-muted, #8a82a0); margin-top: 7px; }
.bh-notify-folder-name { font-weight: 700; color: var(--brand-primary, #3d1a6f); font-size: 0.85rem; margin: 12px 0 2px; }
.bh-notify-toggle { padding: 9px 0; border-top: 1px solid var(--border-subtle, #f0ecf7); }
.bh-notify-toggle:first-of-type { border-top: none; }
.bh-notify-toggle-desc { font-size: 0.78rem; color: var(--text-muted, #8a82a0); margin-top: 2px; margin-left: 2.6rem; }

/* MWFeed folder grid -- single cell action link (Manage / Add to portal / Link client / Manage in X) */
.mw-cell-link {
    color: var(--brand-secondary, #5a2d82);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    margin-left: 0.4rem;
}
.mw-cell-link:hover { color: var(--brand-primary, #3d1a6f); text-decoration: underline; }
[data-theme="dark"] .mw-cell-link { color: var(--link-color, #b89cff); }
[data-theme="dark"] .mw-cell-link:hover { color: #d4c1ff; }

/* Feature chips (Digest/Instant/Compare) ride as small entity chips */
.mw-feat-chip { font-size: 0.66rem; padding: 0.05rem 0.4rem; }
.mw-feat-chip .fa-solid, .mw-feat-chip .fas { font-size: 0.6rem; opacity: 0.75; margin-right: 0.2rem; }

/* MWFeed merged Client/Portal column: truncating client name + quiet portal status word */
.rel-cname { display: inline-block; max-width: 168px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.rel-state { font-size: 0.72rem; font-weight: 600; margin-left: 0.5rem; white-space: nowrap; }
.rel-state::before { content: "\00B7"; margin-right: 0.4rem; color: var(--text-muted, #9b94ac); font-weight: 400; }
.rel-state--in { color: #1d7a3a; }
.rel-state--out { color: var(--text-muted, #8a83a0); }
.rel-state--compare { color: #8a5a00; }
[data-theme="dark"] .rel-state--in { color: #5ed88a; }
[data-theme="dark"] .rel-state--compare { color: #fdb913; }

/* =============================================================================
   BH GOLD HEADER -- Standard gold/cream gradient header class.
   USE THIS CLASS for all new gold-tinted section/card headers.
   Legacy selectors are mapped below for backwards compatibility.
   Dark mode override is in theme-tokens.css.
   ============================================================================= */
.bh-gold-header,
.profile-card-header.yellow,
.card-header,
.info-section-card h4,
.qa-card-header,
.portal-card-header,
.media-release-questions,
.coverage-panel-header,
.survey-import-zone,
.survey-table th,
.agreement-card-header,
.report-link-card,
.calendar-options-header,
.crm-top-contacts-header,
.crm-section-header,
.crm-modal-header,
.group-members-header,
.group-members-panel table thead th,
.table-blocked-emails th,
.table-condensed > tbody > tr > th,
.key-messages-modal .modal-header,
.edm-groups-header,
.ji-country-pack,
.branding-logo-card-header,
.branding-crop-header,
.sp-tips-card-header,
.brand-header-card,
.form-card h3, .form-card h4, .form-card .form-header,
.storybuilder-form h3, .storybuilder-form h4,
.sub-brand-expandable.expanded .sub-brand-header-row,
.crm-contact-card .card-header,
.slideout-body .qa-card-header,
.modal-body .input-group .input-group-text,
.form-view-modern .input-group .input-group-text {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
}

@keyframes homeswooshIn {
    0% {
        transform: translateY(50px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

.homeswoosh-panel {
    opacity: 0;
    animation: homeswooshIn 0.8s ease forwards;
}


.inactive-group-row {
    color: var(--text-secondary, #666);
}

.emailfieldpicker {
    margin-bottom: .2rem;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    background: var(--bg-subtle, #fafafa);
    padding: 10px 12px;
    box-shadow: 0 1px 4px rgba(61, 26, 111, 0.04);
}

.nwcontentcard {
    cursor: move;
    padding-top: 1rem;
}

.talentcontentcontainer {
    padding-bottom: 5rem;
}

/* jQuery UI .sortable() is fully retired -- every drag-to-reorder list now uses SortableJS via
   BHSortable.reorder (bh-sortable.js). The former .ui-sortable-helper / .ui-sortable-placeholder
   rules were removed; the drag-clone visual lives only in the .sortable-drag rules below, tokenised
   via --bh-drag-tilt / --bh-drag-lift-shadow (theme-tokens.css). */

/* SortableJS drag visuals -- the "pulled by the collar" tilt + lift. There are TWO drag modes and
   they must be handled differently, or the floating clone freezes (see NewsWireCard file list bug):
   1. NATIVE HTML5 drag (sales-pipeline kanban et al -- no forceFallback): the SOURCE element is
      tagged .sortable-drag and the browser snapshots it for the drag image. !important guarantees
      the tilt wins over the element's own styles. The clone has NO .sortable-fallback class.
   2. forceFallback (most reorder lists): SortableJS appends a position:fixed CLONE tagged
      .sortable-fallback AND .sortable-drag, and moves it by rewriting its inline `transform` matrix
      every frame. An !important transform there beats that inline matrix and FREEZES the clone so it
      stops following the pointer. The clone therefore gets a NON-important tilt: SortableJS reads the
      matrix, keeps the rotate+scale, and adds the translate -- tilt AND tracking. transition:none so
      a list-row `transition: all` cannot ease (lag) the per-frame follow.
   Lists that set a bespoke dragClass (bh-wl-drag / talent-sortable-drag / nwc-file-drag-clone) carry
   neither selector below -- their clones lack .sortable-drag -- so they style themselves, untouched.
   Tilt + lift values are tokenised (--bh-drag-tilt / --bh-drag-lift-shadow) in theme-tokens.css. */
.sortable-drag:not(.sortable-fallback) {
    transform: var(--bh-drag-tilt) !important;
    transform-origin: 50% 0 !important;
    filter: var(--bh-drag-lift-shadow) !important;
    z-index: 1000 !important;
}
.sortable-drag.sortable-fallback {
    transform: var(--bh-drag-tilt);
    transform-origin: 50% 0;
    filter: var(--bh-drag-lift-shadow);
    z-index: 100000;
    transition: none;
}
.sortable-ghost {
    background: rgba(61, 26, 111, 0.04) !important;
    border: 2px dashed rgba(61, 26, 111, 0.30) !important;
    border-radius: 8px !important;
    opacity: 1 !important;
}
.sortable-chosen { cursor: grabbing !important; }

/* Text-selection guard for a live BHSortable drag. bh-sortable.js raises body.bh-drag-active for the
   whole gesture (choose -> end/unchoose). A force-fallback drag tracks the pointer with a floating
   clone; without this the browser's native text selection sweeps a highlight across the page as the
   pointer moves. Scoped to the active drag only, so normal select/copy of card text is unaffected. */
body.bh-drag-active,
body.bh-drag-active * {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

/* HTML5 native drag (Default.aspx kanban, NewsWireCard file list). The floating "drag image"
   the browser shows is a raster snapshot taken at dragstart, so CSS on the source can't tilt
   that image. To fix this we use `event.dataTransfer.setDragImage(clone)` with a styled clone
   element marked `.bh-drag-clone` -- styled HERE so every native-drag caller gets the same
   collar look without re-implementing the visual. */
.bh-drag-clone {
    transform: rotate(-2deg) scale(1.02);
    transform-origin: 50% 0;
    filter: drop-shadow(0 18px 40px rgba(61, 26, 111, 0.40));
    pointer-events: none;
    background: var(--bg-surface, #fff);
    border-radius: 8px;
}


.nwactionscard{
    margin-top: 1rem;
}
.salesitemcard {
    cursor: move;
    padding-top: 1rem;
    min-height: 8rem !important;
}
.surveyquestioncard {
    cursor: move;
    padding-top: .4rem;
}
.changelogoSA {
    top: -30px;
    text-shadow: 0px 0px 0px white;
}
.wraplong {
    max-width: 200px;
    overflow: auto;
}
.pop-image {
    width: 100%; /* Adjust width as needed */
    max-width: 300px;
    transition: transform 0.3s ease, box-shadow 0.3s ease; /* Smooth transition for effects */
    border: 1px solid #333; /* Solid border, you can choose any color */
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2); /* Enhances shadow on hover for 3D effect */
    cursor: pointer; /* Changes the cursor to indicate interactivity */
}

    .pop-image:hover {
        transform: scale(1.05); /* Slightly enlarges the image on hover */
    }


.tab-space {
    margin-left: 40px; /* You can adjust the space to suit your layout */
}
.video-responsive {
    overflow: hidden;
    padding-bottom: 56.25%;
    position: relative;
    height: 0;
}

    .video-responsive iframe {
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        position: absolute;
    }

/* Move down content because we have a fixed navbar that is 50px tall */
.nav-tabs {
    margin-left: 2em;
}

/* Canonical CampaignBuilder pane chrome -- SSOT for top gutter + width on every
   main tab. Every pane feels the same width and the same gap to the first card,
   regardless of whether its inner wrapper is .container, .container-fluid, or
   nothing at all. Max-width breakpoints mirror .container's BUZZHub responsive
   overrides (BUZZHub.css ~2734-2762) -- caps at 1340-2100px so ultrawide screens
   don't get the skewed full-bleed look that .container-fluid produces.
   Do not reintroduce per-pane mt-3 / mt-2 / padding-top:0 / .container-fluid
   expecting full-bleed -- they will be overridden. */
#myTabs + .tab-content > .tab-pane {
    padding-top: 1rem;
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 576px)  { #myTabs + .tab-content > .tab-pane { max-width: 540px; } }
@media (min-width: 768px)  { #myTabs + .tab-content > .tab-pane { max-width: 720px; } }
@media (min-width: 992px)  { #myTabs + .tab-content > .tab-pane { max-width: 960px; } }
@media (min-width: 1200px) { #myTabs + .tab-content > .tab-pane { max-width: 1140px; } }
@media (min-width: 1400px) { #myTabs + .tab-content > .tab-pane { max-width: 1340px; } }
@media (min-width: 1500px) { #myTabs + .tab-content > .tab-pane { max-width: 1470px; } }
@media (min-width: 1700px) { #myTabs + .tab-content > .tab-pane { max-width: 1640px; } }
@media (min-width: 1920px) { #myTabs + .tab-content > .tab-pane { max-width: 1840px; } }
@media (min-width: 2200px) { #myTabs + .tab-content > .tab-pane { max-width: 2100px; } }

.sub-content {
    border-left: 1px var(--brand-primary, #3d1a6f) solid;
    border-top: 0px !important;
    min-height: 75vh;
    padding-left: 5px;
}

.sub-content > .tab-pane {
    padding-top: 1em !important;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

/* Section title banner: neutral slate fill + gold left-accent. Class name `.yellow`
   is legacy; visual treatment moved from gold-fill to slate-tint 2026-05-12 so the
   chrome doesn't drown the data on multi-section dashboards. Gold reserved as accent.
   theHive selectors: its main tab area is a plain .tab-content (no .sub-content), so
   its in-flow section headers are opted in explicitly. */
.sub-content .profile-card-header.yellow,
.smallside .profile-card-header.yellow,
.preferences-card .profile-card-header.yellow,
#forumModPanel .profile-card-header.yellow {
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 0 10px 10px 0 !important;
    padding: clamp(0.4rem, 0.6vw + 0.25rem, 0.625rem) clamp(0.75rem, 1vw + 0.5rem, 1rem);
    margin-bottom: 1rem;
    gap: 0.625rem;
}
.sub-content .profile-card-header.yellow h4,
.smallside .profile-card-header.yellow h4,
.preferences-card .profile-card-header.yellow h4,
#forumModPanel .profile-card-header.yellow h4 {
    font-size: clamp(0.95rem, 0.3vw + 0.85rem, 1.05rem);
    margin: 0;
    color: var(--brand-primary, #3d1a6f);
}
/* Headers inside profile-cards get top-only radius to connect with card body */
.sub-content .profile-card .profile-card-header.yellow,
.preferences-card .profile-card-header.yellow,
#forumModPanel .profile-card-header.yellow {
    border-radius: 0 12px 0 0 !important;
    padding: clamp(0.4rem, 0.6vw + 0.25rem, 0.625rem) clamp(0.75rem, 1vw + 0.5rem, 1rem);
    margin-bottom: 0;
}
.sub-content .profile-card .profile-card-header.yellow h4 {
    font-size: clamp(0.95rem, 0.3vw + 0.85rem, 1.05rem);
    margin: 0;
}

/* Pro Bono CMS accordion (MediaCast): Bootstrap .card-header inherits the legacy gold-fill
   omnibus (BUZZHub.css .card-header). Bring these section headers onto the canonical slate
   treatment (slate-tint fill + 4px gold left-border, swapped 2026-05-12) that
   .profile-card-header.yellow uses. Scoped to #probonoAccordion so global .card-header is untouched. */
#probonoAccordion .card-header {
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-bottom: 1px solid var(--border-default, #e5e5e5);
    padding: 0;
}
#probonoAccordion .card-header .btn-link {
    display: block;
    width: 100%;
    text-align: left;
    text-decoration: none;
    color: var(--page-title-color, #3d1a6f);
    font-weight: 600;
    font-size: clamp(0.95rem, 0.3vw + 0.85rem, 1.05rem);
    padding: clamp(0.4rem, 0.6vw + 0.25rem, 0.625rem) clamp(0.75rem, 1vw + 0.5rem, 1rem);
}
#probonoAccordion .card-header .btn-link:hover,
#probonoAccordion .card-header .btn-link:focus {
    color: var(--page-title-color, #3d1a6f);
    text-decoration: none;
    background: transparent;
    box-shadow: none;
}

/* theHive MediaCast-only SOP accordion: same Bootstrap accordion pattern as Pro Bono CMS
   above -- .card-header inherits the legacy gold omnibus; bring it onto the canonical
   slate treatment. Tokens flip in dark mode, so no dark override needed. */
#HelpAccordionMC .card-header {
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913);
}

@media screen and (max-width: 480px) {
    .nav-tabs > li {
        float: none;
    }
}
/* Main tab strips = UNDERLINE TABS, sized up for primary prominence (one SSOT).
   Quiet labels on a shared 1px hairline that separates the nav band from content.
   Inactive = MUTED GREY label + faint purple icon (recedes); hover = brand-purple
   label + gold underline preview; active = BOLD brand-purple label + gold icon + 3px
   gold underline on the baseline. Muting the inactive labels is what makes the active
   one read (grey -> bold purple + gold), fixing the earlier "every label same colour"
   blur. Modern primary-nav idiom (GitHub/Stripe/Vercel/Material). Release-picker cards
   (.nav-link.release-card on #releaseTypeTabs) keep their own treatment, excluded via
   :not(.release-card). 2026-06-23: filled-pill -> bigger underline (George-preferred,
   tidier); filled pill stays the sub-nav (bh-pill-nav) idiom unless that is lightened
   too. */
.nav-tabs {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.25rem 1.6rem;
    border-bottom: 1px solid var(--border-light, #e6e4ee);
    margin-left: 0;
    margin-bottom: 1.1rem;
}

.nav-tabs .nav-item {
    flex: 0 0 auto;
    width: auto;
    margin: 0 0 -1px 0;
    display: flex;
}

.nav-tabs .nav-link:not(.release-card) {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.6rem 0.2rem;
    border: 0 !important;
    border-bottom: 3px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--text-muted, #6c757d) !important;
    font-weight: 600;
    font-size: 0.86rem;
    line-height: 1;
    white-space: nowrap;
    min-height: 42px;
    box-sizing: border-box;
    box-shadow: none !important;
    transition: color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.nav-tabs .nav-link:not(.release-card) i {
    margin-right: 0 !important;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.92rem;
    opacity: 0.65;
}

.nav-tabs .nav-link:not(.release-card):hover,
.nav-tabs .nav-link:not(.release-card):focus {
    background: transparent !important;
    border-bottom-color: var(--brand-accent, #fdb913) !important;
    color: var(--brand-primary, #3d1a6f) !important;
}
.nav-tabs .nav-link:not(.release-card):hover i,
.nav-tabs .nav-link:not(.release-card):focus i { opacity: 1; }

.nav-tabs .nav-link:not(.release-card):focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 2px;
}

/* Active = bold brand-purple label + gold icon + 3px gold underline on the baseline. */
.nav-tabs .nav-link.active:not(.release-card),
.nav-tabs .nav-item.show .nav-link:not(.release-card) {
    background: transparent !important;
    color: var(--brand-primary, #3d1a6f) !important;
    font-weight: 700;
    border-bottom: 3px solid var(--brand-accent, #fdb913) !important;
    box-shadow: none !important;
}

.nav-tabs .nav-link.active:not(.release-card) i,
.nav-tabs .nav-item.show .nav-link.active:not(.release-card) i {
    color: var(--brand-accent, #fdb913) !important;
    opacity: 1;
}

/* Count / step badges ride along quietly beside the label. */
.nav-tabs .nav-link:not(.release-card) .badge { margin-left: 0.2rem; }

/* Dark mode: same underline idiom on the dark baseline. */
[data-theme="dark"] .nav-tabs {
    border-bottom-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .nav-tabs .nav-link:not(.release-card) {
    background: transparent !important;
    border-bottom-color: transparent !important;
    color: var(--text-muted, #959595) !important;
}
[data-theme="dark"] .nav-tabs .nav-link:not(.release-card) i {
    color: var(--brand-primary, #c9a6f0);
}
[data-theme="dark"] .nav-tabs .nav-link:not(.release-card):hover,
[data-theme="dark"] .nav-tabs .nav-link:not(.release-card):focus {
    background: transparent !important;
    border-bottom-color: var(--brand-accent, #fdb913) !important;
    color: var(--brand-primary, #e5d9ff) !important;
}
[data-theme="dark"] .nav-tabs .nav-link.active:not(.release-card),
[data-theme="dark"] .nav-tabs .nav-item.show .nav-link:not(.release-card) {
    background: transparent !important;
    color: var(--brand-primary, #e5d9ff) !important;
    border-bottom-color: var(--brand-accent, #fdb913) !important;
    box-shadow: none !important;
}
[data-theme="dark"] .nav-tabs .nav-link.active:not(.release-card) i,
[data-theme="dark"] .nav-tabs .nav-item.show .nav-link.active:not(.release-card) i {
    color: var(--brand-accent, #fdb913) !important;
}

/* Step number circles for wizard-style tab navigation */
.nav-tabs .step-num {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-right: 6px;
    flex-shrink: 0;
}
.nav-tabs .nav-link.active .step-num {
    background: var(--brand-primary, #3d1a6f);
}
.nav-tabs .nav-link.step-completed .step-num {
    background: var(--status-success, #28a745);
}

/* bh-pill-nav SSOT lives in engagement-design-system.css section 2bb (DS 11a).
   This BUZZHub.css block previously duplicated it, which created !important conflicts
   that hid icons on the active state. Retired 2026-05-23. Do not re-add here. */

/* sub-content--horizontal: when bh-pill-nav owns the navigation, kill the legacy
   left border + padding that .sub-content adds for the vertical col-2 smallside rail.
   Also drop the 1em tab-pane padding-top so pills+content match the tight vertical
   rhythm of tabs without sub-pills (Brief, Media Releases). */
.sub-content.sub-content--horizontal { border-left: 0; padding-left: 0; min-height: 0; }
.sub-content.sub-content--horizontal > .tab-pane { padding-top: 0 !important; padding-left: 0; padding-right: 0; }

/* Horizontal Stepper - for progressive workflow pages (EmailPitching, CampaignBuilder) */
.ep-stepper {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 12px 12px 0 0;
    overflow-x: auto;
    gap: 0;
    border-bottom: 2px solid var(--brand-primary, #3d1a6f);
}
.ep-step {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    padding: 0.4rem 0.6rem;
    border-radius: 8px;
    transition: background 0.2s;
    white-space: nowrap;
    position: relative;
}
.ep-step:hover { background: var(--bg-purple-tint, #f8f5ff); }
.ep-step.active { background: var(--bg-purple-tint, #f5f0ff); }
.ep-step.active .ep-step-label { color: var(--brand-primary, #3d1a6f); font-weight: 600; }
.ep-step.disabled { opacity: 0.4; pointer-events: none; }
.ep-step-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    flex-shrink: 0;
    background: var(--bg-purple-tint, #e0d4f0);
    color: var(--brand-primary, #3d1a6f);
    transition: all 0.2s;
}
.ep-step.active .ep-step-num { background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff); }
.ep-step.completed .ep-step-num { background: var(--status-success, #28a745); color: var(--text-on-dark, #fff); }
.ep-step-label { font-size: 0.78rem; color: var(--text-tertiary, #888); transition: color 0.2s; }
.ep-step.completed .ep-step-label { color: var(--status-success, #28a745); }
.ep-step-connector {
    width: 20px;
    height: 2px;
    background: var(--bg-purple-tint, #e0d4f0);
    flex-shrink: 0;
}
.ep-step.completed + .ep-step-connector { background: var(--status-success, #28a745); }
.ep-stepper-progress {
    height: 3px;
    background: var(--bg-purple-tint, #e0d4f0);
}
.ep-stepper-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #28a745, #3d1a6f);
    transition: width 0.3s;
    width: 0%;
}
@media (max-width: 990px) {
    .ep-stepper { flex-wrap: wrap; gap: 4px; padding: 0.5rem; }
    .ep-step-connector { display: none; }
    .ep-step { padding: 0.3rem 0.5rem; }
    .ep-step-label { font-size: 0.7rem; }
}

/* ===== COMPOSE CARD - unified editor + preview ===== */
.compose-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: 0 2px 8px rgba(61, 26, 111, 0.06);
}
.compose-card-header {
    border-radius: 0 !important;
    margin-bottom: 0 !important;
}

/* Editor body */
.compose-editor-body {
    padding: 15px 20px;
}

/* ===================================================================
   Field Picker (shared SSOT)
   Canonical styles for [data-bh-picker] trees rendered by
   JScript/bh-field-picker.js. Used by Admin Outreach, EmailPitching
   compose and ClientEDM -- the per-page inline copies were retired so
   this single block governs all three. Dark mode via theme-tokens.css.
   =================================================================== */
.field-picker-title {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-secondary, #6a6a78);
    margin-bottom: 4px;
}
.field-picker-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--text-muted, #8a82a0);
    margin-bottom: 12px;
}
.field-picker-hint i {
    color: var(--brand-accent, #fdb913);
}
.field-picker-tree {
    font-family: 'Outfit', sans-serif;
    font-size: 12px;
    max-height: 500px;
    overflow-y: auto;
}
.field-category {
    margin-bottom: 6px;
}
.field-category-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    font-weight: 700;
    font-size: 11.5px;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-slate-tint, #f1f0f4);
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 5px;
    cursor: pointer;
    user-select: none;
}
.field-category-header:hover {
    background: var(--bg-slate-tint-2, #f8f7fa);
}
.field-category-header .toggle-icon {
    margin-left: auto;
    transition: transform 0.2s ease;
    color: var(--text-secondary, #9b8fb5);
    font-size: 10px;
}
.field-category-header.collapsed .toggle-icon {
    transform: rotate(-90deg);
}
.field-category-children {
    padding: 6px 2px 4px;
}
.field-category-children.collapsed {
    display: none;
}
.field-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    margin: 5px 0;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 7px;
    cursor: grab;
    font-size: 12.5px;
    color: var(--text-primary, #3a3346);
    transition: background 0.15s, border-color 0.15s;
}
.field-item .grip {
    flex: 0 0 auto;
    font-size: 10px;
    color: var(--text-muted, #b9aed2);
}
.field-item > span {
    min-width: 0;
    overflow-wrap: break-word;
    line-height: 1.25;
}
.field-item:hover {
    background: var(--status-warning-bg, #fff8e6);
    border-color: var(--brand-accent, #fdb913);
}
.field-item:focus {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: -1px;
}
.field-item.dragging {
    opacity: 0.5;
    cursor: grabbing;
}
/* The drag preview is the shared "pulled by the collar" floating clone (bhSetCollarDragImage in
   Site.Master), so the chip lifts + tilts + casts the same shadow as the SortableJS reorder lists.
   No bespoke drag-image rule here -- the helper styles its clone inline. */
/* Ready-made blocks read as the same light chip as single fields -- only a thin brand
   left-edge marks them as multi-part blocks. Keeps the picker calm (the content is the hero). */
.field-item--block {
    border-left: 3px solid var(--brand-primary, #3d1a6f);
}

/* Opt-in rich-text editor placeholder. The host control sets data-placeholder (BHRichTextEditor
   Placeholder property); RichTextEditor.js toggles .bh-rte-empty while the editable area has no
   text and no media. The hint shows only when both line up, and vanishes on the first keystroke. */
.bh-rte-editor.bh-rte-empty[data-placeholder]::before {
    content: attr(data-placeholder);
    color: var(--text-muted, #9a90ad);
    font-style: italic;
    pointer-events: none;
}

/* Extra-wide modal variant -- used by the template editors (picker + canvas need room).
   Caps at the viewport so it stays usable on small screens; resizable modals can still grow. */
.modalPopup.modal-xwide {
    width: 1180px;
    max-width: 96vw;
}

/* Make field picker and RTE stretch to equal height */
.ep-editor-row {
    display: flex;
    align-items: stretch;
}
.ep-editor-row .emailfieldpicker {
    display: flex;
    flex-direction: column;
}
.ep-editor-row .emailfieldpicker .field-picker-tree {
    flex: 1;
    overflow-y: auto;
    /* The composer column is much taller than the base 500px tree cap; a short inner
       scroll window there reads as the end of the list. Grow with the viewport,
       never below the base cap. */
    max-height: max(500px, calc(100vh - 280px));
}
/* Side-by-side layout: the editor column sets the row height, so the picker list must
   fill its panel exactly. Out-of-flow so the list's own length can never stretch the
   row; insets mirror the .emailfieldpicker padding. Stacked (narrow) layout keeps the
   in-flow capped behaviour above. */
@media (min-width: 768px) {
    .ep-editor-row .emailfieldpicker {
        position: relative;
        min-height: 420px;
    }
    .ep-editor-row .emailfieldpicker .field-picker-tree {
        position: absolute;
        top: 10px;
        right: 12px;
        bottom: 10px;
        left: 12px;
        max-height: none;
    }
}
.ep-editor-row .richtextwrapper {
    display: flex;
    flex-direction: column;
}
.ep-editor-row .richtextwrapper .rte-container,
.ep-editor-row .richtextwrapper textarea {
    flex: 1;
    min-height: 350px;
}

/* Email Preview -- per-send brand toggle bar. Pinned to the top of the scrolling
   modal body so the operator opts in before reading the email, and stays reachable
   while scrolling a long body. Purple-tint gradient tokens flip in dark mode. */
.ep-preview-options {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
    background: linear-gradient(135deg, var(--bg-subtle, #fafafa) 0%, var(--bg-purple-tint, #f5f3f8) 100%);
}
.ep-brand-toggle { display: inline-flex; align-items: center; }
.ep-brand-toggle .custom-control { margin-bottom: 0; }

@media (max-width: 768px) {
    .compose-editor-body { padding: 10px 12px; }
}

/* Autosave status indicator (EmailPitching compose card) */
.ep-autosave-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.7rem;
    font-weight: 400;
    margin-left: 12px;
    vertical-align: middle;
}
.ep-autosave-idle { color: var(--text-secondary, #666); }
.ep-autosave-saving { color: var(--brand-primary, #3d1a6f); }
.ep-autosave-saved { color: #198754; }
.ep-autosave-error { color: var(--status-danger, #dc3545); }
.ep-autosave-status i { font-size: 0.65rem; }

/* Preview is now a modal popup - no toggle mode CSS needed */

/* Merge token pills - unresolved placeholders in email preview */
.merge-token-pill {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    font-family: 'Outfit', sans-serif;
    background: var(--bg-purple-tint, #f5f0ff);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--border-brand, #e0d4f0);
    white-space: nowrap;
    vertical-align: baseline;
}
.merge-token-pill i {
    font-size: 0.6rem;
    margin-right: 3px;
    color: var(--brand-accent, #fdb913);
}
/* Story-level tokens (will be replaced with release content at send time) */
.merge-token-pill.story-token {
    background: var(--status-warning-bg, #fff8e6);
    border-color: var(--brand-accent, #fdb913);
    color: var(--status-warning-text, #8a6d00);
}
/* Recipient tokens (personalised per journalist at send time) */
.merge-token-pill.recipient-token {
    background: #e8f5e9;
    border-color: #66bb6a;
    color: #2e7d32;
}

/* Subject line character counter */
.subject-char-counter {
    font-size: 0.7rem;
    text-align: right;
    padding: 2px 8px 0;
    color: var(--text-secondary, #666);
}
.subject-char-counter.warn { color: var(--brand-accent, #fdb913); font-weight: 600; }
.subject-char-counter.over { color: var(--status-danger, #dc3545); font-weight: 600; }

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    background-color: var(--bg-purple-tint, #f3edf9) !important;
    color: var(--brand-primary, #3d1a6f) !important;
    border: 1px solid var(--brand-primary, #3d1a6f) !important;
    font-weight: 600;
}

/* Survey status / Permission switchers now use the canonical bh-pill-nav SSOT
   (engagement-design-system.css). The former page-local .bh-switcher-btn class was
   removed 2026-06-15 -- no remaining consumers. */

/* Vertical Nav Pills - Modern Style */
.nav.flex-column.nav-pills .nav-link {
    color: var(--text-secondary, #666);
    padding: 0.75rem 1.25rem;
    border-radius: 8px;
    margin-bottom: 0.5rem;
    transition: all 0.2s ease;
    font-weight: 500;
    border-left: 3px solid transparent;
}
.nav.flex-column.nav-pills .nav-link:hover {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
    border-left-color: var(--brand-accent, #fdb913);
}
.nav.flex-column.nav-pills .nav-link.active {
    background: var(--bg-purple-tint, #f3edf9) !important;
    color: var(--brand-primary, #3d1a6f) !important;
    border-left-color: var(--brand-accent, #fdb913);
    font-weight: 600;
}


.makemiddle {
    text-align: center !important;
}
/* for preloader */
#preloader {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    text-align: center;
    color: var(--text-primary, #000);
}

    #preloader div {
        width: 30px;
        margin: auto;
        height: 30px;
        text-align: center;
        border: 4px solid #111;
        overflow: hidden;
        border: none;
        font-size: 12px;
    }

#preloader_image {
    position: relative;
    left: 0px;
    top: 0px;
    content: url('/images/loading.svg');
}

/*display fade screen when leaving or loading another link*/
#overlayleaving {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    background: #000;
    opacity: 0.6;
    filter: alpha(opacity=60);
}

#leaving {
    width: 50px;
    height: 57px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -28px 0 0 -25px;
    z-index: 2000;
    content: url('/images/loading.svg');
}

.pdfblock {
    display: block;
    width: 100%;
    vertical-align: middle;
    background-color: var(--bg-muted, #eeeeee);
    border: 1px solid var(--border-strong, #ccc);
    padding: 5px 10px;
    font-size: 14px;
    line-height: 1.5;
    border-radius: 3px;
    color: black;
}

.invoicetotal {
    border-top: 1px solid black;
}

.invoicetotalbottom {
    border-bottom: 5px double black;
}

input[type=checkbox] {
    zoom: 1;
}

/* Reset zoom for Bootstrap form checkboxes - they handle their own sizing */
.form-check-input {
    zoom: 1;
}

.invoice {
    margin-bottom: 20px;
    background-color: var(--bg-surface, #fff);
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.gridviewboldlarge {
    font-size: 24px;
    font-weight: 500;
}

.gridnumberformat {
    text-align: right;
}

.invoice-body {
    padding: 15px;
    min-height:4cm;
}

    .invoice-body:before,
    .invoice-body:after {
        display: table;
        content: " ";
    }

    .invoice-body:after {
        clear: both;
    }

    .invoice-body:before,
    .invoice-body:after {
        display: table;
        content: " ";
    }

    .invoice-body:after {
        clear: both;
    }

.invoice > .list-group {
    margin-bottom: 0;
}

    .invoice > .list-group .list-group-item {
        border-width: 1px 0;
    }

        .invoice > .list-group .list-group-item:first-child {
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .invoice > .list-group .list-group-item:last-child {
            border-bottom: 0;
        }

.invoice-heading + .list-group .list-group-item:first-child {
    border-top-width: 0;
}

.invoice > .table {
    margin-bottom: 0;
}

.invoice > .invoice-body + .table {
    border-top: 1px solid var(--brand-accent, #fdb913);
}

.invoice-heading {
    padding: 5px 7px;
    border-bottom: 1px solid transparent;
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
    font-size:11pt;
}

.invoice-title {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 16px;
}

    .invoice-title > a {
        color: inherit;
    }

.invoice-footer {
    padding: 5px 7px;
    background-color: var(--brand-primary, #3d1a6f);
    border-top: 1px solid black;
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.invoice-group .invoice {
    margin-bottom: 0;
    overflow: hidden;
    border-radius: 4px;
}

    .invoice-group .invoice + .invoice {
        margin-top: 5px;
    }

.invoice-group .invoice-heading {
    border-bottom: 0;
}

    .invoice-group .invoice-heading + .invoice-collapse .invoice-body {
        border-top: 1px solid black;
    }

.invoice-group .invoice-footer {
    border-top: 0;
}

    .invoice-group .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom: 1px solid black;
    }

.invoice-default {
    border-color: var(--border-strong, #ccc);
}

    .invoice-default > .invoice-heading {
        color: black;
        background-color: var(--bg-surface, #fff);
        border-color: var(--border-strong, #ccc);
    }

        .invoice-default > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: black;
        }

    .invoice-default > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: black;
    }

.invoice-primary {
    border-color: black;
}

    .invoice-primary > .invoice-heading {
        color: var(--text-on-dark, #fff);
        background-color: black;
        border-color: black;
    }

        .invoice-primary > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: black;
        }

    .invoice-primary > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: black;
    }

.invoice-success {
    border-color: black;
}

    .invoice-success > .invoice-heading {
        color: var(--text-on-dark, #fff);
        background-color: black;
        border-color: black;
    }

        .invoice-success > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: black;
        }

    .invoice-success > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: black;
    }

.invoice-warning {
    border-color: #fbeed5;
}

    .invoice-warning > .invoice-heading {
        color: #c09853;
        background-color: var(--bg-gold-tint, #fcf8e3);
        border-color: var(--brand-primary, #3d1a6f);
    }

        .invoice-warning > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: var(--brand-primary, #3d1a6f);
        }

    .invoice-warning > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: var(--brand-primary, #3d1a6f);
    }

.invoice-danger {
    border-color: var(--brand-primary, #3d1a6f);
}

    .invoice-danger > .invoice-heading {
        color: var(--status-danger-text, #b94a48);
        background-color: #f2dede;
        border-color: var(--brand-primary, #3d1a6f);
    }

        .invoice-danger > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: var(--brand-primary, #3d1a6f);
        }

    .invoice-danger > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: var(--brand-primary, #3d1a6f);
    }

.invoice-info {
    border-color: var(--brand-primary, #3d1a6f);
}

    .invoice-info > .invoice-heading {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--bg-surface, #fff);
        border-color: var(--border-strong, #ccc);
    }

        .invoice-info > .invoice-heading + .invoice-collapse .invoice-body {
            border-top-color: var(--border-strong, #ccc);
        }

    .invoice-info > .invoice-footer + .invoice-collapse .invoice-body {
        border-bottom-color: var(--border-strong, #ccc);
    }



    a:hover, a:focus {
        color: var(--text-body, rgba(0,0,0,0.65));
        text-decoration: none;
    }

/* update panel refresh screens*/
.overlay {
    height: 100% !important;
    /*background: url('/images/loading.svg') no-repeat 50% 50%;*/
    width: 100% !important;
    position: fixed;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: none;
    z-index: 10000001 !important;
    background-color: rgba(0,0,0,0.40);
}

.modalHighLevel {
    z-index: 10000002 !important;
}
/**/

.page-loader {
    position: absolute;
    content: url('/images/loading.svg');
    display: none;
    z-index: 10000001 !important;
    opacity: 1.0;
    left: 50vw !important;
    top: 20vh !important;
    width: 50px;
}

/* Global page loader - single centered overlay (December 2025) */
.page-loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--loader-overlay-bg, rgba(255, 255, 255, 0.7));
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000001;
}
.page-loader-spinner {
    width: 50px;
    height: 50px;
    background: url('/images/loading.svg') no-repeat center center;
    background-size: contain;
}

.mybox {
    background-color: var(--bg-danger-subtle, #faeeee);
    padding: 5px;
    border: 5px solid darkred;
    margin: 35px;
    -webkit-border-radius: 1px;
    -moz-border-radius: 5px;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}

/*master page notification and calendar styling*/
.nonotification {
    width: 0px;
    height: 0px;
    visibility: hidden;
}

.notifications {
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    font-size: 12px;
    margin-left: -6px;
    font-family: 'Outfit', sans-serif;
    background: red;
    border-color: var(--text-on-dark, #fff);
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    border-bottom: solid 5px;
    border-left: solid 5px;
    border-right: solid 5px;
    border-top: solid 5px;
    border-width: 2px;
    width: 20px;
    height: 20px;
    text-align: center;
}
/* Wrapping element */
/* Set some basic padding to keep content from hitting the edges */
.blink_me {
    -webkit-animation-name: blinker;
    -webkit-animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -moz-animation-name: blinker;
    -moz-animation-duration: 1s;
    -moz-animation-timing-function: linear;
    -moz-animation-iteration-count: infinite;
    animation-name: blinker;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.text-large {
    font-size: 20px;
}

.RRQuestion {
    font-weight: 500;
    color: darkkhaki;
    font-size: 20px;
}

.RRAnswer {
    font-weight: 500;
    color: darkkhaki;
    font-size: 20px;
}

@-moz-keyframes blinker {
    0% {
        opacity: 1.0;
    }

    50% {
        opacity: 0.0;
    }

    100% {
        opacity: 1.0;
    }
}

@-webkit-keyframes blinker {
    0% {
        opacity: 1.0;
    }

    50% {
        opacity: 0.0;
    }

    100% {
        opacity: 1.0;
    }
}

@keyframes blinker {
    0% {
        opacity: 1.0;
    }

    50% {
        opacity: 0.0;
    }

    100% {
        opacity: 1.0;
    }
}
/*working area*/

.body-content {
    flex: 1 0 auto;
    padding-top: 60px;
    padding-left: 15px;
    padding-right: 15px;
    color: var(--brand-primary, #3d1a6f);
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 14px;
}
.nwbody-content {
    /*padding-top: 90px;*/
    padding-left: 15px;
    padding-right: 15px;
    /*color: var(--brand-primary, #3d1a6f);*/
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 14px;
}
.color-gridheader {
    background-color: azure;
}

.hidden-gridcolumn {
    display: none;
}

input[type='checkbox']:hover {
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}


.gvvgridhide {
    display: none;
    color: azure;
    background-color: blue;
}

.text-bold {
    font-weight: 500;
}

.text-total {
    border-bottom: double;
    border-top: solid 1px black;
}

.text-subtotal {
    border-top: solid 1px black;
}

/* =============================================================================
   Payments Received Modal
   ============================================================================= */
.payments-received-body {
    padding: 20px 15px 30px !important;
}

.payments-toolbar {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.payments-summary {
    margin-top: 24px;
    max-width: 420px;
    margin-left: auto;
}

.payments-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 8px 0;
}

.payments-summary-label {
    font-weight: 600;
    color: var(--text-primary, #444);
    font-size: 0.9rem;
}

.payments-summary-value {
    font-weight: 600;
    color: var(--text-primary, #222);
    text-align: right;
    min-width: 120px;
    font-size: 0.95rem;
}

.payments-summary-row + .payments-summary-row {
    border-top: 1px solid #e8e8e8;
}

.payments-summary-outstanding {
    border-top: 2px solid var(--brand-primary, #3d1a6f) !important;
    margin-top: 4px;
    padding-top: 10px;
}

.payments-summary-outstanding .payments-summary-label {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
}

.payments-summary-outstanding .payments-summary-value {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
    font-size: 1.05rem;
    border-bottom: 3px double var(--brand-primary, #3d1a6f);
    padding-bottom: 2px;
}

.gvvdisplaynone {
    display: none;
}

.gvvdisplayinline {
    display: inline;
}
/* fix for the Ajax ComboBox issue*/
.WindowsStyle .ajax__combobox_itemlist {
    position: inherit !important;
}
/* change textbox to be white and borderless*/
.form-control[PDFFormat],
fieldset[disabled] .form-control {
    cursor: not-allowed;
    background-color: var(--bg-surface, #fff);
    border: none;
}

/* used to enable gridviews to wrap text when there is no spaces*/
.gvvgridwordwrap {
    word-wrap: break-word;
    max-width: 300px;
}
/* end wrap text for grdiview*/

/* testing for styling the ajax dropdown extender*/
.completionList {
    border: solid 1px Gray;
    margin: 0px;
    padding: 3px;
    height: 120px;
    overflow: auto;
    background-color: var(--bg-surface, #fff);
}

.listItem {
    color: #191919;
}

.itemHighlighted {
    background-color: #ADD6FF;
}
/* end ajax dropdown extender*/

/* used to control scheduling calendar*/
.normal {
    TEXT-ALIGN: center;
    background-color: #4d4d4d;
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

.normal2 {
    TEXT-ALIGN: center;
    background-color: #4d4d4d;
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

    .normal2 a {
        color: var(--text-on-dark, #fff);
    }

.activecal {
    background-color: var(--brand-accent, #fdb913) !important;
    border-color: var(--brand-accent, #fdb913) !important;
    color: black !important;
}

    .activecal a {
        color: black !important;
    }

    .heading {
        text-align: center;
        font-family: 'Outfit', sans-serif;
        font-weight: 400;
        font-size: 1.2em;
        text-transform: uppercase;
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-primary, #3d1a6f);
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-top: 0px;
        border-left: 0px;
        border-right: 0px;
        border-bottom: 0px;
    }

.empty {
    BACKGROUND-COLOR: rgb(246,248,249);
    border-left: 1px dotted grey;
    border-right: 1px dotted grey;
    border-top: 1px dotted grey;
    border-bottom: 1px dotted grey;
}

.datebar {
    text-align: center;
    vertical-align: top;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 1em;
    color: black;
    background-color: rgb(246,248,249);
    border-color: rgba(152,190,222,1);
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-top: 3px;
    border-left: 3px;
    border-right: 3px;
    border-bottom: 3px;
    width: 80px;
}

.gvv-fontsmall {
    font-size: xx-small;
}

/* ------------END used to control scheduling calendar*/

label.valid {
    width: 24px;
    height: 24px;
    background: url(/images/valid.png) center center no-repeat;
    display: inline-block;
    text-indent: -9999px;
}

label.error {
    font-weight: 500;
    color: red;
    padding: 2px 8px;
    margin-top: 2px;
}

/* Set widths on the form inputs since otherwise they're 100% wide */
input,
select,
textarea {
    max-width: 100%;
}

.textbox {
    text-align: center;
    padding: 0;
    border: 1px solid #cdcdcd;
    border-color: rgba(0,0,0,.15);
    background-color: var(--bg-muted, #f0f0f0);
}

    .textbox.edit {
        text-align: left;
        padding: 0;
        border: 1px solid #cdcdcd;
        border-color: rgba(0,0,0,.15);
        background-color: var(--bg-gold-tint, #fcf8e3);
    }

    .textbox.bold {
        text-align: left;
        padding: 0;
        border: 1px solid #cdcdcd;
        border-color: rgba(0,0,0,.15);
        background-color: var(--bg-gold-tint, #fcf8e3);
        font-weight: 500;
    }

    .textbox.left {
        text-align: left;
        padding: 0;
        border: 1px solid #cdcdcd;
        border-color: rgba(0,0,0,.15);
        background-color: var(--bg-muted, #f0f0f0);
        width: 80%;
    }

    .textbox.borderless {
        text-align: left;
        padding: 0;
        border: 0px;
        border-color: rgba(0,0,0,0);
        background-color: var(--bg-surface, #fff);
    }


@charset "utf-8";
/* CSS Document */
body {
    /*background-image: url(/images/background1.jpg);
background-repeat: no-repeat;
 background-position: center center;
 background-attachment: fixed;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;

        --------- main background colour and font weight --- working area
    */
    background: var(--bg-surface, #fff);
    text-align: left;
    color: black;
    font-weight: 400;
    min-height: 100%;
}

/* Sticky footer - pin footer to viewport bottom on short pages */
#aspform,
#form1 {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.footer {
    flex-shrink: 0;
}

.btn-xl {
    height: 200px;
    width: 100%;
    padding-top: 50px;
    padding-right: 1px;
    padding-left: 1px;
}

.maincontainer {
    color: #343136;
    min-height:70vh;
}

.maincolumn {
    color: var(--text-primary, #343136);
    padding-top: 2px;
    padding-left: 2px;
}

.tab-content {
    background-color: var(--bg-surface, #fff);
    /* NO border-top: the single tab baseline is owned by .nav-tabs border-bottom
       (see ~line 468). A border-top here stacked a 2nd purple line = double border. */
    /*min-height: 75vh;
     border-radius: 4px;
    -webkit-box-shadow: 2px 1px 8px 0px rgba(61, 26, 111, 0.5);
    box-shadow: 2px 1px 8px 0px rgba(61, 26, 111, 0.5);
    background: rgba(253,185,19, 0.1);
    border-top-right-radius: 25px;
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
    */
}
.subtab {
    background-color: var(--bg-surface, #fff);
    border: 1px solid transparent;
    border-radius: 0px;
    -webkit-box-shadow: 0px 0px 0px 0px ;
    box-shadow: 0px 0px 0px 0px;
    border-top-right-radius: 25px;
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
    min-height: 75vh;
}
.subtabpanel {
    padding-left: 0px;
    padding-right: 0px;
    border-left: 1px solid rgba(61, 26, 111, 0.5);
}
.tab-content-small {
    min-height:70% !important;
}
.tabborder {
    border-top: 1px solid var(--brand-primary, #3d1a6f);
    border-top-right-radius: 0px;
}

.softcorners {
    border-top-right-radius: 25px;
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
}

.panel-default > .panel-heading {
    background-color: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    text-transform: capitalize;
}

.panel-title > a {
    /* background-color: #ed174c;
    color: var(--text-on-dark, #fff);*/
    font-weight: 500;
    text-transform: capitalize;
}

panel-title > a :hover {
    background-color: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    text-transform: capitalize;
}

.table {
    margin-left: 5px;
    width: 99%;
}

/* Page Header (canonical) -- single standard across all Site.Master pages */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 0 1.5rem 0;
    padding: 0;
}
.page-title {
    color: var(--page-title-color, #3d1a6f);
    font-weight: 600;
    font-size: 1.75rem;
    line-height: 1.2;
    margin: 0;
    display: inline-flex;
    align-items: center;
}
.page-title i {
    color: var(--page-title-color, #3d1a6f);
    margin-right: 0.5rem;
}
.page-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}
.page-subtitle {
    color: var(--text-muted, #6b6280);
    font-size: 0.95rem;
    margin: 0.25rem 0 0 0;
    width: 100%;
}
/* Two-tier title parts (inline on desktop, stacked on mobile when campaign present) */
.page-name, .page-campaign { color: inherit; }
.page-title-sep { margin: 0 0.35rem 0 0.1rem; opacity: 0.85; }
.page-campaign:empty,
.page-campaign:empty + .page-title-sep { display: none; }

@media (max-width: 768px) {
    .page-header { margin: 0 0 1rem 0; gap: 0.25rem; }
    .page-title {
        flex-wrap: wrap;
        align-items: baseline;
        font-size: 1.1rem;
        line-height: 1.25;
    }
    .page-title i {
        font-size: 0.95rem;
        margin-right: 0.4rem;
        align-self: center;
    }
    .page-title-sep { display: none; }
    /* Two-tier mode: campaign present -> .page-name becomes eyebrow above */
    .page-title:has(.page-campaign) .page-name {
        font-size: 0.7rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        opacity: 0.7;
        order: -1;
        flex: 1 0 100%;
        line-height: 1.2;
    }
    .page-campaign {
        font-size: 1.1rem;
        font-weight: 600;
        line-height: 1.25;
        word-break: break-word;
    }
    /* Single-tier mode: no campaign -> .page-name renders as normal title */
    .page-title:not(:has(.page-campaign)) .page-name {
        font-size: 1.1rem;
        font-weight: 600;
        line-height: 1.25;
    }
    .white-text { font-size: 1.1rem; }
}
/* Back-compat alias -- safety net for pages still using .white-text directly. Deprecated. */
.white-text {
    color: var(--page-title-color, #3d1a6f);
    font-weight: 600;
    font-size: 1.75rem;
    line-height: 1.2;
}

.clientlogo {
    background-color: var(--bg-surface, #fff);
    display:inline-block;
}

.row {
    margin-left: 0px;
    margin-right: 0px;
}
.table-mediapack {
    border: solid 1px var(--brand-magenta, #7d1d61) !important;
    border: none;
}

    .table-mediapack > tbody > tr:hover > td,
    .table-mediapack > tbody > tr:hover {
        background-color: var(--bg-surface, #fff) !important;
        color: black !important;
        border: none;
    }

    .table-mediapack th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
        border: none;
    }

    .table-mediapack th {
        border: none;
    }

    .table-mediapack > thead > tr > th,
    .table-mediapack > tbody > tr > th,
    .table-mediapack > tfoot > tr > th,
    .table-mediapack > thead > tr > td,
    .table-mediapack > tbody > tr > td,
    .table-mediapack > tfoot > tr > td {
        border: 1px solid white !important;
        border-top-color: rgb(255, 255, 255);
        border-style: none;
        border-top: 1px solid white !important;
        border-right-color: rgb(255, 255, 255);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: rgb(255, 255, 255);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: rgb(255, 255, 255);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
        border: none;
    }

    .table-mediapack thead > tr > th, .table tbody > tr > th, .table tfoot > tr > th, .table thead > tr > td, .table tbody > tr > td, .table tfoot > tr > td {
        border-top: 1px solid white !important;
    }

.table-whiteborder {
    border: solid 1px var(--brand-magenta, #7d1d61) !important;
}

    .table-whiteborder > tbody > tr:hover > td,
    .table-whiteborder > tbody > tr:hover {
        background-color: var(--bg-surface, #fff) !important;
        color: black !important;
    }

    .table-whiteborder th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-whiteborder th {
        background-color: var(--bg-surface, #fff) !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-whiteborder > thead > tr > th,
    .table-whiteborder > tbody > tr > th,
    .table-whiteborder > tfoot > tr > th,
    .table-whiteborder > thead > tr > td,
    .table-whiteborder > tbody > tr > td,
    .table-whiteborder > tfoot > tr > td {
        border: 1px solid white !important;
        border-top-color: rgb(255, 255, 255);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: rgb(255, 255, 255);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: rgb(255, 255, 255);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: rgb(255, 255, 255);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
    }


.table-clearborder {
    border: 0px !important;
}

    .table-clearborder > tbody > tr:hover > td,
    .table-clearborder > tbody > tr:hover {
        background-color: transparent !important;
        color: black !important;
    }

    .table-clearborder th a {
        color: transparent !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-clearborder th {
        background-color: transparent !important;
        color: transparent !important;
    }

    .table-clearborder > thead > tr > th,
    .table-clearborder > tbody > tr > th,
    .table-clearborder > tfoot > tr > th,
    .table-clearborder > thead > tr > td,
    .table-clearborder > tbody > tr > td,
    .table-clearborder > tfoot > tr > td {
        border: 0px !important;
        background-color: transparent !important;
        color: black !important;
    }


.table-offwhiteborder {
    border: solid 1px var(--border-light, #f5f5f5) !important;
}

    .table-offwhiteborder > tbody > tr:hover > td,
    .table-offwhiteborder > tbody > tr:hover {
        background-color: unset !important;
        color: black !important;
    }

    .table-offwhiteborder th a {
        color: #f5f5f5 !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-offwhiteborder th {
        background-color: var(--bg-page, #f5f5f5) !important;
        color: #f5f5f5 !important;
    }

    .table-offwhiteborder > thead > tr > th,
    .table-offwhiteborder > tbody > tr > th,
    .table-offwhiteborder > tfoot > tr > th,
    .table-offwhiteborder > thead > tr > td,
    .table-offwhiteborder > tbody > tr > td,
    .table-offwhiteborder > tfoot > tr > td {
        border: 1px solid var(--border-light, #f5f5f5) !important;
        border-top-color: var(--border-light, #f5f5f5);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: var(--border-light, #f5f5f5);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: var(--border-light, #f5f5f5);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: var(--border-light, #f5f5f5);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
        border-top: 1px solid var(--border-light, #f5f5f5) !important;
    }


.table-lightpurple {
    border: solid 1px var(--brand-magenta, #7d1d61) !important;
}

    .table-lightpurple > tbody > tr:hover > td,
    .table-lightpurple > tbody > tr:hover {
        background-color: unset !important;
        color: black !important;
    }

    .table-lightpurple th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-lightpurple th {
        background-color: var(--brand-magenta, #7d1d61) !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-lightpurple > thead > tr > th,
    .table-lightpurple > tbody > tr > th,
    .table-lightpurple > tfoot > tr > th,
    .table-lightpurple > thead > tr > td,
    .table-lightpurple > tbody > tr > td,
    .table-lightpurple > tfoot > tr > td {
        border: 1px solid var(--brand-magenta, #7d1d61) !important;
        border-top-color: var(--brand-magenta, #7d1d61);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: var(--brand-magenta, #7d1d61);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: var(--brand-magenta, #7d1d61);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: var(--brand-magenta, #7d1d61);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
        border-top: 1px solid var(--brand-magenta, #7d1d61) !important;
    }


.table-red {
    border: solid 1px var(--brand-danger, #ed174c) !important;
}

    .table-red > tbody > tr:hover > td,
    .table-red > tbody > tr:hover {
        background-color: unset !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-red th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-red th {
        background-color: var(--brand-danger, #ed174c) !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-red > thead > tr > th,
    .table-red > tbody > tr > th,
    .table-red > tfoot > tr > th,
    .table-red > thead > tr > td,
    .table-red > tbody > tr > td,
    .table-red > tfoot > tr > td {
        border: 1px solid var(--brand-danger, #ed174c) !important;
        border-top-color: var(--brand-danger, #ed174c);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: var(--brand-danger, #ed174c);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: var(--brand-danger, #ed174c);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: var(--brand-danger, #ed174c);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
        border-top: 1px solid var(--brand-danger, #ed174c) !important;
    }

.table-pdf {
    border: none !important;
}

.table-pdf th a {
    color: black !important;
    font-weight: 700 !important;
    text-decoration: none;
}

    .table-pdf th {
        background-color: var(--bg-surface, #fff) !important;
        font-weight: 700 !important;
        color: black !important;
        text-decoration: none;
    }

    
    .table-pdf > tfoot > tr > th,
    .table-pdf > tfoot > tr > td {
        border: unset !important;
    }

    .table-pdf > thead > tr > th,
    .table-pdf > tbody > tr > th {
        border-bottom: 1px solid var(--border-strong, #ccc) !important;
    }

/* =========================================================================
   Report-table cleanup -- SCOPED to the report design system (.bh-rpt) so the
   e-sign / PDF-doc .table-pdf tables (.bh-svc-table etc.) stay exactly as they are.
   GridView renders GridLines="Both" by default -> a border on EVERY cell: the heavy
   spreadsheet "black squares" grid seen across report pages. Strip the vertical + top
   cell borders on every report table, keep ONE clean horizontal rule per row, and give
   the header the on-brand purple bar. Targets td/th directly so it covers GridView
   (flat <tr>) AND Bootstrap/Repeater (<thead>/<tbody>) tables, overriding GridView
   rules="all", .table-bordered and .table-modern header styling alike.
   ========================================================================= */
.bh-rpt .table-pdf td,
.bh-rpt .table-pdf th {
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
    padding: 6px 10px !important;
    vertical-align: middle;
}
.bh-rpt .table-pdf td {
    border-bottom: 1px solid var(--bh-rpt-line, #e7e2ee) !important;
}
.bh-rpt .table-pdf th {
    background-color: var(--brand-primary, #3d1a6f) !important;
    color: var(--brand-on-primary, #fff) !important;
    border-bottom: 2px solid var(--brand-primary, #3d1a6f) !important;
}
.bh-rpt .table-pdf th a { color: var(--brand-on-primary, #fff) !important; }

/* Services-agreement summary-of-services table (EServicesAgreement e-sign).
   Scoped to .bh-svc-table so other .table-pdf tables are unaffected. Under PagedJS
   the constrained paged width made the auto table-layout ignore the per-column
   ItemStyle-Width percentages, starving Cost/Type/Qty/Total so their values
   wrapped one char per line. table-layout:fixed forces the declared 50/10/10/10/20
   widths to hold; overflow-wrap keeps long description text inside its cell. */
.table-pdf.bh-svc-table {
    table-layout: fixed !important;
    width: 100% !important;
}

/* Reusable report-table variant: same PagedJS fix as .bh-svc-table -- fixed layout so the
   declared per-column widths are honoured. Without it the constrained paged width ignores the
   width percentages, starves the numeric columns and wraps large values. Apply to any report
   .table-pdf that declares column widths (e.g. Coverage Breakdown media-type table). */
.table-pdf.bh-rpt-table-fixed {
    table-layout: fixed !important;
    width: 100% !important;
}

    .table-pdf.bh-svc-table > tbody > tr > td {
        overflow-wrap: break-word;
        word-wrap: break-word;
    }

/* REMOVED: .btn { margin-left: 5px; } - was adding margin to ALL buttons globally */


/*
a{color: black; text-decoration:none;}
    */

div.ui-datepicker {
    font-size: 62.5%;
}
/*update*/
.container {
    padding-right: 0px;
    padding-left: 0px;
}
/* panel */
.panel, .panelcollapsed {
    background: var(--bg-surface, #fff);
    margin: 5px;
    padding: 0px 0px 0px;
    width: 99%;
    border: 1px solid var(--brand-primary, #3d1a6f);
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}

.panel-title {
    padding-left: 0px;
    padding-top: 0px;
}

/* panel heading */
.panel h2, .panelcollapsed h2 {
    /*
	font-size: 12px;
	font-weight: normal; */
    margin: 0px;
    padding: 4px;
    background: var(--bg-surface, #fff) url(/images/arrow-up.gif) no-repeat 99%;
    border-bottom: 1px solid #fff;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    border-top: 1px solid #FFF;
    border-right: 1px solid #FFF;
    border-left: 1px solid #FFF;
    text-align: left;
}

    /* panel heading on rollover */
    .panel h2:hover, .panelcollapsed h2:hover {
        background-color: var(--bg-muted, #f0f0f0);
        color: var(--text-muted, #999);
    }

/* heading of a collapsed panel */
.panelcollapsed h2 {
    background: var(--border-strong, #ccc) url(/images/arrow-dn.gif) no-repeat 99%;
    border-color: var(--border-strong, #ccc);
    color: var(--text-on-dark, #fff);
}

/* panel content - do not set borders or paddings */
.panelcontent {
    background: var(--bg-surface, #fff);
    overflow: hidden;
}

/* collapsed panel content */
.panelcollapsed .panelcontent {
    display: none;
}


/*
#footer {
    width:100%;
    height:80px;
    position:fixed;
    bottom:0;
    left:0;
    background:#3da023;  
}*/



div.gvv {
    color: #f0f0f0;
    font-size: 12px;
}

div.gvv2 {
    color: var(--status-success, #28a745);
}

div.gvv3 {
    text-align: center;
}

.div.gvv4 {
    text-align: left;
    color: var(--text-on-dark, #fff);
}

div.gvvleft {
    text-align: left;
}

div.gvvright {
    text-align: left;
}

div.gvvveryright {
    text-align: right;
}

div.gvvcenter {
    text-align: center;
}


p.trigger {
    margin-bottom: 7px;
    margin-top: -5px;
}

.toggle_container {
    margin-bottom: 10px;
}

    .toggle_container p {
        margin: 0px;
    }

.toggle_container {
    background: var(--bg-muted, #f0f0f0);
    clear: both;
    font-size: 100%;
}



/*
.text {
        color: var(--text-secondary, #666);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
       
    }*/
@media only screen and (max-width : 979px) {
    .gvvright.smm {
        text-align: center;
        padding-right: 10px;
        padding-left: 10px;
    }

    .gvvleft.smm {
        padding-right: 10px;
        padding-left: 10px;
        text-align: center;
    }

    .gvvcenter.smm {
        padding-right: 10px;
        padding-left: 10px;
        text-align: center;
    }

    .gvvprint.smp {
        padding-right: 10px;
        padding-left: 10px;
        text-align: center;
    }
}

@media (max-width: 979px) {
    .hidden-tablet {
        display: none;
    }
}

.flex-cover {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-color: black;
    /* overall height*/
    height: 500px;
}

.flex-bottomstrip {
    color: var(--text-on-dark, #fff);
    text-align: right;
    text-align: center;
    /* background: rgba(0,0,0, .6);*/
    font-family: 'Outfit', sans-serif;
    font-weight: 300;
    font-size: 18px;
    /* height of the grey overlay*/
    height: 200px;
}

.flex-logos {
    white-space: nowrap;
    display: inline;
    /*    padding: 10px 10px 10px 10px;*/
    min-height: 100px;
    max-height: 100px;
    text-align: center;
}

.flex-text-box {
    /* set the height of the textbox, so that the logo box will appear beneath it*/
    min-height: 490px;
    max-height: 490px;
}

.flex-text-big {
    padding-left: 70px;
    margin-top: 140px;
    font-family: 'Outfit', sans-serif;
    font-size: 80px;
    color: var(--text-on-dark, #fff);
    line-height: 110px;
    font-weight: 300;
    overflow: hidden;
}

.flex-text-small {
    padding-left: 120px;
    font-family: 'Outfit', sans-serif;
    font-weight: 300;
    font-size: 45px;
    color: var(--text-on-dark, #fff);
    line-height: 50px;
}

.campaignbox {
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    height: 200px;
    width: 100%;
    max-width: 300px;
    border-radius: 10px;
    border: 1px solid var(--brand-primary, #3d1a6f);
}

.campaigninnerbox {
    width: 100%;
    height: 90%;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 40px;
    background: rgba(61,26,111, 0.9) 0%;
    color: var(--text-on-dark, #fff);
    text-align: center;
    vertical-align: middle;
}

    .campaigninnerbox:hover a {
        background: rgba(0,0,0,0.3) 0%;
        color: var(--text-on-dark, #fff) !important;
    }

.campaigninnerboxtext {
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    color: var(--text-on-dark, #fff);
}

.retainerinnerbox {
    width: 100%;
    height: 90%;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 40px;
    background: rgba(237,23,76, 0.9) 0%;
    color: var(--text-on-dark, #fff);
    text-align: center;
    vertical-align: middle;
}

    .retainerinnerbox:hover a {
        background: rgba(0,0,0,0.3) 0%;
        color: var(--text-on-dark, #fff) !important;
    }

.retainerinnerboxtext {
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    color: var(--text-on-dark, #fff);
}

.gridedittext input {
    width: 100% !important;
}

.mce-tinymce {
    margin-top: 15px !important;
    margin-bottom: 5px !important;
}

.label-control {
    display: block;
    width: 100%;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.428571429;
    color: var(--text-body, #555);
    vertical-align: middle;
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-strong, #ccc);
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    background-color: var(--bg-muted, #f0f0f0);
    min-height: 120px;
}

.label-lg {
    height: 45px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.33;
    border-radius: 6px;
    background-color: var(--bg-muted, #f0f0f0);
}

.label-control-sm {
    display: block;
    width: 100%;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.428571429;
    color: var(--text-body, #555);
    vertical-align: middle;
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-strong, #ccc);
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
    background-color: var(--bg-muted, #f0f0f0);
    min-height: 30px;
}

.mce-panel {
    z-index: 1000007 !important;
}


.highlight {
    background-color: yellow;
}

.table-gvvhover > tbody > tr:hover > td,
.table-gvvhover > tbody > tr:hover > th {
    background-color: yellow;
}

.table-gvv td {
    border: 0px solid rgb(221, 221, 221) !important;
    border-image: none !important;
}

.table-gvv th {
    border: 0px solid rgb(221, 221, 221) !important;
    border-image: none !important;
}

.table-noborder td {
    border: 0px solid white !important;
    border-image: none !important;
}

.table-noborder th {
    border: 0px solid white !important;
    border-image: none !important;
}

.pwa-popup {
    z-index: 2222222 !important;
}



.dm-uploader {
    cursor: default;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.uploader {
    position: absolute;
    top: -4px;
    right: 0; 
    line-height: 26px;
    margin: 0;
    border: solid transparent;
    width: 100%;
    opacity: .0;
    filter: alpha(opacity= 0);
    cursor: pointer;
}

a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
    touch-action: manipulation;
}


body {
    font-family: 'Outfit', sans-serif !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}


.table-condensed {
    border: solid 1px var(--brand-magenta, #7d1d61) !important;
}

    .table-condensed > tbody > tr:hover > td,
    .table-condensed > tbody > tr:hover {
        color: black;
    }

    .table-condensed th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-condensed th {
        background-color: var(--brand-danger, #ed174c) !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-condensed > thead > tr > th,
    .table-condensed > tbody > tr > th,
    .table-condensed > tfoot > tr > th,
    .table-condensed > thead > tr > td,
    .table-condensed > tbody > tr > td,
    .table-condensed > tfoot > tr > td {
        border: 1px solid var(--brand-accent, #fdb913) !important;
        border-top-color: rgb(221, 221, 221);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: rgb(221, 221, 221);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: rgb(221, 221, 221);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: rgb(221, 221, 221);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
    }

    .table-condensed > tbody > tr > th {
        background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%) !important;
        border-left: 4px solid var(--brand-accent, #fdb913) !important;
        border-top: 1px solid var(--border-light, #fff5dc) !important;
        border-right: 1px solid var(--border-light, #fff5dc) !important;
        border-bottom: 1px solid var(--border-light, #fff5dc) !important;
        color: var(--brand-primary, #3d1a6f) !important;
        font-weight: 500 !important;
        font-size: 1em !important;
    }
    .table-condensed th a {
        color: var(--brand-primary, #3d1a6f) !important;
        font-weight: 500 !important;
        font-size: 1em !important;
    }

.table-purple {
    border: solid 1px var(--brand-primary, #3d1a6f) !important;
}

    .table-purple > tbody > tr:hover > td,
    .table-purple > tbody > tr:hover {
        background-color: var(--bg-muted, #f0f0f0) !important;
        color: black !important;
    }

    .table-purple th a {
        color: var(--text-on-dark, #fff) !important;
        text-decoration: none !important;
        font-weight: 500 !important;
    }

    .table-purple th {
        background-color: var(--brand-primary, #3d1a6f) !important;
        color: var(--text-on-dark, #fff) !important;
    }

    .table-purple > thead > tr > th,
    .table-purple > tbody > tr > th,
    .table-purple > tfoot > tr > th,
    .table-purple > thead > tr > td,
    .table-purple > tbody > tr > td,
    .table-purple > tfoot > tr > td {
        border: 1px solid var(--brand-primary, #3d1a6f) !important;
        border-top-color: rgb(221, 221, 221);
        border-top-style: solid;
        border-top-width: 1px;
        border-right-color: rgb(221, 221, 221);
        border-right-style: solid;
        border-right-width: 1px;
        border-bottom-color: rgb(221, 221, 221);
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: rgb(221, 221, 221);
        border-left-style: solid;
        border-left-width: 1px;
        border-image-source: initial;
        border-image-slice: initial;
        border-image-width: initial;
        border-image-outset: initial;
        border-image-repeat: initial;
        /* height:60px; */
        padding: 3px;
    }

/* Modern data table - used for WebMethod-backed infinite scroll tables */
.table-modern {
    border: none;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin-bottom: 0;
}
.table-modern thead th {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.65rem 0.75rem;
    border: none;
    border-bottom: 3px solid var(--brand-accent, #fdb913);
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}
.table-modern tbody tr {
    transition: background-color 0.15s ease;
}
.table-modern tbody tr:nth-child(even) {
    background-color: var(--bg-subtle, #fafafa);
}
.table-modern tbody tr:hover {
    background-color: var(--bg-purple-tint, #f0ebf7);
}
.table-modern tbody td {
    padding: 0.55rem 0.75rem;
    border: none;
    border-bottom: 1px solid var(--border-light, #eee);
    font-size: 0.9rem;
    color: var(--text-primary, #333);
    vertical-align: middle;
}
.table-modern tbody td img {
    border-radius: 4px;
    max-width: 60px;
}
.table-modern .text-muted-sm {
    font-size: 0.7rem;
    color: var(--text-muted, #999);
}

/* Selectable pick rows: whole row clickable, gold left-bar + purple tint when selected.
   Leading .bh-row-check tick fades in on selection. Used by InterviewCoverage syndication
   modals (single-outlet multi-select + by-group single-select). */
.table-modern tbody tr.bh-selectable-row {
    cursor: pointer;
}
.table-modern tbody tr.bh-selectable-row.is-selected,
.table-modern tbody tr.bh-selectable-row.is-selected:nth-child(even) {
    background-color: var(--bg-purple-tint, #f0ebf7);
    box-shadow: inset 3px 0 0 var(--brand-accent, #fdb913);
}
.table-modern tbody tr.bh-selectable-row .bh-row-check {
    color: var(--brand-primary, #3d1a6f);
    opacity: 0;
    transition: opacity 0.12s ease;
}
.table-modern tbody tr.bh-selectable-row.is-selected .bh-row-check {
    opacity: 1;
}

/* Sortable table headers (generic). Add .bh-sortable to the <table> and data-sortkey
   to each sortable <th>; JS toggles .bh-sort-asc / .bh-sort-desc on the active header.
   Caret rides currentColor so thead theming + dark mode need no overrides.
   Same affordance as the Finance grids (their page-local copy predates this block). */
table.bh-sortable thead th[data-sortkey] {
    cursor: pointer;
    user-select: none;
}
table.bh-sortable thead th[data-sortkey]:hover {
    color: var(--brand-primary, #3d1a6f);
}
table.bh-sortable thead th[data-sortkey]::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 5px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-bottom: 5px solid currentColor;
    opacity: 0.25;
    vertical-align: middle;
}
table.bh-sortable thead th[data-sortkey].bh-sort-asc::after {
    opacity: 0.85;
}
table.bh-sortable thead th[data-sortkey].bh-sort-desc::after {
    border-bottom: 0;
    border-top: 5px solid currentColor;
    opacity: 0.85;
}

/* Compact mail-quota strip (e.g. top of an EDM Search Options panel). Fill width + colour
   are set by page JS from a server-rendered percent. Tokenised so dark mode flips cleanly. */
.bh-quota-strip {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 1rem 0;
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-light, #e5e7eb);
    border-radius: 8px;
}
.bh-quota-strip .bh-quota-icon { color: var(--brand-primary, #3d1a6f); font-size: 0.9rem; }
.bh-quota-strip .bh-quota-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    white-space: nowrap;
}
.bh-quota-strip .bh-quota-track {
    flex: 1 1 auto;
    min-width: 120px;
    height: 10px;
    background: var(--bg-muted, #e9ecef);
    border-radius: 6px;
    overflow: hidden;
}
.bh-quota-strip .bh-quota-fill {
    height: 100%;
    width: 0%;
    border-radius: 6px;
    transition: width 0.7s ease;
    background: linear-gradient(90deg, var(--brand-primary, #3d1a6f), #5a2d82);
}
.bh-quota-strip .bh-quota-meta { font-size: 0.78rem; color: var(--text-secondary, #6c757d); white-space: nowrap; }

/* Missing/unservable EDM download attachment (ClientEDM Content tab). The saved value is preserved
   but the file no longer exists, so the row is flagged and the EDM is blocked from sending. */
.dl-row-missing {
    border-left: 3px solid var(--brand-danger, #ed174c);
    padding-left: 6px;
    border-radius: 4px;
}
.dl-missing-flag {
    color: var(--brand-danger, #ed174c);
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}

/* Syndication count line (InterviewCoverage booking-detail header). page-title-color flips for dark mode. */
.bh-synd-count {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--page-title-color, #3d1a6f);
    margin: 0 0 0.5rem;
}
.bh-synd-count .badge { margin-left: 0.15rem; }

/* Scroll container for infinite scroll tables.
   overflow-x MUST stay 'hidden': overflow-y:auto silently coerces overflow-x
   from 'visible' to 'auto' per CSS spec, which fires a horizontal scrollbar on
   any sub-pixel table overshoot (.table-bordered + .table-modern nowrap headers).
   If a future page needs horizontal scroll, wrap that table in .table-responsive
   -- do not relax this rule (breaks SurveyForms, CRM lists, Archived, etc.). */
.infinite-scroll-container {
    overflow-y: auto;
    overflow-x: hidden;
    border-radius: 8px;
    border: 1px solid var(--border-default, #e0e0e0);
}
.infinite-scroll-container::-webkit-scrollbar {
    width: 6px;
}
.infinite-scroll-container::-webkit-scrollbar-track {
    background: var(--bg-muted, #f4f4f4);
    border-radius: 3px;
}
.infinite-scroll-container::-webkit-scrollbar-thumb {
    background: var(--border-strong, #ccc);
    border-radius: 3px;
}
.infinite-scroll-container::-webkit-scrollbar-thumb:hover {
    background: #aaa;
}

.gvvorangehover > tbody > tr:hover > td {
    background-color: var(--border-strong, #ccc) !important;
}

.gvvorangegridcheckbox {
    display: none !important;
}

.panel-heading a:hover {
    color: #d2322d !important;
}

a.dropdown-toggle {
    font-weight: 500;
    font-size: 1.3em;
}

.dropdown-menu > li > a {
    font-weight: 500 !important;
}




.blink_me {
    -webkit-animation-name: blinker;
    -webkit-animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -moz-animation-name: blinker;
    -moz-animation-duration: 1s;
    -moz-animation-timing-function: linear;
    -moz-animation-iteration-count: infinite;
    animation-name: blinker;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.mc-red {
    background-color: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff);
}

.mc-purple {
    background-color: var(--bg-surface, #fff);
    color: var(--brand-magenta, #7d1d61);
}


@media (min-width: 1400px) {
    .container {
        max-width: 1340px;
    }
}

@media (min-width: 1500px) {
    .container {
        max-width: 1470px;
    }
}

@media (min-width: 1700px) {
    .container {
        max-width: 1640px;
    }
}

@media (min-width: 1920px) {
    .container {
        max-width: 1840px;
    }
}

@media (min-width: 2200px) {
    .container {
        max-width: 2100px;
    }
}
/*small grid*/
@media (max-width: 1500px) {
    .gvvsmallgrid {
        zoom: 0.9
    }
}

@media (max-width: 1200px) {
    .gvvsmallgrid {
        zoom: 0.7
    }
}

@media (max-width: 900px) {
    .gvvsmallgrid {
        zoom: 0.5
    }
}

.proposalbox {
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    height: 420px;
    border-radius: 0px;
    border: 1px solid var(--brand-primary, #3d1a6f);
    box-shadow: 5px 10px 18px #888888;
}

.proposalinnerbox {
    background: var(--bg-surface, #fff);
    /*
    width: 100%;
    height: 90%;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 40px;
    background: rgba(61,26,111, 0.9) 0%;
    color: var(--text-on-dark, #fff);
    text-align: left;
    */
    padding-left: 5px;
    vertical-align: top;
}

    .proposalinnerbox:hover a {
        background: var(--brand-danger, #ed174c);
        color: var(--text-on-dark, #fff) !important;
    }

.proposalinnerboxtext {
    width: 100%;
    /*font-size: 16px;
    font-weight: 500;
    
    text-align: left;
     */
    color: var(--text-on-dark, #fff);
}

.tabcolourwhite {
    background-color: var(--bg-surface, #fff);
    color: black;
    font-size: 16px;
    min-width: 240px !important;
    height: 40px;
    text-align: left;
    border: 1px solid var(--brand-danger, #ed174c) !important;
}

.ProposalTabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
    color: var(--brand-danger, #ed174c);
}

.proposalsub {
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    font-size: 10px;
    margin-left: -10px;
    font-family: 'Outfit', sans-serif;
}

hr {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, #fdb913, #e8a510)
}

#mainNav .padlock {
    color: var(--brand-danger, #ed174c);
    padding: 10px 15px;
    margin-left: 10px;
    border: 2px solid var(--brand-danger, #ed174c);
    border-radius: 50px;
    font-weight: 500;
}

@media (min-width: 30px) {
    .mcintrotext {
        font-size: 50px;
        letter-spacing: 0px;
        line-height: 55px;
    }

    .mcintrosecondary {
        font-weight: 800;
        letter-spacing: 0px;
    }

    .blogintrotext {
        font-size: 40px;
        letter-spacing: 0px;
        line-height: 45px;
        font-weight: 800;
    }

    .mcblogsecondary {
        font-size: 40px;
        letter-spacing: 0px;
        line-height: 45px;
    }

    .bigtext {
        font-size: 30px;
        letter-spacing: 0px;
        line-height: 35px;
        font-weight: 800;
    }

    .lighttext {
        font-size: 20px;
        letter-spacing: 0px;
        line-height: 25px;
        font-weight: 600;
    }

    .ctheavytext {
        font-size: 20px;
        letter-spacing: 0px;
        line-height: 25px;
        font-weight: 600;
    }
}

@media (min-width: 700px) {
    .mcintrotext {
        font-size: 100px;
        letter-spacing: -4px;
        line-height: 105px;
    }

    .mcintrosecondary {
        font-weight: 800;
        letter-spacing: 0px;
    }

    .blogintrotext {
        font-size: 80px;
        letter-spacing: -4px;
        line-height: 90px;
        font-weight: 800;
    }

    .mcblogsecondary {
        font-size: 50px;
        letter-spacing: -2px;
        line-height: 55px;
    }

    .bigtext {
        font-size: 60px;
        letter-spacing: -4px;
        line-height: 65px;
        font-weight: 800;
    }

    .lighttext {
        font-size: 50px;
        letter-spacing: -4px;
        line-height: 55px;
        font-weight: 600;
    }

    .ctheavytext {
        font-size: 40px;
        letter-spacing: -1px;
        line-height: 45px;
        font-weight: 600;
    }
}

.btn-default {
    color: var(--brand-primary, #3d1a6f) !important;
    background-color: var(--bg-surface, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}

    .btn-default:hover,
    .btn-default:focus,
    .btn-default:active,
    .btn-default.active,
    .open .dropdown-toggle.btn-default {
        color: var(--text-on-dark, #fff) !important;
        background-color: var(--brand-primary, #3d1a6f);
        border-color: var(--brand-primary, #3d1a6f);
    }

    .btn-default:active,
    .btn-default.active,
    .open .dropdown-toggle.btn-default {
        background-image: none;
    }

    .btn-default.disabled,
    .btn-default[disabled],
    fieldset[disabled] .btn-default,
    .btn-default.disabled:hover,
    .btn-default[disabled]:hover,
    fieldset[disabled] .btn-default:hover,
    .btn-default.disabled:focus,
    .btn-default[disabled]:focus,
    fieldset[disabled] .btn-default:focus,
    .btn-default.disabled:active,
    .btn-default[disabled]:active,
    fieldset[disabled] .btn-default:active,
    .btn-default.disabled.active,
    .btn-default[disabled].active,
    fieldset[disabled] .btn-default.active {
        background-color: var(--bg-purple-tint, #f0ebf7);
        border-color: #c4b5d9;
        color: var(--text-muted, #8a7ba3) !important;
    }
    .btn-default .caret {
        border-top-color: var(--brand-primary, #3d1a6f);
    }
.dropup .btn-default .caret {
    border-bottom-color: var(--brand-primary, #3d1a6f);
}
.panel-body {
    padding: 15px;
}
.panel {
    margin-bottom: 20px;
    background-color: var(--bg-surface, #fff);
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.panel-body {
    padding: 15px;
}

    .panel-body:before,
    .panel-body:after {
        display: table;
        content: " ";
    }

    .panel-body:after {
        clear: both;
    }

    .panel-body:before,
    .panel-body:after {
        display: table;
        content: " ";
    }

    .panel-body:after {
        clear: both;
    }

.panel > .list-group {
    margin-bottom: 0;
}

    .panel > .list-group .list-group-item {
        border-width: 1px 0;
    }

        .panel > .list-group .list-group-item:first-child {
            border-top-right-radius: 0;
            border-top-left-radius: 0;
        }

        .panel > .list-group .list-group-item:last-child {
            border-bottom: 0;
        }

.panel-heading + .list-group .list-group-item:first-child {
    border-top-width: 0;
}

.panel > .table {
    margin-bottom: 0;
}

.panel > .panel-body + .table {
    border-top: 1px solid var(--border-default, #ddd);
}

.panel-heading {
    padding: 10px 15px;
    border-bottom: 1px solid transparent;
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
}

.panel-title {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 16px;
}

    .panel-title > a {
        color: inherit;
    }

.panel-footer {
    padding: 10px 15px;
    background-color: var(--bg-page, #f5f5f5);
    border-top: 1px solid var(--border-default, #ddd);
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.panel-group .panel {
    margin-bottom: 0;
    overflow: hidden;
    border-radius: 4px;
}

    .panel-group .panel + .panel {
        margin-top: 5px;
    }

.panel-group .panel-heading {
    border-bottom: 0;
}

    .panel-group .panel-heading + .panel-collapse .panel-body {
        border-top: 1px solid var(--border-default, #ddd);
    }

.panel-group .panel-footer {
    border-top: 0;
}

    .panel-group .panel-footer + .panel-collapse .panel-body {
        border-bottom: 1px solid var(--border-default, #ddd);
    }

.panel-default {
    border-color: var(--brand-accent, #fdb913);
    -webkit-box-shadow: 10px 10px 16px -13px rgba(253,185,19, .6);
    -moz-box-shadow: 10px 10px 16px -13px rgba(253,185,19, .6);
    box-shadow: 10px 10px 16px -13px rgba(253,185,19, .6)
}

    .panel-default > .panel-heading {
        color: black;
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

        .panel-default > .panel-heading + .panel-collapse .panel-body {
            border-top-color: var(--brand-accent, #fdb913);
        }

    .panel-default > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: var(--brand-accent, #fdb913);
    }

.panel-primary {
    border-color: #428bca;
}

    .panel-primary > .panel-heading {
        color: var(--brand-danger, #ed174c);
        background-color: #428bca;
        border-color: #428bca;
    }

        .panel-primary > .panel-heading + .panel-collapse .panel-body {
            border-top-color: #428bca;
        }

    .panel-primary > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: #428bca;
    }

.panel-success {
    border-color: #d6e9c6;
}

    .panel-success > .panel-heading {
        color: var(--status-success-text, #468847);
        background-color: var(--status-success-bg, #dff0d8);
        border-color: #d6e9c6;
    }

        .panel-success > .panel-heading + .panel-collapse .panel-body {
            border-top-color: #d6e9c6;
        }

    .panel-success > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: #d6e9c6;
    }

.panel-warning {
    border-color: #fbeed5;
}

    .panel-warning > .panel-heading {
        color: #c09853;
        background-color: var(--bg-gold-tint, #fcf8e3);
        border-color: #fbeed5;
    }

        .panel-warning > .panel-heading + .panel-collapse .panel-body {
            border-top-color: #fbeed5;
        }

    .panel-warning > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: #fbeed5;
    }

.panel-danger {
    border-color: var(--brand-danger, #ed174c);
}

    .panel-danger > .panel-heading {
        color: var(--status-danger-text, #b94a48);
        background-color: var(--brand-danger, #ed174c);
        border-color: var(--brand-danger, #ed174c);
    }

        .panel-danger > .panel-heading + .panel-collapse .panel-body {
            border-top-color: var(--brand-danger, #ed174c);
        }

    .panel-danger > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: var(--brand-danger, #ed174c);
    }

.panel-info {
    border-color: #bce8f1;
}

    .panel-info > .panel-heading {
        color: #3a87ad;
        background-color: #d9edf7;
        border-color: #bce8f1;
    }

        .panel-info > .panel-heading + .panel-collapse .panel-body {
            border-top-color: #bce8f1;
        }

    .panel-info > .panel-footer + .panel-collapse .panel-body {
        border-bottom-color: #bce8f1;
    }
/* btn-sm: Now inherited from CustomBootstrap.css (Bootstrap 4 default) */
/* btn-xs: Extra small button (smaller than btn-sm, not in Bootstrap 4) */
.btn-xs {
    padding: .15rem .3rem;
    font-size: .75rem;
    line-height: 1.5;
    border-radius: .15rem;
}

/* btn-rnd: Rounded button (migrated from BHLegacy.css) */
.btn-rnd {
    font-weight: 300;
    font-size: 1.1em;
    text-align: center;
    border-radius: 12px;
}

.btn-rnd:hover {
    opacity: .8;
    color: var(--text-on-dark, #fff);
}

/* btn-secondary: Purple text on gold background (brand colors) */
.btn-secondary {
    color: var(--brand-primary, #3d1a6f);
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    color: var(--brand-primary, #3d1a6f);
}

/* btn-outline variants: Consistent with regular buttons */
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-warning,
.btn-outline-danger,
.btn-outline-info,
.btn-outline-dark {
    border-width: 1px;
    border-style: solid;
    border-radius: 0.25rem;
    vertical-align: middle;
    box-sizing: border-box;
    line-height: 1.5;
}

.btn-outline-primary {
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    background-color: transparent;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
}

.btn-outline-secondary {
    color: var(--text-primary, #333);
    border-color: var(--text-secondary, #666);
    background-color: transparent;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-secondary, #666);
    border-color: var(--text-secondary, #666);
}

.btn-outline-danger {
    color: var(--brand-danger, #ed174c);
    border-color: var(--brand-danger, #ed174c);
    background-color: transparent;
}
.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:active {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-danger, #ed174c);
    border-color: var(--brand-danger, #ed174c);
}

.btn-outline-success {
    color: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
    background-color: transparent;
}
.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
}

.btn-outline-warning {
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-accent, #fdb913);
    background-color: transparent;
}
.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active {
    color: var(--brand-primary, #3d1a6f);
    background-color: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
}

.btn-outline-info {
    color: var(--status-info, #17a2b8);
    border-color: var(--status-info, #17a2b8);
    background-color: transparent;
}
.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:active {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-info, #17a2b8);
    border-color: var(--status-info, #17a2b8);
}

.btn-outline-dark {
    color: var(--text-primary, #343a40);
    border-color: var(--text-primary, #343a40);
    background-color: transparent;
}
.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:active {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #343a40);
    border-color: var(--text-primary, #343a40);
}

.dropdown-menu {
    position: absolute;
    /* top: 100%; */
    left: 0;
    z-index: 1001;
    display: none;
    float: left;
    min-width: 220px;
    padding: 0.5rem 0;
    margin: 0.5rem 0 0;
    font-size: 15px;
    list-style: none;
    background-color: var(--bg-surface, #fff) !important;
    border: none;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    background-clip: padding-box;
    animation: dropdownFadeIn 0.2s ease;
}

@keyframes dropdownFadeIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Dropdown item styling - fix white-on-white hover issue */
.dropdown-item {
    display: block;
    width: 100%;
    padding: 0.5rem 1rem;
    clear: both;
    font-weight: 400;
    color: var(--text-primary, #333) !important;
    text-align: inherit;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-primary, #3d1a6f) !important;
    text-decoration: none;
}

.dropdown-item:active,
.dropdown-item.active {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-primary, #3d1a6f) !important;
}

/* Hover state child legibility: the parent rule above colours the item white on
   a dark purple bg, but children with .text-muted (leading icons, <small> descriptions)
   keep their explicit !important grey colour from Bootstrap and disappear. Override
   them so descriptions + icons stay readable on hover. */
.dropdown-item:hover .text-muted,
.dropdown-item:focus .text-muted,
.dropdown-item:active .text-muted,
.dropdown-item.active .text-muted,
.dropdown-item:hover small,
.dropdown-item:focus small,
.dropdown-item:active small,
.dropdown-item.active small {
    color: rgba(255, 255, 255, 0.85) !important;
}

.nav-pills .divider {
    height: 1px;
    margin: 9px 0;
    overflow: hidden;
    background-color: var(--bg-muted, #e5e5e5);
}

.dropdown-menu .divider {
    height: 1px;
    margin: 0.5rem 1rem;
    overflow: hidden;
    background: linear-gradient(90deg, transparent 0%, #e5e5e5 20%, #e5e5e5 80%, transparent 100%);
}

    .dropdown-menu > li > a {
        display: block;
        padding: 0.65rem 1.25rem;
        min-height: auto;
        clear: both;
        line-height: 1.5;
        color: var(--text-primary, #333);
        white-space: nowrap;
        border-left: 3px solid transparent;
        transition: all 0.2s ease;
    }

    .dropdown-menu > li > a i {
        width: 20px;
        margin-right: 8px;
        color: var(--brand-primary, #3d1a6f);
        transition: color 0.2s ease;
    }

        .dropdown-menu > li > a:hover,
        .dropdown-menu > li > a:focus {
            color: var(--brand-primary, #3d1a6f);
            text-decoration: none;
            background-color: var(--bg-gold-tint, #fff5dc);
            border-left-color: var(--brand-accent, #fdb913);
        }

        .dropdown-menu > li > a:hover i,
        .dropdown-menu > li > a:focus i {
            color: var(--brand-accent, #fdb913);
        }

    .dropdown-menu > .active > a,
    .dropdown-menu > .active > a:hover,
    .dropdown-menu > .active > a:focus {
        color: var(--text-on-dark, #fff);
        text-decoration: none;
        background-color: #428bca;
        outline: 0;
    }




    .dropdown-menu > div > li > a {
        display: block;
        padding: 0.65rem 1.25rem;
        min-height: auto;
        clear: both;
        line-height: 1.5;
        color: var(--text-primary, #333);
        white-space: nowrap;
        font-weight: 500 !important;
        border-left: 3px solid transparent;
        transition: all 0.2s ease;
    }

    .dropdown-menu > div > li > a i {
        width: 20px;
        margin-right: 8px;
        color: var(--brand-primary, #3d1a6f);
        transition: color 0.2s ease;
    }

        .dropdown-menu > div > li > a:hover,
        .dropdown-menu > div > li > a:focus {
            color: var(--brand-primary, #3d1a6f);
            text-decoration: none;
            background-color: var(--bg-gold-tint, #fff5dc);
            border-left-color: var(--brand-accent, #fdb913);
        }

        .dropdown-menu > div > li > a:hover i,
        .dropdown-menu > div > li > a:focus i {
            color: var(--brand-accent, #fdb913);
        }

    .dropdown-menu > div > .active > a,
    .dropdown-menu > div > .active > a:hover,
    .dropdown-menu > div > .active > a:focus {
        color: var(--text-on-dark, #fff);
        text-decoration: none;
        background-color: #428bca;
        outline: 0;
    }




.dropdown-header {
    display: block;
    padding: 3px 20px;
    font-size: 12px;
    line-height: 1.428571429;
    color: var(--text-muted, #999);
}
.dropdown-toggle:focus {
    outline: white;
}

.dropdown-toggle::after {
    display: inline-block;
    margin-left: 0em;
    vertical-align: 0.255em;
    content: none;
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
}

.dropdown {
    /*text-transform: uppercase;*/
    font-size: 15px;
}
.table td, .table th {
    padding: 5px;
}

.BUZZHubhome {
    background: rgba(253,185,19, 0.1);
    border-top-right-radius: 25px;
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
}
.table-bordered th, .table-bordered td {
    height: 0px;
    border: none;
}

.tab-content-sm {
    min-height: 30vh;
}

/*fix bug where modal leaves black line around hover elements*/
a:hover, a:focus{
    outline:none !important;
}

/* Ensure btn-primary/btn-default text is always white regardless of <a> tag color inheritance */
a.btn-primary, a.btn-primary:hover, a.btn-primary:focus, a.btn-primary:active,
a.btn-default, a.btn-default:hover, a.btn-default:focus, a.btn-default:active {
    color: #fff;
}

/* rounded edges for  gridviews */
.table-outer-rnd {
    /*apply to surrounding DIV*/
    -webkit-border-radius: 8px;
    -moz-border-radius: 8px;
    border-radius: 8px;
    overflow: hidden;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 15px;
    margin-right: 15px;
}
.table-inner-rnd {
    /*apply to gridview css field*/
    margin-left: 0px;
    width: 100%;
    height: 100%;
}

th.sortable {
    cursor: pointer;
    user-select: none;
}

/*make empty grid views not have a border */
.emptygridview {
    border: 5px solid white !important;
}
[data-theme="dark"] .emptygridview {
    border-color: transparent !important;
}
[data-theme="dark"] .emptygridview td {
    background: transparent !important;
    border: none !important;
}
.antiquewhitegrid {
    border: 1px solid antiquewhite !important;
    margin-left: 5px;
    width: 99%;
}
.tab-pane{
    padding-top:5px;
}
/* Sub-pane wrappers in Admin Setup are plain divs (not .tab-content), so the
   Bootstrap display:none rule never reaches their inactive panes -- they only
   get .fade:not(.show){opacity:0} and keep occupying vertical space, pushing
   later panes down the page. Mirror the .tab-content behaviour, scoped. */
#templatePanes > .tab-pane,
#tcPanes > .tab-pane,
#exportPanes > .tab-pane,
#logoPanes > .tab-pane {
    display: none;
}
#templatePanes > .tab-pane.active,
#tcPanes > .tab-pane.active,
#exportPanes > .tab-pane.active,
#logoPanes > .tab-pane.active {
    display: block;
}
/*hover naviation bar*/
@media all and (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: none !important;
    }

    .navbar .nav-item:hover .nav-link {
        color: var(--text-on-dark, #fff) !important;
    }

    .navbar .nav-item:hover .dropdown-menu {
        display: block !important;
    }

    .navbar .nav-item .dropdown-menu {
        margin-top: 0 !important;
    }
}

/* Kill list bullets on all navbar items */
#mainNav .navbar-nav,
#mainNav .navbar-nav .nav-item {
    list-style: none !important;
}

/* Right-side nav items (notifications + THE HIVE + LOGOUT) */
#mainNav .specials {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    margin-left: auto !important;
    gap: 0.25rem;
    padding-left: 0 !important;
}

#mainNav .specials > li {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    list-style: none !important;
    width: auto !important;
}

/* Nav buttons container (THE HIVE + LOGOUT) - stacked vertically */
#mainNav .nav-buttons-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: stretch;
}

#mainNav .nav-buttons-row .telephone {
    justify-content: center;
}

#mainNav .telephone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.4rem 0.9rem;
    margin-left: 0px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--text-on-dark, #fff);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.2s ease;
}

#mainNav .telephone:hover {
    color: var(--brand-accent, #fdb913);
    background: rgba(253, 185, 19, 0.15);
    border-color: var(--brand-accent, #fdb913);
    text-decoration: none;
}

/* Nav utility toolbar icons */
.navtoolbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem;
    margin: 0 2px;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.8);
    transition: all 0.2s ease;
}

.navtoolbtn:hover {
    color: var(--brand-accent, #fdb913);
    background: rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

.navtoolbtn .actionbutton {
    font-size: 1.1rem;
}

/* Notification badge styling */
.navtoolbtn sub {
    position: relative;
    top: -8px;
    margin-left: -5px;
}

.navtoolbtn sub input[type="text"] {
    width: 18px;
    height: 18px;
    padding: 0;
    font-size: 10px;
    font-weight: 600;
    text-align: center;
    color: var(--text-on-dark, #fff);
    background: var(--brand-danger, #ed174c);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    pointer-events: none;
}

/* ============================================================
   Nav quick-search (always-visible inline box + type-ahead dropdown)
   Sits between the mode menu and the right-side tools. All colours via
   theme tokens so dark mode flips automatically.
   ============================================================ */
.bh-nav-search {
    position: relative;
    display: flex;
    flex-direction: column;
    align-self: center;
    margin-bottom: 0;
}
.bh-nav-search__wrap.crm-search-inline { max-width: 260px; width: 260px; }
/* Tinted at rest so it reads as part of the purple bar (matches the ghost
   buttons), then flips to a solid white field with a gold focus ring the moment
   you engage. The navbar is purple in BOTH themes, so these whites are
   bar-relative -- dark mode is handled for free (no --bg-surface flip to a dark
   slab). Selectors carry .crm-search-inline to outweigh the generic crm-search
   rules later in this file. */
.bh-nav-search__wrap.crm-search-inline .form-control {
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #ffffff;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}
.bh-nav-search__wrap.crm-search-inline .form-control::placeholder {
    color: rgba(255, 255, 255, 0.70);
}
.bh-nav-search__wrap.crm-search-inline .form-control:hover {
    background: rgba(255, 255, 255, 0.20);
    border-color: rgba(255, 255, 255, 0.40);
    box-shadow: none;
}
.bh-nav-search__wrap.crm-search-inline .form-control:focus {
    background: #ffffff;
    border-color: var(--brand-accent, #fdb913);
    color: var(--text-body, #333333);
    box-shadow: 0 0 0 3px rgba(253, 185, 19, 0.45);
}
.bh-nav-search__wrap.crm-search-inline .form-control:focus::placeholder {
    color: var(--text-muted, #777777);
}
/* Icon + clear sit on the tinted field at rest -> light. */
.bh-nav-search__wrap .crm-search-icon,
.bh-nav-search__wrap .crm-search-clear {
    color: rgba(255, 255, 255, 0.80);
}
/* Focused -> field is white, so the icon + clear flip to brand purple. */
.bh-nav-search__wrap:focus-within .crm-search-icon,
.bh-nav-search__wrap:focus-within .crm-search-clear {
    color: var(--brand-primary, #3d1a6f);
}

.bh-nav-search__results {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    width: 340px;
    max-width: 90vw;
    list-style: none;
    margin: 0;
    padding: 0.3rem;
    max-height: 60vh;
    overflow-y: auto;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-strong, #cccccc);
    border-radius: 10px;
    box-shadow: var(--shadow-md, 0 8px 30px rgba(0, 0, 0, 0.25));
    z-index: 1035;
}
.bh-nav-search__results[hidden] { display: none; }

.bh-nav-search__item {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    cursor: pointer;
    color: var(--text-body, #333333);
}
.bh-nav-search__item.is-active,
.bh-nav-search__item:hover {
    background: var(--bg-subtle, #f1ecfb);
    color: var(--brand-primary, #3d1a6f);
}
.bh-nav-search__icon {
    width: 1.25rem;
    text-align: center;
    color: var(--brand-primary, #3d1a6f);
}
.bh-nav-search__item.is-active .bh-nav-search__icon { color: inherit; }
.bh-nav-search__label { font-size: 0.92rem; }

.bh-nav-search__empty {
    list-style: none;
    padding: 0.6rem 0.7rem;
    color: var(--text-muted, #777777);
    font-size: 0.88rem;
}

/* Collapsed nav (<=990px): the box stacks full-width in the hamburger menu,
   and its dropdown flows inline rather than floating. */
@media (max-width: 990px) {
    /* In the collapsed hamburger overlay every sibling (menu labels, icon row,
       HIVE/LOGOUT) is centred. Centre the search pill too -- cap its width and
       use auto side-margins so the left-anchored icon/placeholder no longer
       reads as stranded against a full-bleed bar. */
    .bh-nav-search { width: 100%; margin: 0.5rem 0; align-items: center; }
    .bh-nav-search__wrap.crm-search-inline { width: 100%; max-width: 320px; margin-left: auto; margin-right: auto; }
    .bh-nav-search__results {
        position: static;
        width: 100%;
        max-width: 320px;
        margin-left: auto;
        margin-right: auto;
        box-shadow: none;
        margin-top: 0.4rem;
        max-height: 50vh;
    }
}

/* Dark mode quick-toggle button in nav bar */
button.nav-theme-toggle {
    background: none;
    border: none;
    outline: 0;
    cursor: pointer;
    font-size: 1.1rem;
}

button.nav-theme-toggle:focus {
    outline: none;
}

button.nav-theme-toggle:focus-visible {
    outline: 2px solid var(--brand-accent, #fdb913);
    outline-offset: 2px;
    border-radius: 4px;
}

    /*

    .nav > li > a:focus {
        color: var(--brand-danger, #ed174c);
    }
    */
    .nav-tabs > li {
        float: left;
        margin-bottom: -1px;
    }

    .nav-tabs > li > a {
        margin-right: 2px;
        line-height: 1.428571429;
        border: 1px solid transparent;
        border-radius: 4px 4px 0 0;
    }

        .nav-tabs > li > a:hover {
            border-color: var(--border-light, #eeeeee) var(--border-light, #eeeeee) var(--border-default, #ddd);
        }



.nav a:hover {
    color: var(--brand-danger, #ed174c);
}
/*from main*/
#mainNav {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    background: linear-gradient(135deg, #3d1a6f 0%, #2d1352 100%);
    box-shadow: 0 2px 12px rgba(61, 26, 111, 0.4);
    border-bottom: 3px solid var(--brand-accent, #fdb913);
}

    #mainNav .navbar-toggler {
        padding: 0.75rem;
        font-family: 'Outfit', sans-serif;
        font-size: 0.75rem;
        color: var(--text-on-dark, #fff);
        text-transform: uppercase;
        border: 0;
    }

    #mainNav .navbar-brand {
        color: var(--brand-accent, #fdb913);
        font-family: 'Outfit', sans-serif;
        font-weight: 700;
        text-transform: uppercase;
        max-width: 50%;
    }

        #mainNav .navbar-brand img {
            height: 3rem;
        }

    #mainNav .navbar-nav .nav-item .nav-link.active, #mainNav .navbar-nav .nav-item .nav-link:hover {
        color: var(--brand-accent, #fdb913);
    }

    #mainNav .navbar-nav .nav-item .nav-btn.active, #mainNav .navbar-nav .nav-item .nav-btn:hover {
        color: var(--brand-accent, #fdb913);
        text-decoration: none;
    }

    /* Modernized nav dropdown toggles */
    #mainNav .navbar-nav .nav-item .dropdown-toggle {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 0.5rem 1rem;
        border-radius: 6px;
        font-family: 'Outfit', sans-serif;
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--text-on-dark, #fff);
        letter-spacing: 0.5px;
        text-transform: uppercase;
        transition: all 0.2s ease;
        border: none;
        background: transparent;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle i {
        font-size: 0.9rem;
        opacity: 0.85;
        transition: all 0.2s ease;
    }

    #mainNav .navbar-nav .nav-item:hover .dropdown-toggle,
    #mainNav .navbar-nav .nav-item.show .dropdown-toggle {
        background: rgba(255, 255, 255, 0.15);
        color: var(--brand-accent, #fdb913);
    }

    #mainNav .navbar-nav .nav-item:hover .dropdown-toggle i,
    #mainNav .navbar-nav .nav-item.show .dropdown-toggle i {
        opacity: 1;
        color: var(--brand-accent, #fdb913);
    }

    /* Remove default caret and use CSS arrow */
    #mainNav .navbar-nav .nav-item .dropdown-toggle::after {
        content: '';
        display: inline-block;
        margin-left: 6px;
        border-top: 5px solid currentColor;
        border-right: 4px solid transparent;
        border-left: 4px solid transparent;
        transition: transform 0.2s ease;
    }

    #mainNav .navbar-nav .nav-item.show .dropdown-toggle::after {
        transform: rotate(180deg);
    }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    color: var(--brand-danger, #ed174c);
    cursor: default;
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-bottom-color: transparent;
}


.respimage {
    width: 100%;
}


@media (min-width: 30px) {

    #mainNav .navbar-nav .nav-item .nav-link {
        font-family: 'Outfit', sans-serif;
        font-size: 0.95rem;
        font-weight: 500;
        color: var(--text-on-dark, #fff);
        letter-spacing: normal;
    }

    /* Top-level mode labels: CSS owns the casing so every mode reads the same
       regardless of how the markup is typed (Pitch is a flat link row, the other
       modes are dropdown headers). Scoped to direct nav-item children so dropdown
       menu items and the .specials utility cluster keep their own casing. */
    #mainNav .navbar-nav .nav-item > .nav-link,
    #mainNav .navbar-nav .nav-item > .dropdown-toggle {
        text-transform: uppercase;
    }

    .seperator {
        height: 1em;
    }

    .mediacastlogocolour {
        display: none;
    }

    .mediacastlogowhite {
        display: none;
    }

    .mediacastlogoverywhite {
        display: inline !important;
    }


    .welcome {
        display:none;
    }
    .actionbutton {
        padding-bottom: 0.5em;
        font-size: 1.5em;
    }

}

/* MOBILE */
@media (max-width: 990px) {

    .body-content {
        padding-top: 110px;
    }

    /* Center the utility icons + buttons in the collapsed mobile menu. The base
       .specials rule right-aligns for desktop (align-items:flex-end + margin-left:auto);
       now that the open menu is a flex column that margin shoves the group to the right
       edge, so balance the auto margins (left + right) to centre it instead. */
    #mainNav .specials {
        align-items: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    #mainNav .specials > li {
        justify-content: center !important;
        width: 100% !important;
    }

    /* THE HIVE and LOGOUT stacked in mobile menu */
    #mainNav .nav-buttons-row,
    #mainNav .specials .nav-buttons-row {
        flex-direction: column !important;
        align-items: center !important;
        gap: 0.5rem !important;
    }

    /* Center the main nav items (BUSINESS, CAMPAIGN, etc.) in collapsed menu */
    #mainNav .navbar-nav {
        align-items: center !important;
    }

    #mainNav .navbar-nav .nav-item {
        text-align: center;
        width: 100%;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle {
        justify-content: center;
    }

    /* Search to the TOP of the open mobile menu (above the mode links). The collapse
       renders as a plain block when shown, so make it a flex column ONLY while open
       (.show / .collapsing) -- this leaves Bootstrap's display:none hide for the
       closed menu intact -- then lift the search pill with a negative order.
       align-items: stretch keeps every row full-width, exactly like the block flow. */
    #mainNav #navbarText.show,
    #mainNav #navbarText.collapsing {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }
    #mainNav #navbarText .bh-nav-search {
        order: -1;
    }

    .respimage{
        width: 100px;
    }

    .text-right {
        text-align: center !important;
    }

    .filesharecard {
        padding: 0px !important;
        margin-left: 0em !important;
    }

    .filesharecontent {
        padding: 0px !important;
        margin-left: 0em !important;
    }

    .surveybuttons {
        zoom: 0.6 !important;
    }

    .surveyactionscard {
        zoom: 0.6 !important;
        padding-top: 0px !important;
        right: 10px !important;
        top: 10px !important;
    }

    .mobilehide {
        display: none;
    }

    .nav-top a {
        color: var(--text-on-dark, #fff) !important;
        line-height: 2em !important;
        text-align: center !important;
        padding-top: 5px;
        padding-left: 5px;
        padding-bottom: 5px;
    }

    .nwbody-content {
        padding-top: 40px;
        padding-left: 15px;
        padding-right: 15px;
        color: var(--brand-primary, #3d1a6f);
        font-family: 'Outfit', sans-serif;
        font-weight: 400;
        font-size: 14px;
    }

    .nav-logout {
        padding-top: 1em;
        transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out;
    }

    .nav-logout:hover {
        opacity: 0.8;
        color: var(--brand-accent, #fdb913) !important;
    }

    /* Main tab pill treatment now lives in the base .nav-tabs SSOT (applies at all
       widths) -- the former <=990px duplicate here was folded in 2026-06-23. The
       wrapping pill cluster still works on tablet/phone because the base block uses
       flex-wrap at every width. */

    .smallside {
        flex: 0 0 100%;
        max-width: 100%;
        margin-top: 0;
        margin-bottom: 0;
        width: 100%;
        padding: 0;
        position: sticky;
        top: 0;
        z-index: 1020;
        background: var(--bg-surface, #fff);
        border-bottom: 1px solid var(--border-default, #e0e0e0);
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }

    .smallside h5,
    .smallside > br,
    .smallside > span,
    .smallside > :not(.nav):not(.review-checklist):not(.authorise-bar) {
        display: none;
    }

    .smallside .review-checklist {
        display: flex !important;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 6px;
        padding: 8px 4px;
        list-style: none;
        margin: 0;
    }

    .smallside .review-checklist::-webkit-scrollbar {
        display: none;
    }

    .smallside .review-checklist li {
        white-space: nowrap;
        flex-shrink: 0;
        border-radius: 20px;
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
        background: var(--bg-subtle, #f8f9fa);
        border: 1px solid var(--border-default, #ddd);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .smallside .review-checklist li .review-sublabel {
        display: none;
    }

    .smallside .review-checklist li.active {
        background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
        color: var(--text-on-dark, #fff);
        border-color: transparent;
    }

    .smallside .review-checklist li.active .review-status {
        color: var(--brand-accent, #fdb913);
    }

    .smallside .authorise-bar {
        display: flex !important;
        padding: 8px 12px;
        font-size: 0.85rem;
    }

    .smallside .nav.flex-column {
        flex-direction: row !important;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 8px 12px;
        gap: 6px;
    }

    .smallside .nav.flex-column::-webkit-scrollbar {
        display: none;
    }

    .smallside::after {
        content: '';
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 30px;
        background: linear-gradient(to right, transparent, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))));
        pointer-events: none;
        z-index: 1;
    }

    .smallside .nav.flex-column .nav-item {
        white-space: nowrap;
        flex-shrink: 0;
    }

    .smallside .nav.flex-column .nav-item.navline {
        display: none;
    }

    .smallside .nav.flex-column.nav-pills .nav-link {
        border-left: none;
        border-radius: 20px;
        padding: 0.65rem 1.2rem;
        margin-bottom: 0;
        font-size: 0.875rem;
        line-height: 1.6;
        border: 1px solid var(--border-default, #ddd);
    }

    .smallside .nav.flex-column.nav-pills .nav-link:hover {
        background: var(--bg-gold-tint, #fff5dc);
        color: var(--brand-primary, #3d1a6f);
        border-color: var(--border-strong, #ccc);
    }

    .smallside .nav.flex-column.nav-pills .nav-link:focus-visible {
        outline: 2px solid var(--brand-primary, #3d1a6f);
        outline-offset: 2px;
    }

    .smallside .nav.flex-column.nav-pills .nav-link.active {
        background: var(--bg-purple-tint, #f3edf9) !important;
        color: var(--brand-primary, #3d1a6f) !important;
        border-color: var(--brand-primary, #3d1a6f);
        font-weight: 600;
    }

    .sub-content {
        border-left: 0px !important;
        min-height: auto;
        padding-top: 14px;
    }

    /* Make wide tables horizontally scrollable on mobile (QW-08) */
    .sub-content .card-body,
    .sub-content .body,
    .subtabpanel .card-body {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table-outer-rnd {
        -webkit-border-radius: 8px;
        -moz-border-radius: 8px;
        border-radius: 8px;
        overflow: hidden;
        margin-top: 1em;
        margin-bottom: 1em;
        margin-left: 0px;
        margin-right: 0px;
        font-size: 8px;
    }



    .mce-toolbar .mce-btn-group {
        zoom: 0.6 !important;
    }

    .talentcard {
        zoom: 0.8 !important;
    }

    .h1 {
        font-size: 2rem;
    }
    /* test to resize for mobile*/
    .col-xl, .col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg, .col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md, .col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm, .col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col, .col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
        padding-left: 1px;
        padding-right: 1px;
    }
    .container-fluid {
        padding-left: 1px;
        padding-right: 1px;
    }
    .container {
        padding-left: 1px;
        padding-right: 1px;
    }

}
@media (min-width: 766px) {
    .seperator {
        height: 1.5em;
    }
}

@media (min-width: 998px) {


    .dropdown .nav-item {
        font-size: 15px;
    }

    /*Tooltip styling -- CSS pseudo-element rules removed; tooltips are now real DOM
      elements created by bh-tooltips.js and styled via .bh-tooltip below. The mytooltip
      class and tooltiptext attribute remain the API. Direction classes (mytooltiptop,
      mytooltipleft, etc.) are read by the JS for positioning. */
    .mytooltip {
        margin-top: 0px !important;
        display: inline-block !important;
        position: relative !important;
        overflow: unset !important;
    }
    /* The display override above wins the equal-specificity !important tie against the
       .d-none utility (source order), so a tooltip-carrying control could never be hidden
       by class toggling -- the booking modal's "Confirmation Sent" CTA stayed visible on
       Tentative bookings (caught 2026-07-13). Utility must always win. */
    .mytooltip.d-none {
        display: none !important;
    }
    /* Suppress the old ::after pseudo so stale browser cache does not double-render */
    .mytooltip:hover:after,
    .mytooltip:hover:before {
        display: none !important;
        content: none !important;
    }

/* DOM tooltip element created by bh-tooltips.js */
.bh-tooltip {
    display: none;
    position: absolute;
    z-index: 20001;
    background: rgba(0, 0, 0, .8);
    color: var(--text-on-dark, #fff);
    border-radius: 10px;
    padding: 7px 15px;
    font-size: 12px;
    line-height: 1.2em;
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    min-width: 150px;
    max-width: 250px;
    white-space: normal;
    text-align: left;
    pointer-events: none;
    box-shadow: 0px 10px 13px -7px #000000, 5px 5px 15px 5px rgba(0,0,0,0);
}
.bh-tooltip-icon {
    font-style: normal;
}

/* Bootstrap tooltips styled to match mytooltip */
.tooltip {
    font-family: 'Outfit', sans-serif;
    font-size: .8em;
    z-index: 20001;
}
.tooltip-inner {
    background: rgba(0, 0, 0, .8);
    border-radius: 10px;
    padding: 7px 15px;
    min-width: 150px;
    max-width: 300px;
    text-align: left;
    line-height: 1.2em;
    font-weight: 400;
    box-shadow: 0px 10px 13px -7px #000000, 5px 5px 15px 5px rgba(0,0,0,0);
}
.tooltip-inner::before {
    content: "\2139\0020"; /* Info icon like mytooltip */
}
.bs-tooltip-top .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
    border-top-color: rgba(0, 0, 0, .8);
}
.bs-tooltip-bottom .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
    border-bottom-color: rgba(0, 0, 0, .8);
}
.bs-tooltip-start .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
    border-left-color: rgba(0, 0, 0, .8);
}
.bs-tooltip-end .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
    border-right-color: rgba(0, 0, 0, .8);
}

    .welcome {
        display: inline;
    }
    .actionbutton {
        padding-bottom: 0.5em;
        font-size: 1.5em;
    }
    .actionbutton-lg {
        padding-bottom: 0.5em;
        font-size: 2em;
    }
    .nav a {
        color: var(--text-on-dark, #fff);
    }


    .seperator {
        height: 1.3em;
    }

    .mediacastlogocolour {
        display: none !important;
    }

    .mediacastlogowhite {
        display: inline !important;
    }

    .mediacastlogoverywhite {
        display: none !important;
    }

    .nav > li > a {
        padding: 10px 15px;
        color: var(--brand-primary, #3d1a6f);
    }

    #mainNav .navbar-nav .nav-item .nav-link {
        font-family: 'Outfit', sans-serif;
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--text-on-dark, #fff);
        letter-spacing: 0.5px;
    }

    .seperator {
        height: 3em;
    }

    .specials {
        text-align: right;
    }

    #mainNav {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem;
        border: none;
        background: linear-gradient(135deg, #3d1a6f 0%, #2d1352 100%);
        box-shadow: 0 2px 12px rgba(61, 26, 111, 0.4);
        border-bottom: 3px solid var(--brand-accent, #fdb913);
        transition: padding-top 0.3s ease-in-out, padding-bottom 0.3s ease-in-out;
    }

        #mainNav .navbar-brand {
            font-size: 1em;
            transition: font-size 0.3s ease-in-out;
        }

            #mainNav .navbar-brand img {
                height: 3rem;
                transition: height 0.3s ease-in-out;
            }

        #mainNav.navbar-shrink {
            padding-top: 0.4rem;
            padding-bottom: 0.4rem;
            background: linear-gradient(135deg, #3d1a6f 0%, #2d1352 100%);
            box-shadow: 0 2px 16px rgba(61, 26, 111, 0.5);
        }

            #mainNav.navbar-shrink .navbar-brand {
                font-size: 1em;
            }

                #mainNav.navbar-shrink .navbar-brand svg,
                #mainNav.navbar-shrink .navbar-brand img {
                    height: 2rem;
                }

            #mainNav.navbar-shrink .navbar-nav .nav-item .nav-link,
            #mainNav.navbar-shrink .navbar-nav .nav-item .dropdown-toggle {
                color: var(--text-on-dark, #fff) !important;
            }

            #mainNav.navbar-shrink .navbar-nav .nav-item:hover .dropdown-toggle {
                color: var(--brand-accent, #fdb913) !important;
            }

        #mainNav .commstool {
            color: var(--brand-accent, #fdb913);
            padding: 0.4rem 0.9rem;
            margin-left: 10px;
            border: 1px solid rgba(253, 185, 19, 0.5);
            border-radius: 6px;
            font-weight: 600;
            background: rgba(253, 185, 19, 0.1);
            transition: all 0.2s ease;
        }

        #mainNav .commstool:hover {
            background: rgba(253, 185, 19, 0.2);
            border-color: var(--brand-accent, #fdb913);
        }

        #mainNav .padlock {
            color: var(--brand-danger, #ed174c);
            padding: 0.4rem 0.9rem;
            margin-left: 10px;
            border: 1px solid rgba(237, 23, 76, 0.5);
            border-radius: 6px;
            font-weight: 600;
            background: rgba(237, 23, 76, 0.1);
        }

        #mainNav .telephone {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: var(--text-on-dark, #fff);
            padding: 0.4rem 0.9rem;
            margin-left: 0;
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 6px;
            font-weight: 600;
            font-size: 0.75rem;
            background: rgba(255, 255, 255, 0.1);
            transition: all 0.2s ease;
        }

        #mainNav .telephone:hover {
            color: var(--brand-accent, #fdb913);
            background: rgba(253, 185, 19, 0.15);
            border-color: var(--brand-accent, #fdb913);
        }

        #mainNav.navbar-shrink .mediacastlogocolour {
            display: none !important;
        }

        #mainNav.navbar-shrink .mediacastlogowhite {
            display: inline !important;
        }

        #mainNav.navbar-shrink .mediacastlogoverywhite {
            display: none !important;
        }

        #mainNav .navbar-nav .nav-item {
            margin-right: 1rem;
        }

            #mainNav .navbar-nav .nav-item:last-child {
                margin-right: 0;
            }
}

/* Tablet landscape (992px-1249px) - compact navbar to prevent wrapping */
@media (min-width: 992px) and (max-width: 1249px) {
    /* Main navbar - full width flex */
    #mainNav {
        padding-top: 0.4rem !important;
        padding-bottom: 0.4rem !important;
    }

    #mainNav > .container,
    #mainNav > .container-fluid {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        max-width: 100% !important;
    }

    /* Force navbar container to spread items */
    #mainNav .navbar-collapse {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        align-items: center !important;
        flex-grow: 1 !important;
    }

    /* Main nav menu - don't grow, stay compact */
    #mainNav .navbar-nav:first-child {
        flex-wrap: nowrap !important;
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
    }

    /* Reduce logo area significantly */
    #mainNav .navbar-brand {
        max-width: 160px !important;
        flex-shrink: 0 !important;
    }

    #mainNav .navbar-brand > div {
        padding-right: 0.5rem !important;
        gap: 4px !important;
    }

    #mainNav .navbar-brand img {
        height: 38px !important;
    }

    #mainNav .navbar-brand span:first-child {
        font-size: 1.1rem !important;
    }

    #mainNav .navbar-brand span:last-child {
        font-size: 0.45rem !important;
        display: none !important;
    }

    /* Tablet menu items - comfortable spacing */
    #mainNav .navbar-nav .nav-item {
        margin-right: 1rem !important;
    }

    #mainNav .navbar-nav .nav-item:last-child {
        margin-right: 0 !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle {
        font-size: 0.85rem !important;
        padding: 0.25rem 0.5rem !important;
        gap: 4px !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle i {
        font-size: 0.9rem !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle::after {
        margin-left: 2px !important;
        border-top-width: 3px !important;
        border-right-width: 2px !important;
        border-left-width: 2px !important;
    }

    /* Specials/buttons - push to far right */
    #mainNav .specials {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: flex-end !important;
        gap: 0.15rem !important;
        margin-left: auto !important;
        flex-shrink: 0 !important;
        padding-left: 0.5rem !important;
    }

    #mainNav .specials > li {
        display: flex !important;
        align-items: center !important;
    }

    /* THE HIVE and LOGOUT stacked */
    #mainNav .specials .nav-buttons-row {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.25rem !important;
    }

    #mainNav .telephone {
        font-size: 0.55rem !important;
        padding: 0.2rem 0.35rem !important;
        white-space: nowrap !important;
    }

    /* Compact toolbar buttons */
    #mainNav .navtoolbtn i {
        padding-left: 3px !important;
        font-size: 0.85rem !important;
    }

    /* Remove right padding from navbar to push buttons flush right */
    #mainNav {
        padding-right: 0.5rem !important;
    }

    #mainNav .specials {
        padding-right: 0 !important;
        margin-right: 0 !important;
    }

    /* Reduce brand padding-right on tablet */
    #mainNav .navbar-brand > div {
        padding-right: 1rem !important;
    }
}

/* Narrow tablet (992px-1100px) - tighter but still readable */
@media (min-width: 992px) and (max-width: 1100px) {
    #mainNav .navbar-nav .nav-item {
        margin-right: 0.5rem !important;
    }

    /* Slightly smaller nav text */
    #mainNav .navbar-nav .nav-item .dropdown-toggle {
        font-size: 0.8rem !important;
        padding: 0.25rem 0.35rem !important;
        gap: 2px !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle i {
        font-size: 0.9rem !important;
    }

    /* Smaller dropdown caret */
    #mainNav .navbar-nav .nav-item .dropdown-toggle::after {
        margin-left: 2px !important;
        border-top-width: 3px !important;
        border-right-width: 2px !important;
        border-left-width: 2px !important;
    }

    /* Very compact buttons */
    #mainNav .telephone {
        font-size: 0.55rem !important;
        padding: 0.2rem 0.35rem !important;
    }

    /* Smaller logo */
    #mainNav .navbar-brand img {
        height: 35px !important;
    }

    #mainNav .navbar-brand span:first-child {
        font-size: 1rem !important;
    }

    #mainNav .navbar-brand span:last-child {
        display: none !important;
    }

    /* Ensure buttons flush right on narrow tablets too */
    #mainNav {
        padding-right: 0.25rem !important;
    }

    #mainNav .specials {
        padding-right: 0 !important;
        margin-right: 0 !important;
    }

    #mainNav .navbar-brand > div {
        padding-right: 0.5rem !important;
    }
}

@media (min-width: 1250px) {
    /* Keep navbar items and specials on same row */
    #mainNav .navbar-collapse {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    /* The mode menu (BUSINESS/PLAN/PITCH/DELIVER/RESULTS) must never spill onto a
       second row. The inline search box added width to the bar, so without this the
       last item wrapped across the whole 1250-1500 band. */
    #mainNav .navbar-nav:first-child {
        flex-wrap: nowrap !important;
        flex-shrink: 0 !important;
    }

    #mainNav .navbar-nav .nav-item {
        margin-right: 0.9rem !important;
    }

    /* Specials (notifications + buttons) stay right-aligned */
    #mainNav .specials {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: flex-end !important;
        margin-left: auto !important;
        gap: 0.25rem;
    }

    #mainNav .specials > li {
        display: flex !important;
        align-items: center !important;
    }

    /* THE HIVE and LOGOUT stacked on larger screens */
    #mainNav .nav-buttons-row {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.25rem;
    }
}

/* Mid-desktop (1250-1549) - the search box is present but there is not yet room
   for the full-size logo + nav. Keep a comfortable-medium scale (larger than the
   tablet tier, smaller than full) so the whole bar stays on one row. Full size
   engages at >=1550 where it genuinely fits. */
@media (min-width: 1250px) and (max-width: 1549px) {
    #mainNav .navbar-nav .nav-item .dropdown-toggle {
        font-size: 0.85rem !important;
        padding: 0.35rem 0.55rem !important;
        gap: 5px !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle i {
        font-size: 0.85rem !important;
    }

    #mainNav .navbar-nav .nav-item .dropdown-toggle::after {
        margin-left: 3px !important;
        border-top-width: 4px !important;
        border-right-width: 3px !important;
        border-left-width: 3px !important;
    }

    /* Trim the oversized brand + drop the tagline to free horizontal space. */
    #mainNav .navbar-brand img {
        height: 44px !important;
    }

    #mainNav .navbar-brand span:first-child {
        font-size: 1.4rem !important;
    }

    #mainNav .navbar-brand span:last-child {
        display: none !important;
    }

    #mainNav .navbar-brand > div {
        padding-right: 1rem !important;
        gap: 6px !important;
    }

    /* Narrower search field in the tight band (full 260px returns at >=1550). */
    .bh-nav-search__wrap.crm-search-inline {
        max-width: 210px !important;
        width: 210px !important;
    }

    /* Keep the HIVE / LOGOUT chips trim. */
    #mainNav .telephone {
        font-size: 0.62rem !important;
        padding: 0.25rem 0.5rem !important;
    }
}

@media (min-width: 1550px) {
    #mainNav .navbar-nav .nav-item {
        margin-right: 1.8rem !important;
    }
}
@media (min-width: 1750px) {
    #mainNav .navbar-nav .nav-item {
        margin-right: 2.4rem !important;
    }
}

.required:after {
    color: var(--brand-danger, #ed174c);
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: normal;
    font-size: 14px;
    content: "\f069";
    padding-left: 2px;
}
/*to manage lost images*/
img {
    display: inline-block;
    /*above cant be sent to important as it changes the nav. 2 bee problem*/
    font-family: Arial, sans-serif;
    font-weight: 300;
    line-height: 2;
    text-align: center;
    /*    min-width: 300px;
    min-height: 50px;*/
    display: block;
    position: relative;
}
    img::before {
        content: '';
        width: 100%;
        min-height: 130px;
        background-color: var(--border-strong, #ccc);
        border-radius: 0px;
        position: absolute;
        top: 0%;
        left: -0px;
        transform: translateY(-50%);
    }
    img::after {
        /*
        content: "\2639" " " attr(alt);
        font-size: 18px;
            */
        font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
        content: "\f03e" " " attr(alt);
        font-size:2em;
        color: var(--text-secondary, rgb(100, 100, 100));
        display: block;
        position: absolute;
        z-index: 2;
        top: 0px;
        left: 0;
        width: 100%;
        height: 100%;
    }
.text-danger{
    color:var(--brand-danger, #ed174c);
}
/* Grid-based pill navigation (used in GridViews as vertical tabs) */
.gridpillouter a {
    display: block;
    color: var(--text-secondary, #666);
    padding: 0.75rem 1.25rem;
    border-radius: 8px;
    margin-bottom: 0.5rem;
    transition: all 0.2s ease;
    font-weight: 500;
    font-size: 14px;
    border-left: 3px solid transparent;
    text-decoration: none;
}
.gridpillouter a:hover {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
    border-left-color: var(--brand-accent, #fdb913);
    text-decoration: none;
}
.gridpillouter a.active,
.gridpillouter a.selected {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%) !important;
    color: var(--text-on-dark, #fff) !important;
    border-left-color: var(--brand-accent, #fdb913);
}

.gridpills {
    border-radius: 8px;
}
.storybox {
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
    height: 200px;
    width: 100%;
    /*  max-width: 300px;*/
    /* Brand-purple scrim: holds every card as one cohesive purple grid by keeping the logo
       a faint watermark (not a loud hero), and goes a touch deeper at the top and bottom
       edges where the client name, title and status sit, for clean text legibility.
       Single layer replaces the old flat 70% black + 50% purple double wash. */
    background: linear-gradient(to bottom,
        rgba(48,20,86,0.93) 0%,
        rgba(61,26,111,0.82) 45%,
        rgba(61,26,111,0.84) 57%,
        rgba(48,20,86,0.94) 100%);
    color: var(--text-on-dark, #fff);
    text-align: center;
    vertical-align: middle;
    position: relative;

}
.storyboximage {
    overflow: visible;
    width: 100%;
    height: 200px;
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    margin-top: 30px;
    margin-left: 10%;
}

    .storybox:hover {
        /*  background: rgba(0,0,0,0.8) 0%;*/
    }
    .storybox a {
        color:var(--text-on-dark, #fff);
    }

.storyboxtitle {
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    color: var(--text-on-dark, #fff);
    padding-top: 10px;
    height: 80% !important;
    position: relative;
    z-index: 11;
    min-width:40px;
}
.storyboxtitle-text {
    display: block;
    padding: 0 10px;
}
.storyboxdesc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 8px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--text-on-dark-muted, rgba(255, 255, 255, 0.7));
}
.storyboxdesc:empty {
    display: none;
}
.storybox.is-closed .storyboxtitle {
    opacity: 0.55;
    filter: grayscale(0.7);
}
.storybox.is-closed:hover .storyboxtitle {
    opacity: 0.8;
}
.storybox-status-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 12;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(220, 53, 69, 0.85);
    color: #fff;
    pointer-events: none;
}
.storybox-reopen-btn {
    position: absolute;
    bottom: 8px;
    right: 8px;
    z-index: 12;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    background: var(--brand-primary, #5a2d82);
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
.storybox-reopen-btn:hover,
.storybox-reopen-btn:focus {
    background: var(--brand-primary-hover, #6e3a9e);
    color: #fff !important;
    text-decoration: none !important;
}
.storyboxtitle-bottom {
    position: relative;
    bottom: 5px;
    z-index: 11;
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    color: var(--text-on-dark, #fff);
}
.storyboxtext {
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    color: var(--text-on-dark, #fff);
    position: relative;
    z-index: 11;
}

/* Story health badges on story selector cards */
.story-health-badge {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 12;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}
.story-health-badge i { font-size: 0.6rem; }
.story-health-badge.on-track { background: var(--status-success, #28a745); color: var(--text-on-dark, #fff); }
.story-health-badge.at-risk { background: var(--status-warning-bg, #ffc107); color: var(--text-primary, #333); }
.story-health-badge.off-track { background: var(--status-danger, #dc3545); color: var(--text-on-dark, #fff); }
.story-health-badge.mytooltip { position: absolute !important; }

/* 3-axis campaign-card health badge: outcome headline (KPI SSOT) + separate hours chip (EffortHealth).
   Rendered by window.BHCardHealth.badgeHtml; outcome arrives async via the .bh-card-health-host wrapper. */
.bh-card-health-host { display: contents; }
.bh-card-health { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); z-index: 12;
    display: inline-flex; flex-direction: column; align-items: center; gap: 0.2rem; white-space: nowrap; }
.storybox .bh-card-health { position: relative; bottom: auto; left: auto; transform: none; margin: 0 auto; }
.bh-card-health .bh-ch-outcome { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.2rem 0.6rem;
    border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--text-on-dark, #fff); }
.bh-card-health .bh-ch-outcome.bh-ch-standout { background: var(--status-standout, #6f42c1); }
.bh-card-health .bh-ch-outcome.bh-ch-on-track { background: var(--status-success, #28a745); }
.bh-card-health .bh-ch-outcome.bh-ch-behind   { background: var(--status-warning-bg, #ffc107); color: var(--text-primary, #333); }
.bh-card-health .bh-ch-outcome.bh-ch-at-risk  { background: var(--status-danger, #dc3545); }
.bh-card-health .bh-ch-outcome.bh-ch-no-kpis  { background: var(--status-neutral, #9aa0a6); }
.bh-card-health .bh-ch-outcome.bh-ch-pending  { background: var(--status-neutral, #9aa0a6); opacity: .55; min-width: 54px; min-height: 1.1em; }
.bh-card-health .bh-ch-effort { font-size: 0.58rem; font-weight: 600; padding: 0.05rem 0.45rem; border-radius: 12px;
    background: rgba(0,0,0,0.35); color: var(--text-on-dark, #fff); text-transform: none; letter-spacing: 0; }
.bh-card-health .bh-ch-effort.bh-ch-budget-overbudget { color: var(--status-danger-text, #ffd5d5); }
.bh-card-health .bh-ch-effort.bh-ch-budget-nearbudget { color: var(--status-warning-text, #ffe9a8); }

/* Hours BAR on the dark story tile -- replaces the worded "Hours:" chip (Scripts/story-selector.js
   tileHoursBar). Flows just below the outcome pill (the badge is relative inside .storybox). Band from
   the EffortHealth SSOT; neutral-until-warn -- on-budget lavender keeps green exclusive to the KPI pill. */
.bh-tilebar { display: flex; align-items: center; justify-content: center; gap: 7px;
    width: 62%; max-width: 190px; margin: 5px auto 0; position: relative; z-index: 12; }
.bh-tilebar-trk { flex: 1; height: 6px; border-radius: 999px; background: rgba(255,255,255,.18); overflow: hidden; }
.bh-tilebar-fl { display: block; height: 100%; border-radius: 999px; background: #c5b3e8; }
.bh-tilebar-num { font-size: 0.6rem; font-weight: 700; color: rgba(255,255,255,.82); white-space: nowrap; letter-spacing: .2px; }
.bh-tilebar--nearbudget .bh-tilebar-fl { background: var(--status-warning-bg, #ffc107); }
.bh-tilebar--nearbudget .bh-tilebar-num { color: #ffd966; }
.bh-tilebar--overbudget .bh-tilebar-fl { background: #ff6b78; }
.bh-tilebar--overbudget .bh-tilebar-num { color: #ff8d9a; }

.storyboxoverlay {
    position: absolute;
    height: 200px;
    width: 100%;
    text-align: center;
    top: 0;
    left: 0px;
    /* Darkening now lives in the .storybox gradient scrim; this layer is kept (several
       pages still emit it) but no longer re-washes the logo. */
    background: transparent;
    z-index: 1;
    border-radius: 3px;
    pointer-events: none;
}
.fixed-top {
    /* Must beat .smallside sticky sub-nav (z-index 1020) so mobile burger menu renders above sub-nav pills. Bootstrap default is 1030. */
    z-index: 1030;
}

/*Talent Card */
.firstinfo {
    display: flex;
    justify-content: left;
}

.surveycontent {
    position: relative;
}


.surveycard {
    height: 80px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    /* position: relative;
    overflow: hidden;*/
}


.surveycard:hover {
    animation-name: animateprojectcard;
    animation-duration: 0.9s;
    background-color: var(--bg-muted, #f0f0f0);
}
.surveyactionscard {
    top: 20px;
    right: 27px;
    /* padding: 2px 20px; */
    border-radius: 3px;
    background-color: var(--bg-muted, #f0f0f0);
    width: 175px;
    box-shadow: 0px 10px 20px rgb(0 0 0 / 20%);
    position: absolute;
    z-index: 0;
    /* left: 286px;
     bottom: 34px;
      
    */
    height: 3em;
    padding-top: 5px;
    text-align: center;
}

    .surveyactionscard span {
        font-size: 1.6em;
        margin: 0px 6px;
        opacity: 0.6;
    }

.talentcontent {
    position: relative;
    /*  animation: animatop 0.9s cubic-bezier(0.425, 1.14, 0.47, 1.125) forwards;*/
}
.talentcontent-animate {
    position: relative;
    /* animatop slide-up removed -- replayed on every postback (e.g. Enable Alerts toggle) and looked like a flicker */
}
.talentcard {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    border: 1.5px solid var(--brand-primary, #3d1a6f);
    box-shadow: 0 2px 16px rgba(61,26,111,0.10);
    position: relative;
    overflow: hidden;
    /* Fixed width keeps every card the same size regardless of content length.
       370px fits a full-length work email (e.g. georgevanvelzen@mediacast.com.au, 32 chars)
       on one line so the EMAIL row doesn't wrap mid-token and add height. */
    width: 370px;
    min-width: 0;
    min-height: 720px;
    display: flex;
    flex-direction: column;
    z-index: 5;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.talentcard:hover {
    box-shadow: 0 4px 20px rgba(61,26,111,0.16);
}
/* InterviewCoverage Talent & Access cards carry no availability calendar (removed in the
   2026-05-12 Portal-Access merge), so the 720px floor above -- which existed only to reserve
   room for that calendar -- just leaves dead whitespace, most visible on the content-light
   admin card. Inside the portal-cards grid, size to content; the grid keeps same-row cards
   equal-height. portal-cards-container is InterviewCoverage-only, so this floor stays intact
   for CampaignBuilder et al. where the calendar still lives. */
.portal-cards-container .talentcard { min-height: auto; }
/* Schedule Administrator cards: same visual family as the talent cards, but content-light
   (name / email / alerts / last-seen only) -- so a slimmer portrait variant in a tighter grid.
   Banner + avatar kept (shared family), just scaled down. talentcontent flexes so each card
   fills its stretched grid cell -> the admin cards and the ghost add-card share one height. The
   alert-row footer pins to the bottom; the small min-height only gives a lone card / ghost
   presence (real content exceeds it). The --admin grid is InterviewCoverage Talent & Access only. */
.portal-cards-container--admin {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.portal-cards-container--admin .talentcontent { display: flex; }
.portal-cards-container--admin .talentcard {
    width: 100%;
    max-width: 320px;
    min-height: 180px;
}
.portal-cards-container--admin .talent-banner { height: 56px; }
.portal-cards-container--admin .talent-header { margin-top: -32px; }
.portal-cards-container--admin .talent-alert-row { margin-top: auto; }
/* Equal-height cards: the row stretches every col to the tallest sibling (Bootstrap
   .row default), but that height has to propagate down the wrapper chain to the card,
   otherwise a card with less content (e.g. "None" availability) sits short. Flex the
   whole chain so .talentcard fills its column; .talent-availability absorbs the slack. */
.listview-container .col-auto { display: flex; flex-direction: column; }
.listview-container .talentcontentcontainer { flex: 1 1 auto; display: flex; flex-direction: column; }
.listview-container .talentcontent-animate { flex: 1 1 auto; display: flex; flex-direction: column; }
.listview-container .talentcard { flex: 1 1 auto; }

/* Availability section grows to fill the vertical difference between cards */
.talentcard .talent-availability {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.talentcard .talent-availability-list {
    max-height: 220px;
    overflow-y: auto;
}

.talentcard-sm { min-height: 250px !important; }
.talentcard-xs { height: 250px !important; }

/* Bio indicator (id-card icon, brand-purple filled vs muted outline) */
.talent-bio-indicator { margin-left: 0.4rem; font-size: 0.9rem; vertical-align: middle; }
.talent-bio-indicator--has { color: var(--brand-primary, #3d1a6f); }
.talent-bio-indicator--missing { color: var(--text-muted, #b0b0b0); }

/* Ghost "Add talent" card -- dashed brand-purple, matches real-card footprint */
.talentcard--ghost {
    background: var(--bg-surface, #fff);
    border: 2px dashed var(--brand-primary, #3d1a6f);
    box-shadow: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.talentcard--ghost:hover {
    background: var(--bg-purple-tint, #f4eef9);
    border-color: var(--brand-secondary, #5a2d82);
}
.talentcard-ghost-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.5rem;
    gap: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
}
.talentcard-ghost-inner i {
    font-size: 2.5rem;
    color: var(--brand-primary, #3d1a6f);
}
.talentcard-ghost-title {
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.talentcard-ghost-hint {
    font-size: 0.8rem;
    color: var(--text-muted, #888);
}

/* -- Talent Card Banner -- */
.talent-banner {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 60%, #7d1d61 100%);
    height: 72px;
    border-radius: 12px 12px 0 0;
    position: relative;
}

/* -- Talent Card Header: centered photo + name -- */
.talent-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 1.25rem 0.75rem;
    margin-top: -40px;
    position: relative;
    z-index: 2;
}
/* Wrap stacks photo over initials placeholder; image hides itself onerror so initials show through */
.talent-photo-wrap {
    position: relative;
    width: 80px;
    height: 80px;
}
.talent-photo-wrap .talent-photo,
.talent-photo-wrap .talent-photo-placeholder {
    position: absolute;
    top: 0;
    left: 0;
    width: 80px;
    height: 80px;
}
.talent-photo {
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #fff;
    background: var(--bg-purple-tint, #f0edf5);
    box-shadow: 0 2px 8px rgba(61,26,111,0.15);
    z-index: 2;
}
.talent-photo-placeholder {
    border-radius: 50%;
    border: 4px solid #fff;
    background: linear-gradient(135deg, #fdb913 0%, #f5a623 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 1px;
    box-shadow: 0 2px 8px rgba(61,26,111,0.15);
    z-index: 1;
}
.talent-identity {
    text-align: center;
    margin-top: 0.4rem;
    max-width: 100%;
}
.talent-identity .talent-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin: 0 0 0.15rem;
    line-height: 1.3;
}
.talent-identity .talent-title {
    font-size: 0.82rem;
    color: var(--text-tertiary, #888);
    margin: 0;
    line-height: 1.4;
}

/* -- Action toolbar -- */
.talent-actions {
    display: flex;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.5rem 1.25rem;
    border-top: 1px solid #f0edf5;
    border-bottom: 1px solid #f0edf5;
    background: var(--bg-subtle, #fafafa);
}
.talent-actions .action-btn {
    width: 30px;
    height: 30px;
    font-size: 0.75rem;
}

/* -- Contact details grid -- */
.talent-details {
    padding: 0.75rem 1.25rem 0.5rem;
}
.talent-detail-row {
    display: flex;
    align-items: center;
    padding: 0.3rem 0;
    font-size: 0.85rem;
    color: var(--text-primary, #444);
    line-height: 1.4;
}
.talent-detail-row i {
    width: 20px;
    text-align: center;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.8rem;
    flex-shrink: 0;
    margin-right: 0.4rem;
}
.talent-detail-row a { color: var(--brand-primary, #3d1a6f); }
.talent-detail-row a:hover { color: var(--brand-primary, #5a2d9e); text-decoration: underline; }
.talent-detail-row .talent-email { word-break: break-all; }
.talent-detail-label {
    color: var(--text-muted, #aaa);
    font-size: 0.72rem;
    min-width: 54px;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
}

/* Empty-state row -- keeps card heights aligned across the grid when a contact field is
   blank. Icon + label stay visible (so the row reserves space + structure is obvious);
   a muted "Not set" placeholder makes the absence explicit without looking like data. */
.talent-detail-row--empty {
    opacity: 0.55;
}
.talent-detail-row--empty::after {
    content: "Not set";
    color: var(--text-muted, #999);
    font-style: italic;
    font-size: 0.78rem;
}

/* -- Divider -- */
.talent-divider {
    border: none;
    border-top: 1px solid #f0edf5;
    margin: 0.2rem 0;
}

/* -- Agreement state row -- in-card workflow surface for the talent-agreement state
   machine. Three modifier classes drive the colour palette: none/inprogress/signed. --*/
.talent-agreement-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.5rem;
    padding: 0.55rem 1rem;
    margin: 0.35rem 0.75rem 0;
    border-radius: 8px;
    font-size: 0.85rem;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
/* Whole box is the click target (delegated to .ta-row-cta in JS) -- hover signals it. */
.talent-agreement-row:hover { box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12); }
.talent-agreement-row .ta-row-icon { flex: 0 0 auto; font-size: 0.95rem; }
.talent-agreement-row .ta-row-label {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--brand-primary, #3d1a6f);
}
.talent-agreement-row .ta-row-state {
    flex: 1 1 auto;
    color: var(--text-primary, #333);
    font-weight: 500;
    min-width: 0;
    text-align: right;
}
/* CTA forced onto its own full-width line below the label/state -- the narrow card
   (340px) can't fit label + state + button on one row without the date wrapping. */
.talent-agreement-row .ta-row-cta {
    flex: 1 0 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.4rem;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    line-height: 1.4;
}

.talent-agreement-row.ta-state--none {
    background: var(--bg-subtle, #faf8fd);
    border-color: var(--border-default, #e9ecef);
}
.talent-agreement-row.ta-state--none .ta-row-icon,
.talent-agreement-row.ta-state--none .ta-row-state { color: var(--text-muted, #888); }
.talent-agreement-row.ta-state--none .ta-row-cta {
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-primary, #3d1a6f);
}

.talent-agreement-row.ta-state--inprogress {
    background: var(--bg-gold-tint, #fff5dc);
    border-color: var(--border-gold-soft, #e8dfa8);
}
.talent-agreement-row.ta-state--inprogress .ta-row-icon { color: var(--brand-accent, #d4a824); }

.talent-agreement-row.ta-state--signed {
    background: var(--status-success-bg, #d4edda);
    border-color: var(--status-success, #28a745);
}
.talent-agreement-row.ta-state--signed .ta-row-icon { color: var(--status-success, #28a745); }
.talent-agreement-row.ta-state--signed .ta-row-state { color: var(--status-success-text, #155724); }

/* -- Alert row -- */
.talent-alert-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.25rem;
    background: var(--bg-subtle, #fafafa);
    border-top: 1px solid #f0edf5;
    font-size: 0.82rem;
    color: var(--text-secondary, #666);
}
.talent-alert-row i { color: var(--brand-danger, #ed174c); font-size: 0.8rem; }
/* Action buttons nested in the alert row (admin card edit/delete) keep their own icon colour --
   the alert-row red above is only for the bell glyph, not for .action-btn pills. */
.talent-alert-row .action-btn i { color: inherit; font-size: inherit; }
.talent-alert-row .switch { margin-left: auto; }

/* -- Enable Alerts toggle bar -- */
.talent-toggle-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1.25rem;
    background: var(--bg-purple-tint, #f8f6fb);
    border-top: 1px solid #f0edf5;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

/* -- Notes section -- */
.talent-notes {
    padding: 0.5rem 1.25rem 0.75rem;
    font-size: 0.85rem;
    color: var(--text-body, #555);
    border-top: 1px solid #f0edf5;
}

/* -- Talent Availability section -- */
.talent-availability {
    padding: 0.6rem 1.25rem 0.75rem;
    border-top: 1px solid #f0edf5;
}
.talent-availability h6 {
    font-size: 0.72rem;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 700;
    margin: 0 0 0.35rem;
    border-bottom: 2px solid #fdb913;
    padding-bottom: 0.2rem;
    display: inline-block;
}
.talent-availability .legend {
    font-size: 0.72rem;
    color: var(--text-muted, #888);
    margin-bottom: 0.4rem;
}
.talent-availability .legend .red { color: #ed174c; font-weight: 600; }
.talent-availability .legend .green { color: #28a745; font-weight: 600; }
.talent-availability-list { display: flex; flex-direction: column; gap: 0.2rem; }
.talent-availability-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    background: var(--bg-subtle, #fafafa);
    font-size: 0.82rem;
    border-left: 3px solid transparent;
}
.talent-availability-item:hover { background: var(--bg-purple-tint, #f8f6fb); }
.talent-availability-item.is-unavailable { border-left-color: #ed174c; }
.talent-availability-item.is-available { border-left-color: #28a745; }
.talent-availability-item .action-btn { width: 26px; height: 26px; font-size: 0.7rem; }
.talent-availability-item .talent-availability-date { color: var(--text-body, #444); }
.talent-availability-item.is-unavailable .talent-availability-date { color: #ed174c; }
.talent-availability-item.is-available .talent-availability-date { color: #28a745; }

/* -- Add to Directory button -- gold-accent "encourage" affordance, not destructive red.
   Pairs with the gold .btn-sparkle pulse. Constructive action (promote talent to the reusable
   directory) reads as an enhancement, never a warning. */
.talent-identity .btn-add-library {
    margin-top: 0.5rem;
    font-size: 0.78rem;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-gold-tint, #fff5dc);
    border: 1.5px solid var(--brand-accent, #fdb913);
    font-weight: 600;
}
.talent-identity .btn-add-library:hover,
.talent-identity .btn-add-library:focus {
    /* Solid gold fill in both themes -> dark purple text reads on gold regardless of theme
       (do NOT use --brand-primary here: it flips to light violet in dark and washes out on gold). */
    color: #3d1a6f;
    background: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
}
/* Done-state: quiet confirmation once the talent is in the directory (replaces the CTA). */
.talent-identity .talent-directory-pill {
    margin-top: 0.5rem;
    font-size: 0.72rem;
}

/* -- Mobile responsive -- */
@media (max-width: 576px) {
    .talentcard { max-width: 100%; }
    .talent-banner { height: 56px; }
    .talent-header { margin-top: -32px; }
    .talent-photo-wrap { width: 64px; height: 64px; }
    .talent-photo-wrap .talent-photo,
    .talent-photo-wrap .talent-photo-placeholder { width: 64px; height: 64px; font-size: 1.2rem; }
    .talent-details, .talent-notes,
    .talent-alert-row, .talent-availability,
    .talent-toggle-bar, .talent-actions, .talent-bio { padding-left: 1rem; padding-right: 1rem; }
}

/* -- Client-portal talent bio (read-only showcase). The portal's talent cards reuse the
   canonical .talentcard chrome but add a profile block the internal cards don't carry.
   A capped scroll region keeps every card a uniform height in the portal grid. -- */
.talent-bio {
    padding: 0.6rem 1.25rem 1rem;
    border-top: 1px solid #f0edf5;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.talent-bio-label {
    display: block;
    margin-bottom: 0.35rem;
}
.talent-bio-text {
    flex: 1 1 auto;
    max-height: 200px;
    overflow-y: auto;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--text-body, #444);
}
/* Profiles are pasted rich text that drags its own inline font-family / size / colour in from
   the source document (Word, an email, etc.), so it ignores the brand font and can turn
   invisible on the dark card. Force the whole bio onto the card's brand font and themed colour;
   bold, italic, lists and links are preserved (links keep their own colour). */
.talent-bio-text,
.talent-bio-text * {
    font-family: inherit !important;
    font-size: inherit !important;
}
.talent-bio-text *:not(a) {
    color: inherit !important;
}

/* Client-portal talent grid: uniform fixed-height cards so the spokesperson showcase stays
   even regardless of bio length (the bio scrolls within its capped region). Scoped to the
   portal modifier so InterviewCoverage's .portal-cards-container cards are unaffected. The
   .talentcontent chain flexes so the card fills its grid cell to the fixed height. */
.cp-talent-grid .talentcontent,
.cp-talent-grid .talentcontent-animate { display: flex; flex-direction: column; }
.cp-talent-grid .talentcard { height: 520px; }
/* Single column on narrow viewports -- uniform height adds nothing, so size to content. */
@media (max-width: 768px) {
    .cp-talent-grid .talentcard { height: auto; }
}

.firstinfo {
    flex-direction: row;
    z-index: 2;
    position: relative;
}

    .firstinfo img {
        width: 30%;
    }

    .firstinfo .profileinfo {
        padding: 0px 20px;
    }

.talentcard h5 {
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0em;
}

.talentcard h6 {
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0em;
}

.firstinfo .profileinfo p.bio {
    padding: 10px 0px;
    color: var(--text-body, #5a5a5a);
    line-height: 1.2;
    font-style: initial;
}

@keyframes animatop {
    0% {
        opacity: 0;
        bottom: -100px;
    }

    100% {
        opacity: 1;
        bottom: 0px;
    }
}

@keyframes animainfos {
    0% {
        bottom: 10px;
    }

    100% {
        bottom: -42px;
    }
}
/* end talent card*/
/* start headshot */
.headshot {
    /* width: 100%;*/
    height: 250px;
    /* overflow: hidden;*/
}

.headshotimg {
    width: 100%;
    text-align:center;
    /*   height: 100%;
    min-width: 100%;
    left: 50%;
    position: relative;
    transform: translateX(-50%);
     */
}
/* end headshot */

.financecontent {
    position: relative;
    margin-bottom: .5em;
}
.financecard {
    position: relative;
    min-height: 80px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}

    .financecard:hover {
        animation-name: animateprojectcard;
        animation-duration: 0.9s;
        background-color: var(--bg-muted, #f0f0f0);
    }
.sharefilecontent {
    position: relative;
    margin-bottom: 2.5em;
}

.sharefilecard {
    min-height: 164px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}






/* Card Actions - inline icon buttons (replaces *actionscard grey slab) */
.card-actions {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    display: flex;
    gap: 0.5rem;
    z-index: 10;
}
.card-actions .btn {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 0.85rem;
}
/* Mobile: card-actions wrap and reduce size to prevent overflow */
@media (max-width: 576px) {
    .card-actions {
        position: relative;
        top: 0;
        right: 0;
        flex-wrap: wrap;
        justify-content: flex-end;
        margin-bottom: 0.5rem;
    }
    .card-actions .btn {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }
}
/* Card tooltip overflow hacks removed -- tooltips are now body-appended via bh-tooltips.js */

    /*Project Card */
    .projectinfo, .projectactionscard {
    display: flex;
    justify-content: left;
}

.projectcontent {
    position: relative;
    margin-bottom: .5em;
    /*  animation: animaprojecttop 0.9s cubic-bezier(0.425, 1.14, 0.47, 1.125) forwards;*/
}
.projectcontent-sm {
    margin-bottom: .3em;
}

.projectcard {
    position: relative;
    min-height: 100px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}
    .projectcard:hover {
        animation-name: animateprojectcard;
        animation-duration: 0.9s;
        background-color: var(--bg-muted, #f0f0f0);
    }
@keyframes animateprojectcard {
    from {
        background-color: var(--brand-danger, #ed174c);
    }

    to {
        background-color: var(--bg-muted, #f0f0f0);
    }
}
.projectcard-sm {
    min-height:40px;
    padding:10px;
}
.projectcard-lg {
    min-height: 100px;
    padding: 10px;
}
.projectactionscard {
    display: inline-block;
    align-content: center;
    text-align: center;
    border-radius: 3px;
    background-color: var(--bg-muted, #f0f0f0);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: absolute;
    top: 5px;
    height: 6em;
    padding-top: 5px;
    margin-left: 2.7em;
    line-height: 0px;
    animation: animaprojectinfos 0.5s cubic-bezier(0.425, 1.04, 0.47, 1.105) 0.75s forwards;
}
.projectactionscard-xs {
    height: 2em;
}
.projectactionscard-sm {
    height:4em;
}
.projectactionscard-md {
    height: 5em;
}
.projectactionscard-lg {
    height: 8em;
}
.projectactionscard-xl {
    height: 12em;
}

.projectcard span {
    /*
        REMOVED FOR WORD COMPATIBILITY
        margin: 0px 6px;
    */
    /* color: var(--brand-primary, #3d1a6f);*/
}



.newscard {
    min-height: 50px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}
.newscontent {
    position: relative;
    margin-bottom: .5em;
    /*  animation: animaprojecttop 0.9s cubic-bezier(0.425, 1.14, 0.47, 1.125) forwards;*/
}
    .newscard:hover {
        animation-name: animateprojectcard;
        animation-duration: 0.9s;
        background-color: var(--bg-muted, #f0f0f0);
    }

.projectinfo {
    flex-direction: row;
    z-index: 2;
    position: relative;
}

/*Project Card */

.nwinfo, .nwactionscard {
    display: flex;
    justify-content: left;
}

.nwcontentcard {
    position: relative;
    margin-bottom: 0em;
}

.nwcard {
    min-height: 40px;
    padding: 1em;
    border-radius: 8px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 4px 16px rgba(0, 0, 0, 0.06);
    position: relative;
    overflow: hidden;
    border-left: 4px solid #5D3991;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

    .nwcard:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 8px 24px rgba(0, 0, 0, 0.08);
        transform: translateY(-1px);
    }

.nw-filename-badge {
    display: inline-block;
    background-color: #f3f0f7;
    color: var(--brand-primary, #5d3991);
    padding: 0.25em 0.6em;
    border-radius: 4px;
    font-size: 0.85em;
    font-family: 'Consolas', 'Monaco', monospace;
    word-break: break-all;
    max-width: 100%;
    border: 1px solid #e0d8eb;
}

@keyframes animatenwcard {
    from {
        background-color: var(--brand-danger, #ed174c);
    }

    to {
        background-color: var(--bg-muted, #f0f0f0);
    }
}

.nwactionscard {
    display: inline-block;
    align-content: center;
    text-align: center;
    border-radius: 3px;
    background-color: var(--bg-muted, #f0f0f0);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: absolute;
    top: 5px;
    height: 6em;
    padding-top: 5px;
    margin-left: 3.2em;
    line-height: 0px;
    animation: animaprojectinfos 0.5s cubic-bezier(0.425, 1.04, 0.47, 1.105) 0.75s forwards;
}


/*Fileshare Card */
.fileshareinfo {
    display: flex;
    justify-content: left;
    text-align: left;
}

.filesharecontent {
    width: 470px;
    position: relative;
    margin-bottom: .5em;
    margin-top: 30px;
    margin-left: 20%;
    animation: animaprojecttop 0.9s cubic-bezier(0.425, 1.14, 0.47, 1.125) forwards;
}

.filesharecontent-sm {
    margin-bottom: .3em;
}

.filesharecard {
    min-height: 230px;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}

    .filesharecard:hover {
        animation-name: animatefilesharecard;
        animation-duration: 0.9s;
        background-color: var(--bg-muted, #f0f0f0);
    }

@keyframes animatefilesharecard {
    from {
        background-color: var(--brand-danger, #ed174c);
    }

    to {
        background-color: var(--bg-muted, #f0f0f0);
    }
}

.filesharecard-sm {
    min-height: 40px;
    padding: 10px;
}

.filesharecard span {
    margin: 0px 6px;
}

.fileshareinfo {
    flex-direction: row;
    z-index: 2;
    position: relative;
}

/*fileshare Card */
.agreementinfo {
    display: flex;
    justify-content: left;
}


.agreementinfo, .agreementactionscard-bottom {
    display: flex;
    justify-content: left;
}
.agreementactionscard-bottom {
    left: unset !important;
    right: 70px !important;
    text-align:center;
}
.agreementcontent {
    position: relative;
    margin-bottom: 2em;
}
.agreementcontent-sm {
    margin-bottom: .5em;
}
.agreementcard {
    min-height: 13em;
    padding: 20px;
    border-radius: 3px;
    background-color: var(--bg-surface, #fff);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
}
.agreementcard-lg {
    min-height: 20em;
}
.agreementcard-sm {
    min-height: 7.5em;
}
.agreementcard span {
    margin: 0px 6px;
    color: var(--brand-primary, #3d1a6f);
}
.agreementinfo {
    flex-direction: row;
    z-index: 2;
    position: relative;
}

.agreementactionscard-bottom {
    padding: 2px 20px;
    border-radius: 3px;
    background-color: var(--bg-muted, #f0f0f0);
    width: 780px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.2);
    position: absolute;
    z-index: -1;
    left: 70px;
    bottom: 10px;
    padding-top: 5px;
    animation: animainfos 0.5s cubic-bezier(0.425, 1.04, 0.47, 1.105) 0.75s forwards;
    display: inline-block;
}

    .agreementactionscard-bottom span {
        font-size: 1.6em;
        margin: 0px 6px;
        opacity: 0.6;
    }


@keyframes animaprojecttop {
    0% {
        opacity: 0;
        left: -50px;
    }

    100% {
        opacity: 1;
        left: 0px;
    }
}
@keyframes animaprojectinfos {
    0% {
        left: 10px;
    }

    100% {
        left: -42px;
    }
}

.card-header{
    padding-left:0px;
}
.nav-item a {
    color:var(--brand-primary, #3d1a6f);
}


/* fix menu links*/
.dropdown a {
    color: var(--text-on-dark, #fff);
}

/* grey colour for placeholder text*/
::-webkit-input-placeholder { /* Edge */
    font-style: italic;
    color:var(--text-muted, #b4b4b4) !important;
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
    font-style: italic;
    color: var(--text-muted, #b4b4b4) !important;
}

::placeholder {
    font-style: italic;
    color: var(--text-muted, #b4b4b4) !important;
}
/* smaller cards */
.card-header{
    padding-top: 10px;
    padding-bottom: 3px;
}

/* The switch - the box around the slider */
.switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
}

    /* Hide default HTML checkbox */
    .switch input {
        opacity: 0;
        width: 0;
        height: 0;
    }

/* The slider */
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--border-strong, #ccc);
    -webkit-transition: .4s;
    transition: .4s;
}

    .slider:before {
        position: absolute;
        content: "";
        height: 26px;
        width: 26px;
        left: 4px;
        bottom: 4px;
        background-color: var(--bg-surface, #fff);
        -webkit-transition: .4s;
        transition: .4s;
    }

input:checked + .slider {
    background-color: var(--brand-accent, #fdb913);
}

input:focus + .slider {
    box-shadow: 0 0 1px var(--brand-accent, #fdb913);
}

input:checked + .slider:before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
    border-radius: 34px;
}

    .slider.round:before {
        border-radius: 50%;
    }
/* Softened modernised look - Track 1 of yellow-border-modernisation-plan.
   Pale gold 1px border with rounded corners. Replaces the old 2px bright-gold
   box site-wide without markup changes.
   Only .yellow-border has a cream fill; .yellow-border-thin stays transparent
   so nested usage (thin inside regular) doesn't compound backgrounds. */
.yellow-border-thin {
    border: 1px solid var(--border-gold-softer, #f0e6b5);
    border-radius: 8px;
    padding: 0.75rem 1rem;
}
.yellow-border {
    border: 1px solid var(--border-gold-soft, #e8dfa8);
    border-radius: 10px;
    background: var(--bg-gold-tint, #fffbea);
    padding: 1rem 1.25rem;
}
/* When .yellow-border-thin nests inside .yellow-border, suppress the inner
   border too - the parent frame is enough visual grouping. */
.yellow-border .yellow-border-thin,
.yellow-border-thin .yellow-border-thin {
    border-color: transparent;
    padding: 0.5rem 0.75rem;
}

/* Compact inline empty-state pill -- for table footers, chart placeholders,
   and any place a full .empty-state frame would be too heavy. Standardised
   across StoryPerformance + future pages. */
.bh-empty-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.4rem 0.95rem;
    background: var(--bg-muted, #f1f1f4);
    border: 1px solid var(--border-default, #e5e5ea);
    border-radius: 999px;
    font-size: 0.85rem;
    color: var(--text-secondary, #6b6b75);
    line-height: 1;
    white-space: nowrap;
}
.bh-empty-pill i {
    font-size: 0.85rem;
    opacity: 0.55;
}
/* Multi-clause variant -- a sentence that must wrap on narrow viewports rather than
   force a horizontal scroll (e.g. a list of outstanding requirements). */
.bh-empty-pill--wrap {
    white-space: normal;
    text-align: left;
    line-height: 1.35;
}
/* Requirement variant -- the pill explains why an adjacent control is not live yet.
   Gold icon ties it to the .bh-filter-badge.needed amber "action needed" state. */
.bh-empty-pill--needed i {
    color: var(--brand-accent, #fdb913);
    opacity: 1;
}
.bh-empty-pill-wrap {
    text-align: center;
    padding: 0.85rem 0;
}

/* Stage I: Default Team Splits member pill (AccountManagement Settings tab) */
.bh-team-split-pill {
    display: inline-block;
    padding: 2px 8px;
    margin: 0 4px 4px 0;
    font-size: 0.78rem;
    font-weight: 500;
    background: var(--bg-purple-tint, #f3edff);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 999px;
    white-space: nowrap;
}
[data-theme="dark"] .bh-team-split-pill {
    background: var(--bg-muted, #2a2a32);
    color: var(--text-body, #e5d9ff);
    border-color: var(--border-default, #3a3a44);
}

/* Task 16: Default Team Shape pill (Settings list) + shape picker cards */
.bh-shape-pill {
    display: inline-block;
    padding: 2px 10px;
    font-size: 0.8rem;
    font-weight: 600;
    background: var(--bg-purple-tint, #f3edff);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 999px;
    white-space: nowrap;
}
.bh-shape-pill-custom {
    background: var(--bg-gold-tint, #fff5d9);
    color: var(--accent-gold-text, #7a5a00);
    border-color: var(--accent-gold, #fdb913);
}
[data-theme="dark"] .bh-shape-pill {
    background: var(--bg-muted, #2a2a32);
    color: var(--text-body, #e5d9ff);
    border-color: var(--brand-primary-light, #6f47b5);
}
[data-theme="dark"] .bh-shape-pill-custom {
    background: var(--bg-muted, #2a2a32);
    color: var(--accent-gold, #fdb913);
    border-color: var(--accent-gold, #fdb913);
}

.bh-shape-card-host {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-top: 6px;
}
.bh-shape-card {
    border: 2px solid var(--border-default, #ddd);
    border-radius: 8px;
    padding: 10px;
    cursor: pointer;
    text-align: center;
    background: var(--bg-card, #fff);
    transition: border-color 0.12s, background 0.12s;
}
.bh-shape-card:hover {
    border-color: var(--accent-gold, #fdb913);
    background: var(--bg-gold-tint, #fff5d9);
}
.bh-shape-card-active {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f3edff);
}
.bh-shape-card-title {
    font-weight: 600;
    color: var(--text-body, #222);
    margin-bottom: 4px;
}
.bh-shape-card-preview {
    min-height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bh-shape-card-desc {
    font-size: 0.78rem;
    color: var(--text-muted, #777);
    margin-top: 4px;
}
[data-theme="dark"] .bh-shape-card {
    background: var(--bg-card, #1e1e25);
    border-color: var(--border-default, #3a3a44);
}
[data-theme="dark"] .bh-shape-card-active {
    background: var(--bg-purple-tint, #2a2240);
    border-color: var(--brand-primary-light, #6f47b5);
}
[data-theme="dark"] .bh-shape-card-title { color: var(--text-body, #e5d9ff); }

/* Monthly Hours Shape: Custom strip (AM Wizard Step 3). Mirrors the EH
   Activity Edit Modal v2 Custom curve pattern (slider + number + live bar
   preview). Sum target = 100% (not hours). Siblings auto-rebalance on
   slider commit / number blur. */
.bh-mhs-custom-host {
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid var(--border-default, #e6e0f2);
    border-radius: 8px;
    background: var(--bg-card, #fff);
}
.bh-mhs-custom-preview-wrap {
    margin-bottom: 8px;
}
.bh-mhs-custom-preview-label {
    font-size: 0.72rem;
    color: var(--text-muted, #777);
    margin-bottom: 2px;
}
.bh-mhs-custom-preview {
    width: 100%;
    min-height: 44px;
}
.bh-mhs-custom-preview svg {
    width: 100%;
    height: 44px;
    display: block;
}
.bh-mhs-custom-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px 10px;
    margin-bottom: 4px;
}
.bh-mhs-cell {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 6px 8px;
    border: 1px solid var(--border-default, #ececf3);
    border-radius: 6px;
    background: var(--bg-muted-soft, #faf8fc);
}
.bh-mhs-cell label {
    font-size: 0.72rem;
    color: var(--text-muted, #777);
    margin: 0;
    font-weight: 600;
}
.bh-mhs-cell input[type="range"] {
    width: 100%;
    accent-color: var(--brand-primary, #3d1a6f);
    margin: 0;
}
.bh-mhs-cell input[type="number"] {
    width: 100%;
    text-align: right;
    font-size: 0.82rem;
    padding: 2px 6px;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 4px;
    background: var(--bg-card, #fff);
    color: var(--text-body, #222);
}
.bh-mhs-custom-totalrow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 6px;
    font-size: 0.82rem;
}
.bh-mhs-custom-hint {
    color: var(--text-muted, #777);
}
[data-theme="dark"] .bh-mhs-custom-host {
    background: var(--bg-card, #1e1e25);
    border-color: var(--border-default, #3a3a44);
}
[data-theme="dark"] .bh-mhs-cell {
    background: var(--bg-muted-soft, #25232f);
    border-color: var(--border-default, #3a3a44);
}
[data-theme="dark"] .bh-mhs-cell input[type="number"] {
    background: var(--bg-card, #2a2438);
    color: var(--text-body, #e5d9ff);
    border-color: var(--border-default, #3a3a44);
}
/* Per-month resulting hours readout under each Custom-shape cell (derived from
   % x total contract hours -- shape stays %, hours are display only). */
.bh-mhs-cell-hours {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-align: right;
    margin-top: 1px;
}
/* Magnitude summary line under the shape cards: total contract hours for any shape. */
.bh-mhs-magnitude {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}
[data-theme="dark"] .bh-mhs-cell-hours,
[data-theme="dark"] .bh-mhs-magnitude {
    color: var(--text-body, #e5d9ff);
}

.bh-chart-wrap {
    position: relative;
    min-height: 60px;
}
.bh-chart-wrap > .bh-empty-pill-wrap {
    padding: 2rem 0;
}
[data-theme="dark"] .bh-empty-pill {
    background: var(--bg-muted, #2a2a32);
    border-color: var(--border-default, #3a3a44);
    color: var(--text-secondary, #b0b0bc);
}

/* Modern empty-state (Track 2) - dashed neutral frame with icon + hint.
   Replaces "yellow-border text only" empty templates in GridViews. */
.empty-state {
    padding: 2.5rem 1.5rem;
    text-align: center;
    background: var(--bg-subtle, #fafafa);
    border: 1px dashed var(--border-default, #ddd);
    border-radius: 10px;
    color: var(--text-muted, #888);
}
.empty-state__icon {
    font-size: 2rem;
    opacity: 0.35;
    margin: 0 auto 0.75rem;
    display: block;
}
.empty-state__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-secondary, #555);
    margin-bottom: 0.25rem;
}
.empty-state__hint {
    font-size: 0.8rem;
}

/* Semantic notice banner (Track 2) - replaces yellow-border used for
   warnings / info / permission messages. */
.notice {
    padding: 0.85rem 1rem;
    border-radius: 8px;
    border: 1px solid var(--border-light, #eee);
    background: var(--bg-subtle, #fafafa);
    font-size: 0.88rem;
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}
.notice__icon {
    margin-top: 0.15rem;
    opacity: 0.7;
    flex: 0 0 auto;
}
.notice--warn {
    background: var(--bg-gold-tint, #fffbea);
    border-color: var(--border-gold-soft, #e8dfa8);
    color: var(--status-warning-text, #7a5b00);
}
.notice--info {
    background: var(--bg-purple-tint, #f3eef9);
    border-color: var(--border-brand, #d9c9ea);
    color: var(--brand-primary, #3d1a6f);
}
.notice--danger {
    background: var(--status-danger-bg, #f8d7da);
    border-color: var(--status-danger-border, #f5c6cb);
    color: var(--status-danger-text, #721c24);
}

/* =============================================
   Dashboard Card - canonical site-wide pattern.
   Used by Default.aspx home cards, Finance summary cards, and any page
   wrapping a titled section. Single source of truth - pages should NOT
   redefine .dashboard-card locally.
   ============================================= */
.dashboard-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #eee);
    border-radius: 10px;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.08));
    margin-bottom: 1.25rem;
    overflow: hidden;
}
/* Slate-tint fill + 4px gold left-accent. Mirrors .profile-card-header.yellow
   pattern shipped 2026-05-12 -- gold fill drowned data on multi-section pages
   (Default.aspx stacks 10+ cards). Gold demoted to accent role. */
.dashboard-card .card-header {
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%);
    border-bottom: 1px solid var(--border-light, #e9ecef);
    border-left: 4px solid var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    padding: 0.75rem 1.25rem 0.75rem calc(1.25rem - 4px);
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.dashboard-card .card-header .card-title {
    margin: 0;
    font-size: 1rem;
    display: flex;
    align-items: center;
    gap: 10px;
}
.dashboard-card .card-header .card-title i {
    opacity: 0.7;
}
.dashboard-card .card-header > div:last-child {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
/* Two-line card header variant: title + descriptive sub-line stacked on the
   left, optional badge / meta slot on the right. Stops the title wrapping when
   a description sibling steals the right-rail "badge" slot. Use when a section
   needs a one-sentence explainer next to (not buried under) its title. */
.dashboard-card .card-header.card-header-with-desc {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}
.dashboard-card .card-header.card-header-with-desc .card-header-title-group {
    display: flex;
    flex-direction: column;
    flex: 1 1 22rem;
    min-width: 0;
    gap: 0.2rem;
    align-items: stretch;
}
.dashboard-card .card-header.card-header-with-desc .card-header-desc {
    font-size: 0.78rem;
    font-weight: normal;
    color: var(--text-secondary, #666);
    line-height: 1.45;
    max-width: 85ch;
}
.dashboard-card .card-header.card-header-with-desc .card-header-meta {
    font-size: 0.78rem;
    color: var(--text-secondary, #666);
    flex-shrink: 0;
    align-self: flex-start;
    padding-top: 0.15rem;
    white-space: nowrap;
}
@media (max-width: 768px) {
    .dashboard-card .card-header.card-header-with-desc .card-header-desc {
        font-size: 0.75rem;
        max-width: none;
    }
}
.dashboard-card .card-body {
    padding: 1.25rem;
    color: var(--text-primary, #333);
}
/* When two dashboard-cards stack directly adjacent in the same container,
   pull them together so they read as a grouped unit instead of floating
   fragments. */
.dashboard-card + .dashboard-card {
    margin-top: -0.25rem;
}
.purple-border {
    border: 2px solid var(--brand-primary, #3d1a6f);
    padding-top: 10px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 10px;
}
.backgroundlight {
    background-color: var(--bg-page, #f5f5f5);
    overflow:unset !important;
}

.btn-squared-default-plain {
    width: 70% !important;
    height: 70% !important;
    min-height: 75px;
    min-width: 75px;
    padding-top: 20%;
    font-size: 14px;
    background: rgba(204,204,204, .3);
    border: 3px solid var(--border-strong, #ccc);
}

    .btn-squared-default-plain:hover {
        border: 3px solid var(--brand-accent, #fdb913);
        background: rgba(253,185,19, .3);
    }
.tablemargin{
    margin-top:10px;
}
.form-inline-block{
    width:unset;
    display:inline-block;
}
.noborder{
    border:none;
}
.btn-notallowed{
    cursor:not-allowed !important;
}
/* REMOVED: .btn { line-height: 15px !important; } - was conflicting with Bootstrap 4 btn sizing */
.surveybuttons {
    box-shadow: 0px 4px 11px rgb(0 0 0 / 30%);
    position: absolute;
    height: 35px;
    margin-top: 5px;
    right: 5px;
    text-align: center;
}

/* custom scrollbar */
::-webkit-scrollbar {
    width: 20px;
}

::-webkit-scrollbar-track {
    background-color: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: #d6dee1;
    border-radius: 20px;
    border: 6px solid transparent;
    background-clip: content-box;
    color: var(--brand-accent, #fdb913);
    background-color: var(--brand-accent, #fdb913);
}

    ::-webkit-scrollbar-thumb:hover {
        background-color: var(--brand-accent, #fdb913);
        border: 6px solid transparent;
        background-clip: content-box;
    }

.creativepreview {
    width: 90%;
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    min-height:60vh;
    margin-left:5%;
    max-width:1000px;
    padding-top: 1rem;
    padding-bottom: 2rem;
}
.schedulecontent {
    width: 100%;
    min-height: 12vh;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 10px;
    padding: 1rem 1rem 0.85rem;
    margin-bottom: 1.5rem;
}
.newswirepost {
    width: 90%;
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    padding-bottom: 50px;
    margin-left: 5%;
}
.newswireimage{
    width:100%;
    max-width: 200px;
    display:inline;
}
/* Legacy logo classes - kept for any other pages referencing them */
.BUZZHubbrandlogo {
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    height: 300px;
    width: 600px;
    margin-left: 5%;
}
.BUZZHubsquarelogo {
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    height: 300px;
    width: 300px;
    margin-left: 5%;
}
.BUZZHubbannerlogo {
    border-radius: 3px;
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.4);
    height: 300px;
    width: 1100px;
    margin-left: 5%;
}

/* Setup Branding tab - card layout */
.branding-logo-card {
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.branding-logo-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
}
.branding-logo-card-header h5 {
    font-size: 15px;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.branding-logo-dimensions {
    font-size: 12px;
    color: var(--text-tertiary, #888);
    font-weight: 500;
    background: var(--bg-surface, #fff);
    padding: 2px 10px;
    border-radius: 12px;
    border: 1px solid #e0d8ea;
}
.branding-logo-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: var(--bg-page, #f5f5f5);
    overflow: hidden;
    flex: 1;
    text-align: center;
}
.branding-logo-preview > div,
.branding-logo-preview > table {
    margin: auto;
}
.branding-logo-preview--wide,
.branding-logo-preview--square { min-height: 180px; }
.branding-logo-preview--banner { min-height: 120px; }
.branding-logo-img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    object-fit: contain;
}
.branding-logo-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--text-muted, #bbb);
    font-size: 13px;
}
.branding-logo-empty i {
    font-size: 32px;
}
.branding-logo-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid var(--border-brand, #e0d4f0);
    background: var(--bg-surface, #fff);
}
.branding-upload-btn-wrap {
    display: inline-block;
    position: relative;
}
.branding-action-btn {
    min-width: 120px;
    text-align: center;
    font-size: 13px;
    padding: 6px 16px;
}
.branding-colour-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-body, #555);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
    display: block;
}
.branding-colour-picker-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.branding-colour-swatch {
    width: 44px;
    height: 34px;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
    padding: 2px;
    cursor: pointer;
}
.branding-colour-hex {
    width: 90px;
}

/* Branding crop modal */
.branding-crop-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.6);
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.branding-crop-dialog {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    max-width: 800px;
    width: 100%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.branding-crop-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 12px 12px 0 0;
}
.branding-crop-header h5 {
    font-size: 15px;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.branding-crop-body {
    padding: 16px 20px;
    flex: 1;
    overflow: auto;
    min-height: 0;
}
.branding-crop-container {
    max-height: 450px;
    overflow: hidden;
    background: var(--bg-page, #f5f5f5);
    border-radius: 6px;
    border: 1px solid var(--border-default, #e0e0e0);
}
.branding-crop-container img {
    max-width: 100%;
    display: block;
}
.branding-crop-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 0 0 12px 12px;
}

/* Spokesperson Tips tab */
.sp-tips-card {
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    overflow: hidden;
}
.sp-tips-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
    font-weight: 600;
    font-size: 14px;
    color: var(--brand-primary, #3d1a6f);
}
.sp-tips-card-actions {
    display: flex;
    gap: 6px;
}
.sp-tips-card-body {
    padding: 20px;
}
.sp-tips-content {
    font-size: 14px;
    line-height: 1.7;
    color: var(--text-primary, #333);
}
.sp-tips-content p { margin-bottom: 0.6em; }
.sp-tips-content ul, .sp-tips-content ol { padding-left: 1.5em; }
.sp-tips-empty {
    text-align: center;
    padding: 60px 20px;
    border: 2px dashed #e0d8ea;
    border-radius: 10px;
    background: var(--bg-subtle, #fafafa);
}
.sp-tips-empty-icon {
    font-size: 48px;
    color: #ddd;
    margin-bottom: 16px;
}
.sp-tips-empty h5 {
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 8px;
}
.darklink {
    color: black;
}
    .darklink a {
        color: black;
    }
.loadingbee{
    width: 40px;
}
.input-group-text-wide{
    min-width:250px;
}
/*
.input-group-text-unset{
    min-width:unset !important;
}
    */
.table-lineless {
    border: solid 1px var(--brand-accent, #fdb913) !important;
    border: solid 1px white !important;
}
    .table-lineless tbody tr:hover {
        background: var(--bg-surface, #fff) !important;
        background-color: var(--bg-surface, #fff) !important;
    }
    .table-lineless > tbody > tr > td {
        border: none !important;
    }
.table-y-lineless {
    border: solid 1px var(--brand-accent, #fdb913) !important;
}

    .table-y-lineless tbody tr:hover {
        background: var(--bg-surface, #fff) !important;
        background-color: var(--bg-surface, #fff) !important;
    }

    .table-y-lineless > tbody > tr > td {
        border: none !important;
    }
.table-limited {
    max-height:40vh;
    overflow-y: scroll;
    padding: .25rem !important;

}
.accordionhover {
    color: var(--brand-danger, #ed174c);
    font-size:1.25em;
}
.accordionhover :hover {
    cursor:pointer !important;
}
    .accordionhover :focus {
        cursor: pointer !important;
    }






/*fix ajax uploader styles*/
.ajax__fileupload_dropzone {
    color: var(--brand-danger, #ed174c) !important;
}

.ajax__fileupload_selectFileContainer {
    height: 50px;
    width: 200px !important;
}

.ajax__fileupload_selectFileButton {
    color: var(--brand-primary, #3d1a6f);
    padding: 0px 18px;
    border: 2px solid var(--brand-primary, #3d1a6f);
    border-radius: 50px;
    font-weight: 500;
    overflow: hidden;
    text-align: center;
    background-color: transparent;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-top: 1em;
    width: 200px !important;
}
.dottedborder {
    color: var(--brand-danger, #ed174c) !important;
    border-style: dotted;
    border-width: 1px;
    line-height: 50px;
    margin-bottom: 2px;
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 3rem;
    padding-left: 2rem;
    padding-right: 2rem;
}
/* Compact variant for gridpills */
.slimpills {
    padding: 0.5rem 1rem !important;
    font-size: 13px !important;
}

.table-sender {
    border: dotted 1px var(--brand-accent, #fdb913) !important;
}
    .table-sender tbody tr:hover {
        border: dotted 1px var(--brand-accent, #fdb913);
    }

    .table-sender > tbody > tr > td {
        border: none !important;
    }

.btn-close {
    position:absolute;
    top: 10px;
    right: 10px;
}
.bh-alert {
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    color: var(--brand-primary, #3d1a6f);
    /* background-color: white;*/
    border-color: var(--brand-primary, #3d1a6f);
    margin-left: 3em;
    padding-left: 2px;
    padding-right: 2px;
}
.bh-new {
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    color: #14eb4d;
    /* background-color: white;*/
    border-color: #14eb4d;
    margin-left: 3em;
    padding-left: 2px;
    padding-right: 2px;
}
/*fix for images embedded in richtext box*/
p > img {
    top:unset !important;
}
.red-border-dashed {
    border: 1px dashed var(--brand-danger, #ed174c);
}
.strategyborder {
    border: 1px solid red;
    padding-left: 10px;
    padding-bottom: 50px;
    padding-top: 10px;
}

.bh-page-logo {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}
.bh-page-logo-img {
    display: inline-block;
    max-height: 60px;
    max-width: 140px;
    object-fit: contain;
    background-color: var(--bg-surface, #fff);
    vertical-align: middle;
}
.bh-page-logo-edit {
    position: absolute;
    top: -6px;
    right: -6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 50%;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-subtle, #e5e7eb);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.75rem;
    line-height: 1;
    opacity: 0;
    transition: opacity 0.15s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    text-decoration: none;
}
.bh-page-logo:hover .bh-page-logo-edit,
.bh-page-logo:focus-within .bh-page-logo-edit {
    opacity: 1;
}
.bh-page-logo-edit:hover,
.bh-page-logo-edit:focus {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}
.bh-page-logo-empty {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 140px;
    height: 70px;
    padding: 0.4rem;
    background-color: var(--bg-purple-tint, #f4eef9);
    border: 1.5px dashed var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    transition: background-color 0.15s ease;
    gap: 2px;
    text-decoration: none;
    line-height: 1.1;
}
.bh-page-logo-empty:hover,
.bh-page-logo-empty:focus {
    background-color: #ede2f6;
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}
.bh-page-logo-empty i {
    font-size: 1rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 2px;
}
.bh-page-logo-empty-title {
    font-size: 0.7rem;
    font-weight: 600;
}
.bh-page-logo-empty-hint {
    font-size: 0.6rem;
    color: var(--text-muted, #888);
}
.bh-page-logo-empty-title--broken,
.bh-page-logo-empty-hint--broken {
    display: none;
}
.bh-page-logo.is-empty .bh-page-logo-img,
.bh-page-logo.is-empty .bh-page-logo-edit {
    display: none;
}
.bh-page-logo.is-empty .bh-page-logo-empty {
    display: inline-flex;
}
.bh-page-logo.is-broken .bh-page-logo-empty-title:not(.bh-page-logo-empty-title--broken),
.bh-page-logo.is-broken .bh-page-logo-empty-hint:not(.bh-page-logo-empty-hint--broken) {
    display: none;
}
.bh-page-logo.is-broken .bh-page-logo-empty-title--broken,
.bh-page-logo.is-broken .bh-page-logo-empty-hint--broken {
    display: inline-block;
}
.bh-page-logo.is-uploading {
    pointer-events: none;
}
.bh-page-logo.is-uploading::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    opacity: 0.65;
    z-index: 1;
}
.bh-page-logo.is-uploading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 22px;
    margin: -11px 0 0 -11px;
    border: 2px solid var(--brand-primary, #3d1a6f);
    border-top-color: transparent;
    border-radius: 50%;
    animation: bh-page-logo-spin 0.6s linear infinite;
    z-index: 2;
}
@keyframes bh-page-logo-spin {
    to { transform: rotate(360deg); }
}
.card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
}
.card-header-purple {
    background-color: var(--brand-primary, #3d1a6f) !important;
    color: var(--text-on-dark, #fff) !important;
    min-height: unset !important;
}
.card-header-red {
    background-color: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff) !important;
    min-height: unset !important;
}
.subcard {
    background-color: var(--bg-gold-tint, #fddb86);
}
.card-link {
    color: black !important;
}
[data-theme="dark"] .card-link {
    color: var(--text-primary, #e7e7e7) !important;
}
/* Orphaned-pair dark-mode fixes: bulk token sweep flipped these table backgrounds
   dark but their hover/cell text rules sit on separate selectors and stayed black. */
[data-theme="dark"] .table-mediapack > tbody > tr:hover,
[data-theme="dark"] .table-whiteborder > tbody > tr:hover,
[data-theme="dark"] .table-purple > tbody > tr:hover,
[data-theme="dark"] .table-clearborder > tbody > tr:hover,
[data-theme="dark"] .table-offwhiteborder > tbody > tr:hover,
[data-theme="dark"] .table-offwhiteborder > tbody > tr:hover > td,
[data-theme="dark"] .table-lightpurple > tbody > tr:hover {
    color: var(--text-primary, #e7e7e7) !important;
}
[data-theme="dark"] .table-clearborder > thead > tr > th,
[data-theme="dark"] .table-clearborder > tbody > tr > th,
[data-theme="dark"] .table-clearborder > tfoot > tr > th,
[data-theme="dark"] .table-clearborder > thead > tr > td,
[data-theme="dark"] .table-clearborder > tbody > tr > td,
[data-theme="dark"] .table-clearborder > tfoot > tr > td {
    color: var(--text-primary, #e7e7e7) !important;
}
/* Global gold border on every .card-body removed - was a legacy rule that
   forced a bright gold frame on every Bootstrap card on every page, fighting
   with dashboard-card and marketing designs. If gold framing is wanted,
   opt in via .yellow-border class. */


.modalNoScroll {
    overflow-y: unset;
    padding-bottom: 15px;
}

.modalBackground {
    background-color: Black;
    opacity: 0.4;
}


.modalPopup {
    min-height: 300px;
    max-height: 90vh;
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-strong, #ccc);
    border-radius: 10px;
    padding-top: 10px;
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
    overflow-y: hidden;
    box-shadow: var(--shadow-md, 0 4px 24px rgba(0,0,0,0.25));
    z-index: 1031 !important;
    display: flex;
    flex-direction: column;
}

/* Make nested containers work with flex layout */
.modalPopup > .container-fluid {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
.modalPopup > .container-fluid > .row {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
.modalPopup > .container-fluid > .row > [class*="col"] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
.modalPopupEditor {
    min-height: 100vh;
    max-height: 100vh;
    background-color: var(--bg-surface, #fff);
    border-width: 1px;
    border-style: solid;
    border-color: black;
    padding-top: 10px;
    padding-left: 10px;
    top: 0rem !important;
    border-radius: 5px;
    border: none;
    overflow-x: hidden;
    overflow-y: hidden !important;
    box-shadow: 0px 0px 169px rgb(0 0 0 / 100%);
    z-index: 1000000 !important;
}

.rrHandle {
    z-index: 20001 !important;
}

.modalBackground {
    z-index: 1030 !important;
}
.modalPopup .body {
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 50px;
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(90vh - 100px); /* Ensures scrollbar appears - accounts for header/padding */
}
.modalPopup .modal-footer-bar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--border-default, #e0e0e0);
    background: var(--bg-surface, #fff);
}

/* Modal form scaffolding (CRM contact add/edit) */
.bh-modal-form .form-label {
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
}

.bh-modal-form .outlet-section-title {
    margin-top: 1.5rem;
}
.modalPopupEditor .body {
    max-height: 100vh;
    overflow-y: scroll !important;
    overflow-x: hidden;
    padding-right: 10px;
    padding-left: 10px;
    padding-bottom: 50px;
}
    .modalPopup .header {
        position: relative;
        padding: 0px 0px 0px;
        margin-bottom: 15px;
        text-align: left;
        color: var(--brand-danger, #ed174c);
        border-bottom: 2px solid var(--border-default, #e5e5e5);
        cursor: move;
        touch-action: none; /* Enable touch dragging on tablets */
        -webkit-user-select: none;
        user-select: none;
        flex: 0 0 auto;
    }

    /* Touch support: Pass touch events through header children to the parent drag handle */
    .modalPopup .header > *,
    .resizableModal .header > * {
        pointer-events: none;
        touch-action: none;
    }

    /* Keep close button interactive */
    .modalPopup .header > .btn-close,
    .resizableModal .header > .btn-close,
    .modalPopup .header > .btn,
    .resizableModal .header > .btn {
        pointer-events: auto;
        touch-action: auto;
    }

.modalPopupEditor .header {
    padding: 0px 0px 0px;
    margin-bottom: 15px;
    text-align: left;
    color: var(--brand-danger, #ed174c);
    border-bottom: 2px solid var(--border-default, #e5e5e5);
}

    .modalPopup .footer {
        position: absolute;
        bottom: 0%;
        width: 100%;
        background: var(--bg-surface, #fff);
        z-index: 10000000;
        padding: 10px 30px 10px 15px;
        margin-top: 15px;
        text-align: right;
        border-top: 1px solid var(--border-default, #e5e5e5);
    }

.modalBackground {
    background-color: black;
    opacity: .6;
}

.modalPopup.resizableModal .ui-resizable-handle {
    z-index: 1000 !important;
    position: absolute;
}

.modalPopup.resizableModal .ui-resizable-se {
    right: 0;
    bottom: 0;
    width: 16px;
    height: 16px;
    cursor: se-resize;
    background: linear-gradient(135deg, transparent 50%, var(--brand-primary, #3d1a6f) 50%);
    border-radius: 0 0 4px 0;
    opacity: 0.5;
    transition: opacity 0.15s;
}

.modalPopup.resizableModal .ui-resizable-se:hover {
    opacity: 1;
}

.modalPopup.resizableModal .ui-resizable-e {
    right: 0; top: 0; width: 4px; height: 100%; cursor: e-resize;
}

.modalPopup.resizableModal .ui-resizable-s {
    bottom: 0; left: 0; width: 100%; height: 4px; cursor: s-resize;
}

.modalPopup.resizableModal .ui-resizable-n {
    top: 0; left: 0; width: 100%; height: 4px; cursor: n-resize;
}

.modalPopup.resizableModal .ui-resizable-w {
    left: 0; top: 0; width: 4px; height: 100%; cursor: w-resize;
}

.resizableModal.modalPopup {
    position: fixed !important;
    /*  visibility: hidden;*/
    transition: none !important;
}

.modalPopup.resizableModal {
    display: flex;
    flex-direction: column;
    /*over ride ajax tool kit, then in modalshown unlock it for dragging*/
    /*  top: 39px !important;*/
}

.modalPopup.resizableModal .body {
    flex: 1 1 auto;
    overflow-y: auto;
}

@keyframes fadeInModal {
    from {
        opacity: 0.8;
    }

    to {
        opacity: 1;
    }
}

/* apply the animation to your popup panel */
.resizableModal.modalPopup {
    animation: fadeInModal .300ms ease-out;
}



/* Base header styling for resizable modals */
.resizableModal .header {
    background: var(--brand-primary, #3d1a6f) !important;
    color: var(--text-on-dark, #fff) !important;
    min-height: 50px;
    padding: 12px 15px !important;
    margin: -10px -10px 15px -10px !important; /* Counteract .modalPopup padding */
    border-bottom: none !important;
    position: relative;
    cursor: move;
    touch-action: none; /* Enable touch dragging on tablets */
    -webkit-user-select: none;
    user-select: none;
}

/* Fix for wrapped structure (container-fluid > row > col) */
/* Only apply negative margins to direct container-fluid children, not nested ones */
.resizableModal > .container-fluid {
    padding: 0 !important;
    margin: -10px -10px 0 -10px !important; /* Counteract .modalPopup padding */
    width: calc(100% + 20px) !important;
}

/* Container-fluid inside .body should have normal margins and layout */
.resizableModal .body .container-fluid {
    margin: 0 !important;
    padding: 0 15px !important;
    width: 100% !important;
    display: block !important;
}

.resizableModal .body .container-fluid > .row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    flex: none !important;
    margin: 0 -15px !important;
}

    /* Make container-fluid structure work with modal flex layout */
    .resizableModal > .container-fluid {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
    }

    .resizableModal .container-fluid > .row {
        margin: 0 !important;
        display: flex;
        flex: 1 1 auto;
        min-height: 0;
        /* Note: flex-direction defaults to row, preserving multi-column layouts */
    }

        /* Only apply column direction to single-column layouts */
        .resizableModal .container-fluid > .row > .col-md-12 {
            padding: 0 !important;
            background-color: transparent !important;
            display: flex;
            flex-direction: column;
            flex: 1 1 auto;
            min-height: 0;
        }

        /* Multi-column layouts keep normal column behavior */
        .resizableModal .container-fluid > .row > .col-md-8,
        .resizableModal .container-fluid > .row > .col-md-4 {
            overflow-y: auto;
        }

    .resizableModal .container-fluid .header {
        margin: 0 0 15px 0 !important; /* Reset margin for wrapped structure */
        padding: 12px 15px !important;
        flex-shrink: 0;
    }

    .resizableModal .container-fluid .body {
        padding: 0 15px 50px 15px !important;
        flex: 1 1 auto;
        overflow-y: auto;
        min-height: 0;
    }

/* Header text styling */
.resizableModal .header h3,
.resizableModal .header h4 {
    color: var(--text-on-dark, #fff) !important;
    margin: 0;
    padding-right: 40px; /* Space for close button */
    line-height: 1.4;
    font-size: 1.25rem;
}

/* Close button positioning in purple header */
.resizableModal .header .btn-close {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.2) !important;
    border-color: rgba(255,255,255,0.3) !important;
}

    .resizableModal .header .btn-close:hover {
        background: rgba(255,255,255,0.3) !important;
    }

    .resizableModal .header .btn-close i {
        color: var(--text-on-dark, #fff) !important;
    }



@media (max-width: 990px) {
    .modalPopup {
        width: 100vw !important;
        max-width: 100vw !important; /* Never exceed viewport -- prevents mobile auto-zoom-out */
        position: fixed !important;
        z-index: 1031 !important;
        top: 0px !important;
        left: 0 !important;
        right: 0 !important;
        height: 100vh !important;
        max-height: 100vh !important;
        border-radius: 0;
        overflow-x: hidden !important; /* Clip any wider child content */
    }
    .modalPopup .body {
        padding-bottom: 80px; /* Space for footer */
        overflow-x: hidden !important;
        /* Break long unbreakable strings (URLs, brand names) so they don't force overflow */
        overflow-wrap: break-word;
        word-wrap: break-word;
        /* Override desktop max-height: calc(90vh - 100px) which crops ~90px at the
           bottom of a fullscreen mobile modal. Let flex: 1 1 auto fill remaining height. */
        max-height: none !important;
    }
    /* Prevent jQuery UI drag/resize from pushing modal off-viewport on mobile.
       Mobile modals are already fullscreen -- dragging adds no value and can
       set inline left/top that breaks the fullscreen layout. */
    .modalPopup.resizableModal .ui-resizable-handle,
    .modalPopup.resizableModal .ui-resizable-se,
    .modalPopup.resizableModal .ui-resizable-e,
    .modalPopup.resizableModal .ui-resizable-s,
    .modalPopup.resizableModal .ui-resizable-n,
    .modalPopup.resizableModal .ui-resizable-w {
        display: none !important;
    }
    .modalPopup .header {
        cursor: default !important;
        padding-right: 50px !important; /* room for absolute-positioned close button */
    }
    .modalPopup .header h3,
    .modalPopup .header h4,
    .modalPopup .header h5 {
        font-size: 1.05rem !important;
        line-height: 1.3 !important;
        margin: 0 !important;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    .modalPopup .header h3 i,
    .modalPopup .header h4 i,
    .modalPopup .header h5 i {
        font-size: 0.95rem !important;
    }
    /* Modal footer button rows: equal-width uniform stack on mobile */
    .modalPopup .body .text-right,
    .modalPopup .body .text-end,
    .modalPopup .modal-footer-bar {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.5rem !important;
    }
    .modalPopup .body .text-right > .btn,
    .modalPopup .body .text-end > .btn,
    .modalPopup .modal-footer-bar > .btn {
        width: 100% !important;
        margin: 0 !important;
    }
}

/* =============================================================================
   Modal Fullscreen Toggle
   ============================================================================= */
.modalPopup .header .bh-modal-fullscreen-btn {
    pointer-events: auto;
    touch-action: auto;
    background: rgba(255,255,255,0.2);
    border: none;
    color: inherit;
    font-size: 1rem;
    padding: 4px 8px;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.15s, background 0.15s;
    position: absolute;
    top: 50%;
    right: 50px;
    transform: translateY(-50%);
    border-radius: 4px;
    z-index: 1;
}

.modalPopup .header .bh-modal-fullscreen-btn:hover {
    opacity: 1;
    background: rgba(255,255,255,0.3);
}

.modalPopup .header .bh-modal-fullscreen-btn:active {
    opacity: 1;
    background: rgba(255,255,255,0.4);
}

.modalPopup.bh-modal-fullscreen {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    margin: 0 !important;
}

.modalPopup.bh-modal-fullscreen .header {
    cursor: default;
}

.modalPopup.bh-modal-fullscreen .body {
    max-height: calc(100vh - 80px) !important;
    flex: 1 1 auto;
}

/* Hide fullscreen button on mobile - modals already fullscreen via media query */
@media (max-width: 990px) {
    .bh-modal-fullscreen-btn { display: none !important; }
}

/* PDF preview iframe is vh-sized (80vh), so a maximised host modal would otherwise
   leave it the same height. Grow it to fill the fullscreen body (header + footer + padding
   reserve ~170px). !important beats the iframe's inline non-important height. */
.modalPopup.bh-modal-fullscreen .bh-preview-frame {
    height: calc(100vh - 170px) !important;
}

/* =============================================================================
   Modal Form Cosmetic Styling (2025)
   ============================================================================= */

/* Summary badge row at top of modals */
.modal-summary-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    margin-bottom: 1rem;
}

.modal-summary-badges .badge {
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    font-weight: 500;
}

/* Modal form section headers */
.modal-section-header {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}

.modal-section-header i {
    margin-right: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
}

/* Better form row spacing in modals */
.modal-form-row {
    margin-bottom: 1rem;
}

.modal-form-row label,
.modal-form-row .form-label {
    font-weight: 500;
    color: var(--text-primary, #333);
    margin-bottom: 0.25rem;
}

/* Modal section box -- slate-tint fill + 4px gold left-border (2026-05-12 standard).
   Was previously gold-fill on cream; gold reserved for accent role per ui-design-rules. */
.modal-section-box {
    background: var(--bg-slate-tint, #f4f5f8);
    border: 1px solid var(--border-subtle, #e0e2e7);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.modal-section-box .modal-section-header {
    margin-top: 0;
    color: var(--brand-primary, #3d1a6f);
    border-bottom-color: var(--border-subtle, #e0e2e7);
}

/* Read-only inputs inside a modal-section-box render as flat display values, not edit fields.
   These boxes hold context that's mutated via a dedicated action (e.g. "Change Outlet" button)
   -- a white form-control with border falsely advertises in-place editing. Strip the chrome. */
.modal-section-box input[readonly].form-control,
.modal-section-box .form-control[readonly] {
    background: transparent;
    border: none;
    box-shadow: none;
    padding-left: 0;
    color: var(--text-primary, #333);
    cursor: default;
    height: auto;
}
.modal-section-box input[readonly].form-control:focus,
.modal-section-box .form-control[readonly]:focus {
    outline: none;
    box-shadow: none;
    background: transparent;
}
.modal-section-box input[readonly].form-control::placeholder,
.modal-section-box .form-control[readonly]::placeholder {
    color: var(--text-secondary, #999);
    font-style: italic;
}

/* Right-column "context card" -- compact section block used in the Interview Coverage edit modal
   sidebar (Talent / Availability / Outlet / Interaction History). Quiet by default: subtle bg,
   thin gold left-border, small caps header, neutral empty-state pill. Replaces the legacy
   .red-border-dashed boxes that read as validation errors. */
.bh-context-card {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-subtle, #e5e5ea);
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    padding: 0.7rem 0.85rem;
    margin-bottom: 0.7rem;
}
.bh-context-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.5rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--border-subtle, #e5e5ea);
}
.bh-context-card-header i {
    margin-right: 0.4rem;
    opacity: 0.85;
}
.bh-context-card-header .bh-context-action {
    /* Quiet action affordance (Add note / Record interaction) inside the card header. */
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
    text-transform: none;
    letter-spacing: 0;
    text-decoration: none;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
}
.bh-context-card-header .bh-context-action:hover {
    background: var(--bg-purple-tint, #f0e6f7);
    text-decoration: none;
}
.bh-context-card-body {
    font-size: 0.825rem;
    color: var(--text-primary, #333);
    line-height: 1.4;
}
.bh-context-card-body strong {
    color: var(--text-secondary, #666);
    font-weight: 600;
}
.bh-context-card-body .bh-context-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    margin-bottom: 0.15rem;
}
.bh-context-card-body .bh-context-meta {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    margin-bottom: 0.4rem;
}
.bh-context-card-body .bh-context-divider {
    height: 1px;
    background: var(--border-subtle, #e5e5ea);
    margin: 0.5rem 0;
}
.bh-context-card-body .bh-context-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.2rem 0;
    font-size: 0.8rem;
}
.bh-context-card-body .bh-context-row label {
    margin-bottom: 0;
    color: var(--text-secondary, #666);
    font-weight: 500;
    font-size: 0.8rem;
}
.bh-context-card-body .bh-context-scroll {
    max-height: 90px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.25rem;
}
.bh-context-card-body .bh-context-scroll.tall {
    max-height: 220px;
}

/* Booking-context subline shown under the modal title (set server-side from the bound row). */
.bh-modal-header-context {
    display: block;
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-on-dark, #fff);
    opacity: 0.85;
    margin-top: 0.1rem;
    line-height: 1.3;
}
/* One-line modal header (2026-07-12): title + context + save chip ride a single flex row
   (context truncates) instead of stacking two lines of purple. Add to the .header div, or to
   an inner div when the header content re-renders separately from the header itself.
   Close/expand buttons are absolutely positioned -- padding-right keeps text clear. */
.bh-modal-header--inline,
.modalPopup .header.bh-modal-header--inline { display: flex; align-items: center; flex-wrap: wrap; gap: .1rem 1rem; padding-right: 96px; }
.bh-modal-header--inline > [id*="FormViewShowHeaderInfo"] { width: auto !important; flex: 0 1 auto; min-width: 0; }
.bh-modal-header--inline h3 { margin: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bh-modal-header--inline .bh-modal-header-context { margin-top: 0; flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 990px) {
    .bh-modal-header--inline .bh-modal-header-context { white-space: normal; }
    /* Nested variant: on mobile the modal header already reserves 50px for the absolute buttons,
       so the inner flex row must not add its own clearance on top. */
    .modalPopup .header .bh-modal-header--inline { padding-right: 0; }
}
.bh-modal-header-context i {
    margin-right: 0.3rem;
    opacity: 0.9;
}
.bh-modal-header-context .bh-ctx-sep {
    display: inline-block;
    width: 1px;
    height: 0.8em;
    margin: 0 0.5rem;
    vertical-align: middle;
    background: currentColor;
    opacity: 0.35;
}

.transparent-border {
    border: solid transparent !important;
}
.wraplines {
    /* These are technically the same, but use both */
    overflow-wrap: break-word;
    word-wrap: break-word;
    -ms-word-break: break-all;
    word-break: break-word;
    -ms-hyphens: auto;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
}

.nomargin {
    margin: 0cm;
    padding: 0cm;
}

    .nomargin > span > p {
        margin: 0cm;
        padding: 0cm;
    }


.RadWindow_Bootstrap {
    z-index: 10003 !important;
}
img {
    max-width: 100%;
}
.fieldpicker {
    background-color: var(--bg-purple-tint, #faf9fc);
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    /* Pin the picker in view and let it scroll on its OWN, independent of the (often long)
       canvas, so every block/field stays reachable for click + drag without scrolling the
       message away. align-self stops the equal-height row from stretching it past its cap. */
    align-self: flex-start;
    position: sticky;
    top: 0;
    max-height: calc(90vh - 140px);
}
.fieldpicker .field-picker-tree {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
}
/* beyondgrammar // prowriting aid disable add to dictionary */
.pwa-add-to-dict-button {
    display: none !important;
}

.pwa-disable-rule-button {
    display: none !important;
}
.pwa-ignore-button {
    display: flex !important;
    font-family:Outfit;
    font-size:14pt;
}
.navline {
    width: 220px;
    height: 1px;
    background-color: var(--brand-danger, #ed174c);
}

@keyframes sparkle-animation {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.5;
        transform: scale(1.5);
    }

    100% {
        opacity: 0;
        transform: scale(2);
    }
}

.btn-sparkle {
    position: relative;
    overflow: hidden;
}

    .btn-sparkle::before,
    .btn-sparkle::after {
        content: "";
        position: absolute;
        top: 0%;
        left: 40%;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background-color: rgba(253,185,19, 0.5);
        opacity: 0;
        pointer-events: none;
        animation: sparkle-animation 1s infinite alternate;
    }

    .btn-sparkle::before {
        animation-delay: 0.5s;
    }

    .btn-sparkle:hover::before,
    .btn-sparkle:hover::after {
        opacity: 1;
    }


li > a > span[style*="font-family: &quot;Segoe UI&quot;, Arial, sans-serif;"] {
    font-family: 'Outfit', sans-serif !important;
}

li > a > span[style*="font-size: 12pt;"] {
    font-size: 14px !important;
}
/* end try to fix the odd elements */
.table.table-compressed td,
.table.table-compressed th {
    padding: 0px !important;
}
.ddcurrency{
    height: 34px;
}
.inputgroup-currency {
    padding: 5px;
    padding-left: 15px;
    height: 34px;
}
/* mod 27092023*/
/* fix comments so headline comments work (top of screen)*/
.RadEditor .reCommentEdit, .RadEditor .reCommentView {
    top:30px !important;
}
/* end mod 27092023*/
.modalPopupHighZ{
    z-index: 1999 !important;
}
.purpleborder {
    border: 1px solid var(--brand-magenta, #7d1d61);
    min-height: 2em;
    text-align: left;
    font-size: 16pt;
}

    .purpleborder > div {
        padding-top: 0.25em;
    }

.purpleheader {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-magenta, #7d1d61);
}

.heavytext {
    font-weight: 500;
}
.invoicebubble {
    width: 120px; /* Adjusted for the text to fit */
    height: 40px;
    border: 1px solid red;
    padding: 5px;
    box-sizing: border-box;
    text-align: center;
    transform: translateX(-50%); /* Center the div horizontally */
    background: var(--bg-surface, #fff); /* Background color */
    color: black; /* Text color */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s linear, visibility 0s linear 0.5s;
    animation: showInvoiceBubble 5s forwards;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2)
}

@keyframes showInvoiceBubble {
    0%, 30% {
        visibility: hidden;
        opacity: 0;
    }

    30%, 90% {
        visibility: visible;
        opacity: 1;
    }

    90%, 100% {
        opacity: 0;
        visibility: hidden;
    }
}

html {
    height: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 80px; /* Account for fixed navbar on anchor links */
    /* Use `clip` not `hidden`: `overflow-x: hidden` on <html> establishes an implicit
       scroll container that disables `position: sticky` for every descendant on every page.
       `overflow-x: clip` still prevents horizontal scrollbar flicker from absolute/tooltip
       elements but does NOT create a scroll container -- sticky works. (Chrome 90+, FF 81+,
       Safari 16+.) Changed 2026-05-17 when sticky day-banners on InterviewCoverage didn't stick. */
    overflow-x: clip;
}

/* Prevent images from overflowing their containers */
img {
    max-width: 100%;
    height: auto;
}
.label-fullsize{
    height:100%;
}
    .label-fullsize > p {
        line-height: 14pt;
        padding: 0 !important;
        margin: 0 !important;
    }
.shadow-one {
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2)
}
h1, .h1 > span, h1, .h1 > p {
    font-size: 2.5rem !important;
    font-weight: 500 !important;
}

h2, .h2 > span, h2, .h2 > p {
    font-size: 2rem !important;
    font-weight: 500 !important;
}

h3, .h3 > span, h3, .h3 > p {
    font-size: 1.75rem !important;
    font-weight: 500 !important;
}

h4, .h4 > span, h4, .h4 > p {
    font-size: 1.5rem !important;
    font-weight: 500 !important;
}

h5, .h5 > span, h5, .h5 > p {
    font-size: 1.25rem !important;
    font-weight: 500 !important;
}

h6, .h6 > span, h6, .h6 > p {
    font-size: 1rem !important;
    font-weight: 500 !important;
}
/**/
td > span > p {
    font-size: unset !important;
    font-family: unset !important;
}
.rlbGroup {
    min-height: 200px;
}
.bg-highlightyellow {
    background-color: yellow !important;
}

/* ============================================
   SHARED DASHBOARD STYLES
   Use these classes across all dashboard pages
   (default.aspx, StoryDashboard, BIPlanning, etc.)
   ============================================ */

/* Dashboard Page Header */
.bh-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-light, #eee);
}
.bh-page-header h4,
.bh-page-header .bh-page-title {
    margin: 0;
    font-weight: 600;
    color: var(--text-primary, #333);
}
.bh-page-header .bh-page-title i {
    color: var(--brand-magenta, #7d1d61);
    margin-right: 0.5rem;
}

/* Summary KPI Cards Container */
.bh-summary-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* Individual Summary Card */
.bh-summary-card {
    flex: 1;
    min-width: 140px;
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 1rem 1.25rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    transition: transform 0.2s, box-shadow 0.2s;
}
.bh-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.bh-summary-card .bh-card-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--text-primary, #333);
    line-height: 1.2;
}
.bh-summary-card .bh-card-label {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.25rem;
}

/* Summary Card Variants */
.bh-summary-card.primary { border-left-color: var(--brand-primary, #3d1a6f); }
.bh-summary-card.success { border-left-color: var(--status-success, #28a745); }
.bh-summary-card.warning { border-left-color: var(--status-warning-border, #ffc107); }
.bh-summary-card.danger { border-left-color: var(--status-danger, #dc3545); }
.bh-summary-card.info { border-left-color: var(--status-info, #17a2b8); }
.bh-summary-card.secondary { border-left-color: var(--text-secondary, #666); }

/* Clickable Summary Card */
.bh-summary-card.clickable {
    cursor: pointer;
}
.bh-summary-card.clickable:hover {
    background: var(--bg-subtle, #f8f9fa);
}

/* Filter Bar */
.bh-filter-bar {
    background: var(--bg-subtle, #f8f9fa);
    padding: 1rem 1.5rem;
    border-radius: 10px;
    margin-bottom: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}
.bh-filter-bar .form-control,
.bh-filter-bar .form-select,
.bh-filter-bar select {
    border-radius: 6px;
    border: 1px solid var(--border-default, #ddd);
    height: 38px;
    padding: 0.375rem 0.75rem;
    font-size: 0.9rem;
}
.bh-filter-bar .form-control:focus,
.bh-filter-bar .form-select:focus,
.bh-filter-bar select:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.2rem rgba(61, 26, 111, 0.25);
}
.bh-filter-bar .input-group-text {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-right: none;
    color: var(--text-secondary, #666);
}
.bh-filter-bar .btn-search {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border: none;
    border-radius: 6px;
    padding: 0.375rem 1rem;
}
.bh-filter-bar .btn-search:hover {
    background: #2d1352;
}
.bh-filter-bar .btn-clear {
    background: transparent;
    color: var(--text-secondary, #666);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
}
.bh-filter-bar .btn-clear:hover {
    background: var(--bg-muted, #eee);
}

/* Status Badges */
.bh-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 500;
}
.bh-status-badge .status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.bh-status-badge.on-track {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}
.bh-status-badge.on-track .status-dot {
    background: var(--status-success, #28a745);
}
.bh-status-badge.off-track {
    background: var(--status-danger-bg, #f8d7da);
    color: var(--status-danger-text, #721c24);
}
.bh-status-badge.off-track .status-dot {
    background: var(--status-danger, #dc3545);
}
/* Dedicated non-health state classes (de-collided from .on-track/.off-track health vocabulary).
   Swatches copied byte-identical from .on-track/.off-track above. Used by brand-hierarchy,
   talent newswire, and email-deliverability badges -- NOT the health-badge surfaces. */
.bh-status-badge.bh-state-good {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}
.bh-status-badge.bh-state-good .status-dot {
    background: var(--status-success, #28a745);
}
.bh-status-badge.bh-state-bad {
    background: var(--status-danger-bg, #f8d7da);
    color: var(--status-danger-text, #721c24);
}
.bh-status-badge.bh-state-bad .status-dot {
    background: var(--status-danger, #dc3545);
}
.bh-status-badge.warning {
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
}
.bh-status-badge.warning .status-dot {
    background: var(--status-warning-bg, #ffc107);
}
.bh-status-badge.neutral {
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-secondary, #666);
}
.bh-status-badge.neutral .status-dot {
    background: #999;
}

/* Freshness Indicator Dots -- Living CRM (board decision 2026-02-21) */
.freshness-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 4px;
    vertical-align: middle;
    flex-shrink: 0;
}
.freshness-dot.fresh {
    background: var(--status-success, #28a745);
    box-shadow: 0 0 4px rgba(40, 167, 69, 0.4);
}
.freshness-dot.aging {
    background: var(--status-warning-bg, #ffc107);
    box-shadow: 0 0 4px rgba(255, 193, 7, 0.3);
}
.freshness-dot.stale {
    background: #999;
}
.freshness-dot.bounced {
    background: var(--status-danger, #dc3545);
    box-shadow: 0 0 4px rgba(220, 53, 69, 0.4);
}
.freshness-label {
    font-size: 0.7rem;
    color: var(--text-tertiary, #888);
    vertical-align: middle;
}
.freshness-label.fresh { color: var(--status-success-text, #155724); }
.freshness-label.aging { color: var(--status-warning-text, #856404); }
.freshness-label.bounced { color: var(--status-danger-text, #721c24); }

/* Alphabet Filter */
.bh-alphabet-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    justify-content: center;
    padding: 0.5rem;
}
.bh-alphabet-filter .bh-letter-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 4px;
    background: var(--bg-surface, #fff);
    color: var(--text-primary, #333);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    text-decoration: none;
}
.bh-alphabet-filter .bh-letter-btn:hover {
    background: var(--bg-muted, #f0f0f0);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
}
.bh-alphabet-filter .bh-letter-btn.active {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

/* Welcome/Page Banner */
.bh-welcome-banner {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 1.5rem 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(61, 26, 111, 0.3);
}
.bh-welcome-banner h3,
.bh-welcome-banner h4 {
    color: var(--text-on-dark, #fff);
    font-weight: 600;
}
.bh-welcome-banner .input-group-text {
    border: none;
}
.bh-welcome-banner .form-control {
    border: none;
}

/* Loading Overlay */
.bh-loading-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--loader-overlay-bg, rgba(255,255,255,0.85));
    z-index: 9999;
}
.bh-loading-overlay.show {
    display: flex;
    align-items: center;
    justify-content: center;
}
.bh-loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid var(--brand-primary, #3d1a6f);
    border-radius: 50%;
    animation: bh-spin 1s linear infinite;
}
@keyframes bh-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.bh-loading-text {
    margin-top: 1rem;
    color: var(--text-secondary, #666);
    font-size: 0.9rem;
}

/* Data Card (for lists/grids) */
.bh-data-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border: 1px solid var(--border-default, #e5e5e5);
    margin-bottom: 0.75rem;
    overflow: hidden;
    transition: box-shadow 0.2s;
}
.bh-data-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.bh-data-card-header {
    padding: 0.75rem 1rem;
    border-left: 4px solid var(--brand-magenta, #7d1d61);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background 0.2s;
}
.bh-data-card-header:hover {
    background: var(--bg-subtle, #f8f9fa);
}
.bh-data-card-header.success { border-left-color: var(--status-success, #28a745); }
.bh-data-card-header.warning { border-left-color: var(--status-warning-border, #ffc107); }
.bh-data-card-header.danger { border-left-color: var(--status-danger, #dc3545); }
.bh-data-card-body {
    padding: 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-top: 1px solid var(--border-light, #eee);
}

/* Action Button Group */
.bh-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
}

/* Empty State -- card shell only. Icon/title/body styling is canonical in
   engagement-design-system.css (.bh-empty-icon / .bh-empty-title / .bh-empty-body).
   The old element-type child rules ( .bh-empty-state i / p ) out-specified the
   canonical class rules and killed `.bh-empty-body { margin: 0 auto }`, dropping
   the body paragraph hard-left (RA Business Impact). Removed -- every consumer
   uses the canonical child classes. */
.bh-empty-state {
    text-align: center;
    padding: 3rem 2rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 10px;
    color: var(--text-secondary, #666);
}

/* Share-link row: read-only URL + copy button. Pairs with .bh-empty-state CTAs.
   Theme handled by .form-control + .btn -- no per-mode override needed. */
.bh-share-link {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    max-width: 34rem;
    margin: 0 auto 1.25rem;
}
.bh-share-link > .form-control {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.85rem;
}
.bh-share-link > .btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 600px) {
    .bh-share-link { flex-direction: column; }
    .bh-share-link > .btn { width: 100%; }
}

/* Progress Bar (for KPIs) */
.bh-progress-bar {
    height: 8px;
    background: var(--bg-muted, #e9ecef);
    border-radius: 4px;
    overflow: hidden;
    margin-top: 0.5rem;
}
.bh-progress-bar .bh-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3d1a6f, #7d1d61);
    border-radius: 4px;
    transition: width 0.3s ease;
}
.bh-progress-bar .bh-progress-fill.success { background: var(--status-success, #28a745); }
.bh-progress-bar .bh-progress-fill.warning { background: var(--status-warning-bg, #ffc107); }
.bh-progress-bar .bh-progress-fill.danger { background: var(--status-danger, #dc3545); }

/* Responsive adjustments */
@media (max-width: 768px) {
    .bh-summary-cards {
        flex-direction: column;
    }
    .bh-summary-card {
        max-width: 100%;
    }
    .bh-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .bh-page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

/* StoryDashboard Agreement Actions - fix button colors */
.agreement-actions {
    position: relative;
}
.agreement-actions .btn {
    margin-right: 0.25rem;
    margin-bottom: 0.25rem;
}
/* Ensure outline button text is visible (not white) */
.agreement-actions .btn-outline-secondary {
    color: var(--text-primary, #000) !important;
    border-color: var(--text-secondary, #666) !important;
}
.agreement-actions .btn-outline-secondary:hover,
.agreement-actions .btn-outline-secondary:focus {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--text-secondary, #666) !important;
}
.agreement-actions .btn-outline-danger {
    color: var(--brand-danger, #ed174c) !important;
    border-color: var(--brand-danger, #ed174c) !important;
}
.agreement-actions .btn-outline-danger:hover,
.agreement-actions .btn-outline-danger:focus {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-danger, #ed174c) !important;
}

/* StoryDashboard Story Action Buttons */
.story-actions {
    flex-shrink: 0;
}
.story-actions .btn-sm {
    padding: .2rem .4rem !important;
}
.story-actions .btn-outline-primary {
    color: var(--brand-primary, #3d1a6f) !important;
    border-color: var(--brand-primary, #3d1a6f) !important;
}
.story-actions .btn-outline-primary:hover,
.story-actions .btn-outline-primary:focus {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-primary, #3d1a6f) !important;
}
.story-actions .btn-outline-danger {
    color: var(--brand-danger, #ed174c) !important;
    border-color: var(--brand-danger, #ed174c) !important;
}
.story-actions .btn-outline-danger:hover,
.story-actions .btn-outline-danger:focus {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-danger, #ed174c) !important;
}

.table-borderless {
    border: 0 !important;
}
.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
    border: 0 !important;
}

/* ========================================
   Survey Forms Styles
   ======================================== */

/* Survey import upload zone */
.survey-import-zone {
    background: linear-gradient(135deg, var(--bg-gold-tint, #fff5dc) 0%, var(--bg-surface, #fffbf0) 100%);
    border: 2px dashed var(--brand-accent, #fdb913);
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
    transition: all 0.2s ease;
}
.survey-import-zone:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-gold-tint, #fff5dc);
}
.survey-import-zone .upload-icon {
    font-size: 3rem;
    color: var(--text-muted, #999);
    margin-bottom: 1rem;
}

/* PureProfile import modal -- hero upload zone, slim supporting elements */
.pp-import-warn-strip {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--bg-gold-tint, #fff5dc);
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 4px;
    padding: 0.5rem 0.85rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    color: var(--text-body, #333);
    line-height: 1.4;
}
.pp-import-warn-strip i {
    color: #8a5a00;
    flex-shrink: 0;
}
[data-theme="dark"] .pp-import-warn-strip i { color: var(--brand-accent, #fdb913); }

.pp-import-zone {
    padding: 3rem 2rem;
}
.pp-import-zone-icon {
    font-size: 3.75rem;
    line-height: 1;
    color: var(--brand-accent, #fdb913);
    margin-bottom: 1rem;
}
.pp-import-zone-title {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    font-size: 1.4rem;
    margin: 0 0 0.3rem 0;
}
.pp-import-zone-sub {
    color: var(--text-secondary, #666);
    margin: 0 0 1.5rem 0;
    font-size: 0.95rem;
}
.pp-import-btn {
    padding: 0.7rem 1.75rem;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(61, 26, 111, 0.18);
}
.pp-import-btn:hover { box-shadow: 0 6px 16px rgba(61, 26, 111, 0.25); }
.pp-import-zone-hint {
    color: var(--text-secondary, #666);
    font-size: 0.8rem;
    margin: 0.85rem 0 0 0;
    letter-spacing: 0.02em;
}
[data-theme="dark"] .pp-import-zone-title { color: var(--page-title-color, #e5d9ff); }

/* Active drag-over state for the import dropzone. */
.survey-import-zone.pp-import-zone--dragover {
    border-color: var(--brand-primary, #3d1a6f);
    border-style: solid;
    background: var(--bg-gold-tint, #fff5dc);
    box-shadow: inset 0 0 0 2px var(--brand-primary, #3d1a6f);
}
/* Upload throbber: centre it within the zone (was left-aligned during upload). */
.pp-import-zone .loadingbee {
    display: block;
    width: 48px;
    margin: 1rem auto 0;
}

.pp-import-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem 1.4rem;
    margin: 1rem 0 0 0;
    padding: 0.65rem 1rem;
    font-size: 0.82rem;
    color: var(--text-secondary, #666);
    line-height: 1.3;
}
.pp-info-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    position: relative;
}
.pp-info-item i {
    color: var(--brand-accent, #fdb913);
    font-size: 0.9rem;
}
.pp-info-item strong { color: var(--text-body, #333); font-weight: 600; }
.pp-info-item + .pp-info-item::before {
    content: "";
    position: absolute;
    left: -0.7rem;
    top: 0.2rem;
    bottom: 0.2rem;
    width: 1px;
    background: var(--border-light, #e9ecef);
}
[data-theme="dark"] .pp-info-item strong { color: var(--text-body, #d4d4d4); }

@media (max-width: 768px) {
    .pp-import-zone { padding: 2rem 1rem; }
    .pp-import-zone-icon { font-size: 2.75rem; }
    .pp-import-zone-title { font-size: 1.15rem; }
    .pp-import-info { gap: 0.4rem 0; flex-direction: column; align-items: flex-start; }
    .pp-info-item + .pp-info-item::before { display: none; }
}

/* Wizard step indicator */
.survey-wizard-steps {
    padding: 1rem 0;
}
.wizard-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.wizard-step .step-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--bg-muted, #e9ecef);
    color: var(--text-secondary, #666);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.2s;
}
.wizard-step.active .step-circle {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
}
.wizard-step.completed .step-circle {
    background: var(--status-success, #28a745);
    color: var(--text-on-dark, #fff);
}
.step-connector {
    width: 100px;
    height: 3px;
    background: var(--bg-muted, #e9ecef);
    margin: 0 1rem;
}
.step-label {
    font-size: 0.875rem;
    color: var(--text-secondary, #666);
}
.wizard-step.active .step-label {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}

/* Wizard Add-Responses table drag handle (jQuery sortable handle on the grip icon). */
.wiz-resp-handle { cursor: grab; }
.wiz-resp-handle:active { cursor: grabbing; }

/* Auto-save status indicator (small inline badge next to a form/section header). States:
   saved | saving | invalid | error. Used by the Form Settings auto-saver. */
.auto-save-status { font-size: 0.85rem; font-weight: 400; padding-left: 0.5rem; vertical-align: middle; }
.auto-save-status.saved { color: var(--status-success, #28a745); }
.auto-save-status.saving { color: var(--text-muted, #888); font-style: italic; }
.auto-save-status.invalid { color: var(--status-warning, #b54708); }
.auto-save-status.error { color: var(--status-danger, #dc3545); }

/* Survey legend card */
.survey-legend-card {
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border: 1px solid var(--border-light, #e9ecef);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
}
.survey-legend-card .card-body {
    font-size: 0.875rem;
}
.survey-legend {
    font-size: 0.875rem;
}
.survey-legend h6 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}

/* Survey table enhancements */
.survey-table th {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913) !important;
    font-weight: 600 !important;
    /* Beat .table-modern thead th (higher specificity) which forces white text -- the gold-tint
       header needs theme-aware dark/light text, not white-on-gold. Token flips per theme. */
    color: var(--text-primary, #333) !important;
}
.survey-table .survey-name {
    font-weight: 600;
    color: var(--text-primary, #333);
}
.survey-table .survey-meta {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}

/* Survey action buttons */
.survey-actions .btn {
    padding: 0.25rem 0.5rem;
}
.survey-actions .btn-outline-primary {
    color: var(--brand-primary, #3d1a6f) !important;
    border-color: var(--brand-primary, #3d1a6f) !important;
}
.survey-actions .btn-outline-primary:hover {
    color: var(--text-on-dark, #fff) !important;
    background-color: var(--brand-primary, #3d1a6f) !important;
}

/* Border dashed utility */
.border-dashed {
    border-style: dashed !important;
}

/* ============================================================================
   INTERVIEW COVERAGE - Modern Coverage Management UI
   ============================================================================ */

/* Coverage Stats Bar */
.coverage-stats-bar {
    /* Positioning wrapper for the hide/show-stats toggle. KPI tiles inside use
       canonical .bh-kpi/.bh-kpi--dense (markup in Coverage.aspx + Interviews.aspx);
       the inner .bh-kpi-row owns the bottom spacing. */
    margin-bottom: 0;
}

/* Coverage panel headers now use the canonical .profile-card-header.yellow
   section-header standard (slate fill + gold left-accent; standalone border-radius
   + margin come from the base .profile-card-header rule). The old bespoke
   .coverage-panel-header (retired cream/gold-fill) was removed 2026-06-20. */

/* Coverage Panel Toolbar */
.coverage-panel-toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.coverage-panel-toolbar .search-input {
    flex: 1;
    min-width: 150px;
    max-width: 250px;
}

.coverage-panel-toolbar .search-input input {
    border-radius: 20px;
    padding-left: 2.5rem;
    border: 1px solid var(--border-default, #ddd);
}

.coverage-panel-toolbar .search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted, #999);
}

/* Coverage Items Container -- grows with content (was capped at 600px which hid items
   behind a tiny inner scrollbar). Keeps a min-height so the empty drop-zone reads. */
.coverage-items-container {
    min-height: 300px;
    padding: 0.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    border: 2px dashed transparent;
    transition: all 0.2s ease;
}

.coverage-items-container.sortable-ghost-highlight {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-gold-tint, #fff5dc);
}

.coverage-items-container .empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--text-muted, #999);
}

.coverage-items-container .empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

/* Coverage Card */
.coverage-card {
    background: var(--bg-surface, #fff);
    border-radius: 9px;
    overflow: hidden;
    border: 1px solid var(--border-default, #e6e6e6);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    box-shadow: none;
    margin-bottom: 0.6rem;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.coverage-card:hover {
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
}

.coverage-card.status-coverage {
    border-left-color: var(--status-success, #28a745);
}

.coverage-card.status-lead {
    border-left-color: var(--brand-accent, #fdb913);
}

.coverage-card.updating {
    opacity: 0.6;
    pointer-events: none;
}

.coverage-card .card-header {
    display: flex;
    align-items: center;
    padding: 0.75rem;
    gap: 0.5rem;
    background: transparent;
    border-bottom: 1px solid var(--border-light, #eee);
    /* The card's single status accent lives on .coverage-card's border-left. Cancel the gold
       border-left that the generic "yellow section header" .card-header rule leaks in (was the
       second left border). */
    border-left: 0;
}

.coverage-card .drag-handle {
    cursor: grab;
    color: #ccc;
    padding: 0.25rem;
    transition: color 0.2s;
}

.coverage-card .drag-handle:hover {
    color: var(--brand-primary, #3d1a6f);
}

.coverage-card .checkbox-wrapper {
    padding: 0.25rem;
}

.coverage-card .station-logo {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--bg-muted, #f0f0f0);
}

.coverage-card .station-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.coverage-card .station-info {
    flex: 1;
    min-width: 0;
}

.coverage-card .station-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.coverage-card .contact-details {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.coverage-card .contact-details .separator {
    margin: 0 0.25rem;
    color: #ccc;
}

.coverage-card .outlet-type {
    font-size: 0.8rem;
    color: var(--text-muted, #999);
}

.coverage-card .quick-actions {
    display: flex;
    gap: 0.25rem;
}

.coverage-card .quick-actions .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.85rem;
}

.coverage-card .card-body {
    padding: 0.5rem 0.75rem;
}

.coverage-card .badges-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}
.coverage-card .badges-row--score { margin-bottom: 0.35rem; }
.coverage-card .badges-row--meta { gap: 0.4rem; }

.coverage-card .downloads-toggle {
    padding: 0;
    font-size: 0.85rem;
}

.coverage-card .downloads-accordion {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--border-light, #eee);
}

.coverage-card .downloads-accordion.collapse:not(.show) {
    display: none;
}

.coverage-card .downloads-accordion.show {
    display: block;
}

.coverage-card .downloads-list-items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.coverage-card .downloads-list-items li {
    padding: 0.25rem 0;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.coverage-card .downloads-list-items .filename {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.coverage-card .downloads-list-items .date {
    color: var(--text-muted, #999);
    font-size: 0.8rem;
}

.coverage-card .card-footer {
    padding: 0.5rem 0.75rem;
    background: transparent;
    border-top: 1px solid var(--border-light, #eee);
    display: flex;
    gap: 0.5rem;
}

/* Manage Coverage: stack the card footer + panel toolbar on narrow viewports */
@media (max-width: 768px) {
    .coverage-card .card-footer {
        flex-wrap: wrap;
    }
    .coverage-card .card-footer .btn {
        flex: 1 1 calc(50% - 0.25rem);
    }
    .coverage-panel-toolbar {
        flex-wrap: wrap;
        align-items: stretch;
    }
    .coverage-panel-toolbar > * {
        flex: 1 1 100%;
    }
}

/* Coverage drag visuals consolidated into the global SortableJS drag SSOT
   (.sortable-drag / .sortable-ghost / .sortable-chosen near the top of this file). */

/* Toast Notifications */
.ic-toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 1rem 1.5rem;
    border-radius: 8px;
    background: #333;
    color: var(--text-on-dark, #fff);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    z-index: 9999;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s ease;
}

.ic-toast.show {
    opacity: 1;
    transform: translateY(0);
}

.ic-toast.success {
    background: var(--status-success, #28a745);
}

.ic-toast.warning {
    background: var(--brand-accent, #fdb913);
    color: var(--text-primary, #333);
}

.ic-toast.error {
    background: var(--status-danger, #dc3545);
}

.ic-toast.info {
    background: var(--status-info, #17a2b8);
}

/* AI Quota Toast */
.ai-quota-toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    max-width: 420px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 20px;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18);
    z-index: 10001;
    font-size: 0.9rem;
    line-height: 1.4;
}

.ai-quota-warning {
    background: var(--status-warning-bg, #fff8e1);
    border: 1px solid var(--brand-accent, #fdb913);
    color: var(--status-warning-text, #5d4200);
}

.ai-quota-exhausted {
    background: var(--bg-danger-subtle, #fce4ec);
    border: 1px solid #e53935;
    color: var(--status-danger-text, #7f1d1d);
}

.ai-quota-toast-icon {
    font-size: 1.4rem;
    flex-shrink: 0;
    padding-top: 2px;
}

.ai-quota-warning .ai-quota-toast-icon { color: #f9a825; }
.ai-quota-exhausted .ai-quota-toast-icon { color: #e53935; }

.ai-quota-toast-body strong {
    display: block;
    margin-bottom: 4px;
    font-size: 0.95rem;
}

.ai-quota-toast-body p {
    margin: 0;
    font-size: 0.85rem;
}

.ai-quota-toast-close {
    background: none;
    border: none;
    color: inherit;
    opacity: 0.5;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 0;
    flex-shrink: 0;
}

.ai-quota-toast-close:hover { opacity: 1; }

/* Audit History Panel */
.audit-history-panel {
    margin-top: 1rem;
}

.audit-history-panel > .profile-card-header.yellow {
    cursor: pointer;
}

.audit-entries {
    max-height: 300px;
    overflow-y: auto;
}

.audit-entry {
    padding: 0.75rem;
    border-bottom: 1px solid var(--border-light, #eee);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.audit-entry:last-child {
    border-bottom: none;
}

.audit-entry .station-name {
    font-weight: 500;
}

.audit-entry .arrow {
    color: #ccc;
}

.audit-entry .new-status {
    color: var(--status-success, #28a745);
    font-weight: 500;
}

.audit-entry .audit-meta {
    width: 100%;
    font-size: 0.8rem;
    color: var(--text-muted, #999);
    display: flex;
    gap: 1rem;
}

.audit-entry .audit-notes {
    width: 100%;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    font-style: italic;
    padding-left: 0.5rem;
    border-left: 2px solid var(--border-light, #eee);
}

/* Loading Spinner */
.loading-spinner {
    text-align: center;
    padding: 2rem;
    color: var(--brand-primary, #3d1a6f);
}

.coverage-items-container .loading-spinner {
    text-align: center;
    padding: 2rem;
    color: var(--brand-primary, #3d1a6f);
}

/* Toggle Switch for Modern/Legacy View */
.view-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.view-toggle .custom-switch .custom-control-label::before {
    background-color: var(--border-strong, #ccc);
}

.view-toggle .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--brand-primary, #3d1a6f);
}

/* ==========================================================================
   Pitch/Booking Stats Bar (reusable KPI cards)
   ========================================================================== */

.pitch-stats {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
    padding: 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    margin-bottom: 1rem;
}

/* .pitch-stat-card styles consolidated into canonical .bh-kpi system (see top
   of file). Class name retained as alias. */

/* .pitch-stats-collapsed / .coverage-stats-collapsed / .stats-dismiss-btn REMOVED
   2026-07-20: retired by the dismissable-stats-bar consolidation. Use
   data-bh-stats-bar + .bh-stats-dismiss / .bh-stats-collapsed (KPI section).
   This .stats-dismiss-btn was one of TWO conflicting definitions (flex-flow here,
   absolute in the MediaClips block); both are gone. */

/* ==========================================================================
   Booking Card Styles
   ========================================================================== */

.booking-stats-bar {
    margin-bottom: 1rem;
}

.booking-toolbar {
    background: var(--bg-subtle, #f8f9fa);
    padding: 1rem;
    border-radius: 8px;
    margin-bottom: 1rem;
}

.bookings-cards-container {
    min-height: 200px;
}

.bookings-cards-container .loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem;
    color: var(--text-muted, #999);
}

.bookings-cards-container .empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem;
    color: var(--text-muted, #999);
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
}

.bookings-cards-container .empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.bookings-cards-container .empty-state.error {
    color: var(--status-danger, #dc3545);
}

.booking-date-group {
    margin-bottom: 1.5rem;
}

.booking-date-group .date-header {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
    padding: 0.6rem 0.75rem;
    margin-bottom: 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 4px;
}

/* === Booking Schedule day grouping (sticky day banner pattern) ===
   Used in InterviewCoverage bookings list + the talent schedule portal interview list
   (Portals/Public/Schedule/schedule.aspx). Each day gets a sticky slate-tint banner
   with full weekday, date, optional Today/Tomorrow pill, and a status rollup.
   Slate-tint + 4px gold left-rail matches the .bh-context-card pattern in the modal. */
.bh-booking-day-group {
    margin-bottom: 2rem;
}
.bh-booking-day-group:last-child {
    margin-bottom: 0.5rem;
}
.bh-booking-day-header {
    position: sticky;
    top: var(--bh-navbar-h, 110px); /* live navbar height -- see Site.Master setNavH(). Fallback 110px matches desktop logo+padding for the first paint before JS runs. */
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.85rem;
    margin-bottom: 0.85rem;
    background: var(--bg-slate-tint, #f4f5f8);
    border: 1px solid var(--border-subtle, #e0e2e7);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.bh-booking-day-header .bh-day-label {
    display: inline-flex;
    align-items: baseline;
    gap: 0.55rem;
    flex-wrap: wrap;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.05rem;
    min-width: 0;
}
.bh-booking-day-header .bh-day-label > i {
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.7;
    font-size: 0.95rem;
}
.bh-booking-day-header .bh-day-weekday {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.bh-booking-day-header .bh-day-date {
    font-weight: 500;
    color: var(--text-secondary, #666);
    font-size: 0.88rem;
}
.bh-booking-day-header .bh-day-relative {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    margin-left: 0.25rem;
    vertical-align: middle;
}
.bh-booking-day-header .bh-day-relative.past {
    background: var(--bg-muted, #e2e3e5);
    color: var(--text-secondary, #666);
}
.bh-booking-day-header .bh-day-rollup {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    font-size: 0.78rem;
}
.bh-booking-day-header .bh-day-count {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.bh-booking-day-header .bh-day-rollup-sep {
    display: inline-block;
    width: 1px;
    height: 0.85em;
    background: var(--border-default, #ccc);
    margin: 0 0.25rem;
    vertical-align: middle;
}
.bh-booking-day-header .bh-day-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-secondary, #666);
    font-size: 0.72rem;
    font-weight: 500;
    white-space: nowrap;
}
.bh-booking-day-header .bh-day-stat i { font-size: 0.7rem; }
.bh-booking-day-header .bh-day-stat.conf {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}
.bh-booking-day-header .bh-day-stat.tent {
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
}
.bh-booking-day-header .bh-day-stat.awaiting {
    background: var(--status-info-bg, #d1ecf1);
    color: var(--status-info-text, #0c5460);
}
.bh-booking-day-header .bh-day-stat.unavail {
    background: var(--status-danger-bg, #f8d7da);
    color: var(--status-danger-text, #721c24);
}
[data-theme="dark"] .bh-booking-day-header {
    background: var(--bg-slate-tint, #2a2a32);
    border-color: var(--border-subtle, #3a3a44);
}
@media (max-width: 768px) {
    .bh-booking-day-header {
        gap: 0.5rem;
        padding: 0.5rem 0.7rem;
    }
    .bh-booking-day-header .bh-day-weekday { font-size: 0.95rem; }
    .bh-booking-day-header .bh-day-stat { font-size: 0.68rem; padding: 0.1rem 0.4rem; }
}

.booking-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--border-default, #dddddd);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 6px 18px rgba(0,0,0,0.09);
    margin-bottom: 1.25rem;
    transition: all 0.2s ease;
    cursor: pointer;
}

.booking-card:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.08), 0 12px 28px rgba(0,0,0,0.13);
    transform: translateY(-2px);
}

/* Status emphasis (2026-07-10): two tiers so a booking board reads like a to-do list.
   Settled (Confirmed / Client-Confirmed) = green, recedes (flatter shadow, calm wash).
   Needs action (Tentative amber, Awaiting Outlet blue) = pops (lifted shadow, warmer wash).
   Header washes + pills reuse the --status-*-bg tint tokens, so dark mode flips automatically. */
.booking-card.status-confirmed,
.booking-card.status-client-confirmed {
    border-left-color: var(--status-success, #28a745);
}

.booking-card.status-tentative {
    border-left-color: var(--status-warning-border, #ffc107);
}

.booking-card.status-awaiting {
    border-left-color: var(--status-info, #17a2b8);
}

/* Settled bookings sit down a level -- done, can be skipped. */
.booking-card.status-confirmed,
.booking-card.status-client-confirmed {
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.booking-card.status-confirmed:hover,
.booking-card.status-client-confirmed:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.08), 0 10px 22px rgba(0,0,0,0.10);
}

/* Headline wash by status. !important + 3-class specificity beats the flat dark-mode
   .booking-card-header override in theme-tokens.css; tint tokens carry the theme flip. */
.booking-card.status-confirmed .booking-card-header,
.booking-card.status-client-confirmed .booking-card-header {
    background: linear-gradient(135deg, var(--status-success-bg, #d4edda) 0%, var(--bg-surface, #fff) 82%) !important;
}
.booking-card.status-tentative .booking-card-header {
    background: linear-gradient(135deg, var(--status-warning-bg, #fff3cd) 0%, var(--bg-surface, #fff) 82%) !important;
}
.booking-card.status-awaiting .booking-card-header {
    background: linear-gradient(135deg, var(--status-info-bg, #d1ecf1) 0%, var(--bg-surface, #fff) 82%) !important;
}

.booking-card.updating {
    opacity: 0.6;
    pointer-events: none;
}

/* Quiet status pills on booking cards (passive positive states -- not buttons) */
.booking-soft-badge {
    display: inline-block;
    padding: 0.18rem 0.5rem;
    margin-left: 0.5rem;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
    background: var(--bg-muted, #f0f0f0);
    color: var(--text-secondary, #666);
}
.booking-soft-badge.ok {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}
.booking-soft-badge i {
    margin-right: 0.2rem;
}

/* Unavailable Block - Distinct "blocked out" appearance */
.unavailable-block {
    position: relative;
    background: var(--bg-muted, #f8f8f8);
    border-radius: 8px;
    margin-bottom: 0.75rem;
    overflow: hidden;
    border: 2px dashed #999;
}

.unavailable-stripe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 10px,
        rgba(150, 150, 150, 0.1) 10px,
        rgba(150, 150, 150, 0.1) 20px
    );
    pointer-events: none;
}

.unavailable-content {
    position: relative;
    display: flex;
    align-items: center;
    padding: 1rem 1.5rem;
    gap: 1.5rem;
}

.unavailable-icon-large {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    background: var(--status-danger, #dc3545);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-dark, #fff);
    font-size: 1.5rem;
}

.unavailable-details {
    flex: 1;
}

.unavailable-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--status-danger, #dc3545);
    margin-bottom: 0.25rem;
}

.unavailable-talent {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    margin-bottom: 0.25rem;
}

.unavailable-time {
    font-size: 0.9rem;
    color: var(--text-secondary, #666);
}

.unavailable-reason {
    font-size: 0.85rem;
    color: var(--text-tertiary, #888);
    margin-top: 0.25rem;
    font-style: italic;
}

.booking-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border-bottom: 1px solid var(--border-light, #eee);
    border-radius: 8px 8px 0 0;
}

.booking-datetime {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.booking-datetime .time {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1rem;
}

.booking-datetime .timezone {
    font-size: 0.8rem;
    color: var(--text-muted, #999);
}

.booking-card-body {
    padding: 0.75rem 1rem;
}

.outlet-logo {
    width: 50px;
    height: 50px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--bg-muted, #f0f0f0);
    display: flex;
    align-items: center;
    justify-content: center;
}

.outlet-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.outlet-info .outlet-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 1rem;
}

.outlet-info .outlet-meta {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.outlet-info .outlet-meta .separator {
    margin: 0 0.5rem;
    color: #ccc;
}

.outlet-info .host-info {
    font-size: 0.85rem;
    color: var(--text-muted, #999);
    margin-top: 0.25rem;
}

.talent-info .talent-primary {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1rem;
}

.secondary-talent-section {
    margin-top: 0.5rem;
}

.secondary-talent-section .toggle-secondary {
    padding: 0;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    text-decoration: none;
}

.secondary-talent-section .toggle-secondary:hover {
    color: var(--brand-primary, #3d1a6f);
}

.secondary-talent-list {
    display: none;
    margin-top: 0.5rem;
    padding-left: 1rem;
    border-left: 2px solid var(--border-light, #e9ecef);
}

.secondary-talent-list.show {
    display: block;
}

.secondary-talent-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.25rem 0;
    font-size: 0.85rem;
}

.method-info .method {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
}

.method-info .type {
    font-size: 0.8rem;
    color: var(--text-muted, #999);
}

.booking-notes {
    display: inline-block;      /* hug the note text -- no full-width cream band across the card */
    max-width: 100%;
    margin-top: 0.5rem;
    padding: 0.35rem 0.6rem;
    background: var(--bg-gold-tint, #fffbf0);
    border-radius: 4px;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.booking-card .quick-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.booking-card .quick-actions .btn,
.booking-card .quick-actions .btn-xs {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
}

.booking-card .quick-actions .badge {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
}

/* Upload + More segmented control (schedule card). Square kebab; keep the pair tidy. */
.booking-card .quick-actions .bh-card-actions .bh-card-more-btn {
    padding-left: 0.45rem !important;
    padding-right: 0.45rem !important;
}
/* While the More menu is open, escape the card's overflow clip and stack above later cards + the
   sticky day-header (.bh-booking-day-header z-index:5). Stays below the fixed navbar (z-index:1030). */
.booking-card.bh-menu-open {
    overflow: visible;
    position: relative;
    z-index: 20;
}

/* Status badges */
.status-badge .badge {
    font-size: 0.8rem;
    padding: 0.4rem 0.75rem;
}
/* Header can hold a heads-up flag (e.g. "Not emailed") before the status pill. */
.status-badge {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
/* Email-gap flag: quieter than the status pill -- soft red, a touch smaller, so it informs without alarming. */
.status-badge .booking-header-flag {
    font-size: 0.64rem;
    padding: 3px 9px;
    opacity: 0.92;
}

/* Toast notification */
.booking-toast {
    animation: slideIn 0.2s ease-out;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ============================================
   OFFCANVAS SLIDE-OUT PANEL (Bootstrap 4 Polyfill)
   ============================================ */
.offcanvas {
    position: fixed;
    bottom: 0;
    z-index: 1045;
    display: flex;
    flex-direction: column;
    max-width: 100%;
    visibility: hidden;
    background-color: var(--bg-surface, #fff);
    background-clip: padding-box;
    outline: 0;
    transition: transform 0.3s ease-in-out;
    box-shadow: -5px 0 25px rgba(0,0,0,0.15);
}

.offcanvas-end {
    top: 0;
    right: 0;
    width: 400px;
    border-left: 1px solid rgba(0,0,0,.2);
    transform: translateX(100%);
}

.offcanvas.show {
    visibility: visible;
    transform: none;
}

.offcanvas-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-bottom: 1px solid var(--border-default, #dee2e6);
    color: var(--brand-primary, #3d1a6f);
}

.offcanvas-title {
    margin-bottom: 0;
    line-height: 1.5;
}

.offcanvas-body {
    flex-grow: 1;
    padding: 1rem;
    overflow-y: auto;
}

.offcanvas-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100vw;
    height: 100vh;
    background-color: #000;
    opacity: 0.5;
}

.offcanvas-backdrop.fade {
    opacity: 0;
}

.offcanvas-backdrop.show {
    opacity: 0.5;
}

body.offcanvas-open {
    overflow: hidden;
}

/* =============================================================================
   Portal Access Cards
   ============================================================================= */

.portal-section {
    margin-bottom: 1.5rem;
}

/* Canonical slate section-header treatment (gold-fill retired 2026-05-12; gold = accent only) */
.portal-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: clamp(0.4rem, 0.6vw + 0.25rem, 0.625rem) clamp(0.75rem, 1vw + 0.5rem, 1rem);
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 4px 4px 0 0;
    margin-bottom: 0;
}

.portal-section-header h5 {
    margin: 0;
    font-size: clamp(0.95rem, 0.3vw + 0.85rem, 1.05rem);
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

.portal-section-header .btn-group {
    display: flex;
    gap: 0.5rem;
}

.portal-cards-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 1rem;
    padding: 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-light, #e9ecef);
    border-top: none;
    border-radius: 0 0 4px 4px;
}

.portal-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 1rem;
    transition: box-shadow 0.2s, transform 0.2s;
}

.portal-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.portal-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.75rem;
}

.portal-card-name {
    font-weight: 600;
    font-size: 1rem;
    color: var(--text-primary, #333);
    margin-bottom: 0.25rem;
}

.portal-card-email {
    color: var(--text-secondary, #666);
    font-size: 0.875rem;
}

.portal-card-actions {
    display: flex;
    gap: 0.25rem;
}

.portal-card-actions .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 4px;
}

.portal-card-body {
    margin-bottom: 0.75rem;
}

.portal-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.portal-card-meta-item {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--text-secondary, #666);
}

.portal-card-meta-item i {
    font-size: 0.75rem;
}

.portal-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-light, #f0f0f0);
}

.portal-status-active {
    color: var(--status-success, #28a745);
    font-size: 0.85rem;
}

.portal-status-active i {
    font-size: 0.5rem;
    vertical-align: middle;
    margin-right: 0.25rem;
}

.portal-status-never {
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
}

.portal-status-never i {
    font-size: 0.5rem;
    vertical-align: middle;
    margin-right: 0.25rem;
}

.portal-last-accessed {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.portal-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
}

.portal-alert-badge.alert-on {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}

.portal-alert-badge.alert-off {
    background: var(--status-danger-bg, #f8d7da);
    color: var(--status-danger-text, #721c24);
}

/* Empty state for portal sections */
.portal-empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 2rem;
    color: var(--text-secondary, #666);
}

.portal-empty-state i {
    font-size: 2rem;
    margin-bottom: 0.5rem;
    opacity: 0.5;
}

/* QR Code Modal */
#qrCodeModal .modal-body {
    text-align: center;
    padding: 1.5rem;
}

#qrCodeContainer {
    display: inline-block;
    padding: 1rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
}

#qrCodeContainer img {
    display: block;
}

/* Portal toast notification */
.portal-toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 12px 24px;
    border-radius: 4px;
    z-index: 9999;
    color: var(--text-on-dark, #fff);
    animation: portalToastIn 0.3s ease;
}

.portal-toast-success {
    background: var(--status-success, #28a745);
}

.portal-toast-error {
    background: var(--status-danger, #dc3545);
}

@keyframes portalToastIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .portal-cards-container {
        grid-template-columns: 1fr;
    }

    .portal-section-header {
        flex-direction: column;
        gap: 0.5rem;
        align-items: flex-start;
    }

    .portal-card-header {
        flex-direction: column;
    }

    .portal-card-actions {
        margin-top: 0.5rem;
    }
}

/* ============================================
   SCHEDULE PORTAL STYLES
   ============================================ */

/* Info Section Cards (Background Info, Speaking Tips) */
.info-section-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    border-left: 4px solid var(--brand-accent, #fdb913);
    margin-bottom: 1rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    overflow: hidden;
}

.info-section-card h4 {
    /* gradient provided by .bh-gold-header master rule */
    margin: 0;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    border-bottom: 1px solid var(--border-light, #f0e6d0);
}

.info-section-card h4 i {
    margin-right: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
}

.info-section-content {
    padding: 1.25rem 1.5rem;
    line-height: 1.7;
    color: var(--text-body, #555);
}

/* Generic padding for card body content */
.info-section-card > p,
.info-section-card > div:not(h4) {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.info-section-card > p:first-of-type {
    padding-top: 1rem;
}

.info-section-card > div:last-child {
    padding-bottom: 1.5rem;
}

/* Ensure nested content in settings cards has proper left padding */
.info-section-card .pin-security-status,
.info-section-card .pin-security-actions {
    padding-left: 1rem;
    margin-left: 0;
}

/* Supporting Info -- headline stat donuts (jQuery Knob), shown as a horizontal strip */
.support-stats-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1.75rem;
    justify-content: center;
    align-items: flex-start;
}

.support-stat {
    flex: 1 1 200px;
    max-width: 260px;
    text-align: center;
}

.support-stat-dial {
    text-align: center;
    margin-bottom: 0.6rem;
}

.support-stat-dial input.dial {
    font-weight: 700;
}

.support-stat-caption {
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--text-body, #555);
}

@media (max-width: 768px) {
    .support-stat {
        flex: 1 1 100%;
        max-width: none;
    }
}

/* Q&A Cards (Key Messages) */
.qa-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    margin-bottom: 1rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    overflow: hidden;
}

.qa-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.qa-number {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}

.qa-card-body {
    padding: 1rem;
    color: var(--text-body, #555);
    line-height: 1.6;
}

/* Portal Card Grid (Manage Alerts) */
.portal-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 1rem;
}

.portal-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    overflow: hidden;
}

.portal-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    padding: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.portal-card-info {
    flex: 1;
}

.portal-card-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.portal-card-title {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
}

.portal-card-toggle {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
}

.portal-card-toggle .toggle-label {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
}

.portal-card-body {
    padding: 1rem;
}

.portal-card-detail {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-body, #555);
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.portal-card-detail i {
    width: 16px;
    color: var(--brand-primary, #3d1a6f);
}

.portal-card-actions {
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-top: 1px solid var(--border-light, #eee);
}

/* Media Release Card */
.media-release-card {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    overflow: hidden;
}

.media-release-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 2rem;
    text-align: center;
}

.media-release-image {
    max-height: 150px;
    max-width: 150px;
    border-radius: 8px;
    margin-bottom: 1rem;
    display: inline-block;
}

.media-release-title h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 0.5rem 0;
    color: var(--text-on-dark, #fff);
}

.media-release-notice {
    display: inline-block;
    background: var(--brand-accent, #fdb913);
    color: #333; /* SEC-A001 */
    padding: 0.25rem 1rem;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.9rem;
}

.media-release-body {
    padding: 2rem;
}

.media-release-bullets {
    background: var(--bg-subtle, #f8f9fa);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0 8px 8px 0;
    font-weight: 500;
}

.media-release-content {
    line-height: 1.8;
    color: var(--text-primary, #444);
    margin-bottom: 1.5rem;
}

.media-release-questions {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-radius: 8px;
    padding: 1.5rem;
}

.media-release-questions h5 {
    color: var(--brand-primary, #3d1a6f);
    margin: 0 0 1rem 0;
    font-size: 1rem;
}

.media-release-questions h5 i {
    margin-right: 0.5rem;
}

/* Interview Countdown Card */
.schedule-countdown-container {
    margin: 1rem 0;
}

.schedule-countdown-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 1rem 1.5rem;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(61, 26, 111, 0.3);
}

.countdown-icon {
    font-size: 2rem;
    opacity: 0.9;
}

.countdown-info {
    flex: 1;
}

.countdown-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
}

.countdown-outlet {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0.25rem 0;
}

.countdown-time {
    font-size: 0.9rem;
    opacity: 0.9;
}

.countdown-timer {
    text-align: center;
    background: rgba(255,255,255,0.15);
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
}

.countdown-value {
    font-size: 1.75rem;
    font-weight: 700;
    font-family: 'Courier New', monospace;
}

.countdown-unit {
    font-size: 0.7rem;
    text-transform: uppercase;
    opacity: 0.8;
}

.countdown-actions {
    display: flex;
    gap: 0.5rem;
}

.countdown-actions .btn {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
}

.countdown-actions .btn:hover {
    background: rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
}

/* Urgent Action Banner */
.schedule-urgent-banner {
    background: linear-gradient(135deg, var(--bg-danger-subtle, #fff5f5) 0%, var(--bg-danger-subtle, #ffe5e5) 100%);
    border: 2px solid var(--status-danger, #dc3545);
    border-radius: 12px;
    padding: 1rem 1.5rem;
    margin: 1rem 0;
    animation: pulse-border 2s infinite;
}

.urgent-banner-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--status-danger, #dc3545);
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.urgent-banner-header i {
    font-size: 1.25rem;
}

.urgent-banner-items {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.urgent-banner-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--bg-surface, #fff);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    border-left: 4px solid var(--status-danger, #dc3545);
}

.urgent-banner-item.urgency-urgent {
    border-left-color: #fd7e14;
}

.urgent-item-info {
    display: flex;
    flex-direction: column;
}

.urgent-item-outlet {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.urgent-item-time {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.urgent-item-actions {
    display: flex;
    gap: 0.5rem;
}

/* Schedule Interview Card Overrides (visual shell -- border/shadow/radius -- inherited from .booking-card) */
.schedule-interview-card:last-child {
    margin-bottom: 0;
}

/* The portal card is NOT a click target -- only its buttons (Confirm / calendar / profile) are.
   Kill the whole-card hover-lift + pointer cursor inherited from .booking-card (which IS clickable
   in the app), so nothing competes with the Confirm button as the thing to press. Hover leaves the
   shadow unchanged; the settled-recede resting shadow is preserved on hover too. */
.booking-card.schedule-interview-card {
    cursor: default;
}
.booking-card.schedule-interview-card:hover {
    transform: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 6px 18px rgba(0,0,0,0.09);
}
.booking-card.schedule-interview-card.status-confirmed:hover,
.booking-card.schedule-interview-card.status-client-confirmed:hover {
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.schedule-interview-card .booking-card-header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.6rem 1rem;
}

.schedule-interview-card .booking-card-header-left {
    flex-shrink: 0;
}

.schedule-interview-card .booking-card-header-center {
    flex: 1;
    min-width: 0;
}

.schedule-interview-card .booking-card-header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    flex-shrink: 0;
}

.schedule-interview-card .booking-header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.schedule-interview-card .booking-cal-btn {
    padding: 0.15rem 0.4rem;
    line-height: 1;
    color: var(--brand-primary, #3d1a6f);
    background: transparent;
    border: 1px solid var(--border-light, #d9d2e6);
    border-radius: 4px;
}

.schedule-interview-card .booking-cal-btn:hover {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
}

/* Outlet name + interview time sit on ONE line (time reads as a subtitle beside the name). */
.schedule-interview-card .booking-headline-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.65rem;
}

.schedule-interview-card .booking-outlet-name {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    line-height: 1.3;
}

.schedule-interview-card .booking-interview-time {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
}

/* Confirm lives at the bottom-right of the card body, separated from the header status badge. */
.schedule-interview-card .booking-accept-panel {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.6rem;
}

/* Desktop: float Confirm into the empty bottom-right area beside the detail columns rather than
   giving it a whole row of its own (saves vertical space). Columns are thirds at >=768px and the
   far-right area is blank, so it never overlaps the Type/Covering/Reach text. On mobile the columns
   stack full-width, so keep the button in normal flow (its own line) to avoid overlapping content. */
@media (min-width: 768px) {
    .schedule-interview-card .booking-card-body {
        position: relative;
    }
    .schedule-interview-card .booking-accept-panel {
        position: absolute;
        right: 1rem;
        bottom: 0.7rem;
        margin-top: 0;
    }
}

.schedule-interview-card .booking-timezone {
    color: var(--text-muted, #999);
    font-size: 0.78rem;
}

.schedule-interview-card .booking-status-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    background: var(--bg-subtle, #eee);
    color: var(--text-secondary, #666);
}

.schedule-interview-card .booking-status-badge.status-confirmed {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
}

.schedule-interview-card .booking-status-badge.status-tentative {
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
}

.schedule-interview-card .booking-status-badge.status-awaiting {
    background: var(--status-info-bg, #d1ecf1);
    color: var(--status-info-text, #0c5460);
}

.schedule-interview-card .booking-card-body {
    padding: 0.65rem 1rem 0.75rem;
    border-top: 1px solid var(--border-light, #eee);
}

.schedule-interview-card .booking-detail-col {
    padding-top: 0.15rem;
}

.schedule-interview-card .booking-detail-row {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.3rem;
    font-size: 0.85rem;
    line-height: 1.35;
}

.schedule-interview-card .booking-detail-label {
    font-weight: 600;
    color: var(--text-secondary, #666);
    min-width: 62px;
    flex-shrink: 0;
}

.schedule-interview-card .booking-notes {
    display: block;
    background: var(--bg-danger-subtle, #fff5f5);
    border-left: 3px solid var(--status-danger, #dc3545);
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    margin-top: 0.5rem;
    font-size: 0.85rem;
    line-height: 1.4;
    white-space: pre-wrap;
}

.schedule-interview-card .booking-notes .booking-detail-label {
    min-width: 0;
    margin-right: 0.25rem;
}

/* Phone link styling */
.schedule-interview-card .booking-phone-link {
    color: var(--status-success, #28a745);
    text-decoration: none;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.schedule-interview-card .booking-phone-link:hover {
    color: #1e7e34;
    text-decoration: underline;
}

.schedule-interview-card .booking-phone-link i {
    font-size: 0.9em;
}

/* Status-based card styling: the card now carries the app SSOT status class
   (.booking-card.status-confirmed / -client-confirmed / -tentative / -awaiting), so the
   border-left colour + settled-recede shadow are inherited from the .booking-card.status-*
   rules -- no per-portal duplication (and no fragile exact-match on the data-interview-status
   attribute, which missed the hyphenated "Client-Confirmed").
   The headline wash IS overridden here: the portal header is a tall content block (logo + name +
   time + badge + Confirm button), not the app's slim time-bar, so the full-strength wash read as a
   garish banner. Soften it to a gentle top-left tint (blended toward surface + fading out by ~48%). */
.schedule-interview-card.status-confirmed .booking-card-header,
.schedule-interview-card.status-client-confirmed .booking-card-header {
    background: linear-gradient(135deg, color-mix(in srgb, var(--status-success-bg, #d4edda) 38%, var(--bg-surface, #fff)) 0%, var(--bg-surface, #fff) 48%) !important;
}
.schedule-interview-card.status-tentative .booking-card-header {
    background: linear-gradient(135deg, color-mix(in srgb, var(--status-warning-bg, #fff3cd) 38%, var(--bg-surface, #fff)) 0%, var(--bg-surface, #fff) 48%) !important;
}
.schedule-interview-card.status-awaiting .booking-card-header {
    background: linear-gradient(135deg, color-mix(in srgb, var(--status-info-bg, #d1ecf1) 38%, var(--bg-surface, #fff)) 0%, var(--bg-surface, #fff) 48%) !important;
}

/* Urgency-based card styling */
.schedule-interview-card.urgency-critical {
    border-left: 4px solid var(--status-danger, #dc3545) !important;
    animation: pulse-border 1.5s infinite;
}

.schedule-interview-card.urgency-urgent {
    border-left: 4px solid #fd7e14 !important;
    background: var(--bg-gold-tint, #fff8f0);
}

.schedule-interview-card.urgency-warning {
    border-left: 4px solid var(--status-warning-border, #ffc107) !important;
}

.schedule-interview-card .booking-urgency-text {
    color: var(--status-danger, #dc3545);
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0.25rem;
}

.schedule-interview-card.urgency-critical .booking-urgency-text,
.schedule-interview-card.urgency-urgent .booking-urgency-text,
.schedule-interview-card.urgency-warning .booking-urgency-text {
    display: block !important;
}

/* Floating Key Messages Button */
.schedule-floating-btn {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 1000;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    border: none;
    box-shadow: 0 4px 12px rgba(61, 26, 111, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.schedule-floating-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 16px rgba(61, 26, 111, 0.5);
}

.schedule-floating-btn:active {
    transform: scale(0.95);
}

/* Key Messages Modal */
.key-messages-modal .modal-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
}

.key-messages-modal .qa-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    margin-bottom: 1rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.key-messages-modal .qa-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    border-radius: 0 8px 0 0;
}

.key-messages-modal .qa-card-body {
    padding: 1rem;
    color: var(--text-body, #555);
    line-height: 1.6;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .schedule-countdown-card {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }

    .countdown-timer {
        width: 100%;
    }

    .countdown-actions {
        width: 100%;
        justify-content: center;
    }

    .schedule-interview-card .booking-card-header {
        flex-direction: column;
        text-align: center;
    }

    .schedule-interview-card .booking-card-header-right {
        align-items: center;
        margin-top: 0.5rem;
    }

    .urgent-banner-item {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
    }

    .urgent-item-actions {
        width: 100%;
        justify-content: center;
    }

    .schedule-floating-btn {
        bottom: 1rem;
        right: 1rem;
        width: 50px;
        height: 50px;
        font-size: 1.25rem;
    }
}

/* ========================================
   Schedule Portal - Calendar Sync Bar
   ======================================== */
.schedule-calendar-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    margin-bottom: 1rem;
}

.calendar-bar-label {
    font-weight: 500;
    color: var(--text-secondary, #666);
    white-space: nowrap;
}

.calendar-bar-label i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.5rem;
}

.calendar-bar-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.calendar-bar-buttons .btn {
    font-size: 0.8rem;
}

@media (max-width: 768px) {
    .schedule-calendar-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .calendar-bar-buttons {
        width: 100%;
    }

    .calendar-bar-buttons .btn {
        flex: 1;
        text-align: center;
    }
}

/* ========================================
   Schedule Portal - Calendar Options Panel
   ======================================== */
.schedule-calendar-options {
    margin: 1rem 0;
}

.calendar-options-card {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    overflow: hidden;
    border: 1px solid var(--border-light, #e9ecef);
}

.calendar-options-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 1rem 1.25rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.calendar-options-header i {
    margin-right: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
}

.calendar-options-header .btn-close {
    background: transparent;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.2s ease;
}

.calendar-options-header .btn-close:hover {
    opacity: 1;
}

.calendar-options-body {
    padding: 1.5rem;
}

.calendar-options-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;
    align-items: start;
}

.calendar-option-section h6 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.calendar-option-section h6 i {
    margin-right: 0.5rem;
}

.calendar-option-divider {
    width: 1px;
    background: var(--bg-muted, #e9ecef);
    min-height: 100px;
    align-self: stretch;
}

.calendar-subscribe-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.calendar-subscribe-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.calendar-subscribe-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.calendar-options-footer {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    font-size: 0.875rem;
    color: var(--text-secondary, #666);
}

.calendar-options-footer i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.5rem;
}

/* Calendar Toast Notification */
.calendar-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: #333;
    color: var(--text-on-dark, #fff);
    padding: 1rem 1.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.2);
    z-index: 9999;
    opacity: 0;
    transition: all 0.3s ease;
}

.calendar-toast.show {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

.calendar-toast i {
    color: var(--status-success, #4caf50);
    margin-right: 0.5rem;
}

/* Calendar Options Mobile */
@media (max-width: 768px) {
    .calendar-options-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .calendar-option-divider {
        width: 100%;
        height: 1px;
        min-height: auto;
    }

    .calendar-subscribe-buttons {
        flex-direction: column;
    }

    .calendar-subscribe-btn {
        justify-content: center;
        width: 100%;
    }
}

/* ========================================
   Schedule Portal - Calendar Setup Banner
   ======================================== */
.calendar-setup-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    border-radius: 12px;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 12px rgba(61, 26, 111, 0.2);
}

.calendar-setup-content {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.calendar-setup-content > i {
    font-size: 2rem;
    color: var(--brand-accent, #fdb913);
}

.calendar-setup-text {
    display: flex;
    flex-direction: column;
}

.calendar-setup-text strong {
    font-size: 1rem;
    font-weight: 600;
}

.calendar-setup-text span {
    font-size: 0.85rem;
    opacity: 0.9;
}

.calendar-setup-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.calendar-setup-actions .btn-primary {
    background: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
    color: var(--text-primary, #1a1a1a);
    font-weight: 600;
}

.calendar-setup-actions .btn-primary:hover {
    background: #e5a711;
    border-color: #e5a711;
}

.calendar-setup-actions .btn-link {
    text-decoration: none;
    opacity: 0.8;
}

.calendar-setup-actions .btn-link:hover {
    opacity: 1;
}

@media (max-width: 768px) {
    .calendar-setup-banner {
        flex-direction: column;
        text-align: center;
        padding: 1rem;
    }

    .calendar-setup-content {
        flex-direction: column;
        text-align: center;
    }

    .calendar-setup-actions {
        width: 100%;
        flex-direction: column;
    }

    .calendar-setup-actions .btn {
        width: 100%;
    }
}

/* ========================================
   Schedule Portal - PIN Security
   ======================================== */
.pin-security-card {
    border-left-color: var(--brand-primary, #3d1a6f) !important;
}

.pin-security-status {
    padding: 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    margin-bottom: 0.5rem;
}

.pin-status-indicator {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pin-status-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.pin-status-icon.pin-disabled {
    background: var(--bg-muted, #e9ecef);
    color: var(--text-secondary, #666);
}

.pin-status-icon.pin-enabled {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success, #28a745);
}

.pin-status-text {
    color: var(--text-primary, #333);
    font-size: 0.95rem;
}

/* PIN Modal Styles */
.pin-modal .modal-content {
    border-radius: 12px;
    overflow: hidden;
}

.pin-input {
    font-size: 1.5rem;
    letter-spacing: 0.5rem;
    text-align: center;
    padding: 0.75rem;
    border-radius: 8px;
}

.pin-input:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.2rem rgba(61, 26, 111, 0.25);
}

.pin-input-container {
    margin-bottom: 1rem;
}

.pin-error-message {
    color: var(--status-danger, #dc3545);
    background: var(--status-danger-bg, #f8d7da);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    margin-top: 0.75rem;
    font-size: 0.875rem;
}

.pin-lockout-message {
    color: var(--status-warning-text, #856404);
    background: var(--status-warning-bg, #fff3cd);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    margin-top: 0.75rem;
    font-size: 0.875rem;
}

.pin-requirements {
    margin-top: 0.75rem;
    padding: 0.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
}

.pin-security-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* PIN Modal Mobile */
@media (max-width: 576px) {
    .pin-input {
        font-size: 1.25rem;
        letter-spacing: 0.3rem;
    }
}

/* ========================================
   Schedule Portal - Toolbar
   ======================================== */
.schedule-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1rem 0;
    padding: 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
}

.schedule-toolbar-left {
    flex: 0 0 auto;
}

.schedule-toolbar-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Inline "Hide past" filter toggle in the schedule toolbar (replaces the old cog
   dropdown). Reuses the shared .switch/.slider control at the established .switch-sm
   size (scale 0.8); this rule only lays it out next to its label. */
.schedule-toolbar-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    margin: 0;
    cursor: pointer;
    white-space: nowrap;
}
.schedule-toolbar-toggle-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.switch-sm {
    transform: scale(0.8);
}

/* ========================================
   Schedule Portal - Contact Popup
   ======================================== */
.schedule-contact-popup {
    position: fixed;
    bottom: 90px;
    right: 1.5rem;
    width: 280px;
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.2);
    z-index: 1000;
    overflow: hidden;
}

.contact-popup-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 0.75rem 1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.contact-popup-header i {
    margin-right: 0.5rem;
}

.popup-close {
    background: transparent;
    border: none;
    color: var(--text-on-dark, #fff);
    font-size: 1.25rem;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.popup-close:hover {
    opacity: 1;
}

.contact-popup-body {
    padding: 1rem;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}

.contact-item:last-child {
    border-bottom: none;
}

.contact-item i {
    color: var(--brand-primary, #3d1a6f);
    width: 20px;
    text-align: center;
}

.contact-item a {
    color: var(--text-primary, #333);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.contact-item a:hover {
    color: var(--brand-primary, #3d1a6f);
}

/* ========================================
   Schedule Portal - Key Messages Slide-out
   ======================================== */
.schedule-slideout-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 1040;
}

.schedule-slideout-panel {
    position: fixed;
    top: 0;
    right: -400px;
    width: 400px;
    max-width: 90vw;
    height: 100%;
    background: var(--bg-surface, #fff);
    box-shadow: -5px 0 20px rgba(0,0,0,0.2);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    transition: right 0.3s ease;
}

.schedule-slideout-panel.open {
    right: 0;
}

.slideout-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 1rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.slideout-header h5 {
    margin: 0;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.slideout-close {
    background: transparent;
    border: none;
    color: var(--text-on-dark, #fff);
    font-size: 1.5rem;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.slideout-close:hover {
    opacity: 1;
}

.slideout-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.slideout-body .qa-card {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
}

.slideout-body .qa-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.slideout-body .qa-card-body {
    padding: 0.75rem 1rem;
    color: var(--text-body, #555);
    line-height: 1.6;
}

.slideout-footer {
    padding: 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
    text-align: center;
}

/* ========================================
   Shared slide-out primitive (right drawer)
   Reused by the Targeting & Strategy reminder.
   ======================================== */
.bh-slideout-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1040;
    display: none;
}
.bh-slideout-panel {
    position: fixed;
    top: 0;
    right: -440px;
    width: 440px;
    max-width: 92vw;
    height: 100%;
    background: var(--bg-surface, #fff);
    box-shadow: -5px 0 20px rgba(0, 0, 0, 0.2);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    transition: right 0.3s ease;
}
.bh-slideout-panel.open {
    right: 0;
}

/* ========================================
   Targeting & Strategy reminder
   Compact card (EmailPitching context bar / PhonePitching header) + drawer body.
   ======================================== */
.bh-stratrem {
    flex: 1 1 320px;
    min-width: 280px;
}
/* Slim work-area banner (the compact reminder). Mirrors the social-proof strip. */
.bh-stratrem-strip {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    background: var(--bg-slate-tint, #f5f6f8);
    border: 1px solid var(--border-light, #e3e3ea);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    padding: 0.5rem 0.8rem;
    margin-bottom: 1rem;
    font-size: 0.82rem;
}
.bh-stratrem-strip-ic {
    color: var(--brand-primary, #3d1a6f);
    flex: 0 0 auto;
}
.bh-stratrem-strip-label {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    flex: 0 0 auto;
}
.bh-stratrem-strip-angle {
    font-weight: 600;
    color: var(--text-primary, #1f1f27);
    flex: 1 1 240px;
    min-width: 0;
    line-height: 1.3;
}
.bh-stratrem-strip .bh-stratrem-mix--mini {
    width: 160px;
    flex: 0 0 160px;
    height: 9px;
}
.bh-stratrem-strip-link {
    border: none;
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
    font-size: 0.74rem;
    text-decoration: underline;
    cursor: pointer;
    white-space: nowrap;
    padding: 0.1rem 0.2rem;
    margin-left: auto;
    flex: 0 0 auto;
}
.bh-stratrem-strip-link:hover {
    text-decoration: none;
}
@media (max-width: 640px) {
    .bh-stratrem-strip-link { margin-left: 0; }
    .bh-stratrem-strip .bh-stratrem-mix--mini { flex: 1 1 120px; width: auto; }
}
.bh-stratrem-card {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-light, #e5e7eb);
    border-radius: 10px;
    padding: 14px 18px;
}
/* Tile mode: strategy reminder renders as a card beside the EmailPitching quota tile,
   inside the shared .ep-context-bar flex row. The .bh-stratrem wrapper already carries
   the matching flex sizing (1 1 320px); here we make the inner card fill the stretched
   cell so both tiles are equal height, clamp the angle, and pin the link to the bottom. */
.bh-stratrem--tile {
    display: flex;
}
.bh-stratrem--tile > .bh-stratrem-card {
    flex: 1 1 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
}
.bh-stratrem--tile .bh-stratrem-angle {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bh-stratrem--tile .bh-stratrem-more {
    margin-top: auto;
    align-self: flex-start;
}
.bh-stratrem-head {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}
.bh-stratrem-angle {
    font-weight: 600;
    color: var(--text-primary, #2d2d34);
    font-size: 0.85rem;
    line-height: 1.35;
    margin-bottom: 8px;
}
.bh-stratrem-chans {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.bh-stratrem-chip {
    font-size: 0.75rem;
    padding: 0.3em 0.6em;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.bh-stratrem-chip.on {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bh-stratrem-chip.off {
    background: var(--bg-muted, #e9ecef);
    color: var(--text-secondary, #6c757d);
}
.bh-stratrem-mix {
    display: flex;
    height: 16px;
    border-radius: 8px;
    overflow: hidden;
    margin: 8px 0;
}
.bh-stratrem-mix span {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 700;
    white-space: nowrap;
}
.bh-stratrem-more {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    background: transparent;
    border-radius: 6px;
    padding: 0.32rem 0.6rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    margin-top: 4px;
}
.bh-stratrem-more:hover {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bh-stratrem-empty {
    font-size: 0.85rem;
    color: var(--text-secondary, #6c757d);
}
.bh-stratrem-section {
    margin-bottom: 1rem;
}
.bh-stratrem-label {
    font-size: 0.62rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-secondary, #8a8a96);
    font-weight: 700;
    margin-bottom: 0.3rem;
}
.bh-stratrem-aud-chip,
.bh-stratrem-arch-chip {
    display: inline-block;
    border-radius: 20px;
    padding: 0.12rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 600;
    margin: 0.15rem 0.25rem 0.15rem 0;
}
.bh-stratrem-aud-chip {
    background: var(--bg-gold-tint, #fff4d6);
    color: var(--text-primary, #7a5b00);
}
.bh-stratrem-arch-chip {
    background: var(--bg-purple-tint, #ede7f6);
    color: var(--brand-primary, #3d1a6f);
}
.bh-stratrem-tier {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0;
    border-top: 1px dashed var(--border-light, #ececf1);
}
.bh-stratrem-tier-badge {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 4px;
    font-size: 0.62rem;
    font-weight: 700;
    padding: 0.1rem 0.4rem;
    flex: 0 0 auto;
}
.bh-stratrem-tier-text {
    font-size: 0.78rem;
    color: var(--text-body, #5a5a66);
}
.bh-stratrem-notes {
    font-size: 0.82rem;
    color: var(--text-body, #5a5a66);
    line-height: 1.5;
    white-space: pre-wrap;
}
.bh-stratrem-meta {
    font-size: 0.78rem;
    color: var(--text-body, #5a5a66);
    margin-right: 1rem;
}

/* ========================================
   Schedule Portal - PIN Setup Banner
   ======================================== */
.pin-setup-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    z-index: 1030;
    box-shadow: 0 -4px 15px rgba(0,0,0,0.2);
}

.pin-setup-banner-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pin-setup-banner-content i {
    font-size: 1.5rem;
    color: var(--brand-accent, #fdb913);
}

.pin-setup-banner-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pin-setup-banner .btn-link {
    color: rgba(255,255,255,0.8);
}

.pin-setup-banner .btn-link:hover {
    color: var(--text-on-dark, #fff);
}

/* ========================================
   Portal Logo Background Fix (Schedule/NewsWire)
   ======================================== */
.schedule-portal #mainNav .navbar-brand img,
.newswire-portal #mainNav .navbar-brand img {
    background: rgba(255,255,255,0.9);
    padding: 0.25rem;
    border-radius: 6px;
}

/* Hide individual calendar buttons by default - JS will show if user enabled */
.schedule-portal .individual-calendar-btn {
    display: none;
}

/* Add top padding to non-SCHEDULE tabs */
.schedule-portal .tab-pane:not(#schedule) {
    padding-top: 1.5rem;
}

/* Schedule Portal Welcome Greeting */
.schedule-welcome {
    padding: 0;
    margin: 0;
}

.schedule-welcome h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.schedule-welcome-date {
    margin: 0.25rem 0 0;
    font-size: 0.9rem;
    color: var(--text-secondary, #666);
}

/* New Schedule Items modal -- compact list rows.
   min-height keeps it from being a sliver; body padding-bottom must clear the
   absolutely-positioned .footer (~59px) so the row content never gets covered. */
.schedule-updates-modal {
    min-height: 240px;
}
.schedule-updates-modal .body {
    padding-bottom: 70px;
}

.schedule-updates-intro {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: var(--text-secondary, #666);
}

.schedule-update-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.6rem 0.25rem;
    border-bottom: 1px solid var(--border-light, #eee);
}

.schedule-update-row:last-child {
    border-bottom: none;
}

.schedule-update-logo {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.9);
    padding: 2px;
}

.schedule-update-main {
    flex: 1 1 auto;
    min-width: 0;
}

.schedule-update-outlet {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-primary, #333);
    line-height: 1.3;
}

.schedule-update-time {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--text-secondary, #666);
}

.schedule-update-tz {
    color: var(--text-muted, #999);
    font-size: 0.78rem;
}

/* Schedule Toolbar Mobile */
@media (max-width: 768px) {
    .schedule-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .schedule-toolbar-left,
    .schedule-toolbar-right {
        width: 100%;
    }

    .schedule-toolbar-right {
        justify-content: center;
    }

    .schedule-toolbar-right .btn-group {
        flex-wrap: wrap;
        justify-content: center;
    }

    .schedule-slideout-panel {
        width: 100%;
        max-width: 100%;
        right: -100%;
    }

    .schedule-contact-popup {
        right: 0.5rem;
        left: 0.5rem;
        width: auto;
    }

    .pin-setup-banner {
        flex-direction: column;
        text-align: center;
    }
}

/* ================================================
   CRM Outlets Modernization (Phases 1+2)
   Created: 2025-12-27
   ================================================ */

/* Breadcrumb Navigation -- SSOT. Canonical class: .bh-breadcrumb (app-wide: CRM + Reports).
   .crm-breadcrumb retained as a legacy alias. See ssot-register.md > "Breadcrumb navigation".
   Shape: <nav class="bh-breadcrumb" aria-label="breadcrumb">
            <span class="breadcrumb-item"><a onclick="...back..."><i class="fa fa-arrow-left mr-1"></i>Back</a></span>
            <span class="breadcrumb-separator">/</span>
            <span class="breadcrumb-item" [id]>Current</span>
          </nav>
   Keep the explicit .breadcrumb-separator span BETWEEN items so Bootstrap's adjacent-sibling
   "::before /" never double-fires. Current crumb reads dark (never gold). Colours are theme tokens. */
.bh-breadcrumb, .crm-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.bh-breadcrumb .breadcrumb-item a, .crm-breadcrumb .breadcrumb-item a {
    color: var(--text-secondary, #666);
    text-decoration: none;
    transition: color 0.2s;
}

.bh-breadcrumb .breadcrumb-item a:hover, .crm-breadcrumb .breadcrumb-item a:hover {
    color: var(--text-primary, #222);
    text-decoration: underline;
}

.bh-breadcrumb .breadcrumb-item, .crm-breadcrumb .breadcrumb-item {
    color: var(--text-primary, #222);
}

/* Current crumb: dark high-contrast, never gold. (Was --brand-accent gold; de-golded for the
   breadcrumb SSOT so every surface matches the CRMOutlets reference and keeps proper contrast.) */
.bh-breadcrumb .breadcrumb-item.is-current, .crm-breadcrumb .breadcrumb-item.is-current {
    color: var(--text-primary, #222);
}

.bh-breadcrumb .breadcrumb-separator, .crm-breadcrumb .breadcrumb-separator {
    color: var(--text-muted, #999);
    font-weight: 300;
}

/* ================================================
   Brand Detail View (Single Page Layout)
   Replaces nested tab navigation
   ================================================ */

.brand-detail-view {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    padding: 1.5rem;
    margin-top: 1rem;
}

/* Outlet detail: flat layout -- header, stats and every accordion share the page width */
.outlet-detail-view {
    margin-top: 1rem;
}

/* Mobile: reduce wasted side-padding so content gets more usable width */
@media (max-width: 768px) {
    .outlet-detail-view {
        margin-top: 0.5rem;
    }
    .outlet-detail-view .brand-header-card {
        padding: 1rem 0.75rem;
        gap: 0.75rem;
    }
    .outlet-detail-view .brand-section-card,
    .outlet-detail-view .crm-section-card {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }
}

/* Brand Header Card */
.brand-header-card {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.5rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 10px;
    margin-bottom: 1.5rem;
}

.brand-header-card .brand-logo {
    width: 80px;
    height: 80px;
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    overflow: hidden;
}

.brand-header-card .brand-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.brand-header-card .brand-logo i {
    color: #ccc;
}

/* Pick-and-go outlet logo: the box is a click/drop target with an inline upload
   progress overlay. Ring states use box-shadow so the layout never shifts. */
.brand-header-card .brand-logo.bh-logo-dropzone { position: relative; cursor: pointer; transition: box-shadow .15s ease, background .15s ease; }
.brand-header-card .brand-logo.bh-logo-dropzone:hover { box-shadow: 0 0 0 2px var(--brand-primary, #3d1a6f); }
.brand-header-card .brand-logo.bh-logo-dropzone:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 2px; }
.brand-header-card .brand-logo.bh-logo-dropzone.is-dragover { background: var(--bg-gold-tint, #fff5dc); box-shadow: 0 0 0 2px var(--brand-accent, #fdb913); }
.bh-logo-upload-progress { position: absolute; left: 6px; right: 6px; bottom: 6px; }
.bh-logo-upload-progress .progress { height: 6px; border-radius: 4px; margin: 0; background: rgba(128,128,128,0.25); }
.bh-logo-upload-progress .progress-bar { background: var(--brand-primary, #3d1a6f); }

.brand-header-card .brand-title {
    flex: 1;
}

.brand-header-card .brand-title h3 {
    margin: 0 0 0.5rem 0;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.5rem;
    font-weight: 600;
}

.brand-header-card .brand-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Status pill and the parent-brand line share one row to keep the header compact. */
.brand-header-card .brand-badge-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}

/* Multi-Parent Display Section (Phase 7) -- inline beside the status pill (no stacked row). */
.brand-parents-section {
    margin-top: 0;
}

.brand-parents-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.brand-parents-list .parents-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-right: 0.25rem;
}

.brand-parents-list .parents-label i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.25rem;
}

.brand-parents-list .parent-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, #f0e8f8 100%);
    border: 1px solid #e0d0f0;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
}

.brand-parents-list .parent-tag a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-weight: 500;
}

.brand-parents-list .parent-tag a:hover {
    text-decoration: underline;
}

.brand-parents-list .parent-tag .btn-link {
    font-size: 0.75rem;
    line-height: 1;
}

.brand-parents-list .parent-tag .badge {
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
}

[data-theme="dark"] .brand-parents-list .parent-tag {
    background: linear-gradient(135deg, var(--bg-gold-tint, #1e1a0e) 0%, #2a1f3a 100%);
    border-color: #3d2a55;
}

.brand-header-card .brand-quick-actions {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

/* Accordion Sections */
.brand-sections {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Outlet accordions rendered outside the detail wrapper keep the same rhythm */
#sectionOutletSyndication,
#sectionOutletContactsWrap {
    margin-top: 0.75rem;
}

.brand-section {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    overflow: hidden;
}

.brand-section > .section-header {
    display: flex;
    align-items: center;
    padding: 1rem 1.25rem;
    background: var(--bg-subtle, #f8f9fa);
    cursor: pointer;
    transition: background 0.2s;
    gap: 0.75rem;
}

.brand-section > .section-header:hover {
    background: var(--bg-muted, #f0f0f0);
}

.brand-section .section-icon {
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
    width: 24px;
    text-align: center;
}

.brand-section .section-title {
    flex: 1;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.brand-section .section-count {
    font-size: 0.8rem;
}

.brand-section .section-toggle {
    color: var(--text-muted, #999);
    transition: transform 0.2s;
}

.brand-section.expanded .section-toggle {
    transform: rotate(180deg);
}

.brand-section .section-content {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--border-default, #e0e0e0);
}

.brand-section .section-toolbar {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    align-items: center;
}

.brand-section .section-toolbar input[type="text"] {
    flex: 1;
    max-width: 300px;
}

/* Loading Placeholder */
.loading-placeholder {
    text-align: center;
    padding: 2rem;
    color: var(--text-muted, #999);
}

.loading-placeholder i {
    margin-right: 0.5rem;
}

/* People Grid (contact cards) */
.people-grid {
    /* Container only -- grid lives on .people-cards-wrapper */
}

.people-cards-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.people-cards-wrapper .crm-contact-card {
    max-width: 380px;
}

.people-cards-wrapper .crm-contact-card .card-header-top {
    justify-content: flex-start;
    gap: 0.7rem;
}
.people-cards-wrapper .crm-contact-card .people-card-headtext { flex: 1; min-width: 0; }

/* =============================================================================
   Report Section Cards (shared component -- import wizards, report designer)
   ============================================================================= */
.report-section-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    margin-bottom: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    transition: all 0.2s ease;
}
.report-section-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}
.report-section-header {
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    padding: 12px 20px;
    border-bottom: 1px solid var(--border-default, #e0e0e0);
    font-weight: 600;
    color: var(--text-primary, #333);
    border-radius: 8px 8px 0 0;
    display: flex;
    align-items: center;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-size: 0.85rem;
}
.report-section-header .section-icon {
    color: var(--brand-primary, #3d1a6f);
    margin-left: auto;
    opacity: 0.6;
}
.report-section-header .section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, white);
    border-radius: 50%;
    font-size: 12px;
    margin-right: 10px;
    flex-shrink: 0;
}
.report-section-body {
    padding: 20px;
}
.report-section-body .form-row {
    margin-bottom: 15px;
}
.report-section-body .form-row:last-child {
    margin-bottom: 0;
}
/* Dark mode */
[data-theme="dark"] .report-section-card {
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
[data-theme="dark"] .report-section-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
[data-theme="dark"] .report-section-header {
    background: var(--bg-subtle, #1a1a1a);
    color: var(--text-primary, #e8e8e8);
}

/* Time Report Section (Activity accordion) */
.time-report-section {
    border-top: 1px solid var(--border-default, #e0e0e0);
    padding-top: 1rem;
    margin-top: 1rem;
}

.time-report-heading {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.75rem;
}

.time-report-heading.collapsible-heading {
    cursor: pointer;
    display: flex;
    align-items: center;
    user-select: none;
}

.time-report-heading.collapsible-heading:hover {
    color: var(--brand-primary, #5a2d9e);
}

.time-report-heading .toggle-chevron {
    font-size: 0.75rem;
    transition: transform 0.2s;
}

.infinite-scroll-container {
    scrollbar-width: thin;
    scrollbar-color: var(--border-strong, #d4c5e6) transparent;
}

.infinite-scroll-container::-webkit-scrollbar {
    width: 6px;
}

.infinite-scroll-container::-webkit-scrollbar-thumb {
    background: var(--border-strong, #d4c5e6);
    border-radius: 3px;
}

.infinite-scroll-container::-webkit-scrollbar-track {
    background: transparent;
}

.time-report-table {
    width: 100%;
    font-size: 0.85rem;
    border-collapse: collapse;
}

.time-report-table th {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    padding: 0.5rem 0.75rem;
    text-align: left;
    border-bottom: 2px solid #d4c5e8;
}

.time-report-table td {
    padding: 0.4rem 0.75rem;
    border-bottom: 1px solid var(--border-light, #eee);
}

.time-report-table tr:hover td {
    background: var(--bg-purple-tint, #faf8fd);
}

.time-report-table .hours-cell {
    font-weight: 600;
    text-align: right;
}

.time-report-table th.hours-cell {
    text-align: right;
}

.time-report-toggle {
    cursor: pointer;
    color: var(--brand-primary, #6c35a5);
    font-size: 0.85rem;
    margin-top: 0.5rem;
    display: inline-block;
}

.time-report-toggle:hover {
    text-decoration: underline;
}

/* Sub-brands Grid */
.sub-brands-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}

/* Conversations Timeline */
.conversations-timeline {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-height: 70vh;
    overflow-y: auto;
}

/* Brand Conversation Items (in brand detail view) */
.brand-conversation-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #eee);
}

.brand-conversation-item .conv-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.brand-conversation-item .conv-type {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

.brand-conversation-item .conv-type i {
    margin-right: 0.35rem;
    color: var(--status-info, #17a2b8);
}

.brand-conversation-item .conv-date {
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
    margin-left: auto;
    white-space: nowrap;
}

.brand-conversation-item .conv-notes {
    margin: 0.5rem 0;
    color: var(--text-primary, #444);
    font-size: 0.9rem;
    white-space: pre-wrap;
}

.brand-conversation-item .conv-meta {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
}

.brand-conversation-item .conv-spoke-to {
    color: var(--status-success, #28a745);
}

.brand-conversation-item .conv-by {
    color: var(--text-secondary, #666);
}

.brand-conversation-item .conv-meta i {
    margin-right: 0.25rem;
}

/* Reception-based border colors for conversations - purple/gold palette */
.brand-conversation-item.reception-hot {
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    padding-left: 0.75rem;
}
.brand-conversation-item.reception-warm {
    border-left: 3px solid var(--brand-accent, #fdb913);
    padding-left: 0.75rem;
}
.brand-conversation-item.reception-lukewarm,
.brand-conversation-item.reception-luke-warm {
    border-left: 3px solid #c9a023;
    padding-left: 0.75rem;
}
.brand-conversation-item.reception-cold {
    border-left: 3px solid #999;
    padding-left: 0.75rem;
}
.brand-conversation-item.reception-ice-cold {
    border-left: 3px solid var(--border-strong, #ccc);
    padding-left: 0.75rem;
}

/* Conversation header with type badge and user */
.brand-conversation-item .conv-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.5rem;
}
.brand-conversation-item .conv-header-left {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}
.brand-conversation-item .conv-header-right {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
    margin-left: auto;
}
.brand-conversation-item .conv-edit-btn,
.brand-conversation-item .conv-delete-btn {
    padding: 0.15rem 0.35rem;
    opacity: 0.4;
    transition: opacity 0.2s;
}
.brand-conversation-item:hover .conv-edit-btn,
.brand-conversation-item:hover .conv-delete-btn {
    opacity: 1;
}
.brand-conversation-item .conv-user {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    white-space: nowrap;
}
.brand-conversation-item .conv-user i {
    color: var(--brand-primary, #3d1a6f);
}

/* Type badges for conversations - no background */
.conv-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
}
.conv-type-badge i {
    margin-right: 0.3rem;
}
.conv-type-badge.badge-phone {
    color: var(--brand-primary, #3d1a6f);
}
.conv-type-badge.badge-email {
    color: var(--brand-primary, #3d1a6f);
}
.conv-type-badge.badge-meeting {
    color: var(--brand-primary, #3d1a6f);
}
.conv-type-badge.badge-note {
    color: var(--brand-primary, #3d1a6f);
}

/* Reception badge small indicator - no background */
.conv-reception-indicator {
    display: inline-flex;
    align-items: center;
    font-size: 0.7rem;
    padding: 0.15rem 0.4rem;
    margin-left: 0.5rem;
    font-weight: 600;
}
.conv-reception-indicator.hot { color: var(--brand-primary, #3d1a6f); font-weight: 700; }
.conv-reception-indicator.warm { color: var(--status-warning-text, #856404); }
.conv-reception-indicator.lukewarm,
.conv-reception-indicator.luke-warm { color: var(--status-warning-text, #8a7030); }
.conv-reception-indicator.cold { color: var(--text-tertiary, #888); }
.conv-reception-indicator.ice-cold { color: var(--text-muted, #aaa); }

/* Spoke to person in conversation */
.brand-conversation-item .conv-spoke-to-line {
    font-size: 0.8rem;
    color: var(--status-success, #28a745);
    margin-top: 0.35rem;
}
.brand-conversation-item .conv-spoke-to-line i {
    margin-right: 0.25rem;
}

/* Document Type Stats Filter Buttons */
.doc-type-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.doc-type-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 20px;
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-primary, #333);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s ease;
}
.doc-type-btn:hover {
    background: var(--bg-muted, #e9ecef);
    border-color: #adb5bd;
}
.doc-type-btn.active {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}
.doc-type-btn .doc-count {
    display: inline-block;
    min-width: 20px;
    padding: 0.1rem 0.4rem;
    border-radius: 10px;
    background: rgba(0,0,0,0.1);
    font-size: 0.75rem;
    font-weight: 600;
    text-align: center;
}
.doc-type-btn.active .doc-count {
    background: rgba(255,255,255,0.2);
}
.doc-type-btn i {
    color: inherit;
}

/* Documents Grid */
.documents-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Document Cards - Mobile layout */
.doc-cards {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.doc-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 6px;
    padding: 0.75rem;
}
.doc-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
}
.doc-card-title {
    font-weight: 500;
    font-size: 0.9rem;
    flex: 1;
    min-width: 0;
    word-break: break-word;
}
.doc-card-action {
    flex-shrink: 0;
}
.doc-card-action .btn {
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.doc-card-meta {
    margin-top: 0.4rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
}

/* Reports Links */
.reports-links {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}

.report-link-card {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border: 1px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
    transition: all 0.2s ease;
}

.report-link-card:hover {
    box-shadow: 0 4px 12px rgba(253, 185, 19, 0.3);
    transform: translateY(-2px);
}

.report-link-card a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-weight: 500;
    display: block;
}

.report-link-card a i {
    display: block;
    font-size: 2rem;
    margin-bottom: 0.5rem;
    color: var(--brand-accent, #fdb913);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .brand-header-card {
        flex-direction: column;
        text-align: center;
    }

    .brand-header-card .brand-logo {
        margin: 0 auto;
    }

    .brand-header-card .brand-quick-actions {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }

    .brand-section .section-toolbar {
        flex-direction: column;
    }

    .brand-section .section-toolbar input[type="text"] {
        max-width: 100%;
        width: 100%;
    }
}

/* =============================================================================
   Brand Identity (CRM Clients -- Phase B, Brand SSOT program 2026-05-20)

   Consolidated logo + 4 colour pickers + brand font + live preview. Lives as the
   first .brand-section accordion card in the brand detail view (same chrome as the
   sibling sections) -- header/toggle/spacing come from the shared .brand-section
   rules above. Save-back via UpdateClientBrand WebMethod (no postback). Source chip
   + per-field labels show which resolver layer provides each value (Client / Tenant
   / Default). Brand palette only; dark-mode via theme-tokens.
   ============================================================================= */

/* Body sits inside .section-content (which already pads) -- no own padding. */
.bh-brand-section-content > .bh-brand-panel-body {
    padding: 0;
}

.bh-brand-panel-body {
    display: flex;
    gap: 1.5rem;
    padding: 1.25rem;
    flex-wrap: wrap;
}

/* Logo column (display only -- upload stays in the brand logo affordance) */
.bh-brand-logo-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.bh-brand-logo-preview {
    width: 80px;
    height: 80px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.bh-brand-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.bh-brand-logo-preview i { color: var(--text-tertiary, #ccc); }

/* Pick-and-go logo: the box itself is a click/drop target. Ring states use
   box-shadow (not border) so they never shift the surrounding layout. */
.bh-brand-logo-dropzone { cursor: pointer; transition: box-shadow .15s ease, background .15s ease; }
.bh-brand-logo-dropzone:hover { box-shadow: 0 0 0 2px var(--brand-primary, #3d1a6f); }
.bh-brand-logo-dropzone:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 2px; }
.bh-brand-logo-dropzone.is-dragover { background: var(--bg-gold-tint, #fff5dc); box-shadow: 0 0 0 2px var(--brand-accent, #fdb913); }

.bh-brand-logo-caption {
    font-size: 0.75rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.bh-brand-controls-col { flex: 1 1 320px; min-width: 0; }

.bh-brand-subhead {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.5rem;
}

.bh-brand-subhead + .bh-brand-colour-row { margin-bottom: 1rem; }

.bh-brand-colour-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.bh-brand-colour { flex: 1 1 140px; min-width: 0; }

.bh-brand-colour label {
    display: block;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-body, #555);
    margin-bottom: 0.3rem;
}

.bh-brand-colour-inputs { display: flex; gap: 0.4rem; align-items: center; }

.bh-brand-colour-swatch {
    width: 42px;
    height: 38px;
    padding: 2px;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    cursor: pointer;
    flex: 0 0 auto;
}

.bh-brand-hex {
    flex: 1 1 0;
    min-width: 80px;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: 0.85rem;
}

/* Per-field source label */
.bh-brand-field-source {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding: 0.05rem 0.4rem;
    border-radius: 8px;
    margin-left: 0.25rem;
    vertical-align: middle;
}

.bh-brand-field-source.is-client {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
}

.bh-brand-field-source.is-tenant {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
}

.bh-brand-field-source.is-default {
    background: var(--bg-subtle, #fafafa);
    color: var(--text-tertiary, #888);
}

/* Typography */
.bh-brand-font-row {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.bh-brand-font-field { flex: 1 1 220px; min-width: 0; }

.bh-brand-font-field label {
    display: block;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-body, #555);
    margin-bottom: 0.3rem;
}

.bh-brand-font-preview {
    flex: 1 1 240px;
    min-width: 0;
    padding: 0.6rem 0.85rem;
    background: var(--bg-subtle, #fafafa);
    border: 1px dashed var(--border-default, #ddd);
    border-radius: 8px;
    font-size: 1.1rem;
    line-height: 1.4;
    color: var(--text-primary, #333);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bh-brand-panel-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.bh-brand-save-msg {
    margin-right: auto;
    font-size: 0.85rem;
    font-weight: 500;
}

[data-theme="dark"] .bh-brand-logo-preview { background: var(--bg-card, #141414); box-shadow: none; }
[data-theme="dark"] .bh-brand-colour-swatch { background: var(--bg-card, #141414); }

@media (max-width: 768px) {
    .bh-brand-panel-body { flex-direction: column; }
    .bh-brand-logo-col { flex-direction: row; align-self: center; }
    .bh-brand-colour { flex: 1 1 calc(50% - 0.5rem); }
    .bh-brand-font-preview { white-space: normal; }
    .bh-brand-panel-actions { flex-wrap: wrap; }
    .bh-brand-panel-actions .btn { flex: 1 1 0; }
    .bh-brand-save-msg { flex: 1 1 100%; margin-right: 0; text-align: center; }
}

/* E-sign expired chip (AM kanban Pending Signature cards). Dark-mode via danger tokens. */
.bh-esign-expired-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 12px;
    background: var(--status-danger-bg, #fff1f3);
    color: var(--status-danger-text, #b91c2c);
    border: 1px solid var(--status-danger-border, #f5c2c7);
}

/* =============================================================================
   KPI Cards -- Canonical, Unified Across Site (2026-05-14)

   Single source of truth for all internal stat/KPI/summary cards. Replaces 6
   separate class systems that did the same job with drifted styles:
     .crm-stat-card  .pipeline-stat-card  .kpi-card  .ra-stat-card
     .bh-eng-summary-tile  .pitch-stat-card

   Canonical class: .bh-kpi  +  container .bh-kpi-row
   Legacy class names retained as ALIASES so existing HTML keeps working.
   Migrating new pages: use .bh-kpi + .bh-kpi-row only.

   Modifiers:
     .bh-kpi--hero   Dashboard / hero treatment (larger value font)
     .bh-kpi--dense  Analytics pages (RA) -- tighter padding

   Palette (border-left colour):
     .primary  .success  .warning  .info  .danger  .secondary  .risk

   Sizing: ~80px tall (down from ~123px) -- George 2026-05-14 ask for shorter
   cards consistent across pages.

   Inner element classes accepted (legacy compat):
     value:  .stat-value | .kpi-value | .bh-kpi-value | .bh-eng-summary-tile-value
     label:  .stat-label | .kpi-label | .bh-kpi-label | .bh-eng-summary-tile-label
     sub:    .stat-sub   | .bh-kpi-sub   | .bh-eng-summary-tile-sub
   New pages: use .bh-kpi-value / .bh-kpi-label / .bh-kpi-sub only.
   ============================================================================= */

/* Clickable / filter-state tiles (EH KPIs triage dashboard 2026-05-18).
   Hover lift + active ring make the tiles read as both pulse-summary AND filter chips.
   Tokens flip light/dark via theme-tokens. */
.bh-kpi[onclick],
.bh-kpi.bh-kpi--clickable {
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.bh-kpi[onclick]:hover,
.bh-kpi.bh-kpi--clickable:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.bh-kpi.is-active {
    box-shadow: 0 0 0 2px var(--brand-primary, #3d1a6f) inset;
}

/* KPIs triage accordion: each engagement = collapsible <details> group.
   Header always visible (aggregate pills show health at a glance); body expands
   on click for the per-story detail. Slate-tint fill + 4px gold left-border
   matches the canonical .profile-card-header.yellow section-header treatment. */
.bh-kpi-engagement-group {
    border: 1px solid var(--border-default, #e6e6e6);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    margin-bottom: 0.5rem;
    background: #fff;
    overflow: hidden;
}
.bh-kpi-engagement-header {
    cursor: pointer;
    padding: 0.55rem 0.9rem;
    background: var(--bg-slate-tint, #f5f3f9);
    list-style: none;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    transition: background 0.12s ease;
}
.bh-kpi-engagement-header::-webkit-details-marker { display: none; }
.bh-kpi-engagement-header::marker { content: ""; }
.bh-kpi-engagement-header:hover {
    background: var(--bg-gold-tint, #fff5dc);
}
.bh-kpi-engagement-header:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: -2px;
}
.bh-kpi-toggle-chevron {
    color: var(--brand-primary, #3d1a6f);
    transition: transform 0.15s ease;
    font-size: 0.8rem;
    width: 0.8rem;
    text-align: center;
}
.bh-kpi-engagement-group[open] .bh-kpi-toggle-chevron {
    transform: rotate(90deg);
}
.bh-kpi-engagement-body {
    background: #fff;
    border-top: 1px solid var(--border-default, #e6e6e6);
}
[data-theme="dark"] .bh-kpi-engagement-group {
    background: var(--bg-card, #1f1a2a);
    border-color: var(--border-default, #3a3344);
}
[data-theme="dark"] .bh-kpi-engagement-header {
    background: var(--bg-slate-tint-2, #2a2333);
}
[data-theme="dark"] .bh-kpi-engagement-header:hover {
    background: var(--bg-gold-tint, #3d2f0a);
}
[data-theme="dark"] .bh-kpi-engagement-body {
    background: var(--bg-card, #1f1a2a);
}
.bh-kpi-group-flex {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.bh-kpi-group-icon {
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.85;
}
.bh-kpi-group-title {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.95rem;
}
.bh-kpi-group-agreement {
    color: var(--text-muted, #6c757d);
    font-size: 0.85rem;
    font-weight: 400;
}
.bh-kpi-group-agreement::before {
    content: "\00b7";
    margin-right: 0.4rem;
    color: var(--text-muted, #6c757d);
}
.bh-kpi-group-count {
    color: var(--text-muted, #6c757d);
    font-size: 0.8rem;
}
.bh-kpi-group-origin {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-muted, #6c757d);
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e6e6e6);
    border-radius: 4px;
    padding: 0.05rem 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.bh-kpi-group-summary {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}
.bh-kpi-group-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.bh-kpi-group-pill.r { background: #fde7ea; color: #b3001b; }
.bh-kpi-group-pill.a { background: #fff4d8; color: #8a5a00; }
.bh-kpi-group-pill.g { background: #def7e1; color: #146c2e; }
.bh-kpi-group-pill.x { background: var(--bg-subtle, #f8f9fa); color: var(--text-muted, #6c757d); border: 1px solid var(--border-default, #e6e6e6); }
.bh-kpi-group-pill.s { background: #e7e2fc; color: var(--brand-primary, #3d1a6f); }
[data-theme="dark"] .bh-kpi-triage-table .bh-kpi-group-row > td {
    background: var(--bg-slate-tint-2, #2a2333);
}
[data-theme="dark"] .bh-kpi-group-pill.r { background: #4a1820; color: #ffb4be; }
[data-theme="dark"] .bh-kpi-group-pill.a { background: #3d2f0a; color: #ffd87a; }
[data-theme="dark"] .bh-kpi-group-pill.g { background: #14391d; color: #92e3a5; }
[data-theme="dark"] .bh-kpi-group-pill.s { background: #312554; color: #cfb8ff; }

/* =============================================================================
   PACK INSPECTOR (2026-07-16) -- platform-admin master catalogue browser
   (Restricted/BuzzHubAdmin.aspx, Journalist Intel > Pack Inspector sub-tab).
   Rail + facet panel + paged grid. KPI strip reuses the canonical .bh-kpi
   cards above -- no card CSS is redefined here. JS module: window.packInspector.
   All colours via var(--token, #fallback) so dark mode holds automatically.
   ============================================================================= */
.pi-rail-title {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 700;
    color: var(--text-secondary, #666666);
    margin: 0 0 .5rem .1rem;
}
.pi-rail-list {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}
.pi-pack-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .5rem .6rem;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    background: var(--bg-surface, #ffffff);
    transition: background .12s ease, border-color .12s ease;
}
.pi-pack-item:hover {
    background: var(--bg-slate-tint, #f1f0f4);
}
.pi-pack-item.active {
    background: var(--bg-gold-tint, #fff5dc);
    border-color: var(--brand-accent, #fdb913);
}
.pi-pack-code {
    flex: none;
    width: 30px;
    height: 22px;
    border-radius: 4px;
    background: var(--bg-slate-tint, #f1f0f4);
    color: var(--text-secondary, #666666);
    font-size: .68rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pi-pack-meta {
    flex: 1;
    min-width: 0;
}
.pi-pack-name {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: var(--text-body, #555555);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pi-pack-sub {
    display: block;
    font-size: .72rem;
    color: var(--text-muted, #6c757d);
}
.pi-pack-dot {
    flex: none;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--border-default, #dddddd);
}
.pi-pack-dot.on {
    background: var(--status-success, #28a745);
}

/* Facet panel -- grouped, clickable pills. Outlet group is capped client-side
   (top ~15 by count + "show more") since a large pack can carry thousands of
   distinct publications; see packInspector.renderFacets(). */
.pi-facet-group {
    display: inline-block;
    vertical-align: top;
    margin: 0 1.25rem .75rem 0;
}
.pi-facet-title {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 700;
    color: var(--text-secondary, #666666);
    margin-bottom: .35rem;
}
.pi-facet-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    max-width: 640px;
}
.pi-facet-pill {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .25rem .6rem;
    border-radius: 999px;
    border: 1px solid var(--border-default, #dddddd);
    background: var(--bg-surface, #ffffff);
    color: var(--text-body, #555555);
    font-size: .75rem;
    font-weight: 500;
    cursor: pointer;
}
.pi-facet-pill:hover {
    border-color: var(--brand-accent, #fdb913);
}
.pi-facet-pill.active {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.pi-facet-cnt {
    font-variant-numeric: tabular-nums;
    opacity: .75;
}
.pi-facet-more {
    font-style: italic;
    color: var(--text-muted, #6c757d);
}

/* Grid rows -- flag stripe on the leading cell + status/flag chips. */
tr.pi-row-warn td:first-child {
    box-shadow: inset 3px 0 0 var(--status-warning, #ffc107);
}
tr.pi-row-crit td:first-child {
    box-shadow: inset 3px 0 0 var(--status-danger, #dc3545);
}
tr.pi-row-retired {
    opacity: .55;
}
.pi-cell-name {
    font-weight: 600;
    color: var(--text-body, #555555);
}
.pi-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}
.pi-chip-good {
    color: var(--status-success-text, #155724);
    background: var(--status-success-bg, #d4edda);
    border: 1px solid var(--status-success-border, #c3e6cb);
}
.pi-chip-warn {
    color: var(--status-warning-text, #856404);
    background: var(--status-warning-bg, #fff3cd);
    border: 1px solid var(--status-warning-border, #ffeeba);
}
.pi-chip-crit {
    color: var(--status-danger-text, #721c24);
    background: var(--status-danger-bg, #f8d7da);
    border: 1px solid var(--status-danger-border, #f5c6cb);
}
.pi-chip-neutral {
    color: var(--text-secondary, #666666);
    background: var(--bg-slate-tint, #f1f0f4);
    border: 1px solid var(--border-default, #dddddd);
}
.pi-chip-accent {
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-gold-tint, #fff5dc);
    border: 1px solid var(--brand-accent, #fdb913);
}
.pi-editbtn {
    padding: .25rem .5rem;
}

/* Density: Compact (table.pi-compact, toggled by the toolbar density buttons --
   no reload, display-only). */
table.pi-compact tbody td {
    padding: .3rem .6rem;
    font-size: .8rem;
}
table.pi-compact thead th {
    padding: .35rem .6rem;
}
table.pi-compact .pi-chip {
    padding: .1rem .4rem;
    font-size: .68rem;
}

/* Toolbar tab/density button active state (Bootstrap .btn base already themed). */
#piToolbar .btn.active {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-color: var(--brand-primary, #3d1a6f);
}

/* Select-all-matching banner (Task 7) -- sits above the grid, between the facet
   panel and #piScroll. Shown when every currently-loaded row is selected (and
   more exist beyond what has loaded) or when a "select all N matching" is
   already active. */
.pi-selbanner {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem .75rem;
    margin-bottom: .5rem;
    border-radius: 8px;
    background: var(--bg-gold-tint, #fff5dc);
    border: 1px solid var(--brand-accent, #fdb913);
    color: var(--text-body, #555555);
    font-size: .82rem;
}

/* Sticky bulk action bar (Task 7) -- mirrors the .cm-bulkbar sticky-bottom
   convention (CoverageManager). Hidden until packInspector.renderSelBar()
   finds a non-zero selection count. */
.pi-selbar {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: none;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: .5rem;
    padding: .55rem .75rem;
    background: var(--bg-purple-tint, #f0ebf7);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 9px;
    box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.08);
}
.pi-selbar-count {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    font-variant-numeric: tabular-nums;
}
.pi-selbar-actions {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}
.pi-selbar .btn-link {
    margin-left: auto;
    color: var(--brand-primary, #3d1a6f);
}
/* No [data-theme="dark"] overrides needed here: --bg-gold-tint / --bg-purple-tint /
   --text-body / --brand-primary / --brand-accent are all redefined for dark mode
   in theme-tokens.css, so the var(--token, #fallback) references above flip
   automatically (same approach as the rest of this Pack Inspector CSS block --
   see Task 3 report). */

/* =============================================================================
   E-SIGN STATUS CARD (AccountManagement -- agreement modal step 5)
   Lifecycle tracker: Recipient strip + 4-step horizontal stepper + action row.
   Tokens flip light/dark automatically via theme-tokens.css.
   ============================================================================= */
.bh-esign-state-badge {
    font-size: .8rem;
    padding: .35rem .6rem;
}
.bh-esign-body {
    padding: 1.1rem 1.1rem .9rem;
}

/* Documents row -- quiet reference chips above the action grid. Separated from
   the destructive/lifecycle action row by a hairline divider so "view files"
   and "do things" don't visually compete. */
.bh-esign-docs {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    padding: .6rem 0 .9rem;
    border-bottom: 1px solid var(--border-light, #e6e6e6);
    margin-bottom: .9rem;
}
.bh-esign-docs-label {
    font-size: .7rem;
    font-weight: 600;
    color: var(--text-muted, #6c757d);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-right: .25rem;
}
.bh-esign-doc-chip {
    display: inline-flex;
    align-items: center;
    padding: .3rem .75rem;
    background: var(--bg-subtle, #f8f7fa);
    border: 1px solid var(--border-default, #e6e6e6);
    border-radius: 999px;
    color: var(--brand-primary, #3d1a6f);
    font-size: .85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.bh-esign-doc-chip:hover {
    background: var(--bg-gold-tint, #fff5dc);
    border-color: var(--brand-accent, #fdb913);
}
.bh-esign-doc-chip:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}

/* Recipient strip */
.bh-esign-recipient {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .75rem .9rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    margin-bottom: 1.4rem;
}
.bh-esign-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-primary, #3d1a6f) 0%, #5a2d82 100%);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 5px rgba(61, 26, 111, 0.18);
}
.bh-esign-recipient-text { flex: 1 1 auto; min-width: 0; }
.bh-esign-recipient-name {
    font-weight: 700;
    color: var(--text-body);
    font-size: .95rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-esign-recipient-meta {
    font-size: .8rem;
    color: var(--text-muted, #6c757d);
    margin-top: .1rem;
}
.bh-esign-recipient-meta i { color: var(--brand-primary, #3d1a6f); }
.bh-esign-expires {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-accent, #fdb913);
    border-radius: 999px;
    padding: .25rem .7rem;
    font-size: .75rem;
    font-weight: 600;
    white-space: nowrap;
    flex: 0 0 auto;
}

/* Lifecycle stepper */
.bh-esign-stepper {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: .5rem 0 1.3rem;
    padding: 0 .25rem;
}
.bh-esign-stepper-track,
.bh-esign-stepper-fill {
    position: absolute;
    top: 20px;
    height: 3px;
    border-radius: 2px;
}
.bh-esign-stepper-track {
    left: 8%;
    right: 8%;
    background: var(--border-default, #e6e6e6);
    z-index: 0;
}
.bh-esign-stepper-fill {
    left: 8%;
    background: linear-gradient(90deg, var(--brand-primary, #3d1a6f), var(--brand-accent, #fdb913));
    z-index: 1;
    width: 0;
    transition: width .35s ease;
}
.bh-esign-step {
    position: relative;
    z-index: 2;
    flex: 1 1 0;
    text-align: center;
    min-width: 0;
}
.bh-esign-step-dot {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid var(--border-default, #e6e6e6);
    background: var(--bg-surface, #fff);
    color: var(--text-muted, #6c757d);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: all .25s ease;
}
.bh-esign-step.is-done .bh-esign-step-dot {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    box-shadow: 0 2px 6px rgba(61, 26, 111, 0.25);
}
.bh-esign-step.is-current .bh-esign-step-dot {
    border-color: var(--brand-accent, #fdb913);
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 5px rgba(253, 185, 19, 0.22), 0 2px 6px rgba(61, 26, 111, 0.15);
    animation: bhEsignPulse 2s ease-in-out infinite;
}
@keyframes bhEsignPulse {
    0%, 100% { box-shadow: 0 0 0 5px rgba(253, 185, 19, 0.22), 0 2px 6px rgba(61, 26, 111, 0.15); }
    50%      { box-shadow: 0 0 0 9px rgba(253, 185, 19, 0.10), 0 2px 6px rgba(61, 26, 111, 0.15); }
}
.bh-esign-step.is-final .bh-esign-step-dot {
    border-color: #28a745;
    background: #28a745;
    color: #fff;
    box-shadow: 0 2px 6px rgba(40, 167, 69, 0.3);
}
.bh-esign-step-label {
    margin-top: .55rem;
    font-size: .72rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.bh-esign-step-stamp {
    font-size: .72rem;
    color: var(--text-muted, #6c757d);
    margin-top: .15rem;
}
.bh-esign-step.is-pending .bh-esign-step-label,
.bh-esign-step.is-pending .bh-esign-step-stamp {
    color: var(--text-muted, #6c757d);
    font-weight: 500;
}
.bh-esign-step.is-done .bh-esign-step-stamp,
.bh-esign-step.is-final .bh-esign-step-stamp {
    color: var(--text-body);
    font-weight: 600;
}

/* Expired banner */
.bh-esign-expired-banner {
    background: linear-gradient(135deg, #fff1f3 0%, #ffe6ea 100%);
    color: #b91c2c;
    border: 1px solid #f5c2c7;
    border-left: 4px solid #ed174c;
    border-radius: 8px;
    padding: .65rem .9rem;
    font-size: .85rem;
    font-weight: 500;
    margin-bottom: 1rem;
}

/* Action row */
.bh-esign-actions {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: .55rem;
}
.bh-esign-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .65rem .9rem;
    font-size: .85rem;
    font-weight: 600;
    border-radius: 7px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all .15s ease;
    background: var(--bg-surface, #fff);
}
.bh-esign-action--primary {
    background: linear-gradient(135deg, var(--brand-primary, #3d1a6f) 0%, #5a2d82 100%);
    color: #fff;
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 2px 5px rgba(61, 26, 111, 0.2);
}
.bh-esign-action--primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(61, 26, 111, 0.3);
    background: linear-gradient(135deg, #4a2185 0%, #6a3895 100%);
}
.bh-esign-action--success {
    color: #1a7c3a;
    border-color: #b7e4c3;
    background: var(--bg-surface, #fff);
}
.bh-esign-action--success:hover {
    background: #e9f7ee;
    border-color: #28a745;
}
.bh-esign-action--danger {
    color: #b91c2c;
    border-color: #f5c2c7;
    background: var(--bg-surface, #fff);
}
.bh-esign-action--danger:hover {
    background: #fff1f3;
    border-color: #ed174c;
}
.bh-esign-action--neutral {
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--border-default, #ced4da);
    background: var(--bg-surface, #fff);
}
.bh-esign-action--neutral:hover {
    background: var(--bg-subtle, #f8f9fa);
    border-color: var(--brand-primary, #3d1a6f);
}
.bh-esign-action:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 2px;
}
/* Gated state (updateAgreementButtonStates). Buttons stay clickable on purpose --
   the click explains what is missing via toast -- but must READ as unavailable:
   dimmed, no hover lift, not-allowed cursor. */
.bh-esign-action.disabled {
    opacity: .65;
    cursor: not-allowed;
}
.bh-esign-action.disabled:hover {
    transform: none;
    box-shadow: none;
}

/* =============================================================================
   E-SIGN COMPOSE MODAL (AccountManagement -- "Send for E-Signature")
   Gmail/Outlook compose pattern: linear To / Cc / Subject rows, divider, RTE body.
   ============================================================================= */
.bh-esign-compose {
    padding: 0;
    background: var(--bg-surface, #fff);
}
.bh-esign-compose-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: .65rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-default, #e6e6e6);
    flex-wrap: wrap;
}
.bh-esign-compose-note {
    font-size: .8rem;
    color: var(--text-muted, #6c757d);
}
.bh-esign-compose-note i { color: var(--brand-primary, #3d1a6f); }
.bh-esign-compose-expiry { white-space: nowrap; font-size: .75rem; display: inline-flex; align-items: center; gap: .25rem; color: var(--text-muted, #6c757d); }
.bh-esign-compose-expiry i { color: var(--brand-primary, #3d1a6f); }
.bh-esign-expiry-select {
    font-size: .75rem;
    padding: .1rem .4rem;
    border: 1px solid var(--border-default, #e6e6e6);
    border-radius: 4px;
    background: var(--bg-surface, #fff);
    color: var(--text-default, #333);
}

.bh-compose-rows { padding: 0; }
.bh-compose-row {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .45rem 1rem;
    border-bottom: 1px solid var(--border-subtle, #f0eef5);
    background: var(--bg-surface, #fff);
}
.bh-compose-row:hover { background: var(--bg-subtle, #fafafa); }
.bh-compose-label {
    flex: 0 0 72px;
    margin: 0;
    font-size: .8rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.bh-compose-input {
    flex: 1 1 auto;
    border: none;
    background: transparent;
    padding: .25rem 0;
    font-size: .9rem;
    color: var(--text-body);
    outline: none;
    min-width: 0;
}
.bh-compose-input:focus { background: transparent; }
.bh-compose-input::placeholder {
    color: var(--text-muted, #adb5bd);
    font-weight: 300;
    font-style: italic;
}
.bh-compose-pair {
    flex: 1 1 auto;
    display: flex;
    gap: .75rem;
    min-width: 0;
}
.bh-compose-pair .bh-compose-input { flex: 1 1 50%; }
.bh-compose-input-name { font-weight: 500; }
.bh-compose-input-subject { font-weight: 600; font-size: .95rem; }

/* Bordered "email" card containing toolbar + body. Sits inside the modal's
   .body with margin, so the recipient-facing message reads as a discrete
   surface (the email being composed) not as flush modal content. */
.bh-compose-message {
    margin: .75rem 1rem 1rem;
    border: 1px solid var(--border-default, #d6d3dc);
    border-radius: 8px;
    background: var(--bg-surface, #fff);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.bh-compose-toolbar {
    display: flex;
    align-items: center;
    gap: .15rem;
    padding: .4rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-default, #e6e6e6);
    flex-wrap: wrap;
}
.bh-compose-tool {
    width: 30px; height: 30px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-body);
    border-radius: 4px;
    cursor: pointer;
    transition: all .12s;
}
.bh-compose-tool:hover {
    background: var(--bg-surface, #fff);
    border-color: var(--border-default, #ced4da);
    color: var(--brand-primary, #3d1a6f);
}
.bh-compose-tool-sep {
    width: 1px; height: 18px;
    background: var(--border-default, #ced4da);
    margin: 0 .35rem;
}
.bh-compose-tool-hint {
    margin-left: auto;
    font-size: .7rem;
    color: var(--text-muted, #6c757d);
    font-style: italic;
}

.bh-compose-body {
    padding: 1rem 1.25rem;
    min-height: 240px;
    /* Email "paper" -- the preview renders the actual email, which is a light artifact.
       Force white + dark text in BOTH themes (like Gmail/Outlook showing an HTML email
       on white in dark mode) so the dark app surface never washes out the #333 content. */
    background: #ffffff;
    color: #333333;
    outline: none;
    font-size: .9rem;
    line-height: 1.55;
}
.bh-compose-body:empty::before {
    content: attr(data-placeholder);
    color: var(--text-muted, #adb5bd);
    font-style: italic;
}
.bh-compose-body:focus { outline: none; }

/* E-Sign message lock -- padlock gates editing. Locked (default) = clean read-only
   preview so the in-email Sign Agreement button reads as inert and never competes
   with the modal's own Send action. Unlocked = only .bh-esign-editable regions become
   editable; the CTA, {url} block and footer stay fixed chrome. */
.bh-compose-lockbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .4rem .7rem .4rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-default, #e6e6e6);
}
.bh-compose-lockbar-label {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--brand-primary, #3d1a6f);
}
.bh-compose-lockbar-label i { color: var(--brand-primary, #3d1a6f); }

.bh-esign-lock {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    border: 1px solid var(--brand-accent, #fdb913);
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--text-body, #333);
    border-radius: 999px;
    padding: .2rem .7rem;
    font-size: .72rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .12s ease;
}
.bh-esign-lock i { color: var(--brand-accent, #fdb913); }
.bh-esign-lock:hover { filter: brightness(1.03); }
.bh-esign-lock:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 2px; }

/* Unlocked: editing -- purple-tinted pill (gold icon stays as the accent thread) */
#esignMessageCard.is-unlocked .bh-esign-lock {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
}

/* Locked: dim the formatting toolbar so it reads as inactive */
#esignMessageCard.is-locked .bh-compose-toolbar {
    opacity: .45;
    pointer-events: none;
}

/* Editable regions: no outline while locked (clean preview). On unlock each editable
   block lights up with a dashed gold outline so the user sees exactly what they can
   change -- the CTA/link/footer carry no outline and stay fixed. Outline-only (no bg
   swap) keeps it legible in dark mode. */
#esignMessageCard.is-unlocked .bh-esign-editable {
    outline: 1px dashed var(--brand-accent, #fdb913);
    outline-offset: 2px;
    border-radius: 3px;
    cursor: text;
}
#esignMessageCard.is-unlocked .bh-esign-editable:focus {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 2px;
}

/* Locked overlay -- the loud, discoverable affordance. Translucent light wash so the
   email stays readable underneath; big centred padlock makes "click to edit" unmissable.
   Sits over the message body only (toolbar/lockbar stay clear). Shown only while locked;
   the header pill becomes the re-lock control when unlocked. */
.bh-compose-body-wrap { position: relative; }
.bh-esign-lock-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border: 0;
    background: rgba(240, 240, 242, 0.55);
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    transition: background .12s ease;
}
.bh-esign-lock-overlay i { font-size: 2.25rem; opacity: .8; }
.bh-esign-lock-overlay span { font-size: .85rem; font-weight: 600; }
.bh-esign-lock-overlay:hover { background: rgba(240, 240, 242, 0.72); }
.bh-esign-lock-overlay:hover i { opacity: 1; }
.bh-esign-lock-overlay:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: -3px; }

/* State wiring: overlay only when locked, header re-lock pill only when unlocked. */
#esignMessageCard.is-unlocked .bh-esign-lock-overlay { display: none; }
#esignMessageCard.is-locked .bh-esign-lock { display: none; }

@media (max-width: 768px) {
    .bh-compose-label { flex: 0 0 56px; font-size: .7rem; }
    .bh-compose-pair { flex-direction: column; gap: .25rem; }
    .bh-compose-tool-hint { display: none; }
    .bh-esign-lock-overlay i { font-size: 1.9rem; }
}

/* Agreement Actions header variant -- inline 3-action row alongside the title.
   Title sits left, action grid right; the whole card-header becomes one cohesive bar. */
.bh-agr-actions-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.bh-agr-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    flex: 1 1 auto;
    max-width: 720px;
}
@media (max-width: 768px) {
    .bh-agr-actions { grid-template-columns: 1fr; max-width: 100%; }
    .bh-agr-actions-header { flex-direction: column; align-items: stretch; }
}

/* Compact density at narrow widths */
@media (max-width: 768px) {
    .bh-esign-recipient { flex-wrap: wrap; }
    .bh-esign-expires { order: 3; margin-left: 0; margin-top: .35rem; }
    .bh-esign-actions { grid-template-columns: 1fr; }
    .bh-esign-step-label { font-size: .65rem; }
    .bh-esign-step-stamp { font-size: .65rem; }
}

/* Container row */
.bh-kpi-row,
.crm-stats,
.pipeline-stats,
.bh-eng-summary-row,
.pitch-stats {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    position: relative;
    padding: 0.25rem;
}

/* -----------------------------------------------------------------------------
   Dismissable stats bar -- CANONICAL (2026-07-20)

   Opt in with data-bh-stats-bar="<name>" on the row; JScript/bh-stats-bar.js
   builds the dismiss button and the collapsed strip and persists the state in
   the user preference store. Pages MUST NOT hand-write this chrome.

   Replaced fourteen page-local copies built on .stats-dismiss-btn /
   .crm-stats-dismiss-btn / .blocked-stats-dismiss-btn and the four collapsed
   variants (.stats-bar-collapsed / .crm-stats-collapsed / .pitch-stats-collapsed
   / .coverage-stats-collapsed). All consumers migrated and all eight legacy blocks
   DELETED 2026-07-20 -- including the two duplicate-and-conflicting definitions of
   .stats-dismiss-btn and .crm-stats-collapsed. See ssot-register.md "Stats bar".

   The row already establishes a positioning context above, so the button anchors
   to the row without pages needing their own position:relative wrapper (the bug
   the legacy duplicate-definition pair caused).
   ----------------------------------------------------------------------------- */
.bh-stats-dismiss {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    background: transparent;
    border: none;
    color: var(--text-muted, #999);
    font-size: 0.9rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.25rem 0.4rem;
    border-radius: 4px;
    transition: background 0.15s, color 0.15s;
}
.bh-stats-dismiss:hover {
    background: var(--bg-subtle, #f5f5f5);
    color: var(--text-secondary, #666);
}
.bh-stats-dismiss:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}

.bh-kpi-row.bh-stats-hidden,
.crm-stats.bh-stats-hidden,
.pipeline-stats.bh-stats-hidden,
.bh-eng-summary-row.bh-stats-hidden,
.pitch-stats.bh-stats-hidden,
.ra-stats-bar.bh-stats-hidden,
.bh-stats-hidden {
    display: none !important;
}

.bh-stats-collapsed {
    display: none;
    margin-bottom: 1rem;
    text-align: right;
}
.bh-stats-collapsed.is-visible {
    display: block;
}
.bh-stats-collapsed a {
    color: var(--text-secondary, #666);
    text-decoration: none;
    font-size: 0.85rem;
}
.bh-stats-collapsed a:hover {
    color: var(--brand-primary, #3d1a6f);
}
.bh-stats-collapsed a i {
    margin-right: 0.3rem;
}

/* Allow dynamic containers to participate in parent flexbox */
.d-contents {
    display: contents;
}

/* Base card */
.bh-kpi,
.crm-stat-card,
.pipeline-stat-card,
.kpi-card,
.ra-stat-card,
.bh-eng-summary-tile,
.pitch-stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 0.55rem 1.1rem;
    flex: 1;
    min-width: 120px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    text-align: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

/* Hero modifier (Dashboard) -- larger numbers, more breathing room */
.bh-kpi--hero,
.kpi-card {
    padding: 0.85rem 1.25rem;
    min-height: 95px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Dense modifier (analytics) */
.bh-kpi--dense {
    padding: 0.4rem 0.75rem;
}

/* Hover treatment for interactive cards */
.bh-kpi.clickable:hover,
.bh-kpi-clickable:hover,
.crm-stat-card.crm-stat-card-clickable:hover,
.kpi-card.kpi-clickable:hover,
.kpi-card:hover,
.crm-stat-card[onclick]:hover,
.pipeline-stat-card[onclick]:hover,
.ra-stat-card[onclick]:hover,
.bh-eng-summary-tile[onclick]:hover,
.pitch-stat-card[onclick]:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}

/* Palette (border-left colour) -- canonical + legacy aliases */
.bh-kpi.primary,
.crm-stat-card.primary,
.pipeline-stat-card.primary,
.kpi-card.primary,
.ra-stat-card.primary,
.pitch-stat-card.primary { border-left-color: var(--brand-primary, #3d1a6f); }

.bh-kpi.success,
.crm-stat-card.success,
.pipeline-stat-card.success,
.kpi-card.success,
.ra-stat-card.success,
.pitch-stat-card.success { border-left-color: var(--status-success, #28a745); }

.bh-kpi.warning,
.crm-stat-card.warning,
.pipeline-stat-card.warning,
.kpi-card.warning,
.ra-stat-card.warning,
.pitch-stat-card.warning { border-left-color: var(--brand-accent, #fdb913); }

.bh-kpi.info,
.crm-stat-card.info,
.pipeline-stat-card.info,
.ra-stat-card.info,
.pitch-stat-card.info { border-left-color: var(--status-info, #17a2b8); }

.bh-kpi.danger,
.crm-stat-card.danger,
.pipeline-stat-card.danger,
.kpi-card.danger,
.ra-stat-card.danger,
.pitch-stat-card.danger { border-left-color: var(--brand-danger, #ed174c); }

.bh-kpi.secondary,
.crm-stat-card.secondary,
.ra-stat-card.secondary { border-left-color: var(--text-secondary, #666); }

/* DP-specific risk modifier (at-risk KPIs) */
.bh-kpi.risk,
.crm-stat-card.risk { border-left-color: var(--status-warning-alt, #f59e0b); }

/* Inbox/talent variant (Talent page Mentioned card) */
.crm-stat-card.inbox-stat { border-left-color: var(--accent-purple, #6f42c1); }

.crm-stats-divider {
    width: 1px;
    background: var(--bg-muted, #ddd);
    align-self: stretch;
    margin: 0.5rem 0;
}

/* Inner: value (the big number) */
.bh-kpi .stat-value,
.bh-kpi .bh-kpi-value,
.bh-kpi .kpi-value,
.crm-stat-card .stat-value,
.pipeline-stat-card .stat-value,
.kpi-card .kpi-value,
.ra-stat-card .stat-value,
.bh-eng-summary-tile-value,
.pitch-stat-card .stat-value {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    line-height: 1.2;
}

/* Hero: bigger value */
.bh-kpi--hero .stat-value,
.bh-kpi--hero .bh-kpi-value,
.bh-kpi--hero .kpi-value,
.kpi-card .kpi-value {
    font-size: 2rem;
    line-height: 1.1;
}

/* Dense: smaller value */
.bh-kpi--dense .stat-value,
.bh-kpi--dense .bh-kpi-value {
    font-size: 1.15rem;
}

/* Inner: label */
.bh-kpi .stat-label,
.bh-kpi .bh-kpi-label,
.bh-kpi .kpi-label,
.crm-stat-card .stat-label,
.pipeline-stat-card .stat-label,
.kpi-card .kpi-label,
.ra-stat-card .stat-label,
.bh-eng-summary-tile-label,
.pitch-stat-card .stat-label {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    margin-top: 0.15rem;
}

/* Pipeline / RA / pitch / Dashboard kept their uppercase label convention */
.pipeline-stat-card .stat-label,
.ra-stat-card .stat-label,
.pitch-stat-card .stat-label,
.kpi-card .kpi-label {
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Inner: sub (small caption) */
.bh-kpi .stat-sub,
.bh-kpi .bh-kpi-sub,
.crm-stat-card .stat-sub,
.bh-eng-summary-tile-sub {
    font-size: 0.7rem;
    color: var(--text-tertiary, #888);
    margin-top: 0.1rem;
}

/* Inner: live-state status line (dot + text) -- canonical dot pattern shared by the
   Default dashboard System Status tile and the Mail Dashboard Sending Status /
   Reputation tiles. Promoted here from a Default.aspx page-local block 2026-07-03.
   Dot colour = state; tile palette class supplies the matching left border. */
.system-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.system-status .status-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--status-success, #28a745);
}
.system-status .status-dot.warning { background: var(--brand-accent, #fdb913); }
.system-status .status-dot.danger { background: var(--brand-danger, #ed174c); }
.system-status .status-dot.muted { background: var(--text-tertiary, #888); }

/* Engagement summary tile -- subtle muted background variant (kept for visual
   continuity with the Engagement page; opt-in via .bh-kpi--muted on bh-kpi). */
.bh-kpi--muted,
.bh-eng-summary-tile {
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-default, #ddd);
    border-left-width: 4px;
}

/* CRM Stats Bar Container */
.crm-stats-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border-radius: 12px;
    position: relative;
}

/* Loading Overlay for AJAX operations */
.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--loader-overlay-bg, rgba(255, 255, 255, 0.8));
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1020;
    border-radius: inherit;
}

.loading-overlay .loading-spinner {
    color: var(--brand-primary, #3d1a6f);
}

/* Contact Cards Grid */
.contact-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}

.contact-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

.contact-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

.contact-card .contact-card-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border-bottom: 1px solid var(--border-light, #eee);
}

.contact-card .contact-card-header .contact-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.contact-card .contact-card-header .contact-info {
    flex: 1;
}

.contact-card .contact-card-header .contact-name {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.contact-card .contact-card-header .contact-position {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.contact-card .contact-card-header .contact-actions {
    display: flex;
    gap: 0.5rem;
}

.contact-card-body {
    padding: 1rem;
}

.contact-card-body .contact-detail {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    color: var(--text-body, #555);
}

.contact-card-body .contact-detail i {
    color: var(--text-muted, #999);
    width: 16px;
}

.contact-card-body .contact-detail a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

.contact-card-body .contact-detail a:hover {
    text-decoration: underline;
}

/* Sub-brand list styles */
.sub-brand-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sub-brand-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.sub-brand-item:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.sub-brand-logo {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 8px;
    background: var(--bg-page, #f5f5f5);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.sub-brand-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.sub-brand-logo i {
    font-size: 1.5rem;
    color: var(--text-muted, #999);
}

.sub-brand-info {
    flex: 1;
    /* min-width:0 lets this flex item shrink below its content's min size so the
       trailing action button stays inside the card (default min-width:auto would
       force the row wider than the card and clip/detach the action). */
    min-width: 0;
}

.sub-brand-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sub-brand-meta {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
    min-width: 0;
    overflow: hidden;
}

/* Numeric count chips keep their full size; the identity chip (brand manager)
   absorbs the slack and truncates so the meta row never overflows the card. */
.sub-brand-meta .sub-brand-stat {
    flex: 0 0 auto;
}

.sub-brand-meta .sub-brand-stat--text {
    display: inline-block;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.4;
}

/* ========================================
   Expandable Sub-Brand Cards
   ======================================== */

/* Override base sub-brand-item for expandable version */
.sub-brand-item.sub-brand-expandable {
    display: flex;
    flex-direction: column;
    /* Base .sub-brand-item sets align-items:center (for the simple horizontal
       variant). In this column layout that lets the header-row size to its
       max-content and overflow the card, clipping the trailing action button.
       Stretch makes the row (and expand-content) fill the card width instead. */
    align-items: stretch;
    padding: 0;
    cursor: default;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.sub-brand-item.sub-brand-expandable:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.sub-brand-item.sub-brand-expandable.expanded {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 4px 16px rgba(61, 26, 111, 0.15);
}

/* Header row - clickable area */
.sub-brand-header-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border-radius: 8px;
    /* Conform to the card width: as a flex item in the column-direction card,
       the row's default min-width:auto would let it balloon to its content's
       min-content width and overflow the card, clipping the trailing action. */
    min-width: 0;
}

.sub-brand-header-row:hover {
    background-color: var(--bg-subtle, #f8f9fa);
}

.sub-brand-expandable.expanded .sub-brand-header-row {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border-bottom: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px 8px 0 0;
}

/* Expand indicator with chevron */
.sub-brand-expand-indicator {
    width: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sub-brand-chevron {
    font-size: 0.875rem;
    color: var(--text-secondary, #666);
    transition: transform 0.2s ease;
}

.sub-brand-expandable.expanded .sub-brand-chevron {
    transform: rotate(90deg);
    color: var(--brand-primary, #3d1a6f);
}

/* Stat badges in meta row */
.sub-brand-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    background: var(--bg-page, #f5f5f5);
    padding: 0.15rem 0.5rem;
    border-radius: 12px;
}

.sub-brand-stat i {
    font-size: 0.7rem;
    opacity: 0.7;
}

/* Header actions (external link button) */
.sub-brand-header-actions {
    margin-left: auto;
}

.sub-brand-header-actions .btn {
    opacity: 0.6;
    transition: opacity 0.15s ease;
}

.sub-brand-header-row:hover .sub-brand-header-actions .btn,
.sub-brand-header-actions .btn:focus {
    opacity: 1;
}

/* Expandable content area */
.sub-brand-expand-content {
    background: var(--bg-subtle, #fcfcfc);
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}

.sub-brand-expand-loading,
.sub-brand-expand-error {
    padding: 2rem;
    text-align: center;
    color: var(--text-secondary, #666);
}

.sub-brand-expand-error {
    color: var(--status-danger, #dc3545);
}

/* Inline content container */
.sub-brand-inline-content {
    padding: 0;
}

/* Inline toolbar */
.sub-brand-inline-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: var(--bg-surface, #fff);
    border-bottom: 1px solid var(--border-light, #eee);
}

.sub-brand-inline-toolbar .toolbar-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    font-weight: 500;
}

.sub-brand-inline-toolbar .toolbar-label i {
    margin-right: 0.25rem;
}

.sub-brand-inline-toolbar .toolbar-actions {
    display: flex;
    gap: 0.5rem;
}

/* No contacts state */
.sub-brand-no-contacts {
    padding: 2rem;
    text-align: center;
    color: var(--text-secondary, #666);
}

.sub-brand-no-contacts i {
    display: block;
    margin-bottom: 0.75rem;
}

.sub-brand-no-contacts p {
    margin-bottom: 1rem;
    color: var(--text-muted, #999);
}

/* Contact list inside expanded sub-brand */
.sub-brand-contacts-list {
    padding: 0.5rem 0;
}

/* Individual contact row */
.sub-brand-contact-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    transition: background-color 0.15s ease;
}

.sub-brand-contact-row:last-child {
    border-bottom: none;
}

.sub-brand-contact-row:hover {
    background-color: var(--bg-surface, #fff);
}

/* Status-based left border for contact rows */
.sub-brand-contact-row.status-active {
    border-left: 3px solid var(--status-success, #28a745);
}

.sub-brand-contact-row.status-bounced {
    border-left: 3px solid var(--status-danger, #dc3545);
    background-color: var(--bg-danger-subtle, #fff8f8);
}

/* EDM-off is a preference, not a fault -- quiet grey accent + an "EDM off" label, no fill.
   Matches the People-card treatment; bounced keeps its danger tint above. */
.sub-brand-contact-row.status-unsubscribed {
    border-left: 3px solid var(--text-secondary, #6c757d);
}

/* Contact row main content */
.contact-row-main {
    flex: 1;
    min-width: 0;
}

.contact-row-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.contact-row-position {
    font-weight: 400;
    color: var(--text-tertiary, #888);
    font-size: 0.85rem;
}

.contact-row-position::before {
    content: "\00B7";
    margin-right: 0.5rem;
}

/* Contact status icons */
.contact-status-icon {
    font-size: 0.75rem;
}

.contact-status-icon.bounced {
    color: var(--status-danger, #dc3545);
}

.contact-status-icon.unsubscribed {
    color: var(--text-secondary, #666);
}

/* Contact details row */
.contact-row-details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.contact-detail-item {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.contact-detail-item i {
    font-size: 0.7rem;
    color: var(--text-muted, #999);
}

/* Engagement column */
.contact-row-engagement {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
    min-width: 80px;
}

.engagement-badge {
    background: #e3f2fd;
    color: #1976d2;
    padding: 0.15rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.engagement-badge i {
    font-size: 0.65rem;
}

.engagement-date {
    font-size: 0.7rem;
    color: var(--text-muted, #999);
}


/* Responsive adjustments for sub-brand expandable */
@media (max-width: 768px) {
    .sub-brand-header-row {
        flex-wrap: wrap;
    }

    .sub-brand-info {
        flex-basis: calc(100% - 80px);
    }

    .sub-brand-header-actions {
        margin-left: 0;
        margin-top: 0.5rem;
        flex-basis: 100%;
        text-align: right;
    }

    .sub-brand-contact-row {
        flex-wrap: wrap;
    }

    .contact-row-main {
        flex-basis: 100%;
    }

    .contact-row-engagement {
        flex-direction: row;
        justify-content: flex-start;
        margin-top: 0.5rem;
    }

    .contact-row-actions {
        margin-left: auto;
    }
}

/* Search results grid */
.search-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.search-result-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.search-result-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

.search-result-card .result-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.search-result-card .result-logo,
.search-result-card .result-avatar {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: var(--bg-page, #f5f5f5);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.search-result-card .result-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.search-result-card .result-info {
    flex: 1;
}

.search-result-card .result-title {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.search-result-card .result-subtitle {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.search-result-card .result-details {
    font-size: 0.85rem;
    color: var(--text-body, #555);
}

.search-result-card .result-details div {
    margin-bottom: 0.25rem;
}

.search-result-card .result-details i {
    width: 16px;
    color: var(--text-muted, #999);
    margin-right: 0.5rem;
}

/* Conversation timeline */
.conversation-timeline {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.conversation-item {
    background: var(--bg-surface, #fff) !important;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    padding: 1rem;
    border-left: 4px solid var(--border-strong, #ccc);
}

.conversation-item.reception-hot { border-left-color: var(--brand-primary, #3d1a6f); }
.conversation-item.reception-warm { border-left-color: var(--brand-accent, #fdb913); }
.conversation-item.reception-lukewarm { border-left-color: #c9a023; }
.conversation-item.reception-cold { border-left-color: var(--text-muted, #999); }
.conversation-item.reception-icecold { border-left-color: var(--border-strong, #ccc); }

.conversation-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.conversation-type {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.conversation-date {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.conversation-body {
    color: var(--text-body, #555);
    margin-bottom: 0.5rem;
}

.conversation-body p {
    margin: 0;
}

.conversation-footer {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.conversation-reception {
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
}

.conversation-reception.reception-hot { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.conversation-reception.reception-warm { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.conversation-reception.reception-lukewarm { background: var(--bg-gold-tint, #ffe5d0); color: var(--status-warning-text, #7d4600); }
.conversation-reception.reception-cold { background: var(--status-info-bg, #d1ecf1); color: var(--status-info-text, #0c5460); }
.conversation-reception.reception-icecold { background: #e2e3e5; color: #383d41; }

/* Pagination */
.pagination-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
}

.pagination-info {
    text-align: center;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.5rem;
}

/* .crm-stats-dismiss-btn / .crm-stats-collapsed REMOVED 2026-07-20: retired by the
   dismissable-stats-bar consolidation. Use data-bh-stats-bar. */

/* CRM Modern Search */
.crm-modern-search {
    background: transparent;
    padding: 2rem 1rem;
    margin-bottom: 1rem;
}

.crm-search-bar {
    display: flex;
    justify-content: center;
}

.crm-search-input-wrapper {
    position: relative;
    width: 100%;
    max-width: 600px;
}

.crm-search-input-wrapper .form-control,
.modalPopup .crm-search-input-wrapper .form-control {
    width: 100%;
    padding: 1rem 3rem;
    font-size: 1.1rem;
    border: 1px solid #dfe1e5;
    border-radius: 24px;
    box-shadow: none;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.crm-search-input-wrapper .form-control:hover {
    box-shadow: 0 1px 6px rgba(32,33,36,0.15);
}

.crm-search-input-wrapper .form-control:focus {
    border-color: transparent;
    box-shadow: 0 1px 6px rgba(32,33,36,0.25);
    outline: none;
}

.crm-search-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted, #9aa0a6);
    font-size: 1rem;
    pointer-events: none;
}

.crm-search-clear {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-secondary, #70757a);
    background: transparent;
    border: 0;
    padding: 0;
    width: 1.75rem;
    height: 1.75rem;
    line-height: 1;
    border-radius: 50%;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.crm-search-clear:hover {
    background: #f1f3f4;
    color: var(--text-primary, #333);
}

/* Inline variant - smaller pill for filter bars alongside dropdowns */
.crm-search-input-wrapper.crm-search-inline { max-width: 300px; }
.crm-search-input-wrapper.crm-search-inline .form-control { padding: 0.5rem 2.2rem; font-size: 0.85rem; border-radius: 18px; }
.crm-search-input-wrapper.crm-search-inline .crm-search-icon { left: 0.7rem; font-size: 0.8rem; }
.crm-search-input-wrapper.crm-search-inline .crm-search-clear { right: 0.5rem; font-size: 0.8rem; }

/* ============================================================
   Canonical list-page search header (.bh-search-header)
   Pattern: centred search pill -> chip-toggle row -> Filters
   drawer (advanced controls) -> active-filter chips strip.
   Replaces ad-hoc per-page chrome (sf-*, dropdown rows).
   Markup:
     <div class="bh-search-header">
       <div class="crm-search-bar">
         <div class="crm-search-input-wrapper">...</div>
       </div>
       <div class="bh-search-header__chips">
         <label class="bh-chip-toggle">
           <input type="checkbox" checked />
           <span class="bh-chip-toggle__label">Images</span>
           <span class="bh-chip-toggle__count">12</span>
         </label>
         <button class="bh-filters-toggle">
           <i class="fa-solid fa-sliders"></i> Filters
         </button>
       </div>
       <div class="bh-filters-drawer" hidden>
         <div class="bh-filter-field">
           <label>Sort by</label>
           <select>...</select>
         </div>
       </div>
       <div class="bh-active-chips"></div>
     </div>
   ============================================================ */
.bh-search-header {
    margin: 2rem auto 1.25rem;
    max-width: 720px;
    padding: 0 1rem;
}
.bh-search-header > .crm-search-bar { margin: 0; }

.bh-search-header__chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.bh-chip-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.85rem;
    margin: 0;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dfe1e5);
    border-radius: 16px;
    font-size: 0.82rem;
    color: var(--text-body, #555);
    cursor: pointer;
    user-select: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.bh-chip-toggle:hover {
    background: var(--bg-subtle, #f6f3fa);
    border-color: var(--brand-primary, #3d1a6f);
}
.bh-chip-toggle input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}
.bh-chip-toggle__check {
    display: none;
    font-size: 0.7rem;
}
.bh-chip-toggle:has(input:checked) {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bh-chip-toggle:has(input:checked) .bh-chip-toggle__check {
    display: inline-block;
}
.bh-chip-toggle__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.05rem;
    padding: 0 0.35rem;
    background: var(--bg-muted, #eceaf2);
    color: var(--text-secondary, #6b6b75);
    border-radius: 9px;
    font-size: 0.7rem;
    font-weight: 600;
}
.bh-chip-toggle:has(input:checked) .bh-chip-toggle__count {
    background: rgba(255,255,255,0.22);
    color: #fff;
}
.bh-chip-toggle__count:empty,
.bh-chip-toggle__count[hidden] { display: none; }

/* Outlet Format multi-select tag widget (bh-format-tags) -- CRM Outlets create/edit modals */
.bh-format-tags { display: block; }
.bh-format-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.4rem; }
.bh-format-chips:empty { margin-bottom: 0; }
.bh-format-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.3rem 0.2rem 0.6rem;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 14px;
    font-size: 0.8rem;
    line-height: 1.2;
}
.bh-format-chip-x {
    border: 0;
    background: rgba(255,255,255,0.22);
    color: #fff;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    font-size: 0.85rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.bh-format-chip-x:hover { background: rgba(255,255,255,0.4); }
.bh-format-other-input { margin-top: 0.4rem; }

.bh-filters-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.5rem;
    padding: 0.3rem 0.95rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dfe1e5);
    border-radius: 16px;
    font-size: 0.82rem;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.bh-filters-toggle i { font-size: 0.78rem; }
.bh-filters-toggle:hover { background: var(--bg-subtle, #f0ecf5); }
.bh-filters-toggle.is-open {
    background: var(--bg-subtle, #f0ecf5);
    border-color: var(--brand-primary, #3d1a6f);
}
.bh-filters-toggle__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 0.3rem;
    margin-left: 0.15rem;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 10px;
    font-size: 0.68rem;
    font-weight: 700;
}
.bh-filters-toggle__badge:empty,
.bh-filters-toggle__badge[hidden] { display: none; }

.bh-filters-drawer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem 1.25rem;
    margin-top: 0.85rem;
    padding: 0.85rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e9ecef);
    border-radius: 10px;
}
.bh-filters-drawer[hidden] { display: none; }

.bh-filter-field {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    color: var(--text-secondary, #666);
}
.bh-filter-field > label { margin: 0; white-space: nowrap; }
.bh-filter-field select,
.bh-filter-field input[type="date"],
.bh-filter-field input[type="text"] {
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--border-default, #dfe1e5);
    border-radius: 8px;
    font-size: 0.82rem;
    color: var(--text-primary, #333);
    background: var(--bg-surface, #fff);
    min-width: 140px;
}
.bh-filter-field select:focus,
.bh-filter-field input:focus {
    outline: none;
    border-color: var(--brand-primary, #3d1a6f);
}

/* Campaign filter pairs a typeahead box (narrows the picker's options) with the
   picker itself. Cap both so the combined control reads as one bounded field and
   the picker does not balloon to the drawer width when a long title is selected. */
.bh-filter-field--campaign { flex-wrap: nowrap; }
.bh-filter-field--campaign input[type="text"] { min-width: 120px; max-width: 150px; }
.bh-filter-field--campaign select { min-width: 150px; max-width: 220px; }

.bh-active-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 0.75rem;
}
.bh-active-chips:empty { display: none; }
.bh-active-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.7rem;
    background: var(--bg-muted, #eceaf2);
    border-radius: 20px;
    font-size: 0.78rem;
    color: var(--text-body, #495057);
}
.bh-active-chip button {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    color: var(--text-secondary, #6c757d);
    font-size: 0.72rem;
    line-height: 1;
}
.bh-active-chip button:hover { color: var(--status-danger, #dc3545); }

/* Dark-mode tuning (theme-tokens covers most; explicit fixes for chip-on state contrast) */
[data-theme="dark"] .bh-chip-toggle__count {
    background: var(--bg-muted, #2a2a32);
    color: var(--text-secondary, #b0b0bc);
}
[data-theme="dark"] .bh-filters-drawer {
    background: var(--bg-subtle, #1e1e26);
    border-color: var(--border-default, #3a3a44);
}

/* Laptop-aware compact strip (<=900px height) */
@media (max-height: 900px) {
    .bh-search-header { margin: 1.25rem auto 0.85rem; }
    .bh-search-header__chips { margin-top: 0.55rem; }
    .bh-chip-toggle, .bh-filters-toggle { padding: 0.22rem 0.75rem; font-size: 0.78rem; }
    .bh-filters-drawer { margin-top: 0.55rem; padding: 0.6rem 0.85rem; }
}

/* Narrow viewport */
@media (max-width: 600px) {
    .bh-search-header__chips { gap: 0.35rem; }
    .bh-chip-toggle { padding: 0.25rem 0.65rem; font-size: 0.78rem; }
    .bh-filters-toggle { margin-left: 0; }
    .bh-filter-field { width: 100%; justify-content: space-between; }
    .bh-filter-field select,
    .bh-filter-field input { flex: 1; min-width: 0; }
}

/* Filter Bar - standard grey rounded container for page-level filters */
.filter-bar {
    background: var(--bg-subtle, #f8f9fa);
    padding: 1rem 1.5rem;
    border-radius: 10px;
    margin-bottom: 1.5rem;
}
.filter-bar .form-control,
.filter-bar .form-select {
    border-radius: 6px;
    border: 1px solid var(--border-default, #ddd);
}
.filter-bar .form-control:focus,
.filter-bar .form-select:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.2rem rgba(61, 26, 111, 0.25);
}
.filter-bar .btn-search {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border: none;
    border-radius: 6px;
}
.filter-bar .btn-search:hover {
    background: #2d1352;
}
.filter-bar select,
.filter-bar .form-select {
    height: 38px;
    padding: 0.375rem 2.25rem 0.375rem 0.75rem;
    font-size: 0.9rem;
    background-color: var(--bg-surface, #fff);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}
.filter-bar .input-group-text {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-right: none;
    color: var(--text-secondary, #666);
}
.filter-bar .input-group select,
.filter-bar .input-group .form-select {
    border-left: none;
}
.filter-bar .input-group select:focus,
.filter-bar .input-group .form-select:focus {
    border-left: none;
}

/* Story Filter Bar - unified icon-inside-control pattern */
.story-filter-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    background: var(--bg-subtle, #f8f9fa);
    padding: 0.75rem 1.5rem;
    border-radius: 10px;
    margin-bottom: 1.5rem;
}
.story-filter-control {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.story-filter-icon {
    position: absolute;
    left: 0.75rem;
    color: var(--text-muted, #999);
    font-size: 0.8rem;
    pointer-events: none;
    z-index: 2;
}
.story-filter-select {
    height: 36px;
    padding: 0 0.75rem 0 2.1rem;
    font-size: 0.85rem;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
    background-color: var(--bg-surface, #fff);
    color: var(--text-primary, #333);
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;

    /* Fixed width so the control never resizes as the option list changes on search/filter */
    width: 240px;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    padding-right: 2rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23666' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    background-size: 12px 10px;
    cursor: pointer;
}
.story-filter-select:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.15rem rgba(61, 26, 111, 0.2);
}
.story-filter-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    white-space: nowrap;
}
.story-filter-count {
    font-size: 0.8rem;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    white-space: nowrap;
    /* Reserve constant space so the centred bar does not shift as the count digits change */
    min-width: 110px;
}
/* ===== StoryPerformance Brand Lens ===== */
.bh-brandlens-control .story-filter-select { min-width: 200px; }
.bh-brandlens-panel { padding-top: 1em; }
.bh-brandlens-chips { display: inline-flex; gap: 6px; }
.bh-brandlens-chips .m-chip {
    font-size: .72rem; border: 1px solid var(--border-subtle, #d9d3e6);
    background: var(--bg-card, #fff); color: var(--brand-primary, #3d1a6f);
    border-radius: 14px; padding: 4px 11px; cursor: pointer;
}
.bh-brandlens-chips .m-chip.active {
    background: var(--brand-primary, #3d1a6f); border-color: var(--brand-primary, #3d1a6f); color: #fff; font-weight: 600;
}
.bh-brandlens-engagements { display: flex; flex-wrap: wrap; gap: 6px; }
.bh-brandlens-customdates { gap: 10px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; }
.bh-brandlens-kpistrip { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.bh-brandlens-stories-label {
    font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: var(--brand-secondary, #5a2d82); margin: 14px 0 12px 2px;
}
.bh-brandlens-storymeta { font-size: .72rem; color: var(--text-on-dark, #e6dbff); margin-top: 6px; }
.bh-brandlens-storymeta b { color: var(--brand-accent, #fdb913); }
.bh-brandlens-clickable { cursor: pointer; text-decoration: underline; text-decoration-style: dotted; }
.bh-brandlens-clickable:hover { color: var(--brand-accent, #fdb913); }

/* Brand Performance redesign (2026-06-15): period framing + in-cell bars + chips + sparklines. */
.bh-period-caption {
    font-size: .82rem; color: var(--text-muted, #6c757d);
    margin: 0 2px 14px; padding: 6px 10px;
    background: var(--bg-subtle, #f5f3f9); border-radius: 8px;
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.bh-period-caption strong { color: var(--brand-primary, #3d1a6f); }
.bh-card-grain { font-size: .72rem; font-weight: 400; color: var(--text-muted, #6c757d); margin-left: 6px; }

.bh-cellbar-td { vertical-align: middle; min-width: 130px; }
.bh-cellbar {
    position: relative; height: 20px; border-radius: 4px;
    background: var(--bg-subtle, #f0eef5); overflow: hidden;
    display: flex; align-items: center;
}
.bh-cellbar-fill {
    position: absolute; left: 0; top: 0; bottom: 0;
    background: rgba(61, 26, 111, 0.25); border-radius: 4px;
}
.bh-cellbar-num {
    position: relative; margin-left: auto; padding: 0 8px;
    font-size: .8rem; font-variant-numeric: tabular-nums; color: var(--text-body, #2b2b3a);
}

.bh-cqi-chip {
    display: inline-block; min-width: 34px; padding: 2px 8px; border-radius: 10px;
    font-size: .75rem; font-weight: 700; color: #fff; text-align: center;
}
.bh-cqi-high { background: #28a745; }
.bh-cqi-mid { background: #ffc107; color: #3d1a6f; }
.bh-cqi-low { background: #dc3545; }

.bh-posbar {
    position: relative; height: 18px; min-width: 90px; border-radius: 4px;
    background: var(--bg-subtle, #f0eef5); overflow: hidden; display: flex; align-items: center;
}
.bh-posbar-fill { position: absolute; left: 0; top: 0; bottom: 0; background: #28a745; opacity: .85; }
.bh-posbar-num { position: relative; margin: 0 auto; font-size: .75rem; font-weight: 600; color: var(--text-body, #2b2b3a); }

/* Diverging "vs average" bar -- centre line = the average; green fills right (above), red left (below). */
.bh-deltabar { position: relative; height: 18px; min-width: 96px; border-radius: 4px; }
.bh-deltabar::before { content: ''; position: absolute; left: 50%; top: 2px; bottom: 2px; width: 1px; background: rgba(61, 26, 111, 0.22); }
.bh-deltabar-fill { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
.bh-deltabar-pos { background: rgba(40, 167, 69, 0.32); }
.bh-deltabar-neg { background: rgba(237, 23, 76, 0.28); }
.bh-deltabar-num { position: relative; display: block; text-align: center; font-size: .78rem; font-weight: 600; line-height: 18px; }

.bh-spark-td { text-align: center; width: 90px; color: var(--brand-primary, #3d1a6f); }
.bh-spark { display: inline-block; vertical-align: middle; opacity: .9; }
.bh-nowrap { white-space: nowrap; }

/* Click-to-sort headers on JS-rendered tables. */
.table-modern thead th.bh-sortable { cursor: pointer; user-select: none; }
.table-modern thead th.bh-sortable:hover,
.table-modern.bh-sortable thead th[data-sortkey]:hover { background: var(--brand-secondary, #5a2d82); color: var(--text-on-dark, #fff); }
.table-modern thead th.bh-sort-asc::after { content: " \25B2"; font-size: .7em; opacity: .85; }
.table-modern thead th.bh-sort-desc::after { content: " \25BC"; font-size: .7em; opacity: .85; }

[data-theme="dark"] .bh-period-caption { background: var(--bg-muted, #2a2a33); }
[data-theme="dark"] .bh-cellbar,
[data-theme="dark"] .bh-posbar { background: var(--bg-muted, #2a2a33); }
[data-theme="dark"] .bh-cellbar-fill { background: rgba(189, 147, 249, .28); }
[data-theme="dark"] .bh-cellbar-num,
[data-theme="dark"] .bh-posbar-num { color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .bh-cqi-mid { color: #2b2b3a; }
[data-theme="dark"] .bh-spark-td { color: var(--brand-accent, #fdb913); }
[data-theme="dark"] .bh-deltabar::before { background: rgba(255, 255, 255, 0.2); }

.crm-search-options {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1rem;
    font-size: 0.9rem;
}

.crm-search-options .btn-link {
    color: var(--text-secondary, #70757a);
    text-decoration: none;
}

.crm-search-options .btn-link:hover {
    color: var(--brand-primary, #3d1a6f);
}

.crm-filter-row {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.crm-filter-row select {
    min-width: 140px;
}

.crm-filter-row .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Filter Chips */
.filter-chips {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.75rem;
    background: var(--bg-muted, #e9ecef);
    border-radius: 20px;
    font-size: 0.8rem;
    color: var(--text-primary, #333);
}

.filter-chip i {
    cursor: pointer;
    color: var(--text-secondary, #666);
}

.filter-chip i:hover {
    color: var(--status-danger, #dc3545);
}

/* CRM Contact Cards */
.crm-contact-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1.5rem;
    align-items: stretch;
}

/* Curated landing rows: wider cards, ~3-4 per row on desktop. Visually distinct from
   the firehose so the user reads it as "personal corner", not "complete index". */
.crm-contact-cards-curated {
    grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    gap: 1.75rem;
}

/* Landing-state chrome -- header above the curated row, footer with Browse all CTA */
.crm-landing-header {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin: 0.5rem 0 1rem;
    flex-wrap: wrap;
}
.crm-landing-title {
    margin: 0;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.crm-landing-title i {
    color: var(--brand-accent, #fdb913);
    margin-right: 0.4rem;
}
.crm-landing-subtitle {
    color: var(--text-secondary, #666);
    font-size: 0.9rem;
}
.crm-landing-footer {
    margin-top: 1.5rem;
    text-align: center;
}
.crm-browse-all {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
    font-size: 0.95rem;
    padding: 0.5rem 1rem;
}
.crm-browse-all:hover {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: underline;
}

/* Empty-state hero: shown when curated landing has zero data (new tenant, no agreements,
   no recent activity). Calm, signposted, never dumps the firehose. */
.crm-landing-empty-hero {
    text-align: center;
    padding: 4rem 1.5rem;
    max-width: 560px;
    margin: 0 auto;
}
.crm-landing-empty-icon {
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.5;
    margin-bottom: 1.25rem;
}
.crm-landing-empty-title {
    color: var(--text-primary, #333);
    font-weight: 600;
    margin-bottom: 0.5rem;
}
.crm-landing-empty-sub {
    color: var(--text-secondary, #666);
    margin-bottom: 1.5rem;
    line-height: 1.5;
}
.crm-landing-empty-cta {
    padding: 0.6rem 1.5rem;
    font-weight: 500;
}

/* Center empty state message in grid */
.crm-contact-cards > .text-center:only-child {
    grid-column: 1 / -1;
    text-align: center;
}

/* Landing wrapper inside a grid container (CRMClients reuses the same container that has
   class .crm-contact-cards). Span the full row so the landing chrome / hero centers
   correctly instead of squeezing into the first grid column. */
.crm-contact-cards > .crm-landing,
.crm-contact-cards > .loading-spinner {
    grid-column: 1 / -1;
}

.crm-contact-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #eef0f2);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(20, 16, 40, 0.04), 0 4px 12px rgba(20, 16, 40, 0.07);
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.crm-contact-card .card-body {
    flex: 1;
    padding: 1rem;
    display: flex;
    flex-direction: column;
}

.crm-contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(20, 16, 40, 0.06), 0 10px 24px rgba(61, 26, 111, 0.14);
    border-color: rgba(61, 26, 111, 0.18);
}

/* Entire card is clickable (brand cards) */
.crm-contact-card.clickable-card {
    cursor: pointer;
}

.crm-contact-card.status-active {
    border-left: 4px solid var(--status-success, #28a745);
}

.crm-contact-card.status-snoozed {
    border-left: 4px solid var(--brand-accent, #fdb913);
}

/* EDM-off (unsubscribed) is a preference, not a fault -- keep the card normal with a
   quiet grey accent + an "EDM off" chip. Heavy dimming is reserved for bounced/spam below. */
.crm-contact-card.status-unsubscribed {
    border-left: 4px solid var(--text-secondary, #6c757d);
}

.crm-contact-card.status-bounced {
    border-left: 4px solid var(--brand-danger, #ed174c);
    opacity: 0.75;
}

.crm-contact-card.status-bounced .card-header {
    background: linear-gradient(135deg, var(--bg-muted, var(--bg-muted, #f0f0f0)) 0%, #f8f8f8 100%);
}

.crm-contact-card.status-bounced .contact-name {
    color: var(--text-tertiary, #888);
}

/* Contact badge with better contrast */
.crm-contact-card .badge-contact {
    background-color: #e8f4f8;
    color: var(--status-info-text, #0c5460);
    border: 1px solid var(--status-info-border, #bee5eb);
    font-weight: 500;
}

.crm-contact-card .card-header {
    display: flex;
    flex-direction: column;
    padding: 0.6rem 0.85rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: none;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    gap: 0.35rem;
}

/* The cream banner is the click-to-open target (whole header opens the contact).
   brightness() works in both light and dark -- no token/hex, no dark override needed. */
.crm-contact-card .card-header-clickable {
    cursor: pointer;
}

.crm-contact-card .card-header-clickable:hover {
    filter: brightness(0.97);
}

/* People card header with inline actions */
.crm-contact-card .card-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.crm-contact-card .people-card-actions {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

.people-card-action {
    background: none;
    border: none;
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.5;
    cursor: pointer;
    padding: 0.2rem 0.35rem;
    font-size: 0.85rem;
    border-radius: 4px;
    transition: opacity 0.2s, background 0.2s;
    line-height: 1;
}

/* Revoke is a removal action -- tint it so it does not read like Edit/Grant. */
.people-card-action.people-card-action--danger {
    color: var(--brand-danger, #ed174c);
}

.crm-contact-card:hover .people-card-action {
    opacity: 1;
}

.people-card-action:hover {
    opacity: 1 !important;
    background: rgba(61, 26, 111, 0.08);
}

/* Portal status line in card body */
.people-card-portal {
    font-size: 0.75rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-light, #f0f0f0);
}

.people-card-portal.active {
    color: var(--brand-primary, #3d1a6f);
}

.people-card-portal.active i {
    color: var(--status-success, #28a745);
}

.people-card-portal.pending {
    color: var(--status-warning-text, #856404);
}

/* Not granted access to this brand -- neutral, paired with a grant affordance on the card */
.people-card-portal.none {
    color: var(--text-tertiary, #888);
}

.people-card-portal.none i {
    color: var(--text-tertiary, #888);
}

/* Clickable grant CTA: the "No portal access" line itself grants access. Reset button chrome
   but keep the .people-card-portal spacing/separator + the .none tertiary colour; brighten to
   brand purple on hover so it reads as actionable. Tokens only -- dark-mode safe. */
.people-card-grant-cta {
    display: block;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.5rem 0 0 0;
    background: none;
    border: none;
    border-top: 1px solid var(--border-light, #f0f0f0);
    text-align: left;
    font-family: inherit;
    cursor: pointer;
}

.people-card-grant-cta:hover,
.people-card-grant-cta:hover i {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: underline;
}

/* Portal access = a single on/off toggle per brand (replaces the grant/revoke icons + CTA line).
   margin-top:auto anchors it to the bottom of the (equal-height) card so the toggle lines up
   across cards regardless of how many contact rows (phone/mobile/EDM) appear above it. */
.people-card-portal-toggle {
    margin-top: auto;
    padding-top: 0.6rem;
    border-top: 1px solid var(--border-light, #f0f0f0);
}

.people-card-portal-toggle .custom-control-label {
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.people-card-portal-status {
    font-size: 0.72rem;
    color: var(--text-tertiary, #888);
    margin-top: 0.2rem;
}

.people-card-portal-status.active {
    color: var(--brand-primary, #3d1a6f);
}

.people-card-portal-status.pending {
    color: var(--status-warning-text, #856404);
}

/* Quiet "EDM off" chip -- explains the muted grey accent without dimming the whole card */
.people-card-edm-off {
    font-size: 0.72rem;
    margin-top: 0.4rem;
    color: var(--text-tertiary, #888);
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.people-card-edm-off i {
    color: var(--text-tertiary, #888);
}

.crm-contact-card .card-header-badges {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.crm-contact-card .contact-name {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

.crm-contact-card .contact-role {
    font-size: 0.85rem;
    color: var(--text-body, #555);
    margin-bottom: 0.5rem;
}

.crm-contact-card .contact-role i {
    width: 16px;
    color: var(--text-tertiary, #888);
    margin-right: 0.35rem;
}

.crm-contact-card .outlet-type {
    font-size: 0.85rem;
    color: var(--text-body, #555);
    margin-bottom: 0.5rem;
}

.crm-contact-card .outlet-type i {
    width: 16px;
    color: var(--text-tertiary, #888);
    margin-right: 0.35rem;
}

.crm-contact-card .outlet-more {
    font-size: 0.7rem;
    background-color: var(--text-secondary, #666);
    color: var(--text-on-dark, #fff);
    padding: 0.15rem 0.35rem;
    margin-left: 0.25rem;
    cursor: help;
}

.crm-contact-card .contact-info {
    font-size: 0.85rem;
    color: var(--text-body, #555);
}

.crm-contact-card .contact-info > div {
    margin-bottom: 0.35rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.crm-contact-card .contact-info i {
    width: 16px;
    color: var(--text-tertiary, #888);
    margin-right: 0.35rem;
}

.crm-contact-card .card-actions {
    position: static; /* Override absolute positioning from global .card-actions */
    display: flex;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-top: 1px solid var(--border-light, #e9ecef);
    flex-wrap: wrap;
    align-items: center;
}

.crm-contact-card .card-actions .btn {
    width: auto; /* Override fixed 32px from global .card-actions .btn */
    height: auto;
    padding: 0.25rem 0.5rem;
    font-size: 0.8rem;
}

.crm-contact-card .card-actions select {
    flex: 1;
    min-width: 120px;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 4px;
    border: 1px solid var(--border-strong, #ced4da);
}

.crm-contact-card .brand-stats {
    font-size: 0.85rem;
    color: var(--text-body, #555);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-light, #eee);
    display: flex;
    gap: 1rem;
}

.crm-contact-card .brand-stats span {
    display: inline-flex;
    align-items: center;
}

.crm-contact-card .brand-stats i {
    color: var(--text-tertiary, #888);
    margin-right: 0.4rem;
}

/* Brand card styles */
/* ============================================================
   CRMClients card hierarchy -- weight follows importance.
   Tier 1  Parent Brand = hero    (.status-brand)
   Tier 2  Sub-Brand     = medium  (.status-subbrand)
   Tier 3  Contact       = quiet   (scoped to the CRMClients grids)
   Only CRMClients emits .status-brand / .status-subbrand, so those two
   tiers can stay global; the contact tier is scoped so shared
   .crm-contact-card consumers (Talent / Outlets / Admin / theHive) are
   left untouched.
   ============================================================ */

/* Tier 1 -- Parent Brand = hero. Thick purple stripe + soft lift; KEEP the
   global gold-tint header band (do not strip it) and add a gold top-accent,
   a larger haloed logo and a larger name so the client leads the eye. */
.crm-contact-card.status-brand {
    border-left: 6px solid var(--brand-primary, #3d1a6f);
    box-shadow: 0 1px 2px rgba(20, 16, 40, 0.05), 0 8px 20px rgba(61, 26, 111, 0.10);
}
.crm-contact-card.status-brand .card-header {
    position: relative;
    padding-top: 0.7rem;
    border-left: none !important;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    background-color: var(--bg-purple-tint, #f0ebf7) !important;   /* brand = faint purple tint (was cream) */
    background-image: none !important;
}
.crm-contact-card.status-brand .card-header::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-accent, #fdb913), #ffd457);
}
.crm-contact-card.status-brand .brand-logo-circle,
.crm-contact-card.status-brand .brand-logo-placeholder {
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
    box-shadow: 0 0 0 3px rgba(253, 185, 19, 0.25);
}
.crm-contact-card.status-brand .brand-logo-placeholder {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.crm-contact-card.status-brand .contact-name {
    font-size: 1.2rem;
    font-weight: 700;
}

/* Tier 2 -- Sub-Brand = medium. Secondary-purple stripe + plain header
   (no gold band), default logo size. Clearly subordinate to the parent. */
.crm-contact-card.status-subbrand {
    border-left: 4px solid var(--brand-secondary, #5a2d82);
}
.crm-contact-card.status-subbrand .card-header {
    background-color: var(--bg-purple-tint, #f0ebf7) !important;   /* sub-brand = same faint purple tint, thinner stripe + smaller logo carry the hierarchy */
    background-image: none !important;
    border-left: none !important;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}
[data-theme="dark"] .crm-contact-card.status-subbrand .card-header {
    background-color: var(--bg-purple-tint) !important;
    background-image: none !important;
}
.crm-contact-card.status-subbrand .badge-brand-type.sub {
    color: var(--brand-secondary, #5a2d82);
}

/* Tier 3 -- Contact = quiet. Drop the loud gold header band from active
   contacts so people read as supporting detail. Scoped to the two
   CRMClients grids (search results + curated landing). Bounced /
   unsubscribed keep their muted grey header. */
#modernClientSearchResults .crm-contact-card.status-active .card-header,
.crm-contact-cards-curated .crm-contact-card.status-active .card-header {
    background-color: var(--bg-surface, #fff) !important;
    background-image: none !important;
}
#modernClientSearchResults .crm-contact-card.status-active,
.crm-contact-cards-curated .crm-contact-card.status-active {
    border-left-width: 3px;
}
[data-theme="dark"] #modernClientSearchResults .crm-contact-card.status-active .card-header,
[data-theme="dark"] .crm-contact-cards-curated .crm-contact-card.status-active .card-header {
    background-color: var(--bg-surface) !important;
    background-image: none !important;
}
/* Outlet contact search list: people read as white cards (brands carry the tint, bounced/unsubscribed keep their muted header). */
#modernSearchResults .crm-contact-card.status-active .card-header,
#modernSearchResults .crm-contact-card.status-snoozed .card-header {
    background-color: var(--bg-surface, #fff) !important;
    background-image: none !important;
}
.badge-brand-type {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-secondary, #666);
}
.badge-brand-type.parent {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.brand-logo-circle {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.brand-logo-placeholder {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--bg-muted, #e9ecef);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-body, #555);
    flex-shrink: 0;
}

/* Tier badges */
.badge-tier-1 {
    background-color: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
    border: 1px solid var(--status-warning-border, #ffeeba);
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15em 0.45em;
    border-radius: 10px;
}

.badge-tier-2 {
    background-color: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #333);
    border: 1px solid var(--border-default, #dee2e6);
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15em 0.45em;
    border-radius: 10px;
}

.badge-tier-3 {
    background-color: #f4e3d0;
    color: var(--status-warning-text, #7c5a2e);
    border: 1px solid #e8d0b3;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15em 0.45em;
    border-radius: 10px;
}

.badge-tier-4 {
    background-color: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #333);
    border: 1px solid var(--border-strong, #ced4da);
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15em 0.45em;
    border-radius: 10px;
}

/* Tier legend component - reusable inline legend for tier explanations */
.tier-legend {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

.tier-legend-trigger {
    cursor: pointer;
    color: var(--brand-primary, #6b3fa0);
    font-size: 0.85rem;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.tier-legend-trigger:hover {
    opacity: 1;
}

.tier-legend-popup {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 1060;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 8px;
    padding: 12px 16px;
    min-width: 320px;
    box-shadow: 0 4px 16px rgba(61, 26, 111, 0.15);
}

.tier-legend-popup.show {
    display: block;
}

.tier-legend-popup::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 16px;
    width: 10px;
    height: 10px;
    background: var(--bg-surface, #fff);
    border-left: 1px solid var(--brand-primary, #3d1a6f);
    border-top: 1px solid var(--brand-primary, #3d1a6f);
    transform: rotate(45deg);
}

.tier-legend-title {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    padding-bottom: 4px;
    display: inline-block;
}

.tier-legend-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
}

.tier-legend-row .badge {
    min-width: 44px;
    text-align: center;
    font-size: 0.7rem;
}

.tier-legend-desc {
    font-size: 0.78rem;
    color: var(--text-body, #555);
}

.tier-legend-examples {
    font-size: 0.7rem;
    color: var(--text-muted, #999);
    font-style: italic;
}

/* Media type badge */
.badge-media-type {
    font-size: 0.7rem;
    font-weight: 500;
    padding: 0.2em 0.55em;
    border-radius: 10px;
    background-color: var(--status-info-bg, #e8f4f8);
    color: var(--status-info-text, #0c5460);
    border: 1px solid var(--status-info-border, #bee5eb);
    white-space: nowrap;
}

.badge-media-type i {
    margin-right: 0.25rem;
    font-size: 0.65rem;
}

/* Engagement indicator */
.engagement-indicator {
    font-size: 0.7rem;
    font-weight: 600;
    color: #e25822;
    white-space: nowrap;
}

.engagement-indicator i {
    color: #e25822;
}

/* CRM Results Header */
.crm-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}

.crm-results-header .results-count {
    font-size: 0.9rem;
    color: var(--text-secondary, #666);
    font-weight: 500;
}

/* CRM Empty State */
.crm-empty-state {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 10px;
    padding: 3rem;
}

.crm-empty-state i {
    display: block;
    margin-bottom: 1rem;
}

/* CRM Notification Toast */
.crm-notification {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 1rem 1.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 9999;
    font-size: 0.9rem;
    animation: slideIn 0.3s ease;
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* KPI Cards Responsive (covers canonical .bh-kpi and all legacy aliases) */
@media (max-width: 992px) {
    .bh-kpi-row,
    .crm-stats,
    .pipeline-stats,
    .bh-eng-summary-row,
    .pitch-stats {
        gap: 0.5rem;
    }

    .bh-kpi,
    .crm-stat-card,
    .pipeline-stat-card,
    .kpi-card,
    .ra-stat-card,
    .bh-eng-summary-tile,
    .pitch-stat-card {
        min-width: 100px;
        padding: 0.45rem 0.85rem;
    }

    .bh-kpi .stat-value, .bh-kpi .bh-kpi-value, .bh-kpi .kpi-value,
    .crm-stat-card .stat-value,
    .pipeline-stat-card .stat-value,
    .kpi-card .kpi-value,
    .ra-stat-card .stat-value,
    .bh-eng-summary-tile-value,
    .pitch-stat-card .stat-value {
        font-size: 1.2rem;
    }

    .crm-contact-cards {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
}

@media (max-width: 576px) {
    /* Phone density (2026-07-20, George/Jen). Two-up cards at full size put a 7-tile bar
       (Mail Dashboard) four rows deep before any content -- roughly half the viewport.
       Tiles here keep the normal STACKED shape but at reduced padding and type, and drop
       sub-captions and inline progress bars. ~42px per tile instead of ~80px.

       Deliberately NOT the one-line value+label treatment the short-wide laptop strip
       uses (section 0 of engagement-design-system.css). Measured at 360px: sharing a
       ~155px tile between value and label starves the label -- "Plan Usage" (value
       "37,904 / 300,000") rendered at ZERO width and "Sending Status" at 33px of the 76px
       it needs. Stacking gives each part the full tile width, so nothing truncates.
       A laptop tile is far wider, which is why the same treatment works there.

       Also NOT copying the laptop strip's flex-wrap:nowrap -- that is what clipped tiles
       off the right edge on phones in June. These wrap. */
    /* Sizing floor, bare-class on purpose. The compact typography below is keyed on
       row+card pairs, so a tile rendered in an unexpected container would otherwise
       drop back to the 992px sizing. This keeps every tile two-up regardless. */
    .bh-kpi,
    .crm-stat-card,
    .pipeline-stat-card,
    .kpi-card,
    .ra-stat-card,
    .bh-eng-summary-tile,
    .pitch-stat-card {
        min-width: 45%;
        flex: 1 1 45%;
    }

    .bh-kpi-row .bh-kpi,
    .crm-stats .crm-stat-card,
    .pipeline-stats .pipeline-stat-card,
    .bh-kpi-row .kpi-card,
    .ra-stats-bar .ra-stat-card,
    .bh-eng-summary-row .bh-eng-summary-tile,
    .pitch-stats .pitch-stat-card,
    /* Page-local stat rows that predate the canonical family and were never folded in
       (Declines / MediaClips / Finance). Included so the phone density is universal
       rather than skipping three pages. Folding these into the alias list properly is
       tracked separately -- they carry their own padding/shadow/palette. */
    .decline-stats .decline-stat-card,
    .media-stats .media-stat-card,
    .kpi-cards .kpi-card {
        flex: 1 1 45%;
        min-width: 45%;
        min-height: 0;
        padding: 0.4rem 0.6rem;
        text-align: left;
        box-shadow: none;
    }

    .bh-kpi-row .bh-kpi-value, .bh-kpi-row .stat-value, .bh-kpi-row .kpi-value,
    .crm-stats .stat-value,
    .pipeline-stats .stat-value,
    .ra-stats-bar .stat-value,
    .bh-eng-summary-row .bh-eng-summary-tile-value,
    .pitch-stats .stat-value,
    .decline-stats .stat-value,
    .media-stats .stat-value,
    .kpi-cards .kpi-value {
        /* Scales with viewport so a long composite value ("37,904 / 300,000" on the Mail
           Dashboard Plan Usage tile) still fits a half-width tile on a 360px phone. At a
           flat 1rem that value clipped to "37,904 / 300,00...", i.e. a truncated NUMBER,
           which misreads far worse than a truncated label. */
        font-size: clamp(0.85rem, 3.2vw, 1rem);
        line-height: 1.15;
        margin: 0;
        /* Ellipsis rather than wrap: a wrapped number reads as two numbers. */
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .bh-kpi-row .bh-kpi-label, .bh-kpi-row .stat-label, .bh-kpi-row .kpi-label,
    .crm-stats .stat-label,
    .pipeline-stats .stat-label,
    .ra-stats-bar .stat-label,
    .bh-eng-summary-row .bh-eng-summary-tile-label,
    .pitch-stats .stat-label,
    .decline-stats .stat-label,
    .media-stats .stat-label,
    .kpi-cards .kpi-label {
        font-size: 0.7rem;
        line-height: 1.2;
        margin: 0;
        /* Wraps rather than truncates -- the label is what makes the number mean
           something, so losing it is worse than one extra line. */
        white-space: normal;
        text-transform: none;
        letter-spacing: 0;
        color: var(--text-body, #222);
    }

    /* Sub-captions and inline progress bars are desk detail -- the tile value carries
       the signal on a phone. Hidden, not removed: the wide layout still shows them. */
    .bh-kpi-row .bh-kpi-sub, .bh-kpi-row .stat-sub,
    .crm-stats .stat-sub,
    .pipeline-stats .stat-sub,
    .ra-stats-bar .stat-sub,
    .bh-eng-summary-row .bh-eng-summary-tile-sub,
    .pitch-stats .stat-sub,
    .decline-stats .stat-sub,
    .media-stats .stat-sub,
    .bh-kpi-row .bh-kpi .progress,
    /* Finance tiles lead with a decorative icon; at one-line density the icon, value
       and label cannot share 45% of a phone width. The value carries the signal. */
    .kpi-cards .kpi-card .kpi-icon {
        display: none;
    }

    /* Live-state tiles render a dot + word instead of a numeric value. */
    .bh-kpi-row .bh-kpi .system-status {
        display: flex;
        align-items: center;
        gap: 0.3rem;
        font-size: 0.85rem;
        line-height: 1.15;
        white-space: nowrap;
    }

    /* Dismiss button sits over the first tile's right edge at this density -- pull the
       row in so it never covers a value. Marker class is set by bh-stats-bar.js when it
       builds the chrome (avoids :has(), which the WebForms surface can't rely on). */
    .bh-stats-bar--dismissable {
        padding-right: 1.75rem;
    }

    .crm-search-input-wrapper {
        max-width: 100%;
    }

    .crm-search-options {
        flex-direction: column;
        gap: 0.5rem;
    }

    .crm-filter-row {
        flex-direction: column;
    }

    .crm-filter-row select {
        width: 100%;
    }

    .crm-contact-cards {
        grid-template-columns: 1fr;
    }

    .crm-contact-card .card-actions {
        flex-direction: column;
    }

    .crm-contact-card .card-actions .btn,
    .crm-contact-card .card-actions select {
        width: 100%;
    }
}

/* ============================
   Phase 3: Outlet Contacts with Engagement
   ============================ */

/* Modern outlet view container */
.crm-modern-outlet-view {
    margin-top: 1rem;
}

/* Collapsible sections */
.crm-section {
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
}

.crm-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s ease;
}

.crm-section-header:hover {
    background: linear-gradient(135deg, var(--bg-gold-tint, #fff0c8) 0%, var(--bg-gold-tint, #fff8e8) 100%);
}

.crm-section-header h5 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.crm-section-header h5 i {
    color: var(--brand-accent, #fdb913);
}

.crm-section-header h5 .badge {
    font-size: 0.75rem;
    font-weight: 500;
}

.crm-section-toggle {
    color: var(--text-secondary, #666);
    transition: transform 0.2s ease;
}

.crm-section.collapsed .crm-section-toggle {
    transform: rotate(-90deg);
}

.crm-section-content {
    padding: 1rem;
    background: var(--bg-surface, #fff);
}

.crm-section-toolbar {
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-light, #e9ecef);
}

/* Top Engaged Section */
.crm-top-engaged-section {
    border-left-color: #ffd700;
}

.top-engaged-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

/* Top-engaged strip -- inline band inside merged Contacts accordion
   (not a nested accordion; just a labelled row of 3 medal cards). */
.top-engaged-strip {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed var(--border-default, #e0e0e0);
}

.top-engaged-strip-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-muted, #666);
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.top-engaged-strip-label small {
    color: var(--text-muted, #999);
    font-weight: 400;
}

.top-engaged-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border: 1px solid var(--border-light, #e9ecef);
    transition: box-shadow 0.2s ease;
}

.top-engaged-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.top-engaged-card.gold {
    border-left: 4px solid #ffd700;
    background: linear-gradient(135deg, #fffef0 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
}

.top-engaged-card.silver {
    border-left: 4px solid #c0c0c0;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #fafafa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
}

.top-engaged-card.bronze {
    border-left: 4px solid #cd7f32;
    background: linear-gradient(135deg, #fdf8f4 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
}

.top-engaged-rank {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-radius: 50%;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
}

/* Medal badges keep dark text in both themes for legibility on bright metallic bg */
.top-engaged-card.gold .top-engaged-rank { background: #ffd700; color: var(--text-primary, #333); }
.top-engaged-card.silver .top-engaged-rank { background: #c0c0c0; color: var(--text-primary, #333); }
.top-engaged-card.bronze .top-engaged-rank { background: #cd7f32; color: var(--text-on-dark, #fff); }
[data-theme="dark"] .top-engaged-card.gold .top-engaged-rank,
[data-theme="dark"] .top-engaged-card.silver .top-engaged-rank { color: #333 !important; }

.top-engaged-info {
    flex: 1;
    min-width: 0;
}

.top-engaged-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.top-engaged-position {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Engagement Badges */
.engagement-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.engagement-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    background: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #333);
}

.engagement-badge i {
    font-size: 0.7rem;
}

.engagement-badge.downloads { background: #cfe2ff; color: #084298; }
.engagement-badge.bookings { background: #d1e7dd; color: #0f5132; }
.engagement-badge.emails { background: #e2d9f3; color: var(--brand-primary, #432874); }

.engagement-badge.high { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.engagement-badge.medium { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.engagement-badge.low { background: var(--bg-subtle, #f8f9fa); color: var(--text-secondary, #666); }

.engagement-badge.clickable { cursor: pointer; transition: all 0.15s ease; border: 1px solid transparent; border-radius: 4px; }
.engagement-badge.clickable:hover { background-color: var(--border-light, #e9ecef); border-color: var(--accent-purple, #6f42c1); transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.engagement-badge.clickable .fa-chevron-down { font-size: 0.6em; margin-left: 3px; transition: transform 0.2s ease; }
.engagement-badge.clickable.active { border-color: var(--accent-purple, #6f42c1); background-color: #f3eefa; }
.engagement-badge.clickable.active .fa-chevron-down { transform: rotate(180deg); }

.engagement-history-detail { margin-top: 8px; padding: 0 4px; }
.engagement-history-detail table.engagement-history-table { font-size: 0.85rem; margin-bottom: 0.5rem; }
.engagement-history-detail table.engagement-history-table th { font-weight: 600; font-size: 0.8rem; white-space: nowrap; }
.engagement-history-detail table.engagement-history-table td { vertical-align: middle; }
.engagement-load-more .btn { font-size: 0.8rem; padding: 0.15rem 0.5rem; }

/* Outlet Contact Rows */
.outlet-contacts-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.outlet-contact-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.outlet-contact-row:hover {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 2px 8px rgba(61, 26, 111, 0.08);
}

.outlet-contact-row.status-snoozed {
    border-left: 4px solid var(--status-warning-border, #ffc107);
}

.outlet-contact-row.status-unsubscribed {
    border-left: 4px solid var(--text-secondary, #6c757d);
    opacity: 0.7;
}

.outlet-contact-row.status-bounced {
    border-left: 4px solid var(--status-danger, #dc3545);
    background: var(--bg-danger-subtle, #fff5f5);
}

.outlet-contact-row.selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    box-shadow: 0 2px 8px rgba(61, 26, 111, 0.15);
}

/* Compact Contact Cards (Phase 3) */
.outlet-contact-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    margin-bottom: 0.5rem;
    transition: all 0.2s ease;
}

.outlet-contact-card:hover {
    border-color: var(--brand-primary, #3d1a6f);
}

.outlet-contact-card.expanded {
    border-color: var(--status-success, #28a745);
    background: linear-gradient(135deg, #f0fff4 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    box-shadow: 0 2px 8px rgba(40, 167, 69, 0.15);
}

.outlet-contact-card.status-active {
    border-left: 3px solid var(--status-success, #28a745);
}

.outlet-contact-card.status-snoozed {
    border-left: 3px solid var(--status-warning-border, #ffc107);
}

.outlet-contact-card.status-unsubscribed {
    border-left: 3px solid var(--text-secondary, #6c757d);
    opacity: 0.7;
}

.outlet-contact-card.status-bounced {
    border-left: 3px solid var(--status-danger, #dc3545);
    background: var(--bg-danger-subtle, #fff8f8);
}

.outlet-contact-card .contact-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    cursor: pointer;
    border-radius: 5px 5px 0 0;
}

.outlet-contact-card .contact-card-header:hover {
    background: var(--bg-subtle, #f8f9fa);
}

/* Pin the OPEN contact's name to the top while its details scroll, so you always
   know whose record you are viewing (mirrors the Bookings day-banner pattern).
   top uses the live --bh-navbar-h SSOT (set by setNavH() in Site.Master) so it
   seats just under the fixed navbar and is never hidden behind it. Background
   matches the expanded card's top edge so header and body read as one surface;
   the subtle shadow lifts it while stuck. Only .expanded pins (single-open
   accordion), so collapsed headers scroll normally.
   Depends on #sectionOutletContactsWrap using overflow:clip (below). */
.outlet-contact-card.expanded .contact-card-header {
    position: sticky;
    top: var(--bh-navbar-h, 110px);
    z-index: 5;
    background: linear-gradient(135deg, #f0fff4 0%, var(--bg-surface, #fff) 100%);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

/* Clip context for the Contacts accordion: overflow:clip keeps the rounded
   corners (like the inherited .brand-section overflow:hidden) but does NOT
   establish a scroll container, so the sticky header above pins to the
   viewport/navbar instead of being trapped. Same reason the root element uses
   overflow:clip. Scoped to this wrapper so the shared .brand-section base
   (also used on CRMClients) is untouched. */
#sectionOutletContactsWrap {
    overflow: clip;
}

.contact-card-name {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.contact-card-name .contact-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.95rem;
}

.contact-position-inline {
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
}

.contact-card-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.engagement-mini {
    font-size: 0.75rem;
    color: var(--status-success, #28a745);
    font-weight: 500;
}

.outlet-contact-card .contact-card-details {
    padding: 0.75rem 1rem 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
    background: var(--bg-subtle, #fafbfc);
    border-radius: 0 0 5px 5px;
}

.contact-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 2rem;
    margin-bottom: 0.75rem;
}

.contact-detail-col p {
    margin: 0 0 0.35rem 0;
    font-size: 0.85rem;
    color: var(--text-body, #555);
}

.contact-detail-col i {
    width: 1rem;
    text-align: center;
    margin-right: 0.5rem;
}

.engagement-detail-hint {
    color: var(--text-secondary, #666);
    margin-left: 0.25rem;
}

.engagement-detail-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.contact-interests {
    font-size: 0.85rem;
    color: var(--text-body, #555);
    margin-bottom: 0.75rem;
}

/* Interest badges display */
.interest-badges-container {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.interest-badge {
    font-size: 0.8rem;
    white-space: nowrap;
    margin-left: 0;
}

/* Tag input styling for editable interests */
.tag-input-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.5rem;
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 0.375rem;
    background: var(--bg-surface, #fff);
    min-height: 42px;
    cursor: text;
}

.tag-input-wrapper:focus-within {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.tag-input-wrapper .tag-item {
    display: inline-flex;
    align-items: center;
    background-color: var(--status-info-bg, #d1ecf1);
    color: var(--status-info-text, #0c5460);
    border: 1px solid var(--status-info-border, #bee5eb);
    border-radius: 12px;
    padding: 0.2em 0.5em;
    font-size: 0.875rem;
}

.tag-input-wrapper .tag-item .tag-remove {
    margin-left: 0.35rem;
    cursor: pointer;
    font-weight: bold;
    opacity: 0.7;
    line-height: 1;
}

.tag-input-wrapper .tag-item .tag-remove:hover {
    opacity: 1;
    color: var(--status-danger-text, #721c24);
}

.tag-input-wrapper .tag-input-field {
    border: none;
    outline: none;
    flex: 1;
    min-width: 120px;
    font-size: 0.875rem;
    padding: 0.2em;
}

.tag-input-wrapper .tag-input-field::placeholder {
    color: var(--text-secondary, #666);
}

/* Advanced Selection tag input - taller version for filter panel */
.tag-input-wrapper.advanced-selection-tags {
    min-height: 200px;
    max-height: 300px;
    overflow-y: auto;
    align-content: flex-start;
}

.unsub-info-banner {
    background: var(--status-warning-bg, #fff3cd);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
    color: var(--status-warning-text, #856404);
}

.contact-bio-section {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
}

.contact-bio-section .section-header {
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
}

.contact-bio-section .section-header strong {
    font-size: 0.85rem;
}

.contact-bio-text {
    font-size: 0.85rem;
    color: var(--text-primary, #333);
    margin-bottom: 0;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* Recent Stories section in contact card */
.contact-stories-section {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
}
.contact-stories-section .section-header {
    margin-bottom: 0.5rem;
}
.contact-stories-section .section-header strong {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
}
.stories-subsection {
    margin-bottom: 0.5rem;
}
.stories-subsection:last-child {
    margin-bottom: 0;
}
.stories-subsection-header {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-body, #555);
    margin-bottom: 0.25rem;
}
.stories-list .story-item {
    padding: 0.25rem 0;
    font-size: 0.85rem;
}
.story-headline {
    color: var(--text-primary, #333);
    font-weight: 500;
}
a.story-headline:hover {
    color: var(--accent-purple, #6f42c1);
    text-decoration: underline;
}
.story-topics {
    margin-top: 0.1rem;
    font-style: italic;
}
.sentiment-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    vertical-align: middle;
}
.sentiment-dot.sentiment-positive { background-color: var(--status-success, #28a745); }
.sentiment-dot.sentiment-neutral  { background-color: #adb5bd; }
.sentiment-dot.sentiment-negative { background-color: var(--status-danger, #dc3545); }

.contact-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.contact-action-buttons .btn {
    font-size: 0.8rem;
    padding: 0.3rem 0.6rem;
}

/* Contact Groups Section */
.engagement-history-section,
.contact-interests-section,
.contact-groups-section,
.contact-outlets-section {
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px dashed var(--border-light, #e9ecef);
}

.engagement-history-section .section-header,
.contact-interests-section .section-header,
.contact-groups-section .section-header,
.contact-outlets-section .section-header {
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.contact-interests-section .contact-interests {
    margin-bottom: 0;
}

.contact-bio-section .section-header strong,
.contact-stories-section .section-header strong,
.contact-notes-section .section-header strong,
.conversation-history-section .section-header strong,
.engagement-history-section .section-header strong,
.contact-interests-section .section-header strong,
.contact-groups-section .section-header strong,
.contact-outlets-section .section-header strong {
    color: var(--text-primary, #333);
}

.contact-bio-section .section-header strong i,
.contact-stories-section .section-header strong i,
.contact-notes-section .section-header strong i,
.conversation-history-section .section-header strong i,
.engagement-history-section .section-header strong i,
.contact-interests-section .section-header strong i,
.contact-groups-section .section-header strong i,
.contact-outlets-section .section-header strong i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.25rem;
    display: inline-block;
    width: 1.2rem;
    text-align: center;
}

/* Card detail sections share one header treatment: flush left, gold underline */
.contact-card-details .section-header {
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    padding-bottom: 0.4rem;
    margin-bottom: 0.5rem;
}

.contact-groups-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.group-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 2px 8px;
    background: var(--bg-purple-tint, #f0ebf7);
    border-radius: 4px;
    font-size: 0.8rem;
    color: var(--brand-primary, #3d1a6f);
}

.btn-remove-group,
.btn-remove-outlet {
    background: none;
    border: none;
    color: var(--status-danger, #dc3545);
    font-size: 0.9rem;
    padding: 0 0.25rem;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.15s;
}

.btn-remove-group:hover,
.btn-remove-outlet:hover {
    opacity: 1;
}

/* Contact Outlets Section */
.contact-outlets-list-items {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.outlet-mapping-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 0.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 4px;
    font-size: 0.85rem;
}

.outlet-mapping-item .outlet-info {
    flex: 1;
    color: var(--text-primary, #333);
}

.outlet-mapping-item .outlet-info i.fa-building {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.35rem;
}

.outlet-mapping-item .outlet-state {
    color: var(--text-secondary, #666);
    margin-left: 0.25rem;
}

.outlet-mapping-item .badge-sm {
    font-size: 0.7rem;
    padding: 0.15rem 0.35rem;
}

@media (max-width: 768px) {
    .contact-detail-grid {
        grid-template-columns: 1fr;
    }

    .outlet-contact-card .contact-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }

    .contact-card-meta {
        width: 100%;
        justify-content: flex-start;
    }
}

.contact-main-info {
    flex: 1;
    min-width: 0;
}

.contact-name-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.contact-name-row .contact-name {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.contact-position {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
}

.contact-details {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}

.contact-details i {
    margin-right: 0.25rem;
    color: var(--text-muted, #999);
}

.contact-engagement {
    flex-shrink: 0;
    min-width: 180px;
    text-align: right;
}

.contact-actions {
    flex-shrink: 0;
}

/* Syndication List */
.syndication-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* When syndication panel is present, flatten the bottom of the profile card */
.outlet-profile.has-syndication {
    border-radius: 12px 12px 0 0;
}

.outlet-profile.has-syndication .outlet-profile-footer {
    border-radius: 0;
}

/* Outlet Syndication Card - visually continues the outlet-profile card above */
.outlet-syndication-card {
    background: var(--bg-surface, #fff);
    border-radius: 0 0 12px 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--border-light, #eee);
}

.outlet-syndication-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

.outlet-syndication-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.15s;
}

.outlet-syndication-trigger:hover .outlet-syndication-title {
    color: var(--brand-primary, #5a2d82);
}

.outlet-syndication-title i {
    color: var(--brand-accent, #fdb913);
    width: 20px;
}

.outlet-syndication-count {
    font-size: 0.7rem;
    font-weight: 600;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-radius: 10px;
    padding: 0.15em 0.55em;
    min-width: 1.4em;
    text-align: center;
    line-height: 1.4;
}

.outlet-syndication-chevron {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.65rem;
    transition: transform 0.2s;
    padding: 0.25rem;
}

.outlet-syndication-body {
    padding-top: 0.75rem;
    border-top: 2px solid var(--brand-accent, #fdb913);
    margin-top: 0.5rem;
}

/* Syndication group items */
.syndication-item {
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #fafafa);
    border-radius: 4px;
    border-left: 3px solid var(--brand-accent, #fdb913);
    margin-bottom: 0.5rem;
    transition: background-color 0.15s;
}

.syndication-item:last-child {
    margin-bottom: 0;
}

.syndication-item:hover {
    background: #f5f3f0;
}

.syndication-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.syndication-name {
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.syndication-name i {
    color: var(--brand-accent, #fdb913);
    font-size: 0.75rem;
}

.syndication-desc {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--text-muted, #999);
    font-style: italic;
}

.syndication-member-count {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-tertiary, #888);
    white-space: nowrap;
}

/* Member outlet badges */
.syndication-members-badges {
    padding-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.synd-member-badge {
    background: var(--bg-surface, #fff);
    color: var(--text-body, #555);
    border: 1px solid var(--border-default, #ddd);
    font-weight: 400;
    font-size: 0.73rem;
    padding: 0.2em 0.55em;
    border-radius: 3px;
    line-height: 1.4;
    transition: all 0.15s;
}

.synd-member-badge:hover {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(61,26,111,0.2);
}

.synd-member-current {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
    pointer-events: none;
}

.syndication-chevron {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.6rem;
    transition: transform 0.2s;
    opacity: 0.6;
}

.syndication-header:hover .syndication-chevron {
    opacity: 1;
}

/* Conversations List */
.conversations-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.conversation-item {
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
    border-left: 3px solid var(--status-info, #17a2b8);
}

.conversation-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.conversation-date {
    font-weight: 500;
    color: var(--text-primary, #333);
    font-size: 0.85rem;
}

.conversation-by {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}

.conversation-notes {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-body, #555);
    line-height: 1.5;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .top-engaged-grid {
        grid-template-columns: 1fr;
    }

    .outlet-contact-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .contact-engagement {
        width: 100%;
        text-align: left;
        margin-top: 0.5rem;
    }

    .contact-actions {
        width: 100%;
        margin-top: 0.5rem;
    }

    .contact-details {
        flex-direction: column;
        gap: 0.25rem;
    }
}

/* ============================================
   CRM Modal Styles
   ============================================ */

.crm-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
}

.crm-modal-content {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    width: 90%;
    max-width: 500px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.crm-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 10px 10px 0 0;
}

.crm-modal-header h5 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

.crm-modal-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--text-secondary, #666);
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.crm-modal-close:hover {
    color: var(--text-primary, #333);
}

.crm-modal-body {
    padding: 1.25rem;
    overflow-y: auto;
    flex: 1;
}

.outlet-search-results {
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    margin-top: 0.5rem;
}

.outlet-results-list {
    padding: 0.5rem;
}

.outlet-result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}

.outlet-result-item:last-child {
    border-bottom: none;
}

.outlet-result-item:hover {
    background: var(--bg-subtle, #f8f9fa);
}

.outlet-result-info {
    flex: 1;
    min-width: 0;
}

.outlet-result-info strong {
    display: block;
    color: var(--text-primary, #333);
}

/* ============================================
   Top Contacts Tab Styles
   ============================================ */

.crm-top-contacts-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 1rem;
    border-radius: 8px;
    margin-bottom: 1.5rem;
}

/* Filter dropdown select/unselect links */
.dropdown-menu .d-flex a.small {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-weight: 500;
}
.dropdown-menu .d-flex a.small:hover {
    color: #0056b3;
    text-decoration: underline;
}

/* Media type and engagement type filter dropdown checkbox alignment */
#mediaTypeCheckboxes .form-check,
#engagementTypeCheckboxes .form-check {
    display: flex;
    align-items: center;
    padding-left: 0;
    margin-bottom: 0.5rem;
}

#mediaTypeCheckboxes .form-check-input,
#engagementTypeCheckboxes .form-check-input {
    margin: 0;
    margin-right: 0.5rem;
    position: relative;
    top: 0;
}

#mediaTypeCheckboxes .form-check-label,
#engagementTypeCheckboxes .form-check-label {
    margin: 0;
    line-height: 1;
}

/* Floating Action Button */
.fab-button {
    position: fixed;
    bottom: 30px;
    left: 30px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 3px white halo ring keeps the FAB distinct when scrolled over the purple footer */
    box-shadow: 0 0 0 3px var(--bg-page, #fff), 0 4px 12px rgba(0,0,0,0.3);
    z-index: 1000;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fab-button:hover {
    transform: scale(1.1);
    box-shadow: 0 0 0 3px var(--bg-page, #fff), 0 6px 16px rgba(0,0,0,0.4);
}

/* FAB Container and Menu */
.fab-container {
    position: fixed;
    bottom: 30px;
    left: 30px;
    z-index: 1000;
}
.fab-container .fab-button {
    position: relative;
    bottom: auto;
    left: auto;
}
.fab-menu {
    position: absolute;
    bottom: 70px;
    left: 0;
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    overflow: hidden;
    min-width: 180px;
}
.fab-menu-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    border: none;
    background: var(--bg-surface, #fff);
    text-align: left;
    font-size: 0.9rem;
    color: var(--text-primary, #333);
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.fab-menu-item:hover {
    background: var(--bg-muted, #f0f0f0);
}
.fab-menu-item i {
    width: 20px;
    text-align: center;
    color: var(--text-secondary, #666);
}
.fab-icon {
    transition: transform 0.2s ease;
}
.fab-container.open .fab-icon {
    transform: rotate(45deg);
}

/* Outlet Search Results in Modal */
.outlet-search-results .outlet-search-item {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-light, #eee);
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.outlet-search-results .outlet-search-item:hover {
    background: var(--bg-subtle, #f8f9fa);
}
.outlet-search-results .outlet-search-item:last-child {
    border-bottom: none;
}
.outlet-search-results .outlet-name {
    font-weight: 500;
    color: var(--text-primary, #333);
}
.outlet-search-results .outlet-details {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

/* ===== Shared Contact Picker (Declines Add-Exclusion + PhonePitching Add-Contacts) =====
   Live type-ahead suggestion list with multi-select + selected chips. Self-contained so any
   modal can drop in a `.bh-cpick-results` of `.bh-cpick-item` rows. */
.bh-cpick-results {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 8px;
    margin-top: 0.75rem;
    text-align: left; /* defend against a text-center parent (e.g. MediaClips col) */
}
.bh-cpick-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--border-light, #eee);
    cursor: pointer;
    font-weight: 400;
    transition: background-color 0.15s ease;
}
.bh-cpick-item:last-child { border-bottom: none; }
.bh-cpick-item:hover { background: var(--bg-subtle, #f8f9fa); }
/* Row whose only action is a trailing button (e.g. Add-to-group) -- the row itself isn't clickable */
.bh-cpick-item--static { cursor: default; }
/* Trailing action button (Add / etc.) keeps its natural width on the right */
.bh-cpick-item > .btn { flex: 0 0 auto; align-self: center; }
.bh-cpick-item input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; cursor: pointer; }
.bh-cpick-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bh-cpick-name { font-weight: 500; color: var(--text-primary, #333); line-height: 1.35; }
.bh-cpick-details { font-size: 0.85rem; color: var(--text-secondary, #666); line-height: 1.3; }
.bh-cpick-selected-wrap {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--border-default, #ddd);
}
.bh-cpick-chip-tray { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.bh-cpick-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--bg-purple-tint, #f3eefb);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 14px;
    padding: 2px 6px 2px 10px;
    font-size: 0.8rem;
    max-width: 100%;
}
.bh-cpick-chip-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bh-cpick-chip-remove {
    border: none;
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    line-height: 1;
    font-size: 1rem;
    padding: 0 2px;
}
.bh-cpick-chip-remove:hover { color: var(--brand-danger, #ed174c); }
.bh-cpick-back-link { color: var(--brand-primary, #3d1a6f); text-decoration: none; font-weight: 600; }
.bh-cpick-back-link:hover { text-decoration: underline; }

/* Clickable card headers */
.clickable-header {
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.clickable-header:hover {
    background-color: rgba(0,0,0,0.03);
}
.crm-contact-card .clickable-header:hover {
    background: linear-gradient(135deg, var(--status-info-bg, #e8f4fc) 0%, var(--status-info-bg, #f0f8ff) 100%);
}

.crm-top-contacts-list {
    min-height: 200px;
}

#topContactsContainer .fa-spinner,
#topClientsContainer .fa-spinner {
    color: var(--brand-primary, #3d1a6f);
}

.top-clients-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.top-clients-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.top-clients-group-header {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-secondary, #555);
    padding: 0.25rem 0.5rem;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
    margin-bottom: 0.25rem;
}

.top-clients-group-header .badge {
    margin-left: 0.5rem;
    font-weight: normal;
}

.top-client-actions {
    padding: 0.5rem 1rem 0.75rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.top-contacts-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.top-contact-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    transition: all 0.2s ease;
}

.top-contact-card:hover {
    border-color: #adb5bd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.top-contact-card.expanded {
    border-color: var(--status-success, #28a745);
    border-width: 2px;
    box-shadow: 0 4px 12px rgba(40, 167, 69, 0.15);
}

/* Top 3 rankings */
.top-contact-card.top-rank-1 {
    border-left: 4px solid #ffd700;
    background: linear-gradient(to right, rgba(255, 215, 0, 0.05), transparent);
}

.top-contact-card.top-rank-2 {
    border-left: 4px solid #c0c0c0;
    background: linear-gradient(to right, rgba(192, 192, 192, 0.05), transparent);
}

.top-contact-card.top-rank-3 {
    border-left: 4px solid #cd7f32;
    background: linear-gradient(to right, rgba(205, 127, 50, 0.05), transparent);
}

.top-contact-header {
    display: flex;
    align-items: center;
    padding: 1rem;
    cursor: pointer;
    gap: 1rem;
}

.top-contact-header:hover {
    background: var(--bg-subtle, #f8f9fa);
}

.top-contact-rank {
    flex-shrink: 0;
    width: 50px;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--text-secondary, #666);
    text-align: center;
}

.top-contact-rank i {
    font-size: 1.1rem;
}

.text-bronze {
    color: #cd7f32;
}

.top-contact-info {
    flex: 1;
    min-width: 0;
}

.top-contact-name {
    font-weight: 600;
    font-size: 1rem;
    color: var(--text-primary, #333);
}

.top-contact-outlet {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
}

.top-contact-outlet .badge {
    font-size: 0.7rem;
    font-weight: 500;
    vertical-align: middle;
}

.top-contact-engagement {
    flex-shrink: 0;
    text-align: right;
}

.top-contact-engagement .engagement-score {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--status-success, #28a745);
    margin-bottom: 0.25rem;
}

.top-contact-engagement .engagement-score i {
    font-size: 1rem;
    margin-right: 0.25rem;
}

.engagement-badges-mini {
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
}

.engagement-badges-mini .badge {
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
}

.top-contact-expand {
    flex-shrink: 0;
    width: 30px;
    text-align: center;
    color: var(--text-muted, #999);
}

.top-contact-expand i {
    transition: transform 0.2s ease;
}

.top-contact-details {
    padding: 0 1rem 1rem 1rem;
    border-top: 1px solid var(--border-light, #eee);
    margin-top: 0;
}

/* Warm Targets -- human disposition (pin / dismiss / snooze) */
.top-contact-card.top-pinned {
    border: 2px solid var(--bh-pin-gold, #f0ad4e);
    background: linear-gradient(to right, rgba(240, 173, 78, 0.08), transparent);
    box-shadow: 0 2px 10px rgba(240, 173, 78, 0.18);
}

.bh-pinned-badge {
    background: var(--bh-pin-gold, #f0ad4e);
    color: #3d2c00;
    font-size: 0.65rem;
    font-weight: 600;
    vertical-align: middle;
}

.bh-disp-menu-btn {
    padding: 0.25rem 0.55rem;
    line-height: 1;
}

/* Kebab uses the dropdown-toggle behaviour but not its caret. */
.bh-disp-menu-btn.dropdown-toggle::after {
    display: none;
}

.top-clients-suppressed {
    margin-top: 0.75rem;
    border-top: 1px dashed var(--border-color, #d6d6d6);
    padding-top: 0.4rem;
}

.bh-suppressed-toggle {
    background: none;
    border: none;
    color: var(--text-secondary, #666);
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.35rem 0.25rem;
    cursor: pointer;
}

.bh-suppressed-toggle:hover { color: var(--text-primary, #333); }
.bh-suppressed-toggle i { margin-right: 0.35rem; }

.bh-suppressed-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.35rem 0 0.25rem;
}

.bh-suppressed-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4rem 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-light, #eee);
    border-radius: 6px;
    opacity: 0.9;
}

.bh-suppressed-main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    min-width: 0;
}

.bh-suppressed-name { font-weight: 600; color: var(--text-primary, #333); }
.bh-suppressed-reason { font-size: 0.8rem; color: var(--text-secondary, #777); }
.bh-suppressed-reason i { margin-right: 0.25rem; }

.bh-suppressed-note {
    font-size: 0.8rem;
    font-style: italic;
    color: var(--text-muted, #999);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 240px;
}

.bh-suppressed-by { font-size: 0.75rem; color: var(--text-muted, #999); }
.bh-suppressed-restore { flex-shrink: 0; white-space: nowrap; }

.bh-disp-reasons {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}

.bh-disp-reason {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
    background: var(--bg-surface, #fff);
}

.bh-disp-reason:hover { background: var(--bg-subtle, #f8f9fa); }

.bh-disp-snooze { width: 100%; }
.bh-disp-snooze .btn { flex: 1 1 0; }

/* Mobile responsive for top contacts */
@media (max-width: 768px) {
    .top-contact-header {
        flex-wrap: wrap;
    }

    .top-contact-rank {
        width: 40px;
    }

    .top-contact-engagement {
        width: 100%;
        text-align: left;
        margin-top: 0.5rem;
        display: flex;
        align-items: center;
        gap: 1rem;
    }

    .engagement-badges-mini {
        justify-content: flex-start;
    }
}

/* ============================
 * D-08: Smart Suggested Contacts
 * ============================ */

.badge-match-industry {
    background: rgba(61, 26, 111, 0.1);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.2rem 0.5rem;
    border-radius: 10px;
}

.badge-match-topic {
    background: rgba(253, 185, 19, 0.15);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.2rem 0.5rem;
    border-radius: 10px;
}

.relevance-score {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.25rem;
}

.relevance-score i {
    font-size: 1rem;
    margin-right: 0.25rem;
    color: var(--brand-accent, #fdb913);
}

.badge-topic-pill {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.2rem 0.6rem;
    border-radius: 10px;
    display: inline-block;
}

.badge-topic-pill small {
    opacity: 0.8;
}

.badge-topic-pill-sm {
    font-size: 0.7rem;
    padding: 0.15rem 0.5rem;
}

/* Smart Suggestions score breakdown */
.suggested-score-breakdown {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 12px 16px;
}
.score-factor {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 0.8rem;
}
.score-factor-value {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.9rem;
}
.score-factor-label {
    color: var(--text-secondary, #666);
}

.alert-sm {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
}

.badge-detail-sm {
    font-size: 0.65rem;
}

/* ============================
 * Phase 5: Outreach Groups Modernization
 * ============================ */

.modern-groups-container {
    padding: 1rem;
}

/* Groups List Panel */
.groups-list-panel {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 1rem;
    height: 100%;
}

.groups-list-panel .panel-header h6 {
    color: var(--text-primary, #333);
    letter-spacing: 0.04em;
}

/* Outreach Groups Rename/Delete pair: enforce uniform stacked layout */
.group-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.group-actions > .btn {
    width: 100%;
    margin: 0;
}

.groups-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 60vh;
    overflow-y: auto;
}

/* Group Cards */
.group-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.group-card:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-subtle, #fafafa);
}

.group-card.selected {
    border-color: var(--status-success, #28a745);
    background: linear-gradient(135deg, #f0fff4 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    border-left: 4px solid var(--status-success, #28a745);
}

.group-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    margin-bottom: 0.25rem;
    font-size: 0.9rem;
}

.group-meta {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}

.group-status-dots {
    display: flex;
    gap: 3px;
    margin-top: 0.5rem;
}

.group-status-dots .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.group-status-dots .dot.active {
    background: var(--status-success, #28a745);
}

.group-status-dots .dot.snoozed {
    background: var(--status-warning-bg, #ffc107);
}

.group-status-dots .dot.inactive {
    background: var(--status-danger, #dc3545);
}

/* Group Members Panel */
.group-members-panel {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.group-members-header {
    padding: 1rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-radius: 8px 8px 0 0;
    border-left: 4px solid var(--brand-accent, #fdb913);
}

.group-members-toolbar {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
    background: var(--bg-subtle, #f8f9fa);
}

/* Contextual bulk-action cluster (Copy + Remove + count), shown when members are selected.
   Lives inline in the top toolbar, divided from the always-on actions by a left rule. */
.group-selection-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-left: 0.5rem;
    border-left: 1px solid var(--border-light, #e9ecef);
}
.group-selection-actions .selection-count-pill {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
}

/* Group Members Panel Table Headers - Yellow Gradient */
.group-members-panel table thead th {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913) !important;
    border-top: 1px solid var(--border-light, #fff5dc) !important;
    border-right: 1px solid var(--border-light, #fff5dc) !important;
    border-bottom: 1px solid var(--border-light, #fff5dc) !important;
    color: var(--brand-primary, #3d1a6f) !important;
    font-weight: 500 !important;
    font-size: 0.9em !important;
}

.group-members-panel table thead th:first-child {
    border-left: 4px solid var(--brand-accent, #fdb913) !important;
}

.group-members-panel table thead th:not(:first-child) {
    border-left: 1px solid var(--border-light, #fff5dc) !important;
}

.group-members-list {
    flex: 1;
    overflow-y: auto;
    max-height: 50vh;
}

/* Group Member Row */
.group-member-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    transition: background 0.15s ease;
    cursor: pointer;
    user-select: none;
}

.group-member-row:hover {
    background: var(--bg-purple-tint, #f0ebf7);
}

/* Click + click-and-drag selection -- canonical purple selection shared with the
   ClientEDM / EmailPitching contact grids (.gv-row-selected, #e8dff5). The checkbox
   is a state indicator; the row drives selection. */
.group-member-row.gv-row-selected,
.group-member-row.gv-row-selected:hover {
    background-color: #e8dff5 !important;
}

[data-theme="dark"] .group-member-row.gv-row-selected,
[data-theme="dark"] .group-member-row.gv-row-selected:hover {
    background-color: #3d2466 !important;
}

.group-member-row:last-child {
    border-bottom: none;
}

.group-member-row .member-checkbox {
    flex-shrink: 0;
    padding-top: 0.2rem;
}

.group-member-row .member-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    pointer-events: none; /* selection driven by the row click; box shows state only */
}

.group-member-row .member-info {
    flex: 1;
    min-width: 0;
}

.group-member-row .member-name {
    font-weight: 500;
    color: var(--text-primary, #333);
    font-size: 0.95rem;
}

.group-member-row .member-outlet {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.15rem;
}

.group-member-row .member-engagement {
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    margin-top: 0.25rem;
}

.group-member-row .member-engagement span {
    margin-right: 0.75rem;
}

.group-member-row .member-engagement i {
    color: var(--text-muted, #999);
    margin-right: 0.2rem;
}

.group-member-row .member-status {
    flex-shrink: 0;
}

/* Empty State */
.empty-state i {
    opacity: 0.4;
}

/* Group Actions Buttons */
.group-actions {
    border-top: 1px solid var(--border-light, #e9ecef);
    padding-top: 1rem;
}

/* Mobile responsive for groups */
@media (max-width: 992px) {
    .modern-groups-container .row {
        flex-direction: column;
    }

    .modern-groups-container .col-md-4,
    .modern-groups-container .col-lg-3 {
        max-width: 100%;
        margin-bottom: 1rem;
    }

    .groups-list {
        max-height: 30vh;
    }

    .group-member-row {
        flex-wrap: wrap;
    }

    .group-member-row .member-engagement {
        width: 100%;
    }
}

@media (max-width: 576px) {
    .modern-groups-container .stats-cards {
        gap: 0.75rem;
    }

    .modern-groups-container .stat-card {
        min-width: 60px;
    }

    .modern-groups-container .stat-value {
        font-size: 1.2rem;
    }

    .group-members-toolbar > .d-flex {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.5rem;
    }
    /* Inner button row: 2 per row instead of 1 to save vertical space */
    .group-members-toolbar .d-flex.gap-2 .btn,
    .group-members-toolbar .d-flex.gap-2 .btn-group {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
    }
    .group-members-toolbar .btn-group > .btn { flex: 1; width: 100%; }
    /* Search + filter row: full width each */
    .group-members-toolbar .input-group,
    .group-members-toolbar .form-control,
    .group-members-toolbar select.form-control {
        width: 100% !important;
        max-width: none !important;
    }
}

/* ====================================
   Phase 5B: Syndication Groups
   ==================================== */

/* Syndication member list */
.syndication-member-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.syndication-member-list .group-member-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    transition: background-color 0.15s ease;
}

.syndication-member-list .group-member-row:hover {
    background-color: var(--bg-subtle, #f8f9fa);
}

.syndication-member-list .member-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
}

.syndication-member-list .member-details {
    display: flex;
    flex-direction: column;
}

.syndication-member-list .member-name {
    font-weight: 600;
    color: var(--text-primary, #333);
}

.syndication-member-list .member-outlet {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-top: 0.25rem;
}

.syndication-member-list .outlet-logo {
    border-radius: 4px;
    border: 1px solid var(--border-light, #e9ecef);
}

.syndication-member-list .member-actions {
    flex-shrink: 0;
}

/* Add Contacts Modal */
.add-contacts-list {
    display: flex;
    flex-direction: column;
}

.add-contact-row {
    display: flex;
    align-items: center;
    padding: 0.4rem 0.85rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    font-size: 0.85rem;
    transition: background 0.12s;
}
.add-contact-row:hover { background: var(--bg-subtle, #f8f5ff); }

.add-contact-row.already-in-group {
    opacity: 0.6;
    background: var(--bg-subtle, #f8f9fa) !important;
    cursor: not-allowed;
}

.add-contact-row input[type="checkbox"] {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    cursor: pointer;
    pointer-events: none; /* Let row handle selection via gridselect.js */
}

.add-contact-row .contact-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.add-contact-row .contact-line1 {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.add-contact-row .contact-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 1;
    min-width: 0;
}

.add-contact-row .contact-name .position {
    font-weight: 400;
    color: var(--text-secondary, #6c757d);
    font-size: 0.8rem;
    margin-left: 0.25rem;
}

.add-contact-row .contact-details {
    font-size: 0.78rem;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.add-contact-row .contact-outlet {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    margin-left: auto;
    flex-shrink: 0;
}

.add-contact-row .contact-outlet .badge {
    font-size: 0.7rem;
    padding: 0.15rem 0.45rem;
    font-weight: 500;
}

.add-contact-row.selected {
    background-color: var(--status-warning-bg, #fff2d1);
    border-left: 3px solid var(--brand-accent, #fdb913);
    padding-left: calc(1rem - 3px);
}
[data-theme="dark"] .add-contact-row.selected {
    background-color: rgba(167, 107, 223, 0.18) !important;
    border-left-color: var(--brand-primary, #a76bdf);
}
[data-theme="dark"] .add-contact-row.selected .contact-name,
[data-theme="dark"] .add-contact-row.selected .contact-details,
[data-theme="dark"] .add-contact-row.selected .contact-interests,
[data-theme="dark"] .add-contact-row.selected .contact-email,
[data-theme="dark"] .add-contact-row.selected .contact-name .position {
    color: var(--text-primary, #e8e8e8) !important;
}

.add-contact-row .contact-interests mark {
    background-color: var(--brand-accent, #fdb913);
    color: var(--text-primary, #333);
    padding: 0 2px;
    border-radius: 2px;
}

.add-contacts-state-cb {
    margin-right: 3px;
}

/* ============================
   Contact Notes & Conversations Sections
   ============================ */

.contact-notes-section,
.conversation-history-section {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px dashed var(--border-light, #e9ecef);
}

.contact-notes-section .section-header,
.conversation-history-section .section-header {
    margin-bottom: 0.5rem;
}

.contact-notes-section .section-header strong,
.conversation-history-section .section-header strong {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
}

.contact-note-content .note-text {
    font-size: 0.9rem;
    color: var(--text-body, #555);
    white-space: pre-wrap;
}

.edit-note-form textarea,
.record-interaction-form textarea {
    width: 100%;
    font-size: 0.9rem;
}

/* Conversation Items */
.conversation-items {
    max-height: 150px;
    overflow-y: auto;
}

.conversation-item {
    background: var(--bg-surface, #fff);
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    margin-bottom: 0.35rem;
    border-left: 2px solid var(--border-light, #e9ecef);
    font-size: 0.8rem;
}

.conversation-item .conv-header {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.75rem;
    margin-bottom: 0.15rem;
}

.conversation-item .conv-date {
    color: var(--text-tertiary, #888);
}

.conversation-item .conv-by {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}

.conversation-item .conv-notes {
    font-size: 0.8rem;
    color: var(--text-primary, #444);
    white-space: pre-wrap;
    max-height: 2.4em;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Reception Badges - scoped to badge elements only, not full rows */
.reception-badge {
    font-size: 0.7rem;
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    font-weight: 500;
}

.reception-badge.reception-hot,
.badge.reception-hot,
.conversation-reception.reception-hot {
    background: var(--status-success-bg, #d4edda) !important;
    color: var(--status-success-text, #155724) !important;
}

.reception-badge.reception-warm,
.badge.reception-warm,
.conversation-reception.reception-warm {
    background: var(--status-warning-bg, #fff3cd) !important;
    color: var(--status-warning-text, #856404) !important;
}

.reception-badge.reception-lukewarm,
.badge.reception-lukewarm,
.conversation-reception.reception-lukewarm {
    background: var(--bg-gold-tint, #ffe5d0) !important;
    color: var(--status-warning-text, #7d4600) !important;
}

.reception-badge.reception-cold,
.badge.reception-cold,
.conversation-reception.reception-cold {
    background: #e2e3e5 !important;
    color: #383d41 !important;
}

.reception-badge.reception-icecold,
.badge.reception-icecold,
.conversation-reception.reception-icecold {
    background: #e2e3e5 !important;
    color: #383d41 !important;
}

.reception-default {
    background: var(--bg-muted, #e9ecef);
    color: var(--text-secondary, #666);
}

/* Record Interaction Form */
.record-interaction-form {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 0.75rem;
}

.record-interaction-form .form-section-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}

/* ============================
   Modern Form Styles (Register.aspx pattern)
   ============================ */

.modern-form-group {
    margin-bottom: 1rem;
}

.modern-form-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.375rem;
}

.modern-form-group label i {
    margin-right: 0.375rem;
    color: var(--brand-accent, #fdb913);
    width: 16px;
}

.modern-form-group .form-control {
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    font-size: 0.95rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background-color: var(--bg-subtle, #fafafa);
    height: auto;
    min-height: 40px;
    line-height: 1.5;
}

.modern-form-group .form-control:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 3px rgba(61, 26, 111, 0.1);
    background-color: var(--bg-surface, #fff);
    outline: none;
}

.modern-form-group .form-control::placeholder {
    color: var(--text-muted, #aaa);
}

.form-row-split {
    display: flex;
    gap: 0.75rem;
}

.form-row-split > .modern-form-group {
    flex: 1;
}

.form-section {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    margin-bottom: 1.25rem;
}

.form-section-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}

.help-text {
    font-size: 0.8rem;
    color: var(--text-secondary, #777);
    margin-top: 0.25rem;
}

/* REMOVED: Duplicate .btn-xs (dead code - first definition at line 2544 with !important wins) */

/* Responsive form layout */
@media (max-width: 576px) {
    .form-row-split {
        flex-direction: column;
        gap: 0;
    }
}

/* ============================================
   Global FormView Modern Styling
   Automatically styles FormViews in modals
   ============================================ */

/* Modal FormView container */
.modalPopup .container,
.modal-body .container,
.form-view-modern {
    /* Keep existing layout but add padding */
}

/* Style label columns in FormViews */
.modalPopup [class*="col-md-2"].text-left,
.modalPopup [class*="col-md-2"].text-right,
.modal-body [class*="col-md-2"].text-left,
.modal-body [class*="col-md-2"].text-right,
.form-view-modern .form-label-col {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
    padding-top: 0.875rem;
    padding-bottom: 0.5rem;
}

/* Required field indicator */
.modalPopup .required,
.modal-body .required,
.form-view-modern .required {
    position: relative;
}
.modalPopup .required::after,
.modal-body .required::after,
.form-view-modern .required::after {
    content: "*";
    color: var(--status-danger, #dc3545);
    margin-left: 0.25rem;
    font-weight: bold;
}

/* Modern form controls in modals */
.modalPopup .form-control,
.modalPopup select.form-control,
.modal-body .form-control,
.modal-body select.form-control,
.form-view-modern .form-control {
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    font-size: 0.95rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background-color: var(--bg-subtle, #fafafa);
    min-height: 44px;
}

.modalPopup .form-control:focus,
.modalPopup select.form-control:focus,
.modal-body .form-control:focus,
.modal-body select.form-control:focus,
.form-view-modern .form-control:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 3px rgba(61, 26, 111, 0.1);
    background-color: var(--bg-surface, #fff);
    outline: none;
}

.modalPopup .form-control::placeholder,
.modal-body .form-control::placeholder,
.form-view-modern .form-control::placeholder {
    color: var(--text-muted, #aaa);
}

/* Textarea styling */
.modalPopup textarea.form-control,
.modal-body textarea.form-control,
.form-view-modern textarea.form-control {
    min-height: 100px;
    resize: vertical;
}

/* Input group styling in modals */
.modalPopup .input-group,
.modal-body .input-group,
.form-view-modern .input-group {
    display: flex;
    flex-direction: row !important;
    flex-wrap: nowrap;
    align-items: stretch;
}

/* Fixed-width icon prepends: constrain to 42px so all icons align vertically.
   Only targets prepends containing an <i> icon -- text-label prepends are unaffected.
   .prepend-auto opts out (hybrid icon+text labels, wider brand icons). */
.input-group .input-group-prepend:not(.prepend-auto):has(> .input-group-text > i) {
    display: flex;
    flex: 0 0 42px;
    max-width: 42px;
}

.input-group .input-group-prepend:not(.prepend-auto):has(> .input-group-text > i) .input-group-text {
    width: 42px;
    justify-content: center;
}

.modalPopup .input-group .input-group-text,
.modal-body .input-group .input-group-text,
.form-view-modern .input-group .input-group-text {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border: 1px solid var(--border-default, #e0e0e0);
    border-right: none;
    color: var(--brand-primary, #3d1a6f);
    border-radius: 8px 0 0 8px;
    display: flex;
    align-items: center;
}

.modalPopup .input-group .form-control,
.modal-body .input-group .form-control,
.form-view-modern .input-group .form-control {
    border-radius: 0 8px 8px 0;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

/* Row spacing in FormViews - only apply to form-view-modern to avoid conflicts */
.form-view-modern .row {
    margin-bottom: 0.75rem;
}

/* Checkbox styling */
.modalPopup input[type="checkbox"],
.modal-body input[type="checkbox"],
.form-view-modern input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--brand-primary, #3d1a6f);
    margin-right: 0.5rem;
}

/* Better validation message styling - only for validator spans, not buttons */
.modalPopup span.text-danger,
.modal-body span.text-danger,
.form-view-modern span.text-danger {
    font-size: 0.85rem;
    margin-top: 0.25rem;
    display: block;
}

/* Keep asterisks inline within labels and table headers (override above rule) */
.modalPopup label span.text-danger,
.modal-body label span.text-danger,
.form-view-modern label span.text-danger,
.modalPopup th span.text-danger,
.modal-body th span.text-danger {
    display: inline;
    margin-top: 0;
    font-size: inherit;
}

/* Primary action button in FormView modals - use specific class to avoid conflicts */
.form-view-modern .btn-danger,
.form-view-modern a.btn-danger {
    background: linear-gradient(135deg, #ed174c 0%, #d41544 100%);
    border: none;
    padding: 0.625rem 1.5rem;
    border-radius: 8px;
    font-weight: 500;
    color: var(--text-on-dark, #fff) !important;
    transition: all 0.2s ease;
}

.form-view-modern .btn-danger:hover {
    background: linear-gradient(135deg, #d41544 0%, #b8123b 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(237, 23, 76, 0.3);
    color: var(--text-on-dark, #fff);
}

.form-view-modern .btn-danger:focus {
    background: linear-gradient(135deg, #ed174c 0%, #d41544 100%);
    box-shadow: 0 0 0 3px rgba(237, 23, 76, 0.3);
    outline: none;
    color: var(--text-on-dark, #fff);
}

/* Secondary/default button in FormView modals */
.form-view-modern .btn-default {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e0e0e0);
    padding: 0.625rem 1.5rem;
    border-radius: 8px;
    font-weight: 500;
    color: var(--text-secondary, #666);
    transition: all 0.2s ease;
}

.form-view-modern .btn-default:hover {
    background: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #333);
}

.form-view-modern .btn-default:focus {
    background: var(--bg-subtle, #f8f9fa);
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
    outline: none;
}

/* Modal header styling - only for FormView modals without existing header styling */
.form-view-modern .header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 1rem 1.5rem;
}

.form-view-modern .header h4,
.form-view-modern .header h5 {
    margin: 0;
    font-weight: 500;
}

/* Modal body padding - only apply to form-view-modern class */
.form-view-modern .body {
    padding: 1.5rem;
}

/* Form section dividers - only for form-view-modern */
.form-view-modern hr {
    border: none;
    border-top: 1px solid var(--border-light, #e9ecef);
    margin: 1.25rem 0;
}

/* Rich text editor wrapper - only for form-view-modern */
.form-view-modern .richtextwrapper-xs {
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    overflow: hidden;
}

/* Blocked Emails Tab Modern Styling */
.blocked-emails-stats {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.blocked-stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    padding: 1rem 1.5rem;
    flex: 1;
    min-width: 150px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-left: 4px solid var(--status-danger, #dc3545);
}

.blocked-stat-card.warning { border-left-color: var(--status-warning-border, #ffc107); }
.blocked-stat-card.info { border-left-color: var(--status-info, #17a2b8); }

.blocked-stat-value {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.blocked-stat-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

/* .blocked-stats-wrapper / .blocked-stats-dismiss-btn REMOVED 2026-07-20: retired by
   the dismissable-stats-bar consolidation. Use data-bh-stats-bar. */

/* Blocked emails table improvements */
.table-blocked-emails {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.table-blocked-emails th {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%) !important;
    border-left: 4px solid var(--brand-accent, #fdb913) !important;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}

.table-blocked-emails .btn-sm {
    border-radius: 6px;
    padding: 0.375rem 0.625rem;
}

.table-blocked-emails td:first-child {
    white-space: nowrap;
}

.table-blocked-emails .btn-sm.green,
.table-blocked-emails .btn-sm.green:hover,
.table-blocked-emails .btn-sm.green:focus {
    background: var(--status-success, #28a745) !important;
    border: none !important;
    color: var(--text-on-dark, #fff) !important;
}

.table-blocked-emails .btn-sm.red,
.table-blocked-emails .btn-sm.red:hover,
.table-blocked-emails .btn-sm.red:focus {
    background: var(--status-danger, #dc3545) !important;
    border: none !important;
    color: var(--text-on-dark, #fff) !important;
}

/* Block reason column */
.table-blocked-emails .wraplong {
    max-width: 200px;
    word-wrap: break-word;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

/* ============================================
   Outlet Details Modern View
   ============================================ */

.outlet-profile {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    overflow: hidden;
}

/* Header section with logo and key info */
.outlet-profile-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    padding: 1.5rem;
    color: var(--text-on-dark, #fff);
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.outlet-profile-logo {
    width: 80px;
    height: 80px;
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.outlet-profile-logo img {
    max-width: 70px;
    max-height: 70px;
    object-fit: contain;
}

.outlet-profile-title {
    flex: 1;
}

.outlet-profile-title h3 {
    margin: 0 0 0.5rem 0;
    font-size: 1.5rem;
    font-weight: 600;
}

.outlet-profile-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.outlet-badge {
    background: rgba(255,255,255,0.2);
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
}

.outlet-badge.type { background: var(--brand-accent, #fdb913); color: var(--text-primary, #333); }
.outlet-badge.size { background: rgba(255,255,255,0.3); }
.outlet-badge.reach { background: var(--status-success, #28a745); color: var(--text-on-dark, #fff); }

/* Profile body sections */
.outlet-profile-body {
    padding: 1.5rem;
}

.outlet-section {
    margin-bottom: 1.5rem;
}

.outlet-section:last-child {
    margin-bottom: 0;
}

.outlet-section-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ============================================================
   Manage Locations -- read-only detail view (Admin > Locations).
   Modern key/value layout replacing the legacy disabled-input grid.
   Tokens flip in dark mode; empty values fall back to "Not set".
   ============================================================ */
.loc-detail {
    max-width: 860px;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 14px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.loc-detail-head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 0.25rem;
}
.loc-detail-head .loc-pin {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.15rem;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
    border: 1px solid var(--border-default, #dddddd);
}
.loc-detail-title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--page-title-color, #3d1a6f);
}
.loc-detail-sub {
    font-size: 0.85rem;
    color: var(--text-muted, #6c757d);
    margin-top: 0.15rem;
}
.loc-section { margin-top: 1.6rem; }
.loc-kv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.95rem 1.75rem;
}
.loc-kv { min-width: 0; }
.loc-kv-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted, #8a8a99);
    margin-bottom: 0.2rem;
}
.loc-kv-value {
    display: block;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--text-body, #555555);
    word-break: break-word;
}
.loc-kv-value:empty::after {
    content: 'Not set';
    font-weight: 400;
    font-style: italic;
    color: var(--text-muted, #b0b0bc);
}
.loc-kv-value--pct:not(:empty)::after { content: '%'; }
.loc-detail-actions {
    margin-top: 1.75rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.outlet-section-title i {
    color: var(--brand-accent, #fdb913);
    width: 20px;
}

/* Field display grid */
.outlet-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (max-width: 768px) {
    .outlet-fields {
        grid-template-columns: 1fr;
    }
}

.outlet-field {
    display: flex;
    flex-direction: column;
}

.outlet-field.full-width {
    grid-column: 1 / -1;
}

.outlet-field-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 0.25rem;
}

.outlet-field-value {
    font-size: 0.95rem;
    color: var(--text-primary, #333);
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    min-height: 1.5rem;
}

.outlet-field-value:empty::after {
    content: "-";
    color: #ccc;
}

.outlet-field-value a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

.outlet-field-value a:hover {
    text-decoration: underline;
}

/* Contact info with icons */
.outlet-contact-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}

.outlet-contact-icon {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-primary, #3d1a6f);
    flex-shrink: 0;
}

.outlet-contact-text {
    flex: 1;
}

.outlet-contact-text .label {
    font-size: 0.7rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
}

.outlet-contact-text .value {
    color: var(--text-primary, #333);
    font-size: 0.95rem;
}

/* Description/notes area */
.outlet-description {
    background: var(--bg-subtle, #f8f9fa);
    padding: 1rem;
    border-radius: 8px;
    font-size: 0.95rem;
    color: var(--text-body, #555);
    line-height: 1.6;
}

/* Footer with metadata */
.outlet-profile-footer {
    padding: 1rem 1.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border-top: 1px solid var(--border-light, #e9ecef);
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    display: flex;
    justify-content: space-between;
}

/* Edit button in header */
.outlet-profile-actions {
    flex-shrink: 0;
}

.outlet-profile-actions .btn {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.outlet-profile-actions .btn:hover {
    background: rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
}

/* Edit Talent: Upload Headshot button. Same overlay pattern as the
   outlet-profile-actions version below -- the AsyncFileUpload's <input type="file">
   sits absolute+transparent on top of the styled .btn so clicks on the button
   land on the file picker. Without position:relative on the .btn, the .uploader
   overlay escapes to a far ancestor and the button is inert. */
.talent-headshot-uploader .btn {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}
.talent-headshot-uploader .uploader {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* Upload Logo button in outlet profile header */
.outlet-profile-actions .dm-uploader {
    display: inline-block;
    margin-right: 0.5rem;
}

.outlet-profile-actions .dm-uploader .btn {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    transition: all 0.2s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.outlet-profile-actions .dm-uploader .btn:hover {
    background: rgba(255,255,255,0.3);
    color: var(--text-on-dark, #fff);
}

/* Hide the default file input but keep it functional */
.outlet-profile-actions .dm-uploader .uploader {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* Loading indicator for upload */
.outlet-profile-actions .loadingbee {
    width: 20px;
    height: 20px;
    margin-left: 0.5rem;
    vertical-align: middle;
}

/* ============================================
   Form Card Container
   Reusable card-style form container with yellow header
   Use with .form-view-modern for complete styling
   ============================================ */

.form-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 1.25rem;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    margin-bottom: 1rem;
}

/* Yellow gradient header for form cards */
.form-card h3,
.form-card h4,
.form-card .form-header {
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin: 0 -1.25rem 1rem -1.25rem;
    padding: 0.75rem 1.25rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 10px 10px 0 0;
}

.form-card h3:first-child,
.form-card h4:first-child,
.form-card .form-header:first-child {
    margin-top: -1.25rem;
}

/* Row spacing in form cards */
.form-card .row {
    margin-bottom: 0.875rem;
}

/* Mobile responsiveness for form cards */
@media (max-width: 768px) {
    .form-card {
        padding: 1rem;
        border-radius: 8px;
    }

    .form-card h3,
    .form-card h4,
    .form-card .form-header {
        margin: 0 -1rem 1rem -1rem;
        padding: 0.625rem 1rem;
        font-size: 0.95rem;
    }

    .form-card h3:first-child,
    .form-card h4:first-child {
        margin-top: -1rem;
    }
}

/* Alias for backwards compatibility */
.storybuilder-form {
    /* Layout wrapper only -- NOT an outer card. Every panel using this class
       contains its own .profile-card chrome, so a surrounding bg + shadow +
       padding box was a redundant "card in a card" that broke gutter/width
       parity with the Brief/SMART/Outcomes tabs (bare cards in the .container).
       Kept as a plain full-width block so inner .row/.col negative-margin
       gutters still resolve to the container edge. */
    margin-bottom: 1rem;
}

.storybuilder-form h3,
.storybuilder-form h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin: 0 -1.25rem 1rem -1.25rem;
    padding: 0.75rem 1.25rem;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 10px 10px 0 0;
}

.storybuilder-form h3:first-child,
.storybuilder-form h4:first-child {
    margin-top: -1.25rem;
}

.storybuilder-form .row {
    margin-bottom: 0.875rem;
}

@media (max-width: 768px) {
    .storybuilder-form h3,
    .storybuilder-form h4 {
        margin: 0 -1rem 1rem -1rem;
        padding: 0.625rem 1rem;
    }
    .storybuilder-form h3:first-child,
    .storybuilder-form h4:first-child {
        margin-top: -1rem;
    }
}

/* ============================================
   PROFILE CARD - Reusable Modern FormView Pattern
   ============================================

   USE THIS PATTERN TO MODERNIZE ANY FORMVIEW

   HTML Structure:
   ---------------
   <div class="profile-card">
       <!-- Optional Header with gradient and title -->
       <div class="profile-card-header">
           <div class="profile-card-title">
               <h3>Title Here</h3>
               <div class="profile-card-badges">
                   <span class="profile-badge type">Badge 1</span>
                   <span class="profile-badge">Badge 2</span>
               </div>
           </div>
           <div class="profile-card-actions">
               <asp:LinkButton CssClass="btn" Text="Edit" />
           </div>
       </div>

       <!-- Body with sections -->
       <div class="profile-card-body">
           <div class="profile-section">
               <div class="profile-section-title">
                   <i class="fa fa-info-circle"></i> Section Title
               </div>
               <div class="profile-fields">
                   <div class="profile-field">
                       <div class="profile-field-label">Field Label</div>
                       <div class="profile-field-value">Field Value</div>
                   </div>
                   <div class="profile-field full-width">
                       <div class="profile-field-label">Full Width Field</div>
                       <div class="profile-field-value">Spans both columns</div>
                   </div>
               </div>
           </div>
       </div>

       <!-- Optional Footer -->
       <div class="profile-card-footer">
           <span>Last Modified: Date</span>
           <span>By: User</span>
       </div>
   </div>

   ============================================ */

/* Main container */
.profile-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

/* User-resizable scroll panel: compact ~150px default, drag the native bottom-right
   grip to grow up to 60vh or shrink to 80px. No persistence -- resets each open.
   Used by the AM Agreement Team & Costs cards (Rate Card / Purchase Orders /
   Contract Addendums). overflow-x:hidden keeps computed overflow non-visible so
   `resize` applies. */
.agr-resize-y {
    height: 150px;
    min-height: 80px;
    max-height: 60vh;
    overflow-x: hidden;
    overflow-y: auto;
    resize: vertical;
}
/* Native CSS resize is a desktop pointer affordance; the modal is fullscreen and
   already scrolls under 990px, so drop the dead grip on small/touch viewports. */
@media (max-width: 990px) {
    .agr-resize-y {
        resize: none;
    }
}

/* Header - Purple gradient */
.profile-card-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    padding: 1.5rem;
    color: var(--text-on-dark, #fff);
    display: flex;
    align-items: center;
    gap: 1rem;
    border-radius: 10px;
    margin-bottom: 15px;
}

/* Header - Section band (`.yellow` legacy name, slate-tint visual since 2026-05-12) */
.profile-card-header.yellow {
    background: linear-gradient(135deg, var(--bg-slate-tint, #f1f0f4) 0%, var(--bg-slate-tint-2, #f8f7fa) 100%);
    color: var(--brand-primary, #3d1a6f);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: clamp(0.4rem, 0.6vw + 0.25rem, 0.625rem) clamp(0.75rem, 1vw + 0.5rem, 1rem);
    gap: 0.625rem;
}
/* Square the whole LEFT edge so the gold accent reads as a clean straight spine
   (no rounded-corner arc clipped by overflow:hidden -- the "ear"). Left corners
   square, right corners stay soft. Scoped to section-header cards. */
.profile-card:has(> .profile-card-header.yellow) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
/* In-card section headers (ANY context, not just .sub-content) connect flush to
   the body and square their left corner to match the card's squared left edge.
   Base .profile-card-header sets 10px all-round + margin-bottom:15px (standalone
   intent); inside a card that rounds the wrong corners and detaches the band. */
.profile-card > .profile-card-header.yellow {
    border-radius: 0 12px 0 0;
    margin-bottom: 0;
}
.profile-card-header.yellow h3,
.profile-card-header.yellow h4,
.profile-card-header.yellow h5 {
    font-size: clamp(0.95rem, 0.3vw + 0.85rem, 1.05rem);
    font-weight: 600;
}

.profile-card-header.yellow .profile-badge {
    background: rgba(61,26,111,0.1);
    color: var(--brand-primary, #3d1a6f);
}

.profile-card-header.yellow .profile-card-actions .btn-primary {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff) !important;
}
.profile-card-header.yellow .profile-card-actions .btn-primary:hover {
    background: var(--brand-magenta, #7d1d61);
    border-color: var(--brand-magenta, #7d1d61);
}
.profile-card-header.yellow .profile-card-actions .btn-default {
    background: var(--bg-surface, #fff);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f) !important;
}
.profile-card-header.yellow .profile-card-actions .btn-default:hover {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff) !important;
}
.profile-card-header.yellow .profile-card-actions .btn-danger {
    background: var(--status-danger, #dc3545);
    border-color: var(--status-danger, #dc3545);
    color: var(--text-on-dark, #fff) !important;
}
.profile-card-header.yellow .profile-card-actions .btn-danger:hover {
    background: #c82333;
    border-color: #bd2130;
}

/* Header - Warm gradient variant (SMART / GOALS consistency) */
.profile-card-header.warm {
    background: linear-gradient(135deg, #f6d365 0%, #fda085 100%);
    color: var(--text-primary, #333);
    border-left: none;
}

.profile-card-header.warm h3,
.profile-card-header.warm h4,
.profile-card-header.warm h5 {
    color: var(--text-primary, #333);
}

.profile-card-header.warm .profile-badge {
    background: rgba(0,0,0,0.1);
    color: var(--text-primary, #333);
}

.profile-card-header.warm .profile-card-actions .btn {
    background: rgba(0,0,0,0.15);
    border-color: rgba(0,0,0,0.2);
    color: var(--text-primary, #333);
}

.profile-card-header.warm .profile-card-actions .btn:hover {
    background: rgba(0,0,0,0.25);
}

/* Canvas-page type accents (Reporting > Canvas Pages editor). Cover / Body / Back
   share the slate-tint section-header; only the 4px left-accent + icon colour change
   so each editable page self-identifies. Three-class specificity beats the base
   .profile-card-header.yellow rule; slate-tint bg flips in dark mode already and
   these accent hexes read on both light and dark slate. */
.profile-card-header.yellow.bh-canvas-type--cover { border-left: 4px solid #2f6fb0; }
.profile-card-header.yellow.bh-canvas-type--cover h4 i { color: #2f6fb0; }
.profile-card-header.yellow.bh-canvas-type--body { border-left: 4px solid #8a9099; }
.profile-card-header.yellow.bh-canvas-type--body h4 i { color: #8a9099; }
.profile-card-header.yellow.bh-canvas-type--back { border-left: 4px solid #5b6b7f; }
.profile-card-header.yellow.bh-canvas-type--back h4 i { color: #5b6b7f; }
/* Dark mode: brighten the accents so they read on the dark slate-tint header
   (the light slate hexes above go muddy on dark, slate-on-slate worst). */
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--cover { border-left-color: #5b9bd5; }
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--cover h4 i { color: #5b9bd5; }
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--body { border-left-color: #aab0b8; }
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--body h4 i { color: #aab0b8; }
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--back { border-left-color: #8ea0b5; }
[data-theme="dark"] .profile-card-header.yellow.bh-canvas-type--back h4 i { color: #8ea0b5; }

.profile-card-title {
    flex: 1;
}

.profile-card-title h3,
.profile-card-title h4,
.profile-card-title h5 {
    margin: 0 0 0.5rem 0;
    font-size: 1.35rem;
    font-weight: 600;
    color: inherit;
}

.profile-card-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.profile-badge {
    background: rgba(255,255,255,0.2);
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
}

.profile-badge.type { background: var(--brand-accent, #fdb913); color: var(--text-primary, #333); }
.profile-badge.status { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.profile-badge.success { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.profile-badge.warning { background: var(--status-warning-bg, #ffc107); color: var(--text-primary, #333); }
.profile-badge.danger { background: var(--status-danger, #dc3545); color: var(--text-on-dark, #fff); }
.profile-badge.info { background: rgba(255,255,255,0.3); }

/* Light green badge override for Bootstrap bg-success */
.profile-field-value .badge.bg-success,
.badge.bg-success-light { background: var(--status-success-bg, #d4edda) !important; color: var(--status-success-text, #155724) !important; }

/* Purple badge for Custom Reports */
.badge.bg-purple { background: var(--brand-primary, #3d1a6f) !important; color: var(--text-on-dark, #fff) !important; }

/* Unified document type badges - consistent purple-tinted style */
.badge.doc-type-badge-unified {
    background: #f0ebf5 !important;
    color: var(--brand-primary, #3d1a6f) !important;
    font-weight: 500;
    border: 1px solid #d4c5e6;
}

/* Document status badges */
.badge.doc-status-positive {
    background: var(--brand-primary, #3d1a6f) !important;
    color: var(--text-on-dark, #fff) !important;
}
.badge.doc-status-neutral {
    background: var(--bg-muted, #e9ecef) !important;
    color: var(--text-body, #555) !important;
}
.badge.doc-status-negative {
    background: var(--status-danger-bg, #f8d7da) !important;
    color: var(--status-danger-text, #721c24) !important;
}

/* Header actions (Edit button) */
.profile-card-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.profile-card-actions .btn {
    padding: 0.5rem 1rem;
    border-radius: 8px;
    transition: all 0.2s ease;
}

/* Body */
.profile-card-body {
    padding: 1.5rem;
}

/* Sections within body */
.profile-section {
    margin-bottom: 1.5rem;
}

.profile-section:last-child {
    margin-bottom: 0;
}

.profile-section-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.profile-section-title i {
    color: var(--brand-accent, #fdb913);
    width: 20px;
}

/* Field grid - 2 columns */
.profile-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (max-width: 768px) {
    .profile-fields {
        grid-template-columns: 1fr;
    }
}

/* Individual field */
.profile-field {
    display: flex;
    flex-direction: column;
}

.profile-field.full-width {
    grid-column: 1 / -1;
}

.profile-field-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 0.25rem;
    white-space: nowrap;
}

.profile-field-value {
    font-size: 0.95rem;
    color: var(--text-primary, #333);
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    min-height: 1.5rem;
}

.profile-field-value:empty::after {
    content: "-";
    color: #ccc;
}

.profile-field-value a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

.profile-field-value a:hover {
    text-decoration: underline;
}

/* Override form-control styling inside profile-field-value for read-only display */
.profile-field-value input.form-control,
.profile-field-value textarea.form-control,
.profile-field-value select.form-control,
.profile-field-value input[readonly],
.profile-field-value textarea[readonly] {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    height: auto;
    min-height: unset;
    font-size: 0.95rem;
    color: var(--text-primary, #333);
    cursor: default;
}

.profile-field-value input.form-control:focus,
.profile-field-value textarea.form-control:focus {
    background: transparent;
    border: none;
    box-shadow: none;
    outline: none;
}

/* Contact item with icon (phone, email, website) */
.profile-contact-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}

.profile-contact-icon {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-primary, #3d1a6f);
    flex-shrink: 0;
}

.profile-contact-text {
    flex: 1;
}

.profile-contact-text .label {
    font-size: 0.7rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
}

.profile-contact-text .value {
    color: var(--text-primary, #333);
    font-size: 0.95rem;
}

/* Description/notes box */
.profile-description {
    background: var(--bg-subtle, #f8f9fa);
    padding: 1rem;
    border-radius: 8px;
    font-size: 0.95rem;
    color: var(--text-body, #555);
    line-height: 1.6;
}

/* Agreed-services line-item detail: no card chrome, tight bullet indent.
   Used by CampaignBuilder Brief tab > Agreed Services rendering. */
.bh-service-detail {
    font-size: 0.9rem;
    color: var(--text-body, #555);
    line-height: 1.5;
    padding-left: 1.75rem;
}
.bh-service-detail ul,
.bh-service-detail ol {
    margin: 0;
    padding-left: 1.25rem;
}
.bh-service-detail p:last-child {
    margin-bottom: 0;
}

/* Footer */
.profile-card-footer {
    padding: 1rem 1.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border-top: 1px solid var(--border-light, #e9ecef);
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

/* Simple variant without purple header - just a white card with sections */
.profile-card.simple .profile-card-body {
    padding-top: 0;
}

.profile-card.simple > .profile-section:first-child {
    margin-top: 1.5rem;
}

/* Compact variant for smaller displays */
.profile-card.compact .profile-card-header {
    padding: 1rem;
}

.profile-card.compact .profile-card-body {
    padding: 1rem;
}

.profile-card.compact .profile-section {
    margin-bottom: 1rem;
}

.profile-card.compact .profile-fields {
    gap: 0.75rem;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .profile-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .profile-card-actions {
        width: 100%;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.5rem;
    }

    .profile-card-actions > * {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .profile-card-actions .btn {
        width: 100% !important;
        text-align: center;
    }

    .profile-card-actions .btn-group {
        display: flex !important;
    }

    .profile-card-actions .btn-group > .btn,
    .profile-card-actions .btn-group > label.btn {
        flex: 1 1 0 !important;
        width: auto !important;
    }

    .profile-card-footer {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Preference Rows (theHive Preferences tab) */
.pref-row {
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border-radius: 8px;
    gap: 14px;
    transition: background 0.15s;
    margin-bottom: 4px;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

.pref-row:hover {
    background: var(--bg-purple-tint, #faf8ff);
    text-decoration: none;
    color: inherit;
}

.pref-row.featured {
    background: linear-gradient(135deg, var(--bg-purple-tint, #faf5ff) 0%, var(--bg-purple-tint, #f5f0ff) 100%);
    border: 1px solid #e8dff5;
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 16px 14px;
    margin-bottom: 8px;
}

.pref-row.featured:hover {
    background: linear-gradient(135deg, #f3ecff 0%, #ede5ff 100%);
    border-color: #d4c5ee;
    border-left-color: var(--brand-accent, #fdb913);
}

.pref-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #f0ebf8;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.pref-row.featured .pref-icon {
    background: linear-gradient(135deg, #3d1a6f, #5a2d9e);
    color: var(--text-on-dark, #fff);
}

.pref-text {
    flex: 1;
    min-width: 0;
}

.pref-text h4 {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: var(--text-primary, #333);
    line-height: 1.3;
    margin: 0;
}

.pref-row.featured .pref-text h4 {
    font-size: 0.9rem !important;
}

.pref-text p {
    font-size: 0.75rem !important;
    color: var(--text-muted, #999);
    margin: 1px 0 0;
    line-height: 1.3;
}

.pref-arrow {
    color: #ccc;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.pref-row:hover .pref-arrow {
    color: var(--brand-primary, #3d1a6f);
}

.pref-badge {
    display: inline-block;
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.6rem;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 4px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin-left: 8px;
    vertical-align: middle;
}

/* Preferences card container */
.preferences-card {
    max-width: 860px;
    margin: 2rem auto;
}

@media (max-width: 576px) {
    .pref-text p {
        display: none;
    }

    .pref-icon {
        width: 32px;
        height: 32px;
        font-size: 0.85rem;
    }
}

/* Preferences & Profile - Dark mode */
[data-theme="dark"] .pref-row:hover {
    background: var(--bg-muted, #1e1e1e);
}
[data-theme="dark"] .pref-row.featured {
    background: var(--bg-subtle, #1a1a1a);
    border-color: var(--border-default, #2a2a2a);
    border-left-color: var(--brand-accent-bright, #fdb913);
}
[data-theme="dark"] .pref-row.featured:hover {
    background: var(--bg-muted, #1e1e1e);
    border-color: var(--border-strong, #3a3a3a);
    border-left-color: var(--brand-accent-bright, #fdb913);
}
[data-theme="dark"] .pref-icon {
    background: var(--bg-muted, #1e1e1e);
}
[data-theme="dark"] .pref-arrow {
    color: var(--text-muted, #808080);
}
[data-theme="dark"] .pref-row:hover .pref-arrow {
    color: var(--brand-primary);
}

/* Preference toggles (Dark Mode, Font Size) reuse the canonical .bh-duration-chip
   component -- no page-scoped styling needed; selected state fills brand purple. */

[data-theme="dark"] .profile-section-header {
    background: var(--bg-subtle, #1a1a1a);
}

[data-theme="dark"] .profile-section-header:hover {
    background: var(--bg-elevated, #242424);
}

/* Profile Card - Collapsible Sections */
.profile-section-collapsible {
    border-top: 1px solid var(--border-light, #e9ecef);
}

.profile-section-header {
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, var(--bg-surface, var(--bg-surface, var(--bg-surface, #fff))) 100%);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    transition: background 0.2s ease;
}

.profile-section-header:hover {
    background: linear-gradient(135deg, #f0f1f3 0%, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 100%);
}

.profile-section-header i:first-child {
    color: var(--brand-accent, #fdb913);
}

.profile-section-header .fa-chevron-down {
    margin-left: auto;
    transition: transform 0.3s ease;
    color: var(--text-tertiary, #888);
}

.profile-section-header[aria-expanded="false"] .fa-chevron-down {
    transform: rotate(-90deg);
}

.profile-section-content {
    padding: 1rem 1.5rem;
}

.profile-section-content .profile-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.profile-section-content .profile-field.full-width {
    grid-column: 1 / -1;
}

.profile-section-content .richtextwrapper {
    margin: 0;
}

@media (max-width: 768px) {
    .profile-section-content .profile-fields {
        grid-template-columns: 1fr;
    }
}

/* =============================================
   EDM Email Groups - Modern View Styles
   ============================================= */

/* Stats Bar */
.edm-stats-bar {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.edm-stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    padding: 1rem 1.5rem;
    flex: 1;
    min-width: 150px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
}

.edm-stat-value {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--text-primary, #333);
}

.edm-stat-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
}

/* Groups Sidebar */
.edm-groups-sidebar {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    overflow: hidden;
}

.edm-groups-header {
    padding: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-bottom: 1px solid var(--border-light, #eee);
}

.edm-groups-header h5 {
    margin: 0;
    font-size: 1rem;
    color: var(--text-primary, #333);
}

.edm-groups-header h5 i {
    margin-right: 0.5rem;
    color: var(--brand-accent, #fdb913);
}

.edm-groups-list {
    max-height: 60vh;
    overflow-y: auto;
}

.edm-group-item {
    padding: 0.75rem 1rem;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    transition: all 0.2s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.edm-group-item:hover {
    background: var(--bg-gold-tint, #fff5dc);
}

.edm-group-item.active {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
}

.edm-group-item.active .edm-group-count {
    background: rgba(255,255,255,0.2);
    color: var(--text-on-dark, #fff);
}

.edm-group-name {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.edm-group-count {
    font-size: 0.75rem;
    background: var(--bg-muted, #eee);
    padding: 0.2rem 0.5rem;
    border-radius: 12px;
    color: var(--text-secondary, #666);
    margin-left: 0.5rem;
}

/* Group Panel */
.edm-group-panel {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    padding: 1.5rem;
}

.edm-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-light, #eee);
}

.edm-group-header h4 {
    margin: 0;
    font-size: 1.25rem;
    color: var(--text-primary, #333);
}

.edm-group-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.edm-group-toolbar {
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}

/* No Group Selected State */
#edmNoGroupSelected {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    padding: 3rem 2rem;
}

#edmNoGroupSelected i {
    color: #ccc;
}

/* Loading States */
.edm-loading {
    text-align: center;
    padding: 2rem;
    color: var(--text-secondary, #666);
}

.edm-loading i {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Mobile Responsiveness */
@media (max-width: 992px) {
    .edm-group-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .edm-group-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 768px) {
    .edm-stats-bar {
        flex-direction: column;
    }

    .edm-stat-card {
        min-width: auto;
    }
}

/* ============================================
   LiveStoryActivity - New Chart Styles
   ============================================ */

/* KPI Progress Grid */
.kpi-progress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    padding: 0.5rem 0;
}

.kpi-progress-item {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    padding: 1rem;
    border: 1px solid var(--border-light, #e9ecef);
}

.kpi-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.kpi-label {
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--text-primary, #333);
}

.kpi-values {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    font-weight: 600;
}

.kpi-progress-bar-container {
    background: var(--bg-muted, #e9ecef);
    border-radius: 4px;
    height: 8px;
    overflow: hidden;
}

.kpi-progress-bar {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
}


/* ============================================
   Legacy KPI tracker inner rules (2026-05-14: outer .kpi-card definition
   removed -- it conflicted with canonical .bh-kpi/.kpi-card system at top of
   file and no HTML actually wrapped progress trackers in .kpi-card -- they use
   .kpi-item). Inner rules retained as harmless dead CSS until callers audited.
   ============================================ */

.kpi-card .kpi-type {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--text-primary, #333);
    margin-bottom: 0.25rem;
}

.kpi-card .kpi-type i {
    margin-right: 0.35rem;
    color: var(--text-secondary, #666);
}

.kpi-card .kpi-values {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
}

.kpi-card .kpi-values .kpi-actual {
    font-weight: 700;
    font-size: 1rem;
    color: var(--text-primary, #333);
}

.kpi-card .kpi-values .kpi-target {
    color: var(--text-tertiary, #888);
}

.kpi-card .kpi-values .kpi-pct {
    font-weight: 600;
    font-size: 0.85rem;
}

.kpi-card .kpi-progress {
    height: 6px;
    background: var(--bg-muted, #e9ecef);
    border-radius: 3px;
    overflow: hidden;
}

.kpi-card .kpi-progress .progress-bar {
    height: 100%;
    border-radius: 3px;
    transition: width 0.4s ease;
}

.kpi-card .kpi-progress .progress-bar.kpi-green {
    background-color: var(--status-success, #28a745);
}

.kpi-card .kpi-progress .progress-bar.kpi-amber {
    background-color: var(--status-warning-bg, #ffc107);
}

.kpi-card .kpi-progress .progress-bar.kpi-red {
    background-color: var(--status-danger, #dc3545);
}

.kpi-card .kpi-progress .progress-bar.kpi-grey {
    background-color: var(--text-secondary, #666);
}

.kpi-card .kpi-pct.kpi-green { color: var(--status-success, #28a745); }
.kpi-card .kpi-pct.kpi-amber { color: var(--status-warning-text, #856404); }
.kpi-card .kpi-pct.kpi-red { color: var(--status-danger, #dc3545); }
.kpi-card .kpi-pct.kpi-grey { color: var(--text-secondary, #666); }

/* KPI Card Grid layout for multi-column display */
.kpi-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.5rem;
}

.kpi-card-grid .kpi-card {
    margin-bottom: 0;
}

/* Compact variant for small containers (e.g. StoryDashboard cards) */
.kpi-card.kpi-card-compact {
    padding: 0.5rem 0.75rem;
}

.kpi-card.kpi-card-compact .kpi-type {
    font-size: 0.75rem;
}

.kpi-card.kpi-card-compact .kpi-values .kpi-actual {
    font-size: 0.85rem;
}

.kpi-card.kpi-card-compact .kpi-values {
    font-size: 0.75rem;
}

.kpi-card.kpi-card-compact .kpi-progress {
    height: 4px;
}

/* Print support for KPI cards (canonical .bh-kpi/.kpi-card) */
@media print {
    .bh-kpi,
    .kpi-card,
    .crm-stat-card,
    .pipeline-stat-card,
    .ra-stat-card,
    .bh-eng-summary-tile,
    .pitch-stat-card {
        border: 1px solid var(--border-default, #ddd) !important;
        box-shadow: none !important;
    }
    .kpi-card .kpi-progress .progress-bar.kpi-green { background-color: var(--status-success, #28a745) !important; }
    .kpi-card .kpi-progress .progress-bar.kpi-amber { background-color: var(--status-warning-bg, #ffc107) !important; }
    .kpi-card .kpi-progress .progress-bar.kpi-red { background-color: var(--status-danger, #dc3545) !important; }
}
/* Conversion Funnel Styling */
#conversionFunnelContainer .summary-section-title {
    margin-bottom: 1rem;
}

/* Station Size Chart Styling */
#stationSizeContainer .summary-section-title {
    margin-bottom: 1rem;
}

/* Cumulative Reach Chart */
#cumulativeReachContainer h3 {
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.25rem;
}

#cumulativeReachContainer .text-muted {
    font-size: 0.85rem;
}

/* Spokesperson Chart */
#spokespersonContainer h3 {
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 1rem;
}

/* Email Gauge Styling */
#emailGaugeChart {
    max-height: 100px;
}

#emailGaugeValue {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* ================================================
   Contract Portfolio (CRMClients.aspx CONTRACTS tab)
   Created: 2025-12-31
   ================================================ */

/* Ensure contract grid columns stretch */
#contractsGrid .row {
    display: flex;
    flex-wrap: wrap;
}

#contractsGrid .row > [class*="col-"] {
    display: flex;
}

/* Contract Portfolio - Compact Row Layout */
.ct-list { background: var(--bg-surface, #fff); border-radius: 10px; border: 1px solid var(--border-default, #ddd); overflow: visible; }
.ct-row { display: flex; align-items: center; padding: 0.65rem 1.25rem; border-bottom: 1px solid var(--border-default, #e0e0e0); font-size: 0.85rem; transition: background 0.15s; }
.ct-row:last-child { border-bottom: none; }
.ct-row:hover { background: var(--bg-purple-tint, #f8f5ff); }
.ct-type { flex-shrink: 0; width: 90px; color: var(--text-tertiary, #888); font-size: 0.8rem; white-space: nowrap; }
.ct-type i { color: var(--brand-primary, #3d1a6f); margin-right: 4px; }
.ct-title { flex: 1; min-width: 0; font-weight: 600; color: var(--text-primary, #333); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-title a { color: var(--text-primary, #333); text-decoration: none; }
.ct-title a:hover { color: var(--brand-primary, #3d1a6f); text-decoration: underline; }
.ct-brand { flex-shrink: 0; width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.8rem; margin: 0 0.75rem; }
.ct-brand a { color: var(--brand-primary, #3d1a6f); text-decoration: none; }
.ct-brand a:hover { text-decoration: underline; }
.ct-expiry { flex-shrink: 0; width: 130px; color: var(--text-tertiary, #888); font-size: 0.8rem; white-space: nowrap; }
.ct-expiry i { margin-right: 3px; }
.ct-badge-ok { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; border-radius: 10px; font-size: 0.75rem; font-weight: 600; background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); flex-shrink: 0; }
.ct-badge-warn { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; border-radius: 10px; font-size: 0.75rem; font-weight: 600; background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); flex-shrink: 0; }
.ct-badge-danger { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; border-radius: 10px; font-size: 0.75rem; font-weight: 600; background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); flex-shrink: 0; }
.ct-badge-muted { display: inline-flex; align-items: center; padding: 0.2rem 0.55rem; border-radius: 10px; font-size: 0.75rem; font-weight: 600; background: var(--border-light, #e9ecef); color: var(--text-secondary, #666); flex-shrink: 0; }
.ct-actions { flex-shrink: 0; margin-left: 1rem; }
@media (max-width: 990px) {
    .ct-row { flex-wrap: wrap; gap: 0.25rem 0.5rem; }
    .ct-type { width: auto; }
    .ct-brand { width: auto; margin: 0; }
    .ct-expiry { width: auto; }
}

/* ============================
   Talent Directory Modernization
   ============================ */

/* Scoped to Talent Directory cards so it doesn't leak to CampaignBuilder / InterviewCoverage talent cards (see .talent-banner block above). */
.crm-contact-card.talent-card .talent-photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    flex-shrink: 0;
}

.crm-contact-card.talent-card .talent-photo-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-dark, #fff);
    font-size: 1.5rem;
    font-weight: 600;
    flex-shrink: 0;
}

/* Talent card layout overrides */
.crm-contact-card.talent-card {
    display: flex;
    flex-direction: column;
    height: 100%;  /* Fill grid cell height */
}

.crm-contact-card.talent-card .card-header {
    display: flex;
    flex-direction: row;   /* base .card-header is column; force a row so avatar sits left of the name */
    gap: 0.8rem;
    align-items: center;
    flex-shrink: 0;
    padding: 0.85rem 1rem;
    background: var(--bg-surface, #fff);   /* strip the cream dead-zone */
    background-image: none;
}
.crm-contact-card.talent-card .card-header > .bh-status-badge {
    margin-left: auto;
    align-self: flex-start;
}

.crm-contact-card.talent-card .card-body {
    flex: 1;  /* Grow to fill available space */
}

.crm-contact-card.talent-card .card-actions {
    position: static;
    flex-shrink: 0;
    margin-top: auto;
    padding: 0.7rem 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
    background: var(--bg-subtle, #fcfbfe);
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.crm-contact-card.talent-card .talent-action-spacer { flex: 1 1 auto; }
.crm-contact-card.talent-card .talent-action-pub.is-live {
    color: var(--status-success-text, #1c7a36);
    border: 1px solid #b6e0c2;
    background: var(--bg-surface, #fff);
}
.crm-contact-card.talent-card .talent-trash-btn {
    border: none;
    background: transparent;
    color: var(--text-tertiary, #b9b3c6);
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background 0.16s ease, color 0.16s ease;
}
.crm-contact-card.talent-card .talent-trash-btn:hover {
    background: rgba(237, 23, 76, 0.10);
    color: var(--brand-danger, #ed174c);
}
.crm-contact-card.talent-card .card-actions .btn {
    width: auto;  /* Override fixed 32px width from global .card-actions .btn */
    height: auto;
    padding: 0.25rem 0.75rem;
}
@media (max-width: 576px) {
    .crm-contact-card.talent-card .card-actions {
        flex-direction: column;
    }
    .crm-contact-card.talent-card .card-actions .btn {
        width: 100%;
    }
}

.crm-contact-card.talent-card .talent-header-info {
    flex: 1;
}

.crm-contact-card.talent-card .talent-header-info .contact-name {
    margin-bottom: 0.25rem;
}

.crm-contact-card.talent-card .talent-header-info .contact-role {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-bottom: 0.5rem;
}

/* Status indicator on talent cards */
.crm-contact-card.status-published {
    border-left: 4px solid var(--status-success, #28a745);
}

.crm-contact-card.status-private {
    border-left: 4px solid var(--text-secondary, #6c757d);
}

.crm-contact-card.status-unlisted {
    border-left: 4px solid var(--brand-accent, #fdb913);
}

/* Inbox stat card color */
.crm-stat-card.inbox-stat {
    border-left-color: var(--accent-purple, #6f42c1);
}

/* ============================================================
   BHAvatar -- shared people-avatar (initials + colour).
   Used by Talent / Client contact / Outlet contact cards only.
   Brand/logo cards do NOT use this. SSOT: JScript/bh-avatar.js
   ============================================================ */
.bh-initials-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    object-fit: cover;
    box-shadow: 0 2px 6px rgba(20, 16, 40, 0.18);
}
.bh-initials-avatar--md { width: 46px; height: 46px; font-size: 1.05rem; border-radius: 12px; }
.bh-initials-avatar--sm { width: 32px; height: 32px; font-size: 0.8rem; border-radius: 9px; }
.bh-initials-avatar--round { border-radius: 50%; }

/* Loud count badge on the main INBOX tab. */
.talent-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    margin-left: 7px;
    padding: 0 6px;
    border-radius: 20px;
    background: var(--brand-danger, #ed174c);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    vertical-align: middle;
    animation: talentInboxPulse 2.2s infinite;
}
@keyframes talentInboxPulse {
    0%   { box-shadow: 0 0 0 0 rgba(237, 23, 76, 0.45); }
    70%  { box-shadow: 0 0 0 8px rgba(237, 23, 76, 0); }
    100% { box-shadow: 0 0 0 0 rgba(237, 23, 76, 0); }
}
/* Inbox variant of the triage banner -- red accent = someone is waiting. */
.talent-triage-banner.is-inbox {
    border-left-color: var(--brand-danger, #ed174c);
    background: linear-gradient(135deg, rgba(237, 23, 76, 0.06), var(--bg-surface, #fff));
}
.talent-triage-banner.is-inbox .talent-triage-banner-icon {
    background: rgba(237, 23, 76, 0.12);
    color: var(--brand-danger, #ed174c);
}

/* Alphabet filter pager */
.alphabet-pager {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem;
    margin: 1rem 0;
}

.alphabet-pager .btn {
    min-width: 36px;
    padding: 0.25rem 0.5rem;
    font-weight: 500;
    font-size: 0.875rem;
}

.alphabet-pager .btn.active,
.alphabet-pager .btn-primary {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    border-color: var(--brand-primary, #3d1a6f);
}

/* ============================
   Inbox Modernization
   ============================ */

/* Inbox cards container */
.inbox-cards-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Individual inbox message card */
.inbox-message-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 1.25rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border: 1px solid var(--border-light, #e9ecef);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.inbox-message-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

.inbox-message-card .card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}

.inbox-message-card .message-from {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.inbox-message-card .message-from i {
    color: var(--accent-purple, #6f42c1);
}

.inbox-message-card .message-date {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}

.inbox-message-card .card-body {
    margin-bottom: 0.75rem;
}

.inbox-message-card .requested-talent {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
    margin-bottom: 0.5rem;
}

.inbox-message-card .requested-talent strong {
    color: var(--brand-primary, #3d1a6f);
}

.inbox-message-card .message-email {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    margin-bottom: 0.5rem;
}

.inbox-message-card .message-email i {
    color: var(--status-info, #17a2b8);
    margin-right: 0.25rem;
}

.inbox-message-card .message-text {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
    background: var(--bg-subtle, #f8f9fa);
    padding: 0.75rem;
    border-radius: 6px;
    margin-top: 0.5rem;
    max-height: 150px;
    overflow-y: auto;
}

.inbox-message-card .card-actions {
    display: flex;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.inbox-message-card .card-actions .btn {
    flex: 1;
}

/* Deleted inbox styling */
.inbox-message-card.deleted {
    opacity: 0.7;
    background: var(--bg-subtle, #f8f9fa);
}

.inbox-message-card.deleted:hover {
    opacity: 1;
}

/* Empty state */
.inbox-empty-state {
    text-align: center;
    padding: 3rem;
    color: var(--text-secondary, #666);
}

.inbox-empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.inbox-empty-state p {
    margin: 0;
    font-size: 1.1rem;
}

/* Pagination container */
.pagination-container {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
}

.pagination-container .btn {
    margin: 0 0.125rem;
}

.pagination-container .btn.active {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

/* Duplicate .crm-stats-collapsed REMOVED 2026-07-20 (second definition of the same
   class; retired by the dismissable-stats-bar consolidation). */

/* Responsive adjustments for talent */
@media (max-width: 768px) {
    .talent-photo,
    .talent-photo-placeholder {
        width: 48px;
        height: 48px;
        font-size: 1.25rem;
    }

    .alphabet-pager .btn {
        min-width: 30px;
        padding: 0.2rem 0.4rem;
        font-size: 0.75rem;
    }

    .inbox-message-card .card-actions {
        flex-direction: column;
    }

    .inbox-message-card .card-actions .btn {
        width: 100%;
    }
}

/* ==========================================
   Toast Notifications
   ========================================== */
.toast-notification {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 12px 20px;
    border-radius: 8px;
    color: var(--text-on-dark, #fff);
    font-weight: 500;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    z-index: 10000;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.toast-notification.show {
    opacity: 1;
    transform: translateY(0);
}

.toast-notification.bg-success {
    background: var(--status-success, #28a745);
}

.toast-notification.bg-danger {
    background: var(--status-danger, #dc3545);
}

.toast-notification.bg-info {
    background: var(--status-info, #17a2b8);
}

.toast-notification i {
    font-size: 1.1rem;
}

/* ==========================================
   Email-Style Inbox Rows
   ========================================== */
.inbox-cards-container {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    border: 1px solid var(--border-default, #e0e0e0);
    overflow: hidden;
}

.inbox-row {
    display: flex;
    align-items: flex-start;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    background: var(--bg-surface, #fff);
    cursor: pointer;
    transition: background-color 0.15s ease;
    gap: 12px;
}

.inbox-row:last-child {
    border-bottom: none;
}

.inbox-row:hover {
    background: var(--bg-subtle, #f8f9fa);
}

.inbox-row.unread {
    background: var(--status-info-bg, #f0f7ff);
}

.inbox-row.unread:hover {
    background: #e5f0fb;
}

.inbox-row-avatar {
    flex-shrink: 0;
    color: var(--text-secondary, #666);
    width: 40px;
    text-align: center;
}

.inbox-row.unread .inbox-row-avatar {
    color: var(--brand-primary, #3d1a6f);
}

.inbox-row-content {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.inbox-row-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 2px;
}

.inbox-from {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.95rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inbox-row.unread .inbox-from {
    font-weight: 700;
    color: var(--text-primary, #1a1a1a);
}

.inbox-date {
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    flex-shrink: 0;
    margin-left: 12px;
}

.inbox-subject {
    font-size: 0.9rem;
    color: var(--text-body, #555);
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inbox-subject i {
    color: var(--text-muted, #999);
    margin-right: 4px;
    font-size: 0.85rem;
}

.inbox-row.unread .inbox-subject {
    font-weight: 500;
    color: var(--text-primary, #333);
}

.inbox-preview {
    font-size: 0.85rem;
    color: var(--text-tertiary, #888);
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* Mobile responsive */
@media (max-width: 576px) {
    .inbox-row {
        padding: 10px 12px;
    }

    .inbox-row-avatar {
        display: none;
    }

    .inbox-date {
        display: none;
    }

    .inbox-row-header::after {
        content: attr(data-date);
        font-size: 0.75rem;
        color: var(--text-muted, #999);
    }
}

/* ============================================================================
   BIPlanning Agreement Card View
   ============================================================================ */

.agreement-card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    border: 1px solid var(--border-default, #e0e0e0);
}

.agreement-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

.agreement-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

.agreement-card .card-title {
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
    color: var(--text-primary, #333);
}

.agreement-card .card-body {
    padding: 1rem;
}

.agreement-card .card-footer {
    padding: 0.5rem 1rem;
    border-top: 1px solid rgba(0,0,0,0.05);
}

.agreement-card .progress {
    background-color: var(--bg-muted, #e9ecef);
    border-radius: 4px;
}

/* View toggle button active state */
#btnGridView.active,
#btnCardView.active {
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

#btnGridView:not(.active):hover,
#btnCardView:not(.active):hover {
    background-color: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
}

/* Card view loading state */
#agreementCardsGrid .fa-spinner {
    color: var(--brand-primary, #3d1a6f);
}

/* Card view pagination */
#cardViewPagination .page-link {
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--border-default, #dee2e6);
}

#cardViewPagination .page-item.active .page-link {
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

#cardViewPagination .page-item.disabled .page-link {
    color: var(--text-secondary, #666);
}

/* ============================================
   Missing Interests Tool
   ============================================ */

.mi-stat-bar {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.mi-stat-card {
    flex: 1;
    min-width: 140px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
}

.mi-stat-value {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    line-height: 1.2;
}

.mi-stat-label {
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.mi-outlet-card {
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
}

.mi-outlet-header {
    background: var(--bg-subtle, #f8f9fa);
    padding: 0.75rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-default, #e0e0e0);
    cursor: pointer;
}

.mi-outlet-header:hover {
    background: var(--bg-muted, #f0f0f0);
}

.mi-outlet-body {
    padding: 0;
}

.mi-contact-row {
    display: flex;
    align-items: center;
    padding: 0.6rem 1rem;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    gap: 0.75rem;
    transition: background 0.2s;
}

.mi-contact-row:last-child {
    border-bottom: none;
}

.mi-contact-row:hover {
    background: var(--bg-subtle, #fafafa);
}

.mi-contact-row.resolved {
    background: #f0fdf4;
    opacity: 0.7;
}

.mi-contact-row.resolved .mi-contact-name {
    text-decoration: line-through;
    color: var(--text-muted, #999);
}

.mi-contact-name {
    flex: 1;
    font-weight: 500;
}

.mi-contact-email {
    flex: 1;
    color: var(--text-tertiary, #888);
    font-size: 0.9em;
}

.mi-contact-actions {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.mi-inline-editor {
    padding: 0.75rem 1rem;
    background: var(--bg-purple-tint, #f8f5ff);
    border-top: 1px solid #e0d5f5;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.mi-inline-editor .tag-input-wrapper {
    flex: 1;
    min-width: 200px;
}

.mi-bulk-panel {
    background: var(--bg-purple-tint, #f8f5ff);
    border: 1px solid #d5c8f0;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.mi-progress-bar {
    height: 4px;
    background: var(--bg-muted, #e0e0e0);
    border-radius: 2px;
    overflow: hidden;
    margin-top: 0.5rem;
}

.mi-progress-bar .fill {
    height: 100%;
    background: linear-gradient(90deg, #3d1a6f, #7c4dff);
    transition: width 0.3s ease;
}

/* ============================================
   Barcelona Principle Badges
   ============================================ */

.barcelona-bp {
    font-size: 0.7rem;
    vertical-align: middle;
    margin-left: 4px;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    line-height: 1;
    padding: 2px 6px;
}
@media (max-width: 768px) {
    .barcelona-bp { display: none; }
}

/* Barcelona Sprint - Badge & Input Styles */
.badge-celebration {
    font-size: 1rem;
    padding: 8px 20px;
    background: linear-gradient(135deg, #fdb913, #e5a811);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.badge-barcelona-purple {
    font-size: 1rem;
    padding: 6px 16px;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.badge-barcelona-gold {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.qs-cqi { width: 70px; }
.qs-sentiment-select { width: 110px; }
.ss-bar-hint {
    color: var(--text-secondary, #666);
    font-style: italic;
}

/* Barcelona Navigator - Persistent progress bar above tabs */
.barcelona-navigator {
    background: linear-gradient(135deg, #6f42c1 0%, #7e57c2 50%, #9575cd 100%);
    border-radius: 8px 8px 0 0;
    padding: 10px 20px;
    margin-bottom: 0;
    color: var(--text-on-dark, #fff);
}
.barcelona-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.barcelona-nav-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.barcelona-nav-icon {
    font-size: 1.2rem;
    opacity: 0.9;
}
.barcelona-nav-title {
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.barcelona-nav-version {
    font-size: 0.6rem;
    opacity: 0.7;
    background: rgba(255,255,255,0.15);
    padding: 1px 5px;
    border-radius: 3px;
    font-weight: 600;
}
.barcelona-nav-steps {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    justify-content: center;
}
.barcelona-nav-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    transition: background 0.15s ease;
}
.barcelona-nav-step:hover {
    background: rgba(255,255,255,0.15);
}
.barcelona-nav-dot {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.5);
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-dark, #fff);
    transition: all 0.3s ease;
}
.barcelona-nav-step.complete .barcelona-nav-dot {
    background: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
    box-shadow: 0 0 6px rgba(40,167,69,0.5);
}
.barcelona-nav-step.partial .barcelona-nav-dot {
    background: rgba(40,167,69,0.4);
    border-color: rgba(40,167,69,0.7);
}
.barcelona-nav-label {
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    opacity: 0.8;
    font-weight: 600;
    white-space: nowrap;
}
.barcelona-nav-step.complete .barcelona-nav-label {
    opacity: 1;
}
.barcelona-nav-connector {
    width: 12px;
    height: 2px;
    background: rgba(255,255,255,0.25);
    flex-shrink: 0;
    border-radius: 1px;
    transition: background 0.3s ease;
}
.barcelona-nav-connector.active {
    background: var(--status-success, #28a745);
}
.barcelona-nav-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    min-width: 50px;
}
.barcelona-nav-pct {
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.1;
}
.barcelona-nav-pct-label {
    font-size: 0.55rem;
    text-transform: uppercase;
    opacity: 0.7;
    letter-spacing: 0.5px;
}
@media (max-width: 768px) {
    .barcelona-navigator { display: none; }
}

/* Barcelona Educational Intro Panel */
.barcelona-intro {
    background: linear-gradient(135deg, rgba(111,66,193,0.04) 0%, rgba(155,89,182,0.06) 100%);
    border: 1px solid rgba(111,66,193,0.12);
    border-radius: 8px;
    padding: 16px 20px;
    border-left: 4px solid var(--accent-purple, #6f42c1);
}
.barcelona-intro-header {
    display: flex;
    align-items: center;
    gap: 12px;
}
.barcelona-intro-icon {
    font-size: 1.8rem;
    color: var(--accent-purple, #6f42c1);
    opacity: 0.7;
}
.barcelona-intro-phase {
    padding: 8px 0;
}
.barcelona-intro-phase-label {
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 2px;
}

/* Barcelona Wheel Component */
#barcelonaWheelContainer {
    max-width: 500px;
    margin: 0 auto;
    overflow: visible;
    padding: 20px 10px;
}
.barcelona-wheel {
    width: 100%;
    max-width: 380px;
    height: auto;
}
.barcelona-wheel .segment {
    transition: opacity 0.15s ease;
}
.barcelona-wheel .segment:hover {
    opacity: 0.85;
}
.barcelona-wheel-attribution {
    font-size: 0.7rem;
    color: var(--text-secondary, #666);
    margin-top: 0.5rem;
    margin-bottom: 0;
    font-style: italic;
}
.barcelona-checklist-grid {
    display: flex;
    justify-content: center;
    gap: 24px;
    max-width: 680px;
    margin: 0 auto;
}
.barcelona-checklist-col {
    flex: 0 1 auto;
    text-align: left;
}
.barcelona-checklist-phase {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 4px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    padding-bottom: 2px;
}
.barcelona-checklist-item {
    font-size: 0.75rem;
    color: var(--text-body, #555);
    line-height: 1.7;
    white-space: nowrap;
}
.barcelona-checklist-item i { font-size: 0.7rem; }
.barcelona-checklist-item .bh-crit-weight {
    display: inline-block;
    margin-left: 6px;
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f3eefb);
    border-radius: 8px;
    padding: 0 6px;
    vertical-align: middle;
}
@media (max-width: 768px) {
    #barcelonaWheelContainer { max-width: 300px; }
    .barcelona-wheel { max-width: 280px; }
    .barcelona-checklist-grid {
        flex-wrap: wrap;
        gap: 12px 20px;
    }
}

/* Barcelona Drill-Down Panel */
.barcelona-drilldown {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    margin-top: 12px;
    padding: 0;
    box-shadow: 0 2px 8px rgba(61,26,111,0.08);
    animation: drilldownSlide 0.25s ease-out;
}
@keyframes drilldownSlide {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
.barcelona-drilldown-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: linear-gradient(135deg, #3d1a6f 0%, #5b2d99 100%);
    border-radius: 8px 8px 0 0;
    color: var(--text-on-dark, #fff);
}
.barcelona-drilldown-title {
    font-weight: 600;
    font-size: 0.9rem;
}
.barcelona-drilldown-bp {
    display: inline-block;
    background: rgba(253,185,19,0.9);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 3px;
    margin-right: 4px;
}
.barcelona-drilldown-close {
    background: none;
    border: none;
    color: rgba(255,255,255,0.7);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}
.barcelona-drilldown-close:hover { color: var(--text-on-dark, #fff); }
.barcelona-drilldown-criteria {
    padding: 8px 14px;
    background: var(--bg-purple-tint, #f8f5fd);
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.barcelona-drilldown-criterion {
    font-size: 0.78rem;
    color: var(--text-body, #555);
}
.barcelona-drilldown-criterion i { margin-right: 2px; }
.barcelona-drilldown-items {
    padding: 10px 14px;
    max-height: 320px;
    overflow-y: auto;
}
.barcelona-drilldown-item {
    padding: 6px 0;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}
.barcelona-drilldown-item:last-child { border-bottom: none; }
.barcelona-drilldown-item-label {
    font-size: 0.82rem;
    margin-bottom: 2px;
}
.barcelona-drilldown-item-value {
    font-size: 0.8rem;
    color: var(--text-body, #555);
    line-height: 1.4;
    white-space: pre-wrap;
    max-height: 80px;
    overflow-y: auto;
}
.barcelona-drilldown-item-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82rem;
    gap: 8px;
}
.barcelona-drilldown-item-row > span:first-child {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.barcelona-drilldown-bar {
    height: 4px;
    background: var(--bg-muted, #e9ecef);
    border-radius: 2px;
    margin-top: 3px;
    overflow: hidden;
}
.barcelona-drilldown-bar-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s ease;
}
.barcelona-drilldown-section-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}
.barcelona-wheel .segment.drilldown-active path {
    stroke: var(--brand-accent, #fdb913) !important;
    stroke-width: 3 !important;
}

/* Impact Tab Wheel Container */
#bp7WheelContainer {
    max-width: 500px;
    overflow: visible;
    padding: 20px 10px;
}
#tabimpact .profile-card-body .row {
    flex-wrap: nowrap;
}
#tabimpact .col-md-5 {
    min-width: 280px;
}

/* ============================================
   AskRalph Slide-Out Help Panel (T.23)
   ============================================ */

/* Trigger button */
#askRalphTrigger {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1030;
    width: 44px;
    height: 88px;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    border: none;
    border-radius: 44px 0 0 44px;
    color: var(--text-on-dark, #fff);
    font-size: 1.25rem;
    cursor: pointer;
    box-shadow: -2px 2px 8px rgba(0,0,0,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 4px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
#askRalphTrigger:hover {
    width: 52px;
    box-shadow: -3px 3px 12px rgba(0,0,0,0.3);
}
#askRalphTrigger.hidden {
    transform: translateY(-50%) translateX(60px);
    pointer-events: none;
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Overlay */
.askralph-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.3);
    z-index: 1060;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.askralph-overlay.open {
    opacity: 1;
    pointer-events: auto;
}

/* Panel */
.askralph-panel {
    position: fixed;
    top: 0;
    right: -420px;
    width: 420px;
    height: 100%;
    z-index: 1070;
    background: var(--bg-surface, #fff);
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
    transition: right 0.3s ease;
}
.askralph-panel.open {
    right: 0;
}

/* Header */
.askralph-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 0.875rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.askralph-header-title {
    font-size: 1.1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
}
.askralph-header-actions {
    display: flex;
    gap: 0.5rem;
}
.askralph-header-btn {
    background: rgba(255,255,255,0.15);
    border: none;
    color: var(--text-on-dark, #fff);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    transition: background 0.2s;
}
.askralph-header-btn:hover {
    background: rgba(255,255,255,0.3);
}

/* Messages area */
.askralph-messages {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Welcome screen */
.askralph-welcome {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-body, #555);
}
.askralph-welcome-icon {
    font-size: 2.5rem;
    color: var(--brand-primary, #5a2d82);
    margin-bottom: 0.75rem;
}
.askralph-welcome h6 {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    margin-bottom: 0.5rem;
}
.askralph-welcome p {
    font-size: 0.9rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
}
.askralph-examples-label {
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem !important;
}
.askralph-example-btn {
    display: block;
    width: 100%;
    text-align: left;
    background: var(--bg-purple-tint, #f8f5fc);
    border: 1px solid #e5ddf0;
    border-radius: 8px;
    padding: 0.6rem 0.875rem;
    margin-bottom: 0.5rem;
    color: var(--brand-primary, #5a2d82);
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}
.askralph-example-btn:hover {
    background: #efe8f8;
    border-color: #c4b0d9;
}

/* Message bubbles */
.askralph-msg {
    display: flex;
    max-width: 85%;
}
.askralph-msg-user {
    align-self: flex-end;
}
.askralph-msg-assistant {
    align-self: flex-start;
}
.askralph-msg-bubble {
    padding: 0.625rem 0.875rem;
    border-radius: 12px;
    font-size: 0.9rem;
    line-height: 1.5;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.askralph-msg-user .askralph-msg-bubble {
    background: linear-gradient(135deg, #5a2d82 0%, #7b3fa0 100%);
    color: var(--text-on-dark, #fff);
    border-bottom-right-radius: 4px;
}
.askralph-msg-assistant .askralph-msg-bubble {
    background: var(--bg-subtle, #f8f9fa);
    color: var(--text-primary, #333);
    border: 1px solid var(--border-light, #e9ecef);
    border-bottom-left-radius: 4px;
}
.askralph-msg-assistant .askralph-msg-bubble code {
    background: var(--bg-muted, #e9ecef);
    padding: 0.1em 0.35em;
    border-radius: 3px;
    font-size: 0.85em;
}
.askralph-msg-assistant .askralph-msg-bubble ul {
    margin: 0.25rem 0;
    padding-left: 1.25rem;
}
.askralph-msg-assistant .askralph-msg-bubble li {
    margin-bottom: 0.2rem;
}
.askralph-msg-assistant .askralph-msg-bubble strong {
    color: var(--text-primary, #222);
}

/* Source attribution tags */
.askralph-sources {
    font-size: 0.75rem;
    color: var(--text-tertiary, #888);
    margin-top: 0.35rem;
    padding: 0 0.25rem;
    line-height: 1.6;
}
.askralph-source-tag {
    display: inline-block;
    background: var(--bg-muted, #eee);
    color: var(--text-body, #555);
    padding: 0.1rem 0.45rem;
    border-radius: 3px;
    font-size: 0.7rem;
    margin-right: 0.25rem;
    border: 1px solid var(--border-default, #ddd);
}

/* Typing indicator */
.askralph-typing {
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-tertiary, #888);
    font-size: 0.8rem;
    flex-shrink: 0;
}
.askralph-typing-dots {
    display: flex;
    gap: 4px;
}
.askralph-typing-dots span {
    width: 6px;
    height: 6px;
    background: var(--brand-primary, #5a2d82);
    border-radius: 50%;
    opacity: 0.4;
    animation: askralph-bounce 1.4s ease-in-out infinite;
}
.askralph-typing-dots span:nth-child(2) {
    animation-delay: 0.2s;
}
.askralph-typing-dots span:nth-child(3) {
    animation-delay: 0.4s;
}
@keyframes askralph-bounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
    30% { transform: translateY(-6px); opacity: 1; }
}

/* Input area */
.askralph-input-area {
    padding: 0.75rem;
    border-top: 1px solid var(--border-light, #e9ecef);
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
    background: var(--bg-surface, #fff);
}
.askralph-input {
    flex: 1;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 12px;
    padding: 0.5rem 0.875rem;
    font-size: 0.9rem;
    resize: none;
    outline: none;
    min-height: 38px;
    max-height: 120px;
    line-height: 1.4;
    font-family: inherit;
    transition: border-color 0.2s;
}
.askralph-input:focus {
    border-color: #5a2d82;
    box-shadow: 0 0 0 2px rgba(90,45,130,0.1);
}
.askralph-send-btn {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #5a2d82 0%, #7b3fa0 100%);
    color: var(--text-on-dark, #fff);
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: opacity 0.2s, transform 0.2s;
}
.askralph-send-btn:hover {
    opacity: 0.9;
    transform: scale(1.05);
}
.askralph-send-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

/* Mobile responsive */
@media (max-width: 576px) {
    .askralph-panel {
        width: 100%;
        right: -100%;
    }
    #askRalphTrigger {
        top: auto;
        bottom: 20px;
        right: 16px;
        transform: none;
        width: 52px;
        height: 52px;
        border-radius: 50%;
        padding: 0;
    }
    #askRalphTrigger.hidden {
        transform: translateX(80px);
    }
}

/* ============================================
   Bootstrap Overrides
   ============================================ */

/* Increase .small font size for better readability (Bootstrap default is 80%) */
small,
.small {
    font-size: 87%;
}

/* ============================================
   Barcelona BP1-BP7 Outcomes Tab
   ============================================ */

.bp-retainer-label {
    min-width: 100px;
    font-weight: 600;
}

.bp-nav-pills .nav-link {
    font-size: 0.85rem;
    padding: 0.6rem 0.75rem;
    border-radius: 0;
    border-left: 3px solid transparent;
}

.bp-nav-pills .nav-link.active {
    border-left-color: var(--primary, #6f42c1);
}

.bp-section-header {
    margin-bottom: 0.25rem;
}

/* Barcelona Funnel - data-driven bars with benchmark outline */
.bp-funnel {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 0;
    gap: 4px;
}

.bp-funnel-row {
    position: relative;
    border-radius: 4px;
    height: 44px;
    border: 2px dashed transparent;
}

/* Benchmark widths and dashed outlines (ideal funnel shape) */
.bp-funnel-row-1 { width: 100%; border-color: rgba(111, 66, 193, 0.25); }
.bp-funnel-row-2 { width: 85%;  border-color: rgba(61, 26, 111, 0.25); }
.bp-funnel-row-3 { width: 70%;  border-color: rgba(23, 162, 184, 0.25); }
.bp-funnel-row-4 { width: 55%;  border-color: rgba(40, 167, 69, 0.25); }

/* Actual performance fill - grows from the centre so the live funnel
   shape sits visually inside the dashed ideal-funnel outline */
.bp-funnel-fill {
    position: absolute;
    top: -2px;
    left: 50%;
    transform: translateX(-50%);
    height: calc(100% + 4px);
    border-radius: 4px;
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.bp-funnel-fill-1 { background: var(--accent-purple, #6f42c1); }
.bp-funnel-fill-2 { background: var(--brand-primary, #3d1a6f); }
.bp-funnel-fill-3 { background: var(--status-info, #17a2b8); }
.bp-funnel-fill-4 { background: var(--status-success, #28a745); }

.bp-funnel-label {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.bp-funnel-value {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    font-size: 0.9rem;
    font-weight: 600;
}

/* Light text for rows where fill covers nearly the whole bar */
.bp-funnel-row--light .bp-funnel-label,
.bp-funnel-row--light .bp-funnel-value {
    color: var(--text-on-dark, #fff);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

/* Dark text for rows with partial / empty fill; halo keeps it legible
   against either the transparent outline area or the coloured fill */
.bp-funnel-row--dark .bp-funnel-label,
.bp-funnel-row--dark .bp-funnel-value {
    color: var(--brand-primary, #3d1a6f);
    text-shadow: 0 0 3px rgba(255, 255, 255, 0.95), 0 0 2px rgba(255, 255, 255, 0.95);
}

/* Funnel legend */
.bp-funnel-legend {
    display: flex;
    justify-content: center;
    margin-top: 8px;
    font-size: 0.7rem;
    color: var(--text-muted, #999);
}
.bp-funnel-legend-dash {
    display: inline-block;
    width: 16px;
    height: 0;
    border-top: 2px dashed #999;
    vertical-align: middle;
    margin-right: 4px;
}

/* Completion Ring */
.bp-completion-ring {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background: conic-gradient(
        var(--bp-color, #28a745) calc(var(--bp-pct, 0) * 1%),
        #e9ecef calc(var(--bp-pct, 0) * 1%)
    );
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.bp-ring-inner {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--bg-surface, #fff);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* ============================================================
   Journo Intel Tab -- CRM Outlets
   ============================================================ */

.ji-stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.ji-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary, #2d3436);
    line-height: 1.2;
}

.ji-stat-label {
    font-size: 0.75rem;
    color: var(--text-secondary, #636e72);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ji-quick-import {
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #f8f9fa))) 0%, #eef1f5 100%);
    border: 1px solid #e0e6ed;
    border-left: 4px solid var(--accent-purple, #6c5ce7);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
}

.ji-country-pack {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)) 0%, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)) 100%);
    border: 1px solid #e0e6ed;
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
}

.ji-country-pack-title {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

.ji-country-pack-active {
    color: var(--text-secondary, #636e72);
    font-size: 0.8rem;
}

.ji-country-card {
    display: inline-flex;
    align-items: center;
    background: var(--bg-surface, #fff);
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    gap: 0.75rem;
    transition: box-shadow 0.2s;
}

.ji-country-card:hover {
    box-shadow: 0 2px 8px rgba(61, 26, 111, 0.12);
}

.ji-country-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-weight: 700;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.ji-country-name {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}

.ji-country-outlets {
    font-size: 0.8rem;
    color: var(--text-secondary, #636e72);
}

.ji-filter-bar {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
    padding: 0.75rem;
}

.ji-bulk-bar {
    background: var(--status-warning-bg, #ffeaa7);
    border-radius: 6px;
    padding: 0.75rem 1rem;
}

.ji-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-left: 4px solid var(--accent-purple, #6c5ce7);
    border-radius: 6px;
    margin-bottom: 0.5rem;
    transition: all 0.2s ease;
}

.ji-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left-color: #5f3dc4;
}

.ji-card.expanded {
    border-left-color: #5f3dc4;
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.ji-card.dismissed {
    opacity: 0.65;
    border-left-color: var(--border-default, #b2bec3);
}

.ji-card.dismissed:hover {
    opacity: 0.85;
}

.ji-card-main {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    gap: 0.75rem;
}

.ji-card-select {
    flex-shrink: 0;
}

.ji-checkbox {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.ji-card-photo {
    flex-shrink: 0;
}

.ji-photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.ji-photo-placeholder {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--bg-muted, #dfe6e9);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary, #636e72);
    font-size: 1.2rem;
}

.ji-card-info {
    flex: 1;
    min-width: 0;
}

.ji-card-name {
    font-weight: 600;
    color: var(--text-primary, #2d3436);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ji-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.ji-pub-badge {
    background: #f0edfc;
    color: var(--brand-primary, #5f3dc4);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.15rem 0.5rem;
    border-radius: 12px;
    white-space: nowrap;
}

.ji-card.dismissed .ji-pub-badge {
    background: #f1f2f6;
    color: var(--text-secondary, #636e72);
}

.ji-topics {
    font-size: 0.8rem;
    color: var(--accent-purple, #6c5ce7);
    font-weight: 500;
}

.ji-meta-item {
    font-size: 0.8rem;
    color: var(--text-secondary, #636e72);
}

.ji-card-actions {
    flex-shrink: 0;
    white-space: nowrap;
}

.ji-details {
    padding: 1rem 1rem 1rem 4.5rem;
    border-top: 1px solid #f1f2f6;
    background: var(--bg-subtle, #fafafa);
}

.ji-outlet-group {
    border: 1px solid #e1e4e8;
    border-radius: 8px;
    margin-bottom: 0.75rem;
    overflow: hidden;
    transition: box-shadow 0.2s;
}
.ji-outlet-group:hover {
    box-shadow: 0 2px 8px rgba(108,92,231,0.12);
}
.ji-outlet-header {
    padding: 0.75rem 1rem;
    background: var(--bg-surface, #fff);
    border-left: 4px solid var(--accent-purple, #6c5ce7);
    color: var(--text-primary, #2d3436);
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.ji-outlet-header .badge-light {
    background: #f0edfc;
    color: var(--brand-primary, #5f3dc4);
}
.ji-outlet-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
}
.ji-suggestion-hint {
    font-size: 0.8rem;
    color: var(--accent-purple, #6c5ce7);
    font-style: italic;
    white-space: nowrap;
}
.ji-outlet-chevron {
    transition: transform 0.2s;
    width: 14px;
}
.ji-outlet-actions {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}
.ji-outlet-actions .btn {
    border-color: var(--border-default, #dfe6e9);
    color: var(--text-primary, #2d3436);
}
.ji-outlet-actions .btn:hover {
    background: #f5f6fa;
    border-color: var(--border-default, #b2bec3);
}
.ji-outlet-actions .btn-success {
    background: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
    color: var(--text-on-dark, #fff);
}
.ji-outlet-actions .btn-success:hover {
    background: #218838;
    border-color: #1e7e34;
}
.ji-badge-existing {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25em 0.6em;
    border-radius: 12px;
    border: 1px solid var(--status-success-border, #c3e6cb);
    letter-spacing: 0.02em;
}
.ji-badge-new {
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25em 0.6em;
    border-radius: 12px;
    border: 1px solid var(--status-warning-border, #ffeeba);
    letter-spacing: 0.02em;
}
/* Shimmer animation for stats bar while loading */
.ji-stats-loading .ji-stat-card {
    position: relative;
    overflow: hidden;
}
.ji-stats-loading .ji-stat-value,
.ji-stats-loading .ji-stat-label {
    color: transparent;
}
.ji-stats-loading .ji-stat-card::after {
    content: '';
    position: absolute;
    top: 0; left: -100%; width: 200%; height: 100%;
    background: linear-gradient(90deg, transparent 25%, rgba(108,92,231,0.08) 50%, transparent 75%);
    animation: jiShimmer 1.5s infinite;
}
@keyframes jiShimmer {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(50%); }
}

/* Hide pub badges inside expanded outlet groups */
.ji-outlet-body .ji-pub-badge {
    display: none;
}

/* =========================================================================
   Pack-First JI Tab cards (2026-04-21)
   See .claude/commands/journointel-pack-first-redesign.md
   ========================================================================= */
.ji-pack-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #dee2e6);
    border-radius: 8px;
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    height: 100%;
    display: flex;
    flex-direction: column;
}
.ji-pack-card.ji-pack-card-active {
    border-left: 4px solid var(--status-success-alt, #00b894);
}
.ji-pack-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.ji-pack-flag {
    font-family: "Outfit", Arial, sans-serif;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.05em;
    width: 2.6rem;
    height: 2.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    flex-shrink: 0;
}
.ji-pack-title strong {
    color: var(--text-primary, #2d3436);
    display: block;
    line-height: 1.2;
}
.ji-pack-stats {
    color: var(--text-body, #555);
}
.ji-pack-actions {
    margin-top: auto;
}
/* .ji-pack-card dark-mode lift handled centrally in theme-tokens.css
   (Dark mode card elevation lift block). Do not duplicate here. */
[data-theme="dark"] .ji-pack-flag {
    background: var(--brand-primary, #8a5cbc);
}

/* Country-pack quota: locked (over-quota) pack cards -- dimmed/greyed with lock overlay.
   CRMOutlets Journo Intel picker (.ji-pack-card) + Admin setup wizard (.wizard-pack-card). */
.ji-pack-card.locked {
    position: relative;
    cursor: not-allowed;
    background: var(--bg-subtle, #f5f5f7);
    border-style: dashed;
    border-color: var(--border-default, #d0d0d5);
}
.ji-pack-card.locked .ji-pack-header,
.ji-pack-card.locked .ji-pack-stats {
    opacity: 0.55;
    filter: grayscale(1);
}
.ji-pack-card.locked .ji-pack-lock-badge {
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    color: var(--text-muted, #b2bec3);
    font-size: 0.95rem;
}
.ji-pack-card.locked .btn {
    cursor: pointer;
}
[data-theme="dark"] .ji-pack-card.locked {
    background: var(--bg-subtle, #23272e);
    border-color: var(--border-default, #3a3f47);
}
[data-theme="dark"] .ji-pack-card.locked .ji-pack-lock-badge {
    color: var(--text-muted, #8a9099);
}

.wizard-pack-card.locked {
    position: relative;
    cursor: not-allowed;
    opacity: 0.6;
    border-style: dashed !important;
    background: var(--bg-subtle, #f5f5f7);
}
.wizard-pack-card.locked:hover {
    border-color: var(--border-default, #dee2e6);
    background: var(--bg-subtle, #f5f5f7);
}
.wizard-pack-card.locked .wizard-pack-lock {
    position: absolute;
    top: 0.5rem;
    right: 0.6rem;
    color: var(--text-muted, #b2bec3);
    font-size: 0.95rem;
}
[data-theme="dark"] .wizard-pack-card.locked {
    background: var(--bg-subtle, #23272e);
    border-color: var(--border-default, #3a3f47);
}
[data-theme="dark"] .wizard-pack-card.locked .wizard-pack-lock {
    color: var(--text-muted, #8a9099);
}

@media (max-width: 768px) {
    .ji-card-main {
        flex-wrap: wrap;
    }
    .ji-card-info {
        width: 100%;
        order: 3;
    }
    .ji-card-name {
        white-space: normal;
    }
    .ji-details {
        padding-left: 1rem;
    }
}

/* ===========================================================
   PIPELINE BOTTLENECK & PROMOTION CONFIG -- BuzzHubAdmin JournoIntel
   =========================================================== */

/* --- Hero Summary Section --- */
.pipe-hero {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 1.5rem 2rem;
    background: var(--bg-purple-tint, #f0ebf7);
    border-radius: 12px;
    margin-bottom: 1.25rem;
}
.pipe-hero-ring {
    position: relative;
    flex-shrink: 0;
    width: 110px;
    height: 110px;
}
.pipe-hero-ring svg { transform: rotate(-90deg); }
.pipe-hero-ring-track { fill: none; stroke: var(--border-light, #e9ecef); stroke-width: 8; }
.pipe-hero-ring-fill { fill: none; stroke-width: 8; stroke-linecap: round; transition: stroke-dashoffset 0.8s ease; }
.pipe-hero-ring-pct {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--text-primary, #333);
    line-height: 1;
}
.pipe-hero-ring-pct small {
    font-size: 0.75rem;
    font-weight: 600;
    display: block;
    margin-top: 2px;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.pipe-hero-stats {
    display: flex;
    gap: 2.5rem;
    flex-wrap: wrap;
}
.pipe-hero-stat { text-align: left; }
.pipe-hero-stat-value {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--brand-primary, #3d1a6f);
}
.pipe-hero-stat-value--success { color: var(--status-success, #28a745); }
.pipe-hero-stat-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-tertiary, #888);
    margin-top: 2px;
}

/* --- Pipeline Flow Container --- */
.pipe-flow { display: flex; flex-direction: column; gap: 0; }

/* --- Stage Connector Arrow --- */
.pipe-connector {
    display: flex;
    justify-content: center;
    padding: 0;
    line-height: 0;
    color: var(--border-strong, #ccc);
    font-size: 1rem;
}
.pipe-connector i { opacity: 0.5; }

/* --- Individual Stage Card --- */
.pipe-stage {
    display: grid;
    grid-template-columns: 56px 170px minmax(0, 1fr) 200px;
    align-items: stretch;
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.08));
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pipe-stage:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md, 0 4px 12px rgba(0,0,0,0.12));
}

/* Stage number + icon sidebar */
.pipe-stage-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    padding: 0.75rem 0;
    color: #fff;
    gap: 4px;
}
.pipe-stage-badge-num {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.85;
}
.pipe-stage-badge i { font-size: 1.25rem; }

/* Stage header area (title + subtitle) */
.pipe-stage-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.75rem 1rem;
    min-width: 170px;
    border-right: 1px solid var(--border-light, #e9ecef);
}
.pipe-stage-title {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--text-primary, #333);
}
.pipe-stage-subtitle {
    font-size: 0.68rem;
    color: var(--text-muted, #999);
    margin-top: 2px;
}

/* Stage metrics row */
.pipe-stage-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    gap: 0;
    padding: 0;
}
.pipe-metric { text-align: left; padding: 0.75rem 1rem; }
.pipe-metric-val {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary, #333);
    line-height: 1.2;
}
.pipe-metric-val--warn { color: var(--brand-danger, #ed174c) !important; }
.pipe-metric-lbl {
    font-size: 0.68rem;
    color: var(--text-muted, #999);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-top: 1px;
}

/* Bottleneck alert banner - PROMINENT */
.pipe-bottleneck {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: rgba(237,23,76,0.08);
    border-left: 3px solid var(--brand-danger, #ed174c);
    min-width: 160px;
    animation: pipe-pulse 2s ease-in-out infinite;
}
.pipe-bottleneck i {
    font-size: 1rem;
    color: var(--brand-danger, #ed174c);
}
.pipe-bottleneck-label {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--brand-danger, #ed174c);
}
.pipe-bottleneck-detail {
    font-size: 0.7rem;
    color: var(--status-danger-text, #721c24);
    line-height: 1.3;
}

@keyframes pipe-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .pipe-hero {
        flex-direction: column;
        text-align: center;
        padding: 1rem;
        gap: 1rem;
    }
    .pipe-hero-stats { justify-content: center; gap: 1.5rem; }
    .pipe-hero-stat { text-align: center; }
    .pipe-stage {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
    .pipe-stage-badge {
        flex-direction: row;
        min-width: auto;
        padding: 0.5rem 1rem;
        border-radius: 10px 10px 0 0;
    }
    .pipe-stage-header {
        min-width: auto;
        border-right: none;
        border-bottom: 1px solid var(--border-light, #e9ecef);
        padding: 0.5rem 1rem;
    }
    .pipe-stage-metrics {
        grid-template-columns: repeat(2, 1fr);
        padding: 0;
    }
    .pipe-bottleneck {
        min-width: auto;
        border-left: none;
        border-top: 3px solid var(--brand-danger, #ed174c);
    }
}

/* --- Dark mode overrides for pipeline --- */
[data-theme="dark"] .pipe-hero { background: var(--bg-purple-tint, #1e1430); }
[data-theme="dark"] .pipe-stage {
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.3));
}
[data-theme="dark"] .pipe-stage:hover {
    box-shadow: var(--shadow-md, 0 4px 12px rgba(0,0,0,0.4));
}
[data-theme="dark"] .pipe-bottleneck {
    background: var(--status-danger-bg, #2a0f12);
}
[data-theme="dark"] .pipe-stage-badge { opacity: 0.95; }

/* --- Promotion Config (shared classes) --- */
.promo-stat-value { font-size: 1.4rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); }
.promo-stat-box { background: var(--bg-muted, #f8f9fa); border-radius: 8px; }
[data-theme="dark"] .promo-stat-box { background: var(--bg-subtle, #1a1a1a); }

/* ===========================================================
   MODE CARDS -- Wizard & Settings mode selection
   =========================================================== */
.mode-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

.mode-card {
    border: 2px solid var(--border-default, #dee2e6);
    border-radius: 10px;
    padding: 1.25rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
    background: var(--bg-surface, #fff);
    position: relative;
}

.mode-card:hover {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 2px 8px rgba(253, 185, 19, 0.2);
}

.mode-card.selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: #f3edf9;
    box-shadow: 0 2px 12px rgba(61, 26, 111, 0.15);
}

.mode-card.selected::after {
    content: '\f058';
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
}

.mode-card-title {
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.35rem;
}

.mode-card-desc {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    line-height: 1.4;
}

.mode-card-suited {
    font-size: 0.75rem;
    color: var(--brand-primary, #3d1a6f);
    font-style: italic;
    margin-top: 0.5rem;
    line-height: 1.3;
}

.mode-card-badge {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--status-warning-text, #856404);
    background: var(--status-warning-bg, #fff3cd);
    padding: 2px 8px;
    border-radius: 10px;
}

@media (max-width: 576px) {
    .mode-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Mode cards - Dark mode */
[data-theme="dark"] .mode-card.selected {
    background: var(--bg-purple-tint, #1e1430);
}

/* Platform Mode change preview -- nav delta chips (Admin > Platform Mode confirmation modal).
   Status tokens flip in dark mode, so no separate [data-theme="dark"] override is needed. */
.mc-delta-head {
    font-weight: 600;
    font-size: 0.92rem;
    margin-bottom: 0.45rem;
}
.mc-delta-head.mc-delta-hide { color: var(--status-danger-text, #721c24); }
.mc-delta-head.mc-delta-appear { color: var(--status-success-text, #155724); }
.mc-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.mc-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    font-size: 0.83rem;
    line-height: 1.2;
    border: 1px solid transparent;
}
.mc-chip.mc-chip-hide {
    background: var(--status-danger-bg, #f8d7da);
    color: var(--status-danger-text, #721c24);
    border-color: var(--status-danger-border, #f5c6cb);
}
.mc-chip.mc-chip-appear {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
    border-color: var(--status-success-border, #c3e6cb);
}

/* ============================================================================
   News Agenda Widget
   ============================================================================ */
.news-spiking-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 6px 0;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
}
.news-spike-pill {
    display: inline-block;
    font-size: 0.68rem;
    padding: 2px 8px;
    border-radius: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.news-spike-pill.spiking-hot { background: var(--bg-danger-subtle, #fdecea); color: var(--status-danger, #c0392b); }
.news-spike-pill.spiking-warm { background: var(--bg-purple-tint, #f0ecfc); color: var(--accent-purple, #5b4cbe); }
.news-spike-pill.spiking-cool { background: #f5f6fa; color: var(--text-muted, #a0a8b4); }
.news-risers-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted, #a0a8b4);
    align-self: center;
    margin-right: 2px;
    white-space: nowrap;
}
.news-riser-count {
    font-size: 0.6rem;
    font-weight: 500;
    opacity: 0.65;
}
.news-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 8px;
    border-bottom: 2px solid var(--border-light, #f0f0f0);
    align-items: center;
}
.news-tab {
    background: none;
    border: none;
    padding: 6px 14px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted, #999);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}
.news-tab:hover { color: var(--accent-purple, #6c5ce7); }
.news-tab.active { color: var(--accent-purple, #6c5ce7); border-bottom-color: var(--accent-purple, #6c5ce7); }
.news-article-count {
    margin-left: auto;
    font-size: 0.65rem;
    color: var(--text-muted, #b2bec3);
}

/* Story Clusters */
.story-cluster {
    padding: 8px 0;
    border-bottom: 1px solid var(--border-light, #f5f5f5);
}
.story-cluster:last-child { border-bottom: none; }
.story-cluster.multi-outlet {
    background: var(--bg-purple-tint, #fafaff);
    margin: 0 -12px;
    padding: 8px 12px;
    border-left: 3px solid var(--accent-purple, #6c5ce7);
    border-bottom: 1px solid var(--border-brand, #ededfa);
}
.cluster-main {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}
.cluster-flag {
    font-size: 0.85rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.cluster-content {
    flex: 1;
    min-width: 0;
}
.cluster-headline {
    font-weight: 600;
    font-size: 0.82rem;
    line-height: 1.3;
    color: var(--text-primary, #2d3436);
    text-decoration: none;
    display: block;
}
.cluster-headline:hover { color: var(--accent-purple, #6c5ce7); text-decoration: none; }
.cluster-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 3px;
    flex-wrap: wrap;
}
.cluster-outlet-badge {
    background: var(--bg-purple-tint, #f0ecfc);
    color: var(--accent-purple, #5b4cbe);
    font-size: 0.62rem;
    padding: 1px 6px;
    border-radius: 8px;
    font-weight: 600;
}
.cluster-tier1-badge {
    background: #e6f9f3;
    color: #0d8a6a;
    font-size: 0.62rem;
    padding: 1px 6px;
    border-radius: 8px;
    font-weight: 600;
}
.cluster-topic {
    font-size: 0.68rem;
    color: var(--text-secondary, #636e72);
    font-style: italic;
}
.cluster-time {
    font-size: 0.68rem;
    color: var(--text-muted, #b2bec3);
}
.cluster-outlets {
    font-size: 0.68rem;
    color: var(--text-muted, #999);
    margin-top: 2px;
}
.cluster-expand {
    font-size: 0.68rem;
    color: var(--accent-purple, #6c5ce7);
    cursor: pointer;
    margin-top: 4px;
    user-select: none;
}
.cluster-expand:hover { text-decoration: underline; }
.cluster-articles-list {
    margin-top: 4px;
    padding-left: 8px;
    border-left: 2px solid var(--border-default, #dfe6e9);
}
.cluster-sub-article { padding: 3px 0; }
.cluster-sub-article a {
    font-size: 0.75rem;
    color: var(--text-primary, #2d3436);
    text-decoration: none;
    display: block;
}
.cluster-sub-article a:hover { color: var(--accent-purple, #6c5ce7); }
.cluster-sub-article .sub-pub {
    font-size: 0.62rem;
    color: var(--text-muted, #b2bec3);
    display: block;
}

/* News Agenda hover/focus preview popover (shared, body-appended, non-interactive) */
.news-preview-popover {
    position: fixed;
    z-index: 1040;
    max-width: 340px;
    min-width: 200px;
    padding: 10px 12px;
    background: var(--bg-card, #ffffff);
    color: var(--text-primary, #2d3436);
    border: 1px solid var(--border-brand, #ededfa);
    border-left: 3px solid var(--accent-purple, #6c5ce7);
    border-radius: 8px;
    box-shadow: 0 6px 24px rgba(45, 26, 84, 0.18);
    font-size: 0.78rem;
    line-height: 1.4;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(2px);
    transition: opacity 0.12s ease, transform 0.12s ease;
}
.news-preview-popover.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.news-preview-body { color: var(--text-primary, #2d3436); }
.news-preview-meta {
    margin-top: 6px;
    padding-top: 5px;
    border-top: 1px solid var(--border-light, #f0f0f5);
    font-size: 0.68rem;
    color: var(--text-muted, #7a7a8c);
}

/* Outlet Groups (By Outlet tab) */
.outlet-group { margin-bottom: 10px; }
.outlet-name {
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    color: var(--text-primary, #2d3436);
    padding-bottom: 3px;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    margin-bottom: 3px;
}
.outlet-headline {
    padding: 2px 0;
}
.outlet-headline a {
    font-size: 0.78rem;
    color: var(--text-primary, #2d3436);
    text-decoration: none;
    line-height: 1.35;
}
.outlet-headline a:hover { color: var(--accent-purple, #6c5ce7); }
.outlet-headline a::before {
    content: "\2022";
    margin-right: 6px;
    color: var(--text-muted, #b2bec3);
}

/* Nav dropdown: prevent double dividers when gated panels hide */
.dropdown-menu > li.divider:first-child,
.dropdown-menu > li.divider:last-child { display: none; }

/* L-04: Contextual empty states -- shared across pages */
.contextual-empty-state {
    text-align: center;
    padding: 48px 24px;
    background: var(--bg-gold-tint, #fff5dc);
    border: 2px dashed var(--brand-accent, #fdb913);
    border-radius: 10px;
    margin: 16px 0;
}
.contextual-empty-state .empty-icon {
    font-size: 2.5rem;
    color: var(--brand-accent, #fdb913);
    margin-bottom: 16px;
}
.contextual-empty-state h5 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    margin-bottom: 8px;
}
.contextual-empty-state p {
    color: var(--text-secondary, #555);
    margin: 0 auto 16px;
    max-width: 480px;
    font-size: 0.92rem;
    line-height: 1.5;
}
.contextual-empty-state .btn {
    margin-top: 4px;
}

/* reCAPTCHA v2 fallback overlay */
#captcha-v2-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.55);
    z-index: 99999;
    justify-content: center;
    align-items: center;
}
.captcha-v2-modal {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    padding: 28px 24px 20px;
    max-width: 420px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    animation: captchaFadeIn 0.2s ease-out;
}
.captcha-v2-header h4 {
    margin: 0 0 6px;
    font-size: 1.1rem;
    color: var(--text-primary, #333);
}
.captcha-v2-header p {
    color: var(--text-secondary, #666);
    margin: 0 0 18px;
    font-size: 0.9rem;
}
.captcha-v2-footer {
    margin-top: 14px;
}
@keyframes captchaFadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
}
@media (max-width: 480px) {
    .captcha-v2-modal { max-width: 92vw; padding: 22px 16px 16px; }
    #captcha-v2-widget { transform: scale(0.95); transform-origin: center; }
}

/* Contact list tables (shared across EmailPitching, PhonePitching)
   Aligned to .table-modern design system reference */
.ep-contacts-table thead tr,
.pp-contacts-table thead tr,
.edm-contacts-table thead tr {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.ep-contacts-table thead th,
.pp-contacts-table thead th,
.edm-contacts-table thead th {
    font-weight: 500;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.65rem 0.75rem;
    border: none;
    border-bottom: 3px solid var(--brand-accent, #fdb913);
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}
.ep-contacts-table tbody tr,
.pp-contacts-table tbody tr,
.edm-contacts-table tbody tr {
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.ep-contacts-table tbody tr:nth-child(even),
.pp-contacts-table tbody tr:nth-child(even),
.edm-contacts-table tbody tr:nth-child(even) {
    background-color: var(--bg-subtle, #fafafa);
}
.ep-contacts-table tbody tr:hover,
.pp-contacts-table tbody tr:hover,
.edm-contacts-table tbody tr:hover {
    background-color: var(--bg-purple-tint, #f0ebf7);
}
.ep-contacts-table tbody tr.gv-row-selected,
.pp-contacts-table tbody tr.gv-row-selected,
.edm-contacts-table tbody tr.gv-row-selected,
.edm-excl-table tbody tr.gv-row-selected {
    background-color: #e8dff5 !important;
}
[data-theme="dark"] .ep-contacts-table tbody tr.gv-row-selected,
[data-theme="dark"] .pp-contacts-table tbody tr.gv-row-selected,
[data-theme="dark"] .edm-contacts-table tbody tr.gv-row-selected,
[data-theme="dark"] .edm-excl-table tbody tr.gv-row-selected {
    background-color: #3d2466 !important;
    color: #fff !important;
}
/* Fixed table layout: column widths come from the header's declared width/min-width, not
   from the content of whichever rows are currently drawn. The windowed grid swaps its ~30
   rendered rows on every scroll, and auto layout re-derived the column widths from each new
   window -- so the columns wobbled side to side as the operator scrolled. Fixed layout also
   makes row-height measurement independent of which other rows share the table. */
.ep-contacts-table {
    table-layout: fixed;
}
.ep-contacts-table tbody td {
    overflow-wrap: anywhere;
}
/* Under fixed layout a column no longer widens to fit its longest chip, so a long outlet
   name must truncate INSIDE the cell: without this the chip's reach figure -- which keeps
   its size by design -- gets pushed clean out of the Outlet column and lands under the
   State column's text. The name is the flexible part of the chip line; it needs min-width:0
   to be allowed to shrink below its content, and ellipsis to say so honestly. */
.ep-contacts-table .ochip .oname {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* Outlet chips are selection controls, not prose: a press toggles that outlet record, and
   dragging from one must not start native text selection of the outlet's name. Row presses
   already suppress this via the drag handler; chips are deliberately excluded from that
   handler, so they need it declared here. */
.ochip {
    -webkit-user-select: none;
    user-select: none;
}

.ep-contacts-table tbody td,
.pp-contacts-table tbody td,
.edm-contacts-table tbody td {
    vertical-align: middle;
    font-size: 0.9rem;
    padding: 0.55rem 0.75rem;
    border: none;
    border-bottom: 1px solid var(--border-light, #eee);
    color: var(--text-primary, #333);
}

/* S-48: Engagement signals in EmailPitching contact grid */
.ep-engagement-cell { font-size: 0.8rem; line-height: 1.8; white-space: nowrap; min-width: 120px; }
.ep-eng-sent { color: var(--text-body, #555); display: block; margin-bottom: 2px; }
.ep-eng-sent i { color: var(--brand-primary, #3d1a6f); font-size: 0.7rem; margin-right: 3px; }
.ep-eng-opened { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); font-size: 0.7rem; font-weight: 500; padding: 2px 8px; border-radius: 10px; margin-right: 4px; }
.ep-eng-noopen { background: var(--bg-muted, #f0f0f0); color: var(--text-tertiary, #888); font-size: 0.7rem; font-weight: 400; padding: 2px 8px; border-radius: 10px; margin-right: 4px; }
.ep-eng-dl { color: var(--brand-primary, #3d1a6f); font-weight: 500; margin-left: 4px; }
.ep-eng-dl i { font-size: 0.7rem; margin-right: 2px; }
.ep-eng-new { color: var(--text-muted, #aaa); font-style: italic; font-size: 0.8rem; }

/* Outlet cell: one flat line per outlet (Jen 2026-07-17 v2 -- no box-in-box capsule, but the
   medium WORD, a labelled tier badge, and the full reach stay legible; roomier, even spacing). */
.ochip {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0;
    padding: 2px 6px;
    border-radius: 6px;
    color: var(--text-primary, #333);
    font-size: 0.85rem;
    line-height: 1.5;
    cursor: pointer;
    width: fit-content;
    max-width: 100%;
    transition: background-color 0.15s;
}
.ochip:hover {
    background: var(--bg-purple-tint, #f0ebf7);
}
.ochip .otick {
    /* visibility, not display: the tick slot is always reserved so selecting a
       row never changes chip geometry -- a display toggle re-lays-out the whole
       results table per click on large searches */
    visibility: hidden;
    color: var(--status-success-text, #155724);
    font-weight: 700;
    font-size: 0.75rem;
}
.ochip.cred {
    background: var(--status-success-bg, #d4edda);
}
.ochip.cred .otick {
    visibility: visible;
}
.ochip .oname {
    font-weight: 600;
    color: var(--text-primary, #333);
    white-space: nowrap;
}
.ochip .omedium {
    color: var(--text-muted, #999);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}
.ochip .otier {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    line-height: 1.4;
    flex-shrink: 0;
}
.ochip .oreach {
    color: var(--text-secondary, #666);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

/* JournoIntel Interests Taxonomy tag picker (EmailPitching V2 search filter, 2026-07-16).
   Redesigned 2026-07-17 (Jen, UI design lead, live review with George): the ~270 topic chips no
   longer render as one flat wall -- categories collapse to accordion header rows by default
   (progressive disclosure), and the search box drives auto-expand (see filterTagPickerTree /
   renderTagPickerTree in EmailPitchingV2Module.js). Header row reuses the SAME collapsed/chevron
   accordion idiom already established on this page (.bh-filter-section-header / .bh-filter-
   section-body and .bh-results-section-header / .bh-results-section-body just below in this same
   file -- fa-chevron-down rotated -90deg via a shared ".collapsed" class), just sized for this
   nested per-category row rather than the outer filter sections. Text renders exactly as the
   taxonomy API returns it -- no text-transform anywhere in this block (see 2026-07-17 review: a
   "Women'S Facilities" capitalize artifact was reported; verified the live JournalistTopicTaxonomy
   data and this CSS/JS pair are both clean -- explicit text-transform:none below is belt-and-braces
   only, not a fix for a rule found here). */
.ep-tag-picker-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.4rem; }
.ep-tag-picker-chips:empty { margin-bottom: 0; }
.ep-tag-picker-tree {
    max-height: 340px;
    overflow-y: auto;
    border: 1px solid var(--border-default, #dfe1e5);
    border-radius: 8px;
    padding: 0.4rem 0.5rem;
    background: var(--bg-subtle, #fafafa);
}
.ep-tag-cat { margin-bottom: 0.15rem; }
.ep-tag-cat:last-child { margin-bottom: 0; }

/* Category header row -- an accordion toggle, NOT a chip. Clicking anywhere on it except the
   select checkbox toggles .ep-tag-cat-children open/closed (bindEvents in the module). */
.ep-tag-cat-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.4rem;
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}
.ep-tag-cat-header:hover { background: var(--bg-purple-tint, #f0ebf7); }
.ep-tag-cat-chevron {
    flex: 0 0 auto;
    width: 0.9rem;
    text-align: center;
    color: var(--text-muted, #999);
    font-size: 0.72rem;
    transition: transform 0.2s;
}
.ep-tag-cat-header.collapsed .ep-tag-cat-chevron { transform: rotate(-90deg); }
/* Childless/standalone topic row (consolidation 2026-07-17) -- same header grammar, nothing to
   disclose: no chevron, no badges. Left padding = header padding + chevron width + flex gap so
   its checkbox aligns with the category rows around it. Whole row click-toggles the checkbox
   (module handler), hence the inherited pointer cursor is correct. */
.ep-tag-cat-header--leaf { padding-left: calc(0.4rem + 0.9rem + 0.4rem); }
/* Category-as-tag select checkbox -- kept small and separate from the expand/collapse click
   target (native <label> click-toggles-checkbox behaviour would otherwise fight the header's own
   click handler). See tagCategoryHeaderHtml + the header click handler's .ep-tag-cat-select guard. */
.ep-tag-cat-select {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin: 0;
    cursor: pointer;
}
.ep-tag-cat-select input[type="checkbox"] { margin: 0; cursor: pointer; }
.ep-tag-cat-name {
    flex: 1 1 auto;
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--brand-primary, #3d1a6f);
    text-transform: none;
}
.ep-tag-cat-badges { display: flex; align-items: center; gap: 0.3rem; flex: 0 0 auto; }
.ep-tag-cat-badge-total { font-size: 0.68rem; font-weight: 600; }
.ep-tag-cat-badge-selected {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.6em;
    border-radius: 12px;
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-accent, #fdb913);
    white-space: nowrap;
}

.ep-tag-cat-children { margin: 0.1rem 0 0.35rem 1.65rem; }
.ep-tag-cat-children.collapsed { display: none; }

/* Browse-all-topics disclosure (consolidation 2026-07-17): the whole tree collapses behind this
   one row, so the Interests surface at rest is just the smart input + suggested/selected chips.
   Size-up variant of the .ep-tag-cat-header grammar above (same chevron/.collapsed idiom, bound
   in EmailPitchingV2Module bindEvents); the label reuses .bh-filter-label -- the uppercase
   mini-label class this page's filter sections already use. */
.ep-tag-browse-header {
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--border-default, #dfe1e5);
    border-radius: 8px;
    background: var(--bg-subtle, #fafafa);
}
.ep-tag-browse-header .bh-filter-label {
    margin-bottom: 0;
    flex: 1 1 auto;
    cursor: pointer;
}
.ep-tag-browse-count {
    flex: 0 0 auto;
    font-size: 0.72rem;
    color: var(--text-muted, #999);
    white-space: nowrap;
}
/* Open state: the disclosure row and the tree join into one visual container. */
.ep-tag-browse-header:not(.collapsed) {
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.ep-tag-browse-header:not(.collapsed) + .ep-tag-picker-tree {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.ep-tag-picker-tree.collapsed { display: none; }

.ep-tag-chip-toggle { margin: 0 0.3rem 0.3rem 0; padding: 0.22rem 0.65rem; font-size: 0.78rem; text-transform: none; }
.ep-tag-picker-suggest:empty { margin: 0; }
.ep-tag-picker-suggest { margin: 0.4rem 0; }
.ep-tag-suggest-chip { margin: 0 0.3rem 0.3rem 0; padding: 0.22rem 0.65rem; font-size: 0.78rem; }

/* Suggested tags for this story (EmailPitching V2, 2026-07-17) -- reuses .bh-chip-toggle (button
   variant, same as .ep-tag-suggest-chip above); --selected mirrors the checkbox-checked look since
   these are plain buttons, not checkbox labels, so :has(input:checked) does not apply. */
.ep-suggested-tags-row { margin-bottom: 0.5rem; }
.ep-suggested-tag-chip { margin: 0 0.3rem 0.3rem 0; padding: 0.22rem 0.65rem; font-size: 0.78rem; }
.ep-suggested-tag-chip--selected {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    cursor: default;
}
.ep-suggested-tag-chip--selected:hover {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
}

/* Why-matched: the searched/resolved tag(s) a result row carries (SearchMediaContacts.MatchedTags) */
.ep-tag-match-row { margin-top: 0.25rem; }
.ep-tag-match-chip {
    background: var(--status-success-bg, #d4edda);
    color: var(--status-success-text, #155724);
    border: 1px solid var(--status-success-border, #c3e6cb);
    margin: 2px 4px 2px 0;
}
.ep-tag-match-chip i { color: var(--status-success-text, #155724); }

/* Position sub-line under the contact Name (EmailPitching V2 grid, 2026-07-17) -- moved out of the
   renamed Interests column so it reads with the person. Tertiary caption, so --text-muted is correct
   here (see ui-design-rules "Dark Mode -- Body Text": muted is for captions/timestamps, not body). */
.ep-name-position { font-size: 0.72rem; color: var(--text-muted, #8a8a8a); line-height: 1.3; margin-top: 1px; }

/* Interests cell (renamed from Position, 2026-07-17): the plain free-text interest badges are capped
   at EP_INTEREST_BADGE_CAP (EmailPitchingV2Module.js) with a "+N more" / "Show less" client-side
   toggle. Why-matched chips (.ep-tag-match-row/.ep-tag-match-chip above) are never capped -- they sit
   outside .ep-interest-badges entirely. */
.ep-interest-badges { display: block; margin-top: 2px; }
.ep-interest-badges .ep-interest-hidden { display: none; }
.ep-interest-badges.expanded .ep-interest-hidden { display: inline-block; }
.ep-interest-more,
.ep-interest-less {
    display: inline-block;
    border: 1px dashed var(--border-default, #ccc);
    background: transparent;
    color: var(--text-muted, #888);
    font-size: 0.7rem;
    font-weight: 500;
    padding: 1px 7px;
    border-radius: 10px;
    cursor: pointer;
    margin: 0 4px 2px 0;
    line-height: 1.5;
}
.ep-interest-more:hover,
.ep-interest-less:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); }

.ep-outlet-hidden { display: none; }
.ep-outlet-list.expanded .ep-outlet-hidden { display: block; }
.ep-outlet-more,
.ep-outlet-less {
    display: inline-block;
    border: 1px dashed var(--border-default, #ccc);
    background: transparent;
    color: var(--text-muted, #888);
    font-size: 0.7rem;
    font-weight: 500;
    padding: 1px 7px;
    border-radius: 10px;
    cursor: pointer;
    margin: 4px 0 2px 6px;
    line-height: 1.5;
}
.ep-outlet-more:hover,
.ep-outlet-less:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); }

/* EDM Email Groups - Compact row layout with drag-select + infinite scroll */
.edm-scroll-container { max-height: calc(100vh - 320px); overflow-y: auto; overflow-x: hidden; }
.edm-list { background: var(--bg-surface, #fff); border-radius: 10px; border: 1px solid var(--border-default, #ddd); overflow: hidden; user-select: none; }
.edm-list-header { display: flex; align-items: center; padding: 0.6rem 1rem; background: var(--bg-purple-tint, #f0ebf7); color: var(--brand-primary, #3d1a6f); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 2px solid var(--border-brand, #e0d4f0); }
.edm-row { display: flex; align-items: center; padding: 0.55rem 1rem; border-bottom: 1px solid var(--border-light, #f0f0f0); font-size: 0.85rem; cursor: pointer; transition: background 0.15s; }
.edm-row:last-child { border-bottom: none; }
.edm-row:hover { background: var(--bg-purple-tint, #f0ebf7); }
.edm-row.edm-row-selected { background: #e8dff5 !important; }
.edm-row:nth-child(even) { background-color: var(--bg-subtle, #fafafa); }
.edm-row:nth-child(even):hover { background: var(--bg-purple-tint, #f0ebf7); }
.edm-row:nth-child(even).edm-row-selected { background: #e8dff5 !important; }

/* Add-Contacts picker -- clickable multi-select flex rows (mirrors the .edm-row list) */
.add-contact-head { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--brand-primary, #3d1a6f); background: var(--bg-purple-tint, #f0ebf7); border: 1px solid var(--border-brand, #e0d4f0); border-bottom-width: 2px; border-radius: 8px 8px 0 0; }
.add-contact-list { max-height: 360px; overflow-y: auto; border: 1px solid var(--border-default, #ddd); border-top: none; border-radius: 0 0 8px 8px; }
.add-contact-row { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--border-light, #f0f0f0); font-size: 0.85rem; cursor: pointer; transition: background 0.12s; }
.add-contact-row:last-child { border-bottom: none; }
.add-contact-row:hover { background: var(--bg-purple-tint, #f0ebf7); }
.add-contact-row.is-selected { background: var(--bg-purple-tint, #e8dff5); box-shadow: inset 3px 0 0 var(--brand-accent, #fdb913); }
.acp-contact { display: flex; flex-direction: column; flex: 1 1 42%; min-width: 0; }
.acp-name { font-weight: 600; color: var(--text-primary, #333); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acp-email { font-size: 0.78rem; color: var(--text-muted, #777); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acp-brand { flex: 1 1 34%; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acp-state { flex: 0 0 56px; }
.acp-tick { flex: 0 0 24px; text-align: center; color: var(--brand-primary, #3d1a6f); opacity: 0; transition: opacity 0.12s; }
.add-contact-row.is-selected .acp-tick { opacity: 1; }
.acp-empty { padding: 2rem 1rem; text-align: center; color: var(--text-muted, #777); }
.bh-pick-tools a { color: var(--brand-primary, #3d1a6f); font-size: 0.85rem; font-weight: 600; text-decoration: none; }
.bh-pick-tools a:hover { text-decoration: underline; }
.edm-col-name { flex: 1; min-width: 120px; font-weight: 600; color: var(--text-primary, #333); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.edm-col-email { flex: 1.3; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.edm-col-email a { color: var(--brand-primary, #3d1a6f); text-decoration: none; }
.edm-col-email a:hover { text-decoration: underline; }
.edm-col-brand { flex-shrink: 0; width: 140px; color: var(--text-body, #555); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.edm-col-state { flex-shrink: 0; width: 50px; color: var(--text-tertiary, #888); text-align: center; }
.edm-col-pos { flex: 0.8; min-width: 0; color: var(--text-secondary, #666); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.edm-col-act { flex-shrink: 0; width: 30px; text-align: center; }
.edm-col-act a { color: var(--text-muted, #999); opacity: 0.7; transition: opacity 0.15s; }
.edm-col-act a:hover { color: var(--status-danger, #dc3545); opacity: 1; }
.edm-badge-ok { display: inline-block; font-size: 0.7rem; padding: 1px 6px; border-radius: 8px; background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); margin-left: 4px; }
.edm-badge-muted { display: inline-block; font-size: 0.7rem; padding: 1px 6px; border-radius: 8px; background: #e2e3e5; color: var(--text-secondary, #666); margin-left: 4px; }
@media (max-width: 990px) {
    .edm-list-header { display: none; }
    .edm-row {
        flex-wrap: wrap;
        gap: 0.15rem 0.5rem;
        padding: 0.5rem 36px 0.5rem 0.75rem;
        position: relative;
    }
    .edm-col-name { flex: 0 0 100%; }
    .edm-col-email { flex: 1 1 100%; min-width: 0; }
    .edm-col-brand { flex: 0 0 auto; width: auto; max-width: 100%; }
    .edm-col-state { flex: 0 0 auto; width: auto; text-align: left; }
    .edm-col-pos { flex: 0 0 auto; min-width: 0; }
    .edm-col-act { position: absolute; top: 0.5rem; right: 0.5rem; width: auto; }
}
/* Blocked Emails -- shared table cell styling (CRMOutlets + CRMClients, .table-modern) */
.bhbe-email { word-break: break-word; }
.bhbe-reason { white-space: normal; min-width: 150px; }
.bhbe-reason-line { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.25rem; }
.bhbe-reason-text { font-size: 0.8rem; color: var(--text-body, #555); }
.bhbe-expand { background: none; border: none; padding: 0; line-height: 1; cursor: pointer; color: var(--brand-primary, #3d1a6f); font-size: 0.8rem; transition: transform 0.15s, color 0.15s; }
.bhbe-expand:hover { color: var(--brand-accent, #fdb913); }
.bhbe-expand.is-open { transform: rotate(180deg); }
.bhbe-detail-row { display: none; }
.bhbe-detail-row.is-open { display: table-row; }
.bhbe-detail-row > td { background: var(--bg-subtle, #fafafa); padding: 0.75rem 1rem; }
.bhbe-log-wrap { border-left: 3px solid var(--brand-accent, #fdb913); padding-left: 0.75rem; }
.bhbe-log-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.35rem; }
.bhbe-log-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-tertiary, #888); }
.bhbe-copy { background: none; border: 1px solid var(--border-default, #ddd); border-radius: 6px; padding: 2px 8px; font-size: 0.72rem; color: var(--text-body, #555); cursor: pointer; transition: border-color 0.15s, color 0.15s; }
.bhbe-copy:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); }
.bhbe-log { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: SFMono-Regular, Consolas, Menlo, monospace; font-size: 0.78rem; line-height: 1.4; color: var(--text-body, #555); max-height: 240px; overflow-y: auto; }
/* Zebra on MAIN rows only -- the interleaved detail rows would break tbody:nth-child striping */
.bhbe-table tbody tr:nth-child(even) { background-color: transparent; }
.bhbe-table tbody tr.bhbe-alt { background-color: var(--bg-subtle, #fafafa); }
.bhbe-table tbody tr.bhbe-row:hover { background-color: var(--bg-purple-tint, #f0ebf7); }

/* Selected count badge - purple pill */
.contact-selected-badge {
    background-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.85rem;
    border-radius: 10px;
    padding: 4px 12px;
}
/* Contact grid scroll container */
.contact-grid-scroll {
    overflow-x: auto;
    overflow-y: visible;
    border-radius: 8px;
    border: 1px solid var(--border-default, #e0e0e0);
}
.contact-grid-scroll::-webkit-scrollbar {
    width: 6px;
}
.contact-grid-scroll::-webkit-scrollbar-track {
    background: var(--bg-muted, #f4f4f4);
    border-radius: 3px;
}
.contact-grid-scroll::-webkit-scrollbar-thumb {
    background: var(--border-strong, #ccc);
    border-radius: 3px;
}

/* -- Email Group Manager (MailManagement) -- */
.group-members-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.group-add-btn {
    font-size: 0.8rem;
    padding: 2px 10px;
    border-radius: 14px;
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    white-space: nowrap;
}
.group-add-btn:hover {
    background-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.group-member-chip {
    display: inline-flex;
    align-items: center;
    background: var(--bg-purple-tint, #f0edf5);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid #ddd5e8;
    border-radius: 14px;
    padding: 2px 8px 2px 10px;
    font-size: 0.8rem;
    line-height: 1.4;
}
.group-member-email {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.group-member-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: 4px;
    border-radius: 50%;
    font-size: 0.75rem;
    line-height: 1;
    color: var(--text-muted, #999);
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: none;
}
.group-member-remove:hover {
    color: var(--text-on-dark, #fff);
    background: #c0392b;
    text-decoration: none;
}

.group-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
}
.group-row__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
}
.group-row__name {
    min-width: 160px;
    font-weight: 600;
    color: var(--text-primary, #212529);
}
.group-row__email {
    display: block;
    margin-top: 2px;
    font-weight: 400;
    font-size: 0.78rem;
    color: var(--text-secondary, #6c757d);
    word-break: break-all;
}
.group-row__email--missing {
    font-style: italic;
    opacity: 0.8;
}
.group-row__body { flex: 1 1 auto; min-width: 0; }
.group-row--inactive { opacity: 0.55; }

/* Group activity: 30-day pulse counter + per-group drill-down (Mail Management) */
.group-row__activity-line {
    margin-top: 6px;
    font-size: 0.78rem;
    color: var(--text-secondary, #6c757d);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.group-row__activity-line .chev { font-size: 0.65rem; transition: transform 0.15s ease; }
.group-row__activity-line.is-open .chev { transform: rotate(180deg); }
.group-row__activity-window { color: var(--text-muted, #9a9aa6); }
.group-row__activity-warn {
    margin-top: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--status-warning-text, #b8860b);
}
.group-row__activity-panel {
    border-top: 1px solid var(--border-light, #eee);
    padding: 8px 0.85rem 0.5rem;
}
.group-activity-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    padding: 4px 0;
    font-size: 0.78rem;
    border-bottom: 1px solid var(--border-light, #f2f2f2);
}
.group-activity-row:last-child { border-bottom: none; }
.group-activity-date { color: var(--text-muted, #9a9aa6); white-space: nowrap; min-width: 130px; }
.group-activity-from { color: var(--text-primary, #333); font-weight: 500; }
.group-activity-subject { color: var(--text-secondary, #6c757d); flex: 1 1 200px; min-width: 0; word-break: break-word; }

.group-row__menu { position: relative; margin-left: auto; }
.group-row__menu-btn {
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-secondary, #6c757d);
    width: 32px;
    height: 32px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.group-row__menu-btn:hover,
.group-row__menu.is-open .group-row__menu-btn {
    background: var(--bg-subtle, #f2f2f6);
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--border-soft, #e3e3ea);
}
.group-row__menu-list {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    min-width: 180px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-soft, #e3e3ea);
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
    z-index: 20;
    padding: 4px;
    display: none;
}
.group-row__menu.is-open .group-row__menu-list { display: block; }
.group-row__menu-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.45rem 0.65rem;
    border-radius: 6px;
    background: transparent;
    border: none;
    text-align: left;
    color: var(--text-primary, #212529);
    cursor: pointer;
    font-size: 0.9rem;
}
.group-row__menu-item:hover { background: var(--bg-subtle, #f2f2f6); }
.group-row__menu-item.is-danger { color: #c0392b; }
.group-row__menu-item.is-danger:hover { background: #fdecea; color: #a93226; }

/* OOO card */
.ooo-card { margin-bottom: 1rem; }
.ooo-card__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.85rem;
    border-bottom: 1px solid var(--border-soft, #ececf2);
    background: var(--bg-subtle, #f8f8fb);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    font-size: 0.82rem;
    color: var(--text-secondary, #6c757d);
    flex-wrap: wrap;
}
.ooo-card__meta-time { font-weight: 600; color: var(--text-primary, #212529); }
.ooo-card__meta-group {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 1px 8px;
    border-radius: 10px;
    background: var(--bg-purple-tint, #f0edf5);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.75rem;
    font-weight: 600;
}
.ooo-card__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr);
    gap: 1rem;
    padding: 0.85rem;
}
@media (max-width: 900px) {
    .ooo-card__grid { grid-template-columns: 1fr; }
}
.ooo-card__field { margin-bottom: 0.35rem; font-size: 0.9rem; }
.ooo-card__field-label {
    display: inline-block;
    min-width: 64px;
    color: var(--text-secondary, #6c757d);
    font-weight: 600;
}
.ooo-card__body-scroll {
    max-height: 240px;
    overflow-y: auto;
    overflow-x: hidden;
    margin-top: 0.5rem;
    padding: 0.5rem 0.65rem;
    background: var(--card-bg-subtle, #fafafd);
    border: 1px solid var(--border-soft, #ececf2);
    border-radius: 6px;
    font-size: 0.88rem;
    line-height: 1.45;
    white-space: pre-wrap;
}
.ooo-card__actions { display: flex; flex-direction: column; gap: 0.6rem; }
.ooo-card__action-block { display: flex; flex-direction: column; gap: 0.35rem; }
.ooo-card__action-title {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #6c757d);
    font-weight: 700;
}
.ooo-card__note {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    padding: 0.5rem 0.65rem;
    border-radius: 6px;
    font-size: 0.82rem;
    line-height: 1.4;
}
.ooo-card__note i { margin-top: 0.15rem; }
.ooo-card__note--info {
    background: var(--bg-info-soft, #e6f4f8);
    color: var(--status-info-text, #0c5460);
    border: 1px solid var(--border-info-soft, #bee5eb);
}
.ooo-card__note--danger {
    background: var(--bg-danger-soft, #fdecea);
    color: var(--status-danger-text, #842029);
    border: 1px solid var(--border-danger-soft, #f5c6cb);
}
.ooo-card__inline-form {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    flex-wrap: wrap;
}
.ooo-card__inline-form .form-control { max-width: 180px; }
.ooo-card__entity-stack { display: flex; flex-direction: column; gap: 0.35rem; align-items: flex-start; }
.ooo-card__clear-row { margin-top: 0.25rem; }

[data-theme="dark"] .ooo-card__meta { background: var(--bg-subtle, #1d1f24); border-bottom-color: var(--border-soft, #2a2c33); }
[data-theme="dark"] .ooo-card__body-scroll { background: var(--card-bg-subtle, #1d1f24); border-color: var(--border-soft, #2a2c33); }
[data-theme="dark"] .group-row__menu-list { background: var(--card-bg, #23262d); border-color: var(--border-soft, #2a2c33); }
[data-theme="dark"] .group-row__menu-item { color: var(--text-primary, #e6e6e6); }
[data-theme="dark"] .group-row__menu-item:hover { background: var(--bg-subtle, #1d1f24); }

/* Station Logo Placeholder - three-tier cascade fallback */
.outlet-logo-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 6px;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--brand-accent, #fdb913);
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1;
    text-transform: uppercase;
    vertical-align: middle;
}
.outlet-logo-placeholder::after {
    content: attr(data-initial);
}
.outlet-logo-placeholder--sm {
    width: 28px;
    height: 28px;
    min-width: 28px;
    font-size: 0.8rem;
    border-radius: 4px;
}
.outlet-logo-placeholder--lg {
    width: 80px;
    height: 80px;
    min-width: 80px;
    font-size: 2rem;
    border-radius: 8px;
}

/* ============================
   Email Credibility Badges
   ============================ */
.cred-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 10px;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 1.4;
}
.cred-badge--good {
    background: var(--status-info, #17a2b8);
    color: var(--text-on-dark, #fff);
}
.cred-badge--med {
    background: var(--status-warning-bg, #ffc107);
    color: var(--text-primary, #333);
}
.cred-badge--low {
    background: var(--status-danger, #dc3545);
    color: var(--text-on-dark, #fff);
}

/* ============================
   File Preview Overlay
   ============================ */
/* --- BH Preview Overlay --- */
.bh-preview-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 10050;
    background: rgba(20, 8, 40, 0.92);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.25s ease;
}
.bh-preview-overlay.bh-preview-visible {
    opacity: 1;
}

/* Toolbar (file-preview overlay; class renamed from .bh-preview-toolbar to
   .bh-file-preview-toolbar to avoid collision with the PDF preview viewer
   chrome that also uses .bh-preview-toolbar with position:fixed) */
.bh-file-preview-toolbar {
    position: absolute;
    top: 0; left: 0; right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 1.25rem;
    height: 54px;
    background: linear-gradient(135deg, #3d1a6f 0%, #2a1050 100%);
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    z-index: 2;
}
.bh-file-preview-toolbar-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}
.bh-preview-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    flex-shrink: 0;
}
.bh-preview-type-badge--video { background: var(--brand-accent, #fdb913); color: var(--brand-primary, #3d1a6f); }
.bh-preview-type-badge--audio { background: rgba(253,185,19,0.2); color: var(--brand-accent, #fdb913); border: 1px solid rgba(253,185,19,0.4); }
.bh-preview-type-badge--image { background: rgba(255,255,255,0.15); color: var(--text-on-dark, #fff); }
.bh-preview-type-badge--pdf   { background: var(--brand-danger, #ed174c); color: var(--text-on-dark, #fff); }
.bh-preview-type-badge--unsupported { background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.6); }
.bh-preview-filename {
    color: var(--text-on-dark, #fff);
    font-size: 0.85rem;
    font-weight: 500;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 60vw;
}
.bh-preview-actions {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}
.bh-preview-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    /* Resting contrast: a clearly-visible translucent fill + hairline border on the dark toolbar so
       the button reads as a button, with a full-white glyph. Gold (download) / red (close) hover
       reveals below are unchanged. */
    border: 1px solid rgba(255,255,255,0.30);
    background: rgba(255,255,255,0.18);
    color: var(--text-on-dark, #fff);
    font-size: 0.9rem;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.2s ease;
}
.bh-preview-btn:hover {
    background: rgba(255,255,255,0.2);
    color: var(--text-on-dark, #fff);
    text-decoration: none;
}
.bh-preview-download:hover {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
}
.bh-preview-close:hover {
    background: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff);
}

/* Content area */
.bh-preview-content {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding-top: 56px;
}

/* Loading spinner */
.bh-preview-loading {
    color: var(--brand-accent, #fdb913);
    font-size: 2.2rem;
}

/* Image */
.bh-preview-image {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: 0 8px 48px rgba(0,0,0,0.5);
}

/* PDF */
.bh-preview-pdf {
    width: 90vw;
    height: 85vh;
    border: none;
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    box-shadow: 0 8px 48px rgba(0,0,0,0.5);
}

/* Video */
.bh-preview-video-wrap {
    position: relative;
    max-width: 90vw;
    max-height: 85vh;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 56px rgba(0,0,0,0.6), 0 0 0 1px rgba(253,185,19,0.15);
    background: #000;
}
.bh-preview-video {
    display: block;
    max-width: 90vw;
    max-height: 85vh;
    width: 100%;
    border-radius: 0;
    background: #000;
}

/* Audio */
.bh-preview-audio-card {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 50%, #3d1a6f 100%);
    border-radius: 16px;
    padding: 2.5rem 3rem 2rem;
    text-align: center;
    min-width: 340px;
    max-width: 480px;
    box-shadow: 0 12px 56px rgba(0,0,0,0.5), 0 0 0 1px rgba(253,185,19,0.2);
    position: relative;
    overflow: hidden;
}
.bh-preview-audio-card::before {
    content: '';
    position: absolute;
    top: -40%; left: -40%;
    width: 180%; height: 180%;
    background: radial-gradient(ellipse at 30% 20%, rgba(253,185,19,0.08) 0%, transparent 60%);
    pointer-events: none;
}
.bh-preview-audio-viz {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 3px;
    height: 48px;
    margin-bottom: 1.2rem;
}
.bh-preview-audio-viz-bar {
    width: 4px;
    border-radius: 2px;
    background: var(--brand-accent, #fdb913);
    opacity: 0.5;
    transform-origin: bottom;
}
.bh-preview-audio-card.is-playing .bh-preview-audio-viz-bar {
    animation: bhAudioPulse 0.8s ease-in-out infinite alternate;
    opacity: 1;
}
.bh-preview-audio-viz-bar:nth-child(1) { height: 12px; animation-delay: 0s; }
.bh-preview-audio-viz-bar:nth-child(2) { height: 20px; animation-delay: 0.1s; }
.bh-preview-audio-viz-bar:nth-child(3) { height: 32px; animation-delay: 0.15s; }
.bh-preview-audio-viz-bar:nth-child(4) { height: 24px; animation-delay: 0.05s; }
.bh-preview-audio-viz-bar:nth-child(5) { height: 40px; animation-delay: 0.2s; }
.bh-preview-audio-viz-bar:nth-child(6) { height: 28px; animation-delay: 0.12s; }
.bh-preview-audio-viz-bar:nth-child(7) { height: 16px; animation-delay: 0.08s; }
.bh-preview-audio-viz-bar:nth-child(8) { height: 36px; animation-delay: 0.18s; }
.bh-preview-audio-viz-bar:nth-child(9) { height: 22px; animation-delay: 0.06s; }
@keyframes bhAudioPulse {
    0%   { transform: scaleY(0.4); opacity: 0.5; }
    100% { transform: scaleY(1); opacity: 1; }
}
.bh-preview-audio-name {
    color: var(--text-on-dark, #fff);
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    position: relative;
}
.bh-preview-audio {
    width: 100%;
    position: relative;
    border-radius: 28px;
}

/* Fallback / error state */
.bh-preview-fallback {
    text-align: center;
    color: var(--text-on-dark, #fff);
    padding: 2.5rem 3rem;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    border-radius: 16px;
    box-shadow: 0 12px 56px rgba(0,0,0,0.5);
    max-width: 420px;
}
.bh-preview-fallback-icon {
    font-size: 2.8rem;
    color: var(--brand-accent, #fdb913);
    margin-bottom: 1rem;
    display: block;
}
.bh-preview-fallback-msg {
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
    line-height: 1.5;
}
.bh-preview-fallback-sub {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.55);
    margin-bottom: 1.5rem;
}
.bh-preview-fallback .btn {
    border-radius: 20px;
    padding: 0.45rem 1.5rem;
    font-weight: 600;
    font-size: 0.85rem;
}

@media (max-width: 576px) {
    .bh-preview-image { max-width: 96vw; max-height: 80vh; }
    .bh-preview-pdf { width: 96vw; height: 80vh; }
    .bh-preview-video-wrap { max-width: 96vw; }
    .bh-preview-video { max-width: 96vw; max-height: 80vh; }
    .bh-preview-audio-card { min-width: 0; width: 90vw; padding: 1.5rem; }
    .bh-preview-filename { max-width: 40vw; }
    .bh-preview-type-badge { display: none; }
}

/* BH Preview overlay -- phone hardening (standard previewer, all platforms) */
@media (max-width: 768px) {
    .bh-file-preview-toolbar { height: 52px; padding: 0 0.75rem; }
    .bh-preview-filename { max-width: 52vw; font-size: 0.8rem; }
    .bh-preview-btn { width: 44px; height: 44px; font-size: 1rem; }
    .bh-preview-content { padding-top: 54px; }
    .bh-preview-image { max-width: 100vw; max-height: calc(100vh - 60px); }
    .bh-preview-pdf { width: 100vw; height: calc(100vh - 54px); border-radius: 0; }
    .bh-preview-video-wrap, .bh-preview-video { max-width: 100vw; max-height: calc(100vh - 60px); }
    .bh-preview-audio-card { min-width: 0; width: 90vw; max-width: 90vw; padding: 2rem 1.25rem; }
}
.bh-preview-pdf-hint {
    position: absolute; bottom: 8px; left: 0; right: 0; text-align: center;
    color: rgba(255,255,255,0.85); font-size: 0.8rem;
}
.bh-preview-pdf-hint a { color: var(--brand-accent, #fdb913); text-decoration: underline; }

/* =============================================================================
   BH Dialogs - Toast Notifications
   Global toast styles (JS in JScript/bh-dialogs.js)
   ============================================================================= */
.bh-toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}
.bh-toast {
    min-width: 300px;
    max-width: 450px;
    padding: 12px 16px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: flex-start;
    opacity: 0;
    transform: translateX(100%);
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
    pointer-events: auto;
}
.bh-toast.show {
    opacity: 1;
    transform: translateX(0);
}
.bh-toast.hiding {
    opacity: 0;
    transform: translateX(100%);
}
.bh-toast-error   { background: var(--status-danger-bg, #f8d7da); border-left: 4px solid var(--status-danger, #dc3545); color: var(--status-danger-text, #721c24); }
.bh-toast-warning { background: var(--status-warning-bg, #fff3cd); border-left: 4px solid var(--status-warning-border, #ffc107); color: var(--status-warning-text, #856404); }
.bh-toast-success { background: var(--status-success-bg, #d4edda); border-left: 4px solid var(--status-success, #28a745); color: var(--status-success-text, #155724); }
.bh-toast-info    { background: var(--status-info-bg, #d1ecf1); border-left: 4px solid var(--status-info, #17a2b8); color: var(--status-info-text, #0c5460); }
.bh-toast-icon    { margin-right: 10px; font-size: 18px; flex-shrink: 0; }
.bh-toast-content { flex: 1; }
.bh-toast-title   { font-weight: 600; margin-bottom: 2px; }
.bh-toast-message { font-size: 0.9em; }
.bh-toast-close   { background: none; border: none; font-size: 18px; cursor: pointer; padding: 0 0 0 10px; opacity: 0.6; }
.bh-toast-close:hover { opacity: 1; }

/* =============================================================================
   BH Dialogs - SweetAlert2 Brand Overrides
   ============================================================================= */
.bh-swal-popup {
    font-family: inherit !important;
    border-radius: 12px !important;
    border-top: 4px solid var(--brand-primary, #3d1a6f) !important;
}
.bh-swal-popup .swal2-title {
    color: var(--brand-primary, #3d1a6f) !important;
    font-size: 1.3em !important;
}
.bh-swal-confirm {
    border-radius: 6px !important;
    font-weight: 600 !important;
    padding: 8px 24px !important;
}
.bh-swal-cancel {
    border-radius: 6px !important;
    font-weight: 600 !important;
    padding: 8px 24px !important;
}
.bh-swal-input {
    border-radius: 6px !important;
    border: 1px solid var(--border-strong, #ced4da) !important;
}
.bh-swal-input:focus {
    border-color: var(--brand-primary, #3d1a6f) !important;
    box-shadow: 0 0 0 0.2rem rgba(61, 26, 111, 0.25) !important;
}

/* =============================================================================
   Client Portal - Modernisation Components
   ============================================================================= */

/* Portal horizontal tab navigation - replaces vertical sidebar pills */
/* Override global .nav-tabs rules which use !important on border/background.
   Portal tabs have a different visual treatment: smaller text, icon+label columns,
   white background with purple/gold active state instead of gold fill. */
.portal-tabs {
    border-bottom: 3px solid var(--brand-primary, #3d1a6f) !important;
    flex-wrap: wrap;
    gap: 0 2px !important;
    padding: 0;
    margin-bottom: 0;
    margin-left: 0 !important;
}
.portal-tabs .nav-item {
    margin-bottom: -3px !important;
    display: block !important;
}
.portal-tabs .nav-link {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 14px 8px;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #666) !important;
    background-color: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 6px 6px 0 0;
    transition: color 0.2s, background 0.2s;
    white-space: nowrap;
    flex: none;
}
.portal-tabs .nav-link:hover,
.portal-tabs .nav-link:focus {
    color: var(--brand-primary, #3d1a6f) !important;
    background: var(--bg-purple-tint, #f8f5fc) !important;
    border-color: var(--border-default, #e0e0e0) var(--border-default, #e0e0e0) var(--brand-primary, #3d1a6f) !important;
}
.portal-tabs .nav-link.active {
    color: var(--brand-primary, #3d1a6f) !important;
    background: var(--bg-surface, #fff) !important;
    border-color: var(--brand-primary, #3d1a6f) var(--brand-primary, #3d1a6f) var(--brand-accent, #fdb913) !important;
    border-bottom-width: 3px !important;
}
.portal-tabs .nav-link .tab-icon {
    font-size: 1.1rem;
    line-height: 1;
}
.portal-tabs .nav-link .tab-label {
    font-size: 0.68rem;
    line-height: 1.1;
}
/* Mobile (<=990px): the 14-section client portal nav becomes a single SWIPEABLE
   pill row (labels KEPT), in the same pill language as the app-wide .nav-tabs rule.
   Swipe (not wrap) is chosen here only because at 14 tabs a wrap would be ~5 rows
   tall; below ~10 tabs the shared .nav-tabs rule wraps instead (every tab visible,
   no scrolling). Replaces the old icon-only treatment that hid every label
   (2026-06-06). The right-edge mask fades the last pill to hint there is more. */
@media (max-width: 990px) {
    .portal-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 0.5rem !important;
        border-bottom: none !important;
        padding-bottom: 6px;
        margin-bottom: 0.25rem;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
    }
    .portal-tabs .nav-item {
        flex: 0 0 auto;
        width: auto;
        margin-bottom: 0 !important;
        scroll-snap-align: start;
    }
    .portal-tabs .nav-link {
        flex-direction: row !important;
        align-items: center;
        gap: 0.4rem;
        padding: 0.5rem 0.85rem;
        font-size: 0.78rem;
        letter-spacing: 0.02em;
        border: 1px solid var(--border-light, #e6e4ee) !important;
        border-radius: 10px !important;
        background: var(--bg-subtle, #f4f3f8) !important;
        color: var(--text-body, #2d2d34) !important;
        min-height: 40px;
        white-space: nowrap;
    }
    .portal-tabs .nav-link:hover,
    .portal-tabs .nav-link:focus {
        background: var(--bg-purple-tint, #f0ebf7) !important;
        border-color: var(--border-brand, #e0d4f0) !important;
        color: var(--brand-primary, #3d1a6f) !important;
    }
    .portal-tabs .nav-link.active {
        background: var(--brand-primary, #3d1a6f) !important;
        color: #fff !important;
        border-color: transparent !important;
        border-bottom-width: 1px !important;
        box-shadow: 0 2px 6px rgba(61, 26, 111, 0.25);
    }
    .portal-tabs .nav-link .tab-icon {
        font-size: 0.9rem;
        color: var(--brand-primary, #3d1a6f);
    }
    .portal-tabs .nav-link.active .tab-icon {
        color: #fff;
    }
    .portal-tabs .nav-link .tab-label {
        display: inline;
        font-size: 0.78rem;
        line-height: 1;
    }
    /* Dark mode: inactive = dark surface chip, active stays solid brand-purple. */
    [data-theme="dark"] .portal-tabs .nav-link {
        background: var(--bg-surface, #1d1d1d) !important;
        border-color: var(--border-default, #2a2a2a) !important;
        color: var(--text-body, #d4d4d4) !important;
    }
    [data-theme="dark"] .portal-tabs .nav-link .tab-icon {
        color: var(--brand-primary, #c9a6f0);
    }
    [data-theme="dark"] .portal-tabs .nav-link:hover,
    [data-theme="dark"] .portal-tabs .nav-link:focus {
        background: var(--bg-purple-tint, #2a1f3d) !important;
        border-color: var(--brand-primary, #a76bdf) !important;
        color: var(--brand-primary, #c9a6f0) !important;
    }
    [data-theme="dark"] .portal-tabs .nav-link.active {
        background: var(--brand-primary, #5a2d82) !important;
        color: #fff !important;
        border-color: transparent !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
    }
    [data-theme="dark"] .portal-tabs .nav-link.active .tab-icon {
        color: #fff;
    }
}

/* Client Portal two-tier nav (2026-06-09): Tier-1 destinations use the canonical .nav-tabs;
   Tier-2 campaign sub-views use the .smallside vertical sidebar, which hides for portal-level
   panes (Campaigns selector / Media Alerts / Account) via .hide-side on the row. */
.portal-l1-tabs { margin-left: 0 !important; }
.portal-l1-tabs .nav-link { flex: 0 0 auto; text-transform: uppercase; letter-spacing: 0.03em; }
.portal-l1-tabs .nav-link.portal-l1-here { background-color: var(--brand-accent, #fdb913) !important; color: #1d1330 !important; border-color: var(--brand-primary, #3d1a6f) var(--brand-primary, #3d1a6f) var(--brand-accent, #fdb913) !important; }
.portal-campaign-side { padding-top: 1em; }
.portal-campaign-side .nav-link { text-transform: uppercase; letter-spacing: 0.02em; font-size: 0.9rem; padding: 10px 12px; color: var(--text-body, #2d2d34); border-left: 3px solid transparent; }
.portal-campaign-side .nav-link i { width: 18px; text-align: center; margin-right: 0.4rem; color: var(--brand-primary, #3d1a6f); }
.portal-campaign-side .nav-link:hover { background: var(--bg-purple-tint, #f0ebf7); border-left-color: var(--brand-accent, #fdb913); }
.portal-campaign-side .nav-link.active { background: linear-gradient(135deg, var(--brand-primary, #3d1a6f), #5a2d82) !important; color: #fff !important; border-left-color: var(--brand-accent, #fdb913); }
.portal-campaign-side .nav-link.active i { color: var(--brand-accent, #fdb913) !important; }
/* "All Campaigns" back item -- a link affordance, separated from the content sub-views (not a selected pill) */
.portal-campaign-side .portal-nav-home { color: var(--brand-primary, #3d1a6f) !important; font-weight: 700; border-left-color: transparent !important; border-bottom: 1px solid var(--border-default, #e6e4ee); border-radius: 0; margin-bottom: 6px; padding-bottom: 12px; }
.portal-campaign-side .portal-nav-home i { color: var(--brand-primary, #3d1a6f) !important; }
.portal-campaign-side .portal-nav-home:hover { background: var(--bg-purple-tint, #f0ebf7); }
.portal-campaign-side .portal-nav-home.active { background: transparent !important; color: var(--brand-primary, #3d1a6f) !important; }
[data-theme="dark"] .portal-campaign-side .portal-nav-home, [data-theme="dark"] .portal-campaign-side .portal-nav-home i { color: #c9a6f0 !important; }
.portal-detail-row.hide-side .portal-campaign-side { display: none; }

/* Client portal -- modern campaign selector card (replaces the legacy storybox logo tiles) */
.portal-campaign-card { width: 280px; background: var(--bg-card, #fff); border: 1px solid var(--border-default, #e6e4ee); border-radius: 12px; overflow: hidden; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease; }
.portal-campaign-card:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(40, 20, 70, 0.16); }
.portal-campaign-card .pcc-strip { height: 7px; background: var(--brand-primary, #3d1a6f); }
.portal-campaign-card.is-closed .pcc-strip { background: var(--text-secondary, #6c757d); }
.portal-campaign-card .pcc-body { padding: 16px; }
.portal-campaign-card .pcc-title { font-weight: 700; color: var(--brand-primary, #3d1a6f); display: flex; align-items: center; gap: 8px; margin-bottom: 12px; line-height: 1.25; }
.portal-campaign-card .pcc-title i { color: #5a2d82; flex: 0 0 auto; }
.portal-campaign-card .pcc-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.portal-campaign-card .pcc-badge { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 3px 10px; border-radius: 999px; }
.portal-campaign-card .pcc-badge.active { background: var(--bg-gold-tint, #fff5dc); color: #7a5600; border: 1px solid var(--brand-accent, #fdb913); }
.portal-campaign-card .pcc-badge.closed { background: var(--bg-subtle, #eef0f4); color: var(--text-secondary, #6c757d); }
.portal-campaign-card .pcc-go { color: var(--brand-primary, #3d1a6f); font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
[data-theme="dark"] .portal-campaign-card { background: var(--bg-card, #1d1d1d); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .portal-campaign-card .pcc-title { color: var(--text-body, #e5e5e5); }
[data-theme="dark"] .portal-campaign-card .pcc-title i, [data-theme="dark"] .portal-campaign-card .pcc-go { color: #c9a6f0; }

/* Client portal -- form section card (Account details, Password reset) */
.portal-form-card { background: var(--bg-card, #fff); border: 1px solid var(--border-default, #e6e4ee); border-radius: 12px; padding: 22px 24px; max-width: 820px; margin-bottom: 20px; }
[data-theme="dark"] .portal-form-card { background: var(--bg-card, #1d1d1d); border-color: var(--border-default, #2a2a2a); }

/* Client portal -- modernise the legacy .projectcard list cards (Agreements / Invoices / Downloads /
   Clips): rounded corners, clean border, soft shadow, and kill the red-flash hover animation. */
.portal-tab-content .projectcard {
    min-height: 0;
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--border-default, #e6e4ee);
    background-color: var(--bg-card, #fff);
    box-shadow: 0 1px 3px rgba(61, 26, 111, 0.05);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
    animation: none !important;
}
.portal-tab-content .projectcard:hover {
    animation: none !important;
    background-color: var(--bg-card, #fff);
    box-shadow: 0 6px 18px rgba(40, 20, 70, 0.10);
    transform: translateY(-1px);
}
.portal-tab-content .projectcontent { margin-bottom: 14px; }
[data-theme="dark"] .portal-tab-content .projectcard { background-color: var(--bg-card, #1d1d1d); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .portal-tab-content .projectcard:hover { background-color: var(--bg-card, #1d1d1d); }

/* Portal KPI hero cards - replaces inline 110px/90px font blocks */
.portal-kpi-hero {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 22px;
    border-radius: 12px;
    background: var(--bg-card, #ffffff);
    border: 1px solid var(--border-default, #e6e4ee);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    box-shadow: 0 1px 3px rgba(61, 26, 111, 0.06);
    margin-bottom: 16px;
}
.portal-kpi-hero .kpi-icon {
    font-size: 1.7rem;
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.9;
}
.portal-kpi-hero .kpi-body {
    flex: 1;
}
.portal-kpi-hero .kpi-value {
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.5px;
    color: var(--brand-primary, #3d1a6f);
}
.portal-kpi-hero .kpi-label {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary, #6c757d);
    margin-top: 2px;
}
/* Per-metric accent: left border + icon/value colour only (gradient-free, on-brand, readable) */
.portal-kpi-hero.purple { border-left-color: #3d1a6f; }
.portal-kpi-hero.purple .kpi-icon, .portal-kpi-hero.purple .kpi-value { color: #3d1a6f; }
.portal-kpi-hero.magenta { border-left-color: #7d1d61; }
.portal-kpi-hero.magenta .kpi-icon, .portal-kpi-hero.magenta .kpi-value { color: #7d1d61; }
.portal-kpi-hero.teal { border-left-color: #117a8b; }
.portal-kpi-hero.teal .kpi-icon, .portal-kpi-hero.teal .kpi-value { color: #117a8b; }
.portal-kpi-hero.gold { border-left-color: #c08b00; }
.portal-kpi-hero.gold .kpi-icon, .portal-kpi-hero.gold .kpi-value { color: #b07f00; }
/* Dark mode: card surface flips; metric colours lighten for contrast */
[data-theme="dark"] .portal-kpi-hero { background: var(--bg-card, #1d1d1d); border-color: var(--border-default, #2a2a2a); box-shadow: none; }
[data-theme="dark"] .portal-kpi-hero .kpi-icon, [data-theme="dark"] .portal-kpi-hero .kpi-value { color: var(--text-body, #e5e5e5); }
[data-theme="dark"] .portal-kpi-hero.purple .kpi-icon, [data-theme="dark"] .portal-kpi-hero.purple .kpi-value { color: #c9a6f0; }
[data-theme="dark"] .portal-kpi-hero.magenta .kpi-icon, [data-theme="dark"] .portal-kpi-hero.magenta .kpi-value { color: #e58bc4; }
[data-theme="dark"] .portal-kpi-hero.teal .kpi-icon, [data-theme="dark"] .portal-kpi-hero.teal .kpi-value { color: #5ec8da; }
[data-theme="dark"] .portal-kpi-hero.gold .kpi-icon, [data-theme="dark"] .portal-kpi-hero.gold .kpi-value { color: #fdb913; }

/* Portal metric card - replaces 8 identical inline-styled card divs */
.portal-metric-card {
    padding: 20px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    margin-bottom: 16px;
    background: var(--bg-surface, #fff);
    text-align: center;
    transition: box-shadow 0.2s;
}
.portal-metric-card:hover {
    box-shadow: 0 2px 12px rgba(61, 26, 111, 0.08);
}
.portal-metric-card h2 {
    margin: 0 0 4px;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
}
.portal-metric-card small {
    color: var(--text-secondary, #666);
    font-size: 0.8rem;
}

/* Portal score gauge - for CQI, Success Score, Barcelona completion */
.portal-score-gauge {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 5px solid var(--border-default, #e0e0e0);
    transition: border-color 0.3s;
}
.portal-score-gauge .score-value {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}
.portal-score-gauge .score-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #666);
}
.portal-score-gauge.small {
    width: 64px;
    height: 64px;
    border-width: 3px;
}
.portal-score-gauge.small .score-value {
    font-size: 1.3rem;
}
.portal-score-gauge.green { border-color: var(--status-success, #28a745); }
.portal-score-gauge.green .score-value { color: var(--status-success, #28a745); }
.portal-score-gauge.amber { border-color: var(--status-warning-border, #ffc107); }
.portal-score-gauge.amber .score-value { color: var(--status-warning-text, #856404); }
.portal-score-gauge.red { border-color: var(--status-danger, #dc3545); }
.portal-score-gauge.red .score-value { color: var(--status-danger, #dc3545); }

/* Portal coverage breakdown card - category colour-coded */
.portal-coverage-card {
    padding: 16px 20px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    border-radius: 0 8px 8px 0;
    margin-bottom: 12px;
    background: var(--bg-surface, #fff);
}
.portal-coverage-card .coverage-icon {
    font-size: 1.3rem;
    margin-right: 8px;
    vertical-align: middle;
}
.portal-coverage-card .coverage-count {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
}
.portal-coverage-card .coverage-label {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.portal-coverage-card .coverage-detail {
    font-size: 0.78rem;
    color: var(--text-tertiary, #888);
    margin-top: 4px;
}
.portal-coverage-card.interviews { border-left-color: var(--brand-magenta, #7d1d61); }
.portal-coverage-card.interviews .coverage-count { color: var(--brand-magenta, #7d1d61); }
.portal-coverage-card.engagements { border-left-color: var(--brand-danger, #ed174c); }
.portal-coverage-card.engagements .coverage-count { color: var(--brand-danger, #ed174c); }
.portal-coverage-card.social { border-left-color: var(--brand-accent, #fdb913); }
.portal-coverage-card.social .coverage-count { color: var(--status-warning-text, #856404); }

/* Portal chart container - consistent framing for canvas charts */
.portal-chart-container {
    padding: 20px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    margin-bottom: 20px;
    background: var(--bg-surface, #fff);
}
.portal-chart-container h5 {
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}
.portal-chart-container h5 i {
    color: var(--brand-accent, #fdb913);
    margin-right: 6px;
}

/* Media Library copyright gate (client portal Clips/Media Library tab) */
.ml-gate {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 20px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-left: 4px solid var(--brand-accent, #fdb913);
    background: var(--bg-subtle, #fff8e5);
    border-radius: 10px;
    transition: background .2s ease, border-color .2s ease, transform .15s ease;
}
.ml-gate--unlocked {
    border-left-color: #28a745;
    background: var(--bg-surface, #fff);
}
.ml-gate--nudge { animation: mlGateNudge 0.6s ease; }
@keyframes mlGateNudge {
    0%, 100% { transform: translateX(0); }
    25%      { transform: translateX(-6px); }
    75%      { transform: translateX(6px); }
}
.ml-gate__icon {
    flex: 0 0 auto;
    font-size: 1.6rem;
    color: var(--brand-primary, #3d1a6f);
    padding-top: 2px;
}
.ml-gate--unlocked .ml-gate__icon { color: #28a745; }
.ml-gate__body { flex: 1 1 auto; }
.ml-gate__body strong {
    display: block;
    font-size: 1rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 4px;
}
.ml-gate__body p {
    font-size: 0.85rem;
    color: var(--text-secondary, #555);
    margin-bottom: 10px;
    line-height: 1.5;
}
.ml-gate__check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
    margin: 0;
    cursor: pointer;
}
.ml-gate__check input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; }

/* Locked / unlocked copy + button visibility */
.ml-gate .ml-gate__title-unlocked,
.ml-gate .ml-gate__copy-unlocked        { display: none; }
.ml-gate--unlocked .ml-gate__title-locked,
.ml-gate--unlocked .ml-gate__copy-locked { display: none; }
.ml-gate--unlocked .ml-gate__title-unlocked,
.ml-gate--unlocked .ml-gate__copy-unlocked { display: block; }
.ml-gate--unlocked .ml-gate__btn         { display: none; }
.ml-gate__btn                            { margin-top: 4px; }
.ml-clip-download.disabled,
.ml-clip-download[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Shared skeleton-loader system (.bh-skel*).
   Used by the client portal + newswire card grid. Keyframes also drive the
   pre-existing .nwc-skeleton-hero which references this animation by name. */
@keyframes bh-skel-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@keyframes skel-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
.bh-skel {
    background: linear-gradient(90deg,
        var(--bg-subtle, #eef0f3) 0%,
        var(--bg-muted, #dde1e6) 50%,
        var(--bg-subtle, #eef0f3) 100%);
    background-size: 200% 100%;
    animation: bh-skel-shimmer 1.4s ease-in-out infinite;
    border-radius: 6px;
    display: block;
}
.bh-skel--line       { height: 0.8rem; margin-bottom: 0.55rem; }
.bh-skel--line.tall  { height: 1.1rem; }
.bh-skel--line.short { width: 60%; }
.bh-skel--line.xshort{ width: 35%; }
.bh-skel--pill       { height: 1.6rem; width: 5rem; border-radius: 999px; display: inline-block; }
.bh-skel--circle     { width: 2.2rem; height: 2.2rem; border-radius: 50%; }
.bh-skel--tile       { height: 1.6rem; width: 100%; }

.bh-skel-row { display: flex; align-items: center; gap: 12px; padding: 14px 16px;
               border-bottom: 1px solid var(--border-default, #eef0f3); }
.bh-skel-row:last-child { border-bottom: none; }
.bh-skel-row > .bh-skel--line { flex: 1 1 auto; margin: 0; }

/* KPI-tile skeleton: matches the .portal-metric-card silhouette */
.bh-skel-kpi {
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    padding: 16px;
    background: var(--bg-surface, #fff);
    text-align: center;
}
.bh-skel-kpi .bh-skel--line.value { height: 1.9rem; width: 70%; margin: 0 auto 0.6rem; }
.bh-skel-kpi .bh-skel--line.label { height: 0.7rem; width: 50%; margin: 0 auto; }

/* Chart skeleton: vertical-bar suggestion (looks like a column chart). */
.bh-skel-chart {
    height: 280px;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 16px 12px 12px;
}
.bh-skel-chart .bar { flex: 1 1 0; border-radius: 4px 4px 0 0;
    background: linear-gradient(90deg,
        var(--bg-subtle, #eef0f3) 0%,
        var(--bg-muted, #dde1e6) 50%,
        var(--bg-subtle, #eef0f3) 100%);
    background-size: 200% 100%;
    animation: bh-skel-shimmer 1.4s ease-in-out infinite;
}
.bh-skel-chart .bar:nth-child(1)  { height: 45%; }
.bh-skel-chart .bar:nth-child(2)  { height: 70%; }
.bh-skel-chart .bar:nth-child(3)  { height: 30%; }
.bh-skel-chart .bar:nth-child(4)  { height: 80%; }
.bh-skel-chart .bar:nth-child(5)  { height: 55%; }
.bh-skel-chart .bar:nth-child(6)  { height: 90%; }
.bh-skel-chart .bar:nth-child(7)  { height: 40%; }
.bh-skel-chart .bar:nth-child(8)  { height: 65%; }
.bh-skel-chart .bar:nth-child(9)  { height: 75%; }
.bh-skel-chart .bar:nth-child(10) { height: 35%; }

/* Chart skeleton overlays the canvas inside .portal-chart-container.
   Removed by JS when renderChart / showEmpty fires. */
.portal-chart-container { position: relative; }
.portal-chart-container > .bh-skel-chart,
.portal-chart-container > .bh-skel-chart--trend {
    position: absolute;
    left: 16px; right: 16px;
    top: 54px;
    bottom: 16px;
    height: auto;
    background: var(--bg-surface, #fff);
    z-index: 1;
    pointer-events: none;
}
/* Fixed-height wrapper bounding the chart canvas; skeleton overlays it while loading. */
.portal-chart-canvas-wrap > .bh-skel-chart,
.portal-chart-canvas-wrap > .bh-skel-chart--trend {
    position: absolute;
    inset: 0;
    height: auto;
    background: var(--bg-surface, #fff);
    z-index: 1;
    pointer-events: none;
}
.bh-skel-chart.bh-skel-chart--trend { align-items: stretch; height: 240px;
    background:
        linear-gradient(90deg,
            var(--bg-subtle, #eef0f3) 0%,
            var(--bg-muted, #dde1e6) 50%,
            var(--bg-subtle, #eef0f3) 100%);
    background-size: 200% 100%;
    animation: bh-skel-shimmer 1.4s ease-in-out infinite;
    border-radius: 6px;
    padding: 0;
}
.bh-skel-chart.bh-skel-chart--trend .bar { display: none; }

/* Campaign-selector skeleton -- matches the real .portal-client-hero + .portal-campaign-card shape.
   Hero block: caption (small), title (heading), subtitle (body line). Then the row of 280px tiles. */
.bh-skel-client-hero { margin-bottom: 24px; max-width: 600px; }
.bh-skel-client-hero__caption  { display: block; height: 0.7rem; width: 100px; margin-bottom: 10px; border-radius: 4px; }
.bh-skel-client-hero__title    { display: block; height: 2rem;   width: 320px; margin-bottom: 10px; border-radius: 6px; }
.bh-skel-client-hero__subtitle { display: block; height: 0.9rem; width: 280px; border-radius: 4px; }

.bh-skel-pcc-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.bh-skel-pcc {
    width: 280px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e6e4ee);
    border-radius: 12px;
    overflow: hidden;
}
.bh-skel-pcc__strip {
    height: 7px;
    background: linear-gradient(90deg,
        var(--bg-subtle, #eef0f3) 0%,
        var(--bg-muted, #dde1e6) 50%,
        var(--bg-subtle, #eef0f3) 100%);
    background-size: 200% 100%;
    animation: bh-skel-shimmer 1.4s ease-in-out infinite;
}
.bh-skel-pcc__body  { padding: 16px; }
.bh-skel-pcc__title { display: block; height: 1.1rem; width: 85%; margin-bottom: 16px; border-radius: 4px; }
.bh-skel-pcc__row   { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bh-skel-pcc__pill  { display: inline-block; height: 1.1rem; width: 4rem; border-radius: 999px; }
.bh-skel-pcc__go    { display: inline-block; height: 0.8rem; width: 5.5rem; border-radius: 4px; }
[data-theme="dark"] .bh-skel-pcc { background: var(--bg-card, #1d1d1d); border-color: var(--border-default, #2a2a2a); }

/* Client portal Account tab -- read-only profile field (matches form-control shape but inert) */
.form-control.bh-readonly {
    display: block;
    width: 100%;
    background: var(--bg-subtle, #f5f6f8);
    color: var(--text-primary, #333);
    cursor: default;
    user-select: text;
}

/* ============================================================
   Client portal: Agreements + Invoices redesign (2026-06-09)
   ============================================================ */

/* Agreement card -- single rich card per agreement / addendum */
.pcp-agreement-card {
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e6e3ee);
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(40, 20, 70, 0.05), 0 1px 2px rgba(40, 20, 70, 0.04);
    overflow: hidden;
    position: relative;
    margin-bottom: 14px;
}
.pcp-agreement-card::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
    background: linear-gradient(180deg, var(--brand-primary, #3d1a6f), var(--magenta, #7d1d61));
}
.pcp-agreement-card.is-addendum::before {
    background: linear-gradient(180deg, var(--brand-accent, #fdb913), #e8a000);
}
.pcp-agreement-card__body {
    padding: 22px 26px 22px 30px;
    display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
}
.pcp-agreement-card__head {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin-bottom: 6px;
}
.pcp-agreement-card__title {
    font-size: 1.15rem; font-weight: 700; color: var(--text-primary, #1e1832); margin: 0;
}
.pcp-agreement-card__subtitle {
    color: var(--text-secondary, #5e5773); font-size: 0.88rem; margin: 2px 0 0;
}
.pcp-agreement-meta {
    display: flex; gap: 28px; flex-wrap: wrap;
    color: var(--text-secondary, #5e5773); font-size: 0.85rem; margin-top: 14px;
}
.pcp-agreement-meta dt {
    color: var(--text-muted, #8b8499); font-weight: 500; font-size: 0.7rem;
    text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 3px;
}
.pcp-agreement-meta dd {
    margin: 0; color: var(--text-primary, #1e1832); font-weight: 600;
}
.pcp-agreement-card__actions { display: flex; gap: 8px; }

/* Invoice summary strip */
.pcp-invoice-summary {
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e6e3ee);
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(40, 20, 70, 0.05), 0 1px 2px rgba(40, 20, 70, 0.04);
    padding: 18px 26px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.pcp-summary-block { display: flex; gap: 32px; flex-wrap: wrap; }
.pcp-summary-stat .stat-label {
    color: var(--text-muted, #8b8499);
    font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500;
}
.pcp-summary-stat .stat-value {
    color: var(--text-primary, #1e1832); font-size: 1.35rem; font-weight: 700; margin-top: 2px;
}
.pcp-summary-stat--ok .stat-value    { color: #1f7a3f; }
.pcp-summary-stat--warn .stat-value  { color: #8a5a00; }
.pcp-summary-stat--alert .stat-value { color: #9b1c2c; }
[data-theme="dark"] .pcp-summary-stat--ok .stat-value    { color: #6cd99a; }
[data-theme="dark"] .pcp-summary-stat--warn .stat-value  { color: #f0c66a; }
[data-theme="dark"] .pcp-summary-stat--alert .stat-value { color: #f78a96; }

/* Year separator */
.pcp-invoice-group-header {
    display: flex; align-items: center; gap: 10px;
    font-size: 0.78rem; font-weight: 700; color: var(--text-muted, #8b8499);
    letter-spacing: 0.06em; text-transform: uppercase;
    margin: 22px 0 10px;
}
.pcp-invoice-group-header::after {
    content: ""; flex: 1; height: 1px; background: var(--border-default, #e6e3ee);
}

/* Invoice list + row */
.pcp-invoice-list {
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e6e3ee);
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(40, 20, 70, 0.05), 0 1px 2px rgba(40, 20, 70, 0.04);
    overflow: hidden;
}
.pcp-invoice-row {
    display: grid;
    grid-template-columns: 110px 1fr 120px 150px auto;
    gap: 24px; align-items: center;
    padding: 14px 22px;
    border-bottom: 1px solid var(--border-soft, #efeef3);
    transition: background .12s ease;
}
.pcp-invoice-row:last-child { border-bottom: none; }
.pcp-invoice-row:hover { background: var(--brand-primary-soft, #f4eefd); }
[data-theme="dark"] .pcp-invoice-row:hover { background: rgba(125, 29, 97, 0.18); }
.pcp-invoice-row__num {
    font-size: 0.78rem; color: var(--text-muted, #8b8499);
    font-variant-numeric: tabular-nums; font-weight: 600;
}
.pcp-invoice-row__desc { color: var(--text-primary, #1e1832); font-weight: 600; font-size: 0.92rem; }
.pcp-invoice-row__desc small {
    display: block; color: var(--text-muted, #8b8499); font-weight: 400;
    font-size: 0.75rem; margin-top: 2px;
}
.pcp-invoice-row__amount {
    font-size: 0.98rem; font-weight: 700; color: var(--text-primary, #1e1832);
    text-align: right; font-variant-numeric: tabular-nums;
}
.pcp-invoice-row__status { display: flex; flex-direction: column; gap: 2px; }
.pcp-invoice-row__status small { color: var(--text-muted, #8b8499); font-size: 0.72rem; }
.pcp-invoice-row__dl {
    color: var(--brand-primary, #3d1a6f); opacity: 0.55;
    width: 32px; height: 32px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .12s ease, opacity .12s ease;
    background: transparent; border: none; cursor: pointer; text-decoration: none;
}
.pcp-invoice-row__dl:hover { background: var(--brand-primary-soft, #f4eefd); opacity: 1; }
[data-theme="dark"] .pcp-invoice-row__dl { color: var(--text-primary, #ece8f4); }
.pcp-invoice-row__actions { display: inline-flex; align-items: center; gap: 2px; justify-content: flex-end; }

.pcp-invoice-row.is-outstanding {
    background: linear-gradient(90deg, #fff4d6 0%, transparent 4%);
}
.pcp-invoice-row.is-overdue {
    background: linear-gradient(90deg, #fde7e9 0%, transparent 4%);
}
[data-theme="dark"] .pcp-invoice-row.is-outstanding {
    background: linear-gradient(90deg, rgba(212, 145, 0, 0.18) 0%, transparent 5%);
}
[data-theme="dark"] .pcp-invoice-row.is-overdue {
    background: linear-gradient(90deg, rgba(214, 48, 66, 0.18) 0%, transparent 5%);
}

/* Status pills used in agreements + invoices */
.pcp-pill {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
    padding: 3px 10px; border-radius: 999px;
}
.pcp-pill .dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.pcp-pill--active       { background: #e7f5ec; color: #1f7a3f; }
.pcp-pill--active .dot       { background: #2c9a52; }
.pcp-pill--renewal      { background: #fff4d6; color: #8a5a00; }
.pcp-pill--renewal .dot      { background: #d49100; }
.pcp-pill--ended        { background: var(--bg-subtle, #f0eef5); color: var(--text-muted, #8b8499); }
.pcp-pill--ended .dot        { background: var(--text-muted, #8b8499); }
.pcp-pill--paid         { background: #e7f5ec; color: #1f7a3f; }
.pcp-pill--paid .dot         { background: #2c9a52; }
.pcp-pill--outstanding  { background: #fff4d6; color: #8a5a00; }
.pcp-pill--outstanding .dot  { background: #d49100; }
.pcp-pill--overdue      { background: #fde7e9; color: #9b1c2c; }
.pcp-pill--overdue .dot      { background: #d63042; }
[data-theme="dark"] .pcp-pill--active,
[data-theme="dark"] .pcp-pill--paid       { background: rgba(44, 154, 82, 0.18); color: #6cd99a; }
[data-theme="dark"] .pcp-pill--renewal,
[data-theme="dark"] .pcp-pill--outstanding{ background: rgba(212, 145, 0, 0.18); color: #f0c66a; }
[data-theme="dark"] .pcp-pill--overdue    { background: rgba(214, 48, 66, 0.18); color: #f78a96; }
[data-theme="dark"] .pcp-pill--ended      { background: rgba(255, 255, 255, 0.06); color: var(--text-muted, #837c97); }

/* Empty state */
.pcp-empty {
    background: var(--bg-card, #fff);
    border: 1px dashed var(--border-default, #e6e3ee);
    border-radius: 12px;
    padding: 36px 22px;
    text-align: center;
    color: var(--text-muted, #8b8499);
}
.pcp-empty i { font-size: 1.6rem; opacity: 0.6; }
.pcp-empty p { margin: 8px 0 0; }

@media (max-width: 768px) {
    .pcp-agreement-card__body { grid-template-columns: 1fr; }
    .pcp-agreement-card__actions { justify-content: flex-start; }
    .pcp-invoice-row {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "num    dl"
            "desc   dl"
            "amount status";
        gap: 6px 16px;
    }
    .pcp-invoice-row__num    { grid-area: num; }
    .pcp-invoice-row__desc   { grid-area: desc; }
    .pcp-invoice-row__amount { grid-area: amount; text-align: left; }
    .pcp-invoice-row__status { grid-area: status; align-items: flex-end; }
    .pcp-invoice-row__dl     { grid-area: dl; }
}

/* Brief "Saved" confirmation pill for auto-save preferences */
.bh-saved-pill {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--success-bg, #d4edda);
    color: var(--success-text, #155724);
    font-size: 0.85rem;
    font-weight: 500;
    margin-top: 16px;
}
.bh-saved-pill i { color: var(--success-text, #155724); }

/* Client portal Account tab -- Appearance (theme) radio chip group */
.bh-theme-choice {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
}
.bh-theme-choice__opt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid var(--border-default, #e0d4f0);
    border-radius: 999px;
    font-size: 0.9rem;
    color: var(--text-primary, #333);
    background: var(--bg-surface, #fff);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
    margin: 0;
}
/* Hide the native radio dot -- the filled (checked) pill already signals the selection, so
   the bullet is redundant. Kept in the DOM (sr-only) for keyboard + screen-reader operation;
   focus surfaces via the :focus-visible ring below. */
.bh-theme-choice__opt input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}
.bh-theme-choice__opt:hover { border-color: var(--brand-primary, #3d1a6f); }
.bh-theme-choice__opt:has(input:focus-visible) {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 2px;
}
.bh-theme-choice__opt:has(input:checked) {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
}

/* Portal bio box - replaces inline height/overflow/dotted border */
.portal-bio-box {
    height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-subtle, #fafafa);
    font-size: 0.88rem;
    line-height: 1.5;
}

/* Portal section title - consistent section headers */
.portal-section-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}
.portal-section-title i {
    color: var(--brand-accent, #fdb913);
}

/* Portal storybox enhancements - campaign selector cards */
.storyboximage {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.storyboximage:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.5);
}
.storyboxtitle-bottom {
    font-size: 18px;
    font-weight: 600;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
.storyboxtitle {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

/* Storybox flexbox layout - badge in middle, equal zones top/bottom */
.storybox {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.storybox .storyboxtitle {
    height: auto !important;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 10px 4px;
    font-weight: 400;
}
.storybox .story-health-badge {
    position: relative;
    bottom: auto;
    left: auto;
    transform: none;
    margin: 0 auto;
    flex-shrink: 0;
}
.storybox .story-health-badge.mytooltip {
    position: relative !important;
}
.storybox .storyboxtitle-bottom {
    bottom: auto;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px 8px;
    font-size: 16px !important;
    font-weight: 600;
}

/* Story-picker card layout (Scripts/story-selector.js .bh-storypick): give the KPI outcome
   and the hours/budget two distinct jobs in two distinct zones instead of stacking them in
   the middle. KPI outcome = a status flag pinned to the top-left corner. Hours = a quiet
   full-width fuel-gauge pinned to the bottom edge. The middle stays clear for the logo.
   Scoped to the picker so NewsWire / brand-lens storybox cards (no KPI pill, no hours bar)
   keep their own arrangement; only the gradient scrim is shared globally on .storybox. */
.bh-storypick .bh-card-health {
    position: absolute;
    top: 8px;
    left: 8px;
    bottom: auto;
    transform: none;
    margin: 0;
    z-index: 13;
    align-items: flex-start;
}
.bh-storypick .storyboxtitle {
    /* clear the corner status flag so a long client name never runs under it */
    padding: 28px 10px 4px;
}
.bh-storypick .bh-tilebar {
    order: 99;            /* push below the title to the very bottom of the flex column */
    align-self: stretch; /* span the full card width as a bottom-edge gauge */
    width: auto;
    max-width: none;
    margin: 0;
    padding: 5px 12px 9px;
}

/* Portal interview breakdown - replaces old container/row layout with inline BackColor labels */
.portal-breakdown-section {
    margin-bottom: 24px;
}
.portal-breakdown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}
.portal-breakdown-card {
    padding: 20px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    transition: box-shadow 0.2s;
}
.portal-breakdown-card:hover {
    box-shadow: 0 2px 12px rgba(61, 26, 111, 0.08);
}
.portal-breakdown-card h5 {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}
.portal-breakdown-card .breakdown-total {
    font-size: 2rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    line-height: 1.1;
}
.portal-breakdown-card .breakdown-total small {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-tertiary, #888);
    display: block;
    margin-top: 2px;
}
.portal-breakdown-stat {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 0.82rem;
}
.portal-breakdown-stat.primary {
    background: rgba(125, 29, 97, 0.08);
    color: var(--brand-magenta, #7d1d61);
}
.portal-breakdown-stat.syndicated {
    background: rgba(253, 185, 19, 0.12);
    color: var(--status-warning-text, #856404);
}
.portal-breakdown-stat .stat-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-on-dark, #fff);
}
.portal-breakdown-stat.primary .stat-badge { background: var(--brand-magenta, #7d1d61); }
.portal-breakdown-stat.syndicated .stat-badge { background: var(--brand-accent, #fdb913); color: var(--brand-primary, #3d1a6f); }

/* Portal date range - styled date picker row */
.portal-date-range {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    background: var(--bg-purple-tint, #f8f5fc);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    margin-bottom: 16px;
}
.portal-date-range label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0;
}
.portal-date-range .form-control {
    max-width: 160px;
    border-radius: 6px;
    border-color: #d0c4e0;
    font-size: 0.85rem;
}
.portal-date-range .btn {
    border-radius: 6px;
}
@media (max-width: 576px) {
    .portal-date-range {
        flex-wrap: wrap;
    }
    .portal-date-range .form-control {
        max-width: 100%;
        flex: 1 1 100%;
    }
    .portal-date-range .btn {
        width: 100%;
    }
}

/* Portal tab content area - full width when using horizontal tabs */
.portal-tab-content {
    padding: 24px 8px;
    min-height: 400px;
}

/* Portal notice banner */
.portal-notice {
    font-size: 0.82rem;
    color: var(--text-secondary, #666);
    font-style: italic;
    text-align: center;
    padding: 8px 16px;
    background: var(--status-warning-bg, #fef9e7);
    border-radius: 6px;
    margin-bottom: 16px;
}

/* ============================
   AI Wizard & Suggestions
   ============================ */

/* Wizard breadcrumb progress bar */
.ai-wizard-breadcrumb {
    display: flex;
    align-items: center;
    padding: 10px 0 6px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
}
.ai-wizard-breadcrumb .wiz-step {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: var(--text-muted, #aaa);
    white-space: nowrap;
    cursor: default;
}
.ai-wizard-breadcrumb .wiz-step.completed {
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
}
.ai-wizard-breadcrumb .wiz-step.completed:hover {
    text-decoration: underline;
}
.ai-wizard-breadcrumb .wiz-step.active {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
}
.ai-wizard-breadcrumb .wiz-step .wiz-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 700;
    flex-shrink: 0;
    background: var(--bg-purple-tint, #e8e0f0);
    color: var(--text-muted, #999);
}
.ai-wizard-breadcrumb .wiz-step .wiz-num .fa-check {
    font-size: 0.6rem;
}
.ai-wizard-breadcrumb .wiz-step.active .wiz-num {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.ai-wizard-breadcrumb .wiz-step.completed .wiz-num {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
}
.ai-wizard-breadcrumb .wiz-sep {
    margin: 0 4px;
    color: #ccc;
    font-size: 0.65rem;
}

/* Inline Wizard (full-width, replaces editor area) */
.iw-container {
    max-width: 720px;
    margin: 0 auto;
    padding: 24px 0;
}
.iw-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--border-brand, #e0d4f0);
}
.iw-header h4 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
}
.iw-step {
    padding: 20px 0;
}
.iw-step-title {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.iw-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
}
.iw-preview {
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    padding: 16px;
    background: var(--bg-purple-tint, #faf8fd);
    max-height: 300px;
    overflow-y: auto;
    font-size: 0.9rem;
    line-height: 1.6;
}
.iw-loading {
    text-align: center;
    padding: 48px 0;
    color: var(--brand-primary, #3d1a6f);
}
.iw-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.iw-option:hover {
    background: #f0ecf5;
    border-color: var(--brand-primary, #3d1a6f);
}
.iw-option-arrow {
    color: #ccc;
    transition: color 0.15s;
}
.iw-option:hover .iw-option-arrow {
    color: var(--brand-primary, #3d1a6f);
}
.iw-post-banner {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    background: linear-gradient(135deg, var(--bg-purple-tint, #f0ecf5) 0%, var(--bg-gold-tint, #fef9e7) 100%);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 0.9rem;
    color: var(--brand-primary, #3d1a6f);
}
.iw-post-banner .fa-check-circle {
    color: var(--status-success, #28a745);
    font-size: 1.1rem;
}

/* Wizard step container (legacy -- kept for AI panel suggestions) */
.ai-wizard-step {
    padding: 12px 0;
}
.ai-wizard-step h6 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    font-size: 0.95rem;
}
.ai-body-preview {
    max-height: 200px;
    overflow-y: auto;
    font-size: 0.85rem;
}
.ai-headline-option {
    cursor: pointer;
}
.ai-headline-option:hover {
    background-color: #f0ecf5 !important;
}
.ai-headline-hint {
    opacity: 0.3;
}

/* Story preview (generated full release) */
.ai-story-preview {
    border: 1px solid #e0d6f0;
    border-radius: 8px;
    padding: 16px;
    background: var(--bg-purple-tint, #faf8fe);
    margin-bottom: 12px;
}
.ai-story-section {
    margin-bottom: 10px;
}
.ai-story-section strong {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.ai-story-content {
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--text-primary, #333);
}
.ai-story-content ul {
    padding-left: 1.2rem;
    margin-bottom: 0;
}

/* Suggestion items (headlines, bullets, questions) */
.ai-suggestion-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 10px 12px;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    margin-bottom: 8px;
    background: var(--bg-surface, #fff);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ai-suggestion-item:hover {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 1px 4px rgba(61,26,111,0.1);
}
.ai-suggestion-text {
    flex: 1;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--text-primary, #333);
    padding-right: 12px;
}
.ai-suggestion-actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
    align-items: center;
}
.ai-suggestion-actions .btn {
    white-space: nowrap;
}

/* ============================
   Email Pitching - Release Checklist
   ============================ */
.release-check-label {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border: 1px solid #e0d6f0;
    border-radius: 20px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
    user-select: none;
    margin-bottom: 4px;
}
.release-check-label:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #faf8fe);
}
.release-check-label .badge {
    opacity: 0.5;
    transition: opacity 0.15s ease;
}
.release-check-label input:checked ~ .badge-success,
.release-check-label input:checked ~ .badge-info {
    opacity: 1;
}
.release-preview-card {
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 10px;
    padding: 16px;
    background: var(--bg-surface, #fff);
}

/* ============================
   Campaign Readiness Panel
   ============================ */

/* Floating trigger button */
.readiness-trigger-btn {
    position: fixed;
    right: 20px;
    bottom: 80px;
    z-index: 1050;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    border: none;
    box-shadow: 0 4px 12px rgba(61,26,111,0.3);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.readiness-trigger-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 16px rgba(61,26,111,0.4);
}

/* Overlay */
.readiness-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.3);
    z-index: 1060;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.readiness-overlay-show {
    opacity: 1;
    pointer-events: auto;
}

/* Panel */
.readiness-panel {
    position: fixed;
    top: 0;
    right: -380px;
    width: 380px;
    height: 100%;
    z-index: 1070;
    background: var(--bg-surface, #fff);
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
    transition: right 0.3s ease;
}
.readiness-panel-open {
    right: 0;
}

/* Header */
.readiness-header {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    color: var(--text-on-dark, #fff);
    padding: 0.875rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.readiness-header-title {
    font-size: 1.05rem;
    font-weight: 600;
}
.readiness-close-btn {
    background: none;
    border: none;
    color: rgba(255,255,255,0.7);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0;
}
.readiness-close-btn:hover {
    color: var(--text-on-dark, #fff);
}

/* Body */
.readiness-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
}

/* Footer */
.readiness-footer {
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--border-light, #eee);
    flex-shrink: 0;
}

/* Progress bar area */
.readiness-progress {
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-light, #eee);
}

/* Sections */
.readiness-section {
    margin-bottom: 1rem;
}
.readiness-section-title {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    margin-bottom: 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    display: inline-block;
}

/* Items */
.readiness-item {
    display: flex;
    align-items: center;
    padding: 0.4rem 0.5rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background 0.15s ease;
}
.readiness-item:hover {
    background: var(--bg-purple-tint, #f8f4ff);
}
.readiness-item-label {
    flex: 1;
}

/* Mobile */
@media (max-width: 576px) {
    .readiness-panel {
        width: 100%;
        right: -100%;
    }
    .readiness-panel-open {
        right: 0;
    }
}

/* --- bh-rte-mini: Lightweight rich text editor for dynamic fields --- */
.bh-rte-mini-toolbar {
    display: flex;
    gap: 2px;
    padding: 4px 6px;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #dee2e6);
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
}
.bh-rte-mini-toolbar .btn { padding: 2px 6px; font-size: 0.8rem; }
.bh-rte-mini-editor {
    min-height: 80px;
    max-height: 200px;
    overflow-y: auto;
    padding: 8px 10px;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 0 0 6px 6px;
    font-size: 0.9rem;
    line-height: 1.5;
    background: var(--bg-surface, #fff);
}
.bh-rte-mini-editor:focus { outline: none; border-color: var(--brand-primary, #3d1a6f); box-shadow: 0 0 0 2px rgba(61,26,111,0.15); }

/* --- Talent Question Tips rows --- */
.talent-question-row {
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    padding: 12px;
    background: var(--bg-subtle, #fafbfc);
}
.talent-q-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.8rem;
    font-weight: 600;
    flex-shrink: 0;
    margin-top: 6px;
}
.tq-remove:hover { opacity: 1 !important; }

/* ============================
   EmailPitching UX Redesign
   ============================ */

/* Contact source selection cards */
.ep-source-cards {
    display: flex;
    gap: 10px;
    margin: 8px 0 16px;
}
.ep-source-card {
    flex: 1;
    border: 2px solid var(--border-default, #e0e0e0);
    border-radius: 10px;
    padding: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s;
    background: var(--bg-surface, #fff);
}
.ep-source-card:hover {
    border-color: var(--border-brand, #e0d4f0);
    background: var(--bg-purple-tint, #f8f6ff);
}
.ep-source-card.selected {
    border-color: var(--brand-accent, #fdb913);
    background: rgba(253, 185, 19, 0.05);
}
.ep-source-card i {
    font-size: 1.2rem;
    color: var(--brand-primary, #3d1a6f);
    display: block;
    margin-bottom: 4px;
}
.ep-source-card .ep-source-card-title {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
}
.ep-source-card .ep-source-card-desc {
    color: var(--text-muted, #999);
    font-size: 0.75rem;
    margin-top: 2px;
}

/* Search filter card */
.bh-filter-card {
    background: var(--bg-purple-tint, #f8f6ff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 16px;
}
.bh-filter-card .filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.bh-filter-card .filter-header span {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
}
.bh-filter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 768px) {
    .bh-filter-grid {
        grid-template-columns: 1fr;
    }
    .ep-source-cards {
        flex-direction: column;
    }
}
.bh-filter-group .bh-filter-label,
label.bh-filter-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
    display: block;
}
.ep-safety-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Safety toggles row */
.ep-safety-toggles {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
}
.ep-safety-toggles label {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 0;
}

/* Tier selection pills */
.ep-tier-pills {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.ep-tier-pill {
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    user-select: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ep-tier-pill.tier-1,
.ep-tier-pill.tier-2,
.ep-tier-pill.tier-3,
.ep-tier-pill.tier-4 { background: #0d8a72; color: var(--text-on-dark, #fff); border: 1px solid #0d8a72; }
.ep-tier-pill:hover { opacity: 0.85; }
.ep-tier-pill.deselected {
    background: var(--bg-page, #f5f5f5) !important;
    color: var(--text-muted, #999) !important;
    border-color: var(--border-default, #ddd) !important;
    opacity: 0.7;
}

/* Headshot container for spokesperson photos */
.ep-headshot-container {
    text-align: center;
    width: 150px;
}
.ep-headshot-img {
    width: 150px;
    height: auto;
    border-radius: 8px;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.ep-headshot-placeholder {
    width: 150px;
    height: 150px;
    border-radius: 8px;
    background: var(--bg-purple-tint, #f0edf5);
    border: 2px dashed #c4b5d9;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--text-muted, #999);
}
.ep-headshot-placeholder i {
    font-size: 3rem;
    color: #c4b5d9;
    margin-bottom: 8px;
}
.ep-headshot-placeholder span {
    font-size: 0.75rem;
    font-weight: 500;
}
.ep-headshot-warning {
    margin-top: 8px;
    font-size: 0.7rem;
    color: #e67e00;
    text-align: center;
}
.ep-headshot-warning i {
    margin-right: 4px;
}

/* Progressive Disclosure - collapsible filter sections */
.bh-filter-card-v2 {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 12px;
    overflow: hidden;
    margin-top: 1rem;
}
.bh-filter-section {
    border-bottom: 1px solid #f0ecf5;
}
.bh-filter-section:last-child { border-bottom: none; }
.bh-filter-section-header {
    padding: 0.75rem 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    user-select: none;
    transition: background 0.2s;
}
.bh-filter-section-header:hover { background: var(--bg-purple-tint, #f8f5ff); }
.bh-filter-section-header h6 {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    gap: 6px;
}
.bh-filter-section-header .bh-filter-badge {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 0.65rem;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
}
.bh-filter-section-header .bh-filter-badge.empty {
    background: var(--bg-muted, #e0e0e0);
    color: var(--text-muted, #999);
}
.bh-filter-section-header .bh-filter-badge.needed {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
/* Counter badge -- the value is a live "n of m" tally the user is expected to read and act on
   (Tier, Location regions), not a settled summary. Gold so it reads as a number at a glance.
   Deliberately a separate class from .needed even though they currently share a palette: .needed
   means "you must fix this", .counter means "this is a count". Restyle one without the other. */
.bh-filter-section-header .bh-filter-badge.counter {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
/* Progressive disclosure: a step stays hidden until the previous step is satisfied. */
.ep-step-hidden { display: none !important; }
.bh-filter-section-header .chevron {
    color: var(--text-muted, #bbb);
    font-size: 0.7rem;
    transition: transform 0.2s;
}
.bh-filter-section-header.collapsed .chevron { transform: rotate(-90deg); }
.bh-filter-section-body {
    padding: 0.75rem 1rem;
    background: var(--bg-subtle, #fafafa);
}
.bh-filter-section-body.collapsed { display: none; }
/* Filter card top safety-toggle band -- sits above sections, no header needed */
.bh-filter-toggles {
    padding: 0.6rem 1rem;
    background: var(--bg-purple-tint, #f8f5ff);
    border-bottom: 1px solid #f0ecf5;
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 0.8rem;
    color: var(--text-primary, #333);
}
.bh-filter-toggles label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 0;
    cursor: pointer;
}
.bh-filter-toggles label input[type="checkbox"] { margin: 0; }
/* Region pills (upgrade from raw checkboxes). Wrap CheckBox+Label in <label class="region-pill"> -- :has() drives state. */
.region-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    margin: 2px;
    border-radius: 15px;
    font-size: 0.75rem;
    background: var(--bg-page, #f5f5f5);
    color: var(--text-muted, #6c757d);
    cursor: pointer;
    border: 1px solid var(--border-default, #ddd);
    transition: all 0.15s;
    user-select: none;
    line-height: 1.4;
}
.region-pill:hover { background: var(--bg-purple-tint, #f0e6ff); color: var(--brand-primary, #3d1a6f); border-color: var(--brand-primary, #3d1a6f); }
.region-pill input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.region-pill:has(input:checked) {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}
.region-pill.deselected { background: var(--bg-page, #f5f5f5); color: var(--text-muted, #999); border-color: var(--border-default, #ddd); }
.region-pill-group { display: flex; flex-wrap: wrap; gap: 4px; }

/* Region All/None paired text-link actions -- demoted from btn-primary/btn-default
   so they don't compete with the fill-purple selected pill state in the same row. */
.bh-region-action {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 4px;
    background: transparent !important;
    border: 0 !important;
    color: var(--brand-primary, #3d1a6f) !important;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    border-radius: 0;
    box-shadow: none !important;
}
.bh-region-action:hover,
.bh-region-action:focus {
    color: var(--brand-primary-dark, #2a1252) !important;
    text-decoration: underline;
    background: transparent !important;
}
.bh-region-action + .bh-region-action {
    border-left: 1px solid var(--border-default, #ddd);
    margin-left: 4px;
    padding-left: 10px;
}
.bh-region-action i {
    font-size: 0.7rem;
    opacity: 0.75;
}

/* Collapsible exclusions/bounced sections */
.bh-results-section {
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    margin-bottom: 1rem;
    overflow: hidden;
}
.bh-results-section-header {
    padding: 0.6rem 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--bg-purple-tint, #f8f5ff);
    user-select: none;
    transition: background 0.15s;
}
.bh-results-section-header:hover { background: #f0ecf5; }
.bh-results-section-header h6 { margin: 0; font-size: 0.8rem; font-weight: 600; color: var(--brand-primary, #3d1a6f); }
.bh-results-section-header .chevron { color: var(--text-muted, #bbb); font-size: 0.7rem; transition: transform 0.2s; }
.bh-results-section-header.collapsed .chevron { transform: rotate(-90deg); }
.bh-results-section-body { padding: 0.75rem 1rem; }
.bh-results-section-body.collapsed { display: none; }
/* Disabled search button */
.btn-search-disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* ============================
   EmailPitching v2: UX Redesign
   ============================ */

/* Standardised input-group-prepend labels */
.ep-prepend-label {
    min-width: 160px;
    font-size: 0.85rem;
    background: var(--bg-purple-tint, #f8f6ff);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}

/* Email Pitching -- Your Media Contact Details card */
.ep-contact-card {
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 10px;
    padding: 1.25rem 1.25rem 0.25rem;
    margin-bottom: 1.5rem;
}
.ep-contact-pick {
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.ep-contact-pick:empty {
    display: none;
}
.ep-contact-fields > [class*="col-"] {
    margin-bottom: 1rem;
}
.ep-contact-fields .ep-prepend-label {
    min-width: 100px;
    justify-content: flex-start;
}

/* Review checklist sidebar */
.review-checklist {
    list-style: none;
    padding: 0;
    margin: 0;
}
.review-checklist li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    cursor: pointer;
    transition: background 0.15s;
}
.review-checklist li:hover {
    background: var(--bg-purple-tint, #f8f6ff);
}
.review-checklist li.active {
    background: rgba(253, 185, 19, 0.08);
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.review-status {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    color: var(--text-on-dark, #fff);
    flex-shrink: 0;
}
.review-status.green { background: var(--status-success, #28a745); }
.review-status.amber { background: var(--status-warning-bg, #ffc107); color: var(--text-primary, #333); }
.review-status.red { background: var(--status-danger, #dc3545); }
.review-label {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
}
.review-sublabel {
    font-size: 0.7rem;
    color: var(--text-muted, #999);
}
.authorise-bar {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%);
    border-radius: 10px;
    padding: 16px 20px;
    color: var(--text-on-dark, #fff);
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
}
/* Authorise CTA -- yellow on hardcoded purple authorise-bar.
   Colours fixed both sides so dark-mode --brand-primary remap
   doesn't flip text to light violet on yellow.
   !important on color: LinkButton renders as <a class="btn">, and
   theme-tokens.css [data-theme=dark] a.btn forces color:#fff !important.
   Without our !important the dark-mode rule wins -> white-on-yellow contrast bug. */
.btn-authorise {
    background: #fdb913 !important;
    color: #3d1a6f !important;
    font-weight: 600;
    border: 1px solid rgba(0, 0, 0, 0.15);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
    padding: 0.4rem 0.9rem;
    border-radius: 6px;
}
.btn-authorise:hover,
.btn-authorise:focus,
.btn-authorise:active {
    background: #ffc832 !important;
    color: #3d1a6f !important;
    box-shadow: 0 3px 7px rgba(0, 0, 0, 0.35);
    text-decoration: none;
}
/* Specificity bump: theme-tokens.css [data-theme=dark] a.btn (0,2,1)
   beats plain .btn-authorise (0,1,0) even with !important on both, so
   dark-mode renders the Authorise CTA white-on-yellow. Match the
   attribute+element pattern with our class chained for (0,3,1) -- wins. */
[data-theme="dark"] a.btn.btn-authorise,
[data-theme="dark"] a.btn.btn-authorise:hover,
[data-theme="dark"] a.btn.btn-authorise:focus,
[data-theme="dark"] a.btn.btn-authorise:active,
[data-theme="dark"] button.btn-authorise,
[data-theme="dark"] button.btn-authorise:hover,
[data-theme="dark"] button.btn-authorise:focus,
[data-theme="dark"] button.btn-authorise:active {
    color: #3d1a6f !important;
}

/* D.z39: Reputation strip bar */
.reputation-strip {
    border-radius: 8px;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    font-size: 0.85rem;
}
@media (max-width: 480px) {
    .reputation-strip { flex-wrap: wrap; gap: 8px; padding: 8px 12px; }
}
.reputation-strip-bar {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: var(--bg-muted, #e0e0e0);
    overflow: hidden;
}
.reputation-strip-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}
.reputation-healthy {
    background: rgba(40, 167, 69, 0.1);
    border: 1px solid rgba(40, 167, 69, 0.3);
    color: var(--status-success, #28a745);
}
.reputation-healthy .reputation-strip-fill { background: var(--status-success, #28a745); }
.reputation-warning {
    background: rgba(253, 185, 19, 0.1);
    border: 1px solid rgba(253, 185, 19, 0.4);
    color: var(--brand-accent-dark, #c99400);
}
.reputation-warning .reputation-strip-fill { background: var(--brand-accent, #fdb913); }
.reputation-secondary {
    background: rgba(253, 185, 19, 0.15);
    border: 1px solid rgba(253, 185, 19, 0.5);
    color: var(--brand-accent-dark, #c99400);
}
.reputation-secondary .reputation-strip-fill { background: var(--brand-accent, #fdb913); }
.reputation-disabled {
    background: rgba(220, 53, 69, 0.1);
    border: 1px solid rgba(220, 53, 69, 0.3);
    color: var(--status-danger, #dc3545);
}
.reputation-disabled .reputation-strip-fill { background: var(--status-danger, #dc3545); }
.reputation-strip .reputation-label {
    font-weight: 600;
    min-width: 60px;
}
.reputation-strip .reputation-icon {
    font-size: 1rem;
}
.reputation-strip .reputation-hint {
    color: var(--text-secondary, #6c757d);
}
.reputation-learn-more {
    color: var(--text-secondary, #6c757d);
    font-size: 0.85rem;
    opacity: 0.6;
    transition: opacity 0.2s;
    margin-left: auto;
}
.reputation-learn-more:hover {
    opacity: 1;
    color: var(--brand-primary, #6B2D8B);
    text-decoration: none;
}
[data-theme="dark"] .reputation-healthy {
    background: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.4);
}
[data-theme="dark"] .reputation-warning,
[data-theme="dark"] .reputation-secondary {
    background: rgba(253, 185, 19, 0.15);
    border-color: rgba(253, 185, 19, 0.4);
}
[data-theme="dark"] .reputation-disabled {
    background: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.4);
}
[data-theme="dark"] .reputation-strip-bar {
    background: var(--bg-muted, #2d2d2d);
}

/* Release selector cards */
.release-selector {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.release-card {
    flex: 1;
    min-width: 200px;
    max-width: 300px;
    border: 2px solid var(--border-default, #e0e0e0);
    border-radius: 10px;
    padding: 16px;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--bg-surface, #fff);
}
.release-card:hover {
    border-color: var(--border-brand, #e0d4f0);
    background: var(--bg-purple-tint, #f8f6ff);
}
.release-card.selected {
    border-color: var(--brand-accent, #fdb913);
    background: rgba(253, 185, 19, 0.05);
}
.release-card .release-title {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.9rem;
}
.release-card .release-headline {
    color: var(--text-secondary, #666);
    font-size: 0.8rem;
    margin-top: 4px;
}
/* Locked: a non-approved release stays visible but cannot be pitched. */
.release-card--locked {
    cursor: not-allowed;
    opacity: 0.6;
    background: var(--bg-subtle, #f5f5f5);
}
.release-card--locked:hover {
    border-color: var(--border-default, #e0e0e0);
    background: var(--bg-subtle, #f5f5f5);
}
.release-card--locked .release-title {
    color: var(--text-muted, #999);
}
.release-card--locked .release-locked-hint {
    margin-top: 6px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted, #999);
}
/* No Release: the welcoming generic-pitch option that leads the list (not an error state). */
.release-card--open {
    border-style: solid;
    border-color: var(--border-brand, #e0d4f0);
    background: var(--bg-purple-tint, #f8f6ff);
}
.release-card--open .release-title {
    color: var(--brand-primary, #3d1a6f);
}
.release-card--open .release-title .fa-paper-plane {
    color: var(--brand-primary, #3d1a6f);
}

/* Quick Fields toolbar */
.quick-fields-bar {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 8px 12px;
    background: var(--bg-purple-tint, #f8f6ff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    margin-bottom: 12px;
}
.quick-field-btn {
    padding: 4px 10px;
    border-radius: 14px;
    font-size: 0.7rem;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid var(--border-brand, #e0d4f0);
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.quick-field-btn:hover {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}

/* Merge field pills in the RichTextEditor.
   Background uses --bg-purple-tint so the pill flips on dark mode (light lavender
   -> dark violet) while text/border continue to use --brand-primary. Without this,
   dark mode renders light-violet text on light-lavender background -- unreadable. */
.ep-merge-field {
    display: inline-block;
    background: var(--bg-purple-tint, #ede7f6);
    color: var(--brand-primary, #3d1a6f);
    border: 1.5px solid var(--brand-primary, #3d1a6f);
    border-radius: 4px;
    padding: 0 7px;
    font-size: 0.9em;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.6;
    cursor: default;
    user-select: all;
    white-space: nowrap;
    letter-spacing: 0.01em;
}
.ep-merge-field::before {
    content: '\f121';  /* fa-code icon */
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    font-size: 0.65em;
    margin-right: 4px;
    opacity: 0.5;
}

/* Spokesperson compact cards */
.spokesperson-card {
    display: flex;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 10px;
    margin-bottom: 12px;
    background: var(--bg-surface, #fff);
}
.spokesperson-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc)), var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0)));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid var(--brand-accent, #fdb913);
    overflow: hidden;
}
.spokesperson-avatar img {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    object-fit: cover;
}
.spokesperson-avatar i {
    font-size: 1.5rem;
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.3;
}
.spokesperson-info {
    flex: 1;
    min-width: 0;
}
.spokesperson-info .name {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.95rem;
}
.spokesperson-info .position {
    color: var(--text-tertiary, #888);
    font-size: 0.8rem;
}
.spokesperson-info .bio {
    color: var(--text-secondary, #666);
    font-size: 0.8rem;
    margin-top: 4px;
    max-height: 60px;
    overflow: hidden;
}

/* Email preview frame */
.email-preview-frame {
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 10px;
    overflow: hidden;
    max-width: 700px;
    margin: 0 auto;
}
.email-preview-header {
    background: var(--bg-page, #f5f5f5);
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-default, #e0e0e0);
    font-size: 0.8rem;
}
.email-preview-header .ep-field {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
}
.email-preview-header .ep-field-label {
    color: var(--text-muted, #999);
    min-width: 50px;
}
.email-preview-header .ep-field-value {
    color: var(--text-primary, #333);
    font-weight: 500;
}
.email-preview-body {
    padding: 24px;
    background: var(--bg-surface, #fff);
    min-height: 300px;
}
.email-stats-bar {
    display: flex;
    gap: 20px;
    align-items: center;
    padding: 10px 16px;
    background: var(--bg-purple-tint, #f8f6ff);
    border: 1px solid var(--border-brand, #e0d4f0);
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 0.8rem;
}
.email-stats-bar .stat {
    display: flex;
    align-items: center;
    gap: 6px;
}
.email-stats-bar .stat-num {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
}

/* EmailPitching: Center loading spinners in AJAX containers */
#epPitchList .loading-spinner,
#epFileStore .loading-spinner,
#epDeclinedList .loading-spinner,
#releaseChecklist .loading-spinner,
#epSmartMatchResults .loading-spinner,
#epPRContactsList .loading-spinner {
    text-align: center;
    padding: 2rem;
}

/* Send summary bar */
.send-summary-bar {
    background: linear-gradient(135deg, var(--bg-gold-tint, #fff8e6) 0%, var(--bg-gold-tint, #fff2d1) 100%);
    border: 1px solid #f5dfa0;
    border-radius: 10px;
    padding: 16px 20px;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
}
.send-summary-bar .summary-text {
    font-size: 0.85rem;
    font-weight: 600;
}
.send-summary-bar .summary-text strong {
    color: var(--brand-primary, #3d1a6f);
}

/* EmailPitching v2: Responsive */
@media (max-width: 768px) {
    .release-selector { flex-direction: column; }
    .release-card { max-width: 100%; }
    .spokesperson-card { flex-direction: column; align-items: center; text-align: center; }
    .send-summary-bar { flex-direction: column; gap: 12px; text-align: center; }
    .email-preview-frame { max-width: 100%; }
}

/* ============================
   Client EDM Modernisation
   ============================ */


/* ============================================================
   Canvas Editor - Shared toolbar & properties panel
   Used by Reporting.aspx and BHReports.aspx (Fabric.js editors)
   ============================================================ */

/* Toolbar strip */
.canvas-editor-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 8px 12px;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-default, #dee2e6);
}

.canvas-editor-toolbar .btn-group {
    margin-right: 0;
}

.canvas-editor-toolbar .btn {
    border-color: var(--border-strong, #ccc);
    background: var(--bg-surface, #fff);
    color: var(--text-body, #555);
    font-size: 0.8rem;
    padding: 0.3rem 0.5rem;
    transition: all 0.15s ease;
}

.canvas-editor-toolbar .btn:hover {
    background: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #333);
    border-color: #adb5bd;
}

.canvas-editor-toolbar .btn:active,
.canvas-editor-toolbar .btn.active {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}

.canvas-editor-toolbar .btn.btn-danger {
    background: var(--bg-surface, #fff);
    color: var(--status-danger, #dc3545);
    border-color: var(--border-strong, #ccc);
}

.canvas-editor-toolbar .btn.btn-danger:hover {
    background: var(--status-danger, #dc3545);
    color: var(--text-on-dark, #fff);
    border-color: var(--status-danger, #dc3545);
}

/* Vertical divider between tool groups */
.canvas-editor-toolbar .toolbar-divider {
    width: 1px;
    height: 24px;
    background: var(--bg-muted, #dee2e6);
    margin: 0 0.5rem;
    flex-shrink: 0;
}

/* Zoom display button - slightly wider for percentage text */
.canvas-editor-toolbar .btn.zoom-display {
    min-width: 50px;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

/* Context/properties panel */
.canvas-context-panel {
    width: 300px;
    border-left: 1px solid var(--border-default, #dee2e6);
    background: var(--bg-surface, #fff);
    overflow-y: auto;
    display: none;
}

.canvas-context-panel .card-header {
    background: var(--bg-subtle, #f8f9fa);
    font-size: 0.85rem;
    padding: 0.5rem 1rem;
}

.canvas-context-panel .card-body {
    font-size: 13px;
    padding: 0.75rem 1rem;
}

/* Section headings inside properties panel */
.canvas-context-panel .context-section {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-light, #eee);
}

.canvas-context-panel .context-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.canvas-context-panel .context-section-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--text-secondary, #666);
    margin-bottom: 0.5rem;
    letter-spacing: 0.03em;
}

/* Compact input groups inside properties panel */
.canvas-context-panel .input-group-text {
    width: 28px;
    justify-content: center;
    font-size: 11px;
    padding: 0.2rem 0.4rem;
}

.canvas-context-panel .form-control,
.canvas-context-panel .form-select {
    font-size: 12px;
}

/* B/I/U and alignment button row */
.canvas-context-panel .text-format-bar {
    display: flex;
    width: 100%;
}

.canvas-context-panel .text-format-bar .btn {
    flex: 1;
    border-color: var(--border-strong, #ccc);
    background: var(--bg-surface, #fff);
    color: var(--text-body, #555);
    font-size: 0.8rem;
    padding: 0.3rem;
}

.canvas-context-panel .text-format-bar .btn:hover {
    background: var(--bg-muted, #e9ecef);
}

.canvas-context-panel .text-format-bar .btn.active {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}

/* Range slider labels with value */
.canvas-context-panel .range-row {
    display: flex;
    align-items: center;
}

.canvas-context-panel .range-row .form-range {
    flex: 1;
    margin-right: 0.5rem;
}

.canvas-context-panel .range-row .range-value {
    font-size: 11px;
    color: var(--text-muted, #999);
    min-width: 40px;
    text-align: right;
}

/* Color picker rows */
.canvas-context-panel .form-control-color {
    height: 30px;
    padding: 2px;
}

/* Empty state panel (BHReports) */
.canvas-empty-panel {
    width: 300px;
    border-left: 1px solid var(--border-default, #dee2e6);
    background: var(--bg-subtle, #f8f9fa);
    padding: 20px;
}

/* =============================================
   Layers Panel (shared canvas engine)
   Object-stack list with select / rename / visibility / lock / reorder / delete.
   Front-most object renders at the top of the list. Dark-mode safe via tokens.
   ============================================= */
.bh-layers-panel {
    width: 260px;
    flex-shrink: 0;
    border: 1px solid var(--border-default, #dddddd);
    border-radius: 8px;
    background: var(--bg-surface, #ffffff);
    overflow: hidden;
    align-self: flex-start;
}

.bh-layers-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #fafafa);
    border-bottom: 1px solid var(--border-default, #dddddd);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #666666);
}

.bh-layers-header i {
    color: var(--brand-primary, #3d1a6f);
}

.bh-layers-list {
    max-height: 360px;
    overflow-y: auto;
    padding: 0.25rem;
}

.bh-layers-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 1.5rem 0.75rem;
    color: var(--text-muted, #999999);
    font-size: 12px;
}

.bh-layers-empty i {
    font-size: 1.5rem;
    opacity: 0.6;
}

.bh-layer-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 32px;
    padding: 0 0.4rem;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-body, #555555);
    transition: background 0.12s ease;
}

.bh-layer-row:hover {
    background: var(--bg-muted, #f0f0f0);
}

.bh-layer-row.is-active {
    background: var(--bg-purple-tint, #f0ebf7);
    box-shadow: inset 3px 0 0 var(--brand-primary, #3d1a6f);
}

.bh-layer-row.is-active .bh-layer-label {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}

.bh-layer-row.is-hidden .bh-layer-label,
.bh-layer-row.is-hidden .bh-layer-type-icon {
    opacity: 0.45;
}

.bh-layer-row.is-dragging {
    opacity: 0.5;
}

.bh-layer-row.is-drop-target {
    box-shadow: inset 0 2px 0 var(--brand-primary, #3d1a6f);
}

.bh-layer-grip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    color: var(--text-muted, #999999);
    cursor: grab;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.bh-layer-grip:active {
    cursor: grabbing;
}

.bh-layer-type-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    color: var(--text-secondary, #666666);
    font-size: 0.8rem;
    flex-shrink: 0;
}

.bh-layer-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bh-layer-rename-input {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    padding: 2px 4px;
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 4px;
    background: var(--bg-surface, #ffffff);
    color: var(--text-body, #555555);
}

.bh-layer-ctrls {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    flex-shrink: 0;
}

.bh-layer-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    border-radius: 4px;
    color: var(--text-muted, #999999);
    font-size: 0.72rem;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.12s ease, background 0.12s ease, color 0.12s ease;
}

.bh-layer-row:hover .bh-layer-btn,
.bh-layer-row.is-active .bh-layer-btn {
    opacity: 1;
}

.bh-layer-btn:hover {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
}

/* Eye / lock keep their state visible even when the row is not hovered. */
.bh-layer-row.is-hidden .bh-layer-eye,
.bh-layer-row.is-locked .bh-layer-lock {
    opacity: 1;
    color: var(--brand-primary, #3d1a6f);
}

.bh-layer-del:hover {
    background: var(--status-danger, #dc3545);
    color: var(--text-on-dark, #ffffff);
}

/* =============================================
   Canvas Print Guides (Phase 6)
   Non-printing editor overlay sized to the A4 page (595x842 editor px).
   Three concentric guide rectangles: bleed (3mm OUTSIDE trim), margin
   (12.7mm / 0.5in inside) and safe-zone (5mm inside). Print-convention
   colours over an always-white document page -- no dark-mode flip needed.
   pointer-events:none so guides never intercept canvas interaction.
   ============================================= */
.canvas-print-guides {
    position: absolute;
    top: 0;
    left: 0;
    width: 595px;
    height: 842px;
    pointer-events: none;
    z-index: 1001;
}

.canvas-print-guides > div {
    position: absolute;
}

/* Bleed -- 3mm (8.5px) beyond the trim edge: extend full-bleed art to here. */
.canvas-print-guides .cpg-bleed {
    top: -8.5px;
    left: -8.5px;
    right: -8.5px;
    bottom: -8.5px;
    border: 1px dashed rgba(237, 23, 76, 0.55);
}

/* Margin -- 12.7mm (36px) inside trim: recommended content inset. */
.canvas-print-guides .cpg-margin {
    top: 36px;
    left: 36px;
    right: 36px;
    bottom: 36px;
    border: 1px dashed rgba(0, 150, 255, 0.55);
}

/* Safe zone -- 5mm (14px) inside trim: minimum keep-out for critical content. */
.canvas-print-guides .cpg-safe {
    top: 14px;
    left: 14px;
    right: 14px;
    bottom: 14px;
    border: 1px dotted rgba(40, 167, 69, 0.7);
}

/* =============================================
   Canvas Rulers (Phase 3)
   Top + left mm rulers around the A4 page, sized in editor px (595x842).
   Tick/label divs are injected by canvas-editor.js buildRulers(). Lives inside
   .canvas-scale-wrapper so it scales with the canvas zoom transform. Token-based
   colours -> dark-mode safe. pointer-events:none.
   ============================================= */
.canvas-rulers {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 1002;
}

.canvas-ruler-h {
    position: absolute;
    top: -16px;
    left: 0;
    width: 595px;
    height: 15px;
    background: var(--bg-subtle, #f4f4f4);
    border-bottom: 1px solid var(--border-default, #cccccc);
}

.canvas-ruler-v {
    position: absolute;
    top: 0;
    left: -16px;
    width: 15px;
    height: 842px;
    background: var(--bg-subtle, #f4f4f4);
    border-right: 1px solid var(--border-default, #cccccc);
}

.canvas-ruler-corner {
    position: absolute;
    top: -16px;
    left: -16px;
    width: 15px;
    height: 15px;
    background: var(--bg-muted, #e9e9e9);
    border-right: 1px solid var(--border-default, #cccccc);
    border-bottom: 1px solid var(--border-default, #cccccc);
}

.canvas-ruler-tick {
    position: absolute;
    background: var(--text-muted, #999999);
}

.canvas-ruler-h .canvas-ruler-tick {
    bottom: 0;
    width: 1px;
    height: 4px;
}

.canvas-ruler-h .canvas-ruler-tick.major {
    height: 8px;
}

.canvas-ruler-v .canvas-ruler-tick {
    right: 0;
    height: 1px;
    width: 4px;
}

.canvas-ruler-v .canvas-ruler-tick.major {
    width: 8px;
}

.canvas-ruler-label {
    position: absolute;
    font-size: 7px;
    line-height: 1;
    color: var(--text-muted, #999999);
    font-family: Arial, sans-serif;
}

.canvas-ruler-h .canvas-ruler-label {
    top: 1px;
}

.canvas-ruler-v .canvas-ruler-label {
    left: 1px;
    transform: rotate(-90deg);
    transform-origin: left top;
}

/* =============================================
   Canvas drag-and-drop insert (palette -> page)
   Palette items are draggable; dropping on the page places the object at the
   drop point. Pure editor chrome -- never serialised, never in the PDF.
   ============================================= */
.canvas-editor-toolbar [draggable="true"] {
    cursor: grab;
}
.canvas-editor-toolbar [draggable="true"]:active {
    cursor: grabbing;
}
/* Highlight the page while a palette item hovers over it (added to the Fabric
   wrapper via canvas-editor.js enableDropInsert). */
.canvas-drop-active {
    box-shadow: inset 0 0 0 2px var(--brand-accent, #fdb913),
                inset 0 0 0 4px rgba(61, 26, 111, 0.25);
}

/* Free-draw tool options bar (persistent GoodNotes-style strip under the toolbar). Built
   by canvas-editor.js showInkOptions() into the host's #inkOptionsBar_<index>. */
.bh-ink-optionsbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 6px 12px;
    background: var(--bg-subtle, #f4f4f4);
    border-bottom: 1px solid var(--border-default, #e0e0e0);
}
.bh-ink-pop-title {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted, #6c757d);
}
.bh-ink-sizes { display: flex; align-items: center; gap: 6px; }
.bh-ink-size {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; padding: 0;
    border: 1px solid var(--border-default, #ced4da);
    border-radius: 6px; background: var(--bg-surface, #fff); cursor: pointer;
}
.bh-ink-size span { display: block; border-radius: 50%; background: var(--text-primary, #333333); }
.bh-ink-size.is-active { border-color: var(--brand-primary, #3d1a6f); box-shadow: 0 0 0 2px var(--bg-purple-tint, #efe9f7); }
.bh-ink-colors { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.bh-ink-swatch {
    width: 22px; height: 22px; padding: 0; border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.2); cursor: pointer;
}
.bh-ink-swatch.is-active { box-shadow: 0 0 0 2px var(--brand-accent, #fdb913); }
.bh-ink-custom {
    width: 26px; height: 26px; padding: 0; border: 1px solid var(--border-default, #ced4da);
    border-radius: 4px; background: var(--bg-surface, #fff); cursor: pointer;
}
.bh-ink-hlonly { display: flex; align-items: center; gap: 6px; font-size: 0.8rem; margin: 0; cursor: pointer; }

/* Canvas editor full screen: maximise the editor root ([data-canvas-editor-root]) over
   the viewport. Toggled by canvas-editor.js toggleFullscreen(); Esc exits. */
.bh-canvas-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    z-index: 1056 !important;
    overflow: auto !important;
    background: var(--bg-muted, #f5f5f5);
}
body.bh-canvas-fullscreen-lock { overflow: hidden; }

/* Canvas toolbar dropdown menus (Arrange / View). Menu is fixed-positioned in JS off the
   trigger button (CanvasEditor.toggleToolMenu) so it escapes any overflow:hidden clipping. */
.bh-tb-dropdown { position: relative; display: inline-block; }
.bh-tb-menu {
    display: none;
    position: fixed;
    z-index: 1062;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ced4da);
    border-radius: 8px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
    padding: 6px;
}
.bh-tb-menu.show { display: flex; flex-direction: column; gap: 4px; }
.bh-tb-menu .btn-group { display: flex; flex-wrap: wrap; }

/* Report-level "Preview brand" bar above the canvas pages (Reporting). */
.bh-canvas-brandbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bh-canvas-brandbar #coverageCustomBrandPickers { display: none; }

/* Deliver-step brand bar (Reporting Generate panel): non-interactive palette preview chips. */
.bh-deliver-swatches { display: inline-flex; align-items: center; gap: 6px; }
.bh-deliver-swatch { cursor: default; }

/* Unified inline brand strip inside the canvas toolbar (shared component built by
   CanvasEditor.mountToolbar -- used by the BHReports template designer). Reporting keeps the
   report-level .bh-canvas-brandbar above its pages. */
.bh-canvas-brandstrip { display: inline-flex; align-items: center; gap: 6px; }
.bh-canvas-brandstrip .bh-ink-pop-title { margin: 0; }

/* Narrow screens: keep the canvas toolbar one row and scroll it horizontally rather than
   stacking into many rows. */
@media (max-width: 768px) {
    .canvas-editor-toolbar {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* =============================================
   Canvas side panels -- Version history (Phase 7) + Gallery (Phase 5)
   Shared chrome with the layers panel; var()-token colours -> dark-mode safe.
   ============================================= */
.bh-canvas-sidepanel {
    width: 260px;
    flex-shrink: 0;
    border: 1px solid var(--border-default, #dddddd);
    border-radius: 8px;
    background: var(--bg-surface, #ffffff);
    align-self: flex-start;
    max-height: 600px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.bh-sidepanel-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #fafafa);
    border-bottom: 1px solid var(--border-default, #dddddd);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #666666);
}

.bh-sidepanel-header i { color: var(--brand-primary, #3d1a6f); }

.bh-sidepanel-action {
    margin-left: auto;
    border: 1px solid var(--brand-primary, #3d1a6f);
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    border-radius: 5px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
}

.bh-sidepanel-action:hover {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #ffffff);
}

.bh-sidepanel-list { overflow-y: auto; padding: 0.35rem; }

.bh-sidepanel-empty {
    padding: 1.25rem 0.75rem;
    text-align: center;
    color: var(--text-muted, #999999);
    font-size: 12px;
}

.bh-sidepanel-btn {
    border: 1px solid var(--border-default, #dddddd);
    background: var(--bg-surface, #ffffff);
    color: var(--brand-primary, #3d1a6f);
    border-radius: 5px;
    padding: 2px 8px;
    font-size: 11px;
    cursor: pointer;
    flex-shrink: 0;
}

.bh-sidepanel-btn:hover { background: var(--bg-purple-tint, #f0ebf7); }

.bh-ver-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem;
    border-radius: 6px;
}

.bh-ver-row:hover { background: var(--bg-muted, #f0f0f0); }
.bh-ver-main { flex: 1 1 auto; min-width: 0; }
.bh-ver-label { font-size: 12px; font-weight: 600; color: var(--text-body, #555555); }
.bh-ver-meta { font-size: 10px; color: var(--text-muted, #999999); }

.bh-ver-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 8px;
    padding: 1px 6px;
    margin-left: 4px;
}

.bh-ver-badge.pub { background: var(--bg-success-subtle, #e6f4ea); color: var(--status-success, #28a745); }
.bh-ver-badge.auto { background: var(--bg-subtle, #f0f0f0); color: var(--text-muted, #999999); }

.bh-gal-cat {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted, #999999);
    padding: 0.5rem 0.4rem 0.2rem;
}

.bh-gal-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem;
    border-radius: 6px;
    cursor: pointer;
}

.bh-gal-item:hover { background: var(--bg-purple-tint, #f0ebf7); }

.bh-gal-thumb {
    width: 40px;
    height: 56px;
    object-fit: cover;
    border: 1px solid var(--border-default, #dddddd);
    border-radius: 4px;
    background: var(--bg-surface, #ffffff);
    flex-shrink: 0;
}

.bh-gal-thumb--none {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted, #999999);
}

.bh-gal-name { flex: 1 1 auto; min-width: 0; font-size: 12px; color: var(--text-body, #555555); }
.bh-gal-lock { color: var(--brand-primary, #3d1a6f); font-size: 0.7rem; }

/* =============================================
   Action Buttons (global)
   Filled-circle icon buttons for table row actions.
   Replaces the old faint opacity:0.4 ghost icons.
   Usage: <a class="action-btn action-btn-primary"><i class="fas fa-eye"></i></a>
   ============================================= */
.action-btn-group { display: flex; align-items: center; gap: 0.4rem; white-space: nowrap; }

.action-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 50%;
    font-size: 0.75rem; transition: all 0.15s; flex-shrink: 0;
    border: none; cursor: pointer; text-decoration: none; line-height: 1;
}
.action-btn:hover { text-decoration: none; transform: scale(1.1); }
.action-btn.mytooltip { display: inline-flex !important; }

/* Primary action - solid purple (preview, view, open) */
.action-btn-primary { background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff); }
.action-btn-primary:hover { background: #5a2d9e; color: var(--text-on-dark, #fff); }
.action-btn-primary .fa-play { margin-left: 2px; }

/* Secondary action - light purple tint (download, edit, copy) */
.action-btn-secondary { background: var(--bg-purple-tint, #f0edf5); color: var(--brand-primary, #3d1a6f); }
.action-btn-secondary:hover { background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff); }

/* Danger action - light red tint (delete, remove) */
.action-btn-danger { background: #fdf0f0; color: var(--status-danger, #c0392b); }
.action-btn-danger:hover { background: var(--status-danger, #dc3545); color: var(--text-on-dark, #fff); }

/* Disabled/unavailable placeholder */
.action-btn-none { background: #e9e9e9; color: var(--text-muted, #aaa); cursor: default; }
.action-btn-none:hover { transform: none; }

/* Hover-reveal variant -- actions hidden until parent row hovered */
.action-btn-group-hover { opacity: 0; transition: opacity 0.15s ease; }
*:hover > .action-btn-group-hover { opacity: 1; }
@media (max-width: 576px) { .action-btn-group-hover { opacity: 1; } }

/* Review Panel -- Judge Avatars */
.judge-avatar {
    width: 48px; height: 48px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: bold; font-size: 18px; color: var(--text-on-dark, #fff); margin-right: 12px;
    flex-shrink: 0;
}
.judge-avatar-sm {
    width: 32px; height: 32px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: bold; font-size: 12px; color: var(--text-on-dark, #fff);
    flex-shrink: 0;
}
.review-judge-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.12); transition: box-shadow 0.15s ease; }

/* Award Entries -- Level toggle pills on gold header */
.award-level-toggle .nav-link {
    background: var(--bg-surface, #fff) !important; color: var(--brand-primary, #3d1a6f) !important;
    border: 1px solid var(--brand-primary, #3d1a6f) !important; font-weight: 600;
    padding: 4px 16px; font-size: 0.85rem;
}
.award-level-toggle .nav-link.active {
    background: var(--brand-primary, #3d1a6f) !important; color: var(--text-on-dark, #fff) !important;
}

/* ============================================================
   NewsWire WYSIWYG Card Editor (.nwc-*)
   Mirrors portal .nw-story-card layout with edit affordances
   ============================================================ */

/* The inner shell switches between a two-pane layout (wide host, e.g. CampaignBuilder) and a single
   preview-first column (narrow host, e.g. EmailPitching). This was a CSS container query, but
   container-type makes the wrapper a containing block + stacking context for fixed-positioned
   descendants -- which trapped the SortableJS file-strip drag clone so the dragged row would not
   travel with the pointer (BHReports/talent drag, which are NOT in such a wrapper, work fine).
   NewsWireCard.js now toggles .nwc-wide on .nwc-editor-wrapper via a ResizeObserver at the same
   880px breakpoint, so the layout is identical with no containment. */

/* Two-pane shell. MAIN = the public story (preview card + welded files). RAIL = the single
   external control (channel release schedule / go-live date). Default is one column, preview
   first, control below. */
.nwc-shell {
    max-width: 900px;
    margin: 0 auto;
}
.nwc-shell > .nwc-rail {
    margin-top: 1.25rem;
}
.nwc-editor-wrapper.nwc-wide .nwc-shell {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
    max-width: 1180px;
}
/* Rail on the left, sticky below the live navbar; main story on the right. Explicit
   grid placement (not DOM order) so the single-column fallback still flows main-first. */
.nwc-editor-wrapper.nwc-wide .nwc-shell > .nwc-rail {
    grid-column: 1;
    grid-row: 1;
    margin-top: 0;
    position: sticky;
    top: calc(var(--bh-navbar-h, 110px) + 0.75rem);
}
.nwc-editor-wrapper.nwc-wide .nwc-shell > .nwc-main {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}
/* At ~320px the channel date stacks under its toggle and uses the full rail width. */
.nwc-editor-wrapper.nwc-wide .nwc-rail .nwc-channel-row { gap: 8px; }
.nwc-editor-wrapper.nwc-wide .nwc-rail .nwc-channel-date { width: 100%; justify-content: space-between; }
.nwc-editor-wrapper.nwc-wide .nwc-rail .nwc-channel-date input[type="datetime-local"] { max-width: none; flex: 1 1 auto; }

/* Preview tile -- card + welded files as ONE floating object. The shadow lives HERE (not on
   the card) so the whole public-story rectangle reads as the live newswire tile. Card keeps
   its draft-state border; files get a dashed internal divider. Both share the tile outline. */
.nwc-preview-tile {
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06), 0 10px 28px rgba(61, 26, 111, 0.12);
    transition: box-shadow 0.2s ease;
}
.nwc-preview-tile:hover {
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08), 0 14px 36px rgba(61, 26, 111, 0.16);
}
.nwc-preview-tile > .nwc-card {
    border-radius: 12px 12px 0 0;
    border-bottom: none;
    box-shadow: none;
}
.nwc-preview-tile > .nwc-card:hover {
    box-shadow: none;
}
.nwc-preview-tile > .nwc-files-strip {
    border: 1px solid var(--border-default, #e9ecef);
    border-top: 1px dashed var(--border-light, #eee);
    border-radius: 0 0 12px 12px;
    background: var(--bg-surface, #fff);
}

/* Intro prose removed 2026-05-19. Kept selectors as no-ops in case of stale html. */
.nwc-intro { display: none; }

/* Readiness pill bar -- replaces the intro prose */
.nwc-readiness {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.nwc-readiness .bh-status-pill i {
    margin-right: 0.25rem;
    font-size: 0.6rem;
    vertical-align: middle;
}

/* Preview frame -- now just a wrapper. The floating .nwc-preview-tile shadow is the signal
   "this is the live public newswire tile", so the old dashed easel (border + tinted bg) is
   redundant and has been dropped. The eyebrow is a plain label sitting above the tile. */
.nwc-preview-frame {
    margin-bottom: 1rem;
}
.nwc-preview-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.6rem;
    padding: 0.15rem 0.6rem;
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    font-family: 'Outfit', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--border-default, #d6cce8);
    border-radius: 999px;
    line-height: 1.4;
}
.nwc-preview-eyebrow i {
    font-size: 0.7rem;
    color: var(--brand-accent, #fdb913);
}
@media (max-width: 768px) {
    .nwc-preview-eyebrow { font-size: 0.65rem; }
}

.nwc-card {
    display: flex;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e9ecef);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 4px 12px rgba(61,26,111,0.04);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}
.nwc-card:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(61,26,111,0.08);
}

.nwc-image {
    flex: 0 0 200px;
    min-height: 220px;
    background-size: cover;
    background-position: center;
    background-color: var(--bg-page, #f5f5f5);
    position: relative;
    cursor: pointer;
}

/* States: --empty | --pending | --has-image | --broken.
   Empty state markup is always in the DOM; CSS hides it once an image successfully loads. */
.nwc-image--empty,
.nwc-image--pending,
.nwc-image--broken {
    background-color: var(--bg-purple-tint, #f4eef9);
    border-right: 2px dashed var(--brand-primary, #3d1a6f);
    transition: background-color 0.15s ease;
}
.nwc-image--empty:hover,
.nwc-image--broken:hover {
    background-color: #ede2f6;
}

.nwc-image-empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
    gap: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
}
.nwc-image-empty i {
    font-size: 2rem;
    color: var(--brand-primary, #3d1a6f);
}
.nwc-image-empty-title {
    font-size: 0.85rem;
    font-weight: 600;
}
.nwc-image-empty-hint {
    font-size: 0.7rem;
    color: var(--text-muted, #888);
    line-height: 1.3;
}

/* Image loaded successfully: cover-bg shows; empty-state markup hidden; overlay on hover. */
.nwc-image--has-image .nwc-image-empty { display: none; }
.nwc-image--has-image { background-color: var(--bg-page, #f5f5f5); border-right: none; }

/* Pending (preload in flight): show empty state but keep it muted -- no flashing. */
.nwc-image--pending .nwc-image-empty { opacity: 0.5; }

.nwc-image-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease;
    color: var(--text-on-dark, #fff);
    font-size: 0.85rem;
    gap: 6px;
}

.nwc-image--has-image:hover .nwc-image-overlay {
    opacity: 1;
}

/* Empty / broken / pending states never show the dark overlay */
.nwc-image--empty .nwc-image-overlay,
.nwc-image--pending .nwc-image-overlay,
.nwc-image--broken .nwc-image-overlay {
    display: none;
}

.nwc-image-overlay i {
    font-size: 1.5rem;
}

.nwc-image-input {
    display: none;
}

.nwc-body {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Skeleton placeholder shown while newsWireCardManager fetches + renders.
   render() overwrites #nwcCardContainer.innerHTML so this is auto-removed. */
.nwc-skeleton-hero {
    flex: 0 0 200px;
    min-height: 220px;
    background: linear-gradient(90deg,
        var(--bg-subtle, #f0f0f0) 0%,
        var(--bg-muted, #e0e0e0) 50%,
        var(--bg-subtle, #f0f0f0) 100%);
    background-size: 200% 100%;
    animation: skel-shimmer 1.4s ease-in-out infinite;
    border-right: 1px solid var(--border-default, #e9ecef);
}
.nwc-skeleton-body {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0.3rem;
}
.nwc-skeleton-body .skel-line.tall { height: 1.1rem; margin-bottom: 0.6rem; }
.nwc-skeleton-body .skel-gap { height: 0.5rem; }
@media (max-width: 768px) {
    .nwc-skeleton-hero {
        flex: 0 0 160px;
        min-height: 160px;
        border-right: none;
        border-bottom: 1px solid var(--border-default, #e9ecef);
    }
}

.nwc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.nwc-publish-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Standard-size switch (BS4 .custom-switch is small by default). Use actual sizing
   instead of transform:scale to keep the hit area sharp and the click target full-fidelity.
   .bh-switch = canonical reusable standard switch. .nwc-publish-toggle layers its
   green/draft semantics on top of the same dimensions. Add bh-switch to any
   custom-switch that needs the standard (non-compact) size. */
.bh-switch.custom-switch,
.nwc-publish-toggle .custom-switch {
    padding-left: 3rem;
    min-height: 1.75rem;
}
.bh-switch.custom-switch .custom-control-label::before,
.nwc-publish-toggle .custom-switch .custom-control-label::before {
    width: 2.75rem;
    height: 1.5rem;
    border-radius: 0.75rem;
    top: 0.125rem;
    left: -3rem;
}
.bh-switch.custom-switch .custom-control-label::after,
.nwc-publish-toggle .custom-switch .custom-control-label::after {
    width: 1.2rem;
    height: 1.2rem;
    top: 0.275rem;
    left: -2.85rem;
    border-radius: 0.6rem;
}
.bh-switch.custom-switch .custom-control-input:checked ~ .custom-control-label::after,
.nwc-publish-toggle .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    transform: translateX(1.25rem);
}

.nwc-publish-toggle .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
}
/* Postback variant (.bh-switch-hit): WebForms FormView-template switches where a LinkButton
   wraps a bare server CheckBox (server handler flips state; FindControl reads preserved --
   the checkbox cannot carry .custom-control-input declaratively). The anchor is the whole
   hit target and the bare input stands in for .custom-control-input, so the checked contract
   is mirrored for it here. Consumers: Interviews booking modal (Sync sub-bookings + Alert
   Talent x2). Same dimensions as .bh-switch; never re-declare sizes elsewhere. */
.custom-switch .bh-switch-hit,
.custom-switch .bh-switch-hit:hover,
.custom-switch .bh-switch-hit:focus {
    color: inherit;
    text-decoration: none;
    /* block + full height: the anchor and its EMPTY .custom-control-label otherwise
       collapse to 0x0 on the wrap's text baseline, so the track (drawn at
       label-top + 2px) hangs ~14px below centre (Hide Past toolbar, 2026-07-12).
       Filling the wrap pins the label to the wrap top -> track sits at top+2px,
       vertically centred within the .bh-switch min-height. */
    display: block;
    height: 100%;
}
.custom-switch .bh-switch-hit .custom-control-label {
    display: block;
    height: 100%;
}
.custom-switch .bh-switch-hit > input[type="checkbox"] {
    position: absolute;
    left: 0;
    top: 0.25rem;
    width: 2.75rem;
    height: 1.5rem;
    opacity: 0;
    z-index: -1;
}
.custom-switch .bh-switch-hit > input[type="checkbox"]:checked ~ .custom-control-label::before {
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-accent, #fdb913);
    background-color: var(--brand-accent, #fdb913);
}
.bh-switch.custom-switch .bh-switch-hit > input[type="checkbox"]:checked ~ .custom-control-label::after {
    background-color: #fff;
    transform: translateX(1.25rem);
}

/* Draft state: amber label so the toggle shouts when not Published. */
.nwc-card.nwc-state-draft + * .nwc-publish-toggle,
.nwc-state-draft .nwc-publish-toggle,
.nwc-card.nwc-state-draft .nwc-publish-toggle > span {
    color: var(--status-warning-text, #b8860b);
}
[data-theme="dark"] .nwc-card.nwc-state-draft .nwc-publish-toggle > span {
    color: var(--brand-accent, #fdb913);
}

/* Subtle border accent on the whole card while in Draft to reinforce the warning. */
.nwc-card.nwc-state-draft {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 2px 8px rgba(253, 185, 19, 0.18);
}

/* ----------------------------------------------------------------------------
   NewsWire Card -- MediaCast channel release schedule (staggered TV/Radio/Press).
   Per-channel publish toggle + go-live date. Master Published is the override.
   ---------------------------------------------------------------------------- */
.nwc-channels {
    border: 1px solid var(--border-light, #eee);
    border-radius: 8px;
    background: var(--bg-subtle, #fafafa);
    padding: 12px 16px;
    margin-bottom: 16px;
}

.nwc-channels-head {
    display: flex;
    flex-direction: column;
    margin-bottom: 10px;
}

.nwc-channels-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.nwc-channels-note {
    font-size: 0.72rem;
    color: var(--text-tertiary, #888);
    margin-top: 2px;
}

.nwc-channel-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid var(--border-light, #eee);
    flex-wrap: wrap;
}

.nwc-channel-switch .custom-control-label {
    font-weight: 600;
    color: var(--text-primary, #333);
    cursor: pointer;
}

.nwc-channel-date {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nwc-channel-date-label {
    font-size: 0.72rem;
    color: var(--text-tertiary, #888);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    white-space: nowrap;
}

.nwc-channel-date input[type="datetime-local"] {
    width: auto;
    max-width: 210px;
}

/* Draft reminder inside the schedule panel -- shown only while master Published is off.
   The schedule itself stays fully active (it is configured before go-live). */
.nwc-channels-reminder {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 6px 10px;
    font-size: 0.72rem;
    color: var(--text-secondary, #555);
    background: var(--bg-surface, #fff);
    border: 1px dashed var(--border-default, #d0c4e8);
    border-radius: 6px;
}

.nwc-channels-reminder i {
    color: var(--brand-accent, #fdb913);
}

/* Per-file channel chips (which feed an asset rides in). */
.nwc-file-channels {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.nwc-file-channels-label {
    font-size: 0.68rem;
    color: var(--text-tertiary, #888);
    align-self: center;
    margin-right: 2px;
}

.nwc-chan-chip {
    font-size: 0.68rem;
    line-height: 1;
    padding: 3px 8px;
    border-radius: 10px;
    border: 1px solid var(--border-default, #d0c4e8);
    background: var(--bg-surface, #fff);
    color: var(--text-tertiary, #888);
    cursor: pointer;
    transition: all 0.15s ease;
}

.nwc-chan-chip:hover {
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
}

.nwc-chan-chip.is-on {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}

/* Rename affordance: the file name is click-to-edit -- surface a pencil on hover. */
.nwc-file-desc--editable {
    cursor: pointer;
}

.nwc-file-desc-pen {
    font-size: 0.7rem;
    margin-left: 6px;
    color: var(--text-tertiary, #aaa);
    opacity: 0;
    transition: opacity 0.15s ease;
}

.nwc-file-row:hover .nwc-file-desc-pen,
.nwc-file-desc--editable:hover .nwc-file-desc-pen {
    opacity: 1;
}

.nwc-field {
    position: relative;
    cursor: text;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 4px 8px;
    margin: -4px -8px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.nwc-field:hover {
    border-color: var(--border-brand, #e0d4f0);
    background: var(--bg-purple-tint, #faf8fd);
}

.nwc-field.nwc-editing {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-surface, #fff);
}

.nwc-field-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    line-height: 1.3;
    min-height: 1.6em;
}

.nwc-field-title input {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    border: none;
    outline: none;
    width: 100%;
    background: transparent;
    padding: 0;
    line-height: 1.3;
}

.nwc-field-summary {
    font-weight: 500;
    color: var(--text-body, #555);
    margin-top: 8px;
    min-height: 1.4em;
}

.nwc-field-summary textarea,
.nwc-field-body textarea {
    border: none;
    outline: none;
    width: 100%;
    background: transparent;
    padding: 0;
    resize: vertical;
    font-family: inherit;
    line-height: 1.5;
}

.nwc-field-summary textarea {
    font-weight: 500;
    color: var(--text-body, #555);
    font-size: inherit;
}

.nwc-field-body {
    color: var(--text-secondary, #666);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-top: 6px;
    min-height: 2em;
    flex: 1;
}

.nwc-field-body textarea {
    color: var(--text-secondary, #666);
    font-size: 0.95rem;
}

.nwc-placeholder {
    color: var(--text-muted, #bbb);
    font-style: italic;
}

.nwc-meta {
    font-size: 0.85rem;
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 10px;
}

.nwc-meta i {
    margin-right: 6px;
    color: var(--brand-accent, #fdb913);
    width: 14px;
    text-align: center;
}

.nwc-meta span {
    display: inline-flex;
    align-items: center;
}

.nwc-files-strip {
    border-top: 1px solid var(--border-light, #eee);
    padding: 12px 20px;
    background: var(--bg-subtle, #fafafa);
    border-radius: 0 0 8px 8px;
}

.nwc-files-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.nwc-files-heading {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.nwc-files-header h6 {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* One-line explainer that names the job: these are the downloadable PR assets, not the inline
   media. Tertiary caption tone (muted token flips in dark mode). */
.nwc-files-subhead {
    font-size: 0.72rem;
    line-height: 1.3;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-muted, #6c757d);
    max-width: 56ch;
}

.nwc-upload-btn {
    font-size: 0.8rem;
    padding: 4px 12px;
    white-space: nowrap;
    flex-shrink: 0;
}

.nwc-files-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.nwc-file-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #eee);
    border-radius: 6px;
    cursor: grab;
    transition: all 0.15s ease;
}

.nwc-file-row:active {
    cursor: grabbing;
}

/* Drag-to-reorder clone. This list uses forceFallback, so SortableJS moves a position:fixed clone
   of the dragged row by rewriting its inline `transform` every frame. The clone therefore MUST use a
   bespoke dragClass (.nwc-file-drag-clone, set in NewsWireCard.js) and NOT the global .sortable-drag:
   the global rule near the top of this file sets `transform ... !important` for the sales-pipeline
   kanban's NATIVE drag, and !important beats SortableJS's inline transform -- which pins the clone so
   it cannot travel with the pointer. Same approach the CampaignBuilder talent reorder
   (.talent-sortable-drag) and the workload board (.bh-wl-drag) already use. Lift the clone with
   box-shadow only -- never set `transform` on the clone root or SortableJS can no longer position it.
   The placeholder gap still uses the global .sortable-ghost / .sortable-chosen classes. */
.nwc-file-drag-clone {
    /* The "pulled by the collar" tilt + lift. This is a NON-important transform on purpose:
       forceFallback SortableJS moves the clone by reading its transform matrix each frame and
       rewriting ONLY the translate part, so the rotate + scale survive AND the clone still tracks
       the pointer. NEVER add !important here -- an !important transform is exactly what froze the
       clone under the global .sortable-drag rule (the bug this class was created to dodge). */
    transform: var(--bh-drag-tilt);
    transform-origin: 50% 0;
    box-shadow: 0 8px 28px rgba(61, 26, 111, 0.28);
    cursor: grabbing;
    /* .nwc-file-row sets `transition: all` -- that would ease the inline transform SortableJS
       rewrites each frame, making the clone lag the pointer (feels sticky). Clear it so the clone
       tracks the cursor 1:1. */
    transition: none;
}

.nwc-file-drag {
    color: #ccc;
    font-size: 0.9rem;
    cursor: grab;
    /* Touch: the grip owns the gesture (drag-to-reorder) instead of scrolling the page,
       and never triggers the iOS text-selection callout on a long press. */
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

.nwc-file-icon {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: var(--brand-accent, #fdb913);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-dark, #fff);
    font-size: 0.8rem;
    flex-shrink: 0;
}

.nwc-file-info {
    flex: 1;
    min-width: 0;
}

.nwc-file-desc {
    font-size: 0.85rem;
    color: var(--text-primary, #333);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nwc-file-meta {
    font-size: 0.75rem;
    color: var(--text-tertiary, #888);
}

.nwc-file-type-badge {
    cursor: pointer;
    padding: 1px 6px;
    border-radius: 3px;
    background: #f3eef9;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
    transition: background 0.15s ease;
}

.nwc-file-type-badge:hover {
    background: var(--bg-purple-tint, #e0d4f0);
}

.nwc-file-actions {
    display: flex;
    gap: 4px;
}

.nwc-dropzone {
    border: 2px dashed #d0c4e8;
    border-radius: 6px;
    padding: 20px;
    text-align: center;
    color: var(--text-muted, #999);
    font-size: 0.85rem;
    transition: all 0.2s ease;
    cursor: pointer;
    margin-top: 8px;
}

.nwc-dropzone.nwc-drag-active {
    border-color: var(--brand-primary, #3d1a6f);
    background: #f3eef9;
    color: var(--brand-primary, #3d1a6f);
}

.nwc-dropzone i {
    font-size: 1.5rem;
    display: block;
    margin-bottom: 6px;
    color: var(--brand-primary, #3d1a6f);
}

.nwc-dropzone-title {
    display: block;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.875rem;
}

.nwc-dropzone-hint {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--text-muted, #888);
}

.nwc-no-files {
    text-align: center;
    padding: 15px;
    color: var(--text-muted, #bbb);
    font-size: 0.85rem;
}

.nwc-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 12px 0;
    margin-top: 12px;
}

/* Auto-save status pip in the card footer (title/summary/body persist on blur). */
.nwc-autosave-status {
    font-size: 0.8rem;
    color: var(--text-muted, #6c757d);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    min-height: 1.2rem;
}

.nwc-autosave-status.is-saved {
    color: var(--status-success-text, #1e7e34);
}

.nwc-autosave-status.is-error {
    color: var(--status-danger-text, #b02a37);
}

/* Campaign-timezone selector in the schedule rail -- the zone every schedule date is shown in. */
.nwc-tz-row {
    align-items: center;
}

.nwc-tz-row .nwc-tz-select {
    flex: 1 1 auto;
    min-width: 0;
}

.nwc-auto-populate-bar {
    background: #f3eef9;
    border: 1px solid #d0c4e8;
    border-radius: 6px;
    padding: 10px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--text-body, #555);
}

.nwc-auto-populate-bar i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 6px;
}

.nwc-empty-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted, #999);
}

.nwc-empty-state i {
    font-size: 3rem;
    color: #d0c4e8;
    margin-bottom: 12px;
}

.nwc-empty-state h5 {
    color: var(--text-body, #555);
    margin-bottom: 8px;
}

.nwc-file-input {
    display: none;
}

@media (max-width: 768px) {
    .nwc-card {
        flex-direction: column;
    }
    .nwc-image {
        flex: none;
        height: 150px;
        width: 100%;
    }
}

/* ============================================
   NewsWire Card -- Rich Media (Phase 3)
   Gallery / Embeds / CTA / Divider + Add-media menu.
   Tokens drive dark mode automatically (no [data-theme] overrides needed).
   ============================================ */
.nwc-media-stack {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.nwc-media-block {
    position: relative;
}

.nwc-media-block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.nwc-media-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.nwc-media-remove {
    flex-shrink: 0;
}

/* The remove button on gallery items / dividers floats top-right of the block. */
.nwc-gallery-item .nwc-media-remove,
.nwc-divider-block .nwc-media-remove,
.nwc-cta-block .nwc-media-remove {
    position: absolute;
    top: 6px;
    right: 6px;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.nwc-gallery-item:hover .nwc-media-remove,
.nwc-divider-block:hover .nwc-media-remove,
.nwc-cta-block:hover .nwc-media-remove {
    opacity: 1;
}

/* ---- Gallery ---- */
.nwc-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 8px;
}

.nwc-gallery-item {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    overflow: hidden;
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-light, #eee);
}

.nwc-gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.nwc-gallery-img:hover {
    transform: scale(1.04);
}

.nwc-gallery-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px;
    text-align: center;
    color: var(--text-muted, #999);
    font-size: 0.72rem;
}

.nwc-gallery-fallback i {
    font-size: 1.4rem;
    color: var(--brand-accent, #fdb913);
}

/* ---- Embeds ---- */
.nwc-embed-frame {
    position: relative;
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    background: var(--bg-page, #000);
    border: 1px solid var(--border-light, #eee);
}

.nwc-embed-frame--wide { padding-top: 56.25%; }
.nwc-embed-frame--medium { padding-top: 75%; }
.nwc-embed-frame--tall { padding-top: 0; height: 640px; }

.nwc-embed-frame iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.nwc-embed-frame--tall iframe {
    position: static;
    height: 100%;
}

.nwc-embed-blocked {
    padding: 16px;
    border-radius: 8px;
    background: var(--bg-purple-tint, #f4eef9);
    border: 1px dashed var(--brand-primary, #3d1a6f);
    color: var(--text-body, #555);
    font-size: 0.85rem;
}

.nwc-embed-open {
    display: inline-flex;
    align-items: center;
    margin-top: 6px;
    font-size: 0.8rem;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
}

.nwc-embed-open:hover {
    color: var(--brand-accent, #fdb913);
    text-decoration: none;
}

/* ---- CTA button ---- */
.nwc-cta-block {
    display: flex;
    align-items: center;
}

.nwc-cta {
    display: inline-flex;
    align-items: center;
}

.nwc-cta-block .nwc-media-remove {
    top: 50%;
    transform: translateY(-50%);
}

/* ---- Divider ---- */
.nwc-divider {
    border: 0;
    border-top: 2px solid var(--border-default, #e9ecef);
    margin: 4px 0;
}

/* ---- Add media menu + forms ---- */
.nwc-files-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.nwc-add-media {
    position: relative;
    display: inline-block;
}

.nwc-add-media-menu {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 20;
    min-width: 240px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e9ecef);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(61,26,111,0.12);
    padding: 4px;
}

.nwc-add-media-menu.open {
    display: block;
}

.nwc-add-media-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 12px;
    background: none;
    border: 0;
    border-radius: 6px;
    text-align: left;
    font-size: 0.85rem;
    color: var(--text-primary, #333);
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
}

.nwc-add-media-item i {
    width: 16px;
    text-align: center;
    color: var(--brand-primary, #3d1a6f);
}

.nwc-add-media-item:hover {
    background: var(--bg-gold-tint, #fff7e0);
    color: var(--brand-primary, #3d1a6f);
}

/* Inline-media author block in the card body. Deliberately quiet: a light top divider sets it
   apart from the body text without competing with the downloadable-assets call-to-action below. */
.nwc-body-add {
    margin-top: 0.85rem;
    padding-top: 0.7rem;
    border-top: 1px dashed var(--border-light, #eee);
}

.nwc-body-add-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.nwc-body-add-hint {
    font-size: 0.72rem;
    color: var(--text-muted, #6c757d);
}

.nwc-body-add-hint i {
    font-size: 0.66rem;
    opacity: 0.85;
}

/* In the body the trigger is left-aligned, so the dropdown opens from the left edge (the
   strip-header default opened right-aligned). It also opens UPWARD: the trigger sits at the
   bottom of the card body, and the card clips its overflow for the rounded corners, so a
   downward menu would be cropped at the card edge. There is always body content above the
   trigger (title / summary / body), so opening up keeps the menu inside the card. */
.nwc-body-add .nwc-add-media-menu {
    left: 0;
    right: auto;
    top: auto;
    bottom: calc(100% + 4px);
}

.nwc-add-forms {
    margin-bottom: 10px;
}

.nwc-add-form {
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-light, #eee);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.nwc-add-form-title {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.nwc-add-form-hint {
    font-size: 0.72rem;
    color: var(--text-muted, #888);
}

.nwc-add-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (max-width: 768px) {
    .nwc-gallery {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    }
    .nwc-embed-frame--tall {
        height: 540px;
    }
    .nwc-add-media-menu {
        right: auto;
        left: 0;
    }
}

/* ============================================
   Demo Mode Banner + Toast (ONB-05)
   ============================================ */
.demo-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 0;
    font-size: 13px;
    font-weight: 500;
    z-index: 1040;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
}
.demo-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 10px 20px;
    flex-wrap: wrap;
}
.demo-banner-text {
    display: flex;
    align-items: center;
}
.demo-banner-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.demo-btn-signup {
    background-color: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
    border-radius: 50px;
    padding: 5px 18px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.demo-btn-signup:hover {
    background-color: #e5a710;
    border-color: #e5a710;
    color: var(--brand-primary, #3d1a6f);
}
.demo-btn-plans {
    background-color: transparent;
    border: 1px solid rgba(255,255,255,0.5);
    color: var(--text-on-dark, #fff);
    border-radius: 50px;
    padding: 5px 18px;
    font-size: 12px;
}
.demo-btn-plans:hover {
    background-color: rgba(255,255,255,0.15);
    color: var(--text-on-dark, #fff);
    border-color: var(--text-on-dark, #fff);
}
.demo-toast {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 14px 28px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    z-index: 99999;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: auto;
    max-width: 500px;
}
.demo-toast a {
    color: var(--brand-accent, #fdb913);
    font-weight: 600;
    text-decoration: underline;
}
.demo-toast-show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* Demo Banner Mode Switcher */
.demo-mode-label {
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    margin-right: 6px;
    font-weight: 400;
}
.demo-mode-switcher {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 16px;
}
.demo-mode-btn {
    color: rgba(255,255,255,0.7);
    font-size: 12px;
    font-weight: 500;
    padding: 3px 10px;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.demo-mode-btn:hover {
    background: rgba(255,255,255,0.15);
    color: var(--text-on-dark, #fff);
    text-decoration: none;
}
.demo-mode-btn.mytooltip {
    display: inline-flex !important;
    margin-top: 0 !important;
}
.demo-mode-btn.demo-mode-active {
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.demo-mode-btn.demo-mode-active:hover {
    background: #e5a710;
    color: var(--brand-primary, #3d1a6f);
}
@media (max-width: 768px) {
    .demo-mode-switcher { display: none; }
}

/* Demo Mode Selector Cards */
.demo-mode-card {
    display: block;
    padding: 20px;
    border: 2px solid #e0e6ed;
    border-radius: 10px;
    text-decoration: none;
    color: var(--brand-primary, #3d1a6f);
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
    position: relative;
}
.demo-mode-card:hover {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 4px 16px rgba(61,26,111,0.15);
    transform: translateY(-2px);
    text-decoration: none;
    color: var(--brand-primary, #3d1a6f);
}
.demo-mode-card i {
    font-size: 24px;
    color: var(--brand-accent, #fdb913);
    display: block;
    margin-bottom: 8px;
}
.demo-mode-card strong {
    font-size: 16px;
    display: block;
    margin-bottom: 6px;
}
.demo-mode-card span {
    font-size: 13px;
    color: var(--text-secondary, #636e72);
    line-height: 1.4;
}
.demo-mode-recommended {
    border-color: var(--brand-primary, #3d1a6f);
    background: linear-gradient(135deg, rgba(61,26,111,0.03) 0%, rgba(253,185,19,0.05) 100%);
}
.demo-mode-badge {
    display: inline-block;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    font-size: 11px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 10px;
    margin-top: 8px;
    font-style: normal;
}
@media (max-width: 576px) {
    #demoModeModal > div > div:last-child {
        grid-template-columns: 1fr;
    }
}

/* ===== Demo Access Modal ===== */
.demo-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    justify-content: center;
    align-items: center;
}
.demo-modal-overlay.active {
    display: flex;
}
.demo-modal-card {
    background: var(--bg-surface, #fff);
    border-radius: 12px;
    max-width: 420px;
    width: 90%;
    padding: 40px 30px;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    text-align: center;
}
.demo-modal-close {
    position: absolute;
    top: 15px;
    right: 20px;
    background: none;
    border: none;
    font-size: 20px;
    color: var(--text-muted, #999);
    cursor: pointer;
}
.demo-modal-close:hover {
    color: var(--brand-primary, #3d1a6f);
}
.demo-modal-title {
    color: var(--brand-primary, #3d1a6f);
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 8px;
}
.demo-modal-subtitle {
    color: var(--text-secondary, #666);
    font-size: 14px;
    margin-bottom: 24px;
}
.demo-modal-input {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--border-default, #ddd);
    border-radius: 8px;
    font-size: 15px;
    outline: none;
    box-sizing: border-box;
    margin-bottom: 16px;
    transition: border-color 0.2s;
}
.demo-modal-input:focus {
    border-color: var(--brand-primary, #3d1a6f);
}
.demo-modal-input.error {
    border-color: var(--brand-danger, #ed174c);
}
.demo-modal-btn {
    width: 100%;
    padding: 12px;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.demo-modal-btn:hover {
    background: var(--brand-primary, #5a2d82);
}
.demo-modal-btn:disabled {
    background: #999;
    cursor: not-allowed;
}
.demo-modal-error {
    color: var(--brand-danger, #ed174c);
    font-size: 13px;
    margin-top: -8px;
    margin-bottom: 12px;
    display: none;
}
.demo-modal-error.visible {
    display: block;
}
.demo-modal-privacy {
    font-size: 11px;
    color: var(--text-muted, #999);
    margin-top: 16px;
}
.demo-modal-privacy a {
    color: var(--brand-primary, #3d1a6f);
}
.demo-modal-success-icon {
    font-size: 48px;
    color: var(--status-success, #28a745);
    margin-bottom: 16px;
}
.demo-modal-success-email {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.demo-modal-resend {
    background: none;
    border: none;
    color: var(--brand-primary, #3d1a6f);
    text-decoration: underline;
    cursor: pointer;
    font-size: 14px;
    margin-top: 16px;
    display: inline-block;
}
@media (max-width: 480px) {
    .demo-modal-card {
        padding: 30px 20px;
        margin: 10px;
    }
}

/* --- Pitch Mode Activity Tab --- */
.pitch-mode-cta {
    background: #f3edf9;
    border: 2px solid var(--brand-primary, #3d1a6f);
    border-radius: 10px;
    padding: 1.5rem;
}
.pitch-mode-cta h4 { color: var(--brand-primary, #3d1a6f); margin-bottom: 0.5rem; }
.pitch-mode-cta p { font-size: 0.9rem; }

.pitch-list-table { margin-bottom: 0; }
/* EDM campaign-selector title + drill-in chevron use the canonical .bh-rowlink-title / .bh-rowlink-chevron
   affordances (see the .bh-row-clickable block) -- one SSOT for "row opens the entity" styling, shared with
   the EmailPitching pitch list and the SurveyForms list. */
/* When a pitch list also opts into table-modern (EDM picker), keep the purple-header white text
   (the base .pitch-list-table th colour would otherwise be purple-on-purple). Two classes => wins. */
.pitch-list-table.table-modern th { color: #fff; background: var(--brand-primary, #3d1a6f); }
/* EDM merged list: translucent cell-bar track (composites over white AND the row-hover tint, so the
   bars don't read as solid boxes on hover) and centered numbers under the centered headers. */
#edmPickerTable .bh-cellbar { background: rgba(61, 26, 111, 0.06); }
#edmPickerTable .bh-cellbar-num { margin: 0 auto; }
/* Sticky header for every pitch-style list (EDM picker + EmailPitching pitch/report list): pins
   under the fixed nav using the live --bh-navbar-h SSOT (set on load/resize in Site.Master from
   #mainNav height). Opaque background so rows scroll under it; EDM's table-modern purple header
   wins via the higher-specificity rule above. */
.pitch-list-table thead th { position: sticky; top: var(--bh-navbar-h, 64px); z-index: 5; background: var(--bg-surface, #fff); }
/* Card around a pitch list: overflow:clip keeps rounded corners but (unlike overflow:hidden) is NOT
   a scroll container, so it doesn't break the sticky header. */
.edm-picker-card, .profile-card:has(.pitch-list-table) { overflow: clip; }
.pitch-list-table th {
    font-size: 0.8rem;
    text-transform: uppercase;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    border-top: none;
}
.pitch-list-table td { vertical-align: middle; font-size: 0.9rem; }
.pitch-list-row { cursor: pointer; transition: background-color 0.15s; }
.pitch-list-row:hover { background-color: var(--bg-purple-tint, #f8f5ff); }
.pitch-list-row.selected { background-color: var(--bg-purple-tint, #f5f0ff); }

.pitch-filter-toggle {
    display: inline-block;
    font-size: 0.85rem;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}
.pitch-filter-toggle:hover { background: var(--bg-purple-tint, #f8f5ff); }
.pitch-filter-toggle i { margin-right: 4px; }

.pitch-filter-row { display: none; margin-bottom: 12px; }

/* Social platform badges */
.platform-badge { display: inline-flex; align-items: center; font-size: 0.85em; font-weight: 600; }
.platform-badge i { margin-right: 4px; }
.platform-badge-twitter { color: #1DA1F2; }
.platform-badge-instagram { color: #E4405F; }
.platform-badge-facebook { color: #1877F2; }
.platform-badge-tiktok { color: var(--text-primary, #000000); }
.platform-badge-linkedin { color: #0A66C2; }

/* Social Impact - Stat cards */
.social-stat-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 12px 16px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: box-shadow 0.15s ease;
}
.social-stat-card:hover {
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.social-stat-card .h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    line-height: 1.2;
}
.social-stat-card small.text-muted {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 4px;
    display: inline-block;
}

/* Social mentions table text truncation */
.social-post-text {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9em;
}

/* Social monitoring tag/pill inputs */
.social-tag-input-wrapper {
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 4px;
    padding: 4px 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-height: 38px;
    cursor: text;
    background: var(--bg-surface, #fff);
}
.social-tag-input-wrapper:focus-within {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.2rem rgba(61, 26, 111, 0.15);
}
.social-tag-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.social-tag-pill {
    display: inline-flex;
    align-items: center;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.85em;
    white-space: nowrap;
}
.social-tag-pill .social-tag-remove {
    margin-left: 6px;
    cursor: pointer;
    opacity: 0.7;
    font-size: 0.9em;
}
.social-tag-pill .social-tag-remove:hover {
    opacity: 1;
}
.social-tag-input {
    border: none;
    outline: none;
    flex: 1;
    min-width: 120px;
    font-size: 0.9em;
    padding: 4px 0;
    background: transparent;
    color: var(--text-body, #495057);
}

/* Social Impact - Platform Badges (pill style) */
.social-platform-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-on-dark, #fff);
    white-space: nowrap;
}
.platform-twitter { background: #000000; }
.platform-instagram { background: #E4405F; }
.platform-tiktok { background: #000000; }
.platform-reddit { background: #FF4500; }
.platform-youtube { background: #FF0000; }
.platform-threads { background: #1A1A1A; }
.platform-facebook { background: #1877F2; }
.platform-linkedin { background: #0A66C2; }

/* Social Impact - Mention rows */
.social-mention-row {
    padding: 8px 12px;
    border-bottom: 1px solid var(--border-light, #eee);
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.social-mention-row:hover {
    background: var(--bg-subtle, #f8f9fa);
}
.social-mention-row.is-influencer {
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.social-mention-text {
    flex: 1;
    font-size: 0.875rem;
    color: var(--text-primary, #333);
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.social-mention-engagement {
    display: flex;
    gap: 10px;
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    white-space: nowrap;
}
.social-mention-engagement i {
    margin-right: 2px;
}

/* Social Impact - Sentiment badges */
.sentiment-positive { background: var(--status-success, #28a745); color: var(--text-on-dark, #fff); padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; }
.sentiment-neutral { background: var(--text-secondary, #6c757d); color: var(--text-on-dark, #fff); padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; }
.sentiment-negative { background: var(--brand-danger, #ed174c); color: var(--text-on-dark, #fff); padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; }

/* Social Impact - Empty states */
.social-empty-state {
    text-align: center;
    padding: 40px 20px;
    max-width: 480px;
    margin: 0 auto;
}
.social-empty-state i.empty-icon {
    font-size: 48px;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 16px;
}
.social-empty-state h4 {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    margin-bottom: 8px;
}
.social-empty-state p {
    color: var(--text-secondary, #666);
    font-size: 0.875rem;
    margin-bottom: 16px;
}

/* Social Impact - Toggle chips for platform filter */
.social-filter-toggle {
    display: inline-flex;
    gap: 4px;
    margin-bottom: 12px;
}
.social-filter-toggle .btn {
    font-size: 0.8rem;
    padding: 4px 12px;
    border-radius: 20px;
}
.social-filter-toggle .btn.active {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-color: var(--brand-primary, #3d1a6f);
}

/* Social Impact - Scan Now quota badge */
.social-quota-badge {
    display: inline-block;
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    border-radius: 10px;
    padding: 2px 10px;
    font-size: 0.75rem;
    margin-left: 8px;
}
.social-quota-badge.quota-low {
    background: var(--brand-accent, #fdb913);
    color: var(--text-primary, #333);
}
.social-quota-badge.quota-exhausted {
    background: var(--brand-danger, #ed174c);
    color: var(--text-on-dark, #fff);
}

/* Social Impact - Last scanned indicator */
.social-last-scanned {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    margin-top: 4px;
}
.social-stale-warning {
    color: var(--brand-accent, #fdb913);
    font-size: 0.75rem;
    margin-top: 4px;
}

/* Social Impact - Scan quota slim bar (header), mirrors EmailPitching .ep-context-bar fill */
.social-quota-bar {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-left: 8px;
}
.social-quota-track {
    width: 90px;
    height: 8px;
    background: var(--bg-muted, #e9ecef);
    border-radius: 6px;
    overflow: hidden;
}
.social-quota-fill {
    display: block;
    height: 100%;
    width: 0%;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--brand-primary, #3d1a6f), #5a2d82);
    transition: width 0.6s ease;
}
.social-quota-bar.quota-low .social-quota-fill { background: var(--brand-accent, #fdb913); }
.social-quota-bar.quota-exhausted .social-quota-fill { background: var(--brand-danger, #ed174c); }
.social-quota-text {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
}

/* Social Impact - "What we're tracking" chip row */
.bh-social-tracking {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 0 12px 0;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border-light, #eee);
}
.bh-social-tracking-label {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-secondary, #6c757d);
    margin-right: 2px;
}
.bh-social-tracking-edit {
    margin-left: auto;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    white-space: nowrap;
}
.bh-social-tracking-edit:hover { text-decoration: underline; }

/* Social Impact - Illustrative placeholder chips in the not-configured empty state */
.bh-social-placeholder {
    margin: 4px auto 18px auto;
}
.bh-social-placeholder-label {
    display: block;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted, #8a8a8a);
    margin-bottom: 8px;
}
.bh-social-placeholder-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
}
.bh-social-placeholder-chips .bh-entity-chip {
    opacity: 0.7;
    border: 1px dashed var(--border-default, #d8d8d8);
}

/* Social Impact - Creator lookup result cards */
.social-creator-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    background: var(--bg-surface, #fff);
    margin-bottom: 6px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.social-creator-card:hover {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 1px 4px rgba(61, 26, 111, 0.1);
}
.social-creator-card.is-added {
    background: var(--bg-subtle, #f8fff8);
    border-color: var(--status-success-border, #c3e6cb);
}
.social-creator-card .creator-info {
    flex: 1;
    min-width: 0;
}
.social-creator-card .creator-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.9rem;
}
.social-creator-card .creator-handle {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
}
.social-creator-card .creator-followers {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
}
.social-creator-card .creator-added-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--status-success, #28a745);
    font-size: 0.8rem;
    font-weight: 600;
}

/* Social Impact - Monitored account rows */
.social-monitored-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
    margin-bottom: 4px;
    font-size: 0.9em;
    transition: background 0.15s ease;
}
.social-monitored-row:hover {
    background: var(--bg-purple-tint, #f0edf5);
}
.social-monitored-row .monitored-platform {
    width: 16px;
    text-align: center;
    flex-shrink: 0;
}
.social-monitored-row .monitored-platform-label {
    min-width: 70px;
    font-size: 0.85em;
    color: var(--text-secondary, #666);
}
.social-monitored-row .monitored-handle {
    font-weight: 600;
    color: var(--text-primary, #333);
}
.social-monitored-row .monitored-display-name {
    color: var(--text-secondary, #666);
}
.social-monitored-row .monitored-followers {
    font-size: 0.85em;
}
.social-monitored-row .monitored-link {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85em;
}
.social-monitored-row .monitored-link:hover {
    color: var(--brand-primary, #5a2d9e);
}
.social-monitored-row .monitored-actions {
    margin-left: auto;
    flex-shrink: 0;
}

/* ========================================================================
   Notification Banners (replaces legacy .notice/.noticealert GridView)
   ======================================================================== */
.bh-notification {
    padding: 12px 16px;
    background-color: var(--bg-subtle, #fafafa);
    border-left: 5px solid #7f7f84;
    border-radius: 4px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    animation: bh-notification-slide-down 0.3s ease-out;
}
.bh-notification-Info { border-left-color: var(--brand-primary, #3d1a6f); }
.bh-notification-Warning { border-left-color: var(--brand-accent, #fdb913); }
.bh-notification-Danger { border-left-color: var(--brand-danger, #ed174c); }
.bh-notification-content { flex: 1; }
.bh-notification-dismiss {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-muted, #999);
    font-size: 1.2em;
    padding: 4px 8px;
    flex-shrink: 0;
}
.bh-notification-dismiss:hover { color: var(--text-primary, #333); }
.bh-notification.dismissing {
    animation: bh-notification-slide-up 0.3s ease-in forwards;
}
@keyframes bh-notification-slide-down {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes bh-notification-slide-up {
    from { opacity: 1; max-height: 200px; margin-bottom: 8px; }
    to { opacity: 0; max-height: 0; margin-bottom: 0; padding: 0 16px; overflow: hidden; }
}

/* ========================================================================
   SMART KPI Seeding Banner
   Used in CampaignBuilder KPI tab to suggest AI-generated KPI targets
   ======================================================================== */
.smart-kpi-seed-banner {
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc))) 0%, var(--bg-subtle, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0))) 100%);
    border: 1px solid var(--brand-accent, #fdb913);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 20px;
}

.smart-kpi-seed-banner h6 {
    color: var(--text-primary, #333);
    font-weight: 700;
    margin-bottom: 12px;
}

.smart-kpi-seed-banner .smart-context {
    font-size: 0.85em;
    color: var(--text-body, #555);
    background: rgba(255,255,255,0.6);
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 15px;
    max-height: 80px;
    overflow-y: auto;
}

.smart-kpi-seed-section {
    margin-bottom: 15px;
}

.smart-kpi-seed-section h6 {
    font-size: 0.85em;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-secondary, #666);
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}

.smart-kpi-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e0e0e0);
    border-radius: 8px;
    margin-bottom: 8px;
    transition: all 0.3s ease;
}

.smart-kpi-card .kpi-type {
    font-weight: 600;
    color: var(--text-primary, #333);
    min-width: 180px;
}

.smart-kpi-card .kpi-target-input {
    width: 100px;
    padding: 4px 8px;
    border: 1px solid var(--border-strong, #ccc);
    border-radius: 4px;
    font-size: 0.9em;
    text-align: right;
    background: var(--bg-surface, #fff);
    color: var(--text-primary, #333);
}

.smart-kpi-card .kpi-rationale {
    flex: 1;
    font-size: 0.8em;
    color: var(--text-muted, #777);
    font-style: italic;
}

.smart-kpi-card .kpi-actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.smart-kpi-card.accepted {
    background: var(--status-success-bg, #f0faf0);
    border-color: var(--status-success, #28a745);
    opacity: 0.7;
    pointer-events: none;
}

.smart-kpi-card.accepted::after {
    content: 'Added';
    font-size: 0.75em;
    color: var(--status-success, #28a745);
    font-weight: 600;
}

.smart-kpi-card.dismissed {
    opacity: 0;
    max-height: 0;
    padding: 0;
    margin: 0;
    border: none;
    overflow: hidden;
    transition: all 0.3s ease;
}

/* Outcome Evidence Prompting */
.outcome-evidence-banner {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 16px;
    background: linear-gradient(135deg, var(--bg-gold-tint, var(--bg-gold-tint, var(--bg-gold-tint, #fff5dc))) 0%, var(--bg-subtle, var(--bg-gold-tint, var(--bg-gold-tint, #fffbf0))) 100%);
    border: 1px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 0.9em;
    color: var(--text-primary, #333);
}
.outcome-evidence-banner i {
    color: var(--brand-accent, #fdb913);
    margin-top: 2px;
}
.outcome-needs-actual {
    border-left: 3px solid var(--brand-accent, #fdb913) !important;
}
.outcome-hint {
    font-size: 0.82em;
    color: var(--text-secondary, #666);
    font-style: italic;
}
.outcome-hint i {
    color: var(--brand-accent, #fdb913);
}

/* Planning Readiness Badge -- neutral muted info strip, brand-aligned gold accent */
.planning-readiness-badge {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 10px 16px;
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-default, #e5e7eb);
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    font-size: 0.85em;
}
.readiness-item {
    display: flex;
    align-items: center;
    gap: 4px;
}
.readiness-label {
    font-weight: 600;
    color: var(--text-primary, #333);
}
.readiness-value {
    font-weight: 700;
}
.readiness-detail {
    font-size: 0.85em;
    color: var(--text-muted, #999);
}
/* Inside a profile-card body, drop the chrome -- the card already provides it. */
.profile-card-body > .planning-readiness-badge {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

/* Campaign Lens 2-col pipeline: funnel SVG sits in the right column on lg+, stacks below on smaller. */
.bh-lens-pipeline {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-left: 1px dashed var(--border-default, #e5e7eb);
    padding-left: 16px;
}
.bh-lens-pipeline-img {
    max-width: 100%;
    height: auto;
    display: block;
}
.bh-lens-pipeline-caption {
    font-size: 0.78rem;
    color: var(--text-muted, #6b7280);
    text-align: center;
    margin: 8px 0 0;
    font-style: italic;
    max-width: 320px;
}
@media (max-width: 991px) {
    .bh-lens-pipeline {
        border-left: 0;
        border-top: 1px dashed var(--border-default, #e5e7eb);
        padding-left: 0;
        padding-top: 16px;
        margin-top: 12px;
    }
}

/* Retainer-context meta strip (BRIEF tab): status / type / date-range chips,
   absorbed 2026-05-19 from the retired Strategy>Campaign Brief sub-tab. */
.bh-retainer-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    padding: 4px 4px 12px;
    border-bottom: 1px dashed var(--border-default, #e5e7eb);
    margin-bottom: 10px;
    font-size: 0.82rem;
}
.bh-retainer-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-primary, #1f2937);
}
.bh-retainer-meta-label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: var(--text-muted, #9ca3af);
}

/* ========================================================================
   Planning Readiness Tiles (CampaignBuilder Outcomes + SMART tabs)
   Two .bh-kpi.bh-kpi--dense tiles with progress segments + named pills.
   ======================================================================== */
.bh-readiness-row {
    margin-bottom: 0;
}
.bh-readiness-tile {
    text-align: left !important;
    padding: 0.65rem 0.95rem !important;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bh-readiness-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: var(--text-secondary, #6b7280);
}
.bh-readiness-label i {
    color: var(--brand-primary, #3d1a6f);
}
.bh-readiness-fraction {
    line-height: 1;
    font-family: inherit;
}
.bh-readiness-num {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--brand-primary, #3d1a6f);
}
.bh-readiness-denom {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-muted, #9ca3af);
}
/* SMART segments: thin pills, filled for met / hollow for pending */
.bh-readiness-segments {
    display: flex;
    gap: 4px;
    margin-top: 2px;
}
.bh-readiness-seg {
    flex: 1;
    height: 8px;
    border-radius: 4px;
    background: var(--bg-subtle, #f0f0f0);
    border: 1px solid var(--border-default, #e5e7eb);
    transition: background 0.2s ease;
}
.bh-readiness-seg.is-met {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
}
/* Barcelona pills: tiny chips with name; outlined for pending, solid + check for met */
.bh-readiness-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 2px;
}
.bh-readiness-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    background: transparent;
    border: 1px solid var(--border-default, #d1d5db);
    color: var(--text-muted, #9ca3af);
}
.bh-readiness-pill.is-met {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.bh-readiness-pill i {
    font-size: 0.62rem;
}
.bh-readiness-sub {
    font-size: 0.7rem;
    color: var(--text-muted, #9ca3af);
    margin-top: 2px;
}

/* ---- Barcelona BP1-3 Checkpoint (tile 2 specialisation) ---- */
.bh-bp-fraction-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #9ca3af);
    margin-left: 6px;
    font-weight: 600;
}
.bh-bp-rows {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 4px;
}
.bh-bp-row {
    display: grid;
    grid-template-columns: 18px 32px 1fr auto;
    gap: 6px;
    align-items: center;
    padding: 3px 0;
    font-size: 0.74rem;
}
.bh-bp-row-state {
    font-size: 0.95rem;
    text-align: center;
}
.bh-bp-row-state.full { color: var(--status-success, #28a745); }
.bh-bp-row-state.partial { color: var(--brand-accent, #fdb913); }
/* Empty/incomplete BP: a clean, muted hollow ring drawn in CSS (not the far
   fa-circle glyph, which read as a dashed/dotted focus outline). Pairs with the
   solid green fa-check-circle used for completed BPs -- same circle family, just
   unfilled = "this step is not done yet". */
.bh-bp-row-state.empty {
    display: block;
    width: 0.82em;
    height: 0.82em;
    border: 0.13em solid var(--border-strong, #cccccc);
    border-radius: 50%;
    box-sizing: border-box;
    justify-self: center;
}
.bh-bp-row-code {
    font-weight: 800;
    font-size: 0.7rem;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
    padding: 2px 6px;
    border-radius: 4px;
    text-align: center;
}
.bh-bp-row-name {
    color: var(--text-primary, #1f2937);
    font-weight: 600;
}
.bh-bp-row--empty .bh-bp-row-name {
    color: var(--text-muted, #9ca3af);
    font-weight: 500;
}
.bh-bp-row-artefacts {
    display: flex;
    gap: 4px;
    justify-self: end;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.bh-bp-artefact {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 600;
    background: transparent;
    border: 1px solid var(--border-default, #d1d5db);
    color: var(--text-muted, #9ca3af);
}
.bh-bp-artefact.is-met {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.bh-bp-artefact i { font-size: 0.55rem; }

/* Celebration state: 3/3 BPs covered -- sing and dance about Barcelona alignment */
.bh-bp-checkpoint.is-complete {
    background: linear-gradient(135deg, var(--bg-gold-tint, #fff5dc) 0%, var(--bg-surface, #fff) 60%);
    border-left-color: var(--status-success, #28a745) !important;
}
.bh-bp-trophy {
    display: inline-block;
    color: var(--brand-accent, #fdb913);
    margin-left: 6px;
    animation: bh-bp-trophy-pop 0.4s ease 0.1s both;
}
@keyframes bh-bp-trophy-pop {
    0% { transform: scale(0); opacity: 0; }
    60% { transform: scale(1.3); opacity: 1; }
    100% { transform: scale(1); }
}
.bh-bp-celebrate {
    margin-top: 6px;
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--status-success-bg, #e9f7ee);
    color: var(--status-success, #146c2e);
    font-size: 0.74rem;
    font-weight: 600;
    border-left: 3px solid var(--status-success, #28a745);
}
.bh-bp-celebrate i { color: var(--brand-accent, #fdb913); }
.bh-bp-celebrate-next {
    font-weight: 500;
    color: var(--text-secondary, #4b5563);
    display: block;
    margin-top: 2px;
    font-size: 0.7rem;
}

/* Mobile: stack the two readiness tiles full-width and drop the BP artefact
   pills onto their own row so the Barcelona checkpoint chips (Objectives /
   Audience / KPIs / Strategy) are never clipped off the right edge. */
@media (max-width: 768px) {
    .bh-readiness-row .bh-readiness-tile { flex: 1 1 100%; }
    .bh-bp-row { grid-template-columns: 18px 30px 1fr; }
    .bh-bp-row-name { min-width: 0; }
    .bh-bp-row-artefacts {
        grid-column: 1 / -1;
        justify-self: start;
        justify-content: flex-start;
        padding-left: 54px;
    }
}

/* ========================================
   Pitching Strategy v2 -- 2026-05-20
   Single continuous editable surface with autosave + AI assist
   ======================================== */
.bh-strategy-v2 {
    /* No max-width cap: fill the strategy .container so Pitching matches the
       gutter/width of every other Story Builder tab (Brief/SMART/Outcomes/Project
       Plan). The pane chrome SSOT (#myTabs + .tab-content > .tab-pane) already bounds it. */
    max-width: none;
    margin: 0;
    padding: 0.5rem 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Status bar -- autosave (left) + AI quota (right) */
/* Consolidated AI action row (replaced 3 stacked bands 2026-07-10) */
.bh-strategy-actionbar { margin-bottom: 1rem; }
.bh-strategy-actionbar .profile-card-body { padding: 0.85rem 1rem; }
.bh-strategy-actionbar-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
}
.bh-strategy-actionbar-cta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.bh-strategy-actionbar-hint {
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
    max-width: 24rem;
    line-height: 1.3;
}
.bh-strategy-actionbar-status {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.bh-strategy-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.2;
    transition: color 0.2s ease, background 0.2s ease;
}
.bh-strategy-status-chip i { font-size: 12px; }
/* Autosave states -- match EditingSuite .autosave-status palette */
.bh-strategy-status-chip.autosave-idle   { color: var(--text-secondary, #6c757d); }
.bh-strategy-status-chip.autosave-saving { color: #0d6efd; }
.bh-strategy-status-chip.autosave-saved  { color: #198754; }
.bh-strategy-status-chip.autosave-error  { color: var(--status-danger, #dc3545); }
/* Autosave is a silent contract -- idle shows only a muted icon, no "ready" noise */
.bh-strategy-status-chip span:empty { display: none; }
#strategyAutosaveStatus.autosave-idle { opacity: 0.6; }
/* Quota chip variant */
.bh-quota-chip {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.bh-quota-chip.bh-quota-low { background: #fff4d8; color: #8a5a00; }
.bh-quota-chip.bh-quota-exhausted { background: #fde7ea; color: #b3001b; }

/* Read-only Brief context line (under the action row) */
.bh-strategy-actionbar-context {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 1rem;
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--border-default, #eee);
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
}
.bh-strategy-context-group {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.bh-strategy-context-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #6c757d);
}
.bh-strategy-context-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.bh-strategy-context-empty { font-style: italic; }

/* AI generate button (sits in the action row) */
.bh-strategy-ai-hero-button {
    font-size: 1rem;
    font-weight: 600;
    padding: 0.65rem 1.6rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.bh-strategy-ai-cost {
    display: inline-block;
    background: rgba(255,255,255,0.25);
    color: inherit;
    font-size: 0.7rem;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 0.4rem;
}
/* Inline section "Suggest" button */
.bh-strategy-ai-suggest {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.bh-strategy-ai-suggest.is-loading { pointer-events: none; opacity: 0.7; }

/* Section spacing -- profile-cards already self-style */
.bh-strategy-section { margin: 0; }
.bh-strategy-help {
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
    margin: 0 0 0.5rem;
}
.bh-strategy-field-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #6c757d);
    margin-bottom: 0.25rem;
}
.bh-strategy-input { font-size: 0.9rem; }

/* Outlet tier blocks */
.bh-strategy-tier-block {
    padding: 0.75rem 0;
    border-bottom: 1px dashed var(--border-default, #dee2e6);
}
.bh-strategy-tier-block:last-child { border-bottom: 0; padding-bottom: 0.25rem; }
.bh-strategy-tier-block:first-of-type { padding-top: 0.25rem; }
.bh-strategy-tier-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.4rem;
}
.bh-strategy-tier-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.4rem;
    min-height: 1.2rem;
}
/* Empty tier: drop the stark "No outlets selected" line and let the Add button
   become a friendly full-width add-tile -- keyboard-accessible, mirrors the warmer
   empty-state treatment on the SMART tab. Reverts to a small inline button once
   outlets are added (selector only matches while the chip row is :empty). */
.bh-strategy-tier-chips:empty { min-height: 0; margin-bottom: 0; }
.bh-strategy-tier-chips:empty::before { content: none; }
.bh-strategy-tier-chips:empty + .bh-strategy-tier-add {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.75rem;
    border-style: dashed;
}
.bh-strategy-tier-add {
    font-size: 0.8rem;
    padding: 0.2rem 0.6rem;
}

/* Selected outlet chip = entity chip (squarish purple tint, per 2026-05-20 spec) made removable.
   The remove X was a raw <button>; style it to match the canonical .bh-cpick-chip-remove pattern.
   Scoped to .bh-strategy-tier-chip / .bh-entity-chip-x so other entity chips are untouched. */
.bh-strategy-tier-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: 0;
    padding: 3px 6px 3px 10px;
    line-height: 1.4;
    font-size: 0.8rem;
    max-width: 100%;
}
.bh-strategy-tier-chip-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-entity-chip-x {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: inherit;
    opacity: 0.65;
    cursor: pointer;
    line-height: 1;
    font-size: 0.95rem;
    padding: 0 3px;
    border-radius: 3px;
    transition: color 0.12s ease, opacity 0.12s ease, background-color 0.12s ease;
}
.bh-entity-chip-x:hover,
.bh-entity-chip-x:focus {
    color: var(--brand-danger, #ed174c);
    opacity: 1;
    background: rgba(237, 23, 76, 0.12);
    outline: none;
}

/* Channel mix */
.bh-strategy-channel-mix {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}
.bh-strategy-channel-option {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    cursor: pointer;
    font-size: 0.9rem;
}
.bh-strategy-channel-option input[type="radio"] { margin: 0; }
.bh-strategy-channel-exclusive {
    max-width: 200px;
    display: none;
}
.bh-strategy-channel-exclusive.is-visible {
    display: inline-block;
}

/* Sequencing & cadence */
.bh-strategy-cadence-wrap { margin-top: 0.85rem; }
.bh-strategy-cadence-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}
.bh-strategy-cadence-custom { margin-top: 0.4rem; }

/* Footer */
.bh-strategy-footer {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-default, #dee2e6);
}

/* Advanced tag (existing pattern, just in case it isn't already styled) */
.bh-strategy-section .bh-advanced-tag {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--bg-slate-tint, #f1f0f4);
    color: var(--text-secondary, #6c757d);
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 0.4rem;
    vertical-align: middle;
}

/* Outlet picker modal */
.bh-strategy-outlet-search { margin: 0 0 0.75rem; }
.bh-strategy-outlet-results {
    max-height: 50vh;
    overflow-y: auto;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 4px;
    background: var(--bg-surface, #fff);
}
.bh-strategy-outlet-result {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--border-default, #dee2e6);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    font-size: 0.9rem;
}
.bh-strategy-outlet-result:last-child { border-bottom: 0; }
.bh-strategy-outlet-result:hover,
.bh-strategy-outlet-result:focus {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
}
.bh-strategy-outlet-result .bh-strategy-outlet-meta {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--text-secondary, #6c757d);
}
.bh-strategy-outlet-empty {
    padding: 1rem;
    text-align: center;
    color: var(--text-secondary, #6c757d);
    font-size: 0.85rem;
    font-style: italic;
}
/* Tier filter chips (soft default to the tier being added; "All tiers" widens) */
.bh-strategy-outlet-tierfilter { margin: 0 0 0.6rem; }
/* Tier badge inside a result row + the "showing all tiers" note */
.bh-strategy-outlet-result .bh-strategy-outlet-tierbadge {
    flex: 0 0 auto;
    margin: 0;
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
}
.bh-strategy-outlet-note {
    padding: 0.4rem 0.75rem;
    font-size: 0.78rem;
    color: var(--text-secondary, #6c757d);
    background: var(--bg-subtle, #f6f4fb);
    border-bottom: 1px solid var(--border-default, #dee2e6);
}
[data-theme="dark"] .bh-strategy-outlet-note {
    background: var(--bg-subtle, #1a1a1a);
    border-bottom-color: var(--border-default, #2a2a2a);
}
/* Multi-select result rows: checkbox + name + (Added) marker */
.bh-strategy-outlet-result { margin: 0; }
.bh-strategy-outlet-check { flex: 0 0 auto; margin: 0; cursor: pointer; }
.bh-strategy-outlet-result.is-added { cursor: default; opacity: 0.65; }
.bh-strategy-outlet-result.is-added:hover { background: transparent; color: inherit; }
.bh-strategy-outlet-added {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
[data-theme="dark"] .bh-strategy-outlet-added { color: var(--brand-primary, #a76bdf); }

/* Responsive */
@media (max-width: 768px) {
    .bh-strategy-actionbar-main { flex-direction: column; align-items: stretch; }
    .bh-strategy-actionbar-status { justify-content: flex-start; }
    .bh-strategy-channel-mix { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
    .bh-strategy-channel-exclusive { max-width: 100%; }
}

/* Dark mode overrides */
[data-theme="dark"] .bh-quota-chip {
    background: var(--bg-purple-tint, #1e1430);
    color: var(--brand-primary, #a76bdf);
}
[data-theme="dark"] .bh-strategy-status-chip.autosave-saving { color: #6ea8ff; }
[data-theme="dark"] .bh-strategy-status-chip.autosave-saved  { color: #4ade80; }
[data-theme="dark"] .bh-strategy-tier-block { border-bottom-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-strategy-footer { border-top-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-strategy-outlet-results {
    background: var(--bg-surface, #141414);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .bh-strategy-outlet-result { border-bottom-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-strategy-outlet-result:hover,
[data-theme="dark"] .bh-strategy-outlet-result:focus {
    background: var(--bg-purple-tint, #38304d);
    color: var(--brand-primary, #a76bdf);
}
[data-theme="dark"] .bh-strategy-section .bh-advanced-tag {
    background: var(--bg-slate-tint, #1c1a22);
    color: var(--text-secondary, #b0a8c8);
}

/* ========================================================================
   Stakeholder Intake (Strategy Intake P1 -- CampaignBuilder STRATEGY)
   Composer + recipient list + client-side preview. Dark-aware via tokens.
   ======================================================================== */
.bh-intake-table th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-secondary, #6c757d);
    border-top: none;
}
.bh-intake-table td { vertical-align: middle; font-size: 0.85rem; }
.bh-intake-role {
    display: inline-block;
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
    border-radius: 10px;
    padding: 2px 9px;
    font-size: 0.72rem;
    font-weight: 700;
}
.bh-intake-chip {
    display: inline-block;
    border-radius: 10px;
    padding: 2px 9px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.bh-intake-chip-ok    { background: var(--status-success-bg, #e9f7ee); color: var(--status-success, #198754); }
.bh-intake-chip-warn  { background: var(--status-warning-bg, #fff3e0); color: var(--status-warning, #b8650a); }
.bh-intake-chip-info  { background: var(--status-info-bg, #e8f1fb); color: var(--status-info, #1565c0); }
.bh-intake-chip-muted { background: var(--bg-slate-tint, #eef0f4); color: var(--text-secondary, #6c757d); }

.bh-intake-rollup {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0.5rem 0 1.25rem;
    font-size: 0.85rem;
    color: var(--text-secondary, #6c757d);
}
.bh-intake-rollup-bar {
    flex: 0 0 160px;
    height: 10px;
    border-radius: 6px;
    background: var(--bg-muted, #e9ecef);
    overflow: hidden;
}
.bh-intake-rollup-bar > i {
    display: block;
    height: 100%;
    background: var(--status-success, #28a745);
    transition: width 0.3s ease;
}
.bh-intake-synth-btn { margin-left: auto; }

.bh-intake-composer {
    border-top: 1px dashed var(--border-default, #e3e3ea);
    padding-top: 1rem;
    margin-top: 0.5rem;
}
.bh-intake-composer-head {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.6rem;
}
.bh-intake-comp-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-primary, #333);
    margin: 0.4rem 0;
}
.bh-intake-comp-count {
    display: inline-block;
    background: var(--bg-slate-tint, #eef0f4);
    color: var(--text-secondary, #6c757d);
    border-radius: 10px;
    padding: 1px 8px;
    font-size: 0.7rem;
    font-weight: 700;
    margin-left: 6px;
}
.bh-intake-comp-hint {
    display: block;
    font-weight: 400;
    font-size: 0.76rem;
    color: var(--text-muted, #6b7280);
    margin-top: 2px;
}
.bh-intake-comp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 4px 14px;
    margin-bottom: 0.75rem;
}
.bh-intake-comp-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    margin: 0;
}
.bh-intake-composer-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.bh-intake-preview {
    border: 1px solid var(--border-default, #e3e3ea);
    border-radius: 8px;
    background: var(--bg-subtle, #f8f9fa);
    padding: 12px 14px;
    margin-bottom: 0.75rem;
}
.bh-intake-preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.4rem;
}
.bh-intake-preview-note {
    font-size: 0.78rem;
    color: var(--text-secondary, #6c757d);
    margin-bottom: 0.6rem;
}
.bh-intake-preview-q { margin-bottom: 0.5rem; }
.bh-intake-preview-q-label { font-weight: 600; color: var(--text-primary, #333); font-size: 0.85rem; }
.bh-intake-preview-q-hint { font-size: 0.76rem; color: var(--text-muted, #6b7280); }

.bh-intake-linkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    background: var(--status-success-bg, #e9f7ee);
    border: 1px solid var(--status-success, #198754);
    border-radius: 8px;
    padding: 8px 12px;
    color: var(--status-success, #198754);
    font-weight: 600;
    font-size: 0.85rem;
}
.bh-intake-linkbox-input {
    flex: 1 1 240px;
    min-width: 0;
    font-size: 0.8rem;
    font-family: monospace;
}

/* Dark mode: soft tints + surfaces (light tints above would wash out) */
[data-theme="dark"] .bh-intake-role { background: var(--bg-purple-tint, #38304d); color: var(--brand-primary, #a76bdf); }
[data-theme="dark"] .bh-intake-composer { border-top-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-intake-preview { background: var(--bg-subtle, #1a1a1a); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-intake-chip-ok    { background: rgba(74, 222, 128, 0.15); color: #4ade80; }
[data-theme="dark"] .bh-intake-chip-warn  { background: rgba(224, 130, 10, 0.18); color: #f0a437; }
[data-theme="dark"] .bh-intake-chip-info  { background: rgba(110, 168, 255, 0.15); color: #6ea8ff; }
[data-theme="dark"] .bh-intake-chip-muted { background: var(--bg-slate-tint, #1c1a22); color: var(--text-secondary, #b0a8c8); }
[data-theme="dark"] .bh-intake-comp-count { background: var(--bg-slate-tint, #1c1a22); color: var(--text-secondary, #b0a8c8); }
[data-theme="dark"] .bh-intake-linkbox { background: rgba(74, 222, 128, 0.12); border-color: #4ade80; color: #4ade80; }

/* ---- Compose CTA + wizard (wizard lives inside a modal) ---- */
.bh-intake-compose-cta {
    border-top: 1px dashed var(--border-default, #e3e3ea);
    padding-top: 1rem;
    margin-top: 0.5rem;
}
.bh-wiz { margin: 0; }
.bh-wiz-head {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.85rem;
}
[data-theme="dark"] .bh-intake-compose-cta { border-top-color: var(--border-default, #2a2a2a); }
/* Stepper */
.bh-wiz-steps {
    display: flex;
    list-style: none;
    margin: 0 0 1.35rem;
    padding: 0;
}
.bh-wiz-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    position: relative;
    color: var(--text-secondary, #6c757d);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-align: center;
}
.bh-wiz-step::before {
    content: "";
    position: absolute;
    top: 14px;
    left: -50%;
    width: 100%;
    height: 2px;
    background: var(--border-default, #e3e3ea);
    z-index: 0;
}
.bh-wiz-step:first-child::before { display: none; }
.bh-wiz-step-n {
    position: relative;
    z-index: 1;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bg-card, #fff);
    border: 2px solid var(--border-default, #e3e3ea);
    color: var(--text-secondary, #6c757d);
    font-size: 0.85rem;
}
.bh-wiz-step.is-done .bh-wiz-step-n { background: var(--brand-primary, #3d1a6f); border-color: var(--brand-primary, #3d1a6f); color: #fff; }
.bh-wiz-step.is-done::before { background: var(--brand-primary, #3d1a6f); }
.bh-wiz-step.is-active { color: var(--brand-primary, #3d1a6f); }
.bh-wiz-step.is-active .bh-wiz-step-n {
    background: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 4px rgba(253, 185, 19, 0.25);
}
/* Panels */
.bh-wiz-panel { display: none; }
.bh-wiz-panel.is-active { display: block; }
.bh-wiz-title { font-size: 1.05rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); margin: 0 0 0.25rem; }
.bh-wiz-sub { font-size: 0.85rem; color: var(--text-secondary, #6c757d); margin: 0 0 0.9rem; }
/* Radio Day quick-start -- a tile inside the role grid (MediaCast preset). display:contents lets the
   server Panel wrapper drop out so the button becomes a real grid item. Dashed gold marks it as a
   preset, not a person-role. Higher specificity (.bh-wiz-role.bh-wiz-quickstart-card) beats the base
   .bh-wiz-role border/selected rules regardless of source order. */
.bh-wiz-quickstart { display: contents; }
.bh-wiz-role.bh-wiz-quickstart-card { border-style: dashed; border-color: var(--brand-accent, #fdb913); }
.bh-wiz-role.bh-wiz-quickstart-card.is-selected {
    border-style: solid;
    border-color: var(--brand-accent, #fdb913);
    background: var(--bg-gold-tint, #fff5dc);
    box-shadow: inset 0 0 0 1px var(--brand-accent, #fdb913);
}
/* Role cards (step 1) */
.bh-wiz-roles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 0.6rem;
    margin-top: 0.35rem;
}
.bh-wiz-role {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    text-align: left;
    padding: 0.7rem 0.85rem;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e3e3ea);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    color: var(--text-primary, #333);
}
.bh-wiz-role > i { color: var(--brand-primary, #3d1a6f); font-size: 1.05rem; }
.bh-wiz-role-t { font-weight: 700; font-size: 0.9rem; color: var(--brand-primary, #3d1a6f); }
.bh-wiz-role-d { font-size: 0.75rem; color: var(--text-muted, #6b7280); line-height: 1.3; }
.bh-wiz-role:not(.is-selected):hover {
    border-color: var(--brand-accent, #fdb913);
    background: var(--bg-gold-tint, #fff5dc);
    box-shadow: 0 2px 6px rgba(61, 26, 111, 0.08);
}
.bh-wiz-role.is-selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
    box-shadow: inset 0 0 0 1px var(--brand-primary, #3d1a6f);
}
/* Component groups (step 2) */
.bh-wiz-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.85rem; }
.bh-wiz-group {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e3e3ea);
    border-radius: 10px;
    padding: 0.7rem 0.85rem;
}
.bh-wiz-group-h {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.5rem;
}
.bh-wiz-group-items { display: flex; flex-direction: column; gap: 0.45rem; }
.bh-wiz-comp {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0;
    cursor: pointer;
    font-weight: 400;
}
.bh-wiz-comp input { margin-top: 0.2rem; }
.bh-wiz-comp-body { display: flex; flex-direction: column; }
.bh-wiz-comp-t { font-weight: 600; font-size: 0.85rem; color: var(--text-primary, #333); }
.bh-wiz-comp-d { font-size: 0.74rem; color: var(--text-muted, #6b7280); line-height: 1.3; }
/* Review (step 3) */
.bh-wiz-summary {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e3e3ea);
    border-radius: 10px;
    padding: 0.85rem 1rem;
    margin-bottom: 0.85rem;
}
.bh-wiz-sum-row { display: flex; gap: 0.75rem; padding: 0.3rem 0; align-items: baseline; }
.bh-wiz-sum-k { flex: 0 0 110px; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-secondary, #6c757d); }
.bh-wiz-sum-v { flex: 1 1 auto; }
.bh-wiz-review-actions { margin-bottom: 0.85rem; }
/* Footer nav */
.bh-wiz-foot { display: flex; align-items: center; gap: 0.5rem; margin-top: 1rem; }
.bh-wiz-foot-spacer { flex: 1 1 auto; }
/* Preview modal meta line */
.bh-intake-pv-meta { font-size: 0.95rem; margin-bottom: 0.5rem; }

/* Dark mode */
[data-theme="dark"] .bh-wiz { border-top-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-wiz-step::before { background: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-wiz-step-n { background: var(--bg-surface, #141414); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-wiz-role,
[data-theme="dark"] .bh-wiz-group,
[data-theme="dark"] .bh-wiz-summary { background: var(--bg-subtle, #1a1a1a); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-wiz-role.is-selected { background: var(--bg-purple-tint, #38304d); }

/* ---- Composer frame chips (deliverables + channels-in-play) ---- */
.bh-intake-frame-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }

/* ---- Synthesis & review modal ---- */
.bh-syn-intro { font-size: .85rem; color: var(--text-secondary, #6c757d); margin-bottom: .9rem; }
.bh-syn-conflict-banner {
    background: var(--status-warning-bg, #fff3e0);
    border: 1px solid var(--status-warning, #e0820a);
    border-radius: 9px; padding: .6rem .85rem; margin-bottom: .85rem;
    color: var(--status-warning, #8a5300); font-weight: 600; font-size: .85rem;
}
.bh-syn-sources { font-size: .8rem; color: var(--text-secondary, #6c757d); margin-bottom: .85rem; }
.bh-syn-row {
    border: 1px solid var(--border-default, #e3e3ea); border-radius: 10px;
    padding: .65rem .8rem; margin-bottom: .7rem; background: var(--bg-card, #fff);
}
.bh-syn-row-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .4rem; }
.bh-syn-inc { display: inline-flex; align-items: center; gap: .4rem; margin: 0; font-weight: 600; cursor: pointer; }
.bh-syn-lab { font-weight: 700; color: var(--brand-primary, #3d1a6f); font-size: .88rem; }
.bh-syn-maps { margin-left: auto; font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted, #6c757d); }
.bh-syn-input { font-size: .85rem; }
.bh-syn-smart-row { display: flex; align-items: center; gap: .6rem; margin-top: .4rem; }
.bh-syn-smart-row .bh-syn-inc { flex: 0 0 130px; font-weight: 500; }
.bh-syn-kpi-row { display: flex; align-items: center; gap: .5rem; margin-bottom: .4rem; }
.bh-syn-kpi-row .si-kpi-type { flex: 1 1 auto; }
.bh-syn-kpi-row .si-kpi-target { flex: 0 0 110px; }
.bh-syn-conflicts { margin-top: .5rem; }
.bh-syn-conflict {
    background: var(--status-warning-bg, #fff3e0); border-radius: 7px;
    padding: .5rem .7rem; margin-bottom: .4rem; font-size: .82rem; color: var(--status-warning, #8a5300);
}
.bh-syn-conflict-src { color: var(--text-muted, #6c757d); }
[data-theme="dark"] .bh-syn-row { background: var(--bg-subtle, #1a1a1a); border-color: var(--border-default, #2a2a2a); }
[data-theme="dark"] .bh-syn-conflict-banner,
[data-theme="dark"] .bh-syn-conflict { background: rgba(224, 130, 10, 0.16); color: #f0a437; border-color: rgba(224, 130, 10, 0.4); }
.bh-rc-row { border: 1px solid var(--border-color, #e3e3e3); border-radius: 8px; padding: .75rem; margin-bottom: .75rem; }
.bh-rc-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.bh-rc-diverge { color: var(--status-warning-text, #8a5a00); font-size: .78rem; }
.bh-rc-grid { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: .75rem; }
.bh-rc-col-lab { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted, #777); margin-bottom: .25rem; }
.bh-rc-now-val { font-size: .85rem; white-space: pre-wrap; }
.bh-rc-now-val.bh-rc-empty { color: var(--text-muted, #999); font-style: italic; }
.bh-rc-pos { display: block; font-size: .85rem; margin-bottom: .25rem; cursor: pointer; }
.bh-rc-pos-src { color: var(--text-muted, #777); }
.bh-rc-keep, .bh-rc-ignore { color: var(--text-muted, #555); }
.bh-rc-collapsed { margin-top: .5rem; font-size: .82rem; color: var(--text-muted, #777); }
@media (max-width: 768px) { .bh-rc-grid { grid-template-columns: 1fr; } }
[data-theme="dark"] .bh-rc-row { background: var(--bg-subtle, #1a1a1a); border-color: var(--border-default, #2a2a2a); }

/* ========================================================================
   Quick-start KPI Archetype Grid (CampaignBuilder Outcomes tab)
   Replaces single-select dropdown with click-to-apply tile picker.
   ======================================================================== */
.bh-archetype-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}
.bh-archetype-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 12px 14px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-default, #e5e7eb);
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
    color: var(--text-primary, #333);
}
.bh-archetype-card > i {
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
}
.bh-archetype-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--brand-primary, #3d1a6f);
}
.bh-archetype-blurb {
    font-size: 0.78em;
    color: var(--text-muted, #6b7280);
    line-height: 1.3;
}
/* Hover only flips chrome on INACTIVE tiles -- active tiles keep their purple state */
.bh-archetype-card:not(.is-active):hover {
    border-color: var(--brand-accent, #fdb913);
    background: var(--bg-gold-tint, #fff5dc);
    box-shadow: 0 2px 6px rgba(61, 26, 111, 0.08);
    transform: translateY(-1px);
}
.bh-archetype-card:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 2px;
}
/* Active = unmistakable: stronger purple-tint bg, 2px brand-primary border + gold top-stripe,
   check badge top-left, bolder name. Font-family stack matches the rest of the codebase
   (engagement-design-system.css:327) -- site loads FA 7 Pro; "Font Awesome 5 Free" alone
   is NOT loaded so the glyph rendered as a square box. */
.bh-archetype-card.is-active {
    border: 2px solid var(--brand-primary, #3d1a6f);
    padding: 11px 13px; /* compensate for the extra 1px border */
    background: #e1d4ff; /* stronger than --bg-purple-tint, still light */
    box-shadow: 0 2px 6px rgba(61, 26, 111, 0.12);
    position: relative;
}
[data-theme="dark"] .bh-archetype-card.is-active {
    background: #2a1d4a;
}
.bh-archetype-card.is-active .bh-archetype-name {
    font-weight: 800;
    color: var(--brand-primary, #3d1a6f);
}
.bh-archetype-card.is-active > i {
    color: var(--brand-primary, #3d1a6f);
}
/* Check badge top-left: confirms selection at a glance */
.bh-archetype-card.is-active::before {
    content: '\f00c'; /* FA check */
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    position: absolute;
    top: -9px;
    left: -9px;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    font-size: 0.78rem;
    color: var(--text-on-dark, #fff);
    background: var(--brand-primary, #3d1a6f);
    border: 2px solid var(--brand-accent, #fdb913);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}
/* Click-to-remove affordance on active tiles: × top-right, gentle until hover */
.bh-archetype-card.is-active::after {
    content: '\f00d'; /* FA times */
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    position: absolute;
    top: 6px;
    right: 8px;
    font-size: 0.75rem;
    color: var(--text-muted, #9ca3af);
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease;
}
.bh-archetype-card.is-active:hover {
    background: #d4c0ff;
    transform: translateY(-1px);
}
.bh-archetype-card.is-active:hover::after {
    opacity: 1;
    color: var(--status-danger, #dc3545);
}
.bh-archetype-card.is-loading {
    opacity: 0.6;
}
.bh-archetype-card[disabled] {
    cursor: progress;
}

/* KPI editor row (SSOT, 2026-07-08; status dot + compact meter 2026-07-09). Namespaced .bh-kpicard-* to
   avoid the global .kpi-* (Default dashboard) and .bh-kpi (KPI tile SSOT) families. TIGHT single-line row:
   icon + name (left), then fixed-width Current + Target slots, a compact progress meter, an always-present
   status dot, and delete (right). The old full-WIDTH base progress bar was replaced by a short bounded
   meter because a coloured full-bleed rule read as a section-heading underline (George, 2026-07-09); a
   grey dot marks "no score yet". Fixed slots + the ever-present dot keep the columns aligned. Theme-aware. */
.bh-kpicard { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.35rem 0.55rem; border-bottom: 1px solid var(--border-subtle, #f0f0f0); }
.bh-kpicard:last-child { border-bottom: 0; }
.bh-kpicard-name { font-weight: 600; color: var(--text-primary, #333); font-size: 0.85rem; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bh-kpicard-name i { color: var(--brand-accent, #fdb913); }
.bh-kpicard-values { display: flex; align-items: center; gap: 0.3rem; font-size: 0.82rem; flex: 0 0 auto; }
/* Fixed-width value slots so the Current number, "auto" tag and Target box hold the same columns on every
   row regardless of value length or auto/manual mode. Content is left-aligned so each value sits by its own
   label and the "auto" tag never crowds the Target label. */
.bh-kpicard-cur { display: inline-flex; align-items: center; justify-content: flex-start; gap: 0.3rem; min-width: 7rem; }
.bh-kpicard-tgt { display: inline-flex; align-items: center; justify-content: flex-start; min-width: 7rem; }
/* Quiet, compact "auto" tag sitting snug with its value. */
.bh-kpicard-auto { font-size: 0.68rem; padding: 1px 6px; }
.bh-kpicard-rag { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: 0 0 auto; }
.bh-kpicard-rag.green { background: var(--status-success, #28a745); }
.bh-kpicard-rag.amber { background: var(--status-warning, #ffc107); }
.bh-kpicard-rag.red { background: var(--status-danger, #dc3545); }
.bh-kpicard-rag.grey { background: var(--text-muted, #adb5bd); opacity: 0.45; }
/* Compact progress meter -- a short bounded gauge (grey track + coloured fill = progress toward target).
   Deliberately bounded so it reads as a bar chart, never a full-width heading rule. Grey status = empty. */
.bh-kpicard-meter { display: inline-block; width: 90px; height: 6px; border-radius: 6px; background: var(--bg-muted, #e9ecef); overflow: hidden; flex: 0 0 auto; }
.bh-kpicard-meter-fill { display: block; height: 100%; border-radius: 6px; transition: width 0.3s ease; }
.bh-kpicard-meter-fill.green { background: var(--status-success, #28a745); }
.bh-kpicard-meter-fill.amber { background: var(--status-warning, #ffc107); }
.bh-kpicard-meter-fill.red { background: var(--status-danger, #dc3545); }
.bh-kpicard-meter-fill.grey { background: transparent; }
/* Red is reserved for STATUS (the meter + dot) in this row, so keep the delete NEUTRAL at rest -- otherwise
   a red status bar and a red delete button sit side by side and are hard to read. It turns solid red on
   hover/focus like the standard destructive action. Scoped to .bh-kpicard so delete buttons elsewhere are
   unchanged (row-action SSOT preserved off this surface). */
.bh-kpicard .action-btn-danger { background: transparent; color: var(--text-muted, #6c757d); margin-left: 0.4rem; }
.bh-kpicard .action-btn-danger:hover, .bh-kpicard .action-btn-danger:focus-visible { background: var(--status-danger, #dc3545); color: var(--text-on-dark, #fff); }
/* Roomier number inputs (Current / Target) so they are comfortable to read and edit, and wide enough to
   show multi-million targets (e.g. an Impressions (OTS) / coverage-views target of 5,000,000). */
.bh-kpicard-values input.form-control-sm { width: 100px !important; height: 30px; padding: 3px 8px; }

/* ========================================================================
   Strategic Plan card (Story Builder > STRATEGY > Pitching Strategy)
   Rebuilt 2026-05-19: structured sections, hero Primary Angle, conditional Risk.
   ======================================================================== */
/* Sections render as compact cards (not dashed-divided rows). Smaller RTEs, less vertical bloat. */
.bh-strategy-edit {
    padding-bottom: 80px; /* room for sticky footer */
}
.bh-strategy-edit .bh-strategy-section {
    padding: 12px 14px;
    margin-bottom: 10px;
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-subtle, #f0f0f0);
    border-radius: 8px;
}
.bh-strategy-section-title {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 4px;
}
.bh-strategy-section-title i {
    color: var(--brand-accent, #fdb913);
}
/* RTE sizing intentionally NOT overridden -- BHRichTextEditor uses platform standard
   height across every consumer. If the strategy form feels tall, the answer is accordion
   or 2-column layout (Fix 2/3), not custom RTE chrome. */
/* Primary Angle input: hero treatment in edit mode */
.bh-strategy-angle-input {
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    color: var(--brand-primary, #3d1a6f) !important;
    background: var(--bg-cream, #fffbf0) !important;
    border: 1px solid var(--border-default, #e5e7eb) !important;
    border-left: 4px solid var(--brand-accent, #fdb913) !important;
    padding: 12px 14px !important;
    height: auto !important;
    line-height: 1.4 !important;
}
.bh-strategy-angle-input:focus {
    background: var(--bg-surface, #fff) !important;
    border-color: var(--brand-primary, #3d1a6f) !important;
    border-left-color: var(--brand-accent, #fdb913) !important;
    box-shadow: 0 0 0 3px var(--bg-purple-tint, #f0ebf7) !important;
}
/* Risk section gets a subtle warning tint */
.bh-strategy-risk {
    background: var(--bg-gold-tint, #fff5dc) !important;
    border-left: 3px solid var(--brand-accent, #fdb913) !important;
}
.bh-strategy-risk .bh-strategy-section-title i {
    color: var(--status-danger, #dc3545);
}
/* Sticky save footer: pins to viewport bottom while form scrolls past */
.bh-strategy-footer {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    margin: 16px -14px -14px; /* bleed to edge of parent card body */
    background: var(--bg-surface, #fff);
    border-top: 1px solid var(--border-default, #e5e7eb);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);
}
.bh-strategy-footer .ml-auto {
    margin-left: auto !important;
}

/* Read-only view */
.bh-strategy-view-angle {
    background: linear-gradient(135deg, var(--bg-purple-tint, #f0ebf7) 0%, var(--bg-surface, #fff) 70%);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 14px;
}
.bh-strategy-view-angle-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-primary, #3d1a6f);
    opacity: 0.7;
    margin-bottom: 4px;
}
.bh-strategy-view-angle-label i {
    color: var(--brand-accent, #fdb913);
}
.bh-strategy-view-angle-text {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary, #1f2937);
    line-height: 1.4;
}
.bh-strategy-view-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 768px) {
    .bh-strategy-view-grid { grid-template-columns: 1fr; }
}
.bh-strategy-view-block {
    padding: 10px 14px;
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-subtle, #f0f0f0);
    border-radius: 6px;
}
.bh-strategy-view-block-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 6px;
}
.bh-strategy-view-block-title i {
    color: var(--brand-accent, #fdb913);
}
.bh-strategy-view-block-body {
    font-size: 0.88rem;
    color: var(--text-primary, #1f2937);
}
.bh-strategy-view-kv-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #9ca3af);
}
.bh-strategy-view-kv-value {
    font-weight: 600;
    margin-left: 6px;
    color: var(--text-primary, #1f2937);
}
/* Risk view block: gold tint + alert icon colour */
.bh-strategy-view-risk {
    grid-column: 1 / -1;
    background: var(--bg-gold-tint, #fff5dc);
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.bh-strategy-view-risk .bh-strategy-view-block-title i {
    color: var(--status-danger, #dc3545);
}

/* ========================================================================
   Compact Inbound-Qualitative Sentiment Strip (replaces 3-column block)
   Four equal cells with vertical dividers, dense typography.
   ======================================================================== */
.bh-qual-summary-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
    padding: 6px 0 12px;
    border-bottom: 1px dashed var(--border-default, #e5e7eb);
    margin-bottom: 10px;
}
.bh-qual-summary-cell {
    flex: 1 1 0;
    min-width: 160px;
    padding: 4px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    border-left: 1px solid var(--border-subtle, #f0f0f0);
}
.bh-qual-summary-cell:first-child {
    border-left: 0;
    padding-left: 4px;
}
.bh-qual-summary-cell-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #9ca3af);
    font-weight: 600;
}
.bh-qual-summary-cell-value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.05;
}
.bh-qual-summary-cell-sub {
    font-size: 0.72rem;
    color: var(--text-muted, #9ca3af);
}
/* Inline mini-breakdown bars for Pos/Neu/Neg */
.bh-qual-breakdown-mini {
    display: flex;
    height: 8px;
    width: 100%;
    border-radius: 4px;
    overflow: hidden;
    background: var(--bg-subtle, #f0f0f0);
    margin-top: 2px;
}
.bh-qual-breakdown-mini > span {
    display: block;
    height: 100%;
}
.bh-qual-breakdown-legend {
    display: flex;
    gap: 8px;
    font-size: 0.68rem;
    color: var(--text-muted, #9ca3af);
    margin-top: 2px;
}
.bh-qual-breakdown-legend > span {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.bh-qual-breakdown-legend > span::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: currentColor;
}
@media (max-width: 768px) {
    .bh-qual-summary-cell {
        flex: 1 1 50%;
        border-left: 0;
        border-top: 1px solid var(--border-subtle, #f0f0f0);
        padding-top: 8px;
    }
    .bh-qual-summary-cell:first-child,
    .bh-qual-summary-cell:nth-child(2) {
        border-top: 0;
    }
}
/* ---- Dark Mode: Public Marketing Page Overrides ---- */

/* Bug 1: Home hero note text invisible on dark bg */
[data-theme="dark"] .bs-hero-note {
    color: #a76bdf !important;
}

/* Bug 2: Plans comparison table dark mode */
[data-theme="dark"] .bs-features-section .table-bordered {
    background: #141414 !important;
}
[data-theme="dark"] .bs-features-section .table-bordered td {
    color: #cccccc !important;
    border-color: #2a2a2a !important;
}
[data-theme="dark"] .bs-features-section .table-bordered td[style*="background: var(--bg-subtle, #f8f9fa)"],
[data-theme="dark"] .bs-features-section .table-bordered td[style*="background:var(--bg-subtle, #f8f9fa)"] {
    background: #1a1a1a !important;
}

/* Bug 3: Plans differentiator carousel dark mode */
[data-theme="dark"] .bs-plans-carousel p {
    color: rgba(255, 255, 255, 0.85) !important;
}
[data-theme="dark"] .bs-pc-arrow {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
}

/* Bug 4: QuickScore tier badge dark mode */
[data-theme="dark"] .qs-tier-1 {
    background: #2a1a3e !important;
    color: #a76bdf !important;
    border-color: #7c4daf !important;
}
[data-theme="dark"] .qs-tier-2 {
    background: #1a2a3e !important;
    color: #6db3f2 !important;
    border-color: #3d7ec7 !important;
}
[data-theme="dark"] .qs-tier-3 {
    background: #2a2510 !important;
    color: #d4a824 !important;
    border-color: #d4a824 !important;
}
[data-theme="dark"] .qs-tier-4 {
    background: #1a1a1a !important;
    color: #909090 !important;
    border-color: #3a3a3a !important;
}

/* Bug 5: QuickScore framing note dark mode */
[data-theme="dark"] .qs-framing-note {
    background: #1a1a2e !important;
    color: #b0b0b0 !important;
    border-left-color: #7c4daf !important;
}

/* Bug 6: QuickScore DB badge dark mode */
[data-theme="dark"] .qs-db-badge {
    background: #1a2e1a !important;
    color: #4caf50 !important;
}

/* QuickScore amber CQI number dark mode */
[data-theme="dark"] .qs-cqi-number.amber { color: #ffd54f !important; }

/* QuickScore component cards dark mode */
[data-theme="dark"] .qs-component-card {
    background: #141414 !important;
    border-color: #2a2a2a !important;
}
[data-theme="dark"] .qs-panel {
    background: #141414 !important;
    border-color: #2a2a2a !important;
}
[data-theme="dark"] .qs-panel-list li {
    color: #cccccc !important;
    border-bottom-color: #2a2a2a !important;
}

/* Plans comparison table dark mode */
.bs-compare-category {
    background: var(--bg-subtle, #f8f9fa);
}
[data-theme="dark"] .bs-compare-category {
    background: var(--bg-subtle, #1e1e1e) !important;
    color: var(--text-primary, #e0e0e0) !important;
}
.bs-compare-footer {
    color: var(--text-secondary, #666);
}
[data-theme="dark"] .bs-compare-footer {
    color: var(--text-secondary, #b0b0b0) !important;
}
[data-theme="dark"] .bs-compare-footer a {
    color: #a76bdf !important;
}

/* Contact page dark mode */
.bs-contact-address {
    color: var(--brand-primary, #3d1a6f);
}
[data-theme="dark"] .bs-contact-address {
    color: var(--text-secondary, #b0b0b0) !important;
}
[data-theme="dark"] .bs-contact-address i {
    color: #a76bdf !important;
}

/* ==========================================================================
   MediaClips page (MC-4/MC-5)
   ========================================================================== */

/* KPI Stats Cards */
.media-stats {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
    position: relative;
}
.media-stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 10px;
    padding: 1rem 1.25rem;
    flex: 1;
    min-width: 140px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    text-align: center;
}
.media-stat-card .stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
}
.media-stat-card .stat-label {
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.media-stat-card.success { border-left-color: var(--status-success, #28a745); }
.media-stat-card.info { border-left-color: var(--status-info, #17a2b8); }
.media-stat-card.warning { border-left-color: var(--brand-accent, #fdb913); }

/* .stats-dismiss-btn REMOVED 2026-07-20: this was the SECOND, conflicting definition
   (absolute here vs flex-flow earlier in the file); the later one won and pages
   compensated inline. Both are gone -- use data-bh-stats-bar. */

/* Modern Pager - targets the DataPager rendered output */
[id*="DataPager1"] {
    display: flex; justify-content: center; gap: 0.25rem; padding: 1.5rem 0;
}
[id*="DataPager1"] a.media-pager-btn,
[id*="DataPager1"] a {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 0.5rem;
    border-radius: 8px; font-size: 0.875rem; font-weight: 500;
    text-decoration: none !important; transition: all 0.15s;
    border: 1px solid var(--border-default, #dee2e6); color: var(--brand-primary, #3d1a6f); background: var(--bg-surface, #fff);
}
[id*="DataPager1"] a:hover { background: #f3e8ff; border-color: var(--brand-primary, #3d1a6f); }
[id*="DataPager1"] span.active-page {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 0.5rem;
    border-radius: 8px; font-size: 0.875rem; font-weight: 600;
    background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff) !important; border: 1px solid var(--brand-primary, #3d1a6f);
}
/* .stats-bar-collapsed REMOVED 2026-07-20: retired by the dismissable-stats-bar
   consolidation. Use data-bh-stats-bar. */

/* Filter Bar (MC-6) -- single tidy bar; Clear sits flush at the end, never orphaned */
.media-filter-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1.75rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e7e3ef);
    border-radius: 12px;
    padding: 0.85rem 1rem;
}
.media-filter-bar .filter-controls {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-left: auto;
}
.media-filter-bar .filter-controls .date-range-group {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}
.media-filter-bar .filter-controls .date-range-group input[type="date"] {
    max-width: 155px;
    font-size: 0.875rem;
}
.media-filter-bar .filter-controls .date-range-group .date-separator {
    color: var(--text-secondary, #666);
    font-size: 0.8rem;
}
.btn-clear-filters {
    background: transparent;
    border: 1px solid var(--border-default, #dee2e6);
    color: var(--text-secondary, #666);
    border-radius: 8px;
    padding: 0.45rem 0.7rem;
    font-size: 0.82rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: all 0.15s;
    white-space: nowrap;
}
.btn-clear-filters:hover {
    border-color: var(--status-danger, #dc3545);
    color: var(--status-danger, #dc3545);
    background: rgba(220, 53, 69, 0.05);
}

/* MediaClips card grid + card (MC-6 redesign 2026-06-02) */
.mc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.25rem;
    align-items: stretch;
    padding-bottom: 1rem;
}
.mc-grid > .col-12 { grid-column: 1 / -1; } /* DataPager spans the full grid width */
.mc-card-col { display: flex; }
.media-clip-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e7e3ef);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(40,20,80,0.05);
    transition: box-shadow 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}
.media-clip-card:hover {
    box-shadow: 0 10px 28px rgba(40,20,80,0.14);
    transform: translateY(-3px);
    border-color: var(--brand-primary, #3d1a6f);
}

/* Two-zone media band: control row (in flow) on top, logo zone below -- overlap-proof */
.mc-card-media {
    position: relative;
    height: 150px;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at 30% 20%, rgba(253,185,19,0.10), transparent 60%),
        var(--bg-slate-tint, #f1f0f4);
    border-bottom: 1px solid var(--border-default, #e7e3ef);
    overflow: hidden;
}
/* Top control row -- pill + actions live in normal flow so a logo can never paint over them */
.mc-card-media-bar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.6rem 0.6rem 0;
}
/* Logo fills the remaining space below the control row and is capped to it */
.mc-card-logo-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.6rem 0.6rem;
}
.mc-card-logo { max-width: 86%; max-height: 100%; object-fit: contain; display: block; }

/* Clip-type pill (left of the control row) */
.mc-type-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 60%;
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-accent, #fdb913);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
}
.mc-type-pill span { overflow: hidden; text-overflow: ellipsis; }

/* Action cluster (right of the control row) -- frosted so the round buttons read as one control */
.mc-card-actions {
    background: rgba(255,255,255,0.82);
    backdrop-filter: blur(6px);
    padding: 0.22rem;
    border-radius: 999px;
    box-shadow: 0 1px 5px rgba(40,20,80,0.10);
}
[data-theme="dark"] .mc-card-actions { background: rgba(20,20,20,0.6); }

/* Body */
.mc-card-body { flex: 1 1 auto; padding: 0.95rem 1.1rem 0.5rem; }
.mc-outlet-name {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin: 0 0 0.7rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.5em;
}
.mc-meta { display: grid; grid-template-columns: auto 1fr; row-gap: 0.4rem; column-gap: 0.9rem; font-size: 0.83rem; margin: 0; }
.mc-meta dt { color: var(--text-muted, #999); font-weight: 600; text-transform: uppercase; font-size: 0.68rem; letter-spacing: 0.4px; align-self: center; }
.mc-meta dd { margin: 0; color: var(--text-body, #555); font-weight: 500; }

/* Footer file chip (replaces the old bright-blue hyperlink) */
.mc-card-foot { padding: 0.7rem 1.1rem 1rem; margin-top: auto; }
.mc-file-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    max-width: 100%;
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--border-default, #e7e3ef);
    border-radius: 8px;
    padding: 0.4rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s;
}
.mc-file-chip:hover { border-color: var(--brand-accent, #fdb913); color: var(--brand-secondary, #5a2d82); text-decoration: none; }
.mc-file-chip .fname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ==========================================================================
   MWFeed page (MW-3)
   ========================================================================== */

.stat-card {
    background: var(--bg-surface, #fff);
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    border-left: 4px solid var(--brand-accent, #fdb913);
}
.stat-card .stat-value {
    font-size: 2rem;
    font-weight: bold;
    color: var(--brand-primary, #3d1a6f);
}
.stat-card .stat-label {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
    text-transform: uppercase;
}
.stat-card.sentiment-positive { border-left-color: var(--status-success, #28a745); background: var(--bg-surface, #fff); color: inherit; }
.stat-card.sentiment-neutral { border-left-color: var(--brand-accent, #fdb913); background: var(--bg-surface, #fff); color: inherit; }
.stat-card.sentiment-negative { border-left-color: var(--status-danger, #dc3545); background: var(--bg-surface, #fff); color: inherit; }

.sentiment-badge {
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
}
.sentiment-positive { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.sentiment-neutral { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.sentiment-negative { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }

.folder-card {
    background: var(--bg-surface, #fff);
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.2s;
}
.folder-card:hover {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 2px 8px rgba(253,185,19,0.2);
}
.folder-card.selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f8f5ff);
}
.folder-card .folder-name {
    font-weight: 600;
    color: var(--text-primary, #333);
}
.folder-name-link {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    cursor: pointer;
}
.folder-name-link:hover {
    color: var(--brand-magenta, #7d1d61);
    text-decoration: underline;
}
.folder-card .folder-count {
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}

.help-banner {
    background: linear-gradient(135deg, #3d1a6f 0%, #7d1d61 100%);
    color: var(--text-on-dark, #fff);
    padding: 15px 20px;
    border-radius: 8px;
    margin-bottom: 20px;
}
.help-banner a {
    color: var(--brand-accent, #fdb913);
}

.bulk-actions {
    background: var(--bg-purple-tint, #f0ebf7);
    padding: 10px 15px;
    border-radius: 8px;
    margin-bottom: 15px;
    display: none;
}
.bulk-actions.show {
    display: flex;
    align-items: center;
    gap: 15px;
}

.item-checkbox {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.mwfeed-action-btn {
    padding: 4px 8px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
}
.mwfeed-action-btn:hover {
    transform: scale(1.1);
}

.crm-status-linked { color: var(--status-success-text, #155724); }
.crm-status-cell .btn-sm {
    padding: 1px 6px;
    font-size: 0.7rem;
}

.mw-intro-banner {
    background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 50%, #7d1d61 100%);
    color: var(--text-on-dark, #fff);
    padding: 20px 25px;
    border-radius: 8px;
    margin-bottom: 20px;
    position: relative;
}
.mw-intro-banner h5 { color: var(--brand-accent, #fdb913); margin-bottom: 10px; }
.mw-intro-banner ol { padding-left: 20px; margin-bottom: 0; }
.mw-intro-banner ol li { margin-bottom: 6px; }
.mw-intro-banner .btn-dismiss {
    position: absolute;
    top: 10px;
    right: 15px;
    color: rgba(255,255,255,0.7);
    background: none;
    border: none;
    font-size: 1.2rem;
    cursor: pointer;
}
.mw-intro-banner .btn-dismiss:hover { color: var(--text-on-dark, #fff); }

.mw-coverage-cta {
    background: var(--status-info-bg, #e8f4fd);
    border: 1px solid #bee5eb;
    border-left: 4px solid var(--status-info, #17a2b8);
    border-radius: 6px;
    padding: 12px 18px;
    margin-top: 15px;
    margin-bottom: 15px;
}
.mw-coverage-cta a { color: var(--brand-primary, #3d1a6f); font-weight: 600; }
.mw-coverage-cta a:hover { color: var(--brand-magenta, #7d1d61); }

/* MWFeed dark mode overrides */
[data-theme="dark"] .mw-coverage-cta {
    background: var(--bg-subtle) !important;
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .mw-coverage-cta a {
    color: var(--brand-accent-soft, #a76bdf) !important;
}

/* MWFeed webhook config panel -- ensure header strong is readable in dark mode */
[data-theme="dark"] #webhookConfigPanel .card-body strong,
[data-theme="dark"] #webhookConfigPanel .card-body .btn-outline-secondary {
    color: var(--text-primary) !important;
}
[data-theme="dark"] #webhookConfigPanel .card-body .btn-outline-secondary {
    border-color: var(--border-default) !important;
}

/* MWFeed folders header -- use brand accent so it reads in dark mode */
[data-theme="dark"] #panelFolderList > .row h5,
[data-theme="dark"] #panelItemList > .row h5 {
    color: var(--text-primary) !important;
}

/* ─────────────────────────────────────────────────────────────
   CONTRAST GUARANTEE -- force dark text on bright bg in dark mode.
   Any element with gold/yellow/amber solid background must keep dark
   text (#333) in both modes; without this override the tokens flip
   --text-primary to #e8e8e8 (near-white) which is unreadable on gold.
   ───────────────────────────────────────────────────────────── */
[data-theme="dark"] .ic-toast.warning,
[data-theme="dark"] .calendar-setup-actions .btn-primary,
[data-theme="dark"] .top-engaged-card.gold .top-engaged-rank,
[data-theme="dark"] .top-engaged-card.silver .top-engaged-rank,
[data-theme="dark"] .add-contact-row .contact-interests mark,
[data-theme="dark"] .outlet-badge.type,
[data-theme="dark"] .profile-badge.type,
[data-theme="dark"] .social-quota-badge.quota-low {
    color: #333 !important;
}

/* === Briefing Card === */
.briefing-card { padding: 12px; border: 1px solid var(--border-default, #dddddd); border-radius: 6px; background: var(--bg-surface, #ffffff); margin: 8px 0; }
.briefing-card-empty { color: var(--text-muted, #999999); font-style: italic; padding: 8px; }
.briefing-card-header { margin-bottom: 8px; }
.briefing-card-name { font-weight: 600; font-size: 1.05em; color: var(--text-primary, #333333); margin: 0; }
.briefing-card-pub { color: var(--text-secondary, #666666); font-size: 0.9em; }
.briefing-card-email { margin: 6px 0; font-size: 0.95em; }
.briefing-card-bounce { font-size: 0.85em; }
.briefing-card-stats { color: var(--text-secondary, #666666); font-size: 0.9em; margin: 4px 0; }
.briefing-card-topics { margin: 6px 0; font-size: 0.9em; color: var(--text-secondary, #666666); }
.briefing-card-articles { margin-top: 10px; }
.briefing-card-articles-label { margin-bottom: 4px; }
.briefing-card-articles-list { list-style: none; padding-left: 0; margin: 0; }
.briefing-card-articles-list li { padding: 3px 0; font-size: 0.9em; line-height: 1.4; }
.briefing-card-article-date { color: var(--text-muted, #999999); font-family: monospace; font-size: 0.85em; margin-right: 6px; }
.briefing-card-article-pub { color: var(--text-muted, #999999); font-size: 0.85em; }
.briefing-card-articles-empty { font-style: italic; color: var(--text-muted, #999999); margin-top: 8px; font-size: 0.9em; }
.briefing-card-social { margin-top: 8px; font-size: 0.9em; }
.briefing-card-recent { margin-top: 4px; font-size: 0.85em; color: var(--text-secondary, #666666); }
.briefing-card-compact { padding: 8px; }
.briefing-card-compact .briefing-card-name { font-size: 0.95em; }

/* Expanded mode: two-column layout via .briefing-card-meta wrapper (left) + .briefing-card-articles (right) */
.briefing-card-expanded { display: grid; grid-template-columns: minmax(280px, 1fr) 1.4fr; gap: 4px 28px; align-items: start; }
.briefing-card-meta { display: flex; flex-direction: column; gap: 6px; }
.briefing-card-social { grid-column: 1 / -1; }
@media (max-width: 720px) { .briefing-card-expanded { grid-template-columns: 1fr; } }

/* Outlets list: inline pills (matches interest-badges pattern) */
.contact-outlets-section .contact-outlets-list { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.contact-outlets-list-items { display: contents; }
.outlet-mapping-item.outlet-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 4px; background: var(--bg-purple-tint, #f0ebf7); color: var(--brand-primary, #3d1a6f); font-size: 0.8rem; line-height: 1.5; }
.outlet-mapping-item.outlet-pill .outlet-info { display: inline-flex; align-items: center; gap: 4px; }
.outlet-mapping-item.outlet-pill .outlet-info i { color: var(--brand-primary, #3d1a6f); font-size: 0.85em; }
.outlet-mapping-item.outlet-pill .outlet-info strong { font-weight: 500; }
.outlet-mapping-item.outlet-pill .outlet-info .badge { font-size: 0.7em; padding: 2px 5px; }
.outlet-mapping-item.outlet-pill .outlet-state { color: var(--text-muted, #999); font-size: 0.85em; }
.outlet-mapping-item.outlet-pill .btn-remove-outlet { background: none; border: none; color: var(--status-danger, #dc3545); padding: 0 0 0 2px; font-size: 0.95em; cursor: pointer; opacity: 0.5; }
.outlet-mapping-item.outlet-pill .btn-remove-outlet:hover { opacity: 1; }

/* === Contact card reshape (2026-04-28) === */
.briefing-panel-header { font-size: 0.85rem; font-weight: 600; color: var(--text-secondary, #666666); margin: 12px 0 6px; text-transform: uppercase; letter-spacing: 0.5px; }
.briefing-panel-header i { color: var(--brand-accent, #fdb913); margin-right: 4px; }
.briefing-panel-container { margin-top: 4px; }
.contact-note-inline { font-size: 0.9em; padding: 6px 0; color: var(--text-body, #d4d4d4); }
.contact-note-inline em { color: var(--text-secondary, #999); margin-right: 4px; }
.add-special-note, .add-to-group { font-size: 0.85em; color: var(--text-secondary, #888); display: inline-block; padding: 4px 0; margin: 0 1.25rem 0.5rem 0; }
.add-special-note:hover, .add-to-group:hover { color: var(--accent, #fdb913); text-decoration: none; }

/* Shared add affordance for classification chips (outlets / interests / groups) */
.bh-add-chip { display: inline-flex; align-items: center; gap: 4px; background: none; border: 1px dashed var(--border-default, #ddd); color: var(--text-secondary, #666); padding: 2px 10px; border-radius: 4px; font-size: 0.8rem; cursor: pointer; text-decoration: none; }
.bh-add-chip:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); text-decoration: none; }

/* Interests / Tags panel -- Platform Intel (Gold + Default, read-only) + My Tags (tenant) zones,
   CRMOutlets contact card (JournoIntel Interests Taxonomy, 2026-07-16). Chips reuse the canonical
   .bh-entity-chip (already the SSOT for a compact entity chip) and .bh-format-chip
   (+.bh-format-chip-x, the bh-format-tags canonical tag-chip) -- no new chip control.
   .bh-entity-chip--removable / .bh-entity-chip-x remain the SSOT for a removable entity chip
   elsewhere (e.g. CampaignBuilder.aspx) but are NOT used on Platform Intel chips (2026-07-17,
   George card review): platform intel must not look tenant-removable. */
.contact-tags-zone { margin-bottom: 0.5rem; }
.contact-tags-zone:last-child { margin-bottom: 0; }
.contact-tags-subhead {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--text-secondary, #666);
    margin-bottom: 0.25rem;
}
.contact-tags-subhead i { color: var(--brand-primary, #3d1a6f); margin-right: 0.3rem; }
.contact-tags-chip-row { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin-bottom: 0.4rem; }
.bh-entity-chip--removable { display: inline-flex; align-items: center; gap: 0.3rem; padding-right: 4px; }
/* Platform Intel chip variants (2026-07-17, George card review): real Gold must read gold;
   Default (outlet-derived placeholder, no tracked articles yet) must read visibly weaker/
   provisional so it never masquerades as real intel. Both dark-mode safe via existing
   warm-gold / neutral tokens (theme-tokens.css already flips these -- no extra override needed). */
.contact-tag-chip--gold {
    background: var(--bg-gold-tint, #fff5dc);
    color: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--border-gold-soft, #e8dfa8);
    font-weight: 600;
}
.contact-tag-chip--default {
    background: transparent;
    color: var(--text-secondary, #666);
    border: 1px dashed var(--border-default, #ddd);
}
.contact-tags-add-row,
.contact-tags-custom-row { display: flex; gap: 0.35rem; max-width: 320px; margin-bottom: 0.35rem; }
.contact-tags-custom-row .contact-tag-custom-input { flex: 1 1 auto; }
.contact-tags-add-row .contact-tag-add-select { flex: 1 1 auto; }

/* Group picker menu: bounded + filterable (tenants can have hundreds of groups) */
.bh-group-menu { max-height: 340px; overflow-y: auto; min-width: 300px; padding-top: 0; }
.bh-group-menu .bh-group-menu-filter { position: sticky; top: 0; z-index: 1; background: var(--bg-surface, #fff); padding: 8px; border-bottom: 1px solid var(--border-light, #e9ecef); }
.bh-group-menu .dropdown-item { font-size: 0.85rem; padding: 0.3rem 0.9rem; }
/* While its group picker is open, the card must release the clip AND lift above later
   sibling cards in the grid -- otherwise the open menu (trapped in the card's hover-transform
   stacking context at z-index:auto) is painted over by cards that follow it in DOM order.
   position:relative with no offsets does not move the card; z-index is dropped on menu close. */
.crm-contact-card.bh-dropdown-open { overflow: visible; position: relative; z-index: 30; }


/* =============================================================================
   Buzzscribed Canonical Footer (.bs-footer)
   Single source of truth -- replaces inline <style> blocks in every master.
   3-column grid: brand left, optional middle (disclaimer / session info), links right.
   Branded purple gradient with gold accent strip works in light + dark mode.
============================================================================= */
.bs-footer {
    flex-shrink: 0;
    margin-top: auto;
    padding: 2rem 0 1.5rem;
    background: linear-gradient(180deg, #3d1a6f 0%, #2d1352 100%);
    background-clip: padding-box;
    color: #ffffff;
    position: relative;
    border-top: 5rem solid transparent;
}
.bs-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, #fdb913 30%, #fdb913 70%, transparent 100%);
}
.bs-footer-container {
    width: 100%;
    margin: 0;
    padding: 0 2.5rem;
}
.bs-footer-content {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    align-items: center;
    gap: 2.5rem;
    width: 100%;
}
.bs-footer-brand {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    text-align: left;
}
.bs-footer-wordmark {
    font-family: 'Outfit', 'Rubik', -apple-system, sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fdb913;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.bs-footer-wordmark::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fdb913;
    display: inline-block;
    box-shadow: 0 0 8px rgba(253, 185, 19, 0.6);
}
.bs-footer-copyright {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 0.02em;
}
.bs-footer-middle {
    font-size: 0.78rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
    padding: 0 1rem;
    margin: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.bs-footer-middle.bs-footer-disclaimer {
    font-size: 0.72rem;
    font-style: italic;
    color: rgba(255, 255, 255, 0.55);
}
.bs-footer-middle .bs-footer-user {
    color: inherit;
    font-weight: inherit;
    margin-left: 4px;
}
.bs-footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.4rem 1.25rem;
}
.bs-footer-link {
    font-size: 0.78rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition: color 0.18s ease;
}
.bs-footer-link:hover {
    color: #fdb913;
    text-decoration: none;
}
@media (max-width: 900px) {
    .bs-footer-content {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        text-align: center;
    }
    .bs-footer-brand {
        align-items: center;
        text-align: center;
    }
    .bs-footer-middle {
        border-left: none;
        border-right: none;
        padding: 0.75rem 0;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }
    .bs-footer-links {
        justify-content: center;
    }
}

/* Dark mode: footer background flips to black; gold accent strip retained */
[data-theme="dark"] .bs-footer {
    background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
    border-top: 5rem solid transparent;
}

/* ============================================================================
   Talent Triage UI -- banner + modal + row layout
   Used by Pages/CRM/Talent.aspx (TalentModule.js)
   ============================================================================ */

/* Clickable stat card (used on the "Mentioned" card to open triage modal) */
.crm-stat-card-clickable {
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.crm-stat-card-clickable:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(61, 26, 111, 0.18);
}

/* Banner above search bar */
.talent-triage-banner {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    margin: 0 1rem 1rem 1rem;
    border-radius: 10px;
    background: var(--surface-elev, #f6f1ff);
    border: 1px solid var(--border-light, #e0d4f5);
    color: var(--text-body, #2d2438);
}
.talent-triage-banner-icon {
    font-size: 1.4rem;
    color: var(--brand-primary, #3d1a6f);
    flex: 0 0 auto;
}
.talent-triage-banner-text {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.talent-triage-banner-sub {
    font-size: 0.85rem;
    color: var(--text-muted, #6b6280);
    margin-top: 0.1rem;
}
.talent-triage-banner-dismiss {
    color: var(--text-muted, #6b6280) !important;
    padding: 0.25rem 0.5rem !important;
    text-decoration: none !important;
}
.talent-triage-banner-dismiss:hover {
    color: var(--brand-primary, #3d1a6f) !important;
}
[data-theme="dark"] .talent-triage-banner {
    background: rgba(125, 87, 196, 0.08);
    border-color: rgba(125, 87, 196, 0.35);
    color: var(--text-body, #d4d4d4);
}

/* Modal */
.talent-triage-modal .body {
    padding: 1.25rem 1.5rem;
}
.talent-triage-help {
    background: var(--surface-elev, #f6f1ff);
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    padding: 0.6rem 0.9rem;
    border-radius: 6px;
    margin-bottom: 1rem;
    font-size: 0.9rem;
}
.talent-triage-help i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.4rem;
}
[data-theme="dark"] .talent-triage-help {
    background: rgba(125, 87, 196, 0.08);
    border-left-color: var(--brand-secondary, #b89cf2);
}

.talent-triage-toolbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.talent-triage-toolbar-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.talent-triage-toolbar-group .form-label {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-muted, #6b6280);
}
.talent-triage-toolbar-group select {
    min-width: 160px;
}
.talent-triage-toolbar-spacer {
    flex: 1 1 auto;
}
.talent-triage-bulk-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--surface-elev, #f6f1ff);
    padding: 0.4rem 0.75rem;
    border-radius: 8px;
}
[data-theme="dark"] .talent-triage-bulk-bar {
    background: rgba(125, 87, 196, 0.08);
}

/* Row */
.talent-triage-queue {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.triage-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    background: var(--card-bg, #fff);
    transition: border-color 0.12s ease;
}
.triage-row.selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--surface-elev, #f6f1ff);
}
[data-theme="dark"] .triage-row {
    background: var(--card-bg, #1f1933);
    border-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .triage-row.selected {
    background: rgba(125, 87, 196, 0.10);
    border-color: var(--brand-secondary, #b89cf2);
}
.triage-row-select {
    flex: 0 0 auto;
    padding-top: 0.3rem;
}
.triage-row-body {
    flex: 1 1 auto;
    min-width: 0;
}
.triage-row-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.triage-row-name {
    font-weight: 600;
    font-size: 1rem;
}
.triage-row-title {
    font-weight: 400;
    color: var(--text-muted, #6b6280);
    font-size: 0.9rem;
}
.triage-row-meta {
    font-size: 0.8rem;
    color: var(--text-muted, #6b6280);
}
.triage-mentions-badge {
    display: inline-block;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 10px;
    padding: 0.1rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
    margin-right: 0.4rem;
}
.triage-row-contact {
    margin-top: 0.35rem;
    font-size: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.triage-contact i {
    color: var(--text-muted, #6b6280);
    margin-right: 0.25rem;
}
.triage-contact-empty {
    color: var(--text-muted, #6b6280);
    font-style: italic;
}
.triage-merge-suggestion {
    margin-top: 0.4rem;
    font-size: 0.85rem;
    color: var(--text-muted, #6b6280);
    background: var(--surface-elev, #f6f1ff);
    border-radius: 6px;
    padding: 0.35rem 0.6rem;
}
.triage-merge-suggestion i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.25rem;
}
[data-theme="dark"] .triage-merge-suggestion {
    background: rgba(125, 87, 196, 0.10);
}
.triage-row-actions {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: stretch;
    min-width: 170px;
}
.triage-row-actions .btn {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .triage-row {
        flex-direction: column;
    }
    .triage-row-actions {
        flex-direction: row;
        flex-wrap: wrap;
        min-width: 0;
        width: 100%;
    }
    .triage-row-actions .btn {
        flex: 1 1 0;
    }
    .talent-triage-banner {
        flex-wrap: wrap;
    }
}

/* ============================================================================
   Talent Page Intro: info-box + welcome wizard
   ============================================================================ */

/* "?" help button in page-actions */
.talent-help-btn {
    color: var(--text-muted, #6b6280) !important;
    font-size: 1.2rem;
    text-decoration: none !important;
    padding: 0.25rem 0.5rem !important;
    line-height: 1;
}
.talent-help-btn:hover {
    color: var(--brand-primary, #3d1a6f) !important;
}

/* Inline info-box (always-on, dismissible per-session) */
.talent-info-box {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin: 0 0 1rem 0;
    border-radius: 10px;
    background: var(--surface-elev, #f6f1ff);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    color: var(--text-body, #2d2438);
    font-size: 0.92rem;
}
.talent-info-box-icon {
    flex: 0 0 auto;
    font-size: 1.4rem;
    color: var(--brand-primary, #3d1a6f);
}
.talent-info-box-text {
    flex: 1 1 auto;
    line-height: 1.5;
}
.talent-info-box-more {
    margin-left: 0.5rem;
    color: var(--brand-primary, #3d1a6f);
    text-decoration: underline;
    font-weight: 600;
    white-space: nowrap;
}
.talent-info-box-more:hover {
    color: var(--brand-secondary, #b89cf2);
}
.talent-info-box-dismiss {
    color: var(--text-muted, #6b6280) !important;
    padding: 0.25rem 0.5rem !important;
    text-decoration: none !important;
}
.talent-info-box-dismiss:hover {
    color: var(--brand-primary, #3d1a6f) !important;
}
[data-theme="dark"] .talent-info-box {
    background: rgba(125, 87, 196, 0.08);
    border-left-color: var(--brand-secondary, #b89cf2);
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .talent-info-box-more {
    color: var(--brand-secondary, #b89cf2);
}

/* Welcome wizard modal -- guided, not draggable/closable from header.
   Skip + Got-it in the footer are the user-facing close path. The fullscreen
   button is auto-injected by Site.Master into every .modalPopup .header; we
   suppress it here because a 4-step explainer doesn't need fullscreen. */
.talent-welcome-modal .header .bh-modal-fullscreen-btn,
.talent-welcome-modal .header .btn-close {
    display: none !important;
}
.talent-welcome-modal .body {
    padding: 1.5rem 1.75rem;
}
.welcome-steps-nav {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}
.welcome-step-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--border-light, #d8d3e3);
    transition: background-color 0.15s ease, transform 0.15s ease;
}
.welcome-step-dot.active {
    background: var(--brand-primary, #3d1a6f);
    transform: scale(1.15);
}
[data-theme="dark"] .welcome-step-dot {
    background: rgba(255, 255, 255, 0.18);
}
[data-theme="dark"] .welcome-step-dot.active {
    background: var(--brand-secondary, #b89cf2);
}

.welcome-step {
    display: none;
    text-align: center;
    padding: 0.5rem 0;
}
.welcome-step.active {
    display: block;
    animation: welcomeStepFade 0.18s ease-out;
}
@keyframes welcomeStepFade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
.welcome-step-icon {
    font-size: 2.5rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.75rem;
}
[data-theme="dark"] .welcome-step-icon {
    color: var(--brand-secondary, #b89cf2);
}
.welcome-step h4 {
    margin: 0 0 0.75rem 0;
    color: var(--page-title-color, #3d1a6f);
}
.welcome-step p {
    text-align: left;
    line-height: 1.55;
    margin-bottom: 0.75rem;
}
.welcome-step-points {
    text-align: left;
    padding-left: 1.25rem;
    margin: 0.5rem 0;
    line-height: 1.55;
}
.welcome-step-points li {
    margin-bottom: 0.4rem;
}
.welcome-step-tip {
    background: var(--surface-elev, #f6f1ff);
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    padding: 0.6rem 0.9rem;
    border-radius: 6px;
    text-align: left;
    margin-top: 0.75rem !important;
    font-size: 0.9rem;
}
.welcome-step-tip i {
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.4rem;
}
[data-theme="dark"] .welcome-step-tip {
    background: rgba(125, 87, 196, 0.10);
    border-left-color: var(--brand-secondary, #b89cf2);
}

.welcome-footer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}
.welcome-footer-spacer {
    flex: 1 1 auto;
}
[data-theme="dark"] .welcome-footer {
    border-top-color: rgba(255, 255, 255, 0.08);
}

@media (max-width: 768px) {
    .talent-info-box {
        flex-wrap: wrap;
    }
    .welcome-step-icon {
        font-size: 2rem;
    }
}

/* ========================================================================
   Reminders modal -- Site.Master PanelModalReminders
   Two sections (Overdue Story Activities + My Private Reminders) rendered
   by SiteMasterGrids.js. Brand purple+gold, dark-mode-safe via tokens.
   ======================================================================== */
#PanelModalReminders .body > h4 {
    color: var(--brand-primary, #3d1a6f);
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 1rem 0;
    padding: 0 0 0.5rem 0;
    border-bottom: 2px solid #fdb913;
}
#PanelModalReminders .body > h4 + #campaignRemindersBody,
#PanelModalReminders .body > h4 + #myRemindersBody {
    margin-bottom: 0.5rem;
}
#PanelModalReminders .body > h4 ~ h4 {
    margin-top: 2rem;
}
[data-theme="dark"] #PanelModalReminders .body > h4 {
    color: var(--page-title-color, #e5d9ff);
}

#PanelModalReminders #LBNewPersonalReminder {
    margin-bottom: 0.75rem;
}

.reminder-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.25rem;
    border-bottom: 1px solid var(--border-subtle, #e9e7ee);
}
.reminder-row:last-child {
    border-bottom: none;
}
[data-theme="dark"] .reminder-row {
    border-bottom-color: var(--border-subtle, #2c2c33);
}

.reminder-row .reminder-priority {
    flex: 0 0 auto;
    min-width: 36px;
    text-align: center;
}
.reminder-row .reminder-body {
    flex: 1 1 auto;
    min-width: 0;
}
.reminder-row .reminder-title {
    font-weight: 600;
    color: var(--text-primary, #2a2a2a);
    line-height: 1.35;
    word-break: break-word;
}
[data-theme="dark"] .reminder-row .reminder-title {
    color: var(--text-body, #d4d4d4);
}
.reminder-row .reminder-sub {
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
    margin-top: 0.15rem;
}
.reminder-row .reminder-due {
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
    margin-top: 0.25rem;
}
.reminder-row .reminder-due i {
    margin-right: 0.3rem;
}
.reminder-row .reminder-due-overdue {
    color: var(--status-danger, #c0392b);
}
.reminder-row .action-btn-group {
    flex: 0 0 auto;
}

/* Loader (shown during async load of either reminders section) */
.reminders-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.5rem 1rem;
    color: var(--text-secondary, #6c757d);
    font-size: 0.9rem;
}
.reminders-loader i {
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.1rem;
}
[data-theme="dark"] .reminders-loader i {
    color: var(--page-title-color, #e5d9ff);
}

/* Add / Edit Personal Reminder modals -- form styling for brand consistency.
   Sizing/resize handled natively via Width="90%" in markup + global
   .modalPopup.resizableModal styles + jQuery UI resizable. */
#PanelAddPersonalTask .body .form-label,
#PanelEditPersonalTask .body .form-label {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.4rem;
}
[data-theme="dark"] #PanelAddPersonalTask .body .form-label,
[data-theme="dark"] #PanelEditPersonalTask .body .form-label {
    color: var(--page-title-color, #e5d9ff);
}

/* Stack labels above inputs (full-width) so we don't waste 25% of the modal
   on a narrow label gutter. Each col becomes a full-width block. Multi-pair
   rows (Assigned To + Created By in Edit modal) collapse to four stacked
   blocks -- consistent shape, all fields use full width. */
#PanelAddPersonalTask .body .row.mb-3,
#PanelEditPersonalTask .body .row.mb-3 {
    display: block;
    margin-bottom: 1rem !important;
}
#PanelAddPersonalTask .body .row.mb-3 > [class*="col-"],
#PanelEditPersonalTask .body .row.mb-3 > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    padding-left: 0;
    padding-right: 0;
}
#PanelAddPersonalTask .body .row.mb-3 > [class*="col-"]:not(:first-child),
#PanelEditPersonalTask .body .row.mb-3 > [class*="col-"]:not(:first-child) {
    margin-top: 0.5rem;
}
/* Form inputs in reminder modals: full width, tighter padding, brand focus */
#PanelAddPersonalTask .body .form-control,
#PanelEditPersonalTask .body .form-control {
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 0.95rem;
}
#PanelAddPersonalTask .body .form-control:focus,
#PanelEditPersonalTask .body .form-control:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.15rem rgba(61, 26, 111, 0.15);
}

/* Save button -- override forbidden btn-success per ui-design-rules */
#PanelAddPersonalTask .btn-success,
#PanelEditPersonalTask .btn-success {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
    padding: 0.5rem 1.25rem;
    font-weight: 600;
}
#PanelAddPersonalTask .btn-success:hover,
#PanelEditPersonalTask .btn-success:hover,
#PanelAddPersonalTask .btn-success:focus,
#PanelEditPersonalTask .btn-success:focus {
    background: #5a2d9e;
    border-color: #5a2d9e;
    color: #fff;
    box-shadow: 0 0 0 0.15rem rgba(61, 26, 111, 0.25);
}

/* Stacked label-above-input layout for form modals -- mirrors
   PanelAddPersonalTask pattern (Site.Master). Markup keeps col-md-3/col-md-9
   for backwards compat; CSS forces each col to full-width block, eliminating
   the wasted left gutter visible on wide modals. */
#PanelModalAddPayment .body .form-label,
#PanelModalEditPayment .body .form-label,
#PanelAddNewContact .body .form-label,
#PanelCopytoGroup .body .form-label {
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.4rem;
}
[data-theme="dark"] #PanelModalAddPayment .body .form-label,
[data-theme="dark"] #PanelModalEditPayment .body .form-label,
[data-theme="dark"] #PanelAddNewContact .body .form-label,
[data-theme="dark"] #PanelCopytoGroup .body .form-label {
    color: var(--page-title-color, #e5d9ff);
}
#PanelModalAddPayment .body .row.mb-3,
#PanelModalEditPayment .body .row.mb-3,
#PanelAddNewContact .body .row.mb-3,
#PanelCopytoGroup .body .row.mb-3 {
    display: block;
    margin-bottom: 1rem !important;
}
#PanelModalAddPayment .body .row.mb-3 > [class*="col-"],
#PanelModalEditPayment .body .row.mb-3 > [class*="col-"],
#PanelAddNewContact .body .row.mb-3 > [class*="col-"],
#PanelCopytoGroup .body .row.mb-3 > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    padding-left: 0;
    padding-right: 0;
}
#PanelModalAddPayment .body .row.mb-3 > [class*="col-"]:not(:first-child),
#PanelModalEditPayment .body .row.mb-3 > [class*="col-"]:not(:first-child),
#PanelAddNewContact .body .row.mb-3 > [class*="col-"]:not(:first-child),
#PanelCopytoGroup .body .row.mb-3 > [class*="col-"]:not(:first-child) {
    margin-top: 0.25rem;
}
#PanelModalAddPayment .body .form-control,
#PanelModalEditPayment .body .form-control,
#PanelAddNewContact .body .form-control,
#PanelCopytoGroup .body .form-control {
    width: 100%;
}
#PanelModalAddPayment .body .form-control:focus,
#PanelModalEditPayment .body .form-control:focus,
#PanelAddNewContact .body .form-control:focus,
#PanelCopytoGroup .body .form-control:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 0.15rem rgba(61, 26, 111, 0.15);
}
#PanelModalAddPayment .body .container,
#PanelModalEditPayment .body .container,
#PanelAddNewContact .body .container {
    width: 100%;
    max-width: 100%;
}

/* BH Resource Allocator (shared slider component for AM + EngagementHub) */
.bh-resalloc-row {
    background: var(--bg-subtle, #f8f9fa);
    border-color: var(--border-subtle, #e9ecef) !important;
}
.bh-resalloc-row .bh-resalloc-name {
    font-weight: 600;
    font-size: 0.85rem;
}
.bh-resalloc-row .bh-resalloc-slider {
    accent-color: var(--brand-primary, #5d3fd3);
}
.bh-resalloc-row .bh-resalloc-pct,
.bh-resalloc-row .bh-resalloc-hours {
    font-variant-numeric: tabular-nums;
}
.bh-resalloc-empty {
    color: var(--text-muted, #6c757d);
    font-size: 0.85rem;
}

/* Signoff prompt banner (Engagement Hub Schedule tab) */
.bh-signoff-banner {
    background: linear-gradient(135deg, rgba(93,63,211,0.08), rgba(93,63,211,0.04));
    border: 1px solid rgba(93,63,211,0.25);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.bh-signoff-banner .bh-signoff-message {
    font-size: 0.9rem;
    flex: 1 1 auto;
}
.bh-signoff-banner .bh-signoff-message strong {
    color: var(--brand-primary, #5d3fd3);
}
.bh-signoff-banner .bh-signoff-actions {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}
[data-theme="dark"] .bh-signoff-banner {
    background: linear-gradient(135deg, rgba(143,113,242,0.12), rgba(143,113,242,0.06));
    border-color: rgba(143,113,242,0.35);
}

/* ============================================================
   Share Tools -- cards used by ShareGatedContent + SurveyForms
   SHARE tabs (2026-05-16)
   ============================================================ */
.bh-share-root { max-width: 760px; }
.bh-share-card {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.bh-share-card h6 {
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--text-primary, #333);
}
.bh-share-card .bh-share-hint {
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
}
.bh-share-row {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
    flex-wrap: wrap;
}
.bh-share-row > .form-control { flex: 1 1 280px; min-width: 0; }
.bh-share-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.85rem; }
.bh-share-row > textarea.form-control { resize: vertical; min-height: 70px; }
.bh-share-inline-label { flex: 0 0 auto; margin: 0; color: var(--text-secondary, #666); font-size: 0.85rem; }
.bh-share-chips { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.bh-share-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 500;
    background: var(--bg-muted, #f1f3f5);
    color: var(--text-primary, #333);
}
.bh-share-chip.ok { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.bh-share-chip.warn { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.bh-share-chip.danger { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }
.bh-share-qr { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.bh-share-qr-canvas {
    padding: 0.5rem;
    background: #fff;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    display: inline-block;
}
.bh-share-qr-canvas canvas,
.bh-share-qr-canvas img { display: block; }
.bh-share-copied { background: var(--status-success, #28a745) !important; border-color: var(--status-success, #28a745) !important; color: #fff !important; }
.bh-share-url-picker { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.bh-share-url-picker label {
    flex: 1 1 200px;
    margin: 0;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.bh-share-url-picker input[type="radio"] { margin-top: 0.25rem; }
.bh-share-url-picker label.selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--brand-primary-tint, rgba(61,26,111,0.06));
}
.bh-share-url-picker .bh-share-url-picker-title { font-weight: 600; font-size: 0.9rem; }
.bh-share-url-picker .bh-share-url-picker-desc { font-size: 0.8rem; color: var(--text-secondary, #666); }
[data-theme="dark"] .bh-share-card { background: var(--bg-surface, #1f2433); border-color: rgba(255,255,255,0.08); }
[data-theme="dark"] .bh-share-qr-canvas { background: #fff; }

/* Share/Embed mode switcher (2026-06-02): frames the SHARE vs EMBED toggle as a
   labelled segmented control so the 2-way switch is unmistakable. The cell
   surface/border/height now live in the global .bh-pill-nav (promoted 2026-06-02);
   only the survey-specific framing stays here. Tokens flip in theme-tokens.css so
   dark mode adapts automatically. */
.bh-share-mode {
    margin: 0 0 1rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-light, #e9ecef);
}
.bh-share-mode-title {
    font-weight: 700;
    font-size: 1rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.1rem;
}
.bh-share-mode-sub {
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
}
/* Survey framing only: two equal, centred wide cells. */
.bh-share-mode .bh-pill-nav .nav-link { min-width: 140px; justify-content: center; }
/* The share/embed tab body sits right under the switcher, so it must NOT inherit
   the global .tab-content purple border-top -- that line boxed the toggle in. The
   .bh-share-mode divider above already separates it. Scoped to this one body. */
.bh-share-mode + .tab-content { border-top: 0; background: transparent; }

/* Rendered link preview box -- mimics how an email recipient sees the link.
   Email-client default link colour for fidelity. */
.bh-share-preview {
    padding: 1rem 1.1rem;
    border: 1px dashed var(--border-strong, #ced4da);
    border-radius: 6px;
    background: var(--bg-subtle, #fafafa);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 0.95rem;
    color: var(--text-primary, #333);
    min-height: 48px;
    line-height: 1.4;
}
.bh-share-preview-label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary, #666);
    margin-bottom: 0.4rem;
    font-family: inherit;
}
.bh-share-preview a {
    color: #1155cc;
    text-decoration: underline;
}
[data-theme="dark"] .bh-share-preview { background: var(--bg-muted, #1e1e1e); border-color: rgba(255,255,255,0.18); }
[data-theme="dark"] .bh-share-preview a { color: #8ab4f8; }

/* =====================================================================
   Pitch-mode composer Tools (bh-pitch-tools.js): Start-from-template,
   Import and AI release assistant. Tokens keep it dark-mode safe.
   ===================================================================== */
.ep-pitch-tools { position: relative; display: flex; margin: 0 0 0.5rem 0; }
.ep-pitch-tools-menu { display: none; position: absolute; top: 100%; left: 0; z-index: 1050; min-width: 220px; margin-top: 4px; padding: 0.35rem; background: var(--bg-card, #ffffff); border: 1px solid var(--border-default, #e4e0ee); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,0.18); }
.ep-pitch-tools-menu.show { display: block; }
.ep-pitch-tools-item { display: flex; align-items: center; width: 100%; padding: 0.5rem 0.6rem; border-radius: 6px; color: var(--text-body, #333333); text-decoration: none; font-size: 0.88rem; cursor: pointer; }
.ep-pitch-tools-item:hover { background: var(--bg-subtle, #f4f5f7); color: var(--text-body, #333333); text-decoration: none; }

.ep-pt-list { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.5rem; }
.ep-pt-card { display: flex; align-items: center; gap: 0.75rem; width: 100%; text-align: left; padding: 0.7rem 0.85rem; border: 1px solid var(--border-default, #e4e0ee); border-radius: 10px; background: var(--bg-card, #ffffff); color: var(--text-body, #333333); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.ep-pt-card:hover { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-subtle, #f4f5f7); }
.ep-pt-card-ic { flex: 0 0 auto; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--bg-subtle, #f1ecf9); color: var(--brand-primary, #3d1a6f); }
.ep-pt-card-tx { display: flex; flex-direction: column; flex: 1 1 auto; }
.ep-pt-card-nm { font-weight: 600; font-size: 0.92rem; }
.ep-pt-card-ds { font-size: 0.8rem; color: var(--text-tertiary, #888888); }
.ep-pt-card-go { color: var(--text-tertiary, #b0a8c4); }

.ep-pi-tabs { display: flex; gap: 0.4rem; margin-bottom: 0.85rem; }
.ep-pi-tab { flex: 1 1 0; padding: 0.45rem 0.5rem; border: 1px solid var(--border-default, #e4e0ee); border-radius: 8px; background: var(--bg-card, #ffffff); color: var(--text-body, #555555); font-size: 0.82rem; font-weight: 600; cursor: pointer; }
.ep-pi-tab.active { background: var(--brand-primary, #3d1a6f); border-color: var(--brand-primary, #3d1a6f); color: #ffffff; }
.ep-pi-pane label { display: block; font-weight: 600; font-size: 0.85rem; margin-bottom: 0.3rem; }
.ep-pi-drop { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: 1.6rem; border: 2px dashed var(--border-strong, #ced4da); border-radius: 10px; background: var(--bg-subtle, #fafafa); color: var(--text-secondary, #666666); cursor: pointer; text-align: center; }
.ep-pi-drop:hover { border-color: var(--brand-primary, #3d1a6f); }
.ep-pi-drop.is-dragover { border-color: var(--brand-accent, #fdb913); background: var(--bg-gold-tint, #fff5dc); color: var(--brand-primary, #3d1a6f); }
.ep-pi-drop i { font-size: 1.6rem; color: var(--brand-primary, #3d1a6f); }
.ep-pi-status { margin-top: 0.85rem; font-size: 0.85rem; }
.ep-pi-status.ep-pi-error { color: var(--status-danger-text, #b02a37); }
.ep-pi-status.ep-pi-busy { color: var(--text-secondary, #666666); }

.ep-ai-opts { display: flex; gap: 0.6rem; margin-top: 0.6rem; }
.ep-ai-opts > div { flex: 1 1 0; }
.ep-ai-opts label { display: block; font-size: 0.78rem; font-weight: 600; margin-bottom: 0.2rem; }
.ep-ai-loading { margin: 0.75rem 0; font-size: 0.88rem; color: var(--text-secondary, #666666); }
.ep-ai-preview { margin-top: 0.85rem; padding: 0.85rem 1rem; border: 1px solid var(--border-default, #e4e0ee); border-radius: 10px; background: var(--bg-subtle, #fafafa); }
.ep-ai-pv-body { max-height: 260px; overflow-y: auto; font-size: 0.9rem; color: var(--text-body, #333333); }
.ep-ai-pv-actions { margin-top: 0.7rem; display: flex; gap: 0.5rem; }
.ep-ai-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.5rem; }
.ep-ai-sg { margin-bottom: 0.6rem; }
.ep-ai-chips { display: flex; flex-direction: column; gap: 0.4rem; }
.ep-ai-chip { text-align: left; padding: 0.5rem 0.7rem; border: 1px solid var(--border-default, #e4e0ee); border-radius: 8px; background: var(--bg-card, #ffffff); color: var(--text-body, #333333); font-size: 0.86rem; cursor: pointer; }
.ep-ai-chip:hover { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-subtle, #f4f5f7); }

@media (max-width: 768px) {
    .ep-ai-opts { flex-direction: column; }
}

.bh-share-toolbar {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 0.75rem;
}
.bh-share-toolbar .bh-share-toolbar-spacer { flex: 1; }
.bh-share-toolbar .btn-link {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-size: 0.85rem;
    padding: 0.25rem 0.5rem;
}
.bh-share-toolbar .btn-link:hover { text-decoration: underline; }

.bh-share-tip {
    margin-top: 0.75rem;
    padding: 0.6rem 0.75rem;
    background: var(--brand-primary-tint, rgba(61,26,111,0.05));
    border-radius: 6px;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    line-height: 1.4;
}
.bh-share-tip i { color: var(--brand-primary, #3d1a6f); margin-right: 0.35rem; }
[data-theme="dark"] .bh-share-tip { background: rgba(167,107,223,0.08); }

.bh-share-qr-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

/* Live demo slot inside the Embed card -- shows the actual rendered button or
   iframe so admins can see what they're picking before they ship it. */
.bh-share-demo {
    margin-top: 0.75rem;
    padding: 1rem;
    border: 1px dashed var(--border-light, #e9ecef);
    border-radius: 6px;
    background: var(--bg-subtle, #fafafa);
}
.bh-share-demo-label {
    display: block;
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    margin-bottom: 0.6rem;
}
.bh-share-demo-label i { color: var(--brand-primary, #3d1a6f); margin-right: 0.35rem; }
.bh-share-demo iframe {
    width: 100%;
    height: 360px;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    background: #fff;
    display: block;
}
.bh-share-demo .bh-share-demo-helper {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--text-secondary, #666);
    font-style: italic;
}
[data-theme="dark"] .bh-share-demo { background: var(--bg-muted, #1e1e1e); border-color: rgba(255,255,255,0.18); }
[data-theme="dark"] .bh-share-demo iframe { border-color: rgba(255,255,255,0.18); }

/* ============================================================================
   .bh-row-clickable -- generic table-row click affordance (2026-05-16)
   --------------------------------------------------------------------------
   Apply to <tr> to make the whole row open its detail view on click.
   Action buttons inside the row must call event.stopPropagation() so they
   don't double-fire. Cursor + hover tint match the page-action priority.
   ============================================================================ */
tr.bh-row-clickable { cursor: pointer; transition: background 0.12s ease; }
tr.bh-row-clickable:hover { background: var(--bg-purple-tint, #f0edf5); }
tr.bh-row-clickable:hover td { background: transparent; }
[data-theme="dark"] tr.bh-row-clickable:hover { background: rgba(199, 184, 236, 0.08); }

/* Row-opens-entity affordances (extend .bh-row-clickable / .pitch-list-row so the click target is
   obvious at rest, not only on hover). Used by the EDM campaign list, the EmailPitching pitch list and
   the SurveyForms list. --brand-primary flips to electric violet in dark mode (5.2:1 on #141414) and
   --text-muted flips too, so both stay readable.
   .bh-rowlink-title -- the row's primary name reads as a link (brand purple, bold, underline on hover).
   .bh-rowlink-chevron -- an always-visible muted ">" pinned at the row's right edge; darkens + nudges
     right on row hover. Only rows that actually open render the <i>. */
.bh-rowlink-title { color: var(--brand-primary, #3d1a6f); font-weight: 600; text-decoration: none; cursor: pointer; }
.bh-rowlink-title:hover, .bh-rowlink-title:focus { color: var(--brand-primary, #3d1a6f); text-decoration: underline; }
.bh-rowlink-chevron { color: var(--text-muted, #999); margin-left: 8px; font-size: 0.85rem; transition: color 0.15s, transform 0.15s; }
tr.bh-row-clickable:hover .bh-rowlink-chevron,
.pitch-list-row:hover .bh-rowlink-chevron { color: var(--brand-primary, #3d1a6f); transform: translateX(2px); }

/* ============================================================================
   .bh-outcome-btn -- stateful quick-log buttons in a row (2026-05-16)
   --------------------------------------------------------------------------
   Pattern: log one of N mutually-exclusive outcomes (positive/tentative/
   neutral/negative). Idle = light outline + outcome-coloured text. Click =
   sticky filled state via .is-logged co-class (data-driven, survives reload).
   Pair with .bh-row--logged-* on the parent row for ambient gradient border.
   Use-sites: PhonePitching (call outcomes), Sentiment tagging, Email triage,
   Coverage status -- anywhere a row needs "log the outcome" semantics.
   ============================================================================ */
.bh-outcome-group {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
}
.bh-outcome-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 999px;
    border: 1px solid currentColor;
    background: transparent;
    cursor: pointer;
    line-height: 1.2;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}
.bh-outcome-btn:hover:not(.is-logged) {
    background: rgba(0, 0, 0, 0.04);
    text-decoration: none;
}
.bh-outcome-btn--positive  { color: var(--status-success-text, #155724); }
.bh-outcome-btn--tentative { color: var(--status-warning-text, #856404); }
.bh-outcome-btn--neutral   { color: var(--text-secondary, #666); }
.bh-outcome-btn--negative  { color: var(--status-danger-text, #721c24); }

/* Logged (selected) state -- solid fill matching outcome colour */
.bh-outcome-btn.is-logged { pointer-events: none; opacity: 1 !important; }
.bh-outcome-btn.is-logged.bh-outcome-btn--positive  { background: #28a745; color: #fff; border-color: #28a745; }
.bh-outcome-btn.is-logged.bh-outcome-btn--tentative { background: #ffc107; color: var(--text-primary, #000); border-color: #ffc107; }
.bh-outcome-btn.is-logged.bh-outcome-btn--neutral   { background: #6c757d; color: #fff; border-color: #6c757d; }
.bh-outcome-btn.is-logged.bh-outcome-btn--negative  { background: var(--status-danger, #dc3545); color: #fff; border-color: var(--status-danger, #dc3545); }
[data-theme="dark"] .bh-outcome-btn.is-logged.bh-outcome-btn--tentative { color: #000 !important; }

/* Row-level companion state -- gradient left-border tinted to outcome.
   Apply alongside .bh-row--logged on the row container. */
.bh-row--logged { opacity: 0.7; }
.bh-row--logged-positive  { border-left: 4px solid var(--status-success, #28a745); background: linear-gradient(90deg, rgba(40, 167, 69, 0.08) 0%, transparent 30%) !important; }
.bh-row--logged-tentative { border-left: 4px solid #ffc107;                         background: linear-gradient(90deg, rgba(255, 193, 7, 0.08) 0%, transparent 30%) !important; }
.bh-row--logged-neutral   { border-left: 4px solid #6c757d;                         background: linear-gradient(90deg, rgba(108, 117, 125, 0.08) 0%, transparent 30%) !important; }
.bh-row--logged-negative  { border-left: 4px solid var(--status-danger, #dc3545);   background: linear-gradient(90deg, rgba(220, 53, 69, 0.08) 0%, transparent 30%) !important; }

/* ============================================================================
   .bh-duration-chip -- inline duration selector (2026-05-16)
   --------------------------------------------------------------------------
   Pattern: compact pill for picking one of several timing options
   (1hr / 1d / 1w / 1mo / Custom). Brand-purple outline, fills on hover and
   when selected. Use-sites: Snooze duration, Schedule lead-time, Reminder
   recurrence picker.
   ============================================================================ */
.bh-duration-chip-group {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}
.bh-duration-chip-group-label {
    font-size: 0.7rem;
    color: var(--text-tertiary, #888);
    white-space: nowrap;
    margin-right: 0.2rem;
}
.bh-duration-chip {
    padding: 0.15rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.3;
    border-radius: 999px;
    border: 1px solid var(--brand-primary, #3d1a6f);
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}
.bh-duration-chip:hover { background: var(--bg-purple-tint, #f0edf5); text-decoration: none; }
.bh-duration-chip.is-selected,
.bh-duration-chip:active { background: var(--brand-primary, #3d1a6f); color: #fff; }
[data-theme="dark"] .bh-duration-chip { color: #c7b8ec; border-color: #c7b8ec; }
[data-theme="dark"] .bh-duration-chip:hover { background: rgba(199, 184, 236, 0.12); }
[data-theme="dark"] .bh-duration-chip.is-selected { background: #c7b8ec; color: #1c1729; }

/* Form-level size: use when chip group is a primary form control (reporting
   period picker, filter date-range). Pairs with .bh-duration-chip-group--md
   for larger inter-chip gap. */
.bh-duration-chip--md {
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
    line-height: 1.5;
}
.bh-duration-chip-group--md { gap: 0.4rem; }

/* ============================================================================
   .bh-filter-pill -- dropdown-trigger pill for filter toolbars (2026-06-15)
   --------------------------------------------------------------------------
   Shares the .bh-duration-chip aesthetic so a filter row (filter dropdowns +
   period chips) reads as one cohesive pill toolbar instead of mixing default
   Bootstrap buttons with pills. Use on a Bootstrap dropdown toggle: keep
   data-toggle="dropdown" + the dropdown-toggle class (for the caret), and swap
   btn/btn-default for .bh-filter-pill. Add .is-active when a non-default filter
   is applied -- it fills purple exactly like a selected duration chip, giving a
   clear "this filter is on" signal. Use-site: CRMOutlets Top Engaged Contacts.
   ============================================================================ */
.bh-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    border-radius: 999px;
    border: 1px solid var(--brand-primary, #3d1a6f);
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}
.bh-filter-pill:hover,
.bh-filter-pill:focus { background: var(--bg-purple-tint, #f0edf5); color: var(--brand-primary, #3d1a6f); text-decoration: none; }
.bh-filter-pill.is-active { background: var(--brand-primary, #3d1a6f); color: #fff; border-color: var(--brand-primary, #3d1a6f); }
.bh-filter-pill.dropdown-toggle::after { margin-left: 0.15rem; opacity: 0.7; vertical-align: middle; }
[data-theme="dark"] .bh-filter-pill { color: #c7b8ec; border-color: #c7b8ec; }
[data-theme="dark"] .bh-filter-pill:hover,
[data-theme="dark"] .bh-filter-pill:focus { background: rgba(199, 184, 236, 0.12); color: #c7b8ec; }
[data-theme="dark"] .bh-filter-pill.is-active { background: #c7b8ec; color: #1c1729; border-color: #c7b8ec; }

/* ============================================================================
   .bh-tour-link -- guided-tour help affordance (system standard, 2026-05-24)
   --------------------------------------------------------------------------
   Quiet gold-tinted pill that lives in the .page-actions header slot. A guided
   tour is a once-or-twice action, so this is intentionally lighter than a CTA
   button -- gold tint ties it to brand without competing with primary content.
   Replaces the old `btn btn-sm btn-default` Tour button across header tours.
   Markup: <button type="button" class="bh-tour-link" title="Take a guided tour"
                   onclick="BipTour.start('id'); return false;">
             <i class="fas fa-question-circle"></i> Tour</button>
   ============================================================================ */
.bh-tour-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    color: var(--brand-primary, #3d1a6f);
    background: rgba(253, 185, 19, 0.14);
    border: none;
    border-radius: 20px;
    padding: 6px 13px;
    white-space: nowrap;
    transition: background 0.15s ease;
}
.bh-tour-link i { color: var(--brand-accent, #fdb913); font-size: 0.95rem; }
.bh-tour-link:hover,
.bh-tour-link:focus-visible {
    background: rgba(253, 185, 19, 0.26);
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}
.bh-tour-link:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 2px; }

/* SurveyForms: Browse-vs-Workspace two-phase header (2026-05-16)
   .bv-mode-header is nested inside .page-header (which is itself flex). We need
   flex: 1 1 100% so the inner mode header spans the parent's row instead of
   collapsing to content-width. */
.bv-mode-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; flex: 1 1 100%; }
.bv-mode-header--workspace { gap: 14px; padding: 6px 0; }
.bv-back-link {
    display: inline-flex; align-items: center;
    color: var(--brand-primary, #3d1a6f);
    font-size: 14px; font-weight: 600;
    text-decoration: none;
    padding: 6px 14px;
    border-radius: 6px;
    border: 1px solid transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.bv-back-link:hover { background: rgba(61, 26, 111, 0.08); border-color: rgba(61, 26, 111, 0.15); color: var(--brand-primary, #3d1a6f); text-decoration: none; }
.bv-workspace-name {
    font-size: 22px; font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    flex: 1 1 auto;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    min-width: 0;
}
.bv-status-pill {
    display: inline-block;
    font-size: 11px; font-weight: 700; letter-spacing: 0.04em;
    padding: 4px 12px; border-radius: 999px;
    background: #e9ecef; color: #495057;
    text-transform: uppercase;
}
.bv-status-pill[data-status="draft"]   { background: #fff3cd; color: #856404; }
.bv-status-pill[data-status="public"]  { background: #d4edda; color: #155724; }
.bv-status-pill[data-status="private"] { background: #cce5ff; color: #004085; }
.bv-status-pill[data-status="closed"]  { background: #f8d7da; color: #721c24; }
.bv-status-pill[data-status="archive"] { background: #e2e3e5; color: #383d41; }
[data-theme="dark"] .bv-back-link { color: #c7b8ec; }
[data-theme="dark"] .bv-back-link:hover { background: rgba(199, 184, 236, 0.12); border-color: rgba(199, 184, 236, 0.2); color: #d9ccf3; }
[data-theme="dark"] .bv-workspace-name { color: #d9ccf3; }
[data-theme="dark"] .bv-status-pill[data-status="draft"]   { background: rgba(253, 185, 19, 0.18); color: #fcd66b; }
[data-theme="dark"] .bv-status-pill[data-status="public"]  { background: rgba(40, 167, 69, 0.22); color: #86e0a0; }
[data-theme="dark"] .bv-status-pill[data-status="private"] { background: rgba(0, 123, 255, 0.22); color: #8ab8f7; }
[data-theme="dark"] .bv-status-pill[data-status="closed"]  { background: rgba(220, 53, 69, 0.22); color: #f1a4ad; }
[data-theme="dark"] .bv-status-pill[data-status="archive"] { background: rgba(108, 117, 125, 0.25); color: #c4c8cc; }
@media (max-width: 768px) {
    .bv-workspace-name { font-size: 18px; }
}

/* SurveyForms: card-default + cross-tab + raw-data (moved from inline <style> 2026-05-16) */
.card-default-selected {
    background: linear-gradient(135deg, #ed174c 0%, #ff4d6d 100%);
    color: white !important;
    min-height: 80px;
    border-radius: 8px;
}
.card-default-selected a {
    color: white !important;
}
.card-default-background {
    background: linear-gradient(135deg, var(--bg-gold-tint, #fff5dc) 0%, var(--bg-gold-tint, #fffbf0) 100%) !important;
    border-left: 4px solid #fdb913 !important;
    color: black;
    min-height: 80px;
    border-radius: 8px;
}
.cross-tab-grid {
    border-collapse: collapse;
    width: 100%;
}
.cross-tab-question-row td,
.cross-tab-question-row th {
    background-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #ffffff);
    font-weight: 600;
    padding: 12px 16px;
    border: 1px solid #000000;
}
.cross-tab-response-row td,
.cross-tab-response-row th {
    background-color: var(--bg-surface, #ffffff);
    color: var(--text-primary, #000000);
    border: 1px solid #000000;
    padding: 8px 16px;
}
.cross-tab-header-row td,
.cross-tab-header-row th {
    background-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #ffffff);
    font-weight: 600;
    padding: 12px 16px;
    border: 1px solid #000000;
    text-align: center;
}
.cross-tab-header-row td:first-child,
.cross-tab-header-row th:first-child {
    text-align: left;
}
.cross-tab-first-response td {
    border-top: none !important;
}
.cross-tab-response-row td:first-child {
    padding-left: 32px;
}
.cross-tab-spacer-row td {
    padding: 12px 0;
    border: none !important;
    background-color: transparent;
    font-size: 0;
    line-height: 0;
}
.cross-tab-caption-row td {
    background-color: var(--bg-surface, #ffffff);
    color: var(--text-secondary, #6c757d);
    font-style: italic;
    font-size: 0.8rem;
    padding: 4px 16px 8px 32px;
    border: 1px solid #000000;
    border-top: none;
}
.raw-data-grid td,
.raw-data-grid th {
    white-space: pre-line;
    vertical-align: top;
}
.raw-data-respondent {
    white-space: nowrap;
    vertical-align: top;
}

/* ============================================================
   Pack Generation Modals (Media Pack / Spokesperson Pack)
   Shared shell + radio-card release picker.
   ============================================================ */
.bh-pack-modal .body {
    padding: 1.25rem 1.5rem 1.5rem;
}
.bh-pack-form {
    max-width: 520px;
    margin: 0 auto;
}
.bh-pack-form .form-group {
    margin-bottom: 1.25rem;
}
.bh-pack-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #5a4a7a);
    margin-bottom: 0.4rem;
}
.bh-pack-hint {
    display: block;
    font-size: 0.78rem;
    color: var(--text-tertiary, #7a6e8d);
    margin-bottom: 0.5rem;
}
.bh-pack-release-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    max-height: 240px;
    overflow-y: auto;
    padding: 0.15rem;
}
.bh-pack-release {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--border-subtle, #e3dcef);
    border-radius: 10px;
    background: var(--bg-elevated, #ffffff);
    cursor: pointer;
    transition: border-color 0.12s ease, background-color 0.12s ease, box-shadow 0.12s ease;
    margin: 0;
}
.bh-pack-release:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f5efff);
}
.bh-pack-release input[type="radio"] {
    accent-color: var(--brand-primary, #3d1a6f);
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin: 0;
}
.bh-pack-release-body {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-width: 0;
}
.bh-pack-release-name {
    font-weight: 600;
    color: var(--text-body, #2a1f44);
    font-size: 0.95rem;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-pack-release.is-selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f5efff);
    box-shadow: 0 0 0 1px var(--brand-primary, #3d1a6f) inset;
}
.bh-pack-release-empty,
.bh-pack-release-loading {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 0.5rem;
    color: var(--text-tertiary, #7a6e8d);
    font-size: 0.88rem;
}
.bh-pack-cta {
    margin-top: 1.5rem;
}
.bh-pack-cta .btn {
    font-weight: 600;
    padding: 0.7rem 1rem;
}
.bh-pack-cta .btn.bh-pack-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: auto;
}
.bh-pack-gate-msg {
    margin-top: 1rem;
    padding: 0.7rem 0.9rem;
    background: var(--bg-gold-tint, #fff7e0);
    border: 1px solid var(--brand-accent, #fdb913);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    color: var(--text-primary, #333);
    font-size: 0.88rem;
}
.bh-pack-gate-msg i.fa-info-circle {
    color: var(--brand-accent, #fdb913);
}
[data-theme="dark"] .bh-pack-release {
    background: var(--bg-elevated, #2a2638);
    border-color: var(--border-subtle, #3d3651);
}
[data-theme="dark"] .bh-pack-release:hover,
[data-theme="dark"] .bh-pack-release.is-selected {
    background: var(--bg-purple-tint, #38304d);
}

/* =====================================================================
   bh-agreement-picker -- Plan tab agreement selector (EngagementHub)
   Replaces a flat 300-row alphabetical <select>. Search input + state-
   filter chips + grouped-by-client rows + state pill per row.
   Data source: hidden <asp:DropDownList> populated server-side from
   BH_BusinessFlow JOIN vw_EngagementState (Stage 1/2/3 only).
   ===================================================================== */
.bh-agreement-picker {
    max-width: 720px;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
}
/* Plan sub-pill: awaiting-first-activity panel + agreement picker stacked
   accordion-style, centered, constrained max-width (not full-width sprawl). */
.bh-plan-pickers-stack {
    max-width: 760px;
    margin: 0 auto 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.bh-plan-pickers-stack > .bh-awaiting-panel,
.bh-plan-pickers-stack > .bh-agreement-picker {
    max-width: none;
    margin-bottom: 0;
}
.bh-agreement-picker-toggle {
    background: transparent;
    border: 0;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.85rem;
    transition: background 0.12s;
    flex-shrink: 0;
}
.bh-agreement-picker-toggle:hover { background: var(--bg-purple-tint, #f0ebf7); }
.bh-agreement-picker-search.is-collapsed .bh-agreement-picker-input-row {
    border-bottom: 0;
}
.bh-agreement-picker-search.is-collapsed .bh-agreement-picker-filters,
.bh-agreement-picker-search.is-collapsed .bh-agreement-picker-results {
    display: none;
}
.bh-agreement-picker-icon {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.95rem;
    flex-shrink: 0;
}
.bh-agreement-picker-selected {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.7rem;
    background: linear-gradient(135deg, var(--bg-surface, #fff) 0%, var(--bg-purple-tint, #f0ebf7) 100%);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-left: 4px solid var(--brand-accent, #fdb913);
    border-radius: 8px;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.08));
}
.bh-agreement-picker-selected-body { flex: 1; min-width: 0; }
.bh-agreement-picker-selected-client {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-secondary, #666);
    margin-bottom: 0.1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bh-agreement-picker-selected-line {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}
.bh-agreement-picker-selected-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.88rem;
}
.bh-agreement-picker-selected-service {
    font-size: 0.72rem;
    color: var(--text-muted, #999);
    font-style: italic;
}
.bh-agreement-picker-search {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.06));
}
.bh-agreement-picker-input-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.7rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.bh-agreement-picker-input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 0.85rem;
    color: var(--text-primary, #333);
    padding: 0.15rem 0;
}
.bh-agreement-picker-input::placeholder {
    color: var(--text-muted, #999);
    font-style: italic;
}
.bh-agreement-picker-clear {
    background: transparent;
    border: 0;
    color: var(--text-muted, #999);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.85rem;
    transition: all 0.12s;
}
.bh-agreement-picker-clear:hover {
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-subtle, #fafafa);
}
.bh-agreement-picker-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    padding: 0.35rem 0.7rem;
    background: var(--bg-slate-tint, #f1f0f4);
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.bh-agreement-picker-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.55rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-secondary, #666);
    cursor: pointer;
    transition: all 0.15s;
    line-height: 1.4;
}
.bh-agreement-picker-chip:hover {
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
}
.bh-agreement-picker-chip.is-active {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bh-agreement-picker-chip.is-active:hover {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bh-agreement-picker-chip-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--text-muted, #999);
    flex-shrink: 0;
}
.bh-agreement-picker-chip-dot.dot-active { background: var(--status-success, #28a745); }
.bh-agreement-picker-chip-dot.dot-pending { background: var(--brand-accent, #fdb913); }
.bh-agreement-picker-chip-dot.dot-draft { background: #8a8ce0; }
.bh-agreement-picker-chip-count {
    font-size: 0.7rem;
    opacity: 0.75;
    font-weight: 700;
}
.bh-agreement-picker-chip.is-active .bh-agreement-picker-chip-count { opacity: 1; }
.bh-agreement-picker-results {
    max-height: 240px;
    overflow-y: auto;
}
.bh-agreement-picker-group {
    padding: 0.3rem 0.7rem 0.2rem;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
    position: sticky;
    top: 0;
    z-index: 1;
    border-bottom: 1px solid var(--border-brand, #e0d4f0);
}
.bh-agreement-picker-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.7rem;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light, #f3eff8);
    transition: background 0.12s;
    outline: 0;
}
.bh-agreement-picker-row:hover,
.bh-agreement-picker-row:focus {
    background: var(--bg-purple-tint, #f0ebf7);
}
.bh-agreement-picker-row:focus {
    box-shadow: inset 3px 0 0 var(--brand-accent, #fdb913);
}
.bh-agreement-picker-row:last-child { border-bottom: 0; }
.bh-agreement-picker-row-main { flex: 1; min-width: 0; }
.bh-agreement-picker-row-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    font-size: 0.84rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bh-agreement-picker-row-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.7rem;
    color: var(--text-secondary, #666);
    margin-top: 0.05rem;
}
.bh-agreement-picker-row-service {
    font-style: italic;
    color: var(--text-muted, #999);
}
.bh-agreement-picker-row-pill { flex-shrink: 0; }
.bh-agreement-picker-empty {
    padding: 1.5rem 0.9rem;
    text-align: center;
    color: var(--text-muted, #999);
    font-size: 0.85rem;
    font-style: italic;
}
.bh-agreement-picker-lse-badge {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    padding: 1px 5px;
    border-radius: 3px;
    background: rgba(108, 92, 231, 0.12);
    color: var(--accent-purple, #6c5ce7);
    text-transform: uppercase;
}
[data-theme="dark"] .bh-agreement-picker-selected {
    background: linear-gradient(135deg, var(--bg-surface, #1f1a2a) 0%, var(--bg-purple-tint, #38304d) 100%);
}
[data-theme="dark"] .bh-agreement-picker-search {
    background: var(--bg-surface, #1f1a2a);
    border-color: var(--border-default, #3d3651);
}
[data-theme="dark"] .bh-agreement-picker-input-row,
[data-theme="dark"] .bh-agreement-picker-row,
[data-theme="dark"] .bh-agreement-picker-group {
    border-bottom-color: var(--border-default, #3d3651);
}
[data-theme="dark"] .bh-agreement-picker-filters {
    background: var(--bg-subtle, #1a1a1a);
}
[data-theme="dark"] .bh-agreement-picker-chip {
    background: var(--bg-surface, #1f1a2a);
    border-color: var(--border-default, #3d3651);
}
[data-theme="dark"] .bh-agreement-picker-row:hover,
[data-theme="dark"] .bh-agreement-picker-row:focus {
    background: var(--bg-purple-tint, #38304d);
}
[data-theme="dark"] .bh-agreement-picker-group {
    background: var(--bg-purple-tint, #38304d);
}
@media (max-width: 600px) {
    .bh-agreement-picker { max-width: 100%; }
    .bh-agreement-picker-selected { flex-wrap: wrap; }
    .bh-agreement-picker-row { padding: 0.55rem 0.7rem; }
    .bh-agreement-picker-filters { padding: 0.5rem 0.7rem; }
}

/* ========================================
   Social Monitoring v2 -- 2026-05-20
   Setup-side restyle (results live on the Performance Dashboard).
   Platform chips wrap hidden checkboxes -- JS contract unchanged.
   ======================================== */
.bh-social-intro {
    color: var(--text-body, #4a4a4a);
    font-size: 0.9rem;
    margin-bottom: 1.25rem;
}
.bh-social-section {
    padding: 1rem 0 1.1rem;
    border-top: 1px solid var(--border-light, #eee);
}
.bh-social-section:first-of-type {
    border-top: 0;
    padding-top: 0;
}
.bh-social-section-title {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.85rem;
}
.bh-social-label {
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
    display: block;
}

/* Platform toggle chips (label styles a sibling hidden checkbox) */
.bh-platform-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.bh-platform-chip-input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}
.bh-platform-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--border-default, #d8d8d8);
    border-radius: 999px;
    background: var(--bg-surface, #fff);
    color: var(--text-body, #4a4a4a);
    font-size: 0.85rem;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    margin-bottom: 0;
}
.bh-platform-chip i {
    font-size: 0.95rem;
    opacity: 0.85;
}
.bh-platform-chip:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-gold-tint, #fffbf0);
}
.bh-platform-chip-input:checked + .bh-platform-chip {
    background: var(--bg-purple-tint, #f1ecf8);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.bh-platform-chip-input:checked + .bh-platform-chip i {
    opacity: 1;
}
/* Leading check glyph on selected chips -- signals checkbox semantics even when all are on.
   No color set: inherits the chip's checked colour, so it stays legible in light AND dark mode. */
.bh-platform-chip-input:checked + .bh-platform-chip::before {
    content: '\f00c'; /* FA check */
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    font-size: 0.72rem;
}
.bh-platform-chip-input:focus-visible + .bh-platform-chip {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}

.bh-social-scan-note {
    margin-top: 0.85rem;
    font-size: 0.82rem;
    color: var(--text-muted, #6c757d);
}
.bh-social-quota {
    margin-top: 0.75rem;
    margin-bottom: 0;
}

/* Creator lookup -- flex row (no input-group) */
.bh-social-lookup {
    display: flex;
    gap: 0.5rem;
    max-width: 460px;
    margin-top: 0.5rem;
}
.bh-social-lookup .form-control {
    flex: 1 1 auto;
}
.bh-social-lookup .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Footer: results bridge left, actions right */
.bh-social-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-light, #eee);
}
.bh-social-results-link {
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
    font-weight: 600;
}
.bh-social-results-link:hover {
    text-decoration: underline;
}
.bh-social-actions {
    display: flex;
    align-items: center;
    margin-left: auto;
}

[data-theme="dark"] .bh-platform-chip {
    background: var(--bg-surface, #1f1a2a);
    border-color: var(--border-default, #3d3651);
}
[data-theme="dark"] .bh-platform-chip:hover {
    background: var(--bg-purple-tint, #38304d);
}
[data-theme="dark"] .bh-platform-chip-input:checked + .bh-platform-chip {
    background: var(--bg-purple-tint, #38304d);
    color: var(--page-title-color, #e5d9ff);
    border-color: var(--page-title-color, #e5d9ff);
}
[data-theme="dark"] .bh-social-section,
[data-theme="dark"] .bh-social-footer {
    border-color: var(--border-default, #3d3651);
}

@media (max-width: 600px) {
    .bh-social-footer { flex-direction: column; align-items: stretch; }
    .bh-social-actions { margin-left: 0; justify-content: flex-end; }
    .bh-social-lookup { max-width: 100%; }
}

/* Social Monitoring -- dark mode for the tag inputs + lookup field.
   .social-tag-* is shared legacy CSS with no dark override; the bare <input>
   rendered UA-white over the wrapper. Wrapper + input + placeholders below. */
[data-theme="dark"] .social-tag-input-wrapper {
    background: var(--bg-surface, #1f1a2a);
    border-color: var(--border-default, #3d3651);
}
[data-theme="dark"] .social-tag-input {
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .social-tag-input::placeholder {
    color: var(--text-muted, #8a8a8a);
}
[data-theme="dark"] .bh-social-lookup .form-control {
    background: var(--bg-surface, #1f1a2a);
    border-color: var(--border-default, #3d3651);
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .bh-social-lookup .form-control::placeholder {
    color: var(--text-muted, #8a8a8a);
}
/* ===================================================================
   Media Releases v2 (Phase C, 2026-05-20)
   State-led header + 60/40 editor/preview split + brand-aware preview.
   Brand palette only; dark mode via theme-tokens.
   =================================================================== */

/* --- State-led sticky header (slim: 4px gold left-border on purple-tint band) --- */
.mr-state-header {
    position: sticky;
    top: 64px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.6rem 1rem;
    margin-bottom: 1rem;
    border-radius: 10px;
    border-left: 4px solid var(--brand-accent, #fdb913);
    background: var(--bg-purple-tint, #f0ebf7);
    box-shadow: 0 4px 16px rgba(20, 20, 40, 0.06);
}
.mr-state-header.is-state-approved {
    background: var(--bg-gold-tint, #fff5dc);
}
.mr-state-header .mr-eyebrow {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--text-tertiary, #6b6b75);
}
.mr-state-header .mr-state-meta {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.25;
    color: var(--text-tertiary, #6b6b75);
    font-size: 0.82rem;
}
.mr-state-header .mr-meta-assignee { color: var(--text-body, #2d2d34); font-weight: 600; }
.mr-state-header .mr-meta-modified { font-size: 0.75rem; }
.mr-state-header .mr-state-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}
.mr-state-header .autosave-status { font-size: 0.78rem; color: var(--text-tertiary, #6b6b75); }

/* --- Editor/preview toggle (768-1400 band) --- */
.mr-pane-toggle { display: none; }

/* --- Split: editor LEFT, preview RIGHT --- */
.mr-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: start;
}
.mr-pane {
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e3e5e9);
    border-radius: 10px;
    padding: 1.25rem;
    box-shadow: 0 1px 3px rgba(20, 20, 40, 0.05);
}
.mr-pane-title {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-tertiary, #6b6b75);
    font-weight: 600;
}

/* Wide split: 60/40 with both panes; toggle hidden */
@media (min-width: 1400px) {
    .mr-split { grid-template-columns: 60% 40%; }
    .mr-preview-pane { position: sticky; top: 130px; }
}

/* 768-1400 band: single column + toggle drives which pane shows */
@media (min-width: 769px) and (max-width: 1399px) {
    .mr-pane-toggle { display: flex; }
    .mr-split.mr-show-editor .mr-preview-pane { display: none; }
    .mr-split.mr-show-preview .mr-editor-pane { display: none; }
}

/* Editor-only on narrow viewports; preview behind the toggle */
@media (max-width: 768px) {
    .mr-pane-toggle { display: flex; }
    .mr-split.mr-show-editor .mr-preview-pane { display: none; }
    .mr-split.mr-show-preview .mr-editor-pane { display: none; }
}

/* --- Editor fields --- */
.mr-field { margin-bottom: 1rem; }
.mr-field-label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.35rem;
}
.mr-field-label .mr-counter {
    margin-left: auto;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--text-tertiary, #6b6b75);
}
.mr-field-label .mr-counter.warn { color: var(--status-warning-text, #c47900); }

.mr-headline-input {
    width: 100%;
    padding: 0.7rem 0.75rem;
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    border: 1.5px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    background: var(--bg-gold-tint, #fff5dc);
    font-family: inherit;
}
.mr-headline-input:focus {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}
/* Hidden RTE that backs the plain headline input (kept for autosave/load compatibility) */
.mr-hidden-rte { display: none !important; }

/* Body stats row (word count + Flesch + length hint) bottom-right */
.mr-body-stats {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    padding: 0.35rem 0.25rem 0;
    font-size: 0.72rem;
    color: var(--text-tertiary, #6b6b75);
}
.mr-body-stats .mr-stat strong { color: var(--text-body, #2d2d34); font-weight: 600; }
.mr-body-stats .mr-stat.warn strong { color: var(--status-warning-text, #c47900); }
.mr-body-stats .mr-stat#mrLengthHint.ok { color: var(--status-success-text, #1f8a4a); }
.mr-body-stats .mr-stat#mrLengthHint.warn { color: var(--status-warning-text, #c47900); }

/* Body editor capped at 55vh, scrollable -- scoped to the inline editor */
.inline-editor-container .richtextwrapper-lg .bh-rte-editor {
    max-height: 55vh;
    overflow-y: auto;
}

/* --- Preview pane --- */
.mr-preview-pane { padding: 0; overflow: hidden; }
.mr-preview-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.1rem 1.25rem 0.5rem;
}
.mr-preview-head .mr-pane-title { margin: 0; }
.mr-brand-chip {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.5rem;
    border: 1px solid var(--border-default, #e3e5e9);
    border-radius: 999px;
    font-size: 0.74rem;
    color: var(--text-tertiary, #6b6b75);
    background: var(--bg-subtle, #fafafa);
}
.mr-brand-chip .mr-brand-swatches { display: inline-flex; gap: 2px; }
.mr-brand-chip .mr-swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    display: inline-block;
}
.mr-brand-chip .mr-brand-label strong { color: var(--brand-primary, #3d1a6f); }
.mr-brand-chip .mr-brand-hint { font-style: italic; }
.mr-brand-chip .mr-brand-edit {
    padding: 0 0.2rem;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.72rem;
}
.mr-lens-toggle {
    padding: 0 1.25rem 0.85rem;
    margin: 0;
    border-bottom: 1px solid var(--border-default, #e3e5e9);
}
.mr-preview-body {
    padding: 1.4rem 1.6rem;
    min-height: 360px;
    max-height: calc(100vh - 240px);
    overflow-y: auto;
}

/* PDF lens placeholder (single-release PDF render is Spec 2) */
.mr-pdf-placeholder { text-align: center; padding: 2.5rem 1rem; color: var(--text-tertiary, #6b6b75); }
.mr-pdf-placeholder i { font-size: 3rem; color: var(--brand-accent, #fdb913); margin-bottom: 1rem; }
.mr-pdf-placeholder h4 { color: var(--brand-primary, #3d1a6f); margin: 0 0 0.5rem; }
.mr-pdf-placeholder p { max-width: 360px; margin: 0 auto 1rem; }
.mr-pdf-placeholder a { color: var(--brand-primary, #3d1a6f); font-weight: 500; }

/* --- AI empty-state hero --- */
.mr-ai-hero {
    background: linear-gradient(135deg, var(--bg-purple-tint, #f0ebf7), var(--bg-gold-tint, #fff5dc));
    border: 2px dashed var(--brand-accent, #fdb913);
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
    margin-bottom: 1rem;
}
.mr-ai-hero h3 { color: var(--brand-primary, #3d1a6f); font-size: 1.25rem; margin: 0 0 0.5rem; font-weight: 700; }
.mr-ai-hero-lead { color: var(--text-body, #2d2d34); max-width: 480px; margin: 0 auto 1.25rem; }
.mr-ai-hero-actions { display: flex; gap: 0.75rem; justify-content: center; align-items: center; flex-wrap: wrap; }
.mr-ai-hero-skip-row { margin-top: 0.85rem; }
.mr-ai-hero .mr-ai-skip { color: var(--text-tertiary, #6b6b75); text-decoration: underline; }

/* --- Approve diff note (in the republish confirm modal) --- */
.mr-approve-diff {
    background: var(--bg-gold-tint, #fff5dc);
    border-left: 3px solid var(--brand-accent, #fdb913);
    padding: 0.6rem 0.85rem;
    margin-top: 0.85rem;
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--text-body, #2d2d34);
    text-align: left;
}

/* --- Brand editor modal grid --- */
.mr-brand-edit-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}
.mr-brand-edit-grid .mr-field-label { margin-bottom: 0.25rem; }
.mr-brand-color {
    width: 100%;
    height: 38px;
    padding: 2px;
    border: 1px solid var(--border-default, #e3e5e9);
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    cursor: pointer;
}

/* --- Dark mode overrides --- */
[data-theme="dark"] .mr-pane {
    background: var(--bg-surface, #141414);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .mr-headline-input {
    color: var(--brand-primary, #a76bdf);
    background: var(--bg-gold-tint, #1e1a0e);
    border-color: var(--brand-accent, #d4a824);
}
[data-theme="dark"] .mr-brand-chip {
    background: var(--bg-subtle, #1a1a1a);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .mr-ai-hero {
    background: linear-gradient(135deg, var(--bg-purple-tint, #1e1430), var(--bg-gold-tint, #1e1a0e));
}
[data-theme="dark"] .mr-ai-hero-lead { color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .mr-approve-diff { color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .mr-swatch { border-color: rgba(255, 255, 255, 0.18); }

@media (max-width: 600px) {
    .mr-brand-edit-grid { grid-template-columns: 1fr; }
    .mr-state-header { top: 56px; }
    .mr-preview-body { padding: 1rem 1.1rem; }
}

/* --- Send-for-review modal (CampaignBuilder media-release "Send for Review") --- */
.mr-review-intro {
    margin: 0 0 0.9rem;
    color: var(--text-body, #2d2d34);
    font-size: 0.95rem;
}
.mr-review-segments { margin-bottom: 1rem; }
.mr-review-tabcontent { min-height: 96px; }
.mr-review-search { max-width: 100%; margin-bottom: 0.75rem; }
.mr-review-results {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    max-height: 260px;
    overflow-y: auto;
}
.mr-rev-result {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--border-default, #e3e5e9);
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    cursor: pointer;
    text-align: left;
    transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.mr-rev-result:hover {
    border-color: var(--brand-accent, #fdb913);
    background: var(--bg-gold-tint, #fff5dc);
}
.mr-rev-result:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}
.mr-rev-result.is-selected {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
    box-shadow: inset 0 0 0 1px var(--brand-primary, #3d1a6f);
}
.mr-rev-avatar {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
}
.mr-rev-meta { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.mr-rev-name { font-weight: 600; color: var(--text-body, #2d2d34); line-height: 1.2; }
.mr-rev-email {
    font-size: 0.82rem;
    color: var(--text-tertiary, #6b6b75);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mr-rev-radio {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--border-default, #cfc9db);
    display: flex;
    align-items: center;
    justify-content: center;
    color: transparent;
    font-size: 0.68rem;
}
.mr-rev-result.is-selected .mr-rev-radio {
    background: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.mr-review-label {
    display: block;
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
    color: var(--text-body, #2d2d34);
}
.mr-review-optional { font-weight: 400; color: var(--text-tertiary, #6b6b75); }
.mr-review-email { margin-bottom: 0.35rem; }
.mr-review-hint { font-size: 0.82rem; color: var(--text-tertiary, #6b6b75); margin: 0.5rem 0 0; }
.mr-review-note { margin-top: 1rem; }
.mr-review-note-input { resize: vertical; }
[data-theme="dark"] .mr-rev-result {
    background: var(--bg-surface, #141414);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .mr-rev-result:hover { background: var(--bg-gold-tint, #1e1a0e); }
[data-theme="dark"] .mr-rev-result.is-selected { background: var(--bg-purple-tint, #1e1430); }

/* ============================================================================
   Distribution Shape Picker -- shared BHDistributionPicker component
   (Buzzhub/js/distribution-shape-picker.js). Single styling SSOT used by the EH
   Activity Modal (Curve) AND AM Wizard (Pacing). Do NOT re-style .bh-dist-picker-card
   page-side -- both consumers must look identical. Grid auto-fits + wraps responsively
   so any shape count lays out without per-page media queries. Colours are brand tokens
   (gold mini-bars, purple when active) and flip in dark mode.
   ============================================================================ */
.bh-dist-picker-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(108px, 1fr)); gap: 0.6rem; }
.bh-dist-picker-card { border: 2px solid var(--border-default, #dee2e6); border-radius: 8px; padding: 0.5rem 0.5rem 0.4rem; cursor: pointer; background: var(--bg-card, #fff); transition: border-color 0.12s, box-shadow 0.12s; user-select: none; }
.bh-dist-picker-card:hover { border-color: var(--brand-primary, #3d1a6f); }
.bh-dist-picker-card.is-active { border-color: var(--brand-primary, #3d1a6f); box-shadow: 0 0 0 2px rgba(61, 26, 111, 0.12); }
.bh-dist-picker-card .ccc-title { font-size: 0.82rem; font-weight: 600; color: var(--text-primary, #212529); margin-bottom: 2px; }
.bh-dist-picker-card .ccc-sub { font-size: 0.7rem; color: var(--text-secondary, #6c757d); margin-bottom: 4px; }
.bh-dist-picker-card .ccc-mini { display: block; width: 100%; height: 28px; }
.bh-dist-picker-card .ccc-mini rect { fill: var(--brand-accent, #fdb913); }
.bh-dist-picker-card.is-active .ccc-mini rect { fill: var(--brand-primary, #3d1a6f); }
/* Lock note shown above the picker when the shape is frozen (logged actuals -- State B).
   Informational (not an error): muted slate fill + gold accent rule + lock icon. Tokens
   flip in dark mode. Inserted as a sibling of the cards host by bh-distribution-editor.js. */
.bh-dist-lock-note {
    display: flex; align-items: flex-start; gap: 0.4rem;
    margin: 0 0 0.6rem; padding: 0.45rem 0.6rem;
    font-size: 0.78rem; line-height: 1.35;
    color: var(--text-secondary, #6c757d);
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #dee2e6);
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
}
.bh-dist-lock-note i { margin-top: 1px; color: var(--brand-accent, #fdb913); }

/* =============================================================================
   Brand Source Selector (Brand SSOT -- Spec 2/3)
   Shared by the MediaPack/Spokesperson generate modals (CampaignBuilder) and the
   CoverageReport generate wizard (Reporting). Folded from page-scoped blocks 2026-05-20.
   ============================================================================= */
.bh-brand-selector .bh-brand-options { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.bh-brand-option { display: flex; align-items: flex-start; gap: 10px; padding: 8px 10px; border: 1px solid var(--bh-border, #d9d9e3); border-radius: 8px; cursor: pointer; margin: 0; }
.bh-brand-option:hover { border-color: var(--bh-primary, #3d1a6f); }
.bh-brand-option input.bh-brand-radio { margin-top: 3px; }
.bh-brand-option-body { display: flex; flex-direction: column; }
.bh-brand-option-title { font-weight: 600; }
.bh-brand-option-meta { font-size: 0.82rem; opacity: 0.75; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bh-brand-swatches { display: inline-flex; gap: 4px; }
.bh-brand-swatch { width: 14px; height: 14px; border-radius: 3px; border: 1px solid rgba(0,0,0,0.15); display: inline-block; }
/* Edit + save-back pencil on the "Use brand colours" option (Generate modals). */
.bh-brand-edit-pencil { background: transparent; border: 0; padding: 2px 5px; cursor: pointer; color: var(--brand-primary, #3d1a6f); border-radius: 4px; line-height: 1; font-size: 0.8rem; }
.bh-brand-edit-pencil:hover { background: var(--bg-gold-tint, rgba(253,185,19,0.15)); color: var(--brand-primary, #3d1a6f); }
.bh-brand-clientname { font-weight: 600; }
.bh-brand-custom { margin-top: 8px; padding: 10px; border: 1px dashed var(--bh-border, #d9d9e3); border-radius: 8px; }
.bh-brand-custom-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-bottom: 6px; }
.bh-brand-custom-row label { font-size: 0.85rem; display: flex; align-items: center; gap: 6px; margin: 0; }
.bh-brand-color { width: 38px; height: 28px; padding: 0; border: 1px solid var(--bh-border, #d9d9e3); border-radius: 4px; cursor: pointer; }
.bh-brand-font-label { width: 100%; max-width: 320px; }
.bh-brand-font { display: inline-block; width: auto; min-width: 160px; }

/* =========================================================
   Unified Agreement Wizard -- phase wrappers + gate + lock
   (2026-05-21, Tasks 2.1+2.2)
   Extends the existing .wizard-steps / .step convention
   defined inline in AccountManagement.aspx. Does NOT
   redefine .step / .step-number / .step-label base look.
   ========================================================= */

/* Phase wrapper: stacks label above steps row */
.wizard-phase {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
}
/* .wizard-phase-steps mirrors the original flat flex row */
.wizard-phase-steps {
    display: flex;
    flex: 1;
    width: 100%;
}

/* Phase labels */
.wizard-phase-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
    color: var(--text-muted, #999);
}
.wizard-phase-planning .wizard-phase-label {
    color: #b8860b;
}
.wizard-phase-agreement .wizard-phase-label {
    color: var(--brand-primary, #3d1a6f);
}

/* Gate divider between Planning and Agreement phases */
.wizard-gate {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    flex-shrink: 0;
    align-self: flex-end;
    padding-bottom: 4px;
}
.wizard-gate-label {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #b8860b;
    border: 1px dashed #fdb913;
    border-radius: 10px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* Locked step modifier (Phase-2 steps before gate commit) */
.wizard-steps .step.locked {
    color: var(--text-muted, #bbb);
    cursor: not-allowed;
    opacity: 0.5;
}
.wizard-steps .step.locked .step-number {
    background: var(--bg-muted, #e0e0e0);
    color: var(--text-muted, #aaa);
}
.wizard-steps .step.locked:hover {
    color: var(--text-muted, #bbb);
}

/* Dark-mode overrides for hardcoded label colours */
[data-theme="dark"] .wizard-phase-planning .wizard-phase-label {
    color: #fdb913;
}
[data-theme="dark"] .wizard-phase-agreement .wizard-phase-label {
    color: var(--brand-accent-light, #c9a0ff);
}
[data-theme="dark"] .wizard-gate-label {
    color: #fdb913;
    border-color: #fdb913;
}
[data-theme="dark"] .wizard-steps .step.locked .step-number {
    background: var(--bg-muted, #333);
    color: var(--text-muted, #666);
}

/* Unified Agreement Wizard (2026-05-21 Task 2.3): "Start Agreement" commit
   gate box at the end of the Forecast tab. Dashed gold border + cream bg,
   centred. JS (Task 2.4) shows it only on the forecast tab pre-commit. */
.agr-gatebox {
    border: 2px dashed var(--brand-accent, #fdb913);
    background: var(--cream, #fffbf0);
    border-radius: 8px;
    padding: 20px 24px;
    margin-top: 24px;
    text-align: center;
}
.agr-gatebox h4 {
    margin: 0 0 6px;
    font-size: 1.05rem;
    color: var(--text-primary, #333);
}
.agr-gatebox p {
    margin: 0 auto 14px;
    max-width: 540px;
    font-size: 0.85rem;
    color: var(--text-secondary, #666);
}
[data-theme="dark"] .agr-gatebox {
    background: var(--bg-muted, #1f1f1f);
    border-color: #fdb913;
}

/* ========================================
   Project Plan -- client "What to expect" lens, per-task visibility toggle,
   and seed-from-archetype panel layout. Appended block; .bh-pp-* family
   base styles are inline in CampaignBuilder.aspx. Brand colours only
   (#3d1a6f / #fdb913); surfaces use flipping theme tokens so dark mode
   resolves automatically (no hardcoded text + flipping bg pairings).
   ======================================== */

/* Client "What to expect" block */
.bh-pp-client {
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    padding: 14px 16px;
    box-shadow: 0 1px 3px rgba(61, 26, 111, 0.06);
}
.bh-pp-client-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.bh-pp-client-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
}
.bh-pp-client-copy {
    white-space: nowrap;
}
.bh-pp-client-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.bh-pp-client-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--bg-purple-tint, #f0ebf7);
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.bh-pp-client-date {
    flex: 0 0 auto;
    min-width: 110px;
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--brand-primary, #3d1a6f);
}
.bh-pp-client-desc {
    flex: 1 1 auto;
    font-size: 0.88rem;
    color: var(--text-primary, #333333);
}
.bh-pp-client-empty {
    padding: 24px 12px;
}
@media (max-width: 768px) {
    .bh-pp-client-row { flex-direction: column; gap: 2px; }
    .bh-pp-client-date { min-width: 0; }
}

/* Per-task client-visibility toggle (list view) */
.bh-pp-client-toggle.bh-pp-client-toggle--on {
    color: var(--brand-primary, #3d1a6f);
}

/* Seed-from-archetype panel layout */
.bh-pp-seed-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border-light, #e9ecef);
}
.bh-pp-seed-mode {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--text-primary, #333333);
}
.bh-pp-seed-mode label {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}
.bh-pp-seed-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.bh-pp-seed-archetype {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 10px;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 6px;
    background: var(--bg-surface, #ffffff);
    font-size: 0.82rem;
    color: var(--text-primary, #333333);
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}
.bh-pp-seed-archetype:hover {
    border-color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f0ebf7);
}

/* ==========================================================================
   Stories Calendar -- My Work pill list
   ========================================================================== */
.bh-mywork-list { padding: .25rem 0; }
.bh-mywork-row { display: block; padding: .6rem 1rem; border-bottom: 1px solid var(--border-color, #eee); color: var(--text-primary, #333); text-decoration: none; }
.bh-mywork-row:last-child { border-bottom: 0; }
a.bh-mywork-row:hover { background: var(--hover-bg, #f7f4fc); }
.bh-mywork-pri { font-weight: 600; color: var(--brand-accent, #fdb913); }
.bh-mywork-title { font-weight: 600; }
.bh-mywork-meta { display: block; font-size: .8rem; color: var(--text-secondary, #777); }
.bh-mywork-group { display: flex; justify-content: space-between; align-items: baseline; padding: .5rem 1rem; background: var(--subtle-bg, #faf7ff); border-bottom: 1px solid var(--border-color, #eee); }
.bh-mywork-group-title { font-weight: 700; color: var(--page-title-color, #3d1a6f); }
.bh-mywork-group-meta { font-size: .78rem; color: var(--text-secondary, #777); }
.mywork-toolbar { display:flex; align-items:center; gap:.75rem; margin:.25rem 0 1rem; flex-wrap:wrap; }
.mywork-toolbar-label { font-size:.8rem; color:var(--text-secondary,#777); text-transform:uppercase; letter-spacing:.03em; }
.bh-mywork-section { border:1px solid var(--border-color,#eee); border-radius:10px; margin-bottom:1rem; overflow:hidden; }
.bh-mywork-section-head { display:flex; align-items:center; padding:.6rem 1rem; cursor:pointer; background:var(--bg-slate-tint,#f3f0f8); border-left:4px solid var(--brand-accent,#fdb913); font-weight:600; color:var(--page-title-color,#3d1a6f); }
.bh-mywork-section-title { text-transform:uppercase; font-size:.85rem; letter-spacing:.02em; }
.bh-mywork-subhead { padding:.4rem 1rem; font-size:.78rem; color:var(--text-secondary,#777); background:var(--bg-subtle,#faf7ff); }
.bh-mywork-row.bh-mywork-task { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.bh-mywork-row .bh-mywork-actions { margin-left:auto; display:flex; align-items:center; gap:.35rem; }
.bh-mywork-ctx { font-size:.78rem; color:var(--text-secondary,#777); }
.bh-mywork-link { font-size:.78rem; }
.bh-snooze { position:relative; display:inline-block; }
.bh-snooze-menu { display:none; position:absolute; right:0; top:100%; z-index:10; background:var(--card-bg,#fff); border:1px solid var(--border-color,#ddd); border-radius:8px; box-shadow:0 4px 12px rgba(0,0,0,.12); min-width:120px; }
.bh-snooze:hover .bh-snooze-menu { display:block; }
.bh-snooze-menu a { display:block; padding:.45rem .8rem; color:var(--text-primary,#333); text-decoration:none; }
.bh-snooze-menu a:hover { background:var(--hover-bg,#f7f4fc); }
.mywork-search { max-width:320px; margin:0; flex:0 1 280px; }
.mywork-today-chip { display:inline-flex; align-items:center; }
.mw-today-count { font-size:.7rem; }
.mywork-search-hint { font-size:.78rem; color:var(--text-secondary,#777); margin-left:auto; align-self:center; }

/* ===== Portfolio Multi-Facet Tag Picker ===== */
.bh-tag-facet { margin-bottom: .85rem; }
.bh-tag-facet > label { display: block; margin-bottom: .3rem; color: var(--text-body, #555); }
.bh-tag-checks { display: flex; flex-wrap: wrap; gap: .4rem .65rem; padding: .5rem .65rem; border: 1px solid var(--border-default, #ddd); border-radius: 8px; background: var(--bg-subtle, #fafafa); min-height: 2.2rem; }
.bh-tag-checks:empty::after { content: "No options"; color: var(--text-body, #555); font-size: .8rem; opacity: .6; }
.bh-tag-check { display: inline-flex; align-items: center; gap: .35rem; margin: 0; padding: .2rem .55rem; border: 1px solid var(--border-default, #ddd); border-radius: 6px; background: var(--card-bg, #fff); font-weight: 400; cursor: pointer; }
.bh-tag-check input { margin: 0; }
.bh-tag-check:hover { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-purple-tint, #f0ebf7); }
.bh-tag-addrow { display: flex; gap: .5rem; align-items: center; margin-top: .5rem; }
.bh-tag-addrow .form-control[type="text"] { flex: 1 1 auto; }
.bh-tag-addrow .form-control[type="number"] { flex: 0 0 90px; }
#manageTagsGrid tr.mt-inactive { opacity: .55; }
#manageTagsGrid tr.mt-inactive td:first-child::before { content: "(inactive) "; color: var(--text-muted, #888); font-size: .8em; }


/* Vertical sub-tab rail cluster label -- Admin Account Setup (Account/Commercial/Content/Email) 2026-05-25 */
.nav.flex-column.nav-pills .nav-rail-group{
    font-size:.66rem;font-weight:700;letter-spacing:.10em;text-transform:uppercase;
    color:var(--text-muted,#6b6580);padding:.1rem .75rem;margin:.9rem 0 .25rem;list-style:none;pointer-events:none;
}
.nav.flex-column.nav-pills .nav-rail-group:first-child{margin-top:0;}

/* Account Setup rail filter input 2026-05-25 */
.rail-search{position:relative;margin:0 .5rem 1rem;}
.rail-search input{padding-left:1.9rem;}
.rail-search .fa-search{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--text-muted,#6b6580);font-size:.75rem;pointer-events:none;}

/* ===== Outreach Approach (Pitching Strategy declare surface) 2026-05-26 ===== */
/* Channel identity hues (white text on each) -- intentional, theme-stable like social badges. */
.bh-outreach-mix-wrap{position:relative;margin:.25rem 0 .9rem;}
.bh-outreach-mix-bar{display:flex;height:30px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color,#e3e3ea);}
.bh-outreach-mix-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.72rem;font-weight:700;white-space:nowrap;overflow:hidden;}
/* Draggable divider handles -- adjacent channels trade points, total stays 100% */
.bh-outreach-mix-handles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;}
.bh-mix-handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:calc(100% + 10px);padding:0;background:var(--card-bg,#fff);border:1px solid var(--border-color,#cfcad8);border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.22);cursor:col-resize;pointer-events:auto;display:flex;align-items:center;justify-content:center;z-index:3;touch-action:none;}
.bh-mix-handle:hover{border-color:var(--brand-primary,#3d1a6f);}
.bh-mix-handle:focus-visible{outline:2px solid var(--brand-primary,#3d1a6f);outline-offset:2px;}
.bh-mix-grip{width:2px;height:14px;background:var(--text-muted,#9b94a8);border-radius:1px;box-shadow:-3px 0 0 var(--text-muted,#9b94a8),3px 0 0 var(--text-muted,#9b94a8);}
.bh-outreach-mix-wrap.is-dragging{user-select:none;}
.bh-outreach-ch-tv{background:#5a2a9e;}
.bh-outreach-ch-radio{background:#c98a00;}
.bh-outreach-ch-press{background:#1565c0;}
.bh-outreach-ch-digital{background:#1b8a5a;}
.bh-outreach-mix-legend{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
.bh-outreach-mix-wt{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--text-body,#2a2433);}
.bh-outreach-mix-wt .bh-outreach-wt-input{width:64px;}
.bh-outreach-sw{width:12px;height:12px;border-radius:3px;display:inline-block;}
.bh-outreach-ex{margin-top:1rem;}
.bh-outreach-ex-toggle{display:flex;align-items:center;gap:.5rem;font-weight:600;cursor:pointer;color:var(--text-body,#2a2433);}
.bh-outreach-ex-detail{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.6rem;font-size:.85rem;color:var(--text-muted,#6c6677);}
.bh-outreach-ex-detail .bh-outreach-ex-outlet{width:200px;}
.bh-outreach-ex-detail .bh-outreach-ex-days{width:64px;}
/* Outreach Approach -- per-tier strategy cards (gold rail = high-touch, neutral rail = bulk) */
.bh-outreach-tiers{display:flex;flex-direction:column;gap:.5rem;}
.bh-outreach-group-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted,#6c6677);margin:.65rem 0 .1rem;}
.bh-outreach-group-label:first-child{margin-top:0;}

.bh-outreach-tier{position:relative;border:1px solid var(--border-color,#e3e3ea);border-radius:12px;background:var(--bg-card,#fff);padding-left:4px;transition:border-color .15s ease,box-shadow .15s ease;}
.bh-outreach-tier::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:12px 0 0 12px;}
.bh-outreach-tier--head::before{background:var(--brand-accent,#fdb913);}
.bh-outreach-tier--tail::before{background:var(--text-muted,#9a93a6);}
.bh-outreach-tier:hover{border-color:var(--brand-primary,#3d1a6f);box-shadow:0 2px 10px rgba(61,26,111,.08);}

.bh-outreach-tier-toggle{display:flex;align-items:center;gap:.65rem;width:100%;padding:.55rem .85rem;background:transparent;border:0;text-align:left;cursor:pointer;}
.bh-outreach-tier-toggle:focus-visible{outline:2px solid var(--brand-primary,#3d1a6f);outline-offset:2px;border-radius:8px;}
.bh-outreach-chevron{flex:0 0 auto;color:var(--text-muted,#9a93a6);font-size:.75rem;transition:transform .15s ease;}
.bh-outreach-tier.is-open .bh-outreach-chevron{transform:rotate(180deg);}
.bh-outreach-tier-name{font-size:.95rem;font-weight:700;color:var(--brand-primary,#3d1a6f);}
.bh-outreach-tier-band{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#6c6677);}
.bh-outreach-band{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--text-muted,#9a93a6);}
/* Smart intensity badge (2026-07-10): green = effort aligned to tier value, amber = misallocated */
.bh-outreach-tier-band.bh-outreach-band--aligned{color:var(--status-success-text,#155724);}
.bh-outreach-tier-band.bh-outreach-band--under,
.bh-outreach-tier-band.bh-outreach-band--over{color:var(--status-warning-text,#856404);}
.bh-outreach-band--aligned .bh-outreach-band{background:var(--status-success,#28a745);}
.bh-outreach-band-warn{font-size:.72rem;}

.bh-outreach-tier-body{display:none;align-items:center;gap:1.25rem;flex-wrap:wrap;margin:0 .85rem;padding:.5rem 0 .65rem;border-top:1px dashed var(--border-color,#e3e3ea);}
.bh-outreach-tier.is-open .bh-outreach-tier-body{display:flex;}
.bh-outreach-ctl{display:flex;align-items:center;gap:.5rem;}
.bh-outreach-ctl-lbl{font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted,#6c6677);}

/* channel pill toggles -- native checkbox hidden, label is the affordance */
.bh-outreach-mode{position:relative;display:inline-flex;align-items:center;gap:.4rem;margin:0;padding:.3rem .7rem;border:1px solid var(--border-color,#d9d6e0);border-radius:999px;font-size:.82rem;font-weight:600;color:var(--text-muted,#6c6677);background:var(--bg-card,#fff);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;user-select:none;}
.bh-outreach-mode input{position:absolute;opacity:0;width:0;height:0;pointer-events:none;}
.bh-outreach-mode i{font-size:.8em;}
.bh-outreach-mode:hover{border-color:var(--brand-primary,#3d1a6f);color:var(--brand-primary,#3d1a6f);}
.bh-outreach-mode.is-on{background:var(--bg-purple-tint,#f0ebf7);border-color:var(--brand-primary,#3d1a6f);color:var(--brand-primary,#3d1a6f);}

/* touches -- reuse .bh-duration-chip; compact for single digits */
.bh-outreach-touch-chip{min-width:30px;text-align:center;padding:.2rem .45rem;font-size:.78rem;}

.bh-outreach-esc-ctl .bh-outreach-escday{width:56px;text-align:center;}
.bh-outreach-arrow{color:var(--text-muted,#9a93a6);font-size:.78rem;}
.bh-outreach-esc-icon{color:var(--brand-primary,#3d1a6f);font-size:.85rem;}
.bh-outreach-esc-ctl .bh-outreach-escaction{width:auto;min-width:210px;display:inline-block;}

/* live plain-English summary */
.bh-outreach-summary-text{flex:1 1 auto;min-width:0;font-size:.83rem;font-style:italic;color:var(--text-body,#534d61);}
.bh-outreach-declare{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding:.6rem .85rem;border:1px solid var(--brand-accent,#fdb913);border-left-width:4px;border-radius:8px;background:var(--bg-slate-tint,#f7f6fa);}
.bh-outreach-declare-text{font-size:.85rem;color:var(--text-body,#2a2433);}
.bh-outreach-split-btn{padding-left:0;font-size:.8rem;}

@media (max-width:768px){
    /* Stack the per-tier controls vertically so a fixed-width escalation select
       can never force the card (and the whole strategy panel) wider than the
       viewport -- was clipping Tier cards + footer on both edges. */
    .bh-outreach-tier-toggle{flex-wrap:wrap;}
    .bh-outreach-tier-body{flex-direction:column;align-items:stretch;gap:.6rem .9rem;}
    .bh-outreach-ctl{flex-wrap:wrap;}
    .bh-outreach-esc-ctl{row-gap:.4rem;}
    .bh-outreach-esc-ctl .bh-outreach-escaction{min-width:0;flex:1 1 100%;width:100%;}
    .bh-strategy-footer{flex-wrap:wrap;gap:.5rem;}
}

/* --- Phase 8E: Social Accounts connection rows (Jen-approved SSOT) --- */
.bh-connection-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    border: 1px solid var(--border-subtle, #e0e0e0);
    border-left-width: 4px;
    background: var(--bg-card, #ffffff);
    border-radius: 6px;
}
/* Left border = connection HEALTH, not platform identity (the platform is already
   shown by the section icon + header). Green = healthy, amber = token expiring,
   red = action needed (dead token OR last sync failed), grey = unknown/idle. The
   border echoes the row's status pill so both cues agree -- a calm border never
   sits next to a failed sync. Health hues follow the sanctioned traffic-light
   palette (ui-design-rules "Colour Exceptions") and are intentionally
   theme-invariant. The platform modifier (--fb/--ig/--li) is retained on the row
   for identity hooks but no longer drives the border colour. */
.bh-connection-row--health-ok     { border-left-color: var(--status-success-border, #28a745); }
.bh-connection-row--health-warn   { border-left-color: var(--status-warning-border, #e0a800); }
.bh-connection-row--health-danger { border-left-color: var(--status-danger-border, #dc3545); }
.bh-connection-row--health-muted  { border-left-color: var(--text-muted, #6c757d); }
.bh-connection-row__main { flex: 1 1 auto; min-width: 0; }
.bh-connection-row__name { font-weight: 600; color: var(--text-primary, #3d1a6f); }
.bh-connection-row__meta { font-size: 0.85rem; color: var(--text-muted, #6c757d); }
.bh-connection-row__actions { display: flex; gap: 0.25rem; flex: 0 0 auto; }

/* ===== Client Portal Brand Overview ===== */
.bh-overview-root { padding: 1rem 0; }
.bh-overview-chrome { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(0,0,0,0.08); }
.bh-overview-brandbar { display: flex; flex-direction: column; gap: 0.25rem; }
.bh-overview-eyebrow { font-size: 0.7rem; color: #fdb913; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.bh-overview-brandpicker { position: relative; }
.bh-overview-brandbutton { background: var(--bg-card, #fff); border: 1px solid var(--border-default, #d4d8e0); border-radius: 6px; padding: 0.5rem 1rem; font-size: 1rem; font-weight: 600; color: #3d1a6f; cursor: pointer; display: inline-flex; align-items: center; min-width: 240px; }
.bh-overview-brandbutton:hover { border-color: #3d1a6f; }
.bh-overview-branddropdown { min-width: 240px; max-height: 320px; overflow-y: auto; }
.bh-overview-branddropdown .bh-overview-branditem { padding: 0.5rem 1rem; cursor: pointer; }
.bh-overview-branddropdown .bh-overview-branditem:hover { background: var(--bg-purple-tint, #f0ebf7); }
.bh-overview-branddropdown .bh-overview-branditem-name { font-weight: 600; color: #3d1a6f; }
.bh-overview-branddropdown .bh-overview-branditem-agencies { font-size: 0.8rem; color: var(--text-muted, #666); }
.bh-overview-agencies { font-size: 0.85rem; color: var(--text-muted, #666); }
.bh-overview-agencies .agency-pill { display: inline-block; background: var(--bg-purple-tint, #f0ebf7); color: #3d1a6f; border-radius: 999px; padding: 0.15rem 0.5rem; margin: 0 0.25rem 0.25rem 0; font-size: 0.75rem; }
.bh-overview-periodbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-left: auto; }
.bh-overview-chips { display: flex; gap: 0.25rem; }
.bh-overview-chip { background: var(--bg-card, #fff); border: 1px solid var(--border-default, #d4d8e0); border-radius: 999px; padding: 0.35rem 0.85rem; font-size: 0.85rem; color: var(--text-secondary, #495057); cursor: pointer; }
.bh-overview-chip.active { background: #3d1a6f; border-color: #3d1a6f; color: #fff; }
/* Standalone period bar (Media Alerts + campaign coverage Summary): the same chip control as the
   Reports scope row, but presented as its own full-width panel with the portal's lavender chrome
   (was the raw FROM/TO .portal-date-range row). margin-left:auto from .bh-overview-periodbar is
   reset so it reads left-aligned, not pushed to the right edge. */
.bh-portal-periodbar { margin-left: 0; justify-content: flex-start; gap: 0.6rem 1rem; padding: 12px 20px; background: var(--bg-purple-tint, #f8f5fc); border: 1px solid var(--border-brand, #e0d4f0); border-radius: 10px; margin-bottom: 16px; }
.bh-portal-folderfield { display: inline-flex; align-items: center; gap: 0.4rem; }
.bh-portal-folderfield label { font-size: 0.8rem; font-weight: 600; color: var(--brand-primary, #3d1a6f); text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0; }
@media (max-width: 576px) {
    .bh-portal-periodbar .bh-portal-folderfield { flex-basis: 100%; }
    .bh-portal-periodbar .bh-portal-folderfield select { max-width: none !important; flex: 1; }
}

/* ===== Reports tab: brand-identity header + scope pills (folds Overview + Campaigns into one tab) ===== */
.bh-reports-chrome { padding: 0.85rem 0 0.75rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-default, rgba(0,0,0,0.08)); }
/* The global .tab-content rule carries a purple border-top; the portal stacks two .tab-content
   containers (the reports content area + the Overview sub-pane area), so each drew a stray purple
   line under the chrome. The chrome's own bottom divider is the single separator -- kill the rest. */
.portal-tab-content, .bh-overview-main > .tab-content { border-top: none; }
.bh-reports-identity { margin-bottom: 0.75rem; }
.bh-reports-identity .bh-overview-brandbar { gap: 0.15rem; }
/* Brand stops being a peer dropdown and reads as the client's identity (resolves the dueling-dropdowns). */
.bh-reports-identity .bh-overview-brandbutton { background: transparent; border: none; padding: 0; min-width: 0; font-size: 1.35rem; font-weight: 800; color: var(--page-title-color, #3d1a6f); }
.bh-reports-identity .bh-overview-brandbutton:hover { border: none; }
.bh-reports-identity .bh-overview-brandbutton.disabled { cursor: default; opacity: 1; }
.bh-reports-identity .bh-overview-brandbutton.disabled .bh-brand-caret { display: none; } /* single-brand: no switch affordance */
.bh-reports-identity .bh-brand-caret { font-size: 0.8rem; color: var(--text-muted, #888); }
.bh-reports-scoperow { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.bh-scope-pills { gap: 0.4rem; margin: 0; }
.bh-scope-pills .nav-link { display: flex; align-items: center; background: var(--bg-card, #fff); border: 1px solid var(--border-default, #d4d8e0); border-radius: 999px; color: var(--text-secondary, #495057); font-weight: 700; padding: 0.45rem 1.15rem; }
.bh-scope-pills .nav-link.active { background: #3d1a6f; border-color: #3d1a6f; color: #fff; }
.bh-scope-pills .nav-link:hover:not(.active) { border-color: #3d1a6f; color: #3d1a6f; }
.bh-reports-chrome #reportsPeriodBar { margin-left: auto; }
@media (max-width: 990px) {
    .bh-reports-chrome #reportsPeriodBar { margin-left: 0; }
}

/* ===== Client portal login splash -- multi-brand brand chooser (warm landing, not a data slap) ===== */
.bh-splash { padding: 2.5rem 1rem 3rem; max-width: 1100px; margin: 0 auto; }
.bh-splash-hero { text-align: center; margin-bottom: 2rem; }
.bh-splash-eyebrow { font-size: 0.72rem; letter-spacing: 0.12em; font-weight: 700; color: var(--brand-accent, #fdb913); text-transform: uppercase; }
.bh-splash-title { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; color: var(--page-title-color, #3d1a6f); margin: 0.4rem 0 0.5rem; }
.bh-splash-sub { font-size: 1rem; color: var(--text-secondary, #6a6580); margin: 0; }
.bh-splash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.1rem; }
.bh-splash-card { display: flex; flex-direction: column; text-align: left; background: var(--bg-card, #fff); border: 1px solid var(--border-default, #e6e4ee); border-radius: 14px; overflow: hidden; cursor: pointer; padding: 0; transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease; }
.bh-splash-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(40, 20, 70, 0.18); border-color: var(--bh-splash-accent, #cdb6f0); }
.bh-splash-card:focus-visible { outline: 2px solid var(--bh-splash-ink, var(--brand-primary, #3d1a6f)); outline-offset: 2px; }
.bh-splash-card-strip { height: 7px; background: var(--bh-splash-accent, linear-gradient(90deg, #3d1a6f, #7d1d61)); }
.bh-splash-card-body { display: flex; gap: 0.85rem; align-items: flex-start; padding: 1rem 1rem 0.6rem; }
.bh-splash-logo { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 11px; background: var(--bh-splash-accent, linear-gradient(135deg, #3d1a6f, #5a2d82)); color: var(--bh-splash-on-accent, #fdb913); font-weight: 800; font-size: 1.05rem; display: flex; align-items: center; justify-content: center; }
.bh-splash-main { flex: 1; min-width: 0; }
.bh-splash-name { display: block; font-weight: 800; color: var(--text-primary, #2a1250); font-size: 0.98rem; line-height: 1.2; }
.bh-splash-agencies { display: block; margin-top: 0.4rem; }
.bh-splash-meta { display: flex; flex-wrap: wrap; gap: 0.2rem 0.85rem; margin-top: 0.55rem; font-size: 0.72rem; color: var(--text-muted, #888); }
.bh-splash-count { font-weight: 700; color: var(--bh-splash-ink, var(--brand-primary, #3d1a6f)); }
.bh-splash-pill { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.04em; background: var(--bg-purple-tint, #f0ebf7); color: #3d1a6f; border-radius: 999px; padding: 2px 8px; margin-right: 4px; display: inline-block; text-transform: uppercase; }
.bh-splash-go { padding: 0 1rem 1rem; font-size: 0.78rem; font-weight: 700; color: var(--bh-splash-ink, var(--brand-primary, #3d1a6f)); }
.bh-splash-go i { margin-left: 4px; }
.bh-overview-customrange { display: inline-flex; gap: 0.4rem; align-items: center; }
/* Native date fields brought onto the control palette (bordered box, brand focus ring) so they read as standard form controls, not raw browser widgets. */
.bh-overview-customrange input[type="date"] { height: 32px; box-sizing: border-box; padding: 0.25rem 0.5rem; border: 1px solid var(--border-default, #d4d8e0); border-radius: 6px; font-size: 0.85rem; color: var(--text-secondary, #495057); background: var(--bg-card, #fff); }
.bh-overview-customrange input[type="date"]:focus { border-color: #3d1a6f; outline: none; box-shadow: 0 0 0 2px rgba(61, 26, 111, 0.15); }
.bh-overview-customrange input[type="date"]::-webkit-calendar-picker-indicator { opacity: 0.55; cursor: pointer; }
.bh-overview-customrange > span { font-size: 0.85rem; color: var(--text-muted, #666); }
/* Apply = compact pill sized to the period chips, not a chunky btn-sm that out-weights the Custom chip. */
.bh-overview-customrange #overviewApplyCustom { height: 32px; box-sizing: border-box; padding: 0.25rem 0.95rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; line-height: 1; }
/* Custom-range validation note (2-year cap etc.) -- own row under the scope row, full-width block. */
.bh-custom-msg { display: block; width: 100%; margin-top: 0.4rem; font-size: 0.82rem; font-weight: 600; color: var(--status-danger-text, #c0392b); }
.bh-overview-body { display: flex; gap: 1rem; }
.bh-overview-side { flex: 0 0 220px; }
.bh-overview-subnav .nav-link { color: var(--text-secondary, #495057); }
.bh-overview-subnav .nav-link.active { background: #3d1a6f; color: #fff; }
.bh-overview-main { flex: 1 1 auto; min-width: 0; }
@media (max-width: 990px) {
    .bh-overview-body { flex-direction: column; }
    .bh-overview-side { flex: 0 0 auto; }
}
.bh-overview-section { margin-top: 1.25rem; padding-top: 0.75rem; border-top: 1px solid var(--border-default, #e9ecef); }
.bh-overview-section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.bh-overview-section h5 { margin-bottom: 0.75rem; }
/* Transient sub-view placeholder ("Loading X...") rendered as a skeleton block: text hidden, shimmer shown. Covers every Overview sub-view that paints .bh-overview-loading before its AJAX returns. */
.bh-overview-loading { min-height: 240px; border-radius: 10px; font-size: 0; color: transparent; user-select: none; background: linear-gradient(90deg, var(--bg-subtle, #eef0f3) 0%, var(--bg-muted, #dde1e6) 50%, var(--bg-subtle, #eef0f3) 100%); background-size: 200% 100%; animation: bh-skel-shimmer 1.4s ease-in-out infinite; }
.bh-overview-empty { padding: 1.5rem; color: var(--text-muted, #666); font-size: 0.9rem; text-align: center; font-style: italic; }
/* Honest error state -- visually distinct from the muted "no data" note, so a failed/timed-out load never reads as "empty". */
.bh-overview-error { padding: 1.25rem 1.5rem; color: var(--status-danger-text, #9a3412); background: var(--status-danger-bg, #fdecea); border: 1px solid var(--status-danger-border, #f5c6cb); border-radius: 8px; font-size: 0.9rem; text-align: center; }
.bh-overview-error i { color: var(--status-danger-text, #c0392b); }
/* Center the empty/error note inside a fixed-height chart box instead of pinning it to the top. */
.portal-chart-container > .bh-overview-empty,
.portal-chart-container > .bh-overview-error { height: 100%; display: flex; align-items: center; justify-content: center; margin: 0; }
.bh-overview-rowcount { color: var(--text-muted, #666); font-size: 0.8rem; margin-bottom: 0.5rem; }
.bh-overview-footnote { color: var(--text-muted, #666); font-size: 0.75rem; margin-top: 0.5rem; font-style: italic; }
.bh-overview-openlink { color: #3d1a6f; font-weight: 500; text-decoration: underline; }
.bh-overview-openlink:hover { color: var(--brand-primary, #3d1a6f); text-decoration: none; }

/* Overview dashboard (O1-O8) -- scrolling grid of titled cards. Reuses .bh-kpi for
   tiles, .portal-chart-container for chart chrome, and the score/sentiment colour
   SSOTs for fills. Dark-mode safe via tokens; no new KPI classes. (2026-06-23) */
.bh-ov-dashboard { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.bh-ov-card { background: var(--bg-card, #ffffff); border: 1px solid var(--border-default, #e9ecef); border-radius: 12px; padding: 0.85rem 1rem 1rem; min-width: 0; }
.bh-ov-card--full { grid-column: 1 / -1; }
.bh-ov-card-title { color: var(--text-primary, #3d1a6f); font-size: 0.95rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.65rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--brand-accent, #fdb913); }
.bh-ov-card-title i { color: var(--brand-accent, #fdb913); }
.bh-ov-card-body { min-width: 0; }
.bh-ov-card-body .bh-kpi-row { margin: 0; }
.bh-ov-card-body .portal-chart-container { margin: 0; border: 0; background: transparent; padding: 0; }
.bh-ov-pairwrap { display: flex; justify-content: center; }
.bh-ov-subtitle { color: var(--text-secondary, #495057); font-size: 0.82rem; font-weight: 600; text-align: center; margin-bottom: 0.4rem; }
.bh-ov-sov-table { margin-top: 1rem; }
@media (max-width: 768px) { .bh-ov-dashboard { grid-template-columns: 1fr; } .bh-ov-card { grid-column: 1 / -1; } }
[data-theme="dark"] .bh-ov-card { background: var(--bg-card, #1c1726); border-color: var(--border-default, #3a2f52); }
[data-theme="dark"] .bh-ov-card-title { color: var(--text-heading, #e5d9ff); }

/* Campaigns comparison tab -- click-to-sort headers. Reuses .table-sm + the cell/spark/posbar
   helpers; only the sort affordance is new. Sort arrow via ::after; dark-mode safe via tokens. (2026-06-23) */
.bh-ov-sortable th.bh-ov-sortcol { cursor: pointer; user-select: none; white-space: nowrap; }
.bh-ov-sortable th.bh-ov-sortcol:hover { color: var(--brand-accent, #fdb913); }
.bh-ov-sortable th.bh-ov-sortcol::after { content: "\2195"; opacity: 0.35; margin-left: 0.35em; font-size: 0.8em; }
.bh-ov-sortable th.bh-ov-sortcol--active-asc::after { content: "\2191"; opacity: 1; }
.bh-ov-sortable th.bh-ov-sortcol--active-desc::after { content: "\2193"; opacity: 1; }

/* ============================================================
   People picker -- reassign-owner modal + reusable team-member selector
   ============================================================ */
.bh-picker-intro { color: var(--text-body, #3a3a3a); margin: 0 0 1rem; }
.bh-picker-list { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.75rem; }
.bh-picker-row { display: flex; align-items: center; gap: 0.85rem; padding: 0.55rem 0.85rem; border: 1px solid var(--border-subtle, #e7e3f0); border-radius: 10px; background: var(--bg-card, #ffffff); cursor: pointer; transition: background .12s ease, border-color .12s ease, box-shadow .12s ease; }
.bh-picker-row:hover, .bh-picker-row:focus-visible { background: var(--bg-gold-tint, #fff8e6); border-color: #fdb913; box-shadow: 0 1px 5px rgba(61, 26, 111, 0.08); outline: none; }
.bh-picker-avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #3d1a6f 0%, #5a2d82 100%); color: #ffffff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.82rem; letter-spacing: 0.5px; }
.bh-picker-meta { flex: 1 1 auto; min-width: 0; }
.bh-picker-name { font-weight: 600; color: var(--text-heading, #2c2340); line-height: 1.25; }
.bh-picker-email { font-size: 0.82rem; color: var(--text-muted, #6c757d); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bh-picker-select { flex: 0 0 auto; pointer-events: none; }
.bh-picker-row:hover .bh-picker-select { background: #3d1a6f; border-color: #3d1a6f; }
.bh-picker-pageinfo { color: var(--text-muted, #6c757d); font-size: 0.85rem; margin: 0 0.75rem; }
#teamSearchPager { display: flex; align-items: center; justify-content: center; }
[data-theme="dark"] .bh-picker-row { background: var(--bg-subtle, #221b33); border-color: var(--border-subtle, #3a2f52); }
[data-theme="dark"] .bh-picker-row:hover, [data-theme="dark"] .bh-picker-row:focus-visible { background: rgba(253, 185, 19, 0.12); border-color: #fdb913; }
[data-theme="dark"] .bh-picker-name { color: var(--text-body, #e5e0f0); }
@media (max-width: 600px) { .bh-picker-email { white-space: normal; } }

/* ===== Awards Page (AwardEntries.aspx) ===== */
/* Moved verbatim from the page head <style> block (no visual change). */
/* NOTE: bare .readiness-panel here sets a DISJOINT property set (border/radius/ */
/* overflow/margin-bottom) from the global slide-out .readiness-panel above -- they */
/* coexist by union on #readinessPanel; order is immaterial. The companion .readiness- */
/* panel-header/.readiness-panel-body names are unique to this page (the slide-out */
/* drawer uses .readiness-header/.readiness-body). */

/* RTE narrative editor gets min-height for comfortable editing */
.modalPopup .bh-rte-editor { min-height: 200px; }
.retainer-info { background: var(--bg-subtle, #f8f9fa); border-radius: 6px; padding: 12px 16px; }
.empty-state { padding: 60px 20px; text-align: center; }
.empty-state i { font-size: 3rem; color: var(--brand-primary, #3d1a6f); opacity: 0.4; }
/* CTA-button icons inside an empty state must not inherit the giant decorative-icon styling */
.empty-state .btn i,
.empty-state a i { font-size: inherit; color: inherit; opacity: 1; margin-bottom: 0; }
.entry-detail-cell { white-space: pre-wrap; background: var(--bg-subtle, #f8f9fa); border-left: 3px solid var(--brand-accent, #fdb913); padding: 12px 16px !important; }

/* ===== Wizard Progress Bar ===== */
.wizard-progress {
    display: flex;
    margin-bottom: 2rem;
    border-bottom: 2px solid var(--border-light, #e9ecef);
    position: relative;
}
.wizard-progress-step {
    flex: 1;
    text-align: center;
    padding: 12px 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted, #adb5bd);
    position: relative;
    cursor: default;
    transition: color 0.2s;
}
.wizard-progress-step .step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--bg-muted, #e9ecef);
    color: var(--text-muted, #adb5bd);
    font-size: 0.8rem;
    margin-right: 6px;
    transition: background 0.2s, color 0.2s;
}
.wizard-progress-step.completed {
    color: var(--brand-primary, #3d1a6f);
}
.wizard-progress-step.completed .step-number {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.wizard-progress-step.active {
    color: var(--brand-primary, #3d1a6f);
}
.wizard-progress-step.active .step-number {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.wizard-progress-step.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--brand-accent, #fdb913);
}

/* ===== Wizard Steps ===== */
/* Override survey wizard .wizard-step centering (BUZZHub.css line 7175) */
/* Use sibling selector on #wizardProgress (plain div) -- asp:Panel ID gets prefixed */
#wizardProgress ~ .wizard-step {
    display: block;
    text-align: left;
    animation: fadeIn 0.2s ease;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ===== Step 1: Setup ===== */
.section-preview-table {
    font-size: 0.85rem;
}
.section-preview-table th {
    background: var(--bg-subtle, #f8f9fa);
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.custom-sections-editor .form-control {
    font-size: 0.85rem;
}
.weight-total {
    font-weight: 700;
    font-size: 0.9rem;
}
.weight-total.invalid {
    color: var(--status-danger, #dc3545);
}
.weight-total.valid {
    color: var(--status-success, #28a745);
}

/* ===== Step 2: Generate ===== */
.generate-container {
    text-align: center;
    padding: 3rem 2rem;
}
.generate-progress {
    max-width: 500px;
    margin: 2rem auto;
}
.generate-progress .progress {
    height: 8px;
    border-radius: 4px;
    background: var(--bg-muted, #e9ecef);
}
.generate-progress .progress-bar {
    background: var(--brand-primary, #3d1a6f);
    transition: width 0.3s ease;
}

/* ===== Step 3: Edit Sections ===== */
.sections-editor-container {
    display: flex;
    gap: 1.5rem;
    min-height: 350px;
}
.section-sidebar {
    width: 260px;
    flex-shrink: 0;
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    background: var(--bg-surface, #fff);
    overflow: hidden;
}
.section-sidebar-header {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 10px 14px;
    font-weight: 600;
    font-size: 0.85rem;
}
.section-sidebar-list {
    max-height: 350px;
    overflow-y: auto;
}
.section-item {
    padding: 10px 14px;
    border-bottom: 1px solid var(--bg-muted, #f0f0f0);
    cursor: pointer;
    transition: background 0.15s;
    border-left: 3px solid transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.section-item:hover {
    background: var(--bg-subtle, #f8f9fa);
}
.section-item.active {
    background: var(--bg-purple-tint, #f8f0ff);
    border-left-color: var(--brand-primary, #3d1a6f);
}
.section-item-name {
    font-size: 0.85rem;
    font-weight: 500;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.section-item-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    margin-left: 8px;
}
.weight-badge {
    font-size: 0.7rem;
    padding: 2px 6px;
    border-radius: 8px;
    background: var(--bg-muted, #e9ecef);
    color: var(--text-primary, #495057);
    white-space: nowrap;
}
.word-pill {
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
    white-space: nowrap;
}
.word-pill.green { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.word-pill.amber { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.word-pill.red { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }

.section-editor-area {
    flex: 1;
    min-width: 0;
}
.section-editor-area .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
}
.section-editor-area .section-header h5 {
    margin: 0;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1rem;
}
.section-editor-area .section-header .section-meta {
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
}
.section-editor-area .bh-rte-editor {
    min-height: 300px;
}
.word-count-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 0.8rem;
    color: var(--text-secondary, #6c757d);
}

/* ===== Step 4: Review ===== */
.review-section {
    margin-bottom: 1.5rem;
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
    overflow: hidden;
}
.review-section-header {
    background: var(--bg-subtle, #f8f9fa);
    padding: 10px 16px;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--brand-primary, #3d1a6f);
    border-bottom: 1px solid var(--border-light, #e9ecef);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.review-section-body {
    padding: 16px;
    font-size: 0.9rem;
    line-height: 1.6;
}
.review-summary-table td, .review-summary-table th {
    font-size: 0.85rem;
}

/* ===== AI full-narrative draft (reference panel) ===== */
.narrative-draft-toggle {
    cursor: pointer;
    user-select: none;
}
.narrative-draft-toggle .fa-chevron-right {
    transition: transform 0.15s ease;
}
.narrative-draft-toggle.is-open .fa-chevron-right {
    transform: rotate(90deg);
}
.narrative-draft-body {
    font-size: 0.9rem;
    line-height: 1.6;
}

/* ===== Template Modal ===== */
.template-list-view, .template-editor-view {
    min-height: 300px;
}
.template-section-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
    padding: 8px;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
}
.template-section-row .form-control {
    font-size: 0.85rem;
}
.template-section-guidance {
    margin-top: 4px;
}
.template-section-guidance textarea {
    font-size: 0.8rem;
    resize: vertical;
}

/* Back to list link */
.back-to-list {
    display: inline-flex;
    align-items: center;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 500;
    text-decoration: none;
    margin-bottom: 1rem;
}
.back-to-list:hover {
    color: var(--brand-accent, #fdb913);
    text-decoration: none;
}

/* Barcelona badge */
/* ===== Readiness Score Panel (Feature 1) ===== */
.readiness-panel {
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1rem;
}
.readiness-panel-header {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 10px 16px;
    font-weight: 600;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.readiness-panel-body {
    padding: 14px 16px;
    background: var(--bg-surface, #fff);
}
.readiness-badge-strong { background: var(--status-success, #28a745); color: var(--text-on-dark, #fff); }
.readiness-badge-moderate { background: #ffc107; color: #212529; }
.readiness-badge-weak { background: var(--status-danger, #dc3545); color: var(--text-on-dark, #fff); }
.readiness-table { font-size: 0.82rem; }
.readiness-table th { background: var(--bg-subtle, #f8f9fa); color: var(--brand-primary, #3d1a6f); font-weight: 600; }

/* ===== Outcome Tracker Row (Feature 2) ===== */
.outcome-row td { background: var(--bg-gold-tint, #fffdf0); border-top: 2px solid var(--brand-accent, #fdb913) !important; }
.outcome-tracker { padding: 10px 4px; }
.outcome-tracker .form-group { margin-bottom: 0.5rem; }
.outcome-tracker label { font-size: 0.78rem; font-weight: 600; margin-bottom: 2px; }
.outcome-tracker .form-control { font-size: 0.85rem; }

/* ===== Category Suggestions Panel (Feature 3) ===== */
.suggestions-panel {
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1rem;
}
.suggestions-panel-header {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
    padding: 10px 16px;
    font-weight: 600;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}
.suggestions-panel-body { padding: 14px 16px; background: var(--bg-surface, #fff); }
.suggestions-table { font-size: 0.82rem; }
.suggestions-table th { background: var(--bg-subtle, #f8f9fa); color: var(--brand-primary, #3d1a6f); font-weight: 600; }
.readiness-bar { height: 6px; border-radius: 3px; background: var(--bg-muted, #e9ecef); display: inline-block; width: 60px; vertical-align: middle; margin-right: 4px; }
.readiness-bar-fill { height: 6px; border-radius: 3px; }
.readiness-bar-strong { background: var(--status-success, #28a745); }
.readiness-bar-moderate { background: #ffc107; }
.readiness-bar-weak { background: var(--status-danger, #dc3545); }

/* ===== Deadline Countdown Badges ===== */
.deadline-badge { font-size: 0.72rem; padding: 2px 7px; border-radius: 8px; white-space: nowrap; }
.deadline-green { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.deadline-amber { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.deadline-red { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }
.deadline-grey { background: var(--bg-muted, #e9ecef); color: var(--text-secondary, #6c757d); }

/* ===== Programme info in entries ===== */
.programme-tag { font-size: 0.72rem; padding: 2px 7px; border-radius: 8px; background: #e8dff5; color: var(--brand-primary, #3d1a6f); white-space: nowrap; }
.fee-info { font-size: 0.75rem; color: var(--text-secondary, #6c757d); }

/* ===== Evidence / Asset Bundle (Phase 2) ===== */
.evidence-row td { background: var(--status-info-bg, #f0f7ff); border-top: 2px solid var(--brand-primary, #3d1a6f) !important; }
.evidence-panel { padding: 10px 4px; }
.evidence-panel-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border-default, #dee2e6);
}
.evidence-panel-header h6 { margin: 0; color: var(--brand-primary, #3d1a6f); font-weight: 700; font-size: 0.85rem; }
.asset-table { font-size: 0.82rem; margin-bottom: 10px; }
.asset-table th { background: var(--bg-subtle, #f8f9fa); color: var(--brand-primary, #3d1a6f); font-weight: 600; font-size: 0.78rem; }
.asset-table td { vertical-align: middle; }
.asset-type-icon { width: 28px; text-align: center; }
.asset-label-input { border: 1px solid transparent; background: transparent; padding: 2px 6px; font-size: 0.82rem; width: 100%; }
.asset-label-input:hover { border-color: var(--border-default, #dee2e6); background: var(--bg-surface, #fff); }
.asset-label-input:focus { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-surface, #fff); outline: none; }
.asset-badge { font-size: 0.68rem; padding: 2px 6px; border-radius: 8px; }
.asset-badge-count { background: #e8dff5; color: var(--brand-primary, #3d1a6f); }
.asset-badge-complete { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.asset-badge-partial { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }

.evidence-dropzone {
    border: 2px dashed var(--border-default, #dee2e6); border-radius: 8px; padding: 20px; text-align: center;
    color: var(--text-secondary, #6c757d); cursor: pointer; transition: border-color 0.2s, background 0.2s;
    min-height: 80px; margin-bottom: 10px;
}
.evidence-dropzone:hover { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-purple-tint, #f8f0ff); }
.evidence-dropzone.dz-drag-hover { border-color: var(--brand-accent, #fdb913); background: var(--bg-gold-tint, #fffdf0); }
.evidence-dropzone i { font-size: 1.5rem; margin-bottom: 6px; }
.evidence-dropzone .dz-message { font-size: 0.82rem; }

.suggested-assets-section { margin-top: 10px; padding: 10px; background: var(--bg-subtle, #f8f9fa); border-radius: 8px; }
.suggested-assets-section h6 { font-size: 0.8rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); margin-bottom: 8px; }
.suggestion-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 6px 10px; border-bottom: 1px solid var(--border-light, #e9ecef); font-size: 0.82rem;
}
.suggestion-item:last-child { border-bottom: none; }
.suggestion-item .suggestion-desc { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ===== Phase 3: Audit Trail / History ===== */
.history-row td { background: #f5f0ff; border-top: 2px solid #6c757d !important; }
.history-panel { padding: 10px 4px; }
.history-panel-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border-default, #dee2e6);
}
.history-panel-header h6 { margin: 0; color: var(--brand-primary, #3d1a6f); font-weight: 700; font-size: 0.85rem; }
.audit-timeline { list-style: none; padding: 0; margin: 0; }
.audit-timeline-item {
    display: flex; align-items: flex-start; padding: 8px 0;
    border-bottom: 1px solid var(--bg-muted, #f0f0f0); font-size: 0.82rem;
}
.audit-timeline-item:last-child { border-bottom: none; }
.audit-icon {
    width: 32px; height: 32px; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; margin-right: 10px;
    flex-shrink: 0; font-size: 0.75rem; color: var(--text-on-dark, #fff);
}
.audit-icon-created { background: var(--status-success, #28a745); }
.audit-icon-status { background: var(--brand-primary, #3d1a6f); }
.audit-icon-outcome { background: var(--brand-accent, #fdb913); color: #212529 !important; }
.audit-icon-section { background: var(--status-info, #17a2b8); }
.audit-icon-asset-add { background: #6c757d; }
.audit-icon-asset-remove { background: var(--status-danger, #dc3545); }
.audit-icon-snapshot { background: var(--brand-primary, #3d1a6f); }
.audit-content { flex: 1; min-width: 0; }
.audit-content strong { font-weight: 600; }
.audit-meta { font-size: 0.72rem; color: var(--text-secondary, #6c757d); margin-top: 2px; }
.audit-snapshot-link { font-size: 0.75rem; color: var(--brand-primary, #3d1a6f); cursor: pointer; text-decoration: underline; }

/* ===== Phase 4: Awards Season Dashboard ===== */
/* KPI tiles use canonical .bh-kpi / .bh-kpi-row (BUZZHub.css). */
.dashboard-panel {
    border: 1px solid var(--border-default, #dee2e6); border-radius: 8px; overflow: hidden; margin-bottom: 1rem;
}
.dashboard-panel-header {
    background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff); padding: 10px 16px;
    font-weight: 600; font-size: 0.85rem;
    display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.dashboard-panel-body { padding: 14px 16px; background: var(--bg-surface, #fff); }
.season-toggle { display: flex; gap: 4px; }
.season-toggle .btn { font-size: 0.75rem; padding: 3px 12px; border-radius: 20px; }
/* Match Bootstrap's :not(:disabled):not(.disabled).active specificity (0,4,0) so gold wins */
.season-toggle .btn.active,
.season-toggle .btn:not(:disabled):not(.disabled).active {
    background-color: var(--brand-accent, #fdb913);
    color: #212529;
    border-color: var(--brand-accent, #fdb913);
}
/* Sub-panel for Pipeline chart + Upcoming Deadlines list (not a KPI tile) */
.aw-subpanel {
    border: 1px solid var(--border-default, #dee2e6); border-radius: 8px; padding: 14px;
    background: var(--bg-surface, #fff); height: 100%;
}
.aw-subpanel h6 { font-size: 0.78rem; color: var(--text-secondary, #6c757d); margin-bottom: 8px; text-transform: uppercase; }
.deadline-card {
    border: 2px solid var(--border-default, #dee2e6); border-radius: 8px; padding: 10px 14px;
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px; font-size: 0.82rem;
}
.deadline-card.border-green { border-color: var(--status-success, #28a745); }
.deadline-card.border-amber { border-color: #ffc107; }
.deadline-card.border-red { border-color: var(--status-danger, #dc3545); }
.deadline-card.border-grey { border-color: #6c757d; }
.deadline-card .prog-name { font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.deadline-card .days-badge { font-weight: 700; margin-left: 10px; white-space: nowrap; }
.pipeline-chart-container { height: 60px; margin: 10px 0; }
/* Sub-section title (used where a yellow header would be too heavy) */
.aw-section-title {
    font-size: 1.05rem; color: var(--brand-primary, #3d1a6f);
    margin: 0 0 0.5rem; padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
/* Cold-state welcome */
.aw-welcome {
    max-width: 620px;
    margin: 3rem auto;
    padding: 1rem;
    text-align: center;
}
.aw-welcome-title {
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.4rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
}
.aw-welcome-lede {
    margin: 0 0 1.5rem;
    font-size: 0.95rem;
    line-height: 1.5;
}
.aw-welcome-secondary { margin-top: 0.9rem; }
.aw-welcome-link {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-weight: 500;
}
.aw-welcome-link:hover {
    color: var(--brand-accent, #fdb913);
    text-decoration: none;
}
.aw-welcome-link i { font-size: 0.7rem; opacity: 0.7; }

/* Shared feature tile row -- used on Dashboard cold-state and Programmes empty state */
.aw-feature-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    max-width: 960px;
    margin: 2.5rem auto 0;
    padding: 0 1rem;
}
.aw-feature-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1rem 1rem 1.1rem;
    background: var(--bg-subtle, #fafafa);
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 8px;
}
.aw-feature-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-light, #e9ecef);
    font-size: 0.95rem;
    margin-bottom: 0.6rem;
}
.aw-feature-name {
    font-size: 0.85rem;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.2rem;
}
.aw-feature-desc {
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--text-secondary, #6c757d);
}

/* Collapsible scanner row -- triggered from page-actions; collapsed = zero footprint */
.aw-scanner {
    border: 1px solid var(--border-light, #e9ecef); border-radius: 8px;
    background: var(--bg-surface, #fff);
}
.aw-scanner:not(.expanded) {
    border: 0; background: transparent; margin: 0 !important;
}
.aw-scanner:not(.expanded) .aw-scanner-toggle { display: none; }
.aw-scanner-toggle {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; padding: 10px 14px; background: transparent; border: 0;
    color: var(--brand-primary, #3d1a6f); font-weight: 600; font-size: 0.9rem;
    text-align: left; cursor: pointer;
}
.aw-scanner-toggle:hover { background: var(--bg-purple-tint, #f8f0ff); border-radius: 8px; }
.aw-scanner-toggle:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 2px; }
.aw-scanner-chev { transition: transform 0.2s ease; font-size: 0.75rem; opacity: 0.7; }
.aw-scanner.expanded .aw-scanner-chev { transform: rotate(180deg); }
.aw-scanner-body { padding: 0 14px 14px; }

/* Slim season toggle bar -- replaces the old gold "Awards Season Dashboard" header */
.aw-season-bar { display: flex; justify-content: flex-end; align-items: center; margin-bottom: 0.75rem; }

/* Entries list head -- inline filter replaces the centered crm-search pill */
.aw-entries-section { margin-bottom: 1.5rem; }
.aw-entries-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin-bottom: 0.5rem; padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--border-light, #e9ecef);
}
.aw-entries-head .aw-section-title { margin: 0; padding: 0; border: 0; flex: 1; }
.aw-entries-filter { max-width: 280px; flex: 0 0 auto; }
@media (max-width: 600px) {
    .aw-entries-head { flex-direction: column; align-items: stretch; }
    .aw-entries-filter { max-width: 100%; }
}

/* Quiet line shown when the season has no budget yet (replaces 4x $0 KPI strip) */
.aw-budget-empty {
    font-size: 0.82rem; color: var(--text-secondary, #6c757d);
    padding: 0.5rem 0.85rem; margin-bottom: 0.75rem;
    border-left: 3px solid var(--border-default, #dee2e6);
    background: var(--bg-subtle, #fafafa); border-radius: 0 4px 4px 0;
}

/* Spacing above the entries list (under the season summary) */

/* ============================================================================
   Bulk paste grid -- spreadsheet-style data entry
   Shared skin for the paste-from-Excel grids:
   CRMClients "Quick Add Clients" + CRMOutlets "Bulk Import Outlets".
   The cell gridline is the ONLY border; inputs fill the cell edge-to-edge so the
   grid reads like a spreadsheet and matches the paste affordance. All colours
   tokenised -- dark mode flips automatically (no [data-theme] block needed).
   Keep the .table class on the table (JS selectors depend on it); this class is
   added alongside it and replaces table-bordered + thead.table-light.
   ============================================================================ */
.bh-paste-grid {
    border-collapse: separate;
    border-spacing: 0;
    background: var(--bg-card, #fff);
    margin-bottom: 0;
}
.bh-paste-grid thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg-slate-tint, #f1f0f4);
    color: var(--page-title-color, #3d1a6f);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
    padding: 0.35rem 0.5rem;
    border-top: 0;
    border-right: 1px solid var(--border-default, #ddd);
    border-bottom: 2px solid var(--border-default, #ddd);
}
.bh-paste-grid thead th:first-child {
    border-left: 1px solid var(--border-default, #ddd);
}
/* Body cells = the gridlines. Stay transparent so row-state tints
   (row-error / row-existing) and the inline invalid-email fill show through. */
.bh-paste-grid tbody td {
    padding: 0;
    border-top: 0;
    border-right: 1px solid var(--border-default, #ddd);
    border-bottom: 1px solid var(--border-default, #ddd);
    background: transparent;
    vertical-align: middle;
}
.bh-paste-grid tbody td:first-child {
    border-left: 1px solid var(--border-default, #ddd);
}
/* Inputs fill the cell: borderless, square, edge-to-edge */
.bh-paste-grid tbody td > input.form-control,
.bh-paste-grid tbody td > input.form-control-sm {
    height: 30px;
    width: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: 0.2rem 0.5rem;
    font-size: 0.82rem;
    color: var(--text-body, #555);
}
/* Excel-style selected cell: inset ring, no glow spill onto neighbours */
.bh-paste-grid tbody td > input.form-control:focus,
.bh-paste-grid tbody td > input.form-control-sm:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--brand-primary, #3d1a6f);
}
/* Row-number column -- quiet spreadsheet row gutter */
.bh-paste-grid tbody td.bulk-row-num {
    background: var(--bg-slate-tint, #f1f0f4);
    color: var(--text-tertiary, #888);
    font-size: 0.72rem;
    font-weight: 600;
    text-align: center;
    padding: 0 0.25rem;
    white-space: nowrap;
}
.bh-paste-grid tbody td.bulk-client-status,
.bh-paste-grid tbody td.bulk-outlet-status {
    text-align: center;
    padding: 0 0.25rem;
}
/* Hover ribbon for scanning across many rows (transient -- ok over state tint) */
.bh-paste-grid tbody tr:hover > td {
    background: var(--bg-gold-tint, #fff5dc);
}
.bh-paste-grid tbody tr:hover > td.bulk-row-num {
    background: var(--bg-slate-tint-2, #f8f7fa);
}
/* Per-row clear (trash) button -- reveals on row hover. Generic to every paste grid
   (was page-local in CRMClients, hoisted here so all consumers share one source). */
.bh-paste-grid tbody td.bulk-row-num .bulk-row-clear {
    background: transparent;
    border: 0;
    padding: 0 4px;
    margin-left: 4px;
    color: var(--text-tertiary, #9ca3af);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease;
    font-size: 0.85rem;
}
.bh-paste-grid tbody tr:hover td.bulk-row-num .bulk-row-clear { opacity: 1; }
.bh-paste-grid tbody td.bulk-row-num .bulk-row-clear:hover { color: var(--status-danger, #dc3545); }
/* Row-level validation error tint + invalid-cell fill (cells are transparent so both show). */
.bh-paste-grid tbody tr.row-error > td { background: rgba(220, 53, 69, 0.06); }
.bh-paste-grid tbody td > input.form-control-sm.bulk-cell-invalid,
.bh-paste-grid tbody td > input.form-control.bulk-cell-invalid {
    background-color: #fde2e2;
    color: #991b1b;
}
[data-theme="dark"] .bh-paste-grid tbody td > input.form-control-sm.bulk-cell-invalid,
[data-theme="dark"] .bh-paste-grid tbody td > input.form-control.bulk-cell-invalid {
    background-color: #4a1212;
    color: #fca5a5;
}
.aw-entries-section { margin-top: 1.25rem; }

/* ============================================================================
   Client search typeahead (shared SSOT)
   Searchable client picker used by Reporting + Coverage Manager. Markup pairs a
   .client-search-container (input + absolutely-positioned results) with a
   .client-selected-display chip. All colours tokenised (dark-safe).
   ============================================================================ */
.client-search-container {
    position: relative;
    max-width: 500px;
}

.client-search-input {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
    font-size: 14px;
    background: var(--bg-surface, #fff);
    color: var(--text-primary, #333);
}

.client-search-input::placeholder {
    color: var(--text-muted, #999);
}

.client-search-input:focus {
    outline: none;
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 3px rgba(108, 92, 231, 0.1);
}

.client-search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-top: none;
    border-radius: 0 0 6px 6px;
    max-height: 250px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.client-search-results.show {
    display: block;
}

.client-search-item {
    padding: 10px 15px;
    cursor: pointer;
    border-bottom: 1px solid var(--bg-muted, #f0f0f0);
    color: var(--text-primary, #333);
}

.client-search-item:hover {
    background: var(--bg-subtle, #f8f9fa);
}

.client-search-item:last-child {
    border-bottom: none;
}

.client-search-loading, .client-search-empty {
    padding: 15px;
    text-align: center;
    color: var(--text-secondary, #666);
}

.client-selected-display {
    display: flex;
    align-items: center;
    padding: 10px 15px;
    background: var(--status-success-bg, #e8f5e9);
    border: 1px solid var(--status-success-border, #c8e6c9);
    border-radius: 6px;
    max-width: 500px;
}

.client-selected-display .client-name {
    flex-grow: 1;
    font-weight: 500;
    color: var(--status-success-text, #2e7d32);
}

.client-selected-display .btn-change {
    font-size: 12px;
    padding: 4px 10px;
}

/* ============================================================================
   Report Scope comboboxes (Reporting > Report Scope)
   Type-to-search Retainer + Campaign drill-down + a cross-retainer story finder.
   Each combobox is layered over a hidden native <select> (the value holder, so all
   existing scope logic is untouched) and reuses the .client-search-* SSOT family.
   All colours tokenised (var(--token,#fallback)) -- dark-safe like the parent family.
   ============================================================================ */
.scope-combo { max-width: 100%; }
.scope-combo .client-search-input { padding-right: 34px; }   /* room for the clear (x) button */
.scope-combo-clear {
    position: absolute; top: 8px; right: 8px;
    border: none; background: transparent; cursor: pointer; padding: 4px;
    line-height: 1; font-size: 14px; color: var(--text-muted, #999); display: none;
}
.scope-combo-clear.show { display: inline-flex; }
.scope-combo-clear:hover { color: var(--brand-primary, #3d1a6f); }
/* Two-line result row: campaign title + its parent retainer (story finder). */
.combo-item-sub { display: block; font-size: 12px; color: var(--text-muted, #999); margin-top: 2px; }
.client-search-item.is-reset { font-style: italic; color: var(--text-secondary, #666); }
.client-search-item .combo-status {
    float: right; font-size: 11px; color: var(--text-muted, #999);
    text-transform: uppercase; letter-spacing: .02em; margin-left: 0.5rem;
}

/* ============================================================================
   Coverage Manager (Meltwater Coverage Convergence, Phase 6)
   Client-first triage: draining inbox (left) + story accordions (right).
   All colours tokenised (var(--token,#fallback)); dark overrides at the tail.
   ============================================================================ */
.cm-picker-bar { display: flex; align-items: center; gap: 0.6rem; margin: 0.5rem 0 0.75rem; }
.cm-picker-label { font-weight: 700; color: var(--text-secondary, #666); margin: 0; font-size: 0.85rem; }
/* Typeahead picker sizing within the flex bar (shared .client-search-* family). */
.cm-picker-bar .client-search-container { max-width: 360px; flex: 1 1 auto; }
.cm-search-dot { display: inline-block; width: 8px; height: 8px; margin-left: 0.45rem; border-radius: 50%; background: var(--status-success-text, #28a745); vertical-align: middle; }
.cm-noclient { color: var(--text-tertiary, #888); font-size: 0.85rem; padding: 1rem 0.25rem; display: flex; align-items: center; gap: 0.4rem; }

.cm-client-bar {
    display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
    background: var(--bg-subtle, #f8f9fa); border: 1px solid var(--border-default, #ddd);
    border-left: 4px solid var(--brand-accent, #fdb913); border-radius: 9px;
    padding: 0.55rem 0.8rem; margin-bottom: 0.85rem;
}
.cm-client-bar .cm-cb-name { font-weight: 800; color: var(--brand-primary, #3d1a6f); font-size: 1rem; }
.cm-client-bar .cm-cb-meta { color: var(--text-secondary, #666); font-size: 0.78rem; }
.cm-client-bar .cm-cb-flag { margin-left: auto; font-size: 0.74rem; font-weight: 700; color: var(--status-info-text, #004085); }
.cm-picker-bar .cm-cb-meta { color: var(--text-secondary, #666); font-size: 0.78rem; }
.cm-picker-bar .client-selected-display { gap: 0.6rem; }

/* ---- Landing state: pick a monitored brand (left) + how-it-works explainer (right) ---- */
.cm-landing { margin: 0.5rem 0 0.5rem; }
.cm-landing-split { display: grid; grid-template-columns: 1fr 300px; gap: 1.25rem; align-items: start; }
.cm-landing-pick { background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-radius: 12px; padding: 1rem 1.1rem; box-shadow: 0 2px 10px rgba(61,26,111,0.05); }
.cm-landing-head { font-weight: 800; font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-primary, #3d1a6f); margin-bottom: 0.7rem; }
.cm-landing-search { display: flex; align-items: center; gap: 0.55rem; background: var(--bg-surface, #fff); border: 2px solid var(--border-default, #e3dcf0); border-radius: 999px; padding: 0.55rem 0.9rem; }
.cm-landing-search:focus-within { border-color: var(--brand-secondary, #5a2d82); box-shadow: 0 0 0 3px rgba(90,45,130,0.12); }
.cm-landing-search-ico { color: var(--brand-secondary, #5a2d82); font-size: 0.85rem; }
.cm-landing-search-input { flex: 1; border: 0; outline: 0; background: transparent; font-size: 0.9rem; color: var(--text-primary, #333); }
.cm-brand-list { margin-top: 0.6rem; max-height: 360px; overflow-y: auto; display: flex; flex-direction: column; gap: 0.15rem; }
.cm-brand-row { display: flex; align-items: center; gap: 0.7rem; width: 100%; text-align: left; background: transparent; border: 0; border-radius: 9px; padding: 0.5rem 0.55rem; cursor: pointer; transition: background 0.12s ease; }
.cm-brand-row:hover, .cm-brand-row:focus-visible { background: var(--bg-purple-tint, #ede7f6); outline: none; }
.cm-brand-av { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 0.82rem; color: #fff; background: linear-gradient(135deg, var(--brand-primary, #3d1a6f), var(--brand-secondary, #5a2d82)); }
.cm-brand-name { flex: 1; font-weight: 600; font-size: 0.9rem; color: var(--text-primary, #333); }
.cm-brand-pending { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.72rem; font-weight: 800; padding: 1px 9px; border-radius: 999px; background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); border: 1px solid var(--brand-accent, #fdb913); }
.cm-brand-emptyrow { color: var(--text-tertiary, #888); font-size: 0.85rem; padding: 0.6rem 0.55rem; }
.cm-brand-empty { display: flex; flex-direction: column; align-items: center; gap: 0.55rem; text-align: center; padding: 1.6rem 0.5rem; color: var(--text-secondary, #666); }
.cm-brand-empty > i { font-size: 1.4rem; color: var(--brand-secondary, #5a2d82); }
.cm-brand-empty-t { font-weight: 700; color: var(--text-primary, #333); }
.cm-landing-why { background: var(--bg-purple-tint, #ede7f6); border: 1px solid var(--border-default, #e7e2f0); border-radius: 12px; padding: 1rem 1.05rem; }
.cm-why-title { display: flex; align-items: center; gap: 0.45rem; font-size: 0.82rem; font-weight: 800; color: var(--brand-primary, #3d1a6f); margin: 0 0 0.85rem; }
.cm-why-steps { list-style: none; margin: 0; padding: 0; }
.cm-why-steps li { display: flex; gap: 0.6rem; align-items: flex-start; margin-bottom: 0.7rem; font-size: 0.82rem; line-height: 1.4; color: var(--text-secondary, #666); }
.cm-why-steps li:last-child { margin-bottom: 0; }
.cm-why-n { flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 800; background: var(--bg-gold-tint, #fff3d6); color: var(--brand-primary, #3d1a6f); border: 1px solid var(--brand-accent, #fdb913); }
@media (max-width: 900px) { .cm-landing-split { grid-template-columns: 1fr; } }
/* Skeleton-loader sizing helpers (shimmer surfaces from skeletons.css) */
.cm-brand-skel { pointer-events: none; }
.cm-brand-skel-av { width: 30px; height: 30px; border-radius: 50%; flex: 0 0 30px; }
.cm-kpi-skel { display: inline-block; width: 2.4ch; height: 1.3rem; margin: 0; vertical-align: middle; }

/* Conservation tally */
.cm-ws-bar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0 0 0.75rem; }
.cm-conserve {
    display: inline-flex; align-items: center; gap: 0.45rem; flex-wrap: wrap;
    font-size: 0.78rem; color: var(--status-warning-text, #856404); font-weight: 600;
    background: var(--bg-cream, #fff5dc); border: 1px solid var(--brand-accent, #f0d98a);
    border-radius: 999px; padding: 0.3rem 0.85rem;
}
.cm-conserve i { color: var(--brand-primary, #3d1a6f); }
.cm-conserve b { color: var(--brand-primary, #3d1a6f); font-weight: 800; }
.cm-conserve .sep { color: var(--brand-accent, #fdb913); font-weight: 800; }

.cm-twostep-hint {
    background: var(--bg-purple-tint, #f0e6f7); border-radius: 7px; padding: 0.4rem 0.6rem;
    font-size: 0.71rem; color: var(--text-muted, #6b6280); display: flex; align-items: center; gap: 0.4rem;
}
.cm-twostep-hint i { color: var(--brand-primary, #3d1a6f); }

/* Two-pane workspace (existing SSOT: needs-attention queue + story accordions) */
.cm-panes { display: grid; grid-template-columns: minmax(0, 1fr) 8px var(--cm-right, minmax(0, 1fr)); gap: 0.6rem; align-items: start; }
/* Each column scrolls INDEPENDENTLY (height = source/destination columns scroll on their own), so you can scroll
   the destination story into view while still dragging from the source. Height is JS-sized to fill the viewport
   (--cm-pane-h); the calc() is a no-JS fallback. SortableJS auto-scrolls these near the edges during a drag. */
.cm-pane { min-width: 0; max-height: var(--cm-pane-h, calc(100vh - 19rem)); overflow-y: auto; overflow-x: hidden; }
/* Drag gutter between the two columns (width persisted to localStorage). */
.cm-pane-gutter { align-self: stretch; min-height: 140px; width: 8px; position: relative; cursor: col-resize; touch-action: none; }
.cm-pane-gutter::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 3px; border-radius: 3px; background: var(--border-default, #ddd); transition: background 0.12s ease; }
.cm-pane-gutter:hover::before, body.cm-col-resizing .cm-pane-gutter::before { background: var(--brand-secondary, #5a2d82); }
body.cm-col-resizing { cursor: col-resize; user-select: none; }
.cm-pane-head { font-weight: 700; color: var(--text-secondary, #666); font-size: 0.82rem; margin: 0.25rem 0 0.5rem; display: flex; align-items: center; gap: 0.4rem; }
.cm-pane-head i { color: var(--brand-primary, #3d1a6f); }
/* Discovered pane headers: canonical .outlet-section-title standard + a sentence-case guidance sub-line. */
.cm-pane-head-block { margin: 0.25rem 0 0.75rem; position: sticky; top: 0; z-index: 2; background: var(--bg-surface, #fff); padding-bottom: 0.4rem; }
.cm-pane-head-block .outlet-section-title { margin-bottom: 0.4rem; }
.cm-pane-desc { margin: 0; font-size: 0.8rem; line-height: 1.4; color: var(--text-secondary, #666); }
/* .cm-pane--stories is now an independent scroll column (see .cm-pane) -- no longer page-sticky. */
/* Coverage item dressed as a draggable card: grip cursor + grab affordance (reuses .cm-item) */
.cm-item .cm-ic-grip { cursor: grab; }
.cm-item.sortable-chosen { box-shadow: 0 6px 18px rgba(61,26,111,0.22); }
/* Publisher domain rendered as a link straight to the article (in the card meta line) */
.cm-outlet-link { text-decoration: none; cursor: pointer; }
.cm-outlet-link:hover { text-decoration: underline; color: var(--brand-magenta, #7d1d61); }
.cm-outlet-link .fa-arrow-up-right-from-square { font-size: 0.62rem; opacity: 0.7; margin-left: 1px; }

/* Article link-preview popover (Open Graph unfurl on click) */
.cm-preview-pop { position: fixed; z-index: 1080; width: 320px; max-width: 92vw; background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.18); overflow: hidden; }
.cm-pp-close { position: absolute; top: 6px; right: 7px; z-index: 2; border: none; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,0.45); color: #fff; cursor: pointer; font-size: 15px; line-height: 1; padding: 0; }
.cm-pp-close:hover { background: rgba(0,0,0,0.72); }
.cm-pp-img { width: 100%; height: 150px; background-size: cover; background-position: center; background-color: var(--bg-subtle, #f8f9fa); }
.cm-pp-body { padding: 0.6rem 0.75rem 0.7rem; }
.cm-pp-loading { color: var(--text-tertiary, #888); font-size: 0.8rem; }
.cm-pp-site { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--brand-secondary, #5a2d82); margin-bottom: 0.15rem; }
.cm-pp-title { font-size: 0.86rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); line-height: 1.25; }
.cm-pp-desc { font-size: 0.76rem; color: var(--text-secondary, #666); margin-top: 0.3rem; line-height: 1.35; }
.cm-pp-open { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.55rem; font-size: 0.76rem; font-weight: 600; color: var(--brand-primary, #3d1a6f); text-decoration: none; }
.cm-pp-open:hover { text-decoration: underline; color: var(--brand-magenta, #7d1d61); }
/* No native text-selection while a card is being grabbed/dragged (SortableJS forceFallback paints a selection otherwise) */
body.cm-dragging, body.cm-dragging * { -webkit-user-select: none !important; -moz-user-select: none !important; -ms-user-select: none !important; user-select: none !important; }

/* Inbox cards */
.cm-inbox-card {
    background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd);
    border-radius: 10px; border-left: 4px solid var(--brand-accent, #fdb913);
    padding: 0.55rem 0.65rem; margin-bottom: 0.55rem;
}
.cm-inbox-card.is-dup { border-left-color: var(--brand-danger, #ed174c); }
.cm-inbox-card.conf-high { border-left-color: var(--status-success, #28a745); }
.cm-inbox-card.conf-none { border-left-color: var(--border-default, #ddd); }
.cm-ic-head { display: flex; align-items: flex-start; gap: 0.4rem; }
.cm-ic-grip { color: var(--text-tertiary, #888); cursor: grab; padding-top: 2px; }
.cm-ic-title { font-weight: 600; flex: 1; font-size: 0.84rem; color: var(--text-primary, #333); }
.cm-ic-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; font-size: 0.73rem; margin: 0.35rem 0 0 1.2rem; color: var(--text-secondary, #666); }
.cm-ic-outlet { font-weight: 600; color: var(--brand-primary, #3d1a6f); }
.dot-sep { color: var(--text-tertiary, #888); }
.cm-ic-reach { color: var(--text-secondary, #666); }
.cm-ic-reach-est { color: var(--status-warning-text, #856404); }
.cm-ic-spacer { margin-left: auto; }
.cm-ic-dismiss {
    width: 24px; height: 24px; border-radius: 6px; border: 1px solid var(--border-default, #ddd);
    background: var(--bg-surface, #fff); color: var(--text-tertiary, #888); cursor: pointer; line-height: 1;
}
.cm-ic-dismiss:hover { border-color: var(--brand-danger, #ed174c); color: var(--brand-danger, #ed174c); background: var(--status-danger-bg, #f8d7da); }
/* "Keep here" (mark reviewed) -- the calm, common action; success-tinted. Undo variant is neutral. */
.cm-ic-keep {
    display: inline-flex; align-items: center; gap: 0.25rem; height: 24px; padding: 0 8px; border-radius: 6px;
    border: 1px solid var(--border-default, #ddd); background: var(--bg-surface, #fff);
    color: var(--status-success-text, #1e7e34); font-size: 0.72rem; font-weight: 700; cursor: pointer; line-height: 1; white-space: nowrap;
}
.cm-ic-keep:hover { border-color: var(--status-success, #28a745); background: var(--status-success-bg, #d4edda); }
.cm-ic-keep.is-undo { color: var(--text-secondary, #666); }
.cm-ic-keep.is-undo:hover { border-color: var(--brand-secondary, #5a2d82); background: var(--bg-purple-tint, #ede7f6); color: var(--brand-primary, #3d1a6f); }
/* Keep-all (header bulk action), Load-more, Reviewed bucket */
.cm-keepall-btn { margin-left: auto; }
.cm-loadmore-wrap { text-align: center; margin: 0.5rem 0 0.25rem; }
.cm-loadmore { min-width: 160px; }
.cm-reviewed { margin-top: 0.85rem; border-top: 1px dashed var(--border-default, #ddd); padding-top: 0.6rem; }

/* Sentiment chip (read-only by default; pencil only on campaign-attached items -- R2.13) */
.cm-sent-chip {
    display: inline-flex; align-items: center; gap: 0.35rem;
    border: 1px solid var(--border-default, #ddd); background: var(--bg-surface, #fff);
    border-radius: 999px; padding: 2px 9px 2px 7px; font-size: 0.74rem; font-weight: 700; line-height: 1.3;
}
.cm-sent-chip.is-editable { cursor: pointer; }
.cm-sent-chip.is-editable:hover { border-color: var(--brand-primary, #3d1a6f); }
.cm-sent-chip .cm-sent-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.cm-sent-chip.pos { color: var(--status-success, #28a745); } .cm-sent-chip.pos .cm-sent-dot { background: var(--status-success, #28a745); }
.cm-sent-chip.neu { color: var(--text-secondary, #6c757d); } .cm-sent-chip.neu .cm-sent-dot { background: var(--text-secondary, #6c757d); }
.cm-sent-chip.neg { color: var(--brand-danger, #dc3545); } .cm-sent-chip.neg .cm-sent-dot { background: var(--brand-danger, #dc3545); }
.cm-sent-chip.ungraded { color: var(--status-warning-text, #856404); border-style: dashed; font-weight: 600; }
.cm-sent-chip.ungraded .cm-sent-dot { background: var(--brand-accent, #fdb913); }
.cm-sent-chip i.fa-pen { font-size: 0.56rem; opacity: 0.55; }
.cm-allocate-note { font-size: 0.68rem; color: var(--text-tertiary, #888); font-style: italic; }

/* Twin (consolidate) block */
.cm-twin { background: var(--bg-slate-tint-2, #f8f7fa); border: 1px solid var(--border-default, #ddd); border-radius: 8px; margin: 0.5rem 0 0 1.2rem; padding: 0.4rem 0.55rem; }
.cm-twin-lead { color: var(--text-tertiary, #888); font-size: 0.72rem; }
.cm-twin-lead i { color: var(--brand-danger, #ed174c); }
.cm-twin-item { font-weight: 700; color: var(--brand-primary, #3d1a6f); font-size: 0.78rem; }
.cm-twin-where { font-weight: 400; color: var(--text-secondary, #666); }

/* Two-step decision rows */
.cm-step-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; margin: 0.5rem 0 0 1.2rem; }
.cm-step-row.step-divide { border-top: 1px dashed var(--border-light, #eee); padding-top: 0.45rem; }
.cm-step { width: 18px; height: 18px; border-radius: 50%; background: var(--brand-primary, #3d1a6f); color: var(--text-on-dark, #fff); font-size: 0.64rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cm-step-lead { text-transform: uppercase; color: var(--text-tertiary, #888); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.03em; }
.cm-suggest-home { background: var(--bg-purple-tint, #f0e6f7); border-radius: 6px; padding: 1px 8px; font-size: 0.73rem; color: var(--brand-primary, #3d1a6f); }
.cm-suggest-home i { color: var(--brand-primary, #3d1a6f); }
.cm-change { max-width: 180px; border-radius: 6px; font-size: 0.74rem; }
.cm-link-client, .cm-own-note { font-size: 0.7rem; color: var(--text-tertiary, #888); }
.cm-link-client { background: none; border: none; border-bottom: 1px dotted var(--text-tertiary, #888); cursor: pointer; padding: 0; }
.cm-link-client:hover { color: var(--brand-primary, #3d1a6f); border-bottom-color: var(--brand-primary, #3d1a6f); }
.cm-own-note i { color: var(--status-success, #28a745); }

/* Story accordions */
.cm-acc { display: flex; flex-direction: column; gap: 0.5rem; }
.cm-story { border: 1px solid var(--border-default, #ddd); border-radius: 9px; background: var(--bg-surface, #fff); overflow: hidden; }
.cm-story.is-open { box-shadow: 0 2px 10px rgba(0,0,0,0.07); }
.cm-story-row { cursor: pointer; padding: 0.5rem 0.7rem; display: flex; align-items: center; gap: 0.5rem; background: var(--bg-slate-tint, #f1f0f4); border-left: 4px solid var(--brand-accent, #fdb913); }
.cm-story.is-open .cm-story-row { border-bottom: 1px solid var(--border-default, #ddd); }
.cm-story-caret { font-size: 0.72rem; color: var(--text-secondary, #666); transition: transform 0.15s ease; }
.cm-story.is-open .cm-story-caret { transform: rotate(90deg); }
.cm-story-icon { color: var(--brand-primary, #3d1a6f); }
.cm-story-name { font-size: 0.88rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-story-stats { display: flex; gap: 0.55rem; align-items: center; flex-shrink: 0; }
.cm-story-count { background: var(--bg-purple-tint, #f0e6f7); color: var(--brand-primary, #3d1a6f); border-radius: 999px; font-size: 0.7rem; font-weight: 700; padding: 1px 8px; }
.cm-story-reach { font-size: 0.7rem; color: var(--text-secondary, #666); }
.cm-story-body { padding: 0.55rem 0.6rem 0.2rem; background: var(--bg-slate-tint-2, #f8f7fa); display: none; }
.cm-story.is-open .cm-story-body { display: block; }
.cm-story-emptyrow { font-size: 0.74rem; color: var(--text-tertiary, #888); padding: 0.3rem 0; }
.cm-story--client .cm-story-row { border-left-color: var(--text-secondary, #666); }
.cm-story--client .cm-story-icon, .cm-story--client .cm-story-name { color: var(--status-success-text, #155724); }
.cm-story--client .cm-story-count { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }

/* Item inside an expanded story */
.cm-item { background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-radius: 9px; padding: 0.5rem 0.6rem; margin-bottom: 0.55rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.cm-item--own { border-left: 3px solid var(--status-success-text, #155724); }
.cm-item--auto { border-left: 3px solid var(--brand-secondary, #5a2d82); }
.cm-item-top { display: flex; align-items: flex-start; gap: 0.4rem; }
.cm-item-title { font-weight: 600; font-size: 0.83rem; flex: 1; color: var(--text-primary, #333); }
.cm-item-url { display: block; font-size: 0.7rem; color: var(--text-tertiary, #888); margin-top: 1px; }
.cm-item-meta { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.73rem; margin-top: 0.4rem; color: var(--text-secondary, #666); }

/* Provenance entity chip (ONE family) */
.bh-entity-chip { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.68rem; font-weight: 700; border-radius: 999px; padding: 1px 8px; border: 1px solid var(--border-default, #ddd); }
.bh-entity-chip--brand { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); border-color: var(--status-success, #28a745); }
.bh-entity-chip--mm { background: var(--bg-purple-tint, #ede7f6); color: var(--brand-secondary, #4527a0); border-color: var(--brand-secondary, #5a2d82); }

/* Breakable chain (compact auto-match badge + canonical connector) */
.cm-auto-badge { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.68rem; font-weight: 700; background: var(--bg-purple-tint, #ede7f6); color: var(--brand-secondary, #4527a0); border: 1px solid var(--brand-secondary, #d1c4e9); padding: 1px 8px; border-radius: 999px; cursor: pointer; }
.cm-auto-badge .cm-auto-break { display: none; align-items: center; gap: 0.3rem; }
.cm-auto-badge:hover { background: var(--status-danger-bg, #fdecef); border-color: var(--brand-danger, #f6c6d2); color: var(--brand-danger, #ed174c); }
.cm-auto-badge:hover .cm-auto-on { display: none; }
.cm-auto-badge:hover .cm-auto-break { display: inline-flex; }
.bh-cm-chain-link { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.68rem; font-weight: 600; color: var(--text-secondary, #666); border: none; background: transparent; border-radius: 999px; padding: 1px 4px; cursor: pointer; }
.bh-cm-chain-link:hover { color: var(--status-danger, #dc3545); }

/* Optional drag target (native drag-onto-target shortcut; not SortableJS reorder) */
.bh-cm-drop-target { border: 2px dashed var(--brand-accent, #fdb913) !important; background: var(--bg-cream-2, #fffbf0) !important; box-shadow: inset 0 0 0 4px rgba(253,185,19,0.12); }

/* ---- Story body: our efforts as match targets (interviews + converted newswire) ---- */
.cm-story-hint { font-size: 0.72rem; color: var(--text-secondary, #555); background: var(--bg-purple-tint, #f0e6f7); border: 1px solid var(--border-default, #e3d9f0); border-radius: 8px; padding: 0.4rem 0.6rem; margin: 0.1rem 0.1rem 0.6rem; display: flex; align-items: center; gap: 0.4rem; }
.cm-story-hint i { color: var(--brand-secondary, #5a2d82); }
.cm-grp--effort .cm-grp-head { background: var(--bg-slate-tint, #f1f0f4); color: var(--brand-secondary, #5a2d82); }
.cm-grp--mon .cm-grp-head { background: var(--bg-gold-tint, #fff3d6); color: var(--status-warning-text, #856404); }

.cm-effort { background: transparent; border: none; border-radius: 0; margin-bottom: 0; box-shadow: none; }
.cm-effort + .cm-effort { border-top: 1px solid var(--border-default, #ececf0); }
.cm-effort-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.6rem; }
.cm-effort-ic { flex: 0 0 auto; width: 1.7rem; height: 1.7rem; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; }
.cm-effort--intv .cm-effort-ic { background: var(--bg-purple-tint, #ede7f6); color: var(--brand-secondary, #5a2d82); }
.cm-effort--news .cm-effort-ic { background: var(--bg-purple-tint, #f0e6f7); color: var(--brand-primary, #3d1a6f); }
.cm-effort--manual .cm-effort-ic { background: var(--bg-gold-tint, #fff3d6); color: var(--brand-primary, #3d1a6f); }
/* Social effort accent: translucent blue tint works on light + dark (no theme-flip token needed). */
.cm-effort--social .cm-effort-ic { background: rgba(47, 111, 237, 0.14); color: var(--bh-social-accent, #2f6fed); }
/* Create-coverage modal: outlet autocomplete + free-text fallback. */
.cm-create-lead { font-size: 0.85rem; color: var(--text-secondary, #666); margin-bottom: 0.75rem; }
.cm-create-outlet label { font-weight: 600; font-size: 0.82rem; }
.cm-outlet-search { position: relative; }
.cm-outlet-results { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,0.12); max-height: 240px; overflow-y: auto; margin-top: 2px; }
.cm-outlet-opt { display: flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.6rem; cursor: pointer; font-size: 0.85rem; }
.cm-outlet-opt:hover { background: var(--bg-purple-tint, #f0e6f7); }
.cm-outlet-opt i { color: var(--brand-primary, #3d1a6f); width: 16px; }
.cm-outlet-opt-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-outlet-opt-tier { font-size: 0.7rem; color: var(--text-secondary, #666); background: var(--bg-slate-tint, #f1f0f4); border-radius: 999px; padding: 1px 8px; }
.cm-outlet-opt.cm-outlet-none { cursor: default; color: var(--text-secondary, #666); font-style: italic; }
.cm-outlet-opt.cm-outlet-none:hover { background: transparent; }
/* "Move to..." quick-assign popover (non-drag attach: search the campaign list + pick a target). */
.cm-move-pop { position: absolute; z-index: 1050; width: 280px; max-width: 92vw; background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); overflow: hidden; }
.cm-move-search { display: flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--border-light, #eee); }
.cm-move-search i { color: var(--text-secondary, #888); font-size: 0.8rem; }
.cm-move-search input { border: 0; outline: 0; flex: 1; min-width: 0; font-size: 0.85rem; background: transparent; color: var(--text-primary, #333); }
.cm-move-list { max-height: 260px; overflow-y: auto; padding: 0.25rem; }
.cm-move-opt { display: flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.5rem; border-radius: 7px; cursor: pointer; font-size: 0.85rem; color: var(--text-primary, #333); }
.cm-move-opt:hover { background: var(--bg-purple-tint, #f0e6f7); }
.cm-move-opt i { color: var(--brand-accent, #fdb913); width: 14px; flex: 0 0 auto; }
.cm-move-opt span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-move-empty { padding: 0.7rem; color: var(--text-secondary, #666); font-size: 0.82rem; text-align: center; }
.cm-act--move:hover { color: var(--brand-primary, #3d1a6f); }
.cm-effort-main { flex: 1; min-width: 0; }
.cm-effort-title { display: block; font-weight: 600; font-size: 0.82rem; color: var(--text-primary, #333); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-effort-meta { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; font-size: 0.72rem; color: var(--text-secondary, #666); margin-top: 1px; }
.cm-effort-side { display: flex; align-items: center; gap: 0.45rem; flex: 0 0 auto; }
.cm-effort-cue { display: none; align-items: center; gap: 0.3rem; font-size: 0.68rem; font-weight: 700; color: var(--brand-secondary, #5a2d82); border: 1px dashed var(--brand-secondary, #b9a3d8); border-radius: 6px; padding: 1px 7px; white-space: nowrap; }
.cm-effort:hover .cm-effort-cue { display: inline-flex; }
.cm-effort.bh-cm-drop-target { border-style: dashed; }
.cm-effort.bh-cm-drop-target .cm-effort-cue { display: inline-flex; background: var(--brand-primary, #3d1a6f); color: #fff; border-color: var(--brand-primary, #3d1a6f); }
/* Drag-over focus: the hovered drop zone eases up + glows while the surrounding coverage fades, so the
   landing spot is unmistakable. Transforms here live on normal DOM targets only -- NEVER the SortableJS
   clone (its inline transform positions it; see the .sortable-fallback SSOT note near the top of this file). */
.bh-cm-drop-target { transition: transform 0.12s ease, box-shadow 0.12s ease; position: relative; z-index: 3; }
.cm-story.bh-cm-drop-target { transform: scale(1.012); box-shadow: inset 0 0 0 4px rgba(253, 185, 19, 0.16), 0 12px 28px rgba(61, 26, 111, 0.18); }
/* Effort rows live inside the story's overflow:hidden, so an outer glow would be clipped -- make the active
   row unmistakable with a SOLID fill + border + inset ring + a firmer lift instead. */
.cm-effort.bh-cm-drop-target { border: 2px solid var(--brand-accent, #fdb913) !important; background: var(--bg-gold-tint, #fff3d6) !important; box-shadow: inset 0 0 0 3px rgba(253, 185, 19, 0.5); transform: scale(1.035); z-index: 4; }
.cm-effort.bh-cm-drop-target .cm-effort-title { color: var(--brand-primary, #3d1a6f); }
body.cm-over-target #cmFolders .cm-effort:not(.bh-cm-drop-target),
body.cm-over-target #cmFolders .cm-grp--mon,
body.cm-over-target #cmFolders .cm-story-hint { opacity: 0.35; transition: opacity 0.12s ease; }
.cm-effort-drop { padding: 0 0.5rem; }
.cm-effort-drop:empty { min-height: 2px; }

/* A monitoring pickup consolidated under an effort (counts once; reversible via break) */
.cm-item--matched { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; border-left: none; background: transparent; padding: 0.15rem 0.5rem 0.4rem 1.85rem; margin: 0; box-shadow: none; font-size: 0.72rem; }
.cm-matched-tag { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; color: var(--text-tertiary, #8a8a8a); }
.cm-matched-meta { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; font-size: 0.72rem; color: var(--text-secondary, #666); }

/* chain-link affordance shows "counts once/linked" -> "break" on hover (shared with .cm-item--auto chains) */
.bh-cm-chain-link .cm-auto-break { display: none; align-items: center; gap: 0.3rem; }
.bh-cm-chain-link:hover .cm-auto-on { display: none; }
.bh-cm-chain-link:hover .cm-auto-break { display: inline-flex; }

[data-theme="dark"] .cm-story-hint { background: var(--bg-muted, #34343a); color: var(--text-body, #d4d4d4); border-color: var(--border-default, #444); }
[data-theme="dark"] .cm-grp--effort .cm-grp-head { background: var(--bg-muted, #34343a); color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .cm-grp--mon .cm-grp-head { background: var(--bg-muted, #34343a); color: var(--brand-accent, #fdb913); }
[data-theme="dark"] .cm-effort { background: var(--bg-surface, #1f1f24); }
[data-theme="dark"] .cm-item--matched { background: transparent; }

/* Empty states */
.cm-empty-hint { font-size: 0.71rem; color: var(--text-tertiary, #888); margin: 0.6rem 0.2rem 0; display: flex; align-items: center; gap: 0.35rem; }
.cm-empty-hint i { color: var(--status-success, #28a745); }
.cm-inbox-empty { border: 1px dashed var(--status-success, #bfe6dc); background: var(--status-success-bg, #f3fbf8); border-radius: 10px; padding: 1.1rem 1rem; text-align: center; color: var(--status-success-text, #0f6b5e); }
.cm-inbox-empty .cm-empty-icon { font-size: 1.7rem; color: var(--status-success, #28a745); }
.cm-empty-title { font-weight: 700; margin-top: 0.3rem; }
.cm-empty-sub { font-size: 0.76rem; color: var(--text-secondary, #666); }

/* Not-counted bucket */
.cm-notcounted { margin-top: 1rem; border-top: 1px solid var(--border-light, #eee); padding-top: 0.6rem; }
.cm-notcounted-toggle { background: none; border: none; color: var(--text-secondary, #666); font-size: 0.8rem; font-weight: 700; cursor: pointer; padding: 0; display: flex; align-items: center; gap: 0.4rem; }
.cm-notcounted-toggle i { transition: transform 0.15s ease; }
.cm-notcounted-toggle.is-open i { transform: rotate(90deg); }
.cm-notcounted-body { margin-top: 0.5rem; }
.cm-notcounted-row { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.76rem; padding: 0.4rem 0.55rem; border: 1px solid var(--border-light, #eee); border-radius: 8px; margin-bottom: 0.4rem; background: var(--bg-subtle, #f8f9fa); color: var(--text-secondary, #666); }
.cm-notcounted-row .cm-nc-restore { margin-left: auto; }

/* ---- Clusters: syndicated same-headline pickups grouped into one compact card ---- */
.cm-cluster-summary { display: flex; align-items: center; gap: 0.6rem; font-size: 0.72rem; color: var(--text-tertiary, #888); margin: 0 0.1rem 0.5rem; font-weight: 600; }
.cm-cluster-summary-txt { color: var(--text-tertiary, #888); }

/* ---- Bulk multi-select (Discovered working list) --------------------------------------------------
   Reuses the .bh-selectable-row visual language (gold rail + purple tint + fade-in tick) on the card
   family, and the .bulk-actions purple-tint bar (as the Coverage board), scoped to the cm-* family. */
.cm-sel { flex: 0 0 auto; display: inline-flex; align-items: center; margin: 0; padding: 0 2px; cursor: pointer; opacity: 0; transition: opacity 0.12s ease; }
#cmClientList .cm-item:hover .cm-sel,
#cmClientList .cm-cluster-head:hover .cm-sel,
#cmClientList .cm-item.is-selected .cm-sel,
#cmClientList .cm-cluster.is-selected .cm-cluster-head .cm-sel { opacity: 1; }
.cm-sel-cb, .cm-selall-cb { width: 15px; height: 15px; cursor: pointer; accent-color: var(--brand-primary, #3d1a6f); }
#cmClientList .cm-item.is-selected { background: var(--bg-purple-tint, #f0ebf7); border-left-color: var(--brand-accent, #fdb913) !important; }
#cmClientList .cm-cluster.is-selected { background: var(--bg-purple-tint, #f0ebf7); border-left-color: var(--brand-accent, #fdb913) !important; }
.cm-selall { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0; cursor: pointer; font-weight: 700; color: var(--text-secondary, #666); }

/* Sticky action bar -- pinned to the bottom of the client pane while a selection is active. */
.cm-bulkbar { position: sticky; bottom: 0; z-index: 5; display: none; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.5rem; padding: 0.5rem 0.7rem; background: var(--bg-purple-tint, #f0ebf7); border: 1px solid var(--brand-primary, #3d1a6f); border-radius: 9px; box-shadow: 0 -3px 12px rgba(0,0,0,0.08); }
.cm-bulkbar-count { font-weight: 700; font-size: 0.85rem; color: var(--brand-primary, #3d1a6f); white-space: nowrap; }
.cm-bulkbar-actions { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; margin-left: auto; }
.cm-bulkbar-clear { color: var(--brand-primary, #3d1a6f); }
[data-theme="dark"] .cm-bulkbar { background: var(--bg-muted, #26262b); border-color: var(--brand-secondary, #5a2d82); }
[data-theme="dark"] .cm-bulkbar-count, [data-theme="dark"] .cm-bulkbar-clear { color: var(--page-title-color, #e5d9ff); }
.cm-cluster { background: var(--bg-surface, #fff); border: 1px solid var(--border-default, #ddd); border-left: 3px solid var(--brand-secondary, #5a2d82); border-radius: 9px; margin-bottom: 0.45rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.cm-cluster.sortable-chosen { box-shadow: 0 6px 18px rgba(61,26,111,0.22); }
.cm-cluster-head { display: flex; align-items: center; gap: 0.45rem; padding: 0.5rem 0.6rem; cursor: pointer; }
.cm-cluster-head .cm-ic-grip { cursor: grab; flex: 0 0 auto; }
.cm-cluster-caret { font-size: 0.72rem; color: var(--text-secondary, #666); transition: transform 0.15s ease; flex: 0 0 auto; }
.cm-cluster.is-open .cm-cluster-caret { transform: rotate(90deg); }
.cm-cluster-title { font-weight: 600; font-size: 0.83rem; color: var(--text-primary, #333); flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-cluster-stats { display: flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; flex-wrap: wrap; }
.cm-cluster-count { font-size: 0.7rem; font-weight: 700; }
.cm-cluster-reach { font-size: 0.72rem; color: var(--text-secondary, #666); white-space: nowrap; }
.cm-cluster-actions { display: flex; align-items: center; gap: 0.35rem; flex: 0 0 auto; }
.cm-cluster-review { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.7rem; font-weight: 700; border: 1px solid var(--border-default, #ddd); background: var(--bg-surface, #fff); color: var(--text-secondary, #666); border-radius: 6px; padding: 2px 8px; cursor: pointer; }
.cm-cluster-review:hover { border-color: var(--status-success, #28a745); background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.cm-cluster-members { display: none; padding: 0.1rem 0.6rem 0.45rem 1.7rem; background: var(--bg-slate-tint-2, #f8f7fa); border-top: 1px solid var(--border-light, #eee); border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }
.cm-cluster.is-open .cm-cluster-members { display: block; }
.cm-cmember { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; font-size: 0.73rem; padding: 0.3rem 0; border-bottom: 1px dashed var(--border-light, #eee); color: var(--text-secondary, #666); }
.cm-cmember:last-of-type { border-bottom: 0; }
.cm-cmember-outlet { font-weight: 600; color: var(--brand-primary, #3d1a6f); }
.cm-cmember-date { color: var(--text-tertiary, #888); }
.cm-cluster-dates { font-size: 0.68rem; color: var(--text-tertiary, #888); margin-top: 0.35rem; display: flex; align-items: center; gap: 0.3rem; }
.cm-cluster-dates i { color: var(--brand-secondary, #5a2d82); }
.cm-cluster--story { margin-bottom: 0.4rem; }
.cm-cluster--story .cm-cluster-head { padding: 0.4rem 0.5rem; }
/* Mixed-sentiment chip (amber -- Scoring SSOT mixed colour) */
.cm-sent-chip.mixed { color: var(--status-warning-text, #856404); }
.cm-sent-chip.mixed .cm-sent-dot { background: var(--brand-accent, #fdb913); }

/* The triage workspace is a full-page surface, not a contained card. Drop the .profile-card frame
   (border + radius + shadow + bg) so we don't draw a thin grey line down ~17000px of scroll -- the
   cards inside carry their own structure. Scoped to #cmWorkspace; other .profile-cards untouched. */
#cmWorkspace.profile-card { background: transparent; border: none; border-radius: 0; box-shadow: none; overflow: visible; margin-bottom: 0; }

/* ---- List view switcher (Calm / Compact / Sentiment / Type) ---- */
.cm-viewbar { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 0.7rem; }
.cm-viewbtn { appearance: none; border: 1px solid var(--border-default, #ddd); background: var(--bg-surface, #fff); color: var(--text-secondary, #666); font: inherit; font-size: 0.75rem; font-weight: 700; padding: 5px 12px; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; transition: all .13s ease; }
.cm-viewbtn:hover { border-color: var(--brand-secondary, #5a2d82); color: var(--brand-primary, #3d1a6f); }
.cm-viewbtn.is-active { background: var(--brand-primary, #3d1a6f); border-color: var(--brand-primary, #3d1a6f); color: #fff; }
.cm-viewbtn i { font-size: 0.72rem; }

/* ---- Single-line working/reviewed item (markup shared; density via the view class) ---- */
#cmClientList .cm-item, #cmReviewedBody .cm-item { display: flex; align-items: center; gap: 0.5rem; }
#cmClientList .cm-item { border-left: 3px solid var(--border-default, #ddd); }
#cmClientList .cm-item-main, #cmReviewedBody .cm-item-main { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 0.55rem; overflow: hidden; }
#cmClientList .cm-item-title, #cmReviewedBody .cm-item-title { flex: 0 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#cmClientList .cm-item-meta, #cmReviewedBody .cm-item-meta { margin-top: 0; flex-wrap: nowrap; white-space: nowrap; flex: 0 0 auto; }
#cmClientList .cm-item-side, #cmReviewedBody .cm-item-side { display: flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; }
.cm-item-acts { display: flex; gap: 2px; align-items: center; }
.cm-act { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; border: 1px solid transparent; background: transparent; color: var(--text-tertiary, #999); cursor: pointer; padding: 0; transition: all .12s ease; }
.cm-act:hover { background: var(--bg-subtle, #f0f0f2); color: var(--brand-primary, #3d1a6f); }
.cm-act--rev:hover { color: var(--status-success, #28a745); background: var(--status-success-bg, #d4edda); }
.cm-act--del:hover { color: var(--brand-danger, #dc3545); background: var(--status-danger-bg, #f8d7da); }

/* Sentiment left rail (working list only) */
#cmClientList .cm-item[data-sent="pos"], #cmClientList .cm-cluster[data-sent="pos"] { border-left-color: var(--status-success, #28a745); }
#cmClientList .cm-item[data-sent="neg"], #cmClientList .cm-cluster[data-sent="neg"] { border-left-color: var(--brand-danger, #dc3545); }
#cmClientList .cm-item[data-sent="neu"], #cmClientList .cm-cluster[data-sent="neu"] { border-left-color: var(--text-secondary, #6c757d); }
#cmClientList .cm-item[data-sent="mixed"], #cmClientList .cm-cluster[data-sent="mixed"] { border-left-color: var(--brand-accent, #fdb913); }
#cmClientList .cm-item[data-sent="ungraded"], #cmClientList .cm-cluster[data-sent="ungraded"] { border-left-color: var(--border-default, #ddd); }

/* COMPACT density (compact / sentiment / type views). Scoped to the id so it beats the base
   #cmClientList rules above (the view class sits on #cmClientList itself). */
#cmClientList.cm-view--compact .cm-item { padding: 0.3rem 0.55rem; margin-bottom: 0.25rem; border-radius: 7px; box-shadow: none; }
#cmClientList.cm-view--compact .cm-cluster { margin-bottom: 0.25rem; box-shadow: none; }
#cmClientList.cm-view--compact .cm-cluster-head { padding: 0.38rem 0.55rem; }

/* CALM density (generous padding + air; headline on its own line, meta wraps under it) */
#cmClientList.cm-view--calm .cm-item,
#cmClientList.cm-view--calm .cm-cluster { margin-bottom: 0.7rem; border-radius: 12px; border-left-width: 4px; box-shadow: 0 1px 6px rgba(40, 30, 70, 0.06); }
#cmClientList.cm-view--calm .cm-item { padding: 0.9rem 1.05rem; }
#cmClientList.cm-view--calm .cm-cluster-head { padding: 0.78rem 0.95rem; }
#cmClientList.cm-view--calm .cm-item-main { flex-wrap: wrap; row-gap: 0.45rem; }
#cmClientList.cm-view--calm .cm-item-title { flex: 1 1 100%; white-space: normal; font-size: 0.95rem; line-height: 1.35; }
#cmClientList.cm-view--calm .cm-item-meta { white-space: normal; font-size: 0.8rem; gap: 0.6rem; }
/* Equal card height so a multi-outlet release never reads as smaller/less important than a single item */
#cmClientList.cm-view--calm .cm-item,
#cmClientList.cm-view--calm .cm-cluster-head { min-height: 70px; box-sizing: border-box; }

/* mytooltip wrapper must keep the action buttons' flex centring (mytooltip forces inline-block) */
.cm-act.mytooltip, .cm-ic-dismiss.mytooltip, .cm-cluster-review.mytooltip { display: inline-flex; }
/* The action buttons are right-aligned, so anchor their tooltip to the right edge -- it extends LEFT
   (into view) instead of off the right edge of the card (the default mytooltip left:20% would overflow). */
.cm-item-acts .mytooltip:hover:after,
.cm-cluster-actions .mytooltip:hover:after,
.cm-cmember .mytooltip:hover:after { left: auto; right: 0; }

/* Grouped sections (Sentiment / Type views) */
.cm-grp { margin-bottom: 0.85rem; }
.cm-grp:last-child { margin-bottom: 0; }
.cm-grp-head { display: flex; align-items: center; gap: 0.5rem; padding: 0.38rem 0.6rem; border-radius: 8px; font-weight: 800; font-size: 0.76rem; margin-bottom: 0.45rem; }
.cm-grp-head i { font-size: 0.82rem; }
.cm-grp-n { font-weight: 700; opacity: 0.78; }
.cm-grp-sp { flex: 1; }
.cm-grp-sum { font-weight: 600; font-size: 0.72rem; opacity: 0.88; display: inline-flex; align-items: center; gap: 0.3rem; }
.cm-grp-head.neg { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }
.cm-grp-head.mixed { background: var(--bg-gold-tint, #fff3d6); color: var(--status-warning-text, #856404); }
.cm-grp-head.neu { background: var(--bg-subtle, #f0f0f2); color: var(--text-secondary, #555); }
.cm-grp-head.pos { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.cm-grp-head.rel { background: var(--bg-purple-tint, #ede7f6); color: var(--brand-primary, #3d1a6f); }
.cm-grp-head.earn { background: var(--bg-slate-tint, #f1f0f4); color: var(--brand-secondary, #5a2d82); }

@media (max-width: 990px) {
    .cm-panes { grid-template-columns: 1fr; }
    .cm-pane-gutter { display: none; }
    /* Stacked single-column: let each pane flow with the page (no inner scroll boxes, no sticky head). */
    .cm-pane { max-height: none; overflow: visible; }
    .cm-pane-head-block { position: static; }
    .cm-pane--stories { margin-top: 1rem; }
    .cm-picker-bar .client-search-container { max-width: none; }
}

/* Dark-mode: flip tinted surfaces to dark so text stays legible (dark-mode-lint) */
[data-theme="dark"] .cm-inbox-card,
[data-theme="dark"] .cm-story,
[data-theme="dark"] .cm-item,
[data-theme="dark"] .cm-cluster,
[data-theme="dark"] .cm-cluster-review,
[data-theme="dark"] .cm-viewbtn,
[data-theme="dark"] .cm-preview-pop,
[data-theme="dark"] .cm-sent-chip,
[data-theme="dark"] .cm-ic-dismiss { background: var(--bg-surface, #2a2a2e); }
[data-theme="dark"] .cm-twin,
[data-theme="dark"] .cm-story-row,
[data-theme="dark"] .cm-story-body,
[data-theme="dark"] .cm-cluster-members,
[data-theme="dark"] .cm-client-bar,
[data-theme="dark"] .cm-notcounted-row { background: var(--bg-subtle, #232327); }
[data-theme="dark"] .cm-grp-head.neu, [data-theme="dark"] .cm-grp-head.earn, [data-theme="dark"] .cm-grp-head.rel { background: var(--bg-muted, #34343a); color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .cm-grp-head.pos { color: var(--status-success, #3ecf6a); }
[data-theme="dark"] .cm-grp-head.neg { color: var(--status-danger, #ff6b7a); }
[data-theme="dark"] .cm-grp-head.mixed { color: var(--brand-accent, #fdb913); }
[data-theme="dark"] .cm-conserve { background: var(--bg-subtle, #232327); }
[data-theme="dark"] .cm-suggest-home,
[data-theme="dark"] .cm-twostep-hint,
[data-theme="dark"] .cm-story-count,
[data-theme="dark"] .bh-entity-chip--mm,
[data-theme="dark"] .cm-auto-badge { background: var(--bg-muted, #34343a); }
[data-theme="dark"] .cm-inbox-empty { background: var(--bg-subtle, #232327); }

/* =====================================================================
   BH Sentiment Slider (shared)
   Used by Coverage.aspx and Interviews.aspx via BHSentimentSlider.js.
   Colours and band values are owned by window.BHScoring (ScoringConstants).
   ===================================================================== */
.qs-sent-cell { display: flex; align-items: center; gap: 0.6rem; min-width: 420px; }
.qs-sentiment-slider { width: 240px; accent-color: var(--brand-accent, #fdb913); cursor: pointer; flex: 0 0 auto; }
.qs-sentiment-num { width: 72px; flex: 0 0 auto; text-align: center; padding: 0.15rem 0.3rem; }
.qs-sent-readout { font-size: 0.8rem; font-weight: 600; min-width: 58px; }
tr[data-unscored="1"] .qs-cqi-display,
.qs-inline-row[data-unscored="1"] .qs-cqi-display { opacity: 0.5; }
.qs-cqi-display.qs-cqi-preview { opacity: 1; font-style: italic; }
.qs-inline-row { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
[data-theme="dark"] .qs-sentiment-num { background: var(--bg-card, #1e1e22); color: var(--text-body, #d4d4d4); border-color: var(--border-subtle, #3a3a42); }

/* =====================================================================
   Scored-arm picker (.bh-scorepick) -- SSOT inline control for the three
   CQI arms: sentiment / message pull-through / prominence. One shape:
   provenance pill -> step strip -> readout (post-lens ProofScore). Click a
   step = saved (no Save button, no radio inputs). Neutral selected = brand
   purple; the sentiment skin's selected tone is applied inline in JS from
   the sentiment SSOT (window.BHScoring) -- never hard-typed here. Dark-mode
   safe via tokens. Legacy .bh-msg-step / .bh-prom-step also carry .bh-scorepick-step.
   ===================================================================== */
.bh-scorepick { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; }
.bh-scorepick-steps { display: inline-flex; gap: 0.25rem; flex-wrap: wrap; }
.bh-scorepick-step {
    border: 1px solid var(--border-default, #d8d4e2);
    background: var(--bg-card, #fff);
    color: var(--text-secondary, #5a5a6e);
    border-radius: 6px;
    padding: 0.2rem 0.55rem;
    font-size: 0.72rem;
    line-height: 1.15;
    cursor: pointer;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.bh-scorepick-step .bh-scorepick-step-lbl { font-size: 0.62rem; opacity: 0.75; }
.bh-scorepick-step:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); background: var(--bg-purple-tint, #f4effb); }
.bh-scorepick-step:focus { outline: none; box-shadow: none; }
.bh-scorepick-step:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 1px; }
.bh-scorepick-step.is-active { background: var(--brand-primary, #3d1a6f); color: #fff; border-color: var(--brand-primary, #3d1a6f); box-shadow: 0 1px 3px rgba(61,26,111,0.25); }
.bh-scorepick-step.is-active .bh-scorepick-step-lbl { opacity: 0.9; }
.bh-scorepick-readout { font-size: 0.78rem; font-weight: 600; min-width: 58px; }
.bh-scorepick-score { font-size: 0.85rem; font-weight: 700; min-width: 32px; margin-left: auto; text-align: right; }
.bh-scorepick-score.is-preview { font-style: italic; opacity: 0.95; }
/* Sentiment skin: face-icon chips. Inactive = neutral; the SELECTED chip's
   traffic-light fill is set inline from the SSOT in JS (no hex here). */
.bh-scorepick--sentiment .bh-scorepick-step { min-width: 36px; font-size: 0.95rem; padding: 0.12rem 0.5rem; }

/* Collapsed scored-arm badge row + per-arm popover (BHScorePickRow SSOT, 2026-06-30). ONE
   at-a-glance + quick-edit control for Sentiment / Key Messages / Prominence + the read-only
   post-lens ProofScore, shared identically by Coverage + Interviews cards. Each value badge is a
   button that opens a small floating popover whose body is the arm's existing .bh-scorepick-step
   control. Sentiment tone + ProofScore band colour are inline from the SSOT (no hex here);
   Messages / Prominence stay quiet. Dark-mode safe via tokens. */
.bh-scorepick-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; }
.bh-scorepick-badge {
    display: inline-flex; align-items: center; gap: 0.3rem; white-space: nowrap;
    font-size: 0.76rem; font-weight: 600; line-height: 1.1;
    padding: 0.32rem 0.62rem; border-radius: 999px;
    border: 1px solid var(--border-color, #d9d4e3);
    background: var(--bg-subtle, #f6f4fb); color: var(--text-primary, #2b2b3a);
    cursor: pointer; transition: border-color 0.12s ease, color 0.12s ease, background 0.12s ease;
}
button.bh-scorepick-badge:hover { border-color: var(--brand-primary, #3d1a6f); color: var(--brand-primary, #3d1a6f); }
.bh-scorepick-badge:focus { outline: none; }
.bh-scorepick-badge:focus-visible { outline: 2px solid var(--brand-primary, #3d1a6f); outline-offset: 1px; }
.bh-scorepick-badge--unset { color: var(--text-muted, #8a8597); font-weight: 500; font-style: italic; }
.bh-scorepick-badge--sentiment.bh-scorepick-badge--unset:hover { background: var(--bg-subtle, #f6f4fb); }
/* The ProofScore is the read-only RESULT, not a dropdown: de-chrome it (no pill border/fill, no caret,
   no hover) so it reads as the row's output beside the three editable chips. Gold award anchors it. */
.bh-scorepick-badge--proof { cursor: default; border-color: transparent; background: transparent; padding-left: 0.1rem; margin-left: 0.2rem; }
.bh-scorepick-badge--proof:hover { border-color: transparent; background: transparent; color: var(--text-primary, #2b2b3a); }
.bh-scorepick-badge--proof strong { font-weight: 800; }
.bh-scorepick-badge--proof .fa-award { color: var(--brand-accent, #fdb913); }
/* dropdown caret on the three editable badges (muted; inherits the badge's text colour) */
.bh-scorepick-caret { font-size: 0.6rem; opacity: 0.5; }

.bh-scorepick-pop {
    position: absolute; z-index: 1060; min-width: 250px; max-width: 340px;
    background: var(--card-bg, #fff); border: 1px solid var(--border-color, #d9d4e3);
    border-radius: 10px; box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
    padding: 0.7rem 0.8rem;
}
.bh-scorepick-pop .bh-scorepick-pop-body { max-height: 280px; overflow-y: auto; }
/* The popover is a VERTICAL droplist: reuse each arm's own .bh-scorepick-step buttons but stack them
   full-width (one option per line) instead of a wrapping chip strip. The per-arm number + sentiment
   word readouts are hidden here -- the row's ProofScore badge IS the readout and updates on save. */
.bh-scorepick-pop .qs-inline-row,
.bh-scorepick-pop .qs-sent-cell,
.bh-scorepick-pop .bh-msg-row,
.bh-scorepick-pop .bh-prom-row,
.bh-scorepick-pop .bh-scorepick-steps,
.bh-scorepick-pop .qs-sentiment-group,
.bh-scorepick-pop .bh-msg-5point,
.bh-scorepick-pop .bh-prom-5point,
.bh-scorepick-pop .bh-msg-checklist { display: flex; flex-direction: column; align-items: stretch; gap: 0.2rem; width: 100%; min-width: 0; }
.bh-scorepick-pop .bh-scorepick-step,
.bh-scorepick-pop .bh-scorepick--sentiment .bh-scorepick-step {
    width: 100%; min-width: 0; flex-direction: row; align-items: center;
    justify-content: flex-start; text-align: left; gap: 0.55rem;
    padding: 0.5rem 0.7rem; font-size: 0.85rem; border-radius: 7px;
}
.bh-scorepick-pop .bh-scorepick-step-lbl { font-size: 0.85rem; opacity: 1; }
.bh-scorepick-pop .bh-msg-km { display: flex; align-items: center; gap: 0.5rem; margin: 0; padding: 0.4rem 0.5rem; font-size: 0.85rem; cursor: pointer; }
.bh-scorepick-pop .qs-cqi-display,
.bh-scorepick-pop .bh-msg-cqi,
.bh-scorepick-pop .bh-prom-cqi,
.bh-scorepick-pop .qs-sent-readout,
.bh-scorepick-pop .bh-scorepick-score { display: none !important; }
.bh-scorepick-pop-arrow {
    position: absolute; top: -7px; left: 18px; width: 12px; height: 12px;
    background: var(--card-bg, #fff);
    border-left: 1px solid var(--border-color, #d9d4e3); border-top: 1px solid var(--border-color, #d9d4e3);
    transform: rotate(45deg);
}
.bh-scorepick-pop--above .bh-scorepick-pop-arrow { top: auto; bottom: -7px; transform: rotate(225deg); }

/* EmailPitching compose brand switcher chip (2026-06-22). Compact inline pill mirroring the
   canonical "Preview brand" control (swatches + resolved-source label + caret); styled for the
   light compose surface, dark-mode-safe via theme tokens. */
.ep-brand-chip { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 0.45rem 0; font-size: 11px; }
.ep-brand-cap { font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; font-weight: 700; color: var(--text-tertiary, #888888); }
.ep-brand-dd { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 9px 0 10px; border-radius: 999px; border: 1px solid var(--border-default, #e4e0ee); background: var(--bg-card, #ffffff); color: var(--text-body, #333333); cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.ep-brand-dd:hover { border-color: var(--brand-primary, #3d1a6f); background: var(--bg-subtle, #f4f5f7); }
.ep-brand-swatches { display: inline-flex; gap: 3px; }
.ep-brand-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(0,0,0,0.12); }
.ep-brand-chip-label { font-weight: 600; font-size: 11px; color: var(--text-body, #555555); white-space: nowrap; }
.ep-brand-caret { font-size: 9px; color: var(--text-tertiary, #888888); }
.ep-brand-menu { z-index: 1050; min-width: 200px; padding: 0.35rem; background: var(--bg-card, #ffffff); border: 1px solid var(--border-default, #e4e0ee); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,0.18); }
.ep-brand-mi { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 0.45rem 0.6rem; margin: 0; border: 0; background: transparent; color: var(--text-body, #333333); border-radius: 6px; cursor: pointer; font-size: 0.85rem; }
.ep-brand-mi:hover { background: var(--bg-subtle, #f4f5f7); }
.ep-brand-mi-sw { display: inline-flex; gap: 3px; flex: 0 0 auto; min-width: 42px; }
.ep-brand-mi-lbl { white-space: nowrap; }
.ep-brand-custom { padding: 0.4rem 0.2rem 0.2rem; display: flex; flex-direction: column; gap: 0.3rem; }
.ep-brand-custom label { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; margin: 0; color: var(--text-body, #555555); }
[data-theme="dark"] .ep-brand-dd,
[data-theme="dark"] .ep-brand-menu { background: var(--bg-card, #1e1e22); border-color: var(--border-subtle, #3a3a42); color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .ep-brand-mi { color: var(--text-body, #d4d4d4); }
[data-theme="dark"] .ep-brand-mi:hover { background: var(--bg-elevated, #2a2a30); }
[data-theme="dark"] .ep-brand-sw { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18); }

/* ============================================================
   NewsWire hub -- cross-newsroom story search (Default.aspx).
   Self-contained: the in-newsroom .nw-search-*/.nw-story-* styles
   live inline in NewsWire.aspx and are NOT loaded on the hub, so
   everything the hub search needs is defined here, scoped to the
   hub search/results containers so it never affects NewsWire.aspx.
   Tokens flip in dark mode via var() fallbacks. (2026-06-24)
   ============================================================ */
.nw-hub-search { max-width: 720px; margin: 0.25rem 0 1.25rem; }
.nw-hub-search .nw-search-box { position: relative; display: flex; align-items: center; }
.nw-hub-search .nw-search-box input {
    width: 100%;
    padding: 0.6rem 2.4rem 0.6rem 0.9rem;
    border: 1px solid var(--border-default, #d9d2ea);
    border-radius: 24px;
    background: var(--bg-surface, #fff);
    color: var(--text-body, #343136);
    font-size: 0.95rem;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.nw-hub-search .nw-search-box input:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 3px rgba(61, 26, 111, 0.12);
}
.nw-hub-search .nw-search-icon,
.nw-hub-search .nw-clear-icon { position: absolute; top: 50%; transform: translateY(-50%); cursor: pointer; color: var(--text-secondary, #777); }
.nw-hub-search .nw-search-icon { right: 0.9rem; }
.nw-hub-search .nw-clear-icon { right: 2.3rem; font-size: 0.85rem; }
.nw-hub-search .nw-search-icon:hover,
.nw-hub-search .nw-clear-icon:hover { color: var(--brand-primary, #3d1a6f); }

#nwhub-results { margin-bottom: 2rem; }
.nw-hub-search-info { margin: 0 0 0.85rem; font-size: 0.9rem; color: var(--text-secondary, #555); }
.nw-hub-search-info i { color: var(--brand-accent, #fdb913); margin-right: 0.3rem; }

.nw-result-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--border-default, #e3def0);
    border-radius: 10px;
    background: var(--bg-surface, #fff);
    margin-bottom: 0.9rem;
    overflow: hidden;
    transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}
.nw-result-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
    border-color: var(--brand-accent, #fdb913);
    text-decoration: none;
    color: inherit;
}
.nw-result-newsroom {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.9rem;
    background: var(--bg-subtle, #faf9fc);
    border-bottom: 1px solid var(--border-default, #e3def0);
}
.nw-result-logo { width: 30px; height: 30px; object-fit: cover; border-radius: 6px; background: var(--bg-muted, #ece9f5); flex: 0 0 auto; }
.nw-result-newsroom-name { font-weight: 700; font-size: 0.82rem; letter-spacing: 0.03em; text-transform: uppercase; color: var(--page-title-color, #3d1a6f); }
.nw-result-open { margin-left: auto; font-size: 0.78rem; font-weight: 600; color: var(--brand-accent, #fdb913); white-space: nowrap; }
.nw-result-body { padding: 0.8rem 0.9rem; }
#nwhub-results .nw-story-title { margin: 0 0 0.35rem; font-size: 1.05rem; font-weight: 700; color: var(--page-title-color, #3d1a6f); line-height: 1.3; }
#nwhub-results .nw-story-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; font-size: 0.82rem; color: var(--text-secondary, #666); margin-bottom: 0.45rem; }
#nwhub-results .nw-story-meta i { color: var(--brand-accent, #fdb913); margin-right: 0.25rem; }
#nwhub-results .nw-story-summary {
    font-size: 0.9rem;
    color: var(--text-body, #343136);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nw-result-files { margin-top: 0.55rem; }
#nwhub-results .nw-file-badges { display: inline-flex; gap: 0.4rem; flex-wrap: wrap; }
#nwhub-results .nw-file-badge { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; padding: 0.12rem 0.5rem; border-radius: 12px; background: var(--bg-muted, #ece9f5); color: var(--text-secondary, #555); }
.nw-hub-empty, .nw-hub-nomore { text-align: center; padding: 1.5rem 1rem; color: var(--text-secondary, #777); }
.nw-hub-empty i { font-size: 1.8rem; color: var(--border-default, #cfc7e0); }
.nw-hub-empty h5 { margin: 0.6rem 0 0.3rem; color: var(--text-body, #343136); }
#nwhub-results .nw-error { text-align: center; padding: 1rem; color: var(--status-danger-text, #b3261e); }
.nw-story-skel { border: 1px solid var(--border-default, #e3def0); border-radius: 10px; background: var(--bg-surface, #fff); margin-bottom: 0.9rem; }
.nw-skel-body { padding: 0.9rem; }

/* ===== ServiceNavEditor -- admin page-navigation drag editor (MediaCast.aspx + BuzzHubAdmin.aspx) ===== */
.snav-board { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; position: relative; }
.snav-col { flex: 1 1 320px; min-width: 280px; }
.snav-col h5 { margin: 0 0 0.25rem; color: var(--text-body, #343136); }
.snav-hint { margin: 0 0 0.6rem; font-size: 0.8rem; color: var(--text-secondary, #777); }
.snav-palette-list, .snav-top-list { display: flex; flex-direction: column; gap: 0.4rem; }
/* Elevated icon-chip tiles: white surface, soft shadow, hover lift + gold ring. */
.snav-pal-item, .snav-top-card, .snav-child {
    border: 1px solid var(--border-default, #e3def0); border-radius: 10px;
    background: var(--bg-surface, #fff);
    box-shadow: 0 1px 2px rgba(61, 26, 111, 0.05), 0 1px 3px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease; }
/* Individual draggable tiles lift on hover; the parent container only brightens its ring. */
.snav-pal-item:hover, .snav-child:hover {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 3px 12px rgba(61, 26, 111, 0.12), 0 0 0 1px var(--brand-accent, #fdb913);
    transform: translateY(-1px); }
.snav-top-card:hover {
    border-color: var(--brand-accent, #fdb913);
    box-shadow: 0 3px 12px rgba(61, 26, 111, 0.10); }
.snav-pal-item:hover .snav-card-text strong,
.snav-child:hover .snav-card-text strong,
.snav-top-head:hover .snav-card-text strong { color: var(--brand-primary, #3d1a6f); }
.snav-pal-item, .snav-top-head, .snav-child { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.6rem; }
/* Tinted brand chip housing the page icon. */
.snav-icon-chip { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 8px; font-size: 0.9rem;
    background: var(--bg-purple-tint, #f0ecf9); color: var(--brand-primary, #3d1a6f);
    transition: background 0.15s ease, color 0.15s ease; }
.snav-child .snav-icon-chip { width: 26px; height: 26px; font-size: 0.8rem; }
.snav-pal-item:hover .snav-icon-chip,
.snav-child:hover .snav-icon-chip,
.snav-top-head:hover .snav-icon-chip { background: var(--bg-gold-tint, #fff5dc); }
.snav-grip { cursor: grab; color: var(--text-secondary, #999); user-select: none; flex: 0 0 auto; }
.snav-card-text { flex: 1 1 auto; min-width: 0; }
.snav-card-text strong { display: block; font-size: 0.9rem; color: var(--text-body, #343136); }
.snav-card-text small { display: block; font-size: 0.75rem; color: var(--text-secondary, #777); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.snav-badge { flex: 0 0 auto; font-size: 0.7rem; padding: 0.1rem 0.45rem; border-radius: 10px;
    background: var(--bg-muted, #f0ecf9); color: var(--text-secondary, #777); }
.snav-children { min-height: 38px; margin: 0 0.5rem 0.5rem; padding: 0.3rem; display: flex; flex-direction: column; gap: 0.3rem;
    border: 1px dashed var(--border-default, #cfc7e0); border-radius: 6px; }
.snav-children:empty::before { content: "Drop pages here"; display: block; text-align: center;
    font-size: 0.75rem; color: var(--text-secondary, #aaa); padding: 0.4rem; }
.snav-child { padding: 0.35rem 0.5rem; }
.snav-remove { flex: 0 0 auto; border: none; background: transparent; font-size: 1.1rem; line-height: 1;
    cursor: pointer; color: var(--status-danger-text, #b3261e); }
.snav-loading, .snav-error { padding: 1rem; text-align: center; color: var(--text-secondary, #777); }
.snav-error { color: var(--status-danger-text, #b3261e); }
.snav-edit, .snav-del { flex: 0 0 auto; border: none; background: transparent; cursor: pointer; padding: 0.15rem 0.35rem; font-size: 0.8rem; line-height: 1; border-radius: 4px; }
.snav-edit { color: var(--text-secondary, #777); }
.snav-edit:hover { color: var(--brand-primary, #3d1a6f); background: var(--bg-muted, #f0ecf9); }
.snav-del { color: var(--status-danger-text, #b3261e); }
.snav-del:hover { background: var(--bg-muted, #f0ecf9); }
/* Busy overlay during save/reload so the board never shows a stale mid-save state. */
.snav-busy { position: absolute; inset: 0; z-index: 6; display: flex; align-items: flex-start; justify-content: center;
    padding-top: 2.5rem; background: rgba(255, 255, 255, 0.55); border-radius: 8px; cursor: progress; }
[data-theme="dark"] .snav-busy { background: rgba(22, 20, 30, 0.55); }
.snav-busy-inner { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; font-weight: 600;
    color: var(--brand-primary, #3d1a6f); background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e3def0); border-radius: 20px; padding: 0.4rem 0.95rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.10); }
.snav-spinner { width: 0.95rem; height: 0.95rem; flex: 0 0 auto; display: inline-block; vertical-align: middle;
    border: 2px solid var(--bg-muted, #e3def0); border-top-color: var(--brand-primary, #3d1a6f);
    border-radius: 50%; animation: snav-spin 0.7s linear infinite; }
@keyframes snav-spin { to { transform: rotate(360deg); } }
.snav-addchild { display: block; width: calc(100% - 1rem); margin: 0.1rem 0.5rem 0.5rem; border: 1px dashed var(--border-default, #cfc7e0);
    background: transparent; color: var(--text-secondary, #777); border-radius: 6px; padding: 0.3rem; font-size: 0.78rem; cursor: pointer; }
.snav-addchild:hover { background: var(--bg-muted, #f0ecf9); color: var(--brand-primary, #3d1a6f); }
/* First-load skeleton board: quieter column headings + a divider standing in for the child zone. */
.snav-board-skel .snav-col h5 { color: var(--text-secondary, #999); }
.snav-skel-zone { margin-top: 0.4rem; padding-top: 0.4rem; border-top: 1px dashed var(--border-default, #e3def0); }

/* ===== Icon field (MediaCast Service Items) -- preview swatch + value + Choose-icon button ===== */
.bh-icon-field { display: flex; align-items: center; gap: 0.5rem; }
.bh-icon-field-preview { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 8px; font-size: 1.05rem;
    background: var(--bg-purple-tint, #f0ecf9); color: var(--brand-primary, #3d1a6f); }
/* The raw FA class string is noise for the user -- the preview swatch is the indicator.
   Kept in the DOM (not disabled) so the readonly textbox still posts + binds Icon on save. */
.bh-icon-field-value { display: none; }
.bh-icon-field-btn { flex: 0 0 auto; white-space: nowrap; }

/* ===== BHIconPicker -- shared FontAwesome picker modal (self-injected) ===== */
.bhip-backdrop { z-index: 100002; }
.bhip-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 800px; max-width: 95%; z-index: 100003; }
.bhip-grid { max-height: 350px; overflow-y: auto; }
.bhip-cell { padding: 0.5rem; border: 1px solid var(--border-default, #e3def0); border-radius: 6px; cursor: pointer;
    color: var(--text-body, #343136); transition: background 0.15s ease, border-color 0.15s ease; }
.bhip-item { outline: none; }
.bhip-item:hover .bhip-cell, .bhip-item:focus .bhip-cell {
    background: var(--bg-purple-tint, #f0ecf9); border-color: var(--brand-primary, #3d1a6f); }
.bhip-cell i { color: var(--text-body, #343136); }
.bhip-cell-name { font-size: 9px; color: var(--text-secondary, #777); }

/* ============================================================================
   REPORT DESIGN SYSTEM (PDF client reports) -- .bh-rpt-* / .bh-covernew / .bh-backnew
   The single shared vocabulary for report-section components (Pages/Reports/Components).
   Every colour is a brand token (--brand-primary/secondary/accent are fed per-report by
   Report.Master), so the same layout recolours to each client's brand. Cream surfaces are
   fixed brand neutrals. Status colour is NEVER baked here -- a component passes it in via
   the --bh-rpt-accent custom property from the KPI/sentiment SSOT (Kpi.GetKpiStatusHex /
   BHScoring.sentimentHex). PDF pages are dark-mode exempt. Design: approved 2026-07-01.
   ============================================================================ */
.bh-rpt {
    --bh-rpt-cream: #fff5dc;
    --bh-rpt-cream-2: #fffbf0;
    /* Supporting-text tones follow the brand Text colour so straps, labels and sub-text stay
       on-brand instead of a fixed grey/black. Ink = full brand Text; muted = a lighter tier
       (--brand-text-muted, emitted per-render) to preserve hierarchy. Fallbacks keep the old
       neutrals when no brand resolves. */
    --bh-rpt-ink: var(--brand-text, #241a2e);
    --bh-rpt-muted: var(--brand-text-muted, #6b6475);
    --bh-rpt-line: #e7e2ee;
}

/* Running header (repeat at top of a content page) */
.bh-rpt-runhead {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 8.5pt; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--bh-rpt-muted, #6b6475);
    border-bottom: 1px solid var(--bh-rpt-line, #e7e2ee);
    padding-bottom: 8px; margin-bottom: 14mm;
}
.bh-rpt-runhead b { color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); }

/* Section = signature: a gold+purple rail carrying an oversized ghosted index */
.bh-rpt-section { display: grid; grid-template-columns: 22mm 1fr; margin-bottom: 14mm; break-inside: avoid; }
.bh-rpt-rail { position: relative; padding-top: 2px; }
.bh-rpt-rail .bh-rpt-idx {
    font-size: 30pt; font-weight: 800; line-height: 1; opacity: 0.16;
    color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); font-variant-numeric: tabular-nums;
}
.bh-rpt-rail::after {
    content: ""; position: absolute; left: 6px; top: 44px; bottom: -6mm; width: 3px;
    background: linear-gradient(var(--brand-accent-safe, var(--brand-accent, #fdb913)), transparent);
}
.bh-rpt-body { min-width: 0; }
/* Derived-token note: accent furniture reads --brand-accent-safe (a near-white brand accent
   falls back brand-first instead of vanishing on the light page); Primary used AS TEXT reads
   --brand-primary-ink (near-white Primary clamps to readable ink). Both emitted per-render by
   Report.Master alongside the raw slots; fallbacks preserve the un-branded defaults. */
.bh-rpt-eyebrow {
    font-size: 9pt; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 700;
    color: var(--brand-accent-safe, var(--brand-accent, #fdb913)); margin-bottom: 4px;
}
.bh-rpt-title { font-size: 20pt; font-weight: 700; line-height: 1.1; color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); }
.bh-rpt-strap { font-size: 10.5pt; color: var(--bh-rpt-muted, #6b6475); margin-top: 6px; max-width: 150mm; }
/* Narrative body copy renders in the brand Text colour, overriding any colour carried in the
   stored rich text, so report prose stays on-brand across every style pack. Scope this wrapper
   to free-text blocks only -- never around KPI values, tables or status-coloured figures. */
.bh-rpt-prose, .bh-rpt-prose * { color: var(--brand-text, #1a1a2e) !important; }

/* KPI hero tiles -- ONE tile system for every report stat strip */
.bh-rpt-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0 4px; }
.bh-rpt-kpis.cols-3 { grid-template-columns: repeat(3, 1fr); }
.bh-rpt-kpis.cols-2 { grid-template-columns: repeat(2, 1fr); }
.bh-rpt-kpis.cols-5 { grid-template-columns: repeat(5, 1fr); }
/* 5-up dense KPI strip (Social Impact: Views/Mentions/Likes/Comments/Shares). Five tiles in
   report width leave each ~1/5 wide, so the 27pt base value overflows 6-7 digit counts.
   Step the value down + tighten padding so large numbers fit. The 4-class specificity beats
   the style-pack value rules (.bh-rptstyle-* .bh-rpt-kpi .bh-rpt-v), so it holds across packs. */
.bh-rpt-kpis.cols-5 .bh-rpt-kpi { padding: 12px 10px; }
.bh-rpt-kpis.cols-5 .bh-rpt-kpi .bh-rpt-v { font-size: 16pt; }
.bh-rpt-kpis.cols-5 .bh-rpt-kpi .bh-rpt-l { font-size: 7.5pt; letter-spacing: 1px; }
.bh-rpt-kpi {
    position: relative; overflow: hidden; break-inside: avoid;
    background: var(--bh-rpt-cream-2, #fffbf0);
    border: 1px solid var(--bh-rpt-line, #e7e2ee); border-radius: 12px; padding: 14px 16px;
}
.bh-rpt-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: var(--bh-rpt-accent, var(--brand-accent-safe, var(--brand-accent, #fdb913))); }
.bh-rpt-kpi .bh-rpt-v {
    font-size: 27pt; font-weight: 800; line-height: 1; letter-spacing: -0.5px;
    color: var(--bh-rpt-accent, var(--brand-primary-ink, var(--brand-primary, #3d1a6f))); font-variant-numeric: tabular-nums;
}
.bh-rpt-kpi .bh-rpt-l { font-size: 8.5pt; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--bh-rpt-muted, #6b6475); margin-top: 8px; }
.bh-rpt-kpi .bh-rpt-s { font-size: 8.5pt; color: var(--bh-rpt-ink, #241a2e); margin-top: 3px; }
/* Hero tile: filled brand field, reversed text. The far end is the DERIVED gradient partner
   (--brand-hero-end, Report.Master): the raw Secondary is used only when it blends cleanly with
   Primary and takes the same reversed text colour -- otherwise an in-family shade of Primary,
   so no brand palette can produce a muddy blend or unreadable hero text. */
.bh-rpt-kpi.bh-rpt-hero { background: linear-gradient(160deg, var(--brand-primary, #3d1a6f), var(--brand-hero-end, var(--brand-secondary, #5a2d82))); }
.bh-rpt-kpi.bh-rpt-hero .bh-rpt-v { color: var(--brand-on-primary, #fff); }
.bh-rpt-kpi.bh-rpt-hero .bh-rpt-l { color: var(--brand-on-primary, #fff); opacity: 0.72; }
.bh-rpt-kpi.bh-rpt-hero .bh-rpt-s { color: var(--brand-on-primary, #fff); opacity: 0.85; }

/* Takeaway callout */
.bh-rpt-takeaway {
    background: var(--bh-rpt-cream, #fff5dc); border-left: 4px solid var(--brand-accent-safe, var(--brand-accent, #fdb913));
    border-radius: 0 8px 8px 0; padding: 12px 16px; font-size: 10.5pt;
    color: var(--bh-rpt-ink, #241a2e); margin: 12px 0; break-inside: avoid;
}
.bh-rpt-takeaway b { color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); }

/* Panel = framed chart/content card */
.bh-rpt-cardgrid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 12px; margin-top: 6px; }
.bh-rpt-panel { border: 1px solid var(--bh-rpt-line, #e7e2ee); border-radius: 12px; padding: 14px 16px; break-inside: avoid; }
.bh-rpt-panel > h4 { font-size: 10pt; letter-spacing: 1px; text-transform: uppercase;
    color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); margin-bottom: 12px; }

/* Story card head -- per-ENTITY panel header (StoryBreakdown et al). A panel's h4 is a
   CHART/section label (uppercase; reversed bar in the bold pack) -- never bind an entity
   title into it. Title + meta share one line; meta hugs the right. Packs may retune type
   (report-page-styles.css) but the shape is fixed here. */
.bh-rpt-story-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.bh-rpt-story-title { font-size: 12pt; font-weight: 700; line-height: 1.25; color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)); min-width: 0; }
.bh-rpt-story-meta { font-size: 8.5pt; color: var(--bh-rpt-muted, #6b6475); white-space: nowrap; }
.bh-rpt-story-empty td { font-size: 9pt; color: var(--bh-rpt-muted, #6b6475); padding: 6px 0; }

/* Encoded share bar for report tables (encode, don't dump) */
.bh-rpt-share { display: flex; align-items: center; gap: 8px; }
.bh-rpt-share .bh-rpt-track { flex: 1; height: 7px; background: var(--bh-rpt-line, #e7e2ee); border-radius: 6px; overflow: hidden; }
.bh-rpt-share .bh-rpt-fill { height: 100%; border-radius: 6px;
    background: linear-gradient(90deg, var(--brand-secondary-safe, var(--brand-secondary, #5a2d82)), var(--brand-accent-safe, var(--brand-accent, #fdb913))); }
.bh-rpt-share .bh-rpt-pc { width: 34px; text-align: right; font-size: 8.5pt; color: var(--bh-rpt-muted, #6b6475); }

/* Platform breakdown rows (Social Impact): badge + proportional bar (share of the top
   platform) + count. Solid brand fill so every bar reads the same hue at any length (the
   gradient share-fill looks like a different colour at small widths). Bar widths are set
   client-side from data-cnt (encode, don't dump) -- see the component's inline script. */
.bh-rpt-plat-row { display: flex; align-items: center; gap: 12px; padding: 6px 0; }
.bh-rpt-plat-row + .bh-rpt-plat-row { border-top: 1px solid var(--bh-rpt-line, #e7e2ee); }
.bh-rpt-plat-badge { flex: 0 0 auto; min-width: 84px; justify-content: center; }
.bh-rpt-plat-bar { flex: 1; height: 8px; background: var(--bh-rpt-line, #e7e2ee); border-radius: 6px; overflow: hidden; }
.bh-rpt-plat-fill { height: 100%; border-radius: 6px; background: var(--brand-primary, #3d1a6f); }
.bh-rpt-plat-cnt { flex: 0 0 auto; min-width: 78px; text-align: right; font-size: 9pt; color: var(--bh-rpt-muted, #6b6475); }
.bh-rpt-plat-cnt b { color: var(--bh-rpt-ink, #241a2e); font-size: 10pt; }

/* ---- Cover (new) ---- WHITE page, brand-PRIMARY display text (George 2026-07-10).
   No page-level field fill: the PagedJS geometry reset (BUZZHubprint.css
   "body.bh-pagedjs .bh-page { background: transparent !important }") out-specifies any
   .bh-page.bh-covernew background in preview/PDF, so a painted field can never survive
   pagination. The cover therefore works WITH the white sheet: brand Primary as display
   ink, brand accent for the kicker/rule furniture.
   Applied to the .bh-page ELEMENT (not a nested 210mm child): a 210mm child inside .bh-page's
   1.1cm padding overflows the page. So we take over the .bh-page box, strip its border/shadow
   in BOTH render modes, and re-inset with the cover's own padding.
   Colours !important: PdfBrandHelper emits ".bh-page{color:<text>}" AFTER this bundle.
   --brand-primary-ink = Primary as readable light-page ink (clamps only a near-white Primary);
   --brand-accent-safe = accent guaranteed visible on the light page. */
.bh-page.bh-covernew {
    color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)) !important; padding: 26mm 24mm 24mm !important;
    margin: 0 auto !important; border: none !important; border-radius: 0 !important; box-shadow: none !important;
    display: flex; flex-direction: column; justify-content: space-between;
    background: none !important;
}
/* PagedJS forces .bh-page min-height:0 (to avoid a phantom trailing page); re-assert full
   page height so the flex space-between layout keeps the footer at the sheet's bottom.
   296mm (1mm under the 297mm A4 box, @page margin:0) stays clear of the phantom-page
   threshold the framework warns about. */
body.bh-pagedjs .bh-page.bh-covernew { padding: 26mm 24mm 24mm !important; min-height: 296mm !important; }
.bh-covernew h1, .bh-covernew h1 strong { color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)) !important; }
.bh-covernew .bh-covernew-brandrow { display: flex; justify-content: space-between; align-items: center; }
.bh-covernew .bh-covernew-kicker { font-size: 10.5pt; letter-spacing: 3px; text-transform: uppercase;
    color: var(--brand-accent-safe, var(--brand-accent, #fdb913)); font-weight: 600; }
.bh-covernew .bh-covernew-rule { width: 64px; height: 5px; background: var(--brand-accent-safe, var(--brand-accent, #fdb913)); border-radius: 4px; margin: 14mm 0 8mm;
    -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.bh-covernew h1 { font-size: 54pt; line-height: 0.98; font-weight: 300; max-width: 150mm; }
.bh-covernew h1 strong { font-weight: 700; display: block; }
.bh-covernew .bh-covernew-meta { display: flex; gap: 34px; margin-top: 12mm; font-size: 12pt; }
.bh-covernew .bh-covernew-meta .lab { display: block; font-size: 8.5pt; letter-spacing: 2px;
    text-transform: uppercase; color: rgba(26,26,46,0.55); margin-bottom: 4px; }
.bh-covernew .bh-covernew-foot { display: flex; justify-content: space-between; align-items: flex-end;
    border-top: 1px solid rgba(26,26,46,0.15); padding-top: 10px; font-size: 9pt; color: rgba(26,26,46,0.65); }
.bh-covernew img.bh-covernew-logo { max-height: 16mm; max-width: 60mm; display: inline-block; }

/* ---- Back cover (new) ---- white closing page, brand-Primary display text (see cover note). */
.bh-page.bh-backnew {
    color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)) !important; padding: 26mm 24mm 24mm !important;
    margin: 0 auto !important; border: none !important; border-radius: 0 !important; box-shadow: none !important;
    display: flex; flex-direction: column; justify-content: space-between;
    background: none !important;
}
body.bh-pagedjs .bh-page.bh-backnew { padding: 26mm 24mm 24mm !important; min-height: 296mm !important; }
.bh-backnew h2, .bh-backnew h2 strong { color: var(--brand-primary-ink, var(--brand-primary, #3d1a6f)) !important; }
.bh-backnew .bh-backnew-rule { width: 64px; height: 5px; background: var(--brand-accent-safe, var(--brand-accent, #fdb913)); border-radius: 4px; margin: 0 0 8mm;
    -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.bh-backnew h2 { font-size: 34pt; font-weight: 300; line-height: 1.05; max-width: 150mm; }
.bh-backnew h2 strong { font-weight: 700; }
.bh-backnew .bh-backnew-contact { display: flex; gap: 40px; font-size: 11pt; margin-top: 10mm; }
.bh-backnew .bh-backnew-contact .lab { display: block; font-size: 8.5pt; letter-spacing: 2px;
    text-transform: uppercase; color: rgba(26,26,46,0.55); margin-bottom: 4px; }
.bh-backnew .bh-backnew-foot { display: flex; justify-content: space-between; align-items: flex-end;
    border-top: 1px solid rgba(26,26,46,0.15); padding-top: 10px; font-size: 9pt; color: rgba(26,26,46,0.65); }
.bh-backnew img.bh-backnew-logo { max-height: 18mm; max-width: 60mm; }

/* Supplier picker + dedup cluster list (PO picker on AccountManagement, Suppliers tab on Finance) */
.bh-supplier-results {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 1055;
    background: var(--card-bg, #fff); border: 1px solid var(--border-color, #dee2e6);
    border-radius: 6px; max-height: 220px; overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12); margin-top: 2px;
}
.bh-supplier-item {
    padding: 8px 12px; cursor: pointer; font-size: 0.9rem;
    color: var(--text-color, #212529); border-bottom: 1px solid var(--border-color, #f0f0f0);
}
.bh-supplier-item:last-child { border-bottom: none; }
.bh-supplier-item:hover, .bh-supplier-item.active { background: var(--bg-subtle, #f5f5f5); }

/* ========================================
   Modal booking form grid -- .bh-bk -- SSOT (promoted from Interviews.aspx inline block 2026-07-11)
   Canonical modern form language for record modals: uppercase mini-labels above
   full-width controls in a 2-col grid (density modifiers .cols3/.cols4 for short
   controls), section rules, quiet lens sub-controls, gold-edged context box,
   compact read-only contact line (.bh-bk-contact-line), in-template action row.
   Consumers: Interviews booking modal (main + sub-bookings). Reuse these classes
   for any modal form; do not fork page-side.
   .bh-bk-footer exists (rather than .modal-footer-bar) because FormView command
   buttons (CommandName=...) must render INSIDE the template, so the action row
   lives in-form; visual language mirrors .modal-footer-bar.
   ======================================== */
.bh-bk { font-size: .9rem; }
.bh-bk-section { font-size: .72rem; font-weight: 700; color: var(--brand-primary, #3d1a6f); text-transform: uppercase; letter-spacing: .6px; margin: 0 0 1rem; padding-bottom: .5rem; border-bottom: 1px solid var(--border-light, #e9ecef); display: flex; align-items: center; gap: .5rem; }
.bh-bk-section:not(:first-child) { margin-top: 1.1rem; }
.bh-bk-section i { color: var(--brand-accent, #fdb913); }
.bh-bk-section-action { margin-left: auto; font-size: .75rem; font-weight: 600; text-transform: none; letter-spacing: 0; }

.bh-bk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem 1rem; align-items: start; }
/* density modifiers (2026-07-12 real-estate pass): 3-up / 4-up rows for short controls
   (times, status, type, method, contact). .span2 stays "span all" in every variant. */
.bh-bk-grid.cols3 { grid-template-columns: repeat(3, 1fr); }
.bh-bk-grid.cols4 { grid-template-columns: repeat(4, 1fr); }
.bh-bk-field { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.bh-bk-field.span2 { grid-column: 1 / -1; }
/* Empty message slots (Labels that only fill on error) must not hold a flex-gap row.
   Pair with Display="Dynamic" on validators -- Static validators reserve a whole
   invisible line under the control (the phantom-gap bug, 2026-07-12). */
.bh-bk-field > span:empty { display: none; }
/* Time context bar: the combined producer-time + view-in lens strip under the times row.
   Tinted so it reads as a designed element, not stray text. */
.bh-bk-timebar { grid-column: 1 / -1; background: var(--bg-slate-tint, #f6f5f9); border-radius: 8px; padding: .4rem .65rem; }
.bh-bk-timebar .bh-bk-lens { margin-top: 0; }
.bh-bk-label { font-size: .72rem; font-weight: 600; color: var(--text-secondary, #6b6480); text-transform: uppercase; letter-spacing: .4px; display: flex; align-items: center; gap: .3rem; margin: 0; }
.bh-bk-req { color: #e0395e; font-weight: 700; }
.bh-bk-label .fa-info-circle { color: var(--text-muted, #9a93ad); }

/* quiet behaviour note under a field -- use instead of red/italic warnings */
.bh-bk-hint { font-size: .75rem; color: var(--text-muted, #9a93ad); margin-top: .25rem; display: flex; align-items: flex-start; gap: .35rem; }
.bh-bk-hint i { color: var(--brand-accent, #fdb913); margin-top: .15rem; }

/* modern controls (scoped; !important to win Bootstrap input-sm) */
.bh-bk .form-control { border: 1.5px solid var(--border-default, #e7e3ef) !important; border-radius: 9px !important; padding: .45rem .7rem !important; font-size: .9rem !important; box-shadow: none !important; color: var(--text-body, #2c2540); background-color: var(--bg-surface, #fff); width: 100%; }
.bh-bk input.form-control, .bh-bk select.form-control { height: 40px !important; }
.bh-bk select.form-control { cursor: pointer; }
.bh-bk textarea.form-control { min-height: 90px !important; height: auto !important; }
.bh-bk .form-control:hover { border-color: var(--border-strong, #cfc7de) !important; }
.bh-bk .form-control:focus { border-color: var(--brand-primary, #3d1a6f) !important; box-shadow: 0 0 0 3px rgba(61,26,111,.13) !important; outline: none; }

.bh-bk-inline { display: flex; gap: .6rem; align-items: center; }
.bh-bk-inline > .form-control { flex: 1; }
/* Add-talent affordance lives IN the dropdown ("+ Add new talent" sentinel option,
   InterviewsModule.armAddTalentOption); the LinkButton stays in the DOM as the
   postback vehicle but is hidden once the option is armed. */
.bh-bk-inline.bh-bk-addopt > a[id$="LinkButtonAddTalent"] { display: none; }

/* view-in lens (quiet sub-control) */
.bh-bk-lens { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; font-size: .78rem; color: var(--text-secondary, #6b6480); }
.bh-bk-lens i { color: var(--text-muted, #9a93ad); }
.bh-bk-lens .form-control { height: 30px !important; width: auto !important; min-width: 190px; font-size: .78rem !important; padding: 0 .5rem !important; border-radius: 7px !important; }
/* hairline between two lens facts on one combined quiet line; auto-hides when the
   preceding fact span is empty */
.bh-bk-lens .lens-divide { width: 1px; height: 14px; background: var(--border-default, #ddd); flex: 0 0 auto; }
.bh-bk-lens span:empty + .lens-divide { display: none; }

/* dual time comparison (read-only) */
.bh-bk-time { display: grid; grid-template-columns: 84px 1fr 1fr; gap: .55rem .9rem; align-items: center; }
.bh-bk-tc-head { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; display: flex; align-items: center; gap: .35rem; padding-bottom: .1rem; }
.bh-bk-tc-head.talent { color: var(--brand-primary, #3d1a6f); }
.bh-bk-tc-head.outlet { color: var(--text-secondary, #6b6480); }
.bh-bk-tc-head i { font-size: .72rem; }
.bh-bk-tc-label { font-size: .72rem; font-weight: 600; color: var(--text-secondary, #6b6480); text-transform: uppercase; letter-spacing: .4px; }

/* outlet contact box */
.bh-bk-box { background: var(--bg-slate-tint, #f6f5f9); border: 1px solid var(--border-default, #ddd); border-left: 4px solid var(--brand-accent, #fdb913); border-radius: 10px; padding: .75rem .9rem; margin-top: 1.1rem; }
.bh-bk-box .bh-bk-section { margin-top: 0; border-bottom-color: var(--border-default, #ddd); }

/* compact outlet-contact line (2026-07-12): one quiet read-only row -- outlet chip +
   contact name/email/phone cells + trailing action -- replacing the stacked read-only
   box in EDIT templates. Cells keep the LIVE bound TextBoxes (code-behind writes them
   on contact/outlet change), restyled flat; flex proportions instead of grid rows. */
.bh-bk-contact-line { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: .3rem 1rem; min-width: 0; }
.bh-bk-contact-line .bh-bk-cl-cell { display: inline-flex; align-items: center; gap: .4rem; min-width: 0; }
.bh-bk-contact-line .bh-bk-cl-cell i { color: var(--text-muted, #9a93ad); font-size: .78rem; flex: 0 0 auto; }
.bh-bk-contact-line .bh-bk-cl-cell.grow-name { flex: 1 1 130px; }
.bh-bk-contact-line .bh-bk-cl-cell.grow-email { flex: 1.4 1 180px; }
.bh-bk-contact-line .bh-bk-cl-cell.grow-phone { flex: .9 1 110px; }
.bh-bk-contact-line input.form-control { border: none !important; background: transparent !important; box-shadow: none !important; height: auto !important; min-height: 0; padding: 0 !important; font-size: .82rem !important; color: var(--text-secondary, #6b6480); text-overflow: ellipsis; }
.bh-bk-contact-line .push-right { margin-left: auto; }

/* footer (in-template action row -- see header comment) */
.bh-bk-footer { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; margin-top: 1.1rem; padding-top: .8rem; border-top: 1px solid var(--border-light, #e9ecef); }
.bh-bk-footer .push-right { margin-left: auto; }
/* auto-save state chip (edit form). Base tones assume a light surface; the chip moved
   from .bh-bk-footer into the booking modal HEADER 2026-07-12 (save feedback must sit
   above the fold), where the on-dark variant below takes over. JS contract unchanged:
   InterviewsModule.js targets #bkSaveState and swaps is-saving/is-saved/is-error. */
.bh-bk-savestate { margin-left: .25rem; font-size: .75rem; color: var(--text-muted, #9a93ad); display: inline-flex; align-items: center; gap: .3rem; }
.bh-bk-savestate.is-saving { color: var(--text-secondary, #6b6480); }
.bh-bk-savestate.is-saved { color: var(--status-success, #28a745); }
.bh-bk-savestate.is-error { color: var(--status-danger, #dc3545); }
/* On-dark variant: the chip renders in the modal header next to .bh-modal-header-context.
   The header surface is brand purple with --text-on-dark in BOTH themes (see
   ".resizableModal .header"), so these light tints are dark-mode-safe by construction.
   theme-tokens.css defines no on-dark status tokens (only --text-on-dark), hence
   hardcoded light fallbacks. */
.header .bh-bk-savestate { margin-left: .6rem; color: rgba(255,255,255,.75); }
.header .bh-bk-savestate.is-saving { color: rgba(255,255,255,.9); }
.header .bh-bk-savestate.is-saved { color: #7ee2a0; }
.header .bh-bk-savestate.is-error { color: #ffb3a7; }
/* .bh-bk-cta (red-gradient footer CTA) retired 2026-07-12: footer CTAs are btn-primary
   now so Delete (btn-danger) is the only red in the row; rules deleted -- zero markup
   consumers remain. */
/* Confirmation-sent is a done state, not a next step -- calm success look */
.bh-bk-done { background: var(--bg-surface, #fff) !important; border: 1.5px solid var(--status-success, #28a745) !important; color: var(--status-success, #28a745) !important; font-weight: 600 !important; border-radius: 9px !important; }

/* read-only: detail-sheet grammar -- values render as flat text, not disabled inputs.
   Labels stay uppercase minis; an empty value simply shows blank under its label. */
.bh-bk.is-readonly .bh-bk-grid .form-control, .bh-bk.is-readonly .bh-bk-time .form-control { background: transparent !important; border: none !important; border-radius: 0 !important; padding: .1rem 0 !important; height: auto !important; min-height: 0; color: var(--text-body, #2c2540); font-weight: 500; box-shadow: none !important; cursor: default; }
.bh-bk.is-readonly .bh-bk-grid span.form-control, .bh-bk.is-readonly .bh-bk-grid .label-fullsize { min-height: 0; height: auto !important; display: block; white-space: normal; }
.bh-bk.is-readonly .form-control:focus { box-shadow: none !important; border-color: transparent !important; }
.bh-bk.is-readonly .bh-bk-grid { gap: .7rem 1.1rem; }

/* outlet box: read-only display values render flat/borderless */
.bh-bk-box .form-control[readonly] { background: transparent !important; border: none !important; box-shadow: none !important; padding-left: 0 !important; height: auto !important; min-height: 36px; }

@media (max-width: 991px) {
    .bh-bk-grid, .bh-bk-grid.cols3, .bh-bk-grid.cols4 { grid-template-columns: 1fr; }
    .bh-bk-time { grid-template-columns: 1fr; gap: .3rem; }
    .bh-bk-time .bh-bk-tc-head { display: none; }
}

/* compact notes inside the booking form: shorter editing surface, toolbar wraps tight */
.bh-bk .bh-rte-container [contenteditable] { min-height: 64px; max-height: 160px; overflow-y: auto; }
/* Empty-editor collapse fix (2026-07-12): the Booking Notes field wrapper carries legacy
   .RadMultiLine, and RichTextEditor.css ".RadMultiLine .bh-rte-editor.form-control
   { min-height: 200px }" TIES the rule above at (0,3,0) and wins on source order
   (RichTextEditor.css loads after BUZZHub.css in the BHBootStrapCSS bundle), so the empty
   editor never collapsed to the 64px floor. The (0,4,0) selector below re-asserts the
   compact floor regardless of bundle order; height:auto keeps growth content-driven
   (neutralises Bootstrap's fixed .form-control height) up to the 160px cap above. */
.bh-bk .bh-rte-container .bh-rte-editor[contenteditable] { min-height: 64px; height: auto; }
.bh-bk .bh-rte-toolbar { padding: .15rem .25rem; }
.bh-bk .bh-rte-toolbar .btn { padding: .15rem .4rem; }

/* ========================================
   Modal context sidepanel -- .bh-modal-sidepanel -- collapsible right rail for
   record modals (context cards live inside; form takes full width when closed).
   Consumers: Interviews booking modal. Register entry: ssot-register.md UI/theme.
   ======================================== */
/* Self-scrolling: the context cards are taller than the form, so without the max-height
   cap the rail stretches the host and drags the whole modal body back into scrolling
   (the form must stay fully on screen). sticky keeps it in view if the main column is
   ever the taller side. (2026-07-12: Interviews rail is permanently open -- toggle
   retired; .is-collapsed stays supported for future consumers that keep one.) */
.bh-modal-sidepanel { transition: width .25s ease; overflow: hidden auto; width: 340px; flex: 0 0 340px; border-left: 1px solid var(--border-default, #ddd); padding-left: .85rem; max-height: calc(90vh - 130px); position: sticky; top: 0; align-self: flex-start; }
/* max-height: 0 -- a collapsed rail must not contribute height either: the host flex
   stretches to the tallest item, so 0-width-but-tall rail content would still inflate
   the modal body's scrollHeight (phantom scrollbar under the form). */
.bh-modal-sidepanel.is-collapsed { width: 0; flex-basis: 0; padding-left: 0; border-left: none; max-height: 0; }
.bh-modal-sidepanel-toggle { position: sticky; top: 300px; align-self: flex-start; flex: 0 0 auto; z-index: 3; width: 22px; height: 64px; border: 1px solid var(--border-default, #ddd); border-right: none; border-radius: 8px 0 0 8px; background: var(--bg-surface, #fff); color: var(--brand-primary, #3d1a6f); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.bh-modal-sidepanel-host { position: relative; display: flex; align-items: stretch; }
.bh-modal-sidepanel-host > .bh-modal-sidepanel-main { flex: 1 1 auto; min-width: 0; padding-right: .5rem; }
/* Handle rides the form/panel boundary as an IN-FLOW sticky flex item (2026-07-12).
   Horizontal: DOM order (main > toggle > rail) glues it to the rail's left edge when
   expanded; when the rail collapses to width 0 the flex reflow carries it to the host's
   right edge, and the rail's .25s width transition animates the slide -- replaces the
   retired absolute right:340px / :has() swap. Vertical: position:sticky anchors it to
   the modal's scrolling .body (nearest scroll container -- ".modalPopup .body"
   overflow-y:auto), so it sits 300px from the top of the VISIBLE portion on open and
   stays pinned there while the form scrolls (the old absolute top:50% centred on the
   full content height, off-screen except mid-scroll). Fixed 300px offset, not a
   percentage: sticky inset percentages resolve against the containing block (the
   full-height host), which reproduces the original bug. */
@media (max-width: 990px) { .bh-modal-sidepanel, .bh-modal-sidepanel-toggle { display: none; } }

/* ===== Add Campaign Talent modal (shared control) -- moved from CampaignBuilder 2026-07-11 ===== */
/* Talent Directory Autocomplete Search */
.talent-search-container {
    position: relative;
}
/* ========================================
   Add Talent modal -- 2026-05-19 (Jen) redesign:
   directory-first hero search + collapsed manual form.
   Body sizing/scroll handled by canonical .modalPopup .body cascade
   (BUZZHub.css:6643). No local max-height/overflow overrides.
   ======================================== */

/* HERO search section */
.att-hero {
    text-align: center;
    padding: 0.5rem 0 1.25rem;
}
.att-hero-title {
    margin: 0 0 0.25rem;
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.15rem;
    font-weight: 700;
}
.att-hero-sub {
    margin: 0 0 1rem;
    color: var(--text-muted, #888);
    font-size: 0.9rem;
}
.att-search-bar {
    position: relative;
    max-width: 560px;
    margin: 0 auto;
    border: 2px solid var(--brand-primary, #3d1a6f);
    border-radius: 999px;
    background: var(--bg-surface, #fff);
    padding: 0.5rem 1rem 0.5rem 2.5rem;
    transition: box-shadow 0.15s ease;
}
.att-search-bar:focus-within {
    box-shadow: 0 0 0 4px rgba(61,26,111,0.12);
}
.att-search-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--brand-primary, #3d1a6f);
    font-size: 1rem;
}
.att-search-input {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 1rem;
    color: var(--text-primary, #333);
}
.att-search-input::placeholder { color: var(--text-muted, #aaa); }
.att-search-clear {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--text-muted, #888);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.15s ease;
}
.att-search-clear:hover {
    background: var(--bg-purple-tint, #f4eef9);
    color: var(--brand-primary, #3d1a6f);
}

/* Search results -- inline cards under the hero search */
.att-search-results {
    max-width: 560px;
    margin: 0.75rem auto 0;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e9ecef);
    border-radius: 12px;
    max-height: 360px;
    overflow-y: auto;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    text-align: left;
}
.talent-search-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    border-bottom: 1px solid var(--border-light, #f0f0f0);
    transition: background 0.15s ease;
}
.talent-search-item:last-child { border-bottom: none; }
.talent-search-item:hover { background: var(--bg-purple-tint, #f4eef9); }
.att-result-avatar {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
}
.att-result-body { flex: 1 1 auto; min-width: 0; }
.talent-search-item .talent-name {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.95rem;
}
.talent-search-item .talent-title {
    font-size: 0.8rem;
    color: var(--text-secondary, #666);
    margin-top: 0.1rem;
}
.talent-search-item .talent-email {
    font-size: 0.75rem;
    color: var(--text-muted, #888);
    margin-top: 0.1rem;
}
.att-result-cta {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--brand-primary, #3d1a6f);
    padding: 0.3rem 0.6rem;
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    background: var(--bg-surface, #fff);
    transition: background 0.15s ease, color 0.15s ease;
}
.talent-search-item:hover .att-result-cta {
    background: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #fff);
}
.talent-search-loading {
    padding: 1rem;
}
.talent-search-empty {
    padding: 1rem;
    color: var(--text-secondary, #666);
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

/* OR divider */
.att-or-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    max-width: 560px;
    margin: 1.25rem auto 0.75rem;
    color: var(--text-muted, #aaa);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.att-or-line {
    flex: 1;
    height: 1px;
    background: var(--border-default, #e9ecef);
}

.att-add-manual { font-weight: 600; }

/* Selected-talent banner */
.att-selected-banner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--status-success-bg, #d4edda);
    border: 1px solid var(--status-success, #28a745);
    color: var(--status-success-text, #155724);
    padding: 0.65rem 1rem;
    border-radius: 8px;
    margin: 0 0 1rem;
}
.att-selected-banner i { font-size: 1.1rem; }
.att-selected-text { flex: 1; font-size: 0.9rem; }
.att-selected-undo {
    background: transparent;
    border: 1px solid var(--status-success, #28a745);
    color: var(--status-success-text, #155724);
    padding: 0.25rem 0.7rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
}
.att-selected-undo:hover { background: rgba(40,167,69,0.15); }

/* Manual form section */
.att-manual-section {
    border-top: 1px solid var(--border-light, #f0edf5);
    padding-top: 1.25rem;
}
.att-field { margin-bottom: 1rem; }
.att-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.35rem;
}
.att-required { color: var(--status-danger, #ed174c); }
.att-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}
@media (max-width: 640px) {
    .att-grid-2 { grid-template-columns: 1fr; }
}

/* Optional collapsibles (bio / notes / headshot) */
.att-optional {
    border: 1px solid var(--border-default, #e9ecef);
    border-radius: 8px;
    margin-bottom: 1rem;
    padding: 0;
    background: var(--bg-surface, #fff);
}
.att-optional summary {
    padding: 0.6rem 1rem;
    cursor: pointer;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.9rem;
    list-style: none;
    display: flex;
    align-items: center;
}
.att-optional summary::-webkit-details-marker { display: none; }
.att-optional summary::after {
    content: '\f078';
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--text-muted, #888);
    transition: transform 0.15s ease;
}
.att-optional[open] summary::after { transform: rotate(180deg); }
.att-optional[open] summary { border-bottom: 1px solid var(--border-light, #f0edf5); }
.att-optional > .att-field { padding: 1rem; margin-bottom: 0; }
.att-optional-tag {
    margin-left: 0.5rem;
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted, #888);
    padding: 0.1rem 0.45rem;
    background: var(--bg-subtle, #f4f4f6);
    border-radius: 10px;
}

/* Footer min-width on the primary button -- footer itself uses canonical .modal-footer-bar */
.att-add-btn { min-width: 140px; }
.bh-supplier-item .bh-supplier-add { color: var(--brand-accent, #fdb913); font-weight: 600; }

/* ============================================================
   Finance > Analytics > Annual Revenue -- summary band (2026-07-16)
   Sets the Total Profit / Monthly Average / Annual Growth rows (rendered in
   the matrix <tfoot> as .matrix-summary) off from the month grid: a calm
   slate band split by a 2px brand rule, with Total Profit as the bold purple
   headline. Slate + brand tokens flip automatically for dark mode; Annual
   Growth keeps its green/red (text-success / text-danger from the renderer).
   ============================================================ */
.business-flow-matrix-table tfoot .matrix-summary > th,
.business-flow-matrix-table tfoot .matrix-summary > td {
    background-color: var(--bg-slate-tint, #f1f0f4);
    font-weight: 500;
}
/* crisp divider + headline emphasis on the Total Profit row (first summary row) */
.business-flow-matrix-table tfoot tr:first-child > th,
.business-flow-matrix-table tfoot tr:first-child > td {
    border-top: 2px solid var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 700;
}

