/* Minification failed. Returning unminified contents.
(7,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(8,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(9,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(10,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(18,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(19,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(24,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(25,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(28,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(29,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(30,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(31,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(32,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(33,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(34,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(35,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(36,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(37,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(40,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(41,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(42,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(43,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(44,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(45,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(48,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(51,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(52,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(53,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(54,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(55,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(56,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(57,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(60,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(61,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(62,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(63,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(64,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(65,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(66,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(67,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(68,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(69,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(70,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(71,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(72,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(73,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(74,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(75,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(78,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(81,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(82,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(83,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(84,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(86,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(89,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(90,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(91,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(98,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(99,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(100,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(101,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(102,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(103,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(106,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(107,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(108,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(109,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(110,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(111,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(112,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(113,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(114,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(115,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(120,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(121,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(122,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(123,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(124,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(125,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(128,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(131,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(132,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(133,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(134,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(135,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(136,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(137,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(140,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(141,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(142,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(143,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(144,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(145,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(146,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(147,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(148,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(149,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(150,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(151,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(152,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(153,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(154,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(155,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(158,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(161,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(162,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(163,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(164,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(165,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(168,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(169,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(170,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(173,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(174,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(175,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(176,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(177,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(182,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(185,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(203,46): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-track'
(204,46): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-thumb'
(205,52): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-thumb-hover'
(215,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(216,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(275,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(276,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(277,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(281,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(282,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(285,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(287,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(292,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(295,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(296,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(297,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(300,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(301,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(302,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(305,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(307,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(308,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(313,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(314,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(319,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(320,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(324,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(325,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(329,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(330,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(333,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(334,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(337,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(341,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(344,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(345,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(346,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: '-bg-subtle'
(353,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(354,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(357,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(362,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(365,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(366,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(367,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(371,24): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(374,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(379,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(380,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(401,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(405,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(415,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(419,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(420,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(423,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(428,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(429,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(432,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(433,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(434,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(437,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(442,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(443,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(446,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(455,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(461,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(462,29): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(463,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(466,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(467,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(473,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(477,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(480,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(484,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(488,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(493,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(494,24): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(495,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(498,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(501,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(502,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(507,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(508,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(509,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(512,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(513,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(514,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(517,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(518,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(521,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(522,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(523,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(528,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(529,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(530,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(533,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(534,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(535,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(538,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(539,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(544,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(549,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(555,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(560,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(565,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(568,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(571,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(583,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(590,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(594,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(600,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(605,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(608,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(611,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(616,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(628,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(631,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(636,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(647,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(653,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(661,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(668,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(673,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(679,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(685,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(690,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(697,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(700,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(703,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(706,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(707,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(714,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(717,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(721,31): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(724,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(725,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(726,31): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(731,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(736,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(739,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(740,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(743,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(744,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(747,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(751,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(757,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(761,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(764,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(765,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(768,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(769,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(772,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(773,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(782,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(785,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(792,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(797,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(813,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(814,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(819,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(824,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(837,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(840,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(843,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(846,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(849,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(852,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(855,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(858,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(861,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(867,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(870,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(870,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(871,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(872,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(880,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(883,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(884,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(887,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(888,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(902,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(903,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(914,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(915,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(916,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(922,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(930,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(936,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(936,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(937,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(944,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(949,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(959,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(967,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(975,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(981,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(982,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(988,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(989,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(995,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1000,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1001,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1002,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1005,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1006,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1011,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1020,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1025,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1026,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1035,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1036,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1037,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1040,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1041,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1050,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1052,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1055,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1056,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1066,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1068,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1072,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(1073,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1077,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1078,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1087,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(1089,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(1144,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1145,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1146,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1149,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1160,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1161,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1164,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1165,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1172,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1180,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1180,92): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1181,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1181,92): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1182,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1182,88): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1183,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1183,87): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1184,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1185,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1186,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1187,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1188,34): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1189,30): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1190,32): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1191,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(1192,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1193,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1194,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1195,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1196,41): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(1197,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1198,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(1199,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1200,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1201,41): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1218,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1218,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1219,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(1223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1227,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1232,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1233,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1237,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1238,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1242,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1246,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1247,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1248,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1252,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1256,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(1257,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(1261,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(1265,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1265,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1266,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(1267,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1270,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(1273,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1277,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1278,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1281,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1290,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1291,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1294,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1294,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1295,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1296,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1299,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1302,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1303,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1304,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1307,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(1310,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1313,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1314,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1317,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1320,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(1324,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1324,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1325,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1326,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1329,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1332,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1333,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1336,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(1337,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1347,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1350,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1355,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1360,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1361,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1366,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1369,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1374,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1377,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1381,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1388,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1393,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1394,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(1397,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1398,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1403,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1404,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1407,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1408,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(1414,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1415,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(1419,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1429,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1430,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(1433,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1437,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1438,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1449,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1455,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1456,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1459,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1460,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1463,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1464,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1469,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(1470,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(1473,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(1474,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(1477,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1478,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1481,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1488,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1493,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1498,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1517,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1521,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1522,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(1527,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1530,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1549,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1550,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(1551,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1556,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1557,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1560,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1566,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1567,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1572,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1573,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1577,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1580,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1583,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1584,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1587,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1588,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1591,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1594,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1597,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1598,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1601,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1604,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1607,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1608,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1613,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1614,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1617,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(1618,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1623,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1628,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1629,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1632,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1635,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1636,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1642,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1648,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1649,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-on-accent'
(1654,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1655,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1656,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1659,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1660,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1669,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1670,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1673,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1674,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1677,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(1680,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1691,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1694,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1697,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1702,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1707,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1710,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(1753,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1754,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1755,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1767,79): run-time error CSS1030: Expected identifier, found '*'
(1767,80): run-time error CSS1031: Expected selector, found ')'
(1767,80): run-time error CSS1025: Expected comma or open brace, found ')'
(1776,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1779,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(1783,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1786,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1792,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(1797,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(1801,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(1825,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1848,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1849,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1852,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1853,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1856,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1857,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(1860,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1863,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1874,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1875,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1876,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(1883,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1886,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1889,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(1892,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(1896,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(1946,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(1947,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(1948,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(1953,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(1953,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(1976,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(1977,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(2071,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2072,31): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(2075,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(2076,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(2079,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(2082,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(2101,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2102,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2103,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2104,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2105,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2106,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2107,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2108,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2109,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2110,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2111,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2112,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2113,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2114,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2115,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2116,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2117,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2118,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2119,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2120,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2121,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2122,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2123,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2124,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2125,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2126,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2127,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2128,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2129,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2130,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2131,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2132,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2133,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2134,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2135,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2136,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2137,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2138,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2139,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2140,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2141,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2142,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2143,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2144,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2145,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2146,9): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2157,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2158,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2159,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2160,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2161,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2162,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2163,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2164,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2165,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2166,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2167,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2168,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2169,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2170,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2171,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2176,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2177,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2178,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2179,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2180,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2181,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2182,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2185,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2186,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2187,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2188,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2189,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2190,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2193,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2194,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2197,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2198,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2199,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2204,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2205,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2206,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2207,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2208,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2209,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2210,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2211,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2212,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2213,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2214,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2215,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2216,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2217,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2218,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2221,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2222,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2223,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2226,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2227,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2228,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2229,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2230,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2231,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2234,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2235,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2238,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2239,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2240,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2256,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2257,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2258,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2259,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2260,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2261,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2262,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2263,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2264,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2265,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2266,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2267,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2268,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2269,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2270,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2271,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2272,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2273,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2274,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2275,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2276,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2277,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2278,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2279,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2280,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2281,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2282,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2283,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2309,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2311,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2404,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(2410,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(2460,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2658,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(2692,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2706,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(2707,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(2724,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(2729,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-pink'
(2740,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(2741,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(2754,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3892,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3899,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3904,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3908,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3917,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3922,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3942,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(3949,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(3956,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(3960,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(3965,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(3971,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3978,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(3982,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3987,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(3993,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(4000,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(4004,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-tint'
(4009,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-tint'
(4015,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(4022,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(4026,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-tint'
(4031,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info-tint'
(4037,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(4044,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(4048,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(4053,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(4059,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(4066,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(4070,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-tint'
(4075,32): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-tint'
(4081,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4088,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4092,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4097,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4103,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4110,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4114,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4119,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4138,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4139,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4140,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4144,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4145,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4146,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(4150,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4151,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4157,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4169,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4244,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4245,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4247,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(4265,29): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4269,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4270,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4271,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(4277,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4282,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4287,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4292,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4307,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4345,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4416,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4442,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4456,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4469,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4478,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4488,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4490,494): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4494,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4499,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4509,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4513,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4517,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4518,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4526,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4530,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4534,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(4543,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4557,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4570,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4579,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4589,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4591,553): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(4595,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4600,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4610,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4614,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4618,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4619,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4627,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4631,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4635,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(4709,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4732,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4755,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4756,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4757,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4761,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4762,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4763,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4767,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4768,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4769,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4774,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4775,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4776,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4780,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4781,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4782,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(4790,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4791,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4792,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4796,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4797,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4798,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4802,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4803,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4804,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4809,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4810,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4811,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4815,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4816,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4817,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4834,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4840,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4847,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4853,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4863,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4864,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4865,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4869,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4870,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4871,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4875,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4876,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4877,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4882,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4883,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4884,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4888,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4889,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(4890,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-hover'
(4898,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4899,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4900,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4904,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4905,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4906,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4910,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4911,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4912,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4917,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4918,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4919,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(4923,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(4924,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4925,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(4937,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4943,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4949,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4956,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4962,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(4963,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger-hover'
(4964,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger-hover'
(4972,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4973,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4974,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4978,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4979,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4980,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4984,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4985,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4986,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4991,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4992,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4993,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(4997,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(4998,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(4999,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(5007,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5008,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5009,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5013,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5014,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5015,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5019,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5020,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5021,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5026,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5027,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5028,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5032,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5033,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5034,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(5043,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5048,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5049,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5062,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5063,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5064,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5072,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5073,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5077,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5078,32): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5079,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5087,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5092,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5093,32): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5094,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(5102,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5103,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5107,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5108,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5109,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5117,21): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5122,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5123,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5124,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(5132,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5133,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5137,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5138,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5139,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5147,21): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5152,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5153,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5154,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(5162,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5163,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5167,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5168,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5169,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5177,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5182,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5183,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5184,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5192,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5193,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5197,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5198,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5199,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5207,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5212,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5213,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5214,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(5222,17): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5223,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5227,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5228,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5229,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5237,21): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5242,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5243,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5244,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5252,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5253,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5257,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5258,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5259,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5267,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5272,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5273,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5274,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5283,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5288,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5297,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5398,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5401,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(5560,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(5569,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5577,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5579,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(5583,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5585,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5589,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5603,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5610,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5844,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(5847,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(5848,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(5941,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5942,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5943,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(5951,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(5955,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(5956,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint-light'
(5957,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint-light'
(5961,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(5965,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(5983,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(5984,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6007,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6008,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6051,32): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6063,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6079,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6081,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6082,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6090,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(6096,25): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6097,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6107,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6108,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6117,33): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6154,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(6159,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6181,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6182,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6196,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6198,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(6218,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6222,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6226,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6237,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6254,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint-light'
(6262,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6270,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6287,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint-light'
(6295,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6306,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(6322,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint-light'
(6336,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6342,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6347,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6355,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6363,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(6398,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6404,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6418,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(6418,61): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(6418,90): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6422,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6429,25): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6430,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6431,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6431,60): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(6431,88): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(6446,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6447,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(6448,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(6807,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6811,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6815,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(6819,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(6823,21): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(6830,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6834,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(6843,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(6847,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6851,25): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(6855,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6859,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6878,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6895,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6899,25): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(6908,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7151,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7166,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7179,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7195,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7196,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7197,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7202,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(7204,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7205,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7227,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7228,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7229,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7233,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7236,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7237,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(7311,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7312,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7316,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7317,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(7326,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7327,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7331,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7332,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7341,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7342,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(7346,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7347,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(7356,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7357,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(7361,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7362,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(7371,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7372,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7376,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7377,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(7386,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7387,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(7391,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7392,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(7401,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7402,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7406,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7407,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7416,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7417,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7421,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7422,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(7433,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7479,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7480,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7481,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7485,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(7489,21): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7493,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7494,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7495,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7499,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7503,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7507,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7508,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(7509,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(7513,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-tint'
(7517,21): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7521,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7522,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(7523,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(7527,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info-tint'
(7531,21): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7535,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7536,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7537,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7541,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(7545,21): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7549,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7550,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(7551,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(7555,32): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-tint'
(7559,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7563,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7564,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7565,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7569,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7573,21): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7577,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7578,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7579,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7583,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7587,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7616,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7625,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7628,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7674,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7680,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7682,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(7686,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7687,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7694,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7709,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(7711,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7716,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7717,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7718,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(7891,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7892,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7896,21): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7897,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(7901,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7902,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7903,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7907,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7908,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7912,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7913,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7917,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7918,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7919,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(7923,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7924,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(7928,21): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7929,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-tint'
(7933,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7934,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7935,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(7939,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7940,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(7944,21): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7945,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info-tint'
(7949,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7950,32): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7951,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(7955,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7956,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(7960,21): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7961,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-tint'
(7965,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7966,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7967,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(7971,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7972,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(7976,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7977,32): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-tint'
(7981,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7982,32): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7983,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(7987,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7988,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(7992,21): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7993,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(7997,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(7998,32): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(7999,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8003,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8004,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(8008,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8009,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(8013,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8014,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8015,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8023,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8024,31): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8029,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8080,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8193,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8207,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8223,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8250,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8363,36): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8379,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8393,39): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8409,37): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8415,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8417,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8444,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8483,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8506,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8526,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8537,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(8560,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8567,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(8568,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(8579,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8672,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8688,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8741,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8767,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(8865,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8871,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(8875,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(8881,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(8885,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(8891,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(8895,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(8901,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(8905,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8911,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(8915,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(8921,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(8925,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(8931,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(8935,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(8941,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary-hover'
(8945,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(8953,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8957,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8961,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8965,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8969,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(8993,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(8997,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(9001,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(9005,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(9009,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(9013,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(9017,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(9021,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(9025,24): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(10280,1): run-time error CSS1019: Unexpected token, found '}'
(12588,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12592,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12596,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(12600,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12604,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12608,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(12612,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(12616,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(12620,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(12624,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12628,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-hover'
(12632,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(12636,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(12640,17): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(12644,17): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(12648,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12656,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12660,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(12664,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(12722,32): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(12764,32): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(12773,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12778,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(12789,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(12794,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(12838,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12843,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12876,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(12881,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12884,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12890,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12893,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12899,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12903,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(12921,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(12992,29): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13002,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13079,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13127,25): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13128,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13130,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13267,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13274,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13304,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13311,21): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13317,21): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13323,21): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13329,21): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(13395,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13399,28): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(13448,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13451,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13466,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(13467,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(13468,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(13474,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(13475,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(13476,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(13482,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(13483,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(13484,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(13490,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(13491,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(13492,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(13498,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(13499,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13500,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13529,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(13529,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(13530,43): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(13530,85): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(13531,43): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(13531,85): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(13532,43): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(13532,85): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(13533,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(13533,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13539,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(13540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13541,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13546,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13546,101): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13565,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13584,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13599,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(13611,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(13612,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13613,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(13616,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13616,102): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13626,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(13627,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13631,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13631,81): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13635,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13636,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(13649,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(13649,76): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13650,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13650,86): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13650,184): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(13651,60): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13652,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13653,54): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13654,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13655,64): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(13657,58): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13661,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(13668,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13669,49): run-time error CSS1039: Token not allowed after unary operator: '-link-color'
(13679,74): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13681,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(13726,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13726,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13726,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13726,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(13729,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(13730,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(13748,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(13753,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(13755,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(13789,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(13791,18): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-lift-shadow'
(13795,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(13797,18): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-lift-shadow'
(13831,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(13917,27): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13938,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(13938,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(13939,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13941,35): run-time error CSS1019: Unexpected token, found ' '
(13941,35): run-time error CSS1019: Unexpected token, found ' '
(13941,35): run-time error CSS1042: Expected function, found ' '
(13941,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13949,38): run-time error CSS1019: Unexpected token, found ' '
(13949,38): run-time error CSS1019: Unexpected token, found ' '
(13949,38): run-time error CSS1042: Expected function, found ' '
(13949,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13951,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(13958,35): run-time error CSS1019: Unexpected token, found ' '
(13958,35): run-time error CSS1019: Unexpected token, found ' '
(13958,35): run-time error CSS1042: Expected function, found ' '
(13958,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13962,38): run-time error CSS1019: Unexpected token, found ' '
(13962,38): run-time error CSS1019: Unexpected token, found ' '
(13962,38): run-time error CSS1042: Expected function, found ' '
(13962,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13971,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(13971,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(13972,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(13973,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(13981,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(13983,38): run-time error CSS1019: Unexpected token, found ' '
(13983,38): run-time error CSS1019: Unexpected token, found ' '
(13983,38): run-time error CSS1042: Expected function, found ' '
(13983,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13984,35): run-time error CSS1019: Unexpected token, found ' '
(13984,35): run-time error CSS1019: Unexpected token, found ' '
(13984,35): run-time error CSS1042: Expected function, found ' '
(13984,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(13988,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(13998,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(13998,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(13999,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14024,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(14048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14061,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14069,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14070,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14076,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14084,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14086,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14092,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14101,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(14106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14109,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14114,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14115,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14120,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14121,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14126,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14134,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14135,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14145,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14148,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(14167,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14168,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14172,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14185,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14186,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14187,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14199,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14200,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14203,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14203,87): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14204,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(14204,91): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14205,50): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(14206,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(14210,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14213,60): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(14216,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14233,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14234,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14262,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14270,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14274,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14292,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14293,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(14294,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14300,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(14305,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14323,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14324,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14328,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(14334,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14342,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(14343,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14346,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14359,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14367,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(14408,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14409,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14409,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14409,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14409,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14409,134): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14425,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14426,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14426,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14426,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14426,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14426,134): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14441,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14442,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(14442,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14468,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14469,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14471,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(14484,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14485,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14486,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(14493,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14497,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(14498,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14499,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(14513,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14515,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14516,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(14519,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14520,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14521,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14531,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(14540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14541,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14542,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14545,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(14546,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14547,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14563,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(14611,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(14612,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14639,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14706,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(14729,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14762,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14767,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14768,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14784,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14802,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14821,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(14822,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14826,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14830,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14834,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14838,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(14840,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14844,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14848,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14852,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14856,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(14857,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(14858,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14862,36): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14866,35): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(14872,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(14914,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(14928,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(14948,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(14954,24): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15003,1): run-time error CSS1019: Unexpected token, found '@-moz-keyframes'
(15004,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(15017,1): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(15018,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(15031,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(15032,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(15051,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15134,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15145,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15151,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15156,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15159,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15178,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15196,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15212,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15213,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15219,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15220,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15224,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15228,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15229,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15243,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15244,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(15245,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15313,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(15321,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(15329,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(15338,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(15347,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15365,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15398,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(15404,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15418,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15437,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15448,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15449,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15462,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15463,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15484,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(15493,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(15503,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15529,21): run-time error CSS1030: Expected identifier, found '.'
(15529,35): run-time error CSS1031: Expected selector, found ')'
(15529,35): run-time error CSS1025: Expected comma or open brace, found ')'
(15546,26): run-time error CSS1030: Expected identifier, found '.'
(15546,27): run-time error CSS1030: Expected identifier, found 'page-campaign'
(15546,40): run-time error CSS1031: Expected selector, found ')'
(15546,40): run-time error CSS1025: Expected comma or open brace, found ')'
(15555,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(15562,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15571,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15577,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15583,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15625,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15630,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15635,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15641,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15642,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15706,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15722,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(15732,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15733,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15736,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15739,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15742,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15750,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(15755,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15765,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15771,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15772,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15781,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15782,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15785,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15788,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15791,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15799,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(15804,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15810,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15814,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15820,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15821,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15830,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15831,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15834,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15837,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15840,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15848,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(15862,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15876,39): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(15898,35): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(15901,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15902,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(15903,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15905,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(15949,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15953,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(15970,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(15982,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(15983,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(15988,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(15989,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(15990,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(15995,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16023,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(16032,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16066,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16122,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16153,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16176,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16186,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16193,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16201,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16211,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16218,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16226,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16244,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16246,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16247,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(16253,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16263,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16272,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(16274,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16275,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(16281,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16370,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(16379,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16385,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16386,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16395,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16416,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16416,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16416,104): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16416,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(16417,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16418,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16419,38): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16420,39): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16421,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16426,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16432,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16437,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16442,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16448,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16449,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16458,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16489,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16490,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16497,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16507,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16510,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(16515,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16517,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(16526,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16537,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(16538,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(16541,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16558,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16589,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(16590,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(16593,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16604,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16613,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16615,66): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(16620,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16625,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16637,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(16652,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(16658,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(16662,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(16670,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(16709,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16714,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16715,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(16773,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16778,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16794,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16795,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16805,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16809,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16815,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16819,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16823,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16837,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16840,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(16940,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16941,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(16942,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16950,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(16951,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16952,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16976,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(16978,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(16981,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16984,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(16991,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17048,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17070,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(17071,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17091,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17099,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17103,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17111,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17112,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17116,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17120,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17128,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17146,21): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(17147,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(17165,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17178,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17182,21): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(17183,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17184,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17188,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17192,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17231,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17236,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17241,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17261,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17262,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17271,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17272,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17273,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17277,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17278,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17284,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17285,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17286,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(17290,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17291,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17297,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17298,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17299,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17303,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17304,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17310,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17311,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17312,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(17316,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17317,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17323,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17324,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17325,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17329,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(17330,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(17336,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17337,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(17338,24): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(17342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17343,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17349,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17350,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17351,24): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17366,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17374,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(17375,10): run-time error CSS1035: Expected colon, found '{'
(17392,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17401,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17402,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17408,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17409,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17431,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(17447,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17456,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17462,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17464,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17465,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17470,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17476,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17491,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(17501,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17507,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17509,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(17510,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17515,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17521,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17535,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17652,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17711,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17718,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17720,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17737,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17760,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17761,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17803,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17808,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17818,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17832,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(17833,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(17835,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(17847,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(17851,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(17852,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17857,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(17865,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(17904,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17928,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17928,61): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(17928,90): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(17934,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(17942,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17949,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(17955,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17967,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17971,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(17985,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18002,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18008,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18028,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(18030,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18031,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18047,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18180,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18192,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18205,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18223,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18224,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18257,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(18258,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18271,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18276,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18306,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18306,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18306,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(18327,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(18331,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(18332,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18333,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(18337,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18342,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(18343,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18344,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18438,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18505,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18527,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(18534,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18552,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18584,29): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18588,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18592,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18604,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18608,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(18621,25): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(18633,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18635,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(18963,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(18964,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(18987,32): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(18999,27): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(19002,21): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19012,16): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(19017,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19028,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19029,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19030,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19036,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19037,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19059,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19079,20): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19087,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19108,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark-muted'
(19144,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19151,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-hover'
(19163,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19170,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19194,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19194,88): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19195,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19195,90): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19196,50): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(19196,88): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19207,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19208,66): run-time error CSS1039: Token not allowed after unary operator: '-status-standout'
(19209,66): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19210,66): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19210,108): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19211,66): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(19212,66): run-time error CSS1039: Token not allowed after unary operator: '-status-neutral'
(19213,66): run-time error CSS1039: Token not allowed after unary operator: '-status-neutral'
(19215,47): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(19216,69): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(19217,69): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(19227,59): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(19266,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19276,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(19283,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(19285,37): run-time error CSS1046: Expect comma, found '0'
(19285,41): run-time error CSS1046: Expect comma, found '/'
(19312,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19314,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19382,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19383,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19387,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19388,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19397,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(19398,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(19407,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19411,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19421,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19460,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(19471,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19486,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19492,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(19505,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19522,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19528,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19533,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19534,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19537,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19554,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19590,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19594,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(19613,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19614,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(19617,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19619,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19620,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19621,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19625,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19626,24): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(19628,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19631,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(19632,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19634,67): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(19635,68): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(19643,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19646,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(19648,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(19660,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(19664,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19671,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(19682,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19693,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(19705,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(19709,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(19713,67): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(19723,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19724,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(19725,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19733,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19734,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(19776,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(19818,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19823,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(19829,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(19834,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(19835,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(19846,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(19847,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(19884,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19893,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(19904,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19972,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(19980,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(19982,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(19983,10): run-time error CSS1035: Expected colon, found '{'
(20004,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20044,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20057,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20082,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20098,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20108,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(20109,10): run-time error CSS1035: Expected colon, found '{'
(20123,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20159,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20168,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20171,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(20172,10): run-time error CSS1035: Expected colon, found '{'
(20223,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20236,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20247,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20266,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(20267,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(20277,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(20278,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(20291,16): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20297,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(20303,16): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20313,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20344,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(20356,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20362,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20366,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20389,28): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-softer'
(20394,28): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(20396,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20415,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20416,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20419,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20439,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20440,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20441,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20446,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20448,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20457,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20458,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20459,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20464,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20465,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold-text'
(20466,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(20469,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20470,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20471,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(20474,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20475,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(20476,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(20486,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20491,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20495,24): run-time error CSS1039: Token not allowed after unary operator: '-accent-gold'
(20496,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20499,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20500,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20504,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20515,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20519,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20520,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20523,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20524,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(20526,56): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20535,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20537,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20544,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20567,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20569,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted-soft'
(20573,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20579,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20587,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20589,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20590,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20601,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20604,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20605,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20608,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted-soft'
(20609,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20612,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(20613,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20614,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20621,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20627,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20632,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(20643,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(20644,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20645,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20653,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20654,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(20656,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(20667,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20679,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20680,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20692,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20693,24): run-time error CSS1039: Token not allowed after unary operator: '-border-gold-soft'
(20694,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(20697,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(20698,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(20699,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20702,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(20703,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(20704,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(20714,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20715,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20717,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(20725,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(20725,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(20726,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(20727,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20728,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20773,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20779,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(20793,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(20802,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20809,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(20821,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(20825,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20843,36): run-time error CSS1046: Expect comma, found '0'
(20843,40): run-time error CSS1046: Expect comma, found '/'
(20865,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20866,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20870,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20888,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(20930,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(20932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20943,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20943,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20943,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20943,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(20944,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(20945,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(20950,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(20954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(20956,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(20966,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(20990,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(21001,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(21002,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21017,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(21032,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21056,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21070,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(21071,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21071,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21071,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21071,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21072,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21078,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21089,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(21091,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21102,32): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(21108,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(21110,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21118,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21118,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21118,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21118,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21119,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21120,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(21123,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21135,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21144,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21152,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21173,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21177,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21178,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21184,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21188,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21189,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21202,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21219,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21228,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21230,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21242,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21260,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21263,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21279,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21281,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21302,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21321,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21335,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21336,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(21337,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21351,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21363,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(21364,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21366,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21376,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21381,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21390,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(21419,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21431,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21437,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(21438,8): run-time error CSS1035: Expected colon, found '{'
(21441,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21441,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21441,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21441,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21442,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(21445,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21446,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21450,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21451,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21455,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(21461,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21472,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21480,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(21502,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21503,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(21510,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(21538,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21549,37): run-time error CSS1046: Expect comma, found '0'
(21549,41): run-time error CSS1046: Expect comma, found '/'
(21575,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21576,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21602,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21603,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21631,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(21632,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21639,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(21644,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(21663,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21707,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(21708,10): run-time error CSS1035: Expected colon, found '{'
(21726,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(21727,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21812,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21834,21): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(21983,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(21998,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22003,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22008,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22019,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22026,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(22027,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(22028,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22036,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22037,31): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(22049,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22061,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22070,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22071,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(22072,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22086,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22089,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(22099,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22107,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(22112,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22116,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22122,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22127,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22132,22): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(22145,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22216,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(22251,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22254,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(22255,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(22331,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(22342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22343,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(22357,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22366,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(22367,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(22465,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22471,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22474,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(22490,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22494,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22504,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22516,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22517,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22518,52): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(22519,51): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22520,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(22521,54): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22528,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22533,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22546,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22554,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22558,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22559,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22561,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22564,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22565,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22575,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22576,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22580,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22599,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(22600,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(22603,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22606,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(22607,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(22610,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22616,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(22617,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(22620,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22623,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(22624,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(22627,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22630,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22631,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(22634,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22637,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22638,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22655,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22659,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22666,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22671,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(22674,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(22675,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(22676,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(22692,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22694,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22695,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22703,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22704,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22705,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22708,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22709,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22716,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22741,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(22753,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22757,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(22758,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(22763,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22769,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22771,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(22781,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(22789,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22791,56): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22792,56): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(22793,55): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22796,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22797,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(22806,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22819,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(22821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22847,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(22858,63): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(22859,63): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(22860,62): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(22891,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(22892,24): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22896,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22897,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(22900,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22901,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22905,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22906,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22917,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22918,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22922,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22923,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22926,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22927,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22931,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(22932,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(22951,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22951,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(22952,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22959,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(22960,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22964,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(22973,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(22974,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22979,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(22986,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22994,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(22998,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23004,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23015,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23020,57): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(23024,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23026,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23027,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23045,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23055,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23058,36): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23066,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23068,56): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(23092,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23102,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23105,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23111,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23116,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23119,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23130,39): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23131,40): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23132,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(23133,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(23137,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23137,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23137,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23137,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23137,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23137,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23138,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23139,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23149,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23155,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23155,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23155,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23155,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23156,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23160,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23168,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23176,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23177,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23181,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23224,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23232,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23240,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23247,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23248,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(23254,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23265,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23268,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23269,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23280,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23284,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23298,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23313,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23326,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23350,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23360,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23394,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23427,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23434,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23467,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(23481,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23485,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23486,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23490,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(23494,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(23515,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(23516,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23517,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(23521,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(23523,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(23575,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23595,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23602,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23610,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23613,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(23620,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23626,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23638,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(23642,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23655,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23665,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23671,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23681,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23688,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23699,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23707,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23719,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23735,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23744,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(23745,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23755,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(23764,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23768,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23784,15): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(23793,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(23794,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(23795,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23804,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23809,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23820,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23831,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(23832,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23837,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23849,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23855,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23865,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(23866,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23873,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(23874,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(23877,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(23878,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(23881,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23882,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(23885,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(23886,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(23889,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(23890,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(23902,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(23905,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(23906,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(23919,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(23923,29): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(23927,29): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23931,29): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(23948,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23949,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(23952,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(23953,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(23962,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(23997,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24002,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24014,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24021,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24027,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24032,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(24042,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24042,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24042,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24042,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24042,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24042,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24043,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24055,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24061,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24073,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(24087,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24103,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24109,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24120,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24125,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24132,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24149,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24154,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(24160,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24163,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24219,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(24220,10): run-time error CSS1035: Expected colon, found '{'
(24241,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24266,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(24266,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(24267,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24268,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(24269,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24319,35): run-time error CSS1019: Unexpected token, found ' '
(24319,35): run-time error CSS1019: Unexpected token, found ' '
(24319,35): run-time error CSS1042: Expected function, found ' '
(24319,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(24320,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(24320,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(24321,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24328,38): run-time error CSS1019: Unexpected token, found ' '
(24328,38): run-time error CSS1019: Unexpected token, found ' '
(24328,38): run-time error CSS1042: Expected function, found ' '
(24328,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(24330,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24343,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24344,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24350,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24351,28): 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'
(24377,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24407,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24419,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24423,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(24434,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24446,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24460,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(24461,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(24465,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(24466,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(24474,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24492,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24493,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24514,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(24518,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24521,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(24522,10): run-time error CSS1035: Expected colon, found '{'
(24559,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24561,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24573,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24574,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24579,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24585,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(24637,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(24649,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24651,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24658,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24658,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24658,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24658,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24661,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24668,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24669,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24683,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(24695,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24697,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24703,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24703,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24703,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24703,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24717,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24722,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24735,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(24747,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(24754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24759,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24760,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(24765,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24773,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24790,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24795,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24808,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(24809,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(24818,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24823,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24823,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24823,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24823,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(24829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(24848,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24908,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24913,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(24918,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(24918,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(24919,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24930,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24950,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(24953,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(24967,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(24972,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25018,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25020,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25025,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25026,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25032,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25041,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25046,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(25058,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25059,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25063,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25064,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(25068,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(25069,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(25074,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25091,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25098,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(25099,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25115,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(25135,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(25139,29): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(25144,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25150,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25154,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(25158,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25202,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25202,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25202,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25202,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25203,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25207,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25209,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25215,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25215,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25215,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25215,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25218,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25224,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25283,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25283,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25283,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25283,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25283,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25283,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25284,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25291,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25296,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25334,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25338,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25342,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25342,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25342,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25342,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25343,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25346,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25354,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25382,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25393,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(25423,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25426,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25430,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25441,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25456,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(25493,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25507,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25532,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25533,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25534,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25578,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25583,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25605,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(25606,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(25610,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(25611,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(25615,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25634,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25643,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(25644,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(25652,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(25653,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(25663,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25692,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25721,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25736,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25745,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25760,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25780,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25788,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25794,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25802,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25825,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25839,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25857,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(25875,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25882,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25882,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25882,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25882,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(25883,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25886,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25891,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(25897,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25919,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(25944,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(25945,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(25946,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(25953,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25958,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25966,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(25979,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(25997,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(25998,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26027,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26035,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26055,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26059,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26060,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26081,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26082,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26092,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26097,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26120,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26124,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26125,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26132,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26135,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26145,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26149,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26155,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(26168,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(26187,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26201,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(26234,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26240,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26256,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26264,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26289,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26299,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26370,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26376,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26381,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26387,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26391,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26401,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26434,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26434,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26434,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26434,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26435,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26443,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26465,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26466,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26467,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26467,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26470,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26478,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26511,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26516,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26524,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26524,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26532,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26552,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(26576,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26577,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26586,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26593,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(26597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26606,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26614,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26624,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26643,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(26675,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26676,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26687,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26687,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26687,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26687,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26687,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26687,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(26689,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26691,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26700,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26710,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26711,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(26734,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(26735,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26740,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(26747,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26759,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26769,27): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(26777,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(26792,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26793,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26802,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26806,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(26820,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26849,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(26861,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26866,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(26870,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26878,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(26885,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26890,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(26894,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26903,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26907,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(26920,33): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(26959,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(26963,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26978,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26981,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26984,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26987,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(26999,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27000,46): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(27002,51): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(27003,46): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(27004,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27009,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(27028,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27030,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27031,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(27037,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(27042,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(27043,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27076,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27077,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27120,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27120,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27120,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27120,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27121,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27134,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27144,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27209,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27210,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27220,40): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(27225,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27226,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27227,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27227,108): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27231,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(27243,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27261,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27271,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27273,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27298,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(27299,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27303,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27304,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27308,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27309,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(27326,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27334,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27335,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27339,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(27352,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27361,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(27362,64): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(27382,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(27383,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(27384,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(27429,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27437,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27438,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27447,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(27459,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27462,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27466,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27477,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27480,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(27481,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27484,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(27487,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27490,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(27499,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27504,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27508,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27515,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27524,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27525,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27526,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27553,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27553,75): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27553,121): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27554,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27556,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(27585,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(27591,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27600,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27601,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27603,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27610,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(27611,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27614,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27624,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27626,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27634,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27647,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27655,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27658,42): 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-gold-tint'
(27661,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27662,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27690,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27695,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27695,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27711,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27712,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27713,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27721,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27722,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27727,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(27728,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27729,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27733,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(27734,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(27747,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27753,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27758,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27763,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27797,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27800,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27802,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27813,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27822,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27830,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27831,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27834,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27835,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27838,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27848,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27856,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27857,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27862,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27864,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27865,136): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27866,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27870,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27872,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27873,17): run-time error CSS1039: Token not allowed after unary operator: '-text-default'
(27882,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(27883,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27885,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27891,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27901,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27907,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27926,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27928,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27938,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27939,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27947,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(27953,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(27954,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27955,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(27959,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(27965,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27983,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(27998,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(27999,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28006,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28008,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28014,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28015,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28016,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28024,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28026,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28030,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28031,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(28045,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28051,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28070,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28078,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28148,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28154,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28195,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28202,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28209,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28215,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(28222,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(28226,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28230,47): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-alt'
(28233,53): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(28237,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(28254,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28284,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(28321,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28323,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28324,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(28325,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(28331,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28332,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(28343,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28343,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28343,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28343,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28343,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28343,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28355,22): run-time error CSS1039: Token not allowed after unary operator: '-loader-overlay-bg'
(28364,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28375,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28391,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28391,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28391,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28391,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28391,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28391,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28392,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28399,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28400,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(28413,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28418,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28440,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28445,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28465,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28466,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28481,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(28496,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28520,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28566,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28586,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28590,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28590,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(28590,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28590,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28590,136): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28591,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28605,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28611,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28620,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28621,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(28648,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(28657,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28661,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28675,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28676,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28681,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28698,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28708,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28722,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(28731,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28736,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(28740,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28741,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(28747,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28758,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28767,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(28782,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(28786,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28799,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28807,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28836,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28884,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28909,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(28928,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28933,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28938,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(28947,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28959,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(28963,33): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(28966,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(28967,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(28969,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(28970,64): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(28981,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(28986,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(28990,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29003,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29012,58): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(29012,100): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(29013,59): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(29013,101): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(29014,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(29014,100): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(29015,59): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(29015,98): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(29029,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29039,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29045,44): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29053,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29059,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29116,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29132,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29192,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29193,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29196,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29202,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29203,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29216,26): run-time error CSS1030: Expected identifier, found ':'
(29216,34): run-time error CSS1031: Expected selector, found ')'
(29216,34): run-time error CSS1025: Expected comma or open brace, found ')'
(29221,26): run-time error CSS1030: Expected identifier, found ':'
(29221,34): run-time error CSS1031: Expected selector, found ')'
(29221,34): run-time error CSS1025: Expected comma or open brace, found ')'
(29231,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29232,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29237,26): run-time error CSS1030: Expected identifier, found ':'
(29237,34): run-time error CSS1031: Expected selector, found ')'
(29237,34): run-time error CSS1025: Expected comma or open brace, found ')'
(29253,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29280,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29281,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29284,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29289,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29291,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29292,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29302,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29318,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29319,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29329,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29336,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29339,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29340,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29346,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29369,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29372,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29379,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29383,44): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(29387,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29388,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29391,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29392,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29415,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29423,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29427,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29431,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29432,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29444,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29454,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29455,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29457,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29475,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29488,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29497,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(29499,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29500,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29521,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29529,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29534,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29545,47): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(29546,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(29546,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29550,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29550,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29557,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(29559,58): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29560,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29562,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29566,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29568,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29569,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29571,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29572,67): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(29577,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29586,71): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29599,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(29602,103): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29612,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29619,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(29619,115): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(29623,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29625,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29628,50): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(29630,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29643,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29648,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29657,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29683,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29686,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29691,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29695,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(29723,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29727,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29731,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29739,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29745,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29758,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29763,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(29768,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29792,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(29793,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29822,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(29826,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(29832,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(29836,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(29841,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29841,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(29845,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29851,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(29852,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(29860,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(29860,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(29860,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(29860,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(29862,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29893,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29905,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(29922,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29926,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29930,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(29934,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(29939,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29943,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29956,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29964,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29974,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(29985,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(29990,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(29994,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(30001,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30008,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30022,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30030,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30036,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30042,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30054,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30055,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30063,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30075,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30084,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30085,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30103,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(30108,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30111,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30122,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(30142,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30149,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30150,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30160,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30170,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30181,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(30184,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30187,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30190,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(30194,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(30203,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30212,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30218,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30224,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30227,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30241,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(30247,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30253,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(30254,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(30255,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(30263,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(30264,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30265,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30274,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(30283,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(30284,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30285,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(30302,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30318,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30319,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30337,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30338,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30339,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30346,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30350,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30370,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30375,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30385,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(30386,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(30387,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(30415,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30420,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30426,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30449,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(30450,10): run-time error CSS1035: Expected colon, found '{'
(30550,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30561,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30561,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30561,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30561,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30562,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30569,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30569,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30576,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30583,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(30592,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30602,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30607,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30608,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30627,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(30635,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30641,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(30650,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30652,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30662,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30662,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30662,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30667,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30667,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30667,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30667,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30667,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30667,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30672,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30672,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30672,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30681,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30682,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30690,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30691,79): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30692,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(30703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30711,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30732,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(30733,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30742,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30744,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(30744,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(30745,45): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(30745,87): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(30746,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30746,76): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30749,60): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30749,104): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(30751,57): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(30772,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30773,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30779,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30784,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(30788,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30793,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(30794,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(30798,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30799,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30799,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(30799,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30799,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30799,136): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30805,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30806,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30813,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(30817,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(30818,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30818,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30818,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30823,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(30827,33): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(30831,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30836,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(30837,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(30850,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30863,15): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(30865,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30888,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(30893,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30905,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(30911,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(30912,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(30926,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30936,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(30948,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(30972,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(30974,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(30987,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(30988,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(30989,28): run-time error CSS1039: Token not allowed after unary operator: '-status-info-border'
(31005,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(31018,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31030,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(31035,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(31039,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31057,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31065,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31075,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31086,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(31094,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31098,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(31112,60): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31114,60): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(31121,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31136,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31159,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31170,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31179,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31195,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(31198,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31205,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(31230,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31237,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31241,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31246,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31291,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31300,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31305,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31336,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31340,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31354,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31364,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31368,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31375,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31376,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31385,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31393,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31400,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31402,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31424,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31431,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31438,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(31445,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(31458,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31459,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(31460,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31470,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31471,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31472,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31478,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31479,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(31480,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31486,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31505,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31507,33): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(31519,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31525,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31531,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(31581,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31596,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31596,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31596,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31596,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31597,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31605,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31612,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31619,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31631,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31645,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31653,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31663,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31671,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31671,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31671,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31671,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(31672,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(31680,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31725,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(31731,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(31750,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31763,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31766,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31771,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(31776,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31788,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31793,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31800,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31813,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31824,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(31830,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31837,48): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(31838,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31842,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31849,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(31850,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31851,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31861,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31867,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(31868,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31880,46): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(31880,81): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(31889,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(31907,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(31909,35): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(31932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(31933,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(31944,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(31974,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(31982,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32002,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32007,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32025,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32049,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32058,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32064,28): run-time error CSS1039: Token not allowed after unary operator: '-bh-pin-gold'
(32070,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-pin-gold'
(32089,33): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(32096,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32103,43): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32119,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32120,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32133,53): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32134,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32140,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32147,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32163,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32167,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32170,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32205,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32214,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32224,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32231,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32235,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32236,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(32255,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32256,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32264,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32265,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32272,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32276,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32298,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32299,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32331,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32332,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32340,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32341,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32345,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32346,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32346,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32346,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32347,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32352,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32359,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32376,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(32380,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32384,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(32389,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32390,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32399,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32400,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32400,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32400,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32400,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32402,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32407,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32408,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32419,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32424,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32430,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32430,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32430,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32430,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32431,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32432,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32433,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32434,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32435,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32441,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32445,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32460,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32467,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(32505,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32511,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32517,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(32526,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32541,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32620,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32625,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32642,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32647,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32653,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32670,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32677,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32681,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32710,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32721,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32728,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32749,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32750,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32755,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32762,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32766,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32767,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32785,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32796,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32801,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(32818,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32822,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32835,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(32839,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32845,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(32863,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(32864,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(32870,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(32871,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(32877,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(32878,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(32896,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(32897,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(32902,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32903,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(32912,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32914,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32929,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32935,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32940,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(32945,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(32952,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32954,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32959,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(32972,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(32982,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(32985,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(32990,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33024,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33039,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33050,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33055,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33064,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33066,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33073,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33097,58): run-time error CSS1030: Expected identifier, found '>'
(33097,81): run-time error CSS1031: Expected selector, found ')'
(33097,81): run-time error CSS1025: Expected comma or open brace, found ')'
(33103,58): run-time error CSS1030: Expected identifier, found '>'
(33103,81): run-time error CSS1031: Expected selector, found ')'
(33103,81): run-time error CSS1025: Expected comma or open brace, found ')'
(33111,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33111,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33111,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33111,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33112,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33114,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33140,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33172,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33187,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33192,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33193,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33197,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33202,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(33203,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33207,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33215,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33233,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33239,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33253,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33260,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33263,54): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(33264,51): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(33269,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33274,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33287,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33297,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33302,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33309,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33309,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33309,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33309,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33310,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33311,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33327,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(33329,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33335,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33337,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33345,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(33353,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33363,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33372,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33411,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33411,76): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33413,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(33413,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33431,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33436,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33449,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33450,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33470,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33471,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(33472,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33479,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(33483,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33499,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33506,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33513,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(33519,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33523,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33552,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(33560,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33562,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33572,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33586,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33592,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33592,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33592,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33592,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33607,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(33612,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33618,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33622,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(33629,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(33630,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(33632,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(33645,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33653,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33685,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33696,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33725,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33738,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33741,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33741,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33741,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33741,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33742,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33793,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33796,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33796,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33796,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33796,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(33797,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33875,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33876,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(33908,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33918,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(33918,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(33919,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33920,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(33921,35): run-time error CSS1019: Unexpected token, found ' '
(33921,35): run-time error CSS1019: Unexpected token, found ' '
(33921,35): run-time error CSS1042: Expected function, found ' '
(33921,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(33927,19): run-time error CSS1030: Expected identifier, found '>'
(33927,48): run-time error CSS1031: Expected selector, found ')'
(33927,48): run-time error CSS1025: Expected comma or open brace, found ')'
(33942,38): run-time error CSS1019: Unexpected token, found ' '
(33942,38): run-time error CSS1019: Unexpected token, found ' '
(33942,38): run-time error CSS1042: Expected function, found ' '
(33942,38): run-time error CSS1062: Expected semicolon or closing curly-brace, found ' '
(33948,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33952,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33953,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33957,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(33958,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(33961,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(33962,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33963,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33966,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(33967,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33970,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33971,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(33972,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(33982,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33989,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(33994,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34000,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34054,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34054,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34055,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(34055,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(34056,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(34056,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(34057,43): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(34057,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34058,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34058,80): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34063,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(34063,97): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(34066,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34066,86): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34071,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34078,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34079,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34082,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34083,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34086,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(34087,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(34121,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34126,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34133,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34163,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34172,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34174,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34184,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34205,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34223,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34229,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34229,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34229,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34229,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34234,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34244,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34249,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34255,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34259,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34267,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(34283,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34284,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34376,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34382,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34382,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(34384,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34392,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34400,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34410,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34421,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34432,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34444,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34449,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34450,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34481,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34484,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34485,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34486,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(34489,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34490,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(34491,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-bright'
(34494,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34497,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(34500,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34507,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34511,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(34516,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34521,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34521,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34521,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34521,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34521,130): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34521,148): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34527,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34532,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34532,75): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34532,92): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34536,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34542,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34586,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34593,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34599,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34604,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34610,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34621,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34621,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34621,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34621,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34622,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34623,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34629,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34634,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(34645,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34653,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(34658,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34663,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(34676,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34679,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34685,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34697,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34721,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34734,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34741,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(34742,10): run-time error CSS1035: Expected colon, found '{'
(34783,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(34786,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(34799,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34809,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34832,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34852,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(34856,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(34866,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(34878,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34882,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(34886,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34890,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34893,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34894,44): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(34895,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34896,43): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(34939,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34942,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(34943,78): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(34944,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(34958,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34968,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(34997,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(34997,93): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(34998,103): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35000,34): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35001,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35002,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35003,66): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35004,27): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35005,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35007,27): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35009,56): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35011,160): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(35011,202): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(35012,162): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(35012,204): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(35013,164): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(35013,205): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(35014,163): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35014,200): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35046,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35066,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35083,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35084,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35092,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(35094,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35099,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35109,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(35135,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35141,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35145,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35149,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35154,29): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(35187,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(35195,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(35196,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(35202,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(35203,71): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35207,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(35229,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35245,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35249,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35264,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35269,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35276,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(35281,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35290,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35295,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35300,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35305,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(35311,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35312,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35324,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35334,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35345,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35371,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35372,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35413,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35431,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35435,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(35439,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(35450,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35452,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35460,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35461,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35472,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35476,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(35485,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35491,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35530,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(35538,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35545,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35550,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35575,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35585,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35594,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35594,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35594,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35594,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35595,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35603,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(35616,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(35623,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35624,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35625,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35630,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(35631,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35636,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35641,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35642,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35646,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35647,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35648,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35669,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(35670,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35679,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35685,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35691,28): 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-subtle'
(35703,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(35708,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(35719,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(35729,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(35739,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(35749,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(35761,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35775,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(35784,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(35804,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35805,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35818,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35824,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35825,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35828,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(35829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(35835,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(35845,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35906,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(35910,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35911,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35938,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(35968,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(35977,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36011,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36032,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36034,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36039,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36049,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36050,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36066,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36067,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(36074,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(36075,10): run-time error CSS1035: Expected colon, found '{'
(36085,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36094,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36110,48): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36113,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36114,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(36121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36131,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36140,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36162,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36175,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36178,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36181,18): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36214,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36258,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36271,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36291,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36320,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36324,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36330,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36340,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36349,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(36354,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36385,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36389,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36390,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36391,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36395,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36408,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36414,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36421,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36422,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(36427,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(36447,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36458,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(36459,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(36466,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36471,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36475,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36497,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36564,29): run-time error CSS1039: Token not allowed after unary operator: '-primary'
(36604,38): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36605,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36606,38): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(36607,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(36634,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36642,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(36669,14): run-time error CSS1039: Token not allowed after unary operator: '-bp-color'
(36669,44): run-time error CSS1039: Token not allowed after unary operator: '-bp-pct'
(36670,27): run-time error CSS1039: Token not allowed after unary operator: '-bp-pct'
(36682,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36694,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36703,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36709,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36715,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36715,63): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36715,80): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36717,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36724,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36724,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36724,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36724,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(36726,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(36734,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36738,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36745,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36764,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36765,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36773,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36778,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36782,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36788,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(36794,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36795,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(36796,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36814,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36853,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(36857,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36868,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36883,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36893,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36898,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(36915,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(36930,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(36931,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36932,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36941,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(36951,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(36965,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36966,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(36970,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(36973,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(36974,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(36975,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(36982,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(36983,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(36988,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(36992,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(36993,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(36998,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(37017,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(37018,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(37032,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37033,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37042,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success-alt'
(37060,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37065,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37070,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37078,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37086,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37088,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37099,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37106,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37107,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37110,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37118,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37121,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37122,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37128,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37132,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37133,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37136,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37165,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37176,50): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37185,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37193,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37207,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37209,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(37215,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37228,17): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(37239,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37240,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(37246,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(37276,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37283,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37287,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37306,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37309,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37322,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37328,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37335,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37339,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(37343,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(37344,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(37371,39): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37381,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(37386,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37388,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(37391,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(37394,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37399,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37400,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37401,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37414,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37420,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37425,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37430,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37437,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(37442,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37449,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37455,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37461,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37472,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(37473,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(37486,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37496,44): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(37497,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37514,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(37515,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(37516,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(37519,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37520,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37521,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(37533,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37543,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-subtle'
(37543,90): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37544,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37544,89): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37545,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37551,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37565,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37574,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37580,31): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37581,32): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37581,84): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37585,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37591,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37595,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37598,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37599,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(37619,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37623,39): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37632,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37633,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37649,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37654,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37658,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37663,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37672,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37677,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37681,44): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37684,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37695,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(37696,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37697,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(37698,33): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37714,34): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37718,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37729,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37731,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37739,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37743,40): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(37747,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37758,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(37759,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37765,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37769,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37774,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37798,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37809,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37812,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37819,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(37820,10): run-time error CSS1035: Expected colon, found '{'
(37833,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37834,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37845,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37860,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37865,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37884,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37885,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37890,28): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37891,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37892,35): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37892,77): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37893,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37893,68): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37894,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37896,27): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37900,30): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(37900,94): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37901,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37901,134): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37901,279): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(37902,101): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37904,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37906,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37907,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37911,197): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37911,240): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37911,290): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(37912,81): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37913,125): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(37915,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37916,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37916,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37918,43): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37919,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37922,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37924,66): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37925,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37927,74): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(37929,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37931,60): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37932,59): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37933,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37935,30): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(37936,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(37937,114): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(37937,156): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(37938,133): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(37958,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37959,105): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37960,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37964,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37965,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(37967,119): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(37968,55): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37968,149): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37969,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37969,77): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37970,178): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(37973,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(37974,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(37978,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(37979,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(37988,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(37994,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(37998,22): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(38013,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38014,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38018,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38019,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38024,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38025,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38056,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38076,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38083,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38097,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38105,43): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38110,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(38113,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38123,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38126,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(38127,36): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38128,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38134,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38145,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38146,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38147,24): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38154,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(38155,28): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38173,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38177,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38188,35): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38189,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38193,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38196,54): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38203,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38204,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38221,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38230,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg-subtle'
(38231,28): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38243,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38257,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-info-soft'
(38258,17): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(38259,28): run-time error CSS1039: Token not allowed after unary operator: '-border-info-soft'
(38262,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-danger-soft'
(38263,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38264,28): run-time error CSS1039: Token not allowed after unary operator: '-border-danger-soft'
(38276,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38276,104): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38277,63): run-time error CSS1039: Token not allowed after unary operator: '-card-bg-subtle'
(38277,109): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38278,62): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(38278,101): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(38279,57): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38280,68): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38292,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38331,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(38332,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38335,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(38336,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(38339,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(38340,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38375,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38396,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38396,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38397,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38398,81): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38399,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(38399,87): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38430,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38438,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38442,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38443,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38446,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(38447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38462,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38481,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38535,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38552,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(38553,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(38557,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38575,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(38584,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38630,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38667,38): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(38667,95): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(38667,133): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(38668,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(38668,96): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(38668,142): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(38669,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(38669,96): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(38669,135): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(38670,38): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(38670,93): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(38670,129): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(38684,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38687,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38702,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(38705,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38718,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38739,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38749,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38750,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38751,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38751,55): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38751,86): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38755,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38756,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38756,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38756,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38800,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(38802,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38803,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38809,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38810,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(38811,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38814,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38822,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38834,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38835,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38836,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38839,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38843,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38844,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38845,21): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38848,26): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38863,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38863,149): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38863,179): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38863,209): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38865,137): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38866,104): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38867,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38867,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38868,83): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38868,178): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38869,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38871,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38871,182): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38872,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38873,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(38874,97): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38879,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38879,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38881,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38882,63): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38884,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38888,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(38888,124): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(38889,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(38889,94): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38890,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38891,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38891,101): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38892,68): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38896,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38896,78): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38897,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38897,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38905,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38906,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38913,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38918,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38918,118): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38919,85): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38928,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38929,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38930,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38936,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38947,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(38967,57): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(38967,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(38968,111): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(38977,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(38980,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(38991,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(38994,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39007,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39020,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39030,48): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(39031,54): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(39032,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(39033,54): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(39034,46): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(39035,52): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(39040,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39041,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39044,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39054,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39058,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39064,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(39067,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(39068,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(39069,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(39070,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(39071,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39072,60): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(39077,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39080,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39087,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39090,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39093,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39103,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39104,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39105,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39111,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39114,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(39115,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(39122,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39130,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39135,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39145,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39169,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(39170,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(39173,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(39174,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(39179,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39180,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(39181,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39196,46): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39202,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39205,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39221,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39222,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(39223,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39248,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39258,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39265,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39266,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(39267,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39285,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39286,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39293,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39294,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(39295,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39304,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39304,92): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39310,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39311,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39322,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39323,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39332,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39332,77): run-time error CSS1039: Token not allowed after unary operator: '-magenta'
(39335,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39346,55): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39349,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39353,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39356,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39360,28): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39366,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39367,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39377,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39381,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39393,55): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39398,57): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39403,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39404,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39414,35): run-time error CSS1039: Token not allowed after unary operator: '-border-soft'
(39418,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(39421,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39424,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39426,33): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39430,55): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39434,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39436,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39442,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(39443,56): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39470,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39470,78): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39471,49): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39483,96): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39487,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(39488,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39492,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39520,22): run-time error CSS1039: Token not allowed after unary operator: '-success-bg'
(39521,17): run-time error CSS1039: Token not allowed after unary operator: '-success-text'
(39526,32): run-time error CSS1039: Token not allowed after unary operator: '-success-text'
(39540,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(39543,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(39544,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39564,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39565,32): run-time error CSS1030: Expected identifier, found ':'
(39565,46): run-time error CSS1031: Expected selector, found ')'
(39565,46): run-time error CSS1025: Expected comma or open brace, found ')'
(39569,32): run-time error CSS1030: Expected identifier, found ':'
(39569,40): run-time error CSS1031: Expected selector, found ')'
(39569,40): run-time error CSS1025: Expected comma or open brace, found ')'
(39579,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39582,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(39591,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39596,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39599,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39697,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39699,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(39708,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39711,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39716,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39722,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(39737,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(39741,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(39749,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(39751,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(39752,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39752,103): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39760,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(39761,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39768,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(39808,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(39823,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39830,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39835,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39842,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39855,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(39856,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(39862,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39863,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(39866,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(39867,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39887,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39890,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39897,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39911,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39912,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(39918,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39921,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(39930,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39937,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39945,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39952,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39958,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(39958,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(39959,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(39963,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39966,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(39975,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(39999,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40006,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40014,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(40027,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40030,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40034,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40041,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(40070,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40071,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40082,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40085,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40102,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40143,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40156,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40176,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40189,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40196,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40207,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40211,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40226,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40248,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(40249,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40259,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40263,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40265,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40272,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(40281,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40282,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40302,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40308,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40311,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40312,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40315,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40320,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40326,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40330,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40337,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40338,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40351,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40371,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40389,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(40419,57): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40422,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(40423,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40424,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40444,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40450,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40473,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40474,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40492,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40497,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40503,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40504,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40511,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(40512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40515,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40516,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40522,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40529,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(40535,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40541,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(40559,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(40560,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40562,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40567,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40567,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40567,123): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40569,23): run-time error CSS1030: Expected identifier, found ':'
(40569,31): run-time error CSS1031: Expected selector, found ')'
(40569,31): run-time error CSS1025: Expected comma or open brace, found ')'
(40574,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(40574,76): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40574,115): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40586,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-dark'
(40602,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40613,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40624,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40629,93): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40630,51): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40648,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40649,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40655,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40656,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40664,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40688,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(40693,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40697,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40707,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40710,41): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(40711,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(40711,83): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(40712,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(40716,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40720,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40726,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40787,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(40798,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(40800,63): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(40804,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-dark'
(40806,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40810,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-dark'
(40812,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40816,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(40818,64): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(40827,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(40830,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(40838,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40855,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(40869,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40874,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40877,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40878,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40881,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(40886,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40890,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(40898,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(40901,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(40902,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(40905,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40911,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(40916,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40917,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40920,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40923,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40933,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40943,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40944,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(40945,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40952,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40953,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(40954,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40963,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(40964,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40965,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(40979,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(40991,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(40994,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41000,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41000,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41000,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41000,117): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41005,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(41016,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41025,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41029,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(41033,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(41042,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41049,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(41051,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41060,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41064,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(41069,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41077,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41078,28): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(41090,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41107,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41107,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(41111,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41122,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41151,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41152,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41160,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(41161,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41162,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41169,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41170,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(41176,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41177,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41178,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41182,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41183,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41184,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(41188,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41189,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41190,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41197,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41213,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41214,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41220,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41234,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(41247,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(41273,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(41274,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41275,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41281,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41285,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41286,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41287,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41303,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41317,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41318,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41330,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41332,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41342,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41343,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41348,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(41352,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41368,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41385,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41390,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41394,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41395,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41399,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41413,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41421,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41436,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(41455,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41457,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41458,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41477,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41490,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41491,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41498,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41502,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41503,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41576,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41577,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41586,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41587,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41596,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41597,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41598,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41603,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41630,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41658,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(41670,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41671,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41678,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41684,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41685,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41687,74): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(41688,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41688,98): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41694,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(41696,67): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41697,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41716,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41727,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41728,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41767,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41769,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41782,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41783,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41788,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(41791,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41795,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41797,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41808,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41809,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41817,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41822,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41823,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41824,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41832,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41842,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(41844,64): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41845,45): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41857,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-success-subtle'
(41857,80): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(41858,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(41858,73): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41865,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41878,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41884,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(41886,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41894,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41897,75): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(41898,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41918,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41918,78): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41919,62): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41923,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(41923,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41924,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41924,86): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41927,55): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41928,45): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(41928,83): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41931,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(41943,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41949,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(41956,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(41956,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41957,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41961,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(41961,71): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(42001,20): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(42033,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42034,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42036,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42067,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42068,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42074,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42080,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42088,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42089,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42104,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(42114,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(42115,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42133,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42137,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42145,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42151,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(42166,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(42204,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(42205,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(42206,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(42209,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42226,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42243,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42280,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(42281,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(42288,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(42291,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42296,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42305,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42307,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(42321,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42328,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42338,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42344,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(42356,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42376,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(42377,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42378,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42383,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42397,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42407,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(42408,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42415,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42416,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42420,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42421,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42422,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(42433,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42454,24): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(42455,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(42459,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42460,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42466,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(42474,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(42485,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(42504,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(42509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(42518,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(42523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42529,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42538,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42549,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42551,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(42574,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42587,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42609,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(42610,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42635,21): run-time error CSS1039: Token not allowed after unary operator: '-bh-drag-tilt'
(42661,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42665,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(42677,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(42685,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(42693,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42699,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(42712,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42720,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42722,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42729,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42735,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42743,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42749,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42765,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42773,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(42777,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(42800,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(42804,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42811,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(42866,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42904,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(42905,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42931,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(42937,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(42946,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-page'
(42947,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(42971,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(42972,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42973,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(42982,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(42987,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43010,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(43033,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43034,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(43055,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43063,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43067,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43068,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43076,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43088,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43113,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43114,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43126,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43133,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43163,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43189,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43190,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43191,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43202,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43207,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43214,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43215,24): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43222,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43236,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43269,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43277,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43278,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43283,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43296,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43301,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43305,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43309,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43320,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43324,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43329,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43330,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43361,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43377,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43381,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43384,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43390,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43397,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(43406,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43409,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43414,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43415,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43424,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43431,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43442,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43446,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43450,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(43455,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43460,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43477,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43481,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43488,64): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43491,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43500,58): run-time error CSS1039: Token not allowed after unary operator: '-bh-navbar-h'
(43500,108): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43503,37): run-time error CSS1030: Expected identifier, found '.'
(43503,54): run-time error CSS1031: Expected selector, found ')'
(43503,54): run-time error CSS1025: Expected comma or open brace, found ')'
(43507,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43513,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(43514,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(43519,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43525,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(43536,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43541,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43542,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43555,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43577,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(43586,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43589,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43600,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43601,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43624,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(43636,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43651,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43657,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43660,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43665,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43676,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43684,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(43684,79): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43685,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43685,78): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43686,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43686,77): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43697,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43701,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43706,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43723,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43724,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43725,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43731,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43732,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43739,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43740,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43743,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43744,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(43750,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43769,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(43778,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43781,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43782,73): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43786,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43798,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43805,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43812,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43826,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43837,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(43846,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(43848,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(43853,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43857,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43858,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(43866,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43871,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43875,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43881,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(43892,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43899,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(43909,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43913,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43916,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(43922,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43926,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43938,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43947,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(43948,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43949,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(43955,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(43960,46): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43964,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(43965,10): run-time error CSS1035: Expected colon, found '{'
(43968,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(43969,10): run-time error CSS1035: Expected colon, found '{'
(43978,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43978,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43978,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43978,121): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(43978,138): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43978,158): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(43979,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(43986,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(43993,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(44010,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44021,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44022,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44030,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44037,28): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(44041,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44042,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44059,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(44060,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44068,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44088,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44088,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44088,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44088,121): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44088,138): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44088,158): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44089,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44093,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44096,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44100,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44104,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44108,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44117,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44118,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44119,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44130,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44137,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44153,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44163,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44172,37): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44186,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44194,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44201,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44223,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44226,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44235,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44240,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44252,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44253,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44257,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44258,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44275,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44276,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44279,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44280,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44281,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(44288,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44297,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44319,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44320,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44329,31): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(44337,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44338,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44344,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44348,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44366,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44367,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44370,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44371,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44372,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(44378,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(44378,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44379,29): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44383,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44387,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(44388,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(44396,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(44397,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44400,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44402,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(44405,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44448,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44449,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44464,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44467,56): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(44470,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44471,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44491,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44507,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44516,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(44523,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44523,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44524,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44546,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44562,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44571,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44578,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44579,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44581,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(44588,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44597,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44658,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(44705,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44715,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(44716,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44728,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44730,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44734,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44744,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44745,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44750,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44755,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44771,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44772,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44773,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44776,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44777,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44789,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44793,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44806,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44807,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44810,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44811,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44816,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44816,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44817,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44820,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44821,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44822,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(44824,73): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44825,66): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44827,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(44828,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44830,76): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44833,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44834,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44837,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(44838,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44849,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44855,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(44856,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44871,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(44871,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44872,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(44872,84): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(44873,42): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(44873,81): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(44874,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(44874,80): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44883,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44889,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(44895,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44901,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44907,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44913,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44918,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(44919,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44930,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44956,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(44958,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(44967,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(44972,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(44976,60): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(44977,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(44984,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(44985,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(44988,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(45000,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45000,95): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45001,66): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45002,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45002,100): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45006,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(45006,100): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45007,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(45007,100): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45012,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45019,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45022,69): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45037,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45051,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45064,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(45065,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45069,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45069,101): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45070,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45071,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45073,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45074,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45075,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45081,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45082,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45088,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45091,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45092,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(45093,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45109,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(45110,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45114,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45116,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45117,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45118,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45120,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45121,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(45125,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45126,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45127,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45132,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45133,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45142,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45156,68): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45157,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45160,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45161,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45167,135): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45177,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45178,61): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45179,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45179,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45182,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45182,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45183,65): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45189,48): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45191,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(45192,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(45194,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(45196,49): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45198,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45199,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(45203,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45204,116): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45213,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(45214,80): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(45216,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45217,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45217,93): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45220,37): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(45222,30): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(45224,98): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45226,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45228,30): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45229,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45230,70): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45232,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45232,92): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45249,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(45250,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45255,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45258,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45264,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45268,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45273,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45274,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(45279,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45287,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45298,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45301,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45306,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(45316,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(45317,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45318,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45325,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(45331,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45341,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45356,153): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(45358,50): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45359,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45369,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(45370,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(45371,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45372,41): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45375,107): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(45377,49): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(45378,49): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(45379,47): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45385,71): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45386,103): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45386,141): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(45410,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45411,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(45415,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45421,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45430,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45431,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream'
(45432,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45433,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45439,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45440,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45441,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45442,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45446,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(45447,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45450,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45462,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45463,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45472,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45472,81): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45473,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45483,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45488,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45493,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45506,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45507,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(45515,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45519,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45530,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45535,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(45541,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45544,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45557,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45568,33): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(45578,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45588,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45597,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45608,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45628,36): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(45719,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45722,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(45723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(45726,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45729,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45737,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45740,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45759,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45765,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45771,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45775,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45779,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(45780,49): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(45781,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45790,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45799,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45812,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45812,67): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45812,110): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45814,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45819,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45819,60): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(45819,116): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45833,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45834,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45856,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45861,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45862,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(45874,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45875,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(45894,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45895,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45904,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45915,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(45916,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(45944,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(45945,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45946,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(45972,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45982,27): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(45983,38): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(45992,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(45993,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(45994,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(46002,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46002,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46010,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46015,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46020,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46024,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46027,57): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(46027,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46028,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46028,98): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46029,57): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(46029,100): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46037,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(46037,82): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(46038,39): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(46038,81): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(46039,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(46039,81): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(46042,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46051,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46055,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46056,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(46060,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(46064,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46069,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(46074,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46079,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(46085,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46089,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(46118,34): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(46126,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(46132,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46145,51): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(46148,22): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(46150,33): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(46156,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46157,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(46161,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(46162,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(46165,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(46171,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(46174,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(46180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(46201,56): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(46201,120): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46202,36): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46204,72): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(46205,34): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46207,41): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46209,36): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46210,70): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46215,43): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46216,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46217,65): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46219,73): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46232,144): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(46232,183): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46234,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46237,62): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46238,99): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(46243,48): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(46243,90): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(46244,50): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(46244,92): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(46245,52): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(46245,93): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(46246,76): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46247,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(46249,70): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46250,39): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46251,67): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46252,60): run-time error CSS1039: Token not allowed after unary operator: '-accent'
(46255,111): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(46255,147): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46256,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46256,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46260,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(46260,159): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(46427,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46428,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(46429,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46433,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46443,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46452,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46457,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46465,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46466,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46473,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46478,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46496,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46508,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46527,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(46529,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(46533,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46534,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46537,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(46542,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46565,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46570,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46574,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46590,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46594,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46600,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46601,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46606,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46648,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46655,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46666,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46667,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46668,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46674,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46682,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46688,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46691,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(46696,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46700,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46701,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46704,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46728,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(46732,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46739,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46751,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(46752,10): run-time error CSS1035: Expected colon, found '{'
(46757,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46761,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46765,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(46782,22): run-time error CSS1039: Token not allowed after unary operator: '-surface-elev'
(46783,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46791,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46796,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(46805,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(46829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46846,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(46858,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(46864,31): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(46878,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(46883,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(46887,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46892,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46899,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(46912,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(46916,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46920,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(46928,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46937,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(46970,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46977,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(46978,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47001,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47012,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(47047,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47059,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47060,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(47067,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47074,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(47096,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47114,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47115,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47124,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47127,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47140,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47150,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(47151,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47153,38): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(47153,80): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(47154,40): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(47154,82): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(47155,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(47155,83): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(47160,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47166,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(47166,94): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(47172,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47174,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47182,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47183,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-tint'
(47186,81): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47187,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47198,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47203,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47207,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47222,29): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(47224,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47227,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47236,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47244,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(47252,164): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(47252,207): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47254,129): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47255,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47255,81): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47258,144): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47258,209): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(47258,241): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47259,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47259,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47260,166): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47260,200): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47263,49): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(47264,30): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(47267,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47267,139): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(47267,171): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47268,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47268,83): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47270,129): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(47270,193): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47270,227): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47271,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47272,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47272,88): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(47272,125): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47273,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47275,41): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(47276,40): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47281,69): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47282,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47282,150): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47283,86): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47288,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47288,144): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(47288,176): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47289,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47289,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47304,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47314,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-tint'
(47317,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47320,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47335,29): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47337,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47345,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47349,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47357,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47360,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(47371,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47410,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(47411,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(47412,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47413,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(47418,88): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47420,72): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(47420,130): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(47426,57): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(47429,57): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(47446,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(47456,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47458,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47463,44): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47465,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47500,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47502,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47508,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47508,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47509,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47509,104): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47535,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47543,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47547,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47550,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47560,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47568,111): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47571,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47611,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(47611,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(47623,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47624,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(47631,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47632,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47638,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47639,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(47663,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47664,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47701,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47707,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(47723,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(47725,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(47731,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47732,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47735,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47750,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(47758,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47759,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47760,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47768,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(47786,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(47787,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47788,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47790,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47794,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47797,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(47798,24): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(47802,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47834,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47842,54): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47851,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47860,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47860,74): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47861,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47862,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47864,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(47872,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47886,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47891,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(47895,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47896,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47899,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(47906,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47914,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(47918,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(47924,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(47932,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47933,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(47940,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(47941,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(47948,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(47949,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(47953,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(47959,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47960,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47961,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(47964,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47965,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47969,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47976,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(47979,61): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(47980,62): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(47998,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(47999,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48003,35): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(48011,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48017,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48020,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48026,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48037,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48042,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48048,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48060,17): run-time error CSS1039: Token not allowed after unary operator: '-accent-purple'
(48064,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48064,77): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48067,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48068,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48073,31): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48076,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(48079,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48080,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48084,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48087,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48102,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48108,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48119,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48147,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48149,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48150,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48162,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48163,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48166,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48167,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48168,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48178,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(48183,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48190,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48221,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48224,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48238,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48239,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48242,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48245,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48246,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(48247,24): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(48251,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48264,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48265,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48268,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48271,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48274,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48275,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48276,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48279,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48299,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48300,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48304,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48311,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48317,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48320,50): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48329,69): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48342,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48343,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48353,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48385,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48392,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48394,48): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(48401,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48402,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48404,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48408,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48421,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48423,46): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48424,51): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(48425,55): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(48426,57): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(48449,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48452,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48453,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(48463,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48467,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48473,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48483,77): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48484,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48485,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48487,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48491,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48491,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48492,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48498,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48499,32): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48502,39): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48506,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48507,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48512,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48527,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48529,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48535,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48536,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48539,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48540,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48541,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48544,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(48545,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48548,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48548,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48550,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48551,52): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48563,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48582,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48584,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48590,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48591,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48594,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48598,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48599,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48600,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48610,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48616,46): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48619,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48629,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48637,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48638,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48646,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48648,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48650,51): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(48654,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48655,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48657,61): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48658,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48669,47): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48669,159): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(48670,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48671,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48672,85): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48673,64): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48675,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48676,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48684,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48685,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(48686,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48687,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48690,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48698,113): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(48699,45): run-time error CSS1039: Token not allowed after unary operator: '-bh-primary'
(48707,108): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48708,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(48708,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48710,76): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(48713,81): run-time error CSS1039: Token not allowed after unary operator: '-bh-border'
(48746,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48752,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48780,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48785,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(48786,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48789,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48797,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-light'
(48804,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(48805,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(48812,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48813,22): run-time error CSS1039: Token not allowed after unary operator: '-cream'
(48822,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48828,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48831,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(48845,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48846,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48859,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48865,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48884,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48885,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48892,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48897,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48909,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48921,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48929,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48950,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(48952,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(48954,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48959,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(48960,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(48967,85): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(48967,119): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48969,42): run-time error CSS1039: Token not allowed after unary operator: '-hover-bg'
(48970,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48972,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48973,128): run-time error CSS1039: Token not allowed after unary operator: '-subtle-bg'
(48973,180): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(48974,56): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(48975,56): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48977,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48978,44): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(48979,113): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(48979,165): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(48979,217): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(48981,71): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48981,110): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(48984,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48987,99): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(48987,137): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(48989,69): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(48990,43): run-time error CSS1039: Token not allowed after unary operator: '-hover-bg'
(48994,52): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(48998,75): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(48999,115): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(48999,176): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49000,66): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49001,130): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49001,191): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(49003,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49003,85): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49008,93): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49014,16): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49021,101): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49026,103): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(49030,135): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(49030,172): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(49031,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49032,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49033,52): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49033,116): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49033,150): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49040,107): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49044,108): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49045,126): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49050,115): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49053,59): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(49053,117): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49055,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49056,49): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49057,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49060,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49061,164): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49063,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49064,40): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49068,112): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49071,137): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(49071,224): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49071,261): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49074,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49074,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49075,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49075,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49075,119): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49081,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49082,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49086,49): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(49087,73): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49108,28): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(49110,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49121,61): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(49122,61): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(49123,61): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(49124,61): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49126,58): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(49127,60): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49136,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49136,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49140,76): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49142,93): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49143,57): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49144,78): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49147,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49147,78): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49147,185): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49153,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49153,174): run-time error CSS1039: Token not allowed after unary operator: '-border-brand'
(49155,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49162,101): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49170,164): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(49174,71): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49177,82): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49177,122): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49177,183): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49188,96): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49189,89): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(49190,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49192,93): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49192,133): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49193,121): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(49194,57): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(49194,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49195,55): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(49197,100): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-accent'
(49197,175): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-on-accent'
(49199,65): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(49201,125): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49202,50): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(49202,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49203,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49204,89): run-time error CSS1039: Token not allowed after unary operator: '-bh-splash-ink'
(49204,110): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49208,133): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49208,212): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49208,256): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49211,67): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49215,117): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(49218,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49225,94): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49229,157): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49229,187): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49229,217): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49230,51): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49232,59): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(49232,107): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(49232,159): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(49233,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(49237,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49238,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49240,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49246,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49246,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49248,33): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(49248,222): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49249,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49254,31): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49257,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49257,91): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49258,53): run-time error CSS1039: Token not allowed after unary operator: '-text-heading'
(49263,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49271,32): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49273,117): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(49273,181): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49274,71): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(49277,49): run-time error CSS1039: Token not allowed after unary operator: '-text-heading'
(49278,52): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49281,35): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49283,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49283,96): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(49285,51): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49298,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49300,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49304,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49304,112): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49310,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49319,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49331,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49332,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(49338,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49341,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49342,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49345,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49348,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49349,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49358,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49369,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(49369,26): run-time error CSS1035: Expected colon, found '{'
(49376,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49378,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49388,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(49391,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(49406,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49409,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49422,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49424,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49428,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49429,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49440,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49449,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49452,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49453,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49475,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49476,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(49486,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(49486,79): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(49487,37): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(49487,79): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(49488,35): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(49488,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(49500,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49504,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49509,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49520,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49526,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49531,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49535,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49536,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49576,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49594,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49600,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49607,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49613,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49614,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49624,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49626,44): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(49626,83): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49628,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(49628,80): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49630,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49630,74): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49633,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(49633,88): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49641,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49647,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49648,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49657,64): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49659,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49659,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49660,68): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49662,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(49664,40): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(49668,36): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(49668,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(49669,36): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(49669,78): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(49670,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(49670,75): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(49671,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49671,68): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49674,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49675,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49678,37): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(49678,91): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49682,77): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49684,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49686,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49686,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49690,47): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49690,91): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49691,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49691,90): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49693,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49694,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(49694,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(49695,41): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(49695,83): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(49698,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49699,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49702,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49702,90): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49703,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49703,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(49707,79): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49708,81): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49711,54): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49721,77): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49723,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49727,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(49733,53): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49735,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(49736,39): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49737,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49738,40): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(49740,45): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(49741,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49744,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49745,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49750,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49753,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49753,60): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(49757,62): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49763,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49765,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49769,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49770,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49772,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49774,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49778,50): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(49780,48): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(49787,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49789,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49799,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49811,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49816,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(49836,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49837,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49846,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49847,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49853,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49859,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49864,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49865,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(49874,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49877,45): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(49878,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49891,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(49902,37): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(49904,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49905,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(49923,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(49930,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(49931,17): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(49939,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49940,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49943,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49950,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49951,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49956,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(49969,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(49975,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(49979,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(49980,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(49994,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(49997,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(50006,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50013,74): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(50042,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50045,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50046,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50050,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50055,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50064,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50065,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50082,35): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50083,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50087,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50097,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50104,22): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50105,28): run-time error CSS1039: Token not allowed after unary operator: '-status-success-border'
(50113,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50133,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50136,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50138,64): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50139,64): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50141,48): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50151,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50154,125): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50155,28): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50159,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50159,67): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50160,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50163,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50164,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50165,99): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(50166,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50172,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50172,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50173,121): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50174,89): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50174,132): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50175,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50176,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50177,116): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50180,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50181,232): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50181,263): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50182,76): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50183,188): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(50183,230): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50183,285): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50184,34): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50185,149): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50186,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50187,51): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50188,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50188,86): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50189,117): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50191,146): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50193,191): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50193,228): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50193,277): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50204,37): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50205,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream'
(50205,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50208,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50209,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50210,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50213,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50214,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50216,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50219,75): run-time error CSS1039: Token not allowed after unary operator: '-cm-right'
(50223,43): run-time error CSS1039: Token not allowed after unary operator: '-cm-pane-h'
(50226,168): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50227,96): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50229,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50230,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50232,105): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50234,77): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50241,65): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(50245,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50245,142): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50248,118): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50250,30): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50251,116): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50252,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50253,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50254,142): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50255,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-magenta'
(50261,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50261,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50262,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50265,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50266,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50267,52): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50269,27): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50270,75): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50271,141): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50272,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50273,24): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50274,28): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50275,32): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50278,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50279,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50279,54): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50281,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50281,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50281,122): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(50285,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50285,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50286,17): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50288,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50288,84): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50289,35): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50290,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50290,93): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50290,132): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50295,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50300,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50300,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50304,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50306,33): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50306,112): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50307,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50307,112): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50308,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50308,110): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50309,38): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50310,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50312,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50315,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(50315,80): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50316,29): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50317,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50318,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50319,48): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50323,56): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50324,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50324,114): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(50325,56): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50326,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50326,134): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50327,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50329,64): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50330,82): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50331,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50331,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50332,30): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50336,36): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50336,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50338,124): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(50338,178): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50339,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50340,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50342,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50343,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50345,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50345,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50346,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50347,67): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(50349,54): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50350,59): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50351,82): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50352,54): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50352,96): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50355,29): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50355,72): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50356,45): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50357,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50359,77): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50360,63): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50361,135): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50364,176): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50365,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50365,85): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50365,136): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50366,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50366,79): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50366,126): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50369,129): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50369,168): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50369,219): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50371,41): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(50371,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50371,126): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50374,127): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50375,39): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(50378,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50378,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-cream-2'
(50381,50): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50381,91): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50381,141): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50382,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50383,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(50383,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50384,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50384,83): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50387,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50390,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50390,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50391,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50391,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50392,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50392,90): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50394,86): run-time error CSS1039: Token not allowed after unary operator: '-bh-social-accent'
(50396,51): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50399,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50399,144): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50401,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50402,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50404,54): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50404,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(50405,62): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50408,99): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50408,142): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50409,122): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50410,33): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50411,128): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50413,159): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50414,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50415,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50417,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50418,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50420,86): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50421,117): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50423,117): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50423,169): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50426,86): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50426,144): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50434,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50434,108): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50435,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50444,177): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50445,118): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50452,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50452,88): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50452,129): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50453,69): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50453,102): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50454,66): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50454,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50455,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50459,50): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50460,32): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50461,43): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50461,87): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50461,192): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50462,65): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50464,49): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50467,63): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50468,69): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50472,156): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50472,238): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50472,272): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50476,104): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50477,39): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50487,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50488,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50488,106): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50489,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50489,109): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50490,129): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50493,183): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50493,233): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50494,71): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50496,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50497,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50497,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50498,92): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(50499,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50499,75): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50499,127): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50503,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50505,71): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50508,53): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50510,138): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50510,179): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50510,211): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50511,47): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50511,91): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50511,133): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50512,94): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(50512,149): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50514,151): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(50514,185): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50516,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50517,32): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50518,53): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50519,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50523,35): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50524,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50533,56): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50533,97): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50533,129): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50534,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50534,80): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50535,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50535,87): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50540,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50546,194): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50547,34): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50547,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50548,34): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50548,78): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50549,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50549,76): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(50552,111): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50553,111): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(50554,111): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50555,115): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50556,121): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50592,37): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(50592,78): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(50593,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50593,76): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(50594,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50594,71): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50595,37): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(50595,79): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(50596,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50596,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50597,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(50597,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(50618,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50624,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50625,134): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50625,167): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50626,52): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(50627,52): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(50628,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50629,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50634,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50635,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50643,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50650,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(50650,90): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50650,131): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(50664,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50665,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(50666,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50680,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50680,85): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50680,128): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50682,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50683,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50683,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50703,28): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(50704,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50704,56): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50707,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50707,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50709,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50710,42): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(50711,83): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50715,100): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(50717,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50723,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(50723,62): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(50755,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(50756,33): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(50756,85): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(50765,114): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50766,151): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50766,195): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(50766,227): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50767,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50767,84): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50770,71): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50771,47): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(50772,86): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(50772,129): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50773,178): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50774,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50778,149): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50780,55): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(50780,94): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(50780,132): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50781,48): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50782,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(50790,14): run-time error CSS1031: Expected selector, found '/'
(50790,14): run-time error CSS1025: Expected comma or open brace, found '/'
(50798,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50800,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50801,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50807,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50811,121): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50815,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50818,75): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50819,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50825,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50827,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50835,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50844,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(50845,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50847,102): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50848,129): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(50849,88): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50851,105): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(50852,116): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50853,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50856,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50865,173): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50865,206): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50866,87): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50867,50): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50868,57): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50869,75): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(50870,41): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50870,106): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50876,49): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50877,65): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50881,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50882,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50887,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50888,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50891,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(50895,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50900,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50900,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50905,57): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(50906,40): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50908,73): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50909,73): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50911,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50911,55): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50913,29): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50915,37): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50918,34): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(50919,77): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50920,27): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(50922,26): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50923,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50923,75): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50924,25): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(50925,36): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50931,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50931,60): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(50932,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50935,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50935,72): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50937,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(50937,27): run-time error CSS1035: Expected colon, found '{'
(50938,114): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50939,42): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50940,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(50940,74): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50942,45): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50943,88): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50949,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50949,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50960,54): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(50961,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50964,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(50964,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(50965,28): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(50966,47): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(50978,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50979,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50984,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50985,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50986,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(50993,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(50994,35): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(50997,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51004,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51008,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51013,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51015,82): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51016,48): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51020,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-text'
(51036,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-cream-2'
(51037,28): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(51040,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-accent'
(51040,43): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51043,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-accent'
(51043,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51046,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51047,55): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(51049,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51049,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(51050,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(51051,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(51052,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-on-primary'
(51056,22): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-cream'
(51056,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51058,17): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(51060,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51064,40): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(51066,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51073,89): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51074,52): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51075,54): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51079,70): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(51081,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(51081,78): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51082,90): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51089,66): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(51091,59): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-line'
(51092,72): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51093,100): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-muted'
(51094,34): run-time error CSS1039: Token not allowed after unary operator: '-bh-rpt-ink'
(51107,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(51108,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51119,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51120,77): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51135,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51140,75): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51153,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(51153,62): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(51159,17): run-time error CSS1039: Token not allowed after unary operator: '-text-color'
(51159,70): run-time error CSS1039: Token not allowed after unary operator: '-border-color'
(51162,70): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(51163,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(51175,1): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,27): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,706): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,724): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,1533): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,1558): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,1597): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,1614): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,1710): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,1735): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,1918): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,1935): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,2175): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,2205): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,2668): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,2690): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,3225): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,3250): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,3495): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,3512): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,3814): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,3843): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,4346): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,4367): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,5023): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,5048): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,5346): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,5363): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,5782): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,5806): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,6231): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,6247): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,6726): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,6752): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,7381): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,7399): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,8088): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,8113): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,8904): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,8921): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,9825): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,9854): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,10112): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,10133): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,10600): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,10628): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,11215): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,11235): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,11944): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,11976): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,12503): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,12527): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,13132): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,13164): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,13691): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,13715): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,14320): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,14353): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,14880): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,14905): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,15513): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,15543): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,16070): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,16092): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,16691): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,16720): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,16954): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,16975): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,17334): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,17367): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,17625): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,17650): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,17989): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,18022): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,18200): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,18225): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,18484): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,18518): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,18696): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,18722): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,18984): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,19015): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,19275): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,19298): run-time error CSS1062: Expected semicolon or closing curly-brace, found '20%'
(51175,19633): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,19659): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,19686): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,19704): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,19791): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,19821): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,19978): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,20000): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,20229): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,20262): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,20423): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,20448): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,20690): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,20720): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,20877): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,20899): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,21128): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,21161): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,21322): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,21347): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,21589): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,21620): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,21775): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,21798): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,22028): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,22062): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,22221): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,22247): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,22490): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,22518): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,22673): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,22693): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,22914): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,22945): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23104): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,23127): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23361): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,23388): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23415): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,23434): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23524): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,23555): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23654): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,23677): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23851): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,23885): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,23988): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,24014): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,24201): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,24232): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,24333): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,24356): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,24532): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,24566): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,24671): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,24697): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,24886): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,24918): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25017): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,25041): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25218): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,25253): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25356): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,25383): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25573): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,25602): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25703): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,25724): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,25894): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,25926): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,26031): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,26055): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,26238): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,26262): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,27429): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,27445): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,28739): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,28766): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,29409): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,29428): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,30218): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,30245): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,30888): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,30907): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,31697): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,31725): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,32016): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,32036): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,32533): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,32561): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,32852): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,32872): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,33369): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,33401): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,33700): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,33724): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,34179): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,34212): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,34337): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,34362): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,34644): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,34672): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,34927): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,34947): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,35268): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,35304): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,35577): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,35605): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,35968): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,36005): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,36280): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,36309): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,36677): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,36711): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,36982): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,37008): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,37363): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,37398): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,37675): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,37702): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,38066): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,38095): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,38292): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,38313): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,38579): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,38616): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,38831): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,38860): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,39168): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,39206): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,39427): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,39457): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,39774): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,39809): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,40026): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,40053): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,40357): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,40393): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,40612): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,40640): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,40949): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,40974): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,41635): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,41652): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,42422): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,42454): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,42793): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,42817): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,43234): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,43260): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,43449): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,43467): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,43716): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,43743): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,43872): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,43891): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,44083): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,44109): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,44201): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,44219): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,44371): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,44401): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,44907): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,44929): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,45507): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,45537): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,46043): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,46065): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,46643): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,46674): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,47180): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,47203): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,47784): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,47812): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,48318): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,48338): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,48910): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,48937): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,49042): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,49061): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,49229): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,49260): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,49836): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,49859): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,50510): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,50541): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,50853): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,50876): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,51263): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,51295): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,51609): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,51633): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,52025): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,52054): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,52630): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,52651): run-time error CSS1062: Expected semicolon or closing curly-brace, found '40%'
(51175,53296): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,53327): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,53483): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,53506): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,53737): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,53768): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,53924): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,53947): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,54178): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,54210): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,54364): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,54388): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,54620): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,54649): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,54803): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,54824): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,55047): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,55079): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,55232): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,55256): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,55487): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,55519): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,55674): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,55698): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,55931): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,55964): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,56117): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,56142): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,56376): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes'
(51175,56406): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51175,56561): run-time error CSS1019: Unexpected token, found '@keyframes'
(51175,56583): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(51180,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51361,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(51378,29): run-time error CSS1039: Token not allowed after unary operator: '-toolbar-height'
(51396,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51405,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51410,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51422,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51426,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51434,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(51446,30): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51457,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51522,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51542,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51547,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51553,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(51566,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51583,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51610,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51620,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51637,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51674,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(51702,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51712,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(51722,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(51726,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51731,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(51736,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51775,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51780,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51808,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(51811,31): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent-soft'
(51814,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51817,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51818,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51819,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(51827,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51830,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51834,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51841,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(51842,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51843,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51846,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51850,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(51851,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(51855,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(51856,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51857,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51861,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(51867,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51868,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51869,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51873,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51874,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51875,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51879,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51880,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51881,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51884,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51885,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51886,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51890,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(51891,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(51894,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51897,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(51900,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(51904,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(51905,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(51906,24): run-time error CSS1039: Token not allowed after unary operator: '-border-strong'
(52030,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52031,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52035,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(52057,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(52062,30): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(52063,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52067,25): run-time error CSS1039: Token not allowed after unary operator: '-danger'
(52075,26): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52087,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52089,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52090,21): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(52095,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52121,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52122,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52136,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52145,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52161,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52174,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52175,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52178,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52186,57): run-time error CSS1030: Expected identifier, found '>'
(52186,59): run-time error CSS1030: Expected identifier, found '.'
(52186,79): run-time error CSS1031: Expected selector, found ')'
(52186,79): run-time error CSS1025: Expected comma or open brace, found ')'
(52204,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52205,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52206,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52234,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52245,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52246,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52269,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52270,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52272,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52301,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52312,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52325,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52326,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52339,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52349,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52368,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52377,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-dark'
(52413,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52414,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52416,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52426,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52435,21): run-time error CSS1030: Expected identifier, found '.'
(52435,38): run-time error CSS1031: Expected selector, found ')'
(52435,38): run-time error CSS1025: Expected comma or open brace, found ')'
(52440,21): run-time error CSS1030: Expected identifier, found '.'
(52440,38): run-time error CSS1031: Expected selector, found ')'
(52440,38): run-time error CSS1025: Expected comma or open brace, found ')'
(52455,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52511,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52512,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52543,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52547,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52551,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52556,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(52560,22): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(52568,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(52572,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52576,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52580,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52593,39): run-time error CSS1030: Expected identifier, found '.'
(52593,62): run-time error CSS1031: Expected selector, found ')'
(52593,62): run-time error CSS1025: Expected comma or open brace, found ')'
(52609,47): run-time error CSS1030: Expected identifier, found '.'
(52609,67): run-time error CSS1031: Expected selector, found ')'
(52609,67): run-time error CSS1025: Expected comma or open brace, found ')'
(52634,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52650,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(52651,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52662,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52663,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52664,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52675,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(52676,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52686,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52687,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52693,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(52694,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52703,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52705,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52711,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52712,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52713,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(52718,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52719,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(52720,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52724,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(52725,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52729,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52730,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-soft'
(52735,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(52760,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52761,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52788,31): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52796,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52804,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52810,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52819,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52825,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52827,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52835,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52842,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52847,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(52848,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(52855,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52856,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52876,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52882,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(52883,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52885,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52895,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(52895,72): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52902,17): run-time error CSS1039: Token not allowed after unary operator: '-text-tertiary'
(52910,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52916,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52917,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52925,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52932,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(52942,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52957,46): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(52957,72): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52965,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(52966,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(52969,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(52978,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(53020,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(53022,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(53029,31): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(53045,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(53083,27): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-thumb'
(53086,28): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-thumb'
(53089,28): run-time error CSS1039: Token not allowed after unary operator: '-scrollbar-thumb-hover'
(53096,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(53097,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(53104,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(53105,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(53108,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(53109,32): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(53187,21): run-time error CSS1030: Expected identifier, found '>'
(53187,36): run-time error CSS1031: Expected selector, found ')'
(53187,36): run-time error CSS1025: Expected comma or open brace, found ')'
(53722,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(53723,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(53727,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(53732,36): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(53737,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(53753,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(53754,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(53757,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(53758,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(53762,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(53777,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(53779,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(53799,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(53800,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(53803,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(53804,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(53863,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(53895,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(53971,14): run-time error CSS1039: Token not allowed after unary operator: '-wl-forecast-base-bg'
(53972,14): run-time error CSS1039: Token not allowed after unary operator: '-wl-forecast-base-bg'
(53973,14): run-time error CSS1039: Token not allowed after unary operator: '-wl-forecast-stripe-color'
(53974,14): run-time error CSS1039: Token not allowed after unary operator: '-wl-forecast-stripe-color'
(53990,14): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-border'
(53991,14): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-border'
(54018,45): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-bg'
(54018,78): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-fg'
(54018,118): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-border'
(54019,45): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-bg'
(54019,78): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-fg'
(54019,118): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-border'
(54020,45): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-bg'
(54020,78): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-fg'
(54020,118): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-border'
(54021,45): run-time error CSS1039: Token not allowed after unary operator: '-es-active-bg'
(54021,78): run-time error CSS1039: Token not allowed after unary operator: '-es-active-fg'
(54021,118): run-time error CSS1039: Token not allowed after unary operator: '-es-active-border'
(54022,45): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-bg'
(54022,78): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-fg'
(54022,118): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-border'
(54038,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(54039,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54040,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54047,23): run-time error CSS1039: Token not allowed after unary operator: '-bh-fa-family'
(54049,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54056,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(54079,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54100,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54101,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54112,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54113,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(54115,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(54123,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(54124,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(54125,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54128,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54135,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54137,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54141,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(54154,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(54155,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54161,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(54162,10): run-time error CSS1035: Expected colon, found '{'
(54180,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(54181,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54188,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54194,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54211,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(54212,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(54232,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54253,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54329,61): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-border'
(54333,14): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-bg'
(54334,14): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-bg'
(54338,17): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-fg'
(54339,31): run-time error CSS1039: Token not allowed after unary operator: '-es-provisional-border'
(54342,61): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-border'
(54344,22): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-bg'
(54345,17): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-fg'
(54346,31): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-border'
(54349,61): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-border'
(54351,22): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-bg'
(54352,17): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-fg'
(54353,31): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-border'
(54356,61): run-time error CSS1039: Token not allowed after unary operator: '-es-active-border'
(54358,22): run-time error CSS1039: Token not allowed after unary operator: '-es-active-bg'
(54359,17): run-time error CSS1039: Token not allowed after unary operator: '-es-active-fg'
(54360,31): run-time error CSS1039: Token not allowed after unary operator: '-es-active-border'
(54363,61): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-border'
(54365,22): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-bg'
(54366,17): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-fg'
(54367,31): run-time error CSS1039: Token not allowed after unary operator: '-es-closed-border'
(54396,28): run-time error CSS1039: Token not allowed after unary operator: '-block-color'
(54396,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54397,17): run-time error CSS1039: Token not allowed after unary operator: '-block-text-color'
(54420,17): run-time error CSS1039: Token not allowed after unary operator: '-block-text-color'
(54464,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(54465,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54482,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54488,43): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54489,58): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(54530,17): run-time error CSS1039: Token not allowed after unary operator: '-actual-pct'
(54531,22): run-time error CSS1039: Token not allowed after unary operator: '-wl-actual-progress-bg'
(54535,22): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(54544,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54557,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54558,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(54559,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54566,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54568,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54577,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(54588,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(54590,63): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(54591,63): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(54592,63): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(54593,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54594,63): run-time error CSS1039: Token not allowed after unary operator: '-status-info'
(54616,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(54616,72): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(54617,39): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-bg'
(54617,72): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-fg'
(54618,39): run-time error CSS1039: Token not allowed after unary operator: '-es-active-bg'
(54618,72): run-time error CSS1039: Token not allowed after unary operator: '-es-active-fg'
(54619,39): run-time error CSS1039: Token not allowed after unary operator: '-eh-under-bg'
(54619,72): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(54620,39): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(54620,72): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(54623,39): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(54623,72): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(54624,39): run-time error CSS1039: Token not allowed after unary operator: '-es-active-bg'
(54624,72): run-time error CSS1039: Token not allowed after unary operator: '-es-active-fg'
(54631,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(54632,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54647,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(54652,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54657,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(54664,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54671,37): run-time error CSS1039: Token not allowed after unary operator: '-brand-secondary'
(54672,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(54675,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54697,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54712,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54713,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54726,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54730,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54739,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(54740,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54754,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54771,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54788,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(54791,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(54799,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54800,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54803,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(54804,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54810,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(54821,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54829,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54847,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(54848,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54852,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(54862,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54894,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(54913,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(54914,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54915,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54930,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(54956,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(54983,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(54984,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(54985,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(54999,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(55000,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-dark'
(55015,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55019,31): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(55020,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(55021,34): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55032,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(55033,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(55055,40): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(55056,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger'
(55057,37): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55066,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55080,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(55098,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(55099,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55106,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55114,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55117,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(55118,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55121,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(55128,50): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(55129,50): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(55130,50): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(55140,52): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(55141,52): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(55142,52): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(55157,22): run-time error CSS1039: Token not allowed after unary operator: '-conflict-overlay'
(55162,17): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(55165,17): run-time error CSS1039: Token not allowed after unary operator: '-conflict-icon'
(55174,64): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55184,46): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(55264,22): run-time error CSS1039: Token not allowed after unary operator: '-legacy-bg'
(55265,17): run-time error CSS1039: Token not allowed after unary operator: '-legacy-fg'
(55266,28): run-time error CSS1039: Token not allowed after unary operator: '-legacy-border'
(55278,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(55279,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55296,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(55305,29): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(55312,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(55313,61): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(55316,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55332,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple-tint'
(55333,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55339,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(55342,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(55343,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55352,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55357,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55368,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55370,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55373,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55388,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55394,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(55425,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(55441,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(55454,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(55456,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55469,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(55476,21): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(55532,112): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55548,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55583,38): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(55719,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(55721,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(55723,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55727,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(55766,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(55771,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(55775,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55784,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55785,22): run-time error CSS1039: Token not allowed after unary operator: '-card-subtle-bg'
(55786,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(55790,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(55794,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(55904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(55915,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56070,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56075,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56076,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56076,110): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56083,66): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(56084,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56095,45): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(56095,72): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(56096,45): run-time error CSS1039: Token not allowed after unary operator: '-eh-under-bg'
(56096,72): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(56100,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56119,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56143,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56148,42): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56149,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56149,112): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56151,73): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(56152,38): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56164,50): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(56164,86): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(56165,50): run-time error CSS1039: Token not allowed after unary operator: '-eh-under-bg'
(56165,86): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(56166,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56166,86): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(56187,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56192,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56193,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56193,121): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56198,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(56213,71): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56270,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56272,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(56289,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56290,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56302,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56338,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56342,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56343,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56356,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(56357,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56369,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56370,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56377,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56388,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56402,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(56405,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(56408,35): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56413,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56459,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(56474,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56479,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56502,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56538,46): run-time error CSS1039: Token not allowed after unary operator: '-weeks'
(56538,64): run-time error CSS1039: Token not allowed after unary operator: '-col-w'
(56541,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56552,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(56563,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56568,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56573,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(56578,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56604,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56608,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56615,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56642,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56643,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56664,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56665,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56666,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56680,50): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56683,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56686,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56688,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56693,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56704,34): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(56726,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56734,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56741,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56757,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56771,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56772,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56802,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56807,20): run-time error CSS1030: Expected identifier, found '.'
(56807,35): run-time error CSS1031: Expected selector, found ')'
(56807,35): run-time error CSS1025: Expected comma or open brace, found ')'
(56818,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56823,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56836,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(56837,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56838,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56850,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56859,22): run-time error CSS1039: Token not allowed after unary operator: '-conflict-overlay'
(56860,17): run-time error CSS1039: Token not allowed after unary operator: '-conflict-icon'
(56869,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56873,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56876,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56879,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56879,73): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56879,99): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56879,124): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(56886,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56894,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56908,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56909,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(56912,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56919,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56927,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(56928,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(56932,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(56938,24): run-time error CSS1039: Token not allowed after unary operator: '-chip-color'
(56938,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56942,22): run-time error CSS1039: Token not allowed after unary operator: '-chip-color'
(56942,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56943,24): run-time error CSS1039: Token not allowed after unary operator: '-chip-color'
(56943,42): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56955,22): run-time error CSS1039: Token not allowed after unary operator: '-chip-color'
(56955,40): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56976,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(56977,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56987,29): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56989,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(56995,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(56996,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57014,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(57017,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(57018,24): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(57019,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57022,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(57023,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57031,34): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(57039,22): run-time error CSS1039: Token not allowed after unary operator: '-conflict-overlay'
(57048,17): run-time error CSS1039: Token not allowed after unary operator: '-conflict-icon'
(57061,30): run-time error CSS1039: Token not allowed after unary operator: '-lane'
(57067,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(57098,86): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57137,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57150,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57154,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57161,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57165,38): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(57168,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57183,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57184,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57190,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(57191,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57194,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(57201,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple-tint'
(57202,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57209,70): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(57210,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57211,31): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57215,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57216,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(57222,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57241,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57246,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57250,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(57251,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57258,22): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-bg'
(57259,28): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-border'
(57272,17): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-fg'
(57276,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57293,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57294,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57296,38): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-fg'
(57296,75): run-time error CSS1039: Token not allowed after unary operator: '-es-pending-border'
(57297,38): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(57297,75): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(57298,38): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-fg'
(57298,75): run-time error CSS1039: Token not allowed after unary operator: '-es-draft-border'
(57306,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(57310,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(57319,59): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57320,59): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(57321,59): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(57343,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(57344,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(57359,17): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57363,17): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57366,17): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57370,17): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57378,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(57380,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(57384,17): run-time error CSS1039: Token not allowed after unary operator: '-text-strong'
(57385,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(57392,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57414,28): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(57419,28): run-time error CSS1039: Token not allowed after unary operator: '-eh-under-bg'
(57424,28): run-time error CSS1039: Token not allowed after unary operator: '-eh-over-bg'
(57425,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57430,28): run-time error CSS1039: Token not allowed after unary operator: '-eh-under-bg'
(57431,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57436,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57441,28): run-time error CSS1039: Token not allowed after unary operator: '-bg-elevated'
(57534,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57554,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57556,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(57567,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57571,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(57572,31): run-time error CSS1039: Token not allowed after unary operator: '-border-medium-dark'
(57577,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(57616,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(57617,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57643,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57645,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57658,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57661,41): run-time error CSS1039: Token not allowed after unary operator: '-bg-gold-tint'
(57665,51): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57674,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(57676,50): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57680,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(57681,36): run-time error CSS1039: Token not allowed after unary operator: '-eh-ontrack'
(57682,39): run-time error CSS1039: Token not allowed after unary operator: '-eh-under'
(57683,38): run-time error CSS1039: Token not allowed after unary operator: '-eh-over'
(57717,122): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57723,62): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57724,117): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(57727,75): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(57734,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(57735,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(57740,49): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57746,35): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(57751,59): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(57752,69): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(57753,68): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(57754,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(57991,35): run-time error CSS1039: Token not allowed after unary operator: '-border-medium'
(57994,31): run-time error CSS1039: Token not allowed after unary operator: '-border-medium-dark'
(58035,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58036,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(58051,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58053,29): run-time error CSS1039: Token not allowed after unary operator: '-border-medium'
(58061,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary-light'
(58066,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted-dark'
(58067,24): run-time error CSS1039: Token not allowed after unary operator: '-border-medium-dark'
(58079,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58080,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58082,59): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58083,95): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58084,58): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58085,59): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58086,60): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58087,42): run-time error CSS1039: Token not allowed after unary operator: '-status-success-bg'
(58088,46): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(58089,42): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(58090,46): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(58091,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(58092,46): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(58095,43): run-time error CSS1039: Token not allowed after unary operator: '-status-info-bg'
(58096,47): run-time error CSS1039: Token not allowed after unary operator: '-status-info-text'
(58097,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58133,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(58134,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(58135,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(58138,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(58139,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58144,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58169,35): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58170,42): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(58171,50): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(58172,33): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58173,35): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58174,48): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(58183,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58184,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58185,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(58189,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58190,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58191,17): run-time error CSS1039: Token not allowed after unary operator: '-text-on-dark'
(58199,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58204,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58206,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58223,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58226,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58228,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58229,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58232,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58243,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58244,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58261,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58270,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58274,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58279,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58280,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58290,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58305,83): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58306,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58307,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58307,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58314,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58330,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58331,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(58332,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58340,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58343,22): run-time error CSS1039: Token not allowed after unary operator: '-cream-lighter'
(58344,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58349,50): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58349,94): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58350,73): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58356,58): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58364,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58365,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58371,122): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58384,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58385,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58386,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58391,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58391,82): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58392,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58392,86): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58392,131): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58397,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58398,58): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58398,91): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58398,132): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58399,85): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58417,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(58418,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58427,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58435,124): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58437,107): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58439,55): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58442,124): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58442,160): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58459,69): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58461,58): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58461,121): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58478,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58482,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58494,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58495,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58510,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58511,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58531,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58539,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58545,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58551,85): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58554,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58555,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58581,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58604,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58605,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58607,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58611,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58612,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58613,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(58639,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58643,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(58644,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58648,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint-2'
(58664,29): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58669,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58686,24): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58698,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(58732,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58750,53): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58783,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58786,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58791,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(58796,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(58797,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58803,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58807,59): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58810,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(58814,41): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58816,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58817,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58837,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58840,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58845,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58853,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58860,51): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(58861,51): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58861,91): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58870,73): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(58878,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58882,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58888,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58890,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-card'
(58890,37): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(58901,47): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(58904,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58908,70): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58909,56): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58913,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58914,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(58915,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58927,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58929,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58932,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58933,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58951,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58955,56): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58955,96): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58970,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(58971,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58974,71): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58975,70): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(58976,57): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(58976,97): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58982,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(58986,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(58993,77): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59002,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(59003,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59008,99): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59010,76): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(59011,83): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59012,77): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59013,54): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59014,61): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(59014,101): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59022,70): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59024,115): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59027,41): run-time error CSS1039: Token not allowed after unary operator: '-state-warning-text'
(59028,39): run-time error CSS1039: Token not allowed after unary operator: '-state-success-text'
(59038,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold'
(59039,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold'
(59051,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59056,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold-dark'
(59057,53): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold'
(59059,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59064,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(59065,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59074,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold'
(59076,53): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59077,39): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59083,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(59084,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59085,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-gold'
(59091,34): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59095,38): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59096,34): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59101,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(59102,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59105,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(59106,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59109,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(59120,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59124,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59129,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59132,44): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59146,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(59147,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59157,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59173,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59175,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59179,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59207,16): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59232,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59242,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(59277,22): run-time error CSS1039: Token not allowed after unary operator: '-card-bg'
(59278,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59298,42): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59299,40): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59307,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(59308,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(59309,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59313,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59314,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59335,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(59336,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59352,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59361,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(59367,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(59368,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59381,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59382,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59390,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59391,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59401,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59417,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(59426,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59430,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59434,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59443,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59447,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59451,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59473,17): run-time error CSS1039: Token not allowed after unary operator: '-text-secondary'
(59501,17): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(59532,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59534,35): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59537,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(59545,50): run-time error CSS1039: Token not allowed after unary operator: '-page-title-color'
(59575,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59577,73): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59591,98): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59594,49): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(59595,45): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59596,58): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59597,46): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59598,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59619,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59619,114): run-time error CSS1039: Token not allowed after unary operator: '-eh-tint'
(59620,67): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59621,59): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59623,36): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59627,128): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59627,178): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59628,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59629,33): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59634,51): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59635,113): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59639,98): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59639,186): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59640,33): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59642,66): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59643,41): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(59643,92): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(59646,88): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59651,136): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59653,67): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(59655,69): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(59656,77): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(59657,55): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(59676,40): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(59676,92): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59676,155): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59677,50): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59678,50): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59682,28): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(59692,95): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59693,136): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59693,178): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59695,68): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59698,24): run-time error CSS1039: Token not allowed after unary operator: '-status-success-text'
(59699,25): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59702,58): run-time error CSS1039: Token not allowed after unary operator: '-status-success'
(59703,35): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(59706,45): run-time error CSS1039: Token not allowed after unary operator: '-eh-tint'
(59706,100): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59707,25): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59708,33): run-time error CSS1039: Token not allowed after unary operator: '-eh-warn-bg'
(59708,78): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(59708,132): run-time error CSS1039: Token not allowed after unary operator: '-status-warning'
(59709,30): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59712,89): run-time error CSS1039: Token not allowed after unary operator: '-eh-tint'
(59712,143): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59713,44): run-time error CSS1039: Token not allowed after unary operator: '-brand-purple'
(59714,48): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(59714,152): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59729,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59730,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59731,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59732,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59733,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59734,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59735,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59738,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59739,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59740,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59741,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59742,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59743,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59744,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(59752,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(59753,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(59757,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59762,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(59763,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(59764,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59776,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(59777,28): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(59781,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59786,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(59787,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(59788,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(59806,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59807,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59810,22): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59815,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59826,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59833,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59837,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59840,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(59841,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59846,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(59847,33): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59854,29): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59857,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(59858,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(59870,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59876,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(59879,47): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(59880,49): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59899,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(59908,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59911,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59923,32): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(59927,67): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(59941,33): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-ghost-border'
(59957,39): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-actual'
(59958,39): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-forecast'
(59959,39): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-over'
(59963,39): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-over'
(59971,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(59972,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(59973,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(59974,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(59984,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59994,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59998,85): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(59999,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60014,36): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60016,38): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60018,56): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60019,56): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(60024,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60038,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60066,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60068,59): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(60068,91): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(60077,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60089,33): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-ghost-border'
(60097,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(60098,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(60099,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(60100,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(60110,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60123,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60132,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60137,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60140,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60141,54): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60142,63): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60142,101): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60151,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(60155,62): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60164,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60166,56): run-time error CSS1039: Token not allowed after unary operator: '-text-primary'
(60169,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(60172,65): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60180,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60195,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(60204,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60230,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60239,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60258,23): run-time error CSS1039: Token not allowed after unary operator: '-bhde-val'
(60258,53): run-time error CSS1039: Token not allowed after unary operator: '-bhde-thumb'
(60258,81): run-time error CSS1039: Token not allowed after unary operator: '-bhde-thumb'
(60264,46): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60265,55): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60277,35): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60278,55): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(60278,104): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(60279,55): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(60279,103): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(60286,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60290,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60294,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60294,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60306,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60310,33): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60313,69): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60315,69): run-time error CSS1039: Token not allowed after unary operator: '-text-muted-dark'
(60316,67): run-time error CSS1039: Token not allowed after unary operator: '-border-dark'
(60328,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60329,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60330,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60337,38): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(60339,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60343,52): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60343,84): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60343,122): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60344,57): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60344,95): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60353,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60357,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60361,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60362,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60366,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60373,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60374,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60378,54): run-time error CSS1039: Token not allowed after unary operator: '-bg-purple-tint'
(60382,53): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60382,85): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60382,115): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60383,48): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60388,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(60389,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(60396,38): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60409,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60418,22): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(60430,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-accent'
(60435,22): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60442,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(60443,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-a'
(60444,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(60445,14): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-leave-b'
(60448,53): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60460,32): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60462,52): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(60463,52): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60471,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60473,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60478,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60479,24): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60489,17): run-time error CSS1039: Token not allowed after unary operator: '-text-body'
(60502,22): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60508,22): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-ghost-border'
(60514,22): run-time error CSS1039: Token not allowed after unary operator: '-bhde-col-actual'
(60517,53): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60523,17): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60528,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60531,55): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60552,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60560,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60563,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60564,17): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60569,22): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-bg'
(60570,24): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-border'
(60571,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(60574,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60575,24): run-time error CSS1039: Token not allowed after unary operator: '-brand-danger'
(60576,17): run-time error CSS1039: Token not allowed after unary operator: '-status-danger-text'
(60594,22): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-bg'
(60595,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(60596,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(60599,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60600,24): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-border'
(60601,17): run-time error CSS1039: Token not allowed after unary operator: '-status-warning-text'
(60606,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(60607,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(60653,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60657,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60671,39): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(60683,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60698,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60713,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-slate-tint'
(60714,28): run-time error CSS1039: Token not allowed after unary operator: '-brand-primary'
(60736,39): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(60755,32): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60759,26): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60768,39): run-time error CSS1039: Token not allowed after unary operator: '-border-subtle'
(60775,21): run-time error CSS1039: Token not allowed after unary operator: '-text-muted'
(60782,39): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(60794,1): run-time error CSS1019: Unexpected token, found '@keyframes'
(60795,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '0%'
(60816,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60817,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(60818,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60826,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60830,33): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(60930,48): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(60932,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60933,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(60934,18): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(60976,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(60995,35): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(61033,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(61034,28): run-time error CSS1039: Token not allowed after unary operator: '-border-light'
(61096,22): run-time error CSS1039: Token not allowed after unary operator: '-bg-surface'
(61097,28): run-time error CSS1039: Token not allowed after unary operator: '-border-default'
(61194,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
(61195,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-muted'
(61196,14): run-time error CSS1039: Token not allowed after unary operator: '-bg-subtle'
 */
/* theme-tokens.css -- Dark Mode Token Definitions
   Light mode defaults in :root, dark mode overrides in [data-theme="dark"]
   All CSS files reference tokens via var(--token, #fallback) syntax */

:root {
    /* Brand */
    --brand-primary: #3d1a6f;
    --brand-accent: #fdb913;
    --brand-danger: #ed174c;
    --brand-magenta: #7d1d61;

    /* Icon fonts -- SSOT for the FontAwesome family. Site loads FA7 Pro (assets/fontawesome).
       Pseudo-element icons (::before/::after { content:'\fXXX' }) MUST reference these tokens,
       never a raw "Font Awesome 6 Free"/"Font Awesome 5 Free"/FA4 "FontAwesome" literal -- those
       families are NOT loaded and render as a tofu box. Class-based <i class="fa-solid fa-x">
       icons resolve via the FA stylesheet automatically and need no token.
       Next FA major upgrade = change these two lines only. Enforced by .claude/scripts/lint-fa-family.ps1. */
    --bh-fa-family: "Font Awesome 7 Pro", "Font Awesome 6 Pro", "Font Awesome 5 Free", "FontAwesome";
    --bh-fa-family-all: "Font Awesome 7 Pro", "Font Awesome 7 Brands", "Font Awesome 7 Duotone", "Font Awesome 7 Sharp", "Font Awesome 7 Sharp Duotone";

    /* Drag-to-reorder clone visual -- SSOT for the SortableJS drag-clone "pulled by the collar" tilt
       + lift. Consumed by .sortable-drag / .sortable-fallback / .nwc-file-drag-clone in BUZZHub.css.
       Change the drag look here once; never re-type the rotate/scale/shadow in a rule. */
    --bh-drag-tilt: rotate(-1.5deg) scale(1.02);
    --bh-drag-lift-shadow: drop-shadow(0 18px 40px rgba(61, 26, 111, 0.35));

    /* Surfaces */
    --bg-page: #f5f5f5;
    --bg-surface: #ffffff;
    --bg-card: #ffffff;                 /* alias for --bg-surface -- legacy callers (ActivityLog, Admin, ClientPortal, stories-calendar) reference --bg-card without ever defining it; aliasing prevents ghost-text bug in dark mode */
    --bg-subtle: #fafafa;
    --bg-muted: #f0f0f0;
    --bg-purple-tint: #f0ebf7;
    --bg-gold-tint: #fff5dc;
    --bg-slate-tint: #f1f0f4;           /* neutral grey-purple section band -- replaces gold for section headers */
    --bg-slate-tint-2: #f8f7fa;         /* gradient stop for slate band */
    --bg-danger-subtle: #fff5f5;

    /* Text */
    --text-primary: #333333;
    --text-body: #555555;
    --text-secondary: #666666;
    --text-tertiary: #888888;
    --text-muted: #999999;
    --text-on-dark: #ffffff;

    /* Page header */
    --page-title-color: #3d1a6f;

    /* Borders */
    --border-subtle: #e5e5ea;           /* quietest neutral border -- referenced ~60x app-wide but was undefined; centralised so dark mode can govern it */
    --border-light: #e9ecef;
    --border-default: #dddddd;
    --border-strong: #cccccc;
    --border-brand: #e0d4f0;
    --border-gold-soft: #e8dfa8;        /* muted gold, replaces aggressive 2px #fdb913 */
    --border-gold-softer: #f0e6b5;      /* even paler, for thin variants */

    /* Status */
    --status-success: #28a745;
    --status-success-bg: #d4edda;
    --status-success-text: #155724;
    --status-warning: #ffc107;
    --status-warning-bg: #fff3cd;
    --status-warning-text: #856404;
    --status-danger: #dc3545;
    --status-danger-bg: #f8d7da;
    --status-info: #17a2b8;
    --status-info-bg: #d1ecf1;
    --status-info-text: #0c5460;
    --status-success-border: #c3e6cb;
    --status-danger-border: #f5c6cb;
    --status-danger-text: #721c24;
    --status-warning-border: #ffeeba;
    --status-info-border: #bee5eb;

    /* Accents */
    --accent-purple: #6c5ce7;

    /* Shadows & Overlays */
    --shadow-color: rgba(0,0,0,0.1);
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.12);
    --overlay-bg: rgba(0,0,0,0.5);
    /* Subtle wash used by loading-state overlays (page-loader, bh-loading, kanban-loading, etc.) -- distinct from --overlay-bg which is for full modal backdrops. */
    --loader-overlay-bg: rgba(255,255,255,0.8);

    /* Scrollbar */
    --scrollbar-track: #f1f1f1;
    --scrollbar-thumb: #c1c1c1;
    --scrollbar-thumb-hover: #a1a1a1;
}

/* Dark mode overrides -- activated by data-theme="dark" on <html> */
/* WCAG AA contrast targets: 4.5:1 normal text, 3:1 large text on #141414 surface */
[data-theme="dark"] {
    /* Brand -- lifted for readability on dark backgrounds */
    --brand-primary: #a76bdf;       /* electric violet -- 5.2:1 on #141414, more presence than lavender */
    --brand-accent: #d4a824;        /* amber gold -- clean, rich, 6.4:1 contrast on #141414 */
    --brand-accent-bright: #fdb913; /* bright gold ONLY for active tab indicators */
    --brand-accent-soft: #8a6d18;   /* subtle warm gold for decorative-only borders */
    --brand-danger: #f44060;        /* vivid rose -- punchy red, 4.8:1 contrast */
    --brand-magenta: #d470b8;       /* magenta lifted */

    /* Surfaces */
    --bg-page: #0a0a0a;
    --bg-surface: #141414;
    --bg-card: #141414;                 /* dark-mode alias for --bg-surface */
    --bg-subtle: #1a1a1a;
    --bg-muted: #1e1e1e;
    --bg-purple-tint: #1e1430;
    --bg-gold-tint: #1e1a0e;        /* darker gold tint, less cream */
    --bg-slate-tint: #1c1a22;       /* dark slate section band -- pairs with light slate */
    --bg-slate-tint-2: #16151c;     /* gradient stop, dark */
    --bg-danger-subtle: #2a0f12;

    /* Text -- all comfortably pass WCAG AA on #141414.
       Dark-mode eyes need brighter muted tones than a naive inversion suggests;
       tertiary/muted bumped so "dim grey on black" stops feeling unreadable. */
    --text-primary: #e8e8e8;        /* 15:1 on #141414 */
    --text-body: #d4d4d4;           /* 12:1 -- body copy */
    --text-secondary: #bcbcbc;      /* 9:1 -- secondary labels */
    --text-tertiary: #a5a5a5;       /* 7:1 -- tertiary meta (was #909090 = 5.5:1, felt dim) */
    --text-muted: #b0b0b0;          /* 7.8:1 -- muted detail (was #959595 = 5.8:1, felt dark-grey-on-black) */
    --text-on-dark: #ffffff;

    /* Page header */
    --page-title-color: #e5d9ff;    /* soft lavender -- 13:1 on #141414 */

    /* Borders */
    --border-subtle: #232328;           /* subtle border, dark -- quieter than --border-default; replaces the near-white fallbacks that leaked into dark mode */
    --border-light: #1e1e1e;
    --border-default: #2a2a2a;
    --border-strong: #3a3a3a;
    --border-brand: #2a1a3a;
    --border-gold-soft: #3a3620;        /* muted dark gold, pairs with dark bg-gold-tint */
    --border-gold-softer: #2e2b1a;

    /* Status */
    --status-success: #28a745;
    --status-success-bg: #0d2818;
    --status-success-text: #6ddf8b;
    --status-warning: #ffc107;
    --status-warning-bg: #1a1608;
    --status-warning-text: #d4a824;
    --status-danger: #dc3545;
    --status-danger-bg: #2a0f12;
    --status-info: #17a2b8;
    --status-info-bg: #0a1e24;
    --status-info-text: #5dc8db;
    --status-success-border: #1a4a2a;
    --status-danger-border: #3a1520;
    --status-danger-text: #ff8a9a;
    --status-warning-border: #2a2010;
    --status-info-border: #0e2a30;

    /* Accents */
    --accent-purple: #9b8ce8;

    /* Shadows & Overlays */
    --shadow-color: rgba(0,0,0,0.4);
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
    --overlay-bg: rgba(0,0,0,0.7);
    --loader-overlay-bg: rgba(0,0,0,0.55);

    /* Scrollbar -- brand gold thumb for dark mode */
    --scrollbar-track: #1a1a1a;
    --scrollbar-thumb: var(--brand-accent, #d4a824);
    --scrollbar-thumb-hover: #fdb913;

    /* Bootstrap 4 native variable overrides */
    --primary: #fdb913;
    --secondary: #a76bdf;
    --blue: #a76bdf;
    --light: #1a1a1a;
    --dark: #e0e0e0;
}

/* Pseudo-element overrides for dark mode */
[data-theme="dark"] ::placeholder {
    color: var(--text-muted, #666) !important;
}
[data-theme="dark"] ::selection {
    background: var(--brand-primary, #a76bdf);
    color: #fff;
}

/* Native date/time/month/week picker indicator -- black glyph by default,
   invisible on dark surfaces. Invert + brighten to match icon-on-dark token. */
[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="datetime-local"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="month"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="week"]::-webkit-calendar-picker-indicator,
[data-theme="dark"] input[type="time"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(0.85);
    cursor: pointer;
    opacity: 0.9;
}

/* Scrollbar styling */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track, #f1f1f1); }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb, #c1c1c1); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover, #a1a1a1); }

/* =============================================
   Dark Mode Component Overrides
   Catches Bootstrap defaults and hardcoded values
   that the token migration could not reach
   ============================================= */

/* --- Body & Page --- */
[data-theme="dark"] body {
    background-color: var(--bg-page) !important;
    color: var(--text-primary) !important;
}

/* --- RTE-rendered surfaces in dark mode ---
   User-authored RTE content (tickets, AskRalph, Help articles, the editor itself, future RTE
   surfaces) carries inline style="color:rgb(0,0,0)" on every block from the editor's save path.
   Inline style beats normal CSS specificity, so the only way to override it is !important.
   Approach: dark surface + wildcard !important descendant rule forcing light text. Mirrors the
   existing pattern at RichTextEditor.css :659. Trade-off: user-pasted text colour is reset to
   light. Accepted for visual integration with dark mode chrome. Authorised inline 2026-05-02
   by George (option A from Documentation/rte-dark-paper-mockup.html). */
[data-theme="dark"] .ticket-update-bubble,
[data-theme="dark"] .ticket-details-html,
[data-theme="dark"] .helppage,
[data-theme="dark"] .askralph-msg-bubble,
[data-theme="dark"] .bh-rte-editor,
[data-theme="dark"] .bh-rte-paper,
[data-theme="dark"] .email-preview-body {
    background-color: #1e1e1e !important;
}
[data-theme="dark"] .ticket-update-bubble *,
[data-theme="dark"] .ticket-details-html *,
[data-theme="dark"] .helppage *,
[data-theme="dark"] .askralph-msg-bubble *,
[data-theme="dark"] .bh-rte-editor *,
[data-theme="dark"] .bh-rte-paper *,
[data-theme="dark"] .email-preview-body * {
    color: #e8e8e8 !important;
}
[data-theme="dark"] .ticket-update-bubble :is(h1, h2, h3, h4),
[data-theme="dark"] .ticket-details-html :is(h1, h2, h3, h4),
[data-theme="dark"] .helppage :is(h1, h2, h3, h4),
[data-theme="dark"] .askralph-msg-bubble :is(h1, h2, h3, h4),
[data-theme="dark"] .bh-rte-editor :is(h1, h2, h3, h4),
[data-theme="dark"] .bh-rte-paper :is(h1, h2, h3, h4),
[data-theme="dark"] .email-preview-body :is(h1, h2, h3, h4) {
    color: #e5d9ff !important;
}
[data-theme="dark"] .ticket-update-bubble a,
[data-theme="dark"] .ticket-details-html a,
[data-theme="dark"] .helppage a,
[data-theme="dark"] .askralph-msg-bubble a,
[data-theme="dark"] .bh-rte-editor a,
[data-theme="dark"] .bh-rte-paper a,
[data-theme="dark"] .email-preview-body a {
    color: #d4b3ff !important;
}
[data-theme="dark"] .ticket-update-bubble .update-meta,
[data-theme="dark"] .ticket-update-bubble .update-meta *,
[data-theme="dark"] .ticket-details-html .update-meta,
[data-theme="dark"] .ticket-details-html .update-meta * {
    color: #a5a5a5 !important;
}

/* --- Form Controls --- */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] select.form-control,
[data-theme="dark"] textarea.form-control {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-control[readonly] {
    background-color: var(--bg-subtle) !important;
    color: var(--text-tertiary) !important;
}
[data-theme="dark"] .input-group-text {
    background-color: var(--bg-muted);
    color: var(--text-secondary);
    border-color: var(--border-strong);
}

/* --- Nav Tabs --- */
[data-theme="dark"] .nav-tabs {
    border-bottom-color: var(--border-default) !important;
}
[data-theme="dark"] .nav-tabs .nav-link {
    background-color: var(--bg-subtle) !important;
    color: var(--text-secondary) !important;
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .nav-tabs .nav-link:hover {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--brand-primary) !important;
    color: var(--text-on-dark) !important;
    border-color: var(--brand-primary) !important;
    border-bottom-color: var(--brand-accent) !important;
}

/* --- Tab Content --- */
[data-theme="dark"] .tab-content {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-default) !important;
}

/* --- Cards --- */
[data-theme="dark"] .card {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-default) !important;
}
/* .card-header dark mode is in the consolidated .bh-gold-header block below */
[data-theme="dark"] .card-footer {
    background: var(--bg-subtle) !important;
    border-top-color: var(--border-default) !important;
}
/* Checkboxes and radio buttons - visible borders in dark mode */
[data-theme="dark"] .form-check-input {
    background-color: var(--bg-muted, #1e1e1e);
    border-color: var(--border-strong, #3a3a3a);
}
[data-theme="dark"] .form-check-input:checked {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}
[data-theme="dark"] .form-check-label {
    color: var(--text-secondary, #b0b0b0);
}
/* CRM contact/brand card body text */
[data-theme="dark"] .crm-contact-card .card-body {
    color: var(--text-primary, #e8e8e8);
}
[data-theme="dark"] .crm-contact-card .badge-contact {
    background-color: var(--bg-subtle, #1a1a1a);
    border-color: var(--border-default, #2a2a2a);
    color: var(--text-secondary, #b0b0b0);
}

/* --- Panels (BUZZHub custom) --- */
[data-theme="dark"] .panel h2,
[data-theme="dark"] .panelcollapsed h2 {
    background-color: var(--bg-subtle) !important;
    border-color: var(--border-default) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .panelcontent {
    background-color: var(--bg-surface) !important;
}

/* --- Tables --- */
[data-theme="dark"] .table {
    color: var(--text-primary);
}
[data-theme="dark"] .table thead th {
    background-color: var(--bg-subtle) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .table td,
[data-theme="dark"] .table th {
    border-color: var(--border-light) !important;
}
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--bg-subtle) !important;
}
[data-theme="dark"] .table-hover tbody tr:hover,
[data-theme="dark"] .table-hover tbody tr:hover > td,
[data-theme="dark"] .table-hover tbody tr:hover > th {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
}

/* --- Modals --- */
/* Elevation pattern: modal surface sits ~10% lighter than page,
   stronger shadow + brighter hairline border so it pops clear of the dim backdrop. */
[data-theme="dark"] .modal-content {
    background-color: #1e1e24 !important;
    border: 1px solid rgba(255, 255, 255, 0.10) !important;
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.70), 0 4px 14px rgba(0, 0, 0, 0.55) !important;
}
[data-theme="dark"] .modalPopup {
    background-color: #1e1e24 !important;
    border: 1px solid rgba(255, 255, 255, 0.10) !important;
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.70), 0 4px 14px rgba(0, 0, 0, 0.55) !important;
}
[data-theme="dark"] .modalBackground {
    background-color: #000 !important;
    opacity: 0.65 !important;
}
[data-theme="dark"] .modal-header {
    border-bottom-color: var(--border-default) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .modal-footer {
    border-top-color: var(--border-default) !important;
}

/* --- Dropdowns --- */
[data-theme="dark"] .dropdown-menu {
    background-color: #0d0d12 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4) !important;
}
[data-theme="dark"] .dropdown-item {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .dropdown-divider {
    border-top-color: var(--border-light) !important;
}

/* --- Popovers --- */
[data-theme="dark"] .popover {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .popover-header {
    background-color: var(--bg-subtle) !important;
    border-bottom-color: var(--border-default) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .popover .arrow::after {
    border-top-color: var(--bg-surface) !important;
}

/* --- Badges --- */
[data-theme="dark"] .badge-soft-secondary {
    background-color: var(--bg-muted) !important;
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .badge-light {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
}

/* --- Progress bars & skeletons --- */
[data-theme="dark"] .progress,
[data-theme="dark"] .bh-progress-bar,
[data-theme="dark"] .skeleton-line,
[data-theme="dark"] .skeleton-circle {
    background-color: var(--bg-muted) !important;
}

/* --- Dropzone.js (CDN CSS hardcodes white bg) --- */
[data-theme="dark"] .dropzone,
[data-theme="dark"] .dropzone.dz-clickable {
    background: var(--bg-subtle) !important;
    border: 2px dashed var(--border-strong) !important;
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .dropzone:hover {
    background: var(--bg-muted) !important;
    border-color: var(--brand-primary) !important;
}
[data-theme="dark"] .dropzone .dz-message,
[data-theme="dark"] .dropzone .dz-message h5,
[data-theme="dark"] .dropzone .dz-message p,
[data-theme="dark"] .dropzone .dz-message .text-muted {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .dropzone .dz-message i,
[data-theme="dark"] .dropzone .dz-message .fa {
    color: var(--text-tertiary) !important;
}
[data-theme="dark"] .dropzone .dz-preview .dz-image {
    background: var(--bg-muted) !important;
}
[data-theme="dark"] .dropzone .dz-preview .dz-details {
    background: rgba(0,0,0,0.6) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .dropzone .dz-preview .dz-filename,
[data-theme="dark"] .dropzone .dz-preview .dz-size {
    color: var(--text-primary) !important;
}

/* --- List groups --- */
[data-theme="dark"] .list-group-item {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-light) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .list-group-item:hover {
    background-color: var(--bg-subtle) !important;
}
[data-theme="dark"] .list-group-item.active {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
}

/* --- Alerts --- */
[data-theme="dark"] .alert-info {
    background-color: var(--status-info-bg) !important;
    color: var(--status-info-text) !important;
    border-color: var(--status-info) !important;
}
[data-theme="dark"] .alert-success {
    background-color: var(--status-success-bg) !important;
    color: var(--status-success-text) !important;
    border-color: var(--status-success) !important;
}
[data-theme="dark"] .alert-warning {
    background-color: var(--status-warning-bg) !important;
    color: var(--status-warning-text) !important;
}
[data-theme="dark"] .alert-danger {
    background-color: var(--status-danger-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--status-danger) !important;
}

/* --- Pagination --- */
[data-theme="dark"] .page-link {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-default) !important;
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .page-item.active .page-link {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: var(--text-on-dark) !important;
}
[data-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--bg-muted) !important;
    color: var(--text-muted) !important;
}

/* --- Breadcrumbs --- */
[data-theme="dark"] .breadcrumb {
    background-color: var(--bg-subtle) !important;
}

/* --- Close button --- */
[data-theme="dark"] .close {
    color: var(--text-primary) !important;
    text-shadow: none !important;
}

/* --- HR --- */
[data-theme="dark"] hr {
    border-top-color: var(--border-light) !important;
}

/* --- Jumbotron --- */
[data-theme="dark"] .jumbotron {
    background-color: var(--bg-subtle) !important;
}

/* --- Well / BG utilities --- */
[data-theme="dark"] .bg-white {
    background-color: var(--bg-surface) !important;
}
[data-theme="dark"] .bg-light {
    background-color: var(--bg-subtle) !important;
}
[data-theme="dark"] .text-dark {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

/* Loader / empty-state contrast in dark mode.
   Covers the site-wide '<i class="fa fa-spinner fa-spin"></i><p>...</p>' pattern
   and the '<i class="fa fa-search fa-3x"></i><p>...</p>' empty-state pattern.
   Without this, loader text in .text-muted wrappers rendered too dim. */
[data-theme="dark"] .fa-spinner.fa-spin,
[data-theme="dark"] .spinner-border {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .text-center.py-5.text-muted,
[data-theme="dark"] .text-center.py-5.text-muted p,
[data-theme="dark"] .text-center.py-5 p,
[data-theme="dark"] .empty-state,
[data-theme="dark"] .empty-state p {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .empty-state h5,
[data-theme="dark"] .text-center.py-5 h5 {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .empty-state i,
[data-theme="dark"] .text-center.py-5 > .fa-search,
[data-theme="dark"] .text-center.py-5 > i.fa-inbox,
[data-theme="dark"] .text-center.py-5 > i[class*="fa-3x"] {
    color: var(--text-tertiary) !important;
    opacity: 1 !important;
}

[data-theme="dark"] .border {
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .border-bottom {
    border-bottom-color: var(--border-default) !important;
}
[data-theme="dark"] .border-top {
    border-top-color: var(--border-default) !important;
}

/* --- Navbar header --- */
[data-theme="dark"] .navbar {
    border-bottom-color: var(--border-default) !important;
}

/* =============================================
   Jen's Dark Mode Design Refinements
   Principle: Content is king. Chrome recedes.
   Gold borders become muted warm borders.
   Bright gold only on interactive/active elements.
   ============================================= */

/* --- Mute ALL decorative gold card borders --- */
[data-theme="dark"] .card-body {
    border-color: var(--brand-accent-soft) !important;
}
[data-theme="dark"] .profile-card-header.yellow {
    border-left-color: var(--brand-accent) !important;
}

/* --- Dashboard card gold headers: warm and subtle, not screaming --- */
[data-theme="dark"] .dashboard-card .card-header {
    border-left-color: var(--brand-accent-soft) !important;
}

/* --- News Agenda: content readability is critical --- */
[data-theme="dark"] .news-headline,
[data-theme="dark"] .agenda-item,
[data-theme="dark"] .agenda-item a,
[data-theme="dark"] .card-body-scroll li,
[data-theme="dark"] .card-body-scroll a,
[data-theme="dark"] .card-body-scroll p,
[data-theme="dark"] .card-body-scroll span {
    color: var(--text-body) !important;
}
[data-theme="dark"] .card-body-scroll h5,
[data-theme="dark"] .card-body-scroll h4,
[data-theme="dark"] .card-body-scroll strong,
[data-theme="dark"] .card-body-scroll b {
    color: var(--text-primary) !important;
}

/* --- Badge text on coloured backgrounds: ensure readability --- */
[data-theme="dark"] .badge {
    font-size: 0.8em;
}
[data-theme="dark"] .badge-pill {
    color: var(--text-on-dark) !important;
}

/* --- Mail Stats: numbers must be readable --- */
[data-theme="dark"] .stat-value,
[data-theme="dark"] .mail-stat-value,
[data-theme="dark"] .kpi-value {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .stat-label,
[data-theme="dark"] .mail-stat-label,
[data-theme="dark"] .kpi-label {
    color: var(--text-secondary) !important;
}

/* --- Horizontal gold divider lines: mute to warm grey --- */
[data-theme="dark"] hr[style*="border"],
[data-theme="dark"] hr[style*="fdb913"] {
    border-color: var(--brand-accent-soft) !important;
}

/* --- Card body borders throughout: muted warm, not bright gold --- */
[data-theme="dark"] [style*="border"][style*="fdb913"],
[data-theme="dark"] [style*="border"][style*="FDB913"] {
    border-color: var(--brand-accent-soft) !important;
}

/* --- Active tab indicator: this IS the one place gold should be bright --- */
[data-theme="dark"] .nav-tabs .nav-link.active {
    border-bottom-color: var(--brand-accent-bright, #fdb913) !important;
}

/* =============================================
   News Agenda dark mode readability
   ============================================= */
[data-theme="dark"] .news-tabs {
    border-bottom-color: var(--border-default) !important;
}
[data-theme="dark"] .news-tab {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .news-tab:hover {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .news-tab.active {
    color: var(--brand-primary) !important;
    border-bottom-color: var(--brand-primary) !important;
}
[data-theme="dark"] .news-article-count {
    color: var(--text-muted) !important;
}
/* Outlet section headers - organizational, should be visible */
[data-theme="dark"] .outlet-name {
    color: var(--text-primary) !important;
}
[data-theme="dark"] .outlet-name small {
    color: var(--text-secondary) !important;
}
/* Story clusters */
[data-theme="dark"] .story-cluster {
    border-bottom-color: var(--border-light) !important;
}
[data-theme="dark"] .story-cluster.multi-outlet {
    background: var(--bg-purple-tint) !important;
    border-left-color: var(--brand-primary) !important;
    border-bottom-color: var(--border-light) !important;
}
[data-theme="dark"] .cluster-headline,
[data-theme="dark"] .cluster-headline a,
[data-theme="dark"] .cluster-sub-article a {
    color: var(--text-body) !important;
}
[data-theme="dark"] .cluster-headline:hover,
[data-theme="dark"] .cluster-headline a:hover,
[data-theme="dark"] .cluster-sub-article a:hover {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .cluster-outlet-badge {
    background: var(--bg-purple-tint) !important;
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .cluster-tier1-badge {
    background: var(--status-success-bg) !important;
    color: var(--status-success-text) !important;
}
[data-theme="dark"] .cluster-topic {
    color: var(--text-muted) !important;
}
[data-theme="dark"] .cluster-time,
[data-theme="dark"] .cluster-sub-article .sub-pub {
    color: var(--text-muted) !important;
}
[data-theme="dark"] .cluster-expand {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .cluster-articles-list {
    border-left-color: var(--border-default) !important;
}
/* News spike pills */
[data-theme="dark"] .news-spike-pill {
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] .news-spike-pill.spiking-hot {
    background: var(--status-danger-bg) !important;
    color: var(--brand-danger) !important;
}
[data-theme="dark"] .news-spike-pill.spiking-warm {
    background: var(--bg-purple-tint) !important;
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .news-spike-pill.spiking-cool {
    background: var(--bg-muted) !important;
    color: var(--text-secondary) !important;
}

/* =============================================
   Border continuity fix
   Card borders should form a continuous outline,
   not disconnected segments
   ============================================= */
[data-theme="dark"] .dashboard-card {
    border: 1px solid var(--border-default) !important;
}
[data-theme="dark"] .dashboard-card .card-header {
    border-bottom: 1px solid var(--border-default) !important;
}
[data-theme="dark"] .dashboard-card .card-body {
    border: none !important;
}
/* Profile cards: continuous border */
[data-theme="dark"] .profile-card {
    border: 1px solid var(--border-default) !important;
    border-radius: 8px !important;
    overflow: hidden;
}
[data-theme="dark"] .profile-card-header {
    border-bottom: 1px solid var(--border-default) !important;
}
[data-theme="dark"] .profile-card-body {
    border: none !important;
}

/* --- Footer (authenticated/user pages: Site.Master + portal masters using .footer/.bg-white) ---
   Bumped specificity so the dark rule always wins over .bg-white:
   - footer.footer (0,2,1) beats [data-theme="dark"] .bg-white (0,2,0)
   - .footer.bg-white (0,3,0) beats [data-theme="dark"] .bg-white (0,2,0)
   Public/login masters (Buzzhub, Middle, LoginMaster) use class="bs-footer" with their own
   brand-styled footer in Buzzscribed.css -- intentionally NOT overridden here. */
[data-theme="dark"] footer.footer,
[data-theme="dark"] .footer.bg-white,
[data-theme="dark"] footer#footer {
    background-color: #000 !important;
    color: var(--text-secondary) !important;
    border-top-color: var(--border-default) !important;
}
[data-theme="dark"] footer.footer a,
[data-theme="dark"] .footer.bg-white a,
[data-theme="dark"] footer#footer a {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] footer.footer a:hover,
[data-theme="dark"] .footer.bg-white a:hover,
[data-theme="dark"] footer#footer a:hover {
    color: var(--text-primary) !important;
}

/* --- Links (global) --- */
[data-theme="dark"] a {
    color: var(--brand-primary);
}
[data-theme="dark"] a:hover {
    color: #c9a4e8;
}
/* Buttons rendered as <a> (asp:LinkButton) must keep their own text color.
   Must use !important to beat .footer a rule above. */
[data-theme="dark"] a.btn {
    color: var(--text-on-dark, #fff) !important;
}
[data-theme="dark"] a.btn:hover {
    color: var(--text-on-dark, #fff) !important;
}
[data-theme="dark"] a.btn-outline-primary {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] a.btn-outline-primary:hover {
    color: var(--text-on-dark, #fff) !important;
}
[data-theme="dark"] a.btn-default {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] a.btn-default:hover {
    color: var(--text-on-dark, #fff) !important;
}
[data-theme="dark"] a.btn-outline-secondary {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] a.btn-link {
    color: var(--brand-primary) !important;
}
[data-theme="dark"] a.btn-danger {
    color: var(--text-on-dark, #fff) !important;
}

/* --- Profile cards (Campaign Builder section headers) --- */
/* These have cream/gold gradients in light mode - must go dark */
[data-theme="dark"] .profile-card {
    background-color: var(--bg-surface) !important;
}
[data-theme="dark"] .profile-card-header.yellow {
    background: linear-gradient(135deg, var(--bg-gold-tint) 0%, var(--bg-subtle) 100%) !important;
    color: var(--text-primary) !important;
    border-left-color: var(--brand-accent) !important;
}
[data-theme="dark"] .profile-card-header.yellow h4,
[data-theme="dark"] .profile-card-header.yellow h3,
[data-theme="dark"] .profile-card-header.yellow .profile-card-title,
[data-theme="dark"] .dashboard-card .card-header,
[data-theme="dark"] .dashboard-card .card-header .card-title,
[data-theme="dark"] .dashboard-card .card-header .card-title i {
    color: var(--brand-accent) !important;
}
[data-theme="dark"] .profile-card-header {
    background: linear-gradient(135deg, #1a1430 0%, var(--bg-subtle) 100%) !important;
    color: var(--text-on-dark) !important;
}
[data-theme="dark"] .profile-card-body {
    background-color: var(--bg-surface) !important;
    color: var(--text-primary) !important;
}

/* --- All remaining gold-tint / cream backgrounds (inline styles) --- */
[data-theme="dark"] [style*="fff5dc"],
[data-theme="dark"] [style*="FFF5DC"],
[data-theme="dark"] [style*="fcf8e3"],
[data-theme="dark"] [style*="FCF8E3"],
[data-theme="dark"] [style*="fffbf0"],
[data-theme="dark"] [style*="FFFBF0"],
[data-theme="dark"] [style*="fff8e1"],
[data-theme="dark"] [style*="FFF8E1"],
[data-theme="dark"] [style*="fef9e7"],
[data-theme="dark"] [style*="FEF9E7"] {
    background: var(--bg-gold-tint) !important;
    color: var(--text-primary) !important;
}
/* Catch cream gradients -- browsers may normalize hex to rgb() so match both */
[data-theme="dark"] .alert[style*="fff5dc"],
[data-theme="dark"] .alert[style*="fffbf0"],
[data-theme="dark"] div[style*="fff5dc"],
[data-theme="dark"] div[style*="fffbf0"],
[data-theme="dark"] [style*="rgb(255, 245, 220)"],
[data-theme="dark"] [style*="rgb(255, 251, 240)"],
[data-theme="dark"] [style*="rgb(252, 248, 227)"],
[data-theme="dark"] #smartAutoFillPrompt {
    background: var(--bg-gold-tint) !important;
    border-color: var(--brand-accent-soft) !important;
    color: var(--text-primary) !important;
}
/* Force text colour on children with inline color:#333 inside dark gold-tint panels */
[data-theme="dark"] #smartAutoFillPrompt *,
[data-theme="dark"] [style*="rgb(255, 245, 220)"] *,
[data-theme="dark"] [style*="fff5dc"] * {
    color: var(--text-primary) !important;
}

/* --- Content area catch-all for remaining light backgrounds --- */
[data-theme="dark"] .content-area,
[data-theme="dark"] .main-content,
[data-theme="dark"] #ContentPlaceHolder1,
[data-theme="dark"] [id*="ContentPlaceHolder"] {
    color: var(--text-primary);
}

/* --- Sub-content profile card overrides (CampaignBuilder uses !important) --- */
[data-theme="dark"] .sub-content .profile-card-header.yellow,
[data-theme="dark"] .smallside .profile-card-header.yellow {
    background: linear-gradient(135deg, var(--bg-gold-tint) 0%, var(--bg-subtle) 100%) !important;
    color: var(--text-primary) !important;
}

/* --- Section divider lines (gold hr/borders under section headings) --- */
/* These are the bright yellow lines under KEY DATES, SPECIFIC OBJECTIVES etc. */
[data-theme="dark"] .profile-card-body hr,
[data-theme="dark"] .profile-card-body .section-divider {
    border-color: var(--brand-accent-soft) !important;
}
/* Catch-all: any gold border inside content panels - mute it */
[data-theme="dark"] .profile-card-body [style*="border"],
[data-theme="dark"] .tab-content [style*="border"] {
    border-color: var(--brand-accent-soft) !important;
}

/* --- Content panel text readability (Campaign Builder, all pages) --- */
[data-theme="dark"] .profile-card-body p,
[data-theme="dark"] .profile-card-body span,
[data-theme="dark"] .profile-card-body div,
[data-theme="dark"] .profile-card-body li,
[data-theme="dark"] .profile-card-body td,
[data-theme="dark"] .profile-card-body label {
    color: var(--text-body);
}
[data-theme="dark"] .profile-card-body h1,
[data-theme="dark"] .profile-card-body h2,
[data-theme="dark"] .profile-card-body h3,
[data-theme="dark"] .profile-card-body h4,
[data-theme="dark"] .profile-card-body h5,
[data-theme="dark"] .profile-card-body h6 {
    color: var(--text-primary);
}

/* --- FormView / DetailsView content panels --- */
[data-theme="dark"] .formview-content,
[data-theme="dark"] .details-content,
[data-theme="dark"] [id*="FormView"],
[data-theme="dark"] [id*="DetailsView"] {
    color: var(--text-body) !important;
}

/* --- Section heading text (KEY DATES & TIMELINE etc.) --- */
[data-theme="dark"] .section-heading,
[data-theme="dark"] .bp-section-heading {
    color: var(--brand-accent) !important;
    border-bottom-color: var(--brand-accent-soft) !important;
}

/* --- Specific BUZZHub component fixes --- */
/* KPI cards */
[data-theme="dark"] .kpi-card {
    background-color: var(--bg-surface) !important;
    border-color: var(--border-default) !important;
}

/* Stat cards on dashboard */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .dashboard-card {
    background-color: var(--bg-surface) !important;
}

/* Select dropdowns (native) */
[data-theme="dark"] select {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] select option {
    background-color: var(--bg-surface);
    color: var(--text-primary);
}

/* Checkbox and radio labels */
[data-theme="dark"] .custom-control-label {
    color: var(--text-primary);
}

/* ASP.NET GridView / table rows with inline white backgrounds */
[data-theme="dark"] tr[style*="background-color: White"],
[data-theme="dark"] tr[style*="background-color:White"],
[data-theme="dark"] tr[style*="background-color: white"],
[data-theme="dark"] td[style*="background-color: White"],
[data-theme="dark"] td[style*="background-color:White"] {
    background-color: var(--bg-surface) !important;
}

/* --- Buttons --- */
[data-theme="dark"] .btn-outline-danger {
    color: var(--brand-danger) !important;
    border-color: var(--brand-danger) !important;
}
[data-theme="dark"] .btn-outline-danger:hover,
[data-theme="dark"] .btn-outline-danger:focus,
[data-theme="dark"] .btn-outline-danger:active,
[data-theme="dark"] .btn-outline-danger.active,
[data-theme="dark"] .btn-outline-danger:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-outline-danger:not(:disabled):not(.disabled).active,
[data-theme="dark"] .show > .btn-outline-danger.dropdown-toggle {
    background-color: var(--brand-danger) !important;
    color: var(--text-on-dark) !important;
    border-color: var(--brand-danger) !important;
}
[data-theme="dark"] .btn-outline-primary {
    color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
}
[data-theme="dark"] .btn-outline-primary:hover,
[data-theme="dark"] .btn-outline-primary:focus,
[data-theme="dark"] .btn-outline-primary:active,
[data-theme="dark"] .btn-outline-primary.active,
[data-theme="dark"] .btn-outline-primary:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-outline-primary:not(:disabled):not(.disabled).active,
[data-theme="dark"] .show > .btn-outline-primary.dropdown-toggle {
    background-color: var(--brand-primary) !important;
    color: #fff !important;
    border-color: var(--brand-primary) !important;
}
[data-theme="dark"] .btn-outline-secondary {
    color: var(--text-secondary) !important;
    border-color: var(--border-strong) !important;
    background-color: transparent !important;
}
[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-outline-secondary:focus,
[data-theme="dark"] .btn-outline-secondary:active,
[data-theme="dark"] .btn-outline-secondary.active,
[data-theme="dark"] .btn-outline-secondary:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-outline-secondary:not(:disabled):not(.disabled).active,
[data-theme="dark"] .show > .btn-outline-secondary.dropdown-toggle {
    background-color: var(--brand-primary) !important;
    color: #fff !important;
    border-color: var(--brand-primary) !important;
}
[data-theme="dark"] .btn-outline-secondary:disabled,
[data-theme="dark"] .btn-outline-secondary.disabled {
    color: var(--text-tertiary) !important;
    border-color: var(--border-default) !important;
    background-color: transparent !important;
}
[data-theme="dark"] .btn-outline-warning {
    color: var(--brand-accent) !important;
    border-color: var(--brand-accent) !important;
}
[data-theme="dark"] .btn-outline-warning:hover,
[data-theme="dark"] .btn-outline-warning:focus,
[data-theme="dark"] .btn-outline-warning:active,
[data-theme="dark"] .btn-outline-warning.active,
[data-theme="dark"] .btn-outline-warning:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-outline-warning:not(:disabled):not(.disabled).active,
[data-theme="dark"] .show > .btn-outline-warning.dropdown-toggle {
    background-color: var(--brand-accent-bright) !important;
    color: #1a1a1a !important;
    border-color: var(--brand-accent-bright) !important;
}
/* btn-secondary (amber gold bg): light violet --brand-primary is unreadable on
   amber. Force deep purple text for contrast; keeps brand look. */
[data-theme="dark"] .btn-secondary,
[data-theme="dark"] .btn-secondary:hover,
[data-theme="dark"] .btn-secondary:focus,
[data-theme="dark"] .btn-secondary:active,
[data-theme="dark"] .btn-secondary:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-secondary:not(:disabled):not(.disabled).active,
[data-theme="dark"] .btn-secondary.disabled,
[data-theme="dark"] .btn-secondary:disabled {
    color: #3d1a6f !important;
}
/* btn-warning (gold bg): same problem as btn-secondary -- light-mode
   --brand-primary text flips to light violet in dark mode and disappears
   on the gold background. Force deep purple. */
[data-theme="dark"] .btn-warning,
[data-theme="dark"] .btn-warning:hover,
[data-theme="dark"] .btn-warning:focus,
[data-theme="dark"] .btn-warning:active,
[data-theme="dark"] .btn-warning:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-warning:not(:disabled):not(.disabled).active,
[data-theme="dark"] .btn-warning.disabled,
[data-theme="dark"] .btn-warning:disabled {
    color: #3d1a6f !important;
}
/* btn-primary (solid violet bg) in dark mode: previous #5a2d9e was AA-safe but
   read as muted/disabled against dark surfaces. 2026-05-08: bumped to a more
   vivid mid-violet that still supports white text:
     #7c3fc6 normal vs #fff = 5.84:1 (AA pass)
     #8e54d9 hover  vs #fff = 4.81:1 (AA pass)
     disabled keeps #5a2d9e so disabled state is visually distinct from active. */
[data-theme="dark"] .btn-primary {
    background-color: #7c3fc6 !important;
    border-color: #7c3fc6 !important;
}
[data-theme="dark"] .btn-primary.disabled,
[data-theme="dark"] .btn-primary:disabled {
    background-color: #4a2682 !important;
    border-color: #4a2682 !important;
    opacity: 0.65;
}
[data-theme="dark"] .btn-primary:hover,
[data-theme="dark"] .btn-primary:focus,
[data-theme="dark"] .btn-primary.focus,
[data-theme="dark"] .btn-primary:active,
[data-theme="dark"] .btn-primary:not(:disabled):not(.disabled):active,
[data-theme="dark"] .btn-primary:not(:disabled):not(.disabled).active,
[data-theme="dark"] .show > .btn-primary.dropdown-toggle {
    background-color: #8e54d9 !important;
    border-color: #8e54d9 !important;
    box-shadow: 0 0 0 0.15rem rgba(167, 107, 223, 0.35) !important;
}
[data-theme="dark"] .btn-light {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] .btn-danger {
    color: var(--text-on-dark) !important;
}
[data-theme="dark"] .btn-outline-light {
    color: #fff !important;
    border-color: rgba(255,255,255,0.5) !important;
}
[data-theme="dark"] .btn-outline-light:hover {
    background-color: rgba(255,255,255,0.15) !important;
    color: #fff !important;
}
[data-theme="dark"] .btn-outline-dark {
    color: var(--text-primary) !important;
    border-color: var(--border-strong) !important;
}
[data-theme="dark"] .btn-outline-dark:hover {
    background-color: var(--bg-muted) !important;
    color: var(--text-primary) !important;
}

/* --- Small text readability boost --- */
[data-theme="dark"] small,
[data-theme="dark"] .small,
[data-theme="dark"] .text-sm {
    color: var(--text-secondary);
}

/* =============================================
   ASP.NET GridView / FormView style utility classes
   Replace ForeColor/BackColor attributes with CssClass
   Also usable in VB code-behind: cell.CssClass = "bh-header-brand"
   ============================================= */
.bh-header-brand { background-color: var(--brand-primary, #3d1a6f) !important; color: var(--text-on-dark, #fff) !important; }
.bh-header-accent { background-color: var(--brand-accent, #fdb913) !important; color: var(--text-primary, #333) !important; }
.bh-header-light { background-color: var(--bg-subtle, #f8f9fa) !important; color: var(--text-primary, #333) !important; }
.bh-header-muted { background-color: var(--bg-muted, #e9ecef) !important; color: var(--text-primary, #333) !important; }
.bh-text-brand { color: var(--brand-primary, #3d1a6f) !important; }
.bh-text-accent { color: var(--brand-accent, #fdb913) !important; }
.bh-text-danger { color: var(--brand-danger, #ed174c) !important; }
.bh-text-primary { color: var(--text-primary, #333) !important; }
.bh-text-secondary { color: var(--text-secondary, #666) !important; }
.bh-text-muted { color: var(--text-muted, #999) !important; }
.bh-text-on-dark { color: var(--text-on-dark, #fff) !important; }
.bh-text-success { color: var(--status-success, #28a745) !important; }
.bh-bg-surface { background-color: var(--bg-surface, #fff) !important; }
.bh-bg-subtle { background-color: var(--bg-subtle, #fafafa) !important; }
.bh-bg-muted { background-color: var(--bg-muted, #e9ecef) !important; }
.bh-bg-brand { background-color: var(--brand-primary, #3d1a6f) !important; }
.bh-bg-success { background-color: var(--status-success-bg, #d4edda) !important; }
.bh-bg-danger { background-color: var(--status-danger-bg, #f8d7da) !important; }
.bh-bg-warning { background-color: var(--status-warning-bg, #fff3cd) !important; }
.bh-border-brand { border-color: var(--brand-primary, #3d1a6f) !important; }
.bh-border-accent { border-color: var(--brand-accent, #fdb913) !important; }
.bh-border-default { border-color: var(--border-default, #ddd) !important; }

/* =============================================
   Font Scale -- Accessibility
   Applied via class on <html> element
   ============================================= */
html.font-medium {
    font-size: 110% !important;
}
html.font-large {
    font-size: 120% !important;
}

/* =============================================
   SMART KPI Seeding Banner -- dark mode overrides
   ============================================= */
[data-theme="dark"] .smart-kpi-seed-banner {
    background: linear-gradient(135deg, var(--bg-gold-tint, #1e1a0e) 0%, var(--bg-subtle, #1a1a1a) 100%);
    border-color: var(--brand-accent-soft, #8a6d18);
}

[data-theme="dark"] .smart-kpi-seed-banner h6 {
    color: var(--text-primary, #e0e0e0);
}

[data-theme="dark"] .smart-kpi-seed-banner .smart-context {
    color: var(--text-body, #ccc);
    background: rgba(0,0,0,0.3);
}

[data-theme="dark"] .smart-kpi-seed-section h6 {
    color: var(--text-secondary, #b0b0b0);
    border-bottom-color: var(--border-default, #2a2a2a);
}

[data-theme="dark"] .smart-kpi-card {
    background: var(--bg-surface, #141414);
    border-color: var(--border-strong, #3a3a3a);
}

[data-theme="dark"] .smart-kpi-card .kpi-type {
    color: var(--text-primary, #e0e0e0);
}

[data-theme="dark"] .smart-kpi-card .kpi-target-input {
    background: var(--bg-muted, #1e1e1e);
    border-color: var(--border-strong, #3a3a3a);
    color: var(--text-primary, #e0e0e0);
}

[data-theme="dark"] .smart-kpi-card .kpi-rationale {
    color: var(--text-muted, #808080);
}

[data-theme="dark"] .smart-kpi-card.accepted {
    background: var(--status-success-bg, #0d2818);
    border-color: var(--status-success, #28a745);
}

[data-theme="dark"] .smart-kpi-card.accepted::after {
    color: var(--status-success-text, #6ddf8b);
}

[data-theme="dark"] .outcome-evidence-banner {
    background: linear-gradient(135deg, var(--bg-gold-tint, #1e1a0e) 0%, var(--bg-subtle, #1a1a1a) 100%);
    border-color: var(--brand-accent-soft, #8a6d18);
    color: var(--text-primary, #e0e0e0);
}
[data-theme="dark"] .outcome-needs-actual {
    border-left-color: var(--brand-accent-soft, #8a6d18) !important;
}
[data-theme="dark"] .outcome-hint {
    color: var(--text-muted, #808080);
}

[data-theme="dark"] .planning-readiness-badge {
    background: var(--bg-surface, #141414);
    border-color: var(--border-strong, #3a3a3a);
}
[data-theme="dark"] .readiness-label {
    color: var(--text-primary, #e0e0e0);
}

/* =============================================
   Setup Branding dark mode overrides
   Card headers have hardcoded cream gradients,
   dimensions badge has hardcoded light border
   ============================================= */
[data-theme="dark"] .branding-logo-card {
    border-color: var(--border-default) !important;
    background: var(--bg-surface) !important;
}
[data-theme="dark"] .branding-logo-card-header {
    background: linear-gradient(135deg, var(--bg-gold-tint) 0%, var(--bg-subtle) 100%) !important;
    border-left-color: var(--brand-accent) !important;
    border-bottom-color: var(--border-default) !important;
}
[data-theme="dark"] .branding-logo-card-header h5 {
    color: var(--brand-accent) !important;
}
[data-theme="dark"] .branding-logo-dimensions {
    background: var(--bg-muted) !important;
    border-color: var(--border-strong) !important;
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .branding-logo-preview {
    background: var(--bg-page) !important;
}
[data-theme="dark"] .branding-logo-empty {
    color: var(--text-muted) !important;
}
[data-theme="dark"] .branding-logo-actions {
    background: var(--bg-surface) !important;
    border-top-color: var(--border-default) !important;
}
[data-theme="dark"] .branding-colour-label {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .branding-colour-swatch {
    border-color: var(--border-strong) !important;
}
/* Crop dialog */
[data-theme="dark"] .branding-crop-header {
    background: linear-gradient(135deg, var(--bg-gold-tint) 0%, var(--bg-subtle) 100%) !important;
    border-left-color: var(--brand-accent) !important;
    border-bottom-color: var(--border-default) !important;
}
[data-theme="dark"] .branding-crop-header h5 {
    color: var(--brand-accent) !important;
}
[data-theme="dark"] .branding-crop-dialog {
    background: var(--bg-surface) !important;
    border: 1px solid var(--border-default);
}
[data-theme="dark"] .branding-crop-container {
    background: var(--bg-page) !important;
    border-color: var(--border-default) !important;
}

/* =============================================================================
   DARK MODE SWEEP (2026-04-02) -- Comprehensive overrides for hardcoded
   light-mode colours throughout BUZZHub.css and page-level styles.
   ============================================================================= */

/* --- Talent page --- */
[data-theme="dark"] .talent-photo {
    background: var(--bg-surface) !important;
}
[data-theme="dark"] .talent-section-label {
    background: var(--bg-surface) !important;
}

/* --- NewsWire filename badge --- */
[data-theme="dark"] .nw-filename-badge {
    background-color: var(--bg-subtle) !important;
}

/* --- Unavailable/disabled blocks --- */
[data-theme="dark"] .unavailable-block {
    background: var(--bg-subtle) !important;
    color: var(--text-muted) !important;
}

/* --- Scrollbar tracks (global) --- */
[data-theme="dark"] ::-webkit-scrollbar-track {
    background: var(--bg-subtle, #1a1a1a) !important;
}
[data-theme="dark"] .infinite-scroll-container::-webkit-scrollbar-track {
    background: var(--bg-subtle) !important;
}

/* --- Sub-brand contact row statuses --- */
[data-theme="dark"] .sub-brand-contact-row.status-bounced {
    background-color: var(--status-danger-bg, #2a0f12) !important;
}
[data-theme="dark"] .sub-brand-contact-row.status-unsubscribed {
    background-color: var(--bg-subtle) !important;
}
[data-theme="dark"] .crm-contact-card.status-unsubscribed .card-header,
[data-theme="dark"] .crm-contact-card.status-bounced .card-header {
    background: var(--bg-subtle) !important;
}

/* --- Row selection states (EDM, GridView) --- */
[data-theme="dark"] .edm-contacts-table tbody tr.gv-row-selected,
[data-theme="dark"] .edm-row.edm-row-selected,
[data-theme="dark"] .edm-row:nth-child(even).edm-row-selected {
    background: var(--bg-purple-tint) !important;
}

/* --- Conversation reception pills --- */
[data-theme="dark"] .conversation-reception.reception-lukewarm {
    background: var(--bg-gold-tint) !important;
    color: var(--brand-accent-bright) !important;
}
[data-theme="dark"] .conversation-reception.reception-icecold {
    background: var(--bg-muted) !important;
    color: var(--text-body) !important;
}

/* --- News spike pills --- */
[data-theme="dark"] .news-spike-pill.spiking-hot {
    background: var(--status-danger-bg) !important;
    color: var(--brand-danger, #f44060) !important;
}
[data-theme="dark"] .news-spike-pill.spiking-cool {
    background: var(--bg-subtle) !important;
    color: var(--text-tertiary) !important;
}

/* --- Custom Switch - Unchecked state needs visible track on dark surfaces.
   Border tinted amber to show brand accent even when off. --- */
[data-theme="dark"] .custom-control-label::before {
    background-color: var(--bg-muted, #1e1e1e) !important;
    border-color: var(--brand-accent-soft, #8a6d18) !important;
}
/* Unchecked thumb/handle: gold so the brand colour reads at rest */
[data-theme="dark"] .custom-switch .custom-control-label::after {
    background-color: var(--brand-accent, #d4a824) !important;
}
/* Checked state unchanged - already uses --brand-accent (amber in dark) */

/* --- Legacy .switch/.slider toggle (ClientEDM, Reporting, MailQueue,
   DeliveryPlanner, InterviewCoverage). Light-mode thumb uses --bg-surface
   which collapses to #141414 in dark mode -> invisible circle. Mirror
   the .custom-switch treatment: muted track with amber-soft border,
   gold thumb at rest so the brand colour reads. --- */
[data-theme="dark"] .slider {
    background-color: var(--bg-muted, #1e1e1e) !important;
    border: 1px solid var(--brand-accent-soft, #8a6d18);
}
[data-theme="dark"] .slider:before {
    background-color: var(--brand-accent, #d4a824) !important;
}
/* Checked: track gold, thumb stays white for contrast against gold */
[data-theme="dark"] input:checked + .slider {
    background-color: var(--brand-accent, #d4a824) !important;
    border-color: var(--brand-accent, #d4a824);
}
[data-theme="dark"] input:checked + .slider:before {
    background-color: #ffffff !important;
}

/* --- Action button backgrounds --- */
/* Primary: lighter violet from --brand-primary gives poor contrast with white
   icons in dark mode. Force a deeper saturated violet for clarity. */
[data-theme="dark"] .action-btn-primary {
    background: #6a3daf !important;
    color: var(--text-on-dark, #fff) !important;
}
[data-theme="dark"] .action-btn-primary:hover {
    background: #8559c9 !important;
}
[data-theme="dark"] .action-btn-secondary {
    background: var(--bg-subtle) !important;
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .action-btn-danger {
    background: var(--status-danger-bg) !important;
    color: var(--brand-danger, #f44060) !important;
}
[data-theme="dark"] .action-btn-none {
    background: var(--bg-subtle) !important;
    color: var(--text-muted) !important;
}

/* --- Engagement badges --- */
[data-theme="dark"] .engagement-badge.downloads {
    background: var(--status-info-bg) !important;
    color: var(--status-info-text) !important;
}
[data-theme="dark"] .engagement-badge.bookings {
    background: var(--status-success-bg) !important;
    color: var(--status-success-text) !important;
}
[data-theme="dark"] .engagement-badge.emails {
    background: var(--bg-purple-tint) !important;
    color: var(--brand-primary) !important;
}
[data-theme="dark"] .engagement-badge.clickable.active {
    background-color: var(--bg-purple-tint) !important;
}

/* --- Top engaged cards (gold/silver/bronze) ---
   Soften the bright metallic gradients in dark mode -- subtle left-border
   accent only, no glossy gradient fill. Keep medal rank badges legible. */
[data-theme="dark"] .top-engaged-card.gold {
    background: var(--bg-surface, #141414) !important;
    border-left: 3px solid rgba(253, 185, 19, 0.55) !important;
    box-shadow: inset 4px 0 0 rgba(253, 185, 19, 0.12);
}
[data-theme="dark"] .top-engaged-card.silver {
    background: var(--bg-surface, #141414) !important;
    border-left: 3px solid rgba(192, 192, 192, 0.45) !important;
    box-shadow: inset 4px 0 0 rgba(192, 192, 192, 0.10);
}
[data-theme="dark"] .top-engaged-card.bronze {
    background: var(--bg-surface, #141414) !important;
    border-left: 3px solid rgba(205, 127, 50, 0.45) !important;
    box-shadow: inset 4px 0 0 rgba(205, 127, 50, 0.10);
}
[data-theme="dark"] .top-engaged-card.gold .top-engaged-rank {
    background: rgba(253, 185, 19, 0.85) !important;
    color: #1a1a1a !important;
}
[data-theme="dark"] .top-engaged-card.silver .top-engaged-rank {
    background: rgba(192, 192, 192, 0.75) !important;
    color: #1a1a1a !important;
}
[data-theme="dark"] .top-engaged-card.bronze .top-engaged-rank {
    background: rgba(205, 127, 50, 0.85) !important;
    color: var(--text-on-dark, #fff) !important;
}

/* --- Email status badges --- */
[data-theme="dark"] .edm-badge-muted {
    background: var(--bg-muted) !important;
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .bl-badge-bounced {
    background: var(--status-danger-bg) !important;
    color: var(--brand-danger, #f44060) !important;
}

/* --- JournoIntel publisher badges --- */
[data-theme="dark"] .ji-pub-badge {
    background: var(--bg-subtle) !important;
}
[data-theme="dark"] .ji-card.dismissed .ji-pub-badge {
    background: var(--bg-muted) !important;
}

/* --- Journalist Intel hover badge (CRM/EmailPitching contact cards) ---
   Light gradient (#667eea -> #764ba2) bottoms out too dark on dark surfaces;
   white "Intel" text + 0.75 chevron opacity wash out. Lift the gradient,
   full-opacity chevron, ring to separate from the card. */
[data-theme="dark"] .journalist-intel-badge {
    background: linear-gradient(135deg, #8b6dff 0%, #b378ff 100%) !important;
    color: #fff !important;
    box-shadow: 0 0 0 1px rgba(167, 107, 223, 0.35);
}
[data-theme="dark"] .journalist-intel-badge:hover {
    box-shadow: 0 2px 10px rgba(167, 107, 223, 0.5);
}
[data-theme="dark"] .journalist-intel-badge .badge-chevron {
    opacity: 1;
}
[data-theme="dark"] .journalist-intel-badge.no-intel {
    background: var(--bg-subtle, #1a1a1a) !important;
    color: var(--text-tertiary, #999) !important;
    box-shadow: 0 0 0 1px var(--border-default, #2a2a2a);
}

/* --- InterviewCoverage booking cards --- */
[data-theme="dark"] .booking-card-header {
    background: var(--bg-subtle, #1a1a1a) !important;
    border-bottom-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .booking-datetime .time {
    color: var(--brand-primary, #b89cf0) !important;
}
[data-theme="dark"] .outlet-logo {
    background: #fff !important; /* keep white so logos with transparent bg remain visible */
}
[data-theme="dark"] .booking-date-group .date-header {
    background: var(--bg-subtle, #1a1a1a) !important;
    color: var(--brand-primary, #b89cf0) !important;
}

/* --- JournoIntel quick import banner & outlet expansion --- */
[data-theme="dark"] .ji-quick-import {
    background: var(--bg-subtle, #1a1a1a) !important;
    border-color: var(--border-default, #2a2a2a) !important;
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .ji-quick-import .text-muted {
    color: var(--text-secondary, #a0a0a0) !important;
}
[data-theme="dark"] .ji-outlet-group {
    border-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .ji-outlet-header {
    background: var(--bg-subtle, #1a1a1a) !important;
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .ji-outlet-header .badge-light {
    background: var(--bg-purple-tint, #1e1430) !important;
    color: var(--brand-primary, #b89cf0) !important;
}
[data-theme="dark"] .ji-outlet-body {
    background: var(--bg-surface, #121212) !important;
}
[data-theme="dark"] .ji-outlet-body .ji-card {
    border-bottom-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .ji-outlet-actions .btn {
    border-color: var(--border-default, #2a2a2a) !important;
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .ji-outlet-actions .btn:hover {
    background: var(--bg-muted, #222) !important;
}
[data-theme="dark"] .ji-filter-bar {
    background: var(--bg-subtle, #1a1a1a) !important;
}
[data-theme="dark"] .ji-bulk-bar {
    background: var(--bg-gold-tint, #2a2410) !important;
    color: var(--text-primary, #e8e8e8) !important;
}

/* --- AI quota warnings --- */
[data-theme="dark"] .ai-quota-warning {
    background: var(--bg-gold-tint) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .ai-quota-exhausted {
    background: var(--status-danger-bg) !important;
    color: var(--text-primary) !important;
}

/* --- Merge token pills --- */
[data-theme="dark"] .merge-token-pill.story-token {
    background: var(--bg-gold-tint) !important;
}

/* --- EmailPitching field category headers and items --- */
[data-theme="dark"] .field-category-header {
    background: var(--bg-subtle) !important;
    color: var(--text-primary) !important;
}
[data-theme="dark"] .field-category-header:hover {
    background: var(--bg-muted) !important;
}
[data-theme="dark"] .field-item {
    background: var(--bg-muted) !important;
    color: var(--text-primary) !important;
}

/* --- Filter card badges (shared bh-filter-card primitives) --- */
[data-theme="dark"] .bh-filter-badge,
[data-theme="dark"] .ep-filter-pill {
    background: var(--bg-subtle) !important;
}
/* Preserve the amber "Needed" cue in dark mode (updateFilterBadges adds .needed at
   runtime for the Search source). Scoped to the section header so it does not affect
   neutral badges. */
[data-theme="dark"] .bh-filter-section-header .bh-filter-badge.needed {
    background: var(--brand-accent, #d4a824) !important;
    color: var(--brand-primary-on-accent, #1a1a1a) !important;
}

/* --- EmailPitching: Compose form labels and field picker panel --- */
[data-theme="dark"] .ep-prepend-label {
    background: var(--bg-subtle) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-default) !important;
}
[data-theme="dark"] .emailfieldpicker {
    background: var(--bg-subtle) !important;
    border-color: var(--border-default) !important;
}

/* --- Email Preview: dark mode adopts theme surface --- */
/* Frame + header chrome only. The body itself is handled by the RTE-rendered  */
/* surfaces block above (inline style="color:rgb(0,0,0)" from the editor needs */
/* !important wildcard override; .email-preview-body is added to that list).   */
/* Use Send Self Test to view the email as the recipient sees it (white).      */
[data-theme="dark"] .email-preview-frame {
    background: var(--bg-surface, #141414) !important;
    border-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .email-preview-header {
    background: var(--bg-subtle, #1a1a1a) !important;
    border-bottom-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .email-preview-header .ep-field-label {
    color: var(--text-muted, #b0b0b0) !important;
}
[data-theme="dark"] .email-preview-header .ep-field-value {
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .email-preview-body iframe {
    background: #1e1e1e !important;
}

/* --- Public page alternating sections --- */
[data-theme="dark"] .cq-section-alt,
[data-theme="dark"] .sm-section-alt,
[data-theme="dark"] .prm-section-alt,
[data-theme="dark"] .sm-game-wrap {
    background: var(--bg-subtle) !important;
}
[data-theme="dark"] .ps-wheel-info {
    background: var(--bg-subtle) !important;
}
[data-theme="dark"] .bs-compare-category {
    background: var(--bg-subtle) !important;
}

/* --- Collapsible profile section headers (CRM detail view) --- */
[data-theme="dark"] .profile-section-collapsible {
    border-top-color: var(--border-default) !important;
}

/* --- Landing/marketing button variants --- */
[data-theme="dark"] .btn-landing-primary {
    background: var(--bg-subtle) !important;
}
[data-theme="dark"] .bs-button-main {
    background: var(--bg-gold-tint) !important;
}

/* --- BH Gold Header dark mode (matches .bh-gold-header master list in BUZZHub.css) --- */
[data-theme="dark"] .bh-gold-header,
[data-theme="dark"] .profile-card-header.yellow,
[data-theme="dark"] .card-header,
[data-theme="dark"] .info-section-card h4,
[data-theme="dark"] .qa-card-header,
[data-theme="dark"] .portal-card-header,
[data-theme="dark"] .portal-section-header,
[data-theme="dark"] .media-release-questions,
[data-theme="dark"] .coverage-panel-header,
[data-theme="dark"] .survey-import-zone,
[data-theme="dark"] .survey-table th,
[data-theme="dark"] .agreement-card-header,
[data-theme="dark"] .report-link-card,
[data-theme="dark"] .calendar-options-header,
[data-theme="dark"] .crm-top-contacts-header,
[data-theme="dark"] .crm-section-header,
[data-theme="dark"] .crm-modal-header,
[data-theme="dark"] .group-members-header,
[data-theme="dark"] .group-members-panel table thead th,
[data-theme="dark"] .table-blocked-emails th,
[data-theme="dark"] .table-condensed > tbody > tr > th,
[data-theme="dark"] .key-messages-modal .modal-header,
[data-theme="dark"] .edm-groups-header,
[data-theme="dark"] .ji-country-pack,
[data-theme="dark"] .branding-logo-card-header,
[data-theme="dark"] .branding-crop-header,
[data-theme="dark"] .sp-tips-card-header,
[data-theme="dark"] .brand-header-card,
[data-theme="dark"] .form-card h3, [data-theme="dark"] .form-card h4,
[data-theme="dark"] .form-card .form-header,
[data-theme="dark"] .storybuilder-form h3, [data-theme="dark"] .storybuilder-form h4,
[data-theme="dark"] .sub-brand-expandable.expanded .sub-brand-header-row,
[data-theme="dark"] .crm-contact-card .card-header,
[data-theme="dark"] .slideout-body .qa-card-header,
[data-theme="dark"] .modalPopup .input-group .input-group-text,
[data-theme="dark"] .modal-body .input-group .input-group-text,
[data-theme="dark"] .form-view-modern .input-group .input-group-text,
[data-theme="dark"] .sub-content .profile-card-header.yellow,
[data-theme="dark"] .smallside .profile-card-header.yellow {
    background: var(--bg-subtle, #1a1a1a) !important;
    color: var(--text-primary, #e8e8e8) !important;
    border-bottom-color: var(--border-default, #2a2a2a) !important;
}

/* Schedule portal: RTE / Word-pasted content carries inline color styles (HtmlSanitiser
   does not strip the style attribute) that ignore dark mode -> dark text on a dark card.
   Force readable text on the content surfaces; re-colour links and the questions heading. */
[data-theme="dark"] .schedule-portal .info-section-content,
[data-theme="dark"] .schedule-portal .info-section-content *,
[data-theme="dark"] .schedule-portal .media-release-content,
[data-theme="dark"] .schedule-portal .media-release-content *,
[data-theme="dark"] .schedule-portal .media-release-bullets,
[data-theme="dark"] .schedule-portal .media-release-bullets *,
[data-theme="dark"] .schedule-portal .media-release-questions :not(h5):not(h5 *) {
    color: var(--text-body, #d4d4d4) !important;
}
[data-theme="dark"] .schedule-portal .info-section-content a,
[data-theme="dark"] .schedule-portal .media-release-content a,
[data-theme="dark"] .schedule-portal .media-release-questions a {
    color: #9db8ff !important;
}
[data-theme="dark"] .schedule-portal .media-release-questions h5 {
    color: var(--text-primary, #e5e5e5) !important;
}
[data-theme="dark"] .schedule-portal .media-release-questions h5 i {
    color: var(--brand-accent, #fdb913) !important;
}
/* jQuery Knob writes the value text colour inline (= fgColor); keep it legible on the dark card. */
[data-theme="dark"] .schedule-portal .support-stat-dial input.dial {
    color: var(--text-primary, #e5e5e5) !important;
}
[data-theme="dark"] .schedule-portal .support-stat-caption {
    color: var(--text-body, #d4d4d4) !important;
}
/* Media-release headline sits on the purple header gradient -- keep it white in BOTH
   modes regardless of any inline colour pasted into the Headline field. */
.schedule-portal .media-release-title h2,
.schedule-portal .media-release-title h2 * {
    color: var(--text-on-dark, #ffffff) !important;
}

/* Selected row states with gold background */
[data-theme="dark"] .outlet-contact-row.selected {
    background: var(--bg-purple-tint, #1e1430) !important;
}
/* Survey import zone hover */
[data-theme="dark"] .survey-import-zone:hover {
    background: var(--bg-muted, #1e1e1e) !important;
}

/* =============================================
   Modal body text / headings -- dark mode
   Naked <h4>/<h5>/<h6> section headings inside
   .modalPopup .body inherit dim colour from
   somewhere in the cascade and become unreadable
   on dark surfaces. Force --text-primary.
   ============================================= */
[data-theme="dark"] .modalPopup,
[data-theme="dark"] .modalPopup .body,
[data-theme="dark"] .modalPopup .body h1,
[data-theme="dark"] .modalPopup .body h2,
[data-theme="dark"] .modalPopup .body h3,
[data-theme="dark"] .modalPopup .body h4,
[data-theme="dark"] .modalPopup .body h5,
[data-theme="dark"] .modalPopup .body h6,
[data-theme="dark"] .modal-body h1,
[data-theme="dark"] .modal-body h2,
[data-theme="dark"] .modal-body h3,
[data-theme="dark"] .modal-body h4,
[data-theme="dark"] .modal-body h5,
[data-theme="dark"] .modal-body h6 {
    color: var(--text-primary, #e8e8e8) !important;
}

/* =============================================
   Section headings -- dark mode
   Naked h5/h6 inside card-style section headers (Outreach Groups,
   Syndication Groups, EDM Groups panels) and ClientEDM engagement
   stat labels inherit a dim colour from the cascade and render as
   dark-grey-on-black. Force --text-primary.
   ============================================= */
[data-theme="dark"] .groups-header h5,
[data-theme="dark"] .groups-header h6,
[data-theme="dark"] #engagements .row.text-center > [class*="col-"] > h5 {
    color: var(--text-primary, #e8e8e8) !important;
}

/* =============================================
   EDM Group card -- selected state in dark mode
   Hardcoded cream gradient (f0fff4 -> fff) becomes unreadable when
   .group-name text (--text-primary) flips to near-white. Swap to a
   subtle dark panel and keep the green border as the selected signal.
   ============================================= */
[data-theme="dark"] .group-card {
    background: var(--bg-surface, #141414) !important;
    border-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .group-card:hover {
    background: var(--bg-subtle, #1a1a1a) !important;
    border-color: var(--brand-primary, #a76bdf) !important;
}
[data-theme="dark"] .group-card.selected {
    background: linear-gradient(135deg, #0d2818 0%, var(--bg-surface, #141414) 100%) !important;
    border-color: var(--status-success, #28a745) !important;
}
[data-theme="dark"] .group-card .group-name {
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .group-card .group-meta {
    color: var(--text-secondary, #bcbcbc) !important;
}

/* =============================================
   EDM Email Groups list -- dark mode
   BUZZHub.css sets per-column colours on .edm-col-* which overrides
   the .edm-list-header brand-primary. Email column has no override
   so its header reads purple and the cell inherits dim body text.
   Force a single readable palette in dark mode for header and cells.
   ============================================= */
[data-theme="dark"] .edm-list-header {
    background: var(--bg-subtle, #1a1a1a) !important;
    color: var(--text-primary, #e8e8e8) !important;
    border-bottom-color: var(--border-default, #2a2a2a) !important;
}
[data-theme="dark"] .edm-list-header .edm-col-name,
[data-theme="dark"] .edm-list-header .edm-col-email,
[data-theme="dark"] .edm-list-header .edm-col-brand,
[data-theme="dark"] .edm-list-header .edm-col-state,
[data-theme="dark"] .edm-list-header .edm-col-pos {
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .edm-row .edm-col-email {
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .edm-row .edm-col-email a {
    color: var(--brand-primary, #a76bdf);
}
[data-theme="dark"] .edm-row .edm-col-brand {
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .edm-row .edm-col-state,
[data-theme="dark"] .edm-row .edm-col-pos {
    color: var(--text-secondary, #bcbcbc);
}

/* =============================================
   Inline #ffc107 (warning yellow) badges -- dark mode
   Several pages build status pills with
   `background:#ffc107; color:var(--text-primary, #333)`.
   In dark mode --text-primary flips to near-white,
   leaving white-on-gold = unreadable. Force dark ink
   on any element that carries a yellow background
   via inline style.
   ============================================= */
[data-theme="dark"] [style*="background:#ffc107"],
[data-theme="dark"] [style*="background: #ffc107"],
[data-theme="dark"] [style*="background-color:#ffc107"],
[data-theme="dark"] [style*="background-color: #ffc107"],
[data-theme="dark"] [style*="background:#fdb913"],
[data-theme="dark"] [style*="background: #fdb913"],
[data-theme="dark"] [style*="background-color:#fdb913"],
[data-theme="dark"] [style*="background-color: #fdb913"] {
    color: #1a1a1a !important;
}

/* =============================================
   Class-level hardcoded warning yellow -- dark mode
   Same pattern as the inline rule above but for CSS classes
   declared in page-level <style> blocks.
   ============================================= */
[data-theme="dark"] .priority-P3,
[data-theme="dark"] .priority-P2,
[data-theme="dark"] .status-onhold,
[data-theme="dark"] .review-status.amber,
[data-theme="dark"] .top-engaged-card.gold .top-engaged-rank {
    color: #1a1a1a !important;
}

/* =============================================
   Inline light-blue / pale-blue backgrounds -- dark mode
   Common pattern for info banners (e.g. pipeline context help).
   ============================================= */
[data-theme="dark"] [style*="background:#f0f4ff"],
[data-theme="dark"] [style*="background: #f0f4ff"],
[data-theme="dark"] [style*="background:#e8f0fe"],
[data-theme="dark"] [style*="background: #e8f0fe"],
[data-theme="dark"] [style*="background:#e3f2fd"],
[data-theme="dark"] [style*="background: #e3f2fd"],
[data-theme="dark"] [style*="background:#d1ecf1"],
[data-theme="dark"] [style*="background: #d1ecf1"],
[data-theme="dark"] [style*="background-color:#f0f4ff"],
[data-theme="dark"] [style*="background-color: #f0f4ff"] {
    background: var(--status-info-bg, #0a1e24) !important;
    color: var(--status-info-text, #5dc8db) !important;
    border-color: var(--status-info-border, #0e2a30) !important;
}
/* Linear-gradient variants */
[data-theme="dark"] [style*="linear-gradient(135deg,#f0f4ff"],
[data-theme="dark"] [style*="linear-gradient(135deg, #f0f4ff"] {
    background: linear-gradient(135deg, var(--bg-subtle, #1a1a1a) 0%, var(--bg-surface, #141414) 100%) !important;
    color: var(--text-primary, #e8e8e8) !important;
}

/* =============================================
   Inline pure-white backgrounds -- dark mode
   Small catch-all so hardcoded `style="background:#fff"` does not
   keep a white card stranded on the dark page. Applies only when
   the inline style sets the background; page-level white classes
   such as `.bg-white` are handled separately above.
   ============================================= */
[data-theme="dark"] [style*="background:#fff;"],
[data-theme="dark"] [style*="background: #fff;"],
[data-theme="dark"] [style*="background:#ffffff;"],
[data-theme="dark"] [style*="background: #ffffff;"],
[data-theme="dark"] [style*="background:#fafafa;"],
[data-theme="dark"] [style*="background: #fafafa;"],
[data-theme="dark"] [style*="background:#f8f9fa;"],
[data-theme="dark"] [style*="background: #f8f9fa;"],
[data-theme="dark"] [style*="background-color:#fff;"],
[data-theme="dark"] [style*="background-color: #fff;"],
[data-theme="dark"] [style*="background-color:#ffffff;"],
[data-theme="dark"] [style*="background-color: #ffffff;"] {
    background-color: var(--bg-surface, #141414) !important;
    color: var(--text-primary, #e8e8e8);
}

/* =============================================
   Dark mode card elevation lift (2026-04-21)
   Cards that rely on soft light-mode shadows (rgba(0,0,0,0.05-0.08))
   read flat on #0a0a0a page bg because the shadow alpha is invisible.
   Solution: lift surface one step above --bg-surface, beef shadow alpha,
   strengthen border. Preserves light mode (scoped to [data-theme="dark"]).
   If you add a new card class anywhere, add it here too.
   See .claude/scripts/dark-mode-lint.ps1 for audit helper.
   ============================================= */
[data-theme="dark"] .ji-pack-card,
[data-theme="dark"] .ji-stat-card,
[data-theme="dark"] .ji-country-card,
[data-theme="dark"] .ji-card,
[data-theme="dark"] .coverage-card,
[data-theme="dark"] .coverage-stats-bar .kpi-card,
[data-theme="dark"] .pitch-stat-card,
[data-theme="dark"] .bh-data-card,
[data-theme="dark"] .compose-card,
[data-theme="dark"] .nwcard,
[data-theme="dark"] .crm-stat-card,
[data-theme="dark"] .contact-card,
[data-theme="dark"] .search-result-card,
[data-theme="dark"] .crm-contact-card,
[data-theme="dark"] .top-engaged-card,
[data-theme="dark"] .outlet-contact-card,
[data-theme="dark"] .top-contact-card,
[data-theme="dark"] .group-card,
[data-theme="dark"] .blocked-stat-card,
[data-theme="dark"] .profile-card,
[data-theme="dark"] .edm-stat-card,
[data-theme="dark"] .inbox-message-card,
[data-theme="dark"] .mi-stat-card,
[data-theme="dark"] .portal-metric-card,
[data-theme="dark"] .bh-summary-card,
[data-theme="dark"] .media-release-card,
[data-theme="dark"] .sub-brand-item,
[data-theme="dark"] .conversation-item,
[data-theme="dark"] .outlet-syndication-card,
[data-theme="dark"] .form-section,
[data-theme="dark"] .outlet-profile,
[data-theme="dark"] .edm-groups-sidebar,
[data-theme="dark"] .edm-group-panel,
[data-theme="dark"] .nwc-card,
[data-theme="dark"] .social-stat-card,
[data-theme="dark"] .media-stat-card,
[data-theme="dark"] .kpi-card,
[data-theme="dark"] .kpi-stat,
[data-theme="dark"] .analytics-card,
[data-theme="dark"] .analytics-panel,
[data-theme="dark"] .dashboard-widget,
[data-theme="dark"] .pipeline-stat-card,
[data-theme="dark"] .pitch-list-card,
[data-theme="dark"] .pitch-contact-card,
[data-theme="dark"] .focus-card,
[data-theme="dark"] .task-stat-box,
[data-theme="dark"] .decline-stat-card,
[data-theme="dark"] .mail-stat-card,
[data-theme="dark"] .callback-card,
[data-theme="dark"] .history-item,
[data-theme="dark"] .graphic-card,
[data-theme="dark"] .dc-editor,
[data-theme="dark"] .dc-share,
[data-theme="dark"] .dc-preview-card,
[data-theme="dark"] .task-card,
[data-theme="dark"] .pipeline-table-view,
[data-theme="dark"] .pipeline-chart-view,
[data-theme="dark"] .ji-panel,
[data-theme="dark"] .ji-feed-panel,
[data-theme="dark"] .ra-stat-card,
[data-theme="dark"] .bh-kpi,
[data-theme="dark"] .bh-eng-summary-tile,
[data-theme="dark"] .nw-story-card,
[data-theme="dark"] .skel-card,
[data-theme="dark"] .health-card {
    background-color: #1d1e24 !important;
    /* Override only 3 sides -- preserve border-left-color so coloured
       accent borders (brand/success/danger/warning) stay visible. */
    border-top-color: #3a3a42 !important;
    border-right-color: #3a3a42 !important;
    border-bottom-color: #3a3a42 !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.5) !important;
}

/* =============================================
   Time Report table (CRMClients Activity) -- dark mode
   th uses --brand-primary text on --bg-purple-tint -> light violet
   on dark violet, low contrast. td has no explicit colour and
   inherits a dim cascade colour, reading as grey-on-grey. Force
   white headers and full --text-body on cells.
   ============================================= */
[data-theme="dark"] .time-report-table th {
    color: var(--text-on-dark, #ffffff) !important;
    border-bottom-color: var(--border-strong, #3a3a42) !important;
}
[data-theme="dark"] .time-report-table td {
    color: var(--text-body, #d4d4d4);
    border-bottom-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .time-report-table tr:hover td {
    background: var(--bg-purple-tint, #1e1430) !important;
}
[data-theme="dark"] .time-report-table tfoot td {
    color: var(--text-primary, #e8e8e8);
}

/* CRM contact cards -- hover pop in dark mode.
   Base elevation handled above. Hover adds a subtle purple-tinted glow
   so the card edge reads crisp against #0a0a0a page bg. */
[data-theme="dark"] .crm-contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.55),
                0 12px 28px rgba(0,0,0,0.6),
                0 0 0 1px rgba(253, 185, 19, 0.08) !important;
    border-top-color: #4a4a55 !important;
    border-right-color: #4a4a55 !important;
    border-bottom-color: #4a4a55 !important;
}

/* Print reset -- forces light mode for printing */
@media print {
    :root, [data-theme="dark"] {
        --brand-primary: #3d1a6f;
        --brand-accent: #fdb913;
        --brand-danger: #ed174c;
        --brand-magenta: #7d1d61;
        --bg-page: #ffffff;
        --bg-surface: #ffffff;
        --bg-subtle: #fafafa;
        --bg-muted: #f0f0f0;
        --bg-purple-tint: #f0ebf7;
        --bg-gold-tint: #fff5dc;
        --text-primary: #333333;
        --text-body: #555555;
        --text-secondary: #666666;
        --text-tertiary: #888888;
        --text-muted: #999999;
        --text-on-dark: #ffffff;
        --page-title-color: #3d1a6f;
        --border-subtle: #e5e5ea;
        --border-light: #e9ecef;
        --border-default: #dddddd;
        --border-strong: #cccccc;
        --border-brand: #e0d4f0;
        --status-success: #28a745;
        --status-success-bg: #d4edda;
        --status-success-text: #155724;
        --status-warning: #ffc107;
        --status-warning-bg: #fff3cd;
        --status-warning-text: #856404;
        --status-danger: #dc3545;
        --status-danger-bg: #f8d7da;
        --status-info: #17a2b8;
        --status-info-bg: #d1ecf1;
        --status-info-text: #0c5460;
        --status-success-border: #c3e6cb;
        --status-danger-border: #f5c6cb;
        --status-danger-text: #721c24;
        --status-warning-border: #ffeeba;
        --status-info-border: #bee5eb;
        --accent-purple: #6c5ce7;
        --shadow-color: rgba(0,0,0,0.1);
        --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
        --shadow-md: 0 4px 12px rgba(0,0,0,0.12);
        --overlay-bg: rgba(0,0,0,0.5);
        --scrollbar-track: #f1f1f1;
        --scrollbar-thumb: #c1c1c1;
        --scrollbar-thumb-hover: #a1a1a1;
    }
}

/* =============================================================================
   Engagement Lifecycle Redesign tokens (added 2026-05-10)
   Spec: .claude/buzzscribed/engagement-design-system-2026-05-10.md sec 1.2
   All additive -- no existing token redefined.
   ============================================================================= */
:root {
    /* Engagement State badges (axis A2) */
    --es-provisional-bg: #fff5dc;
    --es-provisional-fg: #8a6d00;
    --es-provisional-border: #fdb913;
    --es-draft-bg: #e3f2fd;
    --es-draft-fg: #0d47a1;
    --es-draft-border: #90caf9;
    --es-pending-bg: #fff3cd;
    --es-pending-fg: #856404;
    --es-pending-border: #ffeaa7;
    --es-active-bg: #d4edda;
    --es-active-fg: #155724;
    --es-active-border: #c3e6cb;
    --es-closed-bg: #e9ecef;
    --es-closed-fg: #495057;
    --es-closed-border: #ced4da;

    /* Work Lifecycle layer rendering (axis A3)
       2026-05-15: forecast stripe alpha softened (0.6 -> 0.22) so labels stay legible
       on the striped background. Pattern density also lowered in engagement-design-system.css. */
    --wl-forecast-stripe-color: rgba(125, 95, 195, 0.22);
    --wl-forecast-base-bg: var(--bg-purple-tint);
    --wl-forecast-opacity: 0.6;
    --wl-committed-bg: var(--brand-primary);
    --wl-committed-fg: #ffffff;
    --wl-actual-progress-bg: var(--brand-accent);
    --wl-actual-text: #1a1024;

    /* Execution Health (axis A5) */
    --eh-ontrack: #28a745;
    --eh-ontrack-bg: #d4edda;
    --eh-over: #ed174c;
    --eh-over-bg: #fde0e6;
    --eh-under: #fd7e14;
    --eh-under-bg: #fff0e0;

    /* Resource conflict overlay */
    --conflict-overlay: rgba(237, 23, 76, 0.18);
    --conflict-icon: #ed174c;

    /* LSE legacy badge */
    --legacy-bg: #ede7f6;
    --legacy-fg: #4527a0;
    --legacy-border: #b39ddb;
}

[data-theme="dark"] {
    /* Engagement State (dark variants -- WCAG AA 4.5:1 minimum) */
    --es-provisional-bg: #3a2f10;
    --es-provisional-fg: #ffd966;
    --es-provisional-border: #fdb913;
    --es-draft-bg: #0d2438;
    --es-draft-fg: #90caf9;
    --es-draft-border: #1e3a5f;
    --es-pending-bg: #3a2f10;
    --es-pending-fg: #ffd966;
    --es-pending-border: #856404;
    --es-active-bg: #14361e;
    --es-active-fg: #6cd189;
    --es-active-border: #1e5028;
    --es-closed-bg: #2a2a2a;
    --es-closed-fg: #adb5bd;
    --es-closed-border: #3a3a3a;

    /* Work Lifecycle (dark) -- alpha softened in parallel with light theme (2026-05-15). */
    --wl-forecast-stripe-color: rgba(180, 150, 255, 0.2);
    --wl-committed-bg: #6b3eb0;
    --wl-actual-progress-bg: #ffd966;

    /* Execution Health (dark variants) */
    --eh-ontrack: #6cd189;
    --eh-ontrack-bg: #14361e;
    --eh-over: #ff5577;
    --eh-over-bg: #401822;
    --eh-under: #ff9c40;
    --eh-under-bg: #3a2410;

    /* Resource conflict */
    --conflict-overlay: rgba(255, 85, 119, 0.22);
    --conflict-icon: #ff5577;

    /* Legacy badge */
    --legacy-bg: #2a2238;
    --legacy-fg: #d1c4e9;
    --legacy-border: #4527a0;
}

@charset "UTF-8";
/*!
* Start Bootstrap - Agency v6.0.3 (https://startbootstrap.com/theme/agency)
* Copyright 2013-2020 Start Bootstrap
* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-agency/blob/master/LICENSE)
*/
/*!
 * Bootstrap v4.5.3 (https://getbootstrap.com/)
 * Copyright 2011-2020 The Bootstrap Authors
 * Copyright 2011-2020 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
:root {
    --blue: #3d1a6f;
    --indigo: #6610f2;
    --purple: #6f42c1;
    --pink: #e83e8c;
    --red: #ed174c;
    --orange: #fd7e14;
    --yellow: #fdb913;
    --green: #28a745;
    --teal: #20c997;
    --cyan: #17a2b8;
    --white: #fff;
    --gray: #3d1a6f;
    --gray-dark: #343a40;
    --primary: #fdb913;
    --secondary: #3d1a6f;
    --success: #28a745;
    --info: #17a2b8;
    --warning: #fdb913;
    --danger: #ed174c;
    --light: #f8f9fa;
    --dark: #343a40;
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
    --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Outfit, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-family: sans-serif;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
    display: block;
}

body {
    margin: 0;
    font-family: 'Outfit', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--brand-primary, #3d1a6f);
    text-align: left;
    background-color: var(--bg-surface, #fff);
}

[tabindex="-1"]:focus:not(:focus-visible) {
    outline: 0 !important;
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title] {
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
    cursor: help;
    border-bottom: 0;
    -webkit-text-decoration-skip-ink: none;
    text-decoration-skip-ink: none;
}

address {
    margin-bottom: 1rem;
    font-style: normal;
    line-height: inherit;
}

ol,
ul,
dl {
    margin-top: 0;
    margin-bottom: 1rem;
}

    ol ol,
    ul ul,
    ol ul,
    ul ol {
        margin-bottom: 0;
    }

dt {
    font-weight: 700;
}

dd {
    margin-bottom: 0.5rem;
    margin-left: 0;
}

blockquote {
    margin: 0 0 1rem;
}

b,
strong {
    font-weight: bolder;
}

small {
    font-size: 80%;
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

a {
    color: var(--brand-danger, #ed174c);
    text-decoration: none;
    background-color: transparent;
}

    a:hover {
        color: var(--brand-accent-hover, #e6b301);
        text-decoration: underline;
    }

    a:not([href]):not([class]) {
        color: inherit;
        text-decoration: none;
    }

        a:not([href]):not([class]):hover {
            color: inherit;
            text-decoration: none;
        }

pre,
code,
kbd,
samp {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 1em;
}

pre {
    margin-top: 0;
    margin-bottom: 1rem;
    overflow: auto;
    -ms-overflow-style: scrollbar;
}

figure {
    margin: 0 0 1rem;
}

img {
    vertical-align: middle;
    border-style: none;
}

svg {
    overflow: hidden;
    vertical-align: middle;
}

table {
    border-collapse: collapse;
}

caption {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    color: var(--brand-primary, #3d1a6f);
    text-align: left;
    caption-side: bottom;
}

th {
    text-align: inherit;
    text-align: -webkit-match-parent;
}

label {
    display: inline-block;
    margin-bottom: 0.5rem;
}

button {
    border-radius: 0;
}

    button:focus {
        outline: 1px dotted;
        outline: 5px auto -webkit-focus-ring-color;
    }

input,
button,
select,
optgroup,
textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button,
input {
    overflow: visible;
}

button,
select {
    text-transform: none;
}

[role=button] {
    cursor: pointer;
}

select {
    word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
    -webkit-appearance: button;
}

    button:not(:disabled),
    [type=button]:not(:disabled),
    [type=reset]:not(:disabled),
    [type=submit]:not(:disabled) {
        cursor: pointer;
    }

    button::-moz-focus-inner,
    [type=button]::-moz-focus-inner,
    [type=reset]::-moz-focus-inner,
    [type=submit]::-moz-focus-inner {
        padding: 0;
        border-style: none;
    }

input[type=radio],
input[type=checkbox] {
    box-sizing: border-box;
    padding: 0;
}

textarea {
    overflow: auto;
    resize: vertical;
}

fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

legend {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    line-height: inherit;
    color: inherit;
    white-space: normal;
}

progress {
    vertical-align: baseline;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto;
}

[type=search] {
    outline-offset: -2px;
    -webkit-appearance: none;
}

    [type=search]::-webkit-search-decoration {
        -webkit-appearance: none;
    }

::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
}

output {
    display: inline-block;
}

summary {
    display: list-item;
    cursor: pointer;
}

template {
    display: none;
}

[hidden] {
    display: none !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    margin-bottom: 0.5rem;
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    line-height: 1.2;
}

.lead {
    font-size: 1.25rem;
    font-weight: 300;
}

.display-1 {
    font-size: 6rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-2 {
    font-size: 5.5rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-3 {
    font-size: 4.5rem;
    font-weight: 300;
    line-height: 1.2;
}

.display-4 {
    font-size: 3.5rem;
    font-weight: 300;
    line-height: 1.2;
}

hr {
    margin-top: 1rem;
    margin-bottom: 1rem;
    border: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

small,
.small {
    font-size: 80%;
    font-weight: 400;
}

mark,
.mark {
    padding: 0.2em;
    background-color: var(--status-warning-bg, #fcf8e3);
}

.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.list-inline {
    padding-left: 0;
    list-style: none;
}

.list-inline-item {
    display: inline-block;
}

    .list-inline-item:not(:last-child) {
        margin-right: 0.5rem;
    }

.initialism {
    font-size: 90%;
    text-transform: uppercase;
}

.blockquote {
    margin-bottom: 1rem;
    font-size: 1.25rem;
}

.blockquote-footer {
    display: block;
    font-size: 80%;
    color: var(--brand-primary, #3d1a6f);
}

    .blockquote-footer::before {
        content: "— ";
    }

.img-fluid {
    max-width: 100%;
    height: auto;
}

.img-thumbnail {
    padding: 0.25rem;
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 0.25rem;
    max-width: 100%;
    height: auto;
}

.figure {
    display: inline-block;
}

.figure-img {
    margin-bottom: 0.5rem;
    line-height: 1;
}

.figure-caption {
    font-size: 90%;
    color: var(--brand-primary, #3d1a6f);
}

code {
    font-size: 87.5%;
    color: var(--accent-pink, #e83e8c);
    word-wrap: break-word;
}

a > code {
    color: inherit;
}

kbd {
    padding: 0.2rem 0.4rem;
    font-size: 87.5%;
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #212529);
    border-radius: 0.2rem;
}

    kbd kbd {
        padding: 0;
        font-size: 100%;
        font-weight: 700;
    }

pre {
    display: block;
    font-size: 87.5%;
    color: var(--text-primary, #333);
}

    pre code {
        font-size: inherit;
        color: inherit;
        word-break: normal;
    }

.pre-scrollable {
    max-height: 340px;
    overflow-y: scroll;
}

.container,
.container-fluid,
.container-xl,
.container-lg,
.container-md,
.container-sm {
    width: 100%;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 576px) {
    .container-sm, .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container-md, .container-sm, .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container-lg, .container-md, .container-sm, .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container-xl, .container-lg, .container-md, .container-sm, .container {
        max-width: 1140px;
    }
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -0.75rem;
    margin-left: -0.75rem;
}

.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

    .no-gutters > .col,
    .no-gutters > [class*=col-] {
        padding-right: 0;
        padding-left: 0;
    }

.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 {
    position: relative;
    width: 100%;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

.col {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
}

.row-cols-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
}

.row-cols-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
}

.row-cols-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
}

.row-cols-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
}

.row-cols-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
}

.row-cols-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
}

.col-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
}

.col-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
}

.col-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
}

.col-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.col-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
}

.col-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
}

.col-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.col-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
}

.col-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
}

.col-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

.col-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
}

.col-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
}

.col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

.order-first {
    order: -1;
}

.order-last {
    order: 13;
}

.order-0 {
    order: 0;
}

.order-1 {
    order: 1;
}

.order-2 {
    order: 2;
}

.order-3 {
    order: 3;
}

.order-4 {
    order: 4;
}

.order-5 {
    order: 5;
}

.order-6 {
    order: 6;
}

.order-7 {
    order: 7;
}

.order-8 {
    order: 8;
}

.order-9 {
    order: 9;
}

.order-10 {
    order: 10;
}

.order-11 {
    order: 11;
}

.order-12 {
    order: 12;
}

.offset-1 {
    margin-left: 8.3333333333%;
}

.offset-2 {
    margin-left: 16.6666666667%;
}

.offset-3 {
    margin-left: 25%;
}

.offset-4 {
    margin-left: 33.3333333333%;
}

.offset-5 {
    margin-left: 41.6666666667%;
}

.offset-6 {
    margin-left: 50%;
}

.offset-7 {
    margin-left: 58.3333333333%;
}

.offset-8 {
    margin-left: 66.6666666667%;
}

.offset-9 {
    margin-left: 75%;
}

.offset-10 {
    margin-left: 83.3333333333%;
}

.offset-11 {
    margin-left: 91.6666666667%;
}

@media (min-width: 576px) {
    .col-sm {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
    }

    .row-cols-sm-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .row-cols-sm-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .row-cols-sm-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .row-cols-sm-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .row-cols-sm-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }

    .row-cols-sm-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-sm-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-sm-1 {
        flex: 0 0 8.3333333333%;
        max-width: 8.3333333333%;
    }

    .col-sm-2 {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-sm-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-sm-4 {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .col-sm-5 {
        flex: 0 0 41.6666666667%;
        max-width: 41.6666666667%;
    }

    .col-sm-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-sm-7 {
        flex: 0 0 58.3333333333%;
        max-width: 58.3333333333%;
    }

    .col-sm-8 {
        flex: 0 0 66.6666666667%;
        max-width: 66.6666666667%;
    }

    .col-sm-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-sm-10 {
        flex: 0 0 83.3333333333%;
        max-width: 83.3333333333%;
    }

    .col-sm-11 {
        flex: 0 0 91.6666666667%;
        max-width: 91.6666666667%;
    }

    .col-sm-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-sm-first {
        order: -1;
    }

    .order-sm-last {
        order: 13;
    }

    .order-sm-0 {
        order: 0;
    }

    .order-sm-1 {
        order: 1;
    }

    .order-sm-2 {
        order: 2;
    }

    .order-sm-3 {
        order: 3;
    }

    .order-sm-4 {
        order: 4;
    }

    .order-sm-5 {
        order: 5;
    }

    .order-sm-6 {
        order: 6;
    }

    .order-sm-7 {
        order: 7;
    }

    .order-sm-8 {
        order: 8;
    }

    .order-sm-9 {
        order: 9;
    }

    .order-sm-10 {
        order: 10;
    }

    .order-sm-11 {
        order: 11;
    }

    .order-sm-12 {
        order: 12;
    }

    .offset-sm-0 {
        margin-left: 0;
    }

    .offset-sm-1 {
        margin-left: 8.3333333333%;
    }

    .offset-sm-2 {
        margin-left: 16.6666666667%;
    }

    .offset-sm-3 {
        margin-left: 25%;
    }

    .offset-sm-4 {
        margin-left: 33.3333333333%;
    }

    .offset-sm-5 {
        margin-left: 41.6666666667%;
    }

    .offset-sm-6 {
        margin-left: 50%;
    }

    .offset-sm-7 {
        margin-left: 58.3333333333%;
    }

    .offset-sm-8 {
        margin-left: 66.6666666667%;
    }

    .offset-sm-9 {
        margin-left: 75%;
    }

    .offset-sm-10 {
        margin-left: 83.3333333333%;
    }

    .offset-sm-11 {
        margin-left: 91.6666666667%;
    }
}

@media (min-width: 768px) {
    .col-md {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
    }

    .row-cols-md-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .row-cols-md-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .row-cols-md-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .row-cols-md-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .row-cols-md-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }

    .row-cols-md-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-md-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-md-1 {
        flex: 0 0 8.3333333333%;
        max-width: 8.3333333333%;
    }

    .col-md-2 {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-md-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-md-4 {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .col-md-5 {
        flex: 0 0 41.6666666667%;
        max-width: 41.6666666667%;
    }

    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-md-7 {
        flex: 0 0 58.3333333333%;
        max-width: 58.3333333333%;
    }

    .col-md-8 {
        flex: 0 0 66.6666666667%;
        max-width: 66.6666666667%;
    }

    .col-md-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-md-10 {
        flex: 0 0 83.3333333333%;
        max-width: 83.3333333333%;
    }

    .col-md-11 {
        flex: 0 0 91.6666666667%;
        max-width: 91.6666666667%;
    }

    .col-md-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-md-first {
        order: -1;
    }

    .order-md-last {
        order: 13;
    }

    .order-md-0 {
        order: 0;
    }

    .order-md-1 {
        order: 1;
    }

    .order-md-2 {
        order: 2;
    }

    .order-md-3 {
        order: 3;
    }

    .order-md-4 {
        order: 4;
    }

    .order-md-5 {
        order: 5;
    }

    .order-md-6 {
        order: 6;
    }

    .order-md-7 {
        order: 7;
    }

    .order-md-8 {
        order: 8;
    }

    .order-md-9 {
        order: 9;
    }

    .order-md-10 {
        order: 10;
    }

    .order-md-11 {
        order: 11;
    }

    .order-md-12 {
        order: 12;
    }

    .offset-md-0 {
        margin-left: 0;
    }

    .offset-md-1 {
        margin-left: 8.3333333333%;
    }

    .offset-md-2 {
        margin-left: 16.6666666667%;
    }

    .offset-md-3 {
        margin-left: 25%;
    }

    .offset-md-4 {
        margin-left: 33.3333333333%;
    }

    .offset-md-5 {
        margin-left: 41.6666666667%;
    }

    .offset-md-6 {
        margin-left: 50%;
    }

    .offset-md-7 {
        margin-left: 58.3333333333%;
    }

    .offset-md-8 {
        margin-left: 66.6666666667%;
    }

    .offset-md-9 {
        margin-left: 75%;
    }

    .offset-md-10 {
        margin-left: 83.3333333333%;
    }

    .offset-md-11 {
        margin-left: 91.6666666667%;
    }
}

@media (min-width: 992px) {
    .col-lg {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
    }

    .row-cols-lg-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .row-cols-lg-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .row-cols-lg-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .row-cols-lg-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .row-cols-lg-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }

    .row-cols-lg-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-lg-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-lg-1 {
        flex: 0 0 8.3333333333%;
        max-width: 8.3333333333%;
    }

    .col-lg-2 {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-lg-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-lg-4 {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .col-lg-5 {
        flex: 0 0 41.6666666667%;
        max-width: 41.6666666667%;
    }

    .col-lg-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-lg-7 {
        flex: 0 0 58.3333333333%;
        max-width: 58.3333333333%;
    }

    .col-lg-8 {
        flex: 0 0 66.6666666667%;
        max-width: 66.6666666667%;
    }

    .col-lg-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-lg-10 {
        flex: 0 0 83.3333333333%;
        max-width: 83.3333333333%;
    }

    .col-lg-11 {
        flex: 0 0 91.6666666667%;
        max-width: 91.6666666667%;
    }

    .col-lg-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-lg-first {
        order: -1;
    }

    .order-lg-last {
        order: 13;
    }

    .order-lg-0 {
        order: 0;
    }

    .order-lg-1 {
        order: 1;
    }

    .order-lg-2 {
        order: 2;
    }

    .order-lg-3 {
        order: 3;
    }

    .order-lg-4 {
        order: 4;
    }

    .order-lg-5 {
        order: 5;
    }

    .order-lg-6 {
        order: 6;
    }

    .order-lg-7 {
        order: 7;
    }

    .order-lg-8 {
        order: 8;
    }

    .order-lg-9 {
        order: 9;
    }

    .order-lg-10 {
        order: 10;
    }

    .order-lg-11 {
        order: 11;
    }

    .order-lg-12 {
        order: 12;
    }

    .offset-lg-0 {
        margin-left: 0;
    }

    .offset-lg-1 {
        margin-left: 8.3333333333%;
    }

    .offset-lg-2 {
        margin-left: 16.6666666667%;
    }

    .offset-lg-3 {
        margin-left: 25%;
    }

    .offset-lg-4 {
        margin-left: 33.3333333333%;
    }

    .offset-lg-5 {
        margin-left: 41.6666666667%;
    }

    .offset-lg-6 {
        margin-left: 50%;
    }

    .offset-lg-7 {
        margin-left: 58.3333333333%;
    }

    .offset-lg-8 {
        margin-left: 66.6666666667%;
    }

    .offset-lg-9 {
        margin-left: 75%;
    }

    .offset-lg-10 {
        margin-left: 83.3333333333%;
    }

    .offset-lg-11 {
        margin-left: 91.6666666667%;
    }
}

@media (min-width: 1200px) {
    .col-xl {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
    }

    .row-cols-xl-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .row-cols-xl-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .row-cols-xl-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .row-cols-xl-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .row-cols-xl-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }

    .row-cols-xl-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-xl-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }

    .col-xl-1 {
        flex: 0 0 8.3333333333%;
        max-width: 8.3333333333%;
    }

    .col-xl-2 {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }

    .col-xl-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }

    .col-xl-4 {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }

    .col-xl-5 {
        flex: 0 0 41.6666666667%;
        max-width: 41.6666666667%;
    }

    .col-xl-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-xl-7 {
        flex: 0 0 58.3333333333%;
        max-width: 58.3333333333%;
    }

    .col-xl-8 {
        flex: 0 0 66.6666666667%;
        max-width: 66.6666666667%;
    }

    .col-xl-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }

    .col-xl-10 {
        flex: 0 0 83.3333333333%;
        max-width: 83.3333333333%;
    }

    .col-xl-11 {
        flex: 0 0 91.6666666667%;
        max-width: 91.6666666667%;
    }

    .col-xl-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .order-xl-first {
        order: -1;
    }

    .order-xl-last {
        order: 13;
    }

    .order-xl-0 {
        order: 0;
    }

    .order-xl-1 {
        order: 1;
    }

    .order-xl-2 {
        order: 2;
    }

    .order-xl-3 {
        order: 3;
    }

    .order-xl-4 {
        order: 4;
    }

    .order-xl-5 {
        order: 5;
    }

    .order-xl-6 {
        order: 6;
    }

    .order-xl-7 {
        order: 7;
    }

    .order-xl-8 {
        order: 8;
    }

    .order-xl-9 {
        order: 9;
    }

    .order-xl-10 {
        order: 10;
    }

    .order-xl-11 {
        order: 11;
    }

    .order-xl-12 {
        order: 12;
    }

    .offset-xl-0 {
        margin-left: 0;
    }

    .offset-xl-1 {
        margin-left: 8.3333333333%;
    }

    .offset-xl-2 {
        margin-left: 16.6666666667%;
    }

    .offset-xl-3 {
        margin-left: 25%;
    }

    .offset-xl-4 {
        margin-left: 33.3333333333%;
    }

    .offset-xl-5 {
        margin-left: 41.6666666667%;
    }

    .offset-xl-6 {
        margin-left: 50%;
    }

    .offset-xl-7 {
        margin-left: 58.3333333333%;
    }

    .offset-xl-8 {
        margin-left: 66.6666666667%;
    }

    .offset-xl-9 {
        margin-left: 75%;
    }

    .offset-xl-10 {
        margin-left: 83.3333333333%;
    }

    .offset-xl-11 {
        margin-left: 91.6666666667%;
    }
}

.table {
    width: 100%;
    margin-bottom: 1rem;
    color: var(--text-primary, #333);
}

    .table th,
    .table td {
        padding: 0.75rem;
        vertical-align: top;
        border-top: 1px solid var(--border-default, #ddd);
    }

    .table thead th {
        vertical-align: bottom;
        border-bottom: 2px solid var(--border-default, #ddd);
    }

    .table tbody + tbody {
        border-top: 2px solid var(--border-default, #ddd);
    }

.table-sm th,
.table-sm td {
    padding: 0.3rem;
}

.table-bordered {
    border: 1px solid var(--border-default, #ddd);
}

    .table-bordered th,
    .table-bordered td {
        border: 1px solid var(--border-default, #ddd);
    }

    .table-bordered thead th,
    .table-bordered thead td {
        border-bottom-width: 2px;
    }

.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
    border: 0;
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.table-hover tbody tr:hover {
    color: var(--text-primary, #333);
    background-color: rgba(0, 0, 0, 0.075);
}

.table-primary,
.table-primary > th,
.table-primary > td {
    background-color: var(--status-warning-bg, #fff2c7);
}

    .table-primary th,
    .table-primary td,
    .table-primary thead th,
    .table-primary tbody + tbody {
        border-color: var(--status-warning-border, #fee796);
    }

.table-hover .table-primary:hover {
    background-color: var(--status-warning-tint, #ffecae);
}

    .table-hover .table-primary:hover > td,
    .table-hover .table-primary:hover > th {
        background-color: var(--status-warning-tint, #ffecae);
    }

.table-secondary,
.table-secondary > th,
.table-secondary > td {
    background-color: var(--bg-muted, #d6d8db);
}

    .table-secondary th,
    .table-secondary td,
    .table-secondary thead th,
    .table-secondary tbody + tbody {
        border-color: var(--border-default, #b3b7bb);
    }

.table-hover .table-secondary:hover {
    background-color: var(--bg-muted, #c8cbcf);
}

    .table-hover .table-secondary:hover > td,
    .table-hover .table-secondary:hover > th {
        background-color: var(--bg-muted, #c8cbcf);
    }

.table-success,
.table-success > th,
.table-success > td {
    background-color: var(--status-success-border, #c3e6cb);
}

    .table-success th,
    .table-success td,
    .table-success thead th,
    .table-success tbody + tbody {
        border-color: var(--status-success-border, #8fd19e);
    }

.table-hover .table-success:hover {
    background-color: var(--status-success-tint, #b1dfbb);
}

    .table-hover .table-success:hover > td,
    .table-hover .table-success:hover > th {
        background-color: var(--status-success-tint, #b1dfbb);
    }

.table-info,
.table-info > th,
.table-info > td {
    background-color: var(--status-info-border, #bee5eb);
}

    .table-info th,
    .table-info td,
    .table-info thead th,
    .table-info tbody + tbody {
        border-color: var(--status-info-border, #86cfda);
    }

.table-hover .table-info:hover {
    background-color: var(--status-info-tint, #abdde5);
}

    .table-hover .table-info:hover > td,
    .table-hover .table-info:hover > th {
        background-color: var(--status-info-tint, #abdde5);
    }

.table-warning,
.table-warning > th,
.table-warning > td {
    background-color: var(--status-warning-bg, #fff2c7);
}

    .table-warning th,
    .table-warning td,
    .table-warning thead th,
    .table-warning tbody + tbody {
        border-color: var(--status-warning-border, #fee796);
    }

.table-hover .table-warning:hover {
    background-color: var(--status-warning-tint, #ffecae);
}

    .table-hover .table-warning:hover > td,
    .table-hover .table-warning:hover > th {
        background-color: var(--status-warning-tint, #ffecae);
    }

.table-danger,
.table-danger > th,
.table-danger > td {
    background-color: var(--status-danger-border, #f5c6cb);
}

    .table-danger th,
    .table-danger td,
    .table-danger thead th,
    .table-danger tbody + tbody {
        border-color: var(--status-danger-border, #ed969e);
    }

.table-hover .table-danger:hover {
    background-color: var(--status-danger-tint, #f1b0b7);
}

    .table-hover .table-danger:hover > td,
    .table-hover .table-danger:hover > th {
        background-color: var(--status-danger-tint, #f1b0b7);
    }

.table-light,
.table-light > th,
.table-light > td {
    background-color: var(--bg-surface, #fdfdfe);
}

    .table-light th,
    .table-light td,
    .table-light thead th,
    .table-light tbody + tbody {
        border-color: var(--bg-surface, #fbfcfc);
    }

.table-hover .table-light:hover {
    background-color: var(--bg-muted, #ececf6);
}

    .table-hover .table-light:hover > td,
    .table-hover .table-light:hover > th {
        background-color: var(--bg-muted, #ececf6);
    }

.table-dark,
.table-dark > th,
.table-dark > td {
    background-color: var(--bg-muted, #c6c8ca);
}

    .table-dark th,
    .table-dark td,
    .table-dark thead th,
    .table-dark tbody + tbody {
        border-color: var(--border-default, #95999c);
    }

.table-hover .table-dark:hover {
    background-color: var(--bg-muted, #b9bbbe);
}

    .table-hover .table-dark:hover > td,
    .table-hover .table-dark:hover > th {
        background-color: var(--bg-muted, #b9bbbe);
    }

.table-active,
.table-active > th,
.table-active > td {
    background-color: rgba(0, 0, 0, 0.075);
}

.table-hover .table-active:hover {
    background-color: rgba(0, 0, 0, 0.075);
}

    .table-hover .table-active:hover > td,
    .table-hover .table-active:hover > th {
        background-color: rgba(0, 0, 0, 0.075);
    }

.table .thead-dark th {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #343a40);
    border-color: var(--text-primary, #454d55);
}

.table .thead-light th {
    color: var(--text-primary, #333);
    background-color: var(--bg-muted, #e9ecef);
    border-color: var(--border-default, #ddd);
}

.table-dark {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #343a40);
}

    .table-dark th,
    .table-dark td,
    .table-dark thead th {
        border-color: var(--text-primary, #454d55);
    }

    .table-dark.table-bordered {
        border: 0;
    }

    .table-dark.table-striped tbody tr:nth-of-type(odd) {
        background-color: rgba(255, 255, 255, 0.05);
    }

    .table-dark.table-hover tbody tr:hover {
        color: var(--text-on-dark, #fff);
        background-color: rgba(255, 255, 255, 0.075);
    }

@media (max-width: 575.98px) {
    .table-responsive-sm {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

        .table-responsive-sm > .table-bordered {
            border: 0;
        }
}

@media (max-width: 767.98px) {
    .table-responsive-md {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

        .table-responsive-md > .table-bordered {
            border: 0;
        }
}

@media (max-width: 991.98px) {
    .table-responsive-lg {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

        .table-responsive-lg > .table-bordered {
            border: 0;
        }
}

@media (max-width: 1199.98px) {
    .table-responsive-xl {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

        .table-responsive-xl > .table-bordered {
            border: 0;
        }
}

.table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

    .table-responsive > .table-bordered {
        border: 0;
    }

.form-control {
    display: block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-primary, #333);
    background-color: var(--bg-surface, #fff);
    background-clip: padding-box;
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 0.25rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .form-control {
        transition: none;
    }
}

.form-control::-ms-expand {
    background-color: transparent;
    border: 0;
}

.form-control:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 var(--text-primary, #495057);
}

.form-control:focus {
    color: var(--text-primary, #333);
    background-color: var(--bg-surface, #fff);
    border-color: var(--brand-accent-light, #ffeeb5);
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
}

.form-control::-moz-placeholder {
    color: var(--brand-primary, #3d1a6f);
    opacity: 1;
}

.form-control:-ms-input-placeholder {
    color: var(--brand-primary, #3d1a6f);
    opacity: 1;
}

.form-control::placeholder {
    color: var(--brand-primary, #3d1a6f);
    opacity: 1;
}

.form-control:disabled, .form-control[readonly] {
    background-color: var(--bg-muted, #e9ecef);
    opacity: 1;
}

input[type=date].form-control,
input[type=time].form-control,
input[type=datetime-local].form-control,
input[type=month].form-control {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

select.form-control:focus::-ms-value {
    color: var(--text-primary, #333);
    background-color: var(--bg-surface, #fff);
}

.form-control-file,
.form-control-range {
    display: block;
    width: 100%;
}

.col-form-label {
    padding-top: calc(0.375rem + 1px);
    padding-bottom: calc(0.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.5;
}

.col-form-label-lg {
    padding-top: calc(0.5rem + 1px);
    padding-bottom: calc(0.5rem + 1px);
    font-size: 1.25rem;
    line-height: 1.5;
}

.col-form-label-sm {
    padding-top: calc(0.25rem + 1px);
    padding-bottom: calc(0.25rem + 1px);
    font-size: 0.875rem;
    line-height: 1.5;
}

.form-control-plaintext {
    display: block;
    width: 100%;
    padding: 0.375rem 0;
    margin-bottom: 0;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--text-primary, #333);
    background-color: transparent;
    border: solid transparent;
    border-width: 1px 0;
}

    .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
        padding-right: 0;
        padding-left: 0;
    }

.form-control-sm {
    height: calc(1.5em + 0.5rem + 2px);
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.form-control-lg {
    height: calc(1.5em + 1rem + 2px);
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
    font-family: Outfit;
}

select.form-control[size], select.form-control[multiple] {
    height: auto;
}

textarea.form-control {
    height: auto;
}

.form-group {
    margin-bottom: 1rem;
}

.form-text {
    display: block;
    margin-top: 0.25rem;
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

    .form-row > .col,
    .form-row > [class*=col-] {
        padding-right: 5px;
        padding-left: 5px;
    }

.form-check {
    position: relative;
    display: block;
    padding-left: 1.25rem;
}

.form-check-input {
    position: absolute;
    margin-top: 0.3rem;
    margin-left: -1.25rem;
}

    .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
        color: var(--brand-primary, #3d1a6f);
    }

.form-check-label {
    margin-bottom: 0;
}

.form-check-inline {
    display: inline-flex;
    align-items: center;
    padding-left: 0;
    margin-right: 0.75rem;
}

    .form-check-inline .form-check-input {
        position: static;
        margin-top: 0;
        margin-right: 0.3125rem;
        margin-left: 0;
    }

.valid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 80%;
    color: var(--status-success, #28a745);
}

.valid-tooltip {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.25rem 0.5rem;
    margin-top: 0.1rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--text-on-dark, #fff);
    background-color: rgba(40, 167, 69, 0.9);
    border-radius: 0.25rem;
}

.was-validated :valid ~ .valid-feedback,
.was-validated :valid ~ .valid-tooltip,
.is-valid ~ .valid-feedback,
.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .form-control:valid, .form-control.is-valid {
    border-color: var(--status-success, #28a745);
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

    .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
        border-color: var(--status-success, #28a745);
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    }

.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
    padding-right: calc(1.5em + 0.75rem);
    background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:valid, .custom-select.is-valid {
    border-color: var(--status-success, #28a745);
    padding-right: calc(0.75em + 2.3125rem);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") var(--bg-surface, #fff) no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

    .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
        border-color: var(--status-success, #28a745);
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    }

.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
    color: var(--status-success, #28a745);
}

.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
    display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
    color: var(--status-success, #28a745);
}

    .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
        border-color: var(--status-success, #28a745);
    }

.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
    border-color: var(--status-success, #34ce57);
    background-color: var(--status-success, #34ce57);
}

.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: var(--status-success, #28a745);
}

.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
    border-color: var(--status-success, #28a745);
}

.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
    border-color: var(--status-success, #28a745);
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.invalid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 80%;
    color: var(--status-danger, #dc3545);
}

.invalid-tooltip {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.25rem 0.5rem;
    margin-top: 0.1rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--text-on-dark, #fff);
    background-color: rgba(220, 53, 69, 0.9);
    border-radius: 0.25rem;
}

.was-validated :invalid ~ .invalid-feedback,
.was-validated :invalid ~ .invalid-tooltip,
.is-invalid ~ .invalid-feedback,
.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .form-control:invalid, .form-control.is-invalid {
    border-color: var(--status-danger, #dc3545);
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

    .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
        border-color: var(--status-danger, #dc3545);
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    }

.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
    padding-right: calc(1.5em + 0.75rem);
    background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:invalid, .custom-select.is-invalid {
    border-color: var(--status-danger, #dc3545);
    padding-right: calc(0.75em + 2.3125rem);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") var(--bg-surface, #fff) no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

    .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
        border-color: var(--status-danger, #dc3545);
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
    }

.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
    color: var(--status-danger, #dc3545);
}

.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
    display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
    color: var(--status-danger, #dc3545);
}

    .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
        border-color: var(--status-danger, #dc3545);
    }

.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
    border-color: var(--status-danger, #e4606d);
    background-color: var(--status-danger, #e4606d);
}

.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: var(--status-danger, #dc3545);
}

.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
    border-color: var(--status-danger, #dc3545);
}

.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
    border-color: var(--status-danger, #dc3545);
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-inline {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
}

    .form-inline .form-check {
        width: 100%;
    }

@media (min-width: 576px) {
    .form-inline label {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 0;
    }

    .form-inline .form-group {
        display: flex;
        flex: 0 0 auto;
        flex-flow: row wrap;
        align-items: center;
        margin-bottom: 0;
    }

    .form-inline .form-control {
        display: inline-block;
        width: auto;
        vertical-align: middle;
    }

    .form-inline .form-control-plaintext {
        display: inline-block;
    }

    .form-inline .input-group,
    .form-inline .custom-select {
        width: auto;
    }

    .form-inline .form-check {
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        padding-left: 0;
    }

    .form-inline .form-check-input {
        position: relative;
        flex-shrink: 0;
        margin-top: 0;
        margin-right: 0.25rem;
        margin-left: 0;
    }

    .form-inline .custom-control {
        align-items: center;
        justify-content: center;
    }

    .form-inline .custom-control-label {
        margin-bottom: 0;
    }
}

.btn {
    display: inline-block;
    font-weight: 400;
    color: var(--text-primary, #333);
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 0.25rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .btn {
        transition: none;
    }
}

.btn:hover {
    color: var(--text-primary, #333);
    text-decoration: none;
}

.btn:focus, .btn.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
}

.btn.disabled, .btn:disabled {
    opacity: 0.65;
}

.btn:not(:disabled):not(.disabled) {
    cursor: pointer;
}

a.btn.disabled,
fieldset:disabled a.btn {
    pointer-events: none;
}

.btn-primary {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
}

    .btn-primary:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-magenta, #7d1d61);
        border-color: var(--brand-magenta, #7d1d61);
    }

    .btn-primary:focus, .btn-primary.focus {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-magenta, #7d1d61);
        border-color: var(--brand-magenta, #7d1d61);
        box-shadow: 0 0 0 0.2rem rgba(254, 216, 84, 0.5);
    }

    .btn-primary.disabled, .btn-primary:disabled {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-magenta, #7d1d61);
        border-color: var(--brand-magenta, #7d1d61);
    }

    .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-magenta, #7d1d61);
        border-color: var(--brand-magenta, #7d1d61);
    }

        .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(254, 216, 84, 0.5);
        }

.btn-secondary {
    color: var(--brand-primary, #3d1a6f);
    background-color: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
}

    .btn-secondary:hover {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #f3bd01);
        border-color: var(--brand-accent-hover, #f3bd01);
    }

    .btn-secondary:focus, .btn-secondary.focus {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #f3bd01);
        border-color: var(--brand-accent-hover, #f3bd01);
        box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
    }

    .btn-secondary.disabled, .btn-secondary:disabled {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #f3bd01);
        border-color: var(--brand-accent-hover, #f3bd01);
    }

    .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #f3bd01);
        border-color: var(--brand-accent-hover, #f3bd01);
    }

        .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
        }

/* btn-success: --status-success #28a745 with white = 3.13:1, fails WCAG AA in
   both modes. Solid bgs use literal darker greens (#1e7e34 / #155724) that
   pass AA; --status-success token unchanged for badges/alerts/text. */
.btn-success {
    color: var(--text-on-dark, #fff);
    background-color: #1e7e34;
    border-color: #1e7e34;
}

    .btn-success:hover {
        color: var(--text-on-dark, #fff);
        background-color: #155724;
        border-color: #155724;
    }

    .btn-success:focus, .btn-success.focus {
        color: var(--text-on-dark, #fff);
        background-color: #155724;
        border-color: #155724;
        box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
    }

    .btn-success.disabled, .btn-success:disabled {
        color: var(--text-on-dark, #fff);
        background-color: #1e7e34;
        border-color: #1e7e34;
    }

    .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: #155724;
        border-color: #155724;
    }

        .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
        }

.btn-info {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-info, #17a2b8);
    border-color: var(--status-info, #17a2b8);
}

    .btn-info:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #138496);
        border-color: var(--status-info, #117a8b);
    }

    .btn-info:focus, .btn-info.focus {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #138496);
        border-color: var(--status-info, #117a8b);
        box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
    }

    .btn-info.disabled, .btn-info:disabled {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #17a2b8);
        border-color: var(--status-info, #17a2b8);
    }

    .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #117a8b);
        border-color: var(--status-info-hover, #10707f);
    }

        .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
        }

.btn-warning {
    color: var(--brand-primary, #3d1a6f);
    background-color: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
}

    .btn-warning:hover {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #fec810);
        border-color: var(--brand-accent-hover, #fec503);
    }

    .btn-warning:focus, .btn-warning.focus {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #fec810);
        border-color: var(--brand-accent-hover, #fec503);
        box-shadow: 0 0 0 0.2rem rgba(254, 216, 84, 0.5);
    }

    .btn-warning.disabled, .btn-warning:disabled {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

    .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent-hover, #fec503);
        border-color: var(--brand-accent-hover, #f3bd01);
    }

        .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(254, 216, 84, 0.5);
        }

/* btn-danger: --brand-danger #ed174c with white = 4.35:1, just below WCAG AA
   in light mode and worse in dark (#f44060 = 3.65:1). Solid bg uses literal
   #d41544 (5.23:1) -- same color the hover/focus already had, just promoted
   to normal. Hover/active step darker. --brand-danger token unchanged. */
.btn-danger {
    color: var(--text-on-dark, #fff);
    background-color: #d41544;
    border-color: #d41544;
}

    .btn-danger:hover {
        color: var(--text-on-dark, #fff);
        background-color: #b8123a;
        border-color: #b8123a;
    }

    .btn-danger:focus, .btn-danger.focus {
        color: var(--text-on-dark, #fff);
        background-color: #b8123a;
        border-color: #b8123a;
        box-shadow: 0 0 0 0.2rem rgba(237, 23, 76, 0.5);
    }

    .btn-danger.disabled, .btn-danger:disabled {
        color: var(--text-on-dark, #fff);
        background-color: #d41544;
        border-color: #d41544;
    }

    .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-danger-hover, #be133c);
        border-color: var(--brand-danger-hover, #be133c);
    }

        .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(237, 23, 76, 0.5);
        }

.btn-light {
    color: var(--text-primary, #333);
    background-color: var(--bg-subtle, #fafafa);
    border-color: var(--bg-subtle, #f8f9fa);
}

    .btn-light:hover {
        color: var(--text-primary, #333);
        background-color: var(--bg-muted, #e2e6ea);
        border-color: var(--bg-muted, #dae0e5);
    }

    .btn-light:focus, .btn-light.focus {
        color: var(--text-primary, #333);
        background-color: var(--bg-muted, #e2e6ea);
        border-color: var(--bg-muted, #dae0e5);
        box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
    }

    .btn-light.disabled, .btn-light:disabled {
        color: var(--text-primary, #333);
        background-color: var(--bg-subtle, #fafafa);
        border-color: var(--bg-subtle, #f8f9fa);
    }

    .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {
        color: var(--text-primary, #333);
        background-color: var(--bg-muted, #dae0e5);
        border-color: var(--border-default, #d3d9df);
    }

        .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
        }

.btn-dark {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #343a40);
    border-color: var(--text-primary, #343a40);
}

    .btn-dark:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary-hover, #23272b);
        border-color: var(--text-primary-hover, #1d2124);
    }

    .btn-dark:focus, .btn-dark.focus {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary-hover, #23272b);
        border-color: var(--text-primary-hover, #1d2124);
        box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
    }

    .btn-dark.disabled, .btn-dark:disabled {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary, #343a40);
        border-color: var(--text-primary, #343a40);
    }

    .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary-hover, #1d2124);
        border-color: var(--text-primary-hover, #171a1d);
    }

        .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
        }

.btn-outline-primary {
    color: black;
    border-color: var(--brand-accent, #fdb913);
}

    .btn-outline-primary:hover {
        color: black;
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

    .btn-outline-primary:focus, .btn-outline-primary.focus {
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
    }

    .btn-outline-primary.disabled, .btn-outline-primary:disabled {
        color: black;
        background-color: transparent;
    }

    .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-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

        .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
        }

.btn-outline-secondary {
    color: var(--text-primary, #333);
    border-color: var(--text-secondary, #6c757d);
}

    .btn-outline-secondary:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-secondary, #6c757d);
        border-color: var(--text-secondary, #6c757d);
    }

    .btn-outline-secondary:focus, .btn-outline-secondary.focus {
        box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
    }

    .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
        color: var(--text-primary, #333);
        background-color: transparent;
    }

    .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-secondary, #6c757d);
        border-color: var(--text-secondary, #6c757d);
    }

        .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
        }

.btn-outline-success {
    color: var(--status-success, #28a745);
    border-color: var(--status-success, #28a745);
}

    .btn-outline-success:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-success, #28a745);
        border-color: var(--status-success, #28a745);
    }

    .btn-outline-success:focus, .btn-outline-success.focus {
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
    }

    .btn-outline-success.disabled, .btn-outline-success:disabled {
        color: var(--status-success, #28a745);
        background-color: transparent;
    }

    .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-success, #28a745);
        border-color: var(--status-success, #28a745);
    }

        .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
        }

.btn-outline-info {
    color: var(--status-info, #17a2b8);
    border-color: var(--status-info, #17a2b8);
}

    .btn-outline-info:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #17a2b8);
        border-color: var(--status-info, #17a2b8);
    }

    .btn-outline-info:focus, .btn-outline-info.focus {
        box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
    }

    .btn-outline-info.disabled, .btn-outline-info:disabled {
        color: var(--status-info, #17a2b8);
        background-color: transparent;
    }

    .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info, #17a2b8);
        border-color: var(--status-info, #17a2b8);
    }

        .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
        }

.btn-outline-warning {
    color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-accent, #fdb913);
}

    .btn-outline-warning:hover {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

    .btn-outline-warning:focus, .btn-outline-warning.focus {
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
    }

    .btn-outline-warning.disabled, .btn-outline-warning:disabled {
        color: var(--brand-primary, #3d1a6f);
        background-color: transparent;
    }

    .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

        .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
        }

.btn-outline-danger {
    color: var(--brand-danger, #ed174c);
    border-color: var(--brand-danger, #ed174c);
}

    .btn-outline-danger:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-danger, #ed174c);
        border-color: var(--brand-danger, #ed174c);
    }

    .btn-outline-danger:focus, .btn-outline-danger.focus {
        box-shadow: 0 0 0 0.2rem rgba(237, 23, 76, 0.5);
    }

    .btn-outline-danger.disabled, .btn-outline-danger:disabled {
        color: var(--brand-danger, #ed174c);
        background-color: transparent;
    }

    .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-danger, #ed174c);
        border-color: var(--brand-danger, #ed174c);
    }

        .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(237, 23, 76, 0.5);
        }

.btn-outline-light {
    color: var(--bg-subtle, #f8f9fa);
    border-color: var(--bg-subtle, #f8f9fa);
}

    .btn-outline-light:hover {
        color: var(--text-primary, #333);
        background-color: var(--bg-subtle, #fafafa);
        border-color: var(--bg-subtle, #f8f9fa);
    }

    .btn-outline-light:focus, .btn-outline-light.focus {
        box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
    }

    .btn-outline-light.disabled, .btn-outline-light:disabled {
        color: var(--bg-subtle, #f8f9fa);
        background-color: transparent;
    }

    .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
        color: var(--text-primary, #333);
        background-color: var(--bg-subtle, #fafafa);
        border-color: var(--bg-subtle, #f8f9fa);
    }

        .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
        }

.btn-outline-dark {
    color: var(--text-primary, #343a40);
    border-color: var(--text-primary, #343a40);
}

    .btn-outline-dark:hover {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary, #343a40);
        border-color: var(--text-primary, #343a40);
    }

    .btn-outline-dark:focus, .btn-outline-dark.focus {
        box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
    }

    .btn-outline-dark.disabled, .btn-outline-dark:disabled {
        color: var(--text-primary, #343a40);
        background-color: transparent;
    }

    .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary, #343a40);
        border-color: var(--text-primary, #343a40);
    }

        .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {
            box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
        }

.btn-link {
    font-weight: 400;
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

    .btn-link:hover {
        color: var(--brand-primary, #3d1a6f);
        text-decoration: underline;
    }

    .btn-link:focus, .btn-link.focus {
        text-decoration: underline;
    }

    .btn-link:disabled, .btn-link.disabled {
        color: var(--brand-primary, #3d1a6f);
        pointer-events: none;
    }

.btn-lg, .btn-group-lg > .btn {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

.btn-sm, .btn-group-sm > .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.btn-block {
    display: block;
    width: 100%;
}

    .btn-block + .btn-block {
        margin-top: 0.5rem;
    }

input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
    width: 100%;
}

.fade {
    transition: opacity 0.15s linear;
}

@media (prefers-reduced-motion: reduce) {
    .fade {
        transition: none;
    }
}

.fade:not(.show) {
    opacity: 0;
}

.collapse:not(.show) {
    display: none;
}

.collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    transition: height 0.35s ease;
}

@media (prefers-reduced-motion: reduce) {
    .collapsing {
        transition: none;
    }
}

.dropup,
.dropright,
.dropdown,
.dropleft {
    position: relative;
}

.dropdown-toggle {
    white-space: nowrap;
}

    .dropdown-toggle::after {
        display: inline-block;
        margin-left: 0.255em;
        vertical-align: 0.255em;
        content: "";
        border-top: 0.3em solid;
        border-right: 0.3em solid transparent;
        border-bottom: 0;
        border-left: 0.3em solid transparent;
    }

    .dropdown-toggle:empty::after {
        margin-left: 0;
    }

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 10rem;
    padding: 0.5rem 0;
    margin: 0.125rem 0 0;
    font-size: 1rem;
    color: var(--text-primary, #333);
    text-align: left;
    list-style: none;
    background-color: var(--bg-surface, #fff);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 0.25rem;
}

.dropdown-menu-left {
    right: auto;
    left: 0;
}

.dropdown-menu-right {
    right: 0;
    left: auto;
}

@media (min-width: 576px) {
    .dropdown-menu-sm-left {
        right: auto;
        left: 0;
    }

    .dropdown-menu-sm-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 768px) {
    .dropdown-menu-md-left {
        right: auto;
        left: 0;
    }

    .dropdown-menu-md-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 992px) {
    .dropdown-menu-lg-left {
        right: auto;
        left: 0;
    }

    .dropdown-menu-lg-right {
        right: 0;
        left: auto;
    }
}

@media (min-width: 1200px) {
    .dropdown-menu-xl-left {
        right: auto;
        left: 0;
    }

    .dropdown-menu-xl-right {
        right: 0;
        left: auto;
    }
}

.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: 0.125rem;
}

.dropup .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0;
    border-right: 0.3em solid transparent;
    border-bottom: 0.3em solid;
    border-left: 0.3em solid transparent;
}

.dropup .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropright .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: 0.125rem;
}

.dropright .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
}

.dropright .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropright .dropdown-toggle::after {
    vertical-align: 0;
}

.dropleft .dropdown-menu {
    top: 0;
    right: 100%;
    left: auto;
    margin-top: 0;
    margin-right: 0.125rem;
}

.dropleft .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
}

.dropleft .dropdown-toggle::after {
    display: none;
}

.dropleft .dropdown-toggle::before {
    display: inline-block;
    margin-right: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0.3em solid;
    border-bottom: 0.3em solid transparent;
}

.dropleft .dropdown-toggle:empty::after {
    margin-left: 0;
}

.dropleft .dropdown-toggle::before {
    vertical-align: 0;
}

.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {
    right: auto;
    bottom: auto;
}

.dropdown-divider {
    height: 0;
    margin: 0.5rem 0;
    overflow: hidden;
    border-top: 1px solid var(--border-light, #e9ecef);
}

.dropdown-item {
    display: block;
    width: 100%;
    padding: 0.25rem 1.5rem;
    clear: both;
    font-weight: 400;
    color: var(--text-primary, #333);
    text-align: inherit;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
}

    .dropdown-item:hover, .dropdown-item:focus {
        color: var(--text-primary, #16181b);
        text-decoration: none;
        background-color: var(--bg-subtle, #fafafa);
    }

    .dropdown-item.active, .dropdown-item:active {
        color: var(--text-on-dark, #fff);
        text-decoration: none;
        background-color: var(--brand-accent, #fdb913);
    }

    .dropdown-item.disabled, .dropdown-item:disabled {
        color: var(--brand-primary, #3d1a6f);
        pointer-events: none;
        background-color: transparent;
    }

.dropdown-menu.show {
    display: block;
}

.dropdown-header {
    display: block;
    padding: 0.5rem 1.5rem;
    margin-bottom: 0;
    font-size: 0.875rem;
    color: var(--brand-primary, #3d1a6f);
    white-space: nowrap;
}

.dropdown-item-text {
    display: block;
    padding: 0.25rem 1.5rem;
    color: var(--text-primary, #333);
}

.btn-group,
.btn-group-vertical {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
}

    .btn-group > .btn,
    .btn-group-vertical > .btn {
        position: relative;
        flex: 1 1 auto;
    }

        .btn-group > .btn:hover,
        .btn-group-vertical > .btn:hover {
            z-index: 1;
        }

        .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
        .btn-group-vertical > .btn:focus,
        .btn-group-vertical > .btn:active,
        .btn-group-vertical > .btn.active {
            z-index: 1;
        }

.btn-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

    .btn-toolbar .input-group {
        width: auto;
    }

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
    margin-left: -1px;
}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dropdown-toggle-split {
    padding-right: 0.5625rem;
    padding-left: 0.5625rem;
}

    .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {
        margin-left: 0;
    }

.dropleft .dropdown-toggle-split::before {
    margin-right: 0;
}

.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
    padding-right: 0.375rem;
    padding-left: 0.375rem;
}

.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

.btn-group-vertical {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

    .btn-group-vertical > .btn,
    .btn-group-vertical > .btn-group {
        width: 100%;
    }

        .btn-group-vertical > .btn:not(:first-child),
        .btn-group-vertical > .btn-group:not(:first-child) {
            margin-top: -1px;
        }

        .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
        .btn-group-vertical > .btn-group:not(:last-child) > .btn {
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .btn-group-vertical > .btn:not(:first-child),
        .btn-group-vertical > .btn-group:not(:first-child) > .btn {
            border-top-left-radius: 0;
            border-top-right-radius: 0;
        }

.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
    margin-bottom: 0;
}

    .btn-group-toggle > .btn input[type=radio],
    .btn-group-toggle > .btn input[type=checkbox],
    .btn-group-toggle > .btn-group > .btn input[type=radio],
    .btn-group-toggle > .btn-group > .btn input[type=checkbox] {
        position: absolute;
        clip: rect(0, 0, 0, 0);
        pointer-events: none;
    }

.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

    .input-group > .form-control,
    .input-group > .form-control-plaintext,
    .input-group > .custom-select,
    .input-group > .custom-file {
        position: relative;
        flex: 1 1 auto;
        width: 1%;
        min-width: 0;
        margin-bottom: 0;
    }

        .input-group > .form-control + .form-control,
        .input-group > .form-control + .custom-select,
        .input-group > .form-control + .custom-file,
        .input-group > .form-control-plaintext + .form-control,
        .input-group > .form-control-plaintext + .custom-select,
        .input-group > .form-control-plaintext + .custom-file,
        .input-group > .custom-select + .form-control,
        .input-group > .custom-select + .custom-select,
        .input-group > .custom-select + .custom-file,
        .input-group > .custom-file + .form-control,
        .input-group > .custom-file + .custom-select,
        .input-group > .custom-file + .custom-file {
            margin-left: -1px;
        }

        .input-group > .form-control:focus,
        .input-group > .custom-select:focus,
        .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
            z-index: 3;
        }

        .input-group > .custom-file .custom-file-input:focus {
            z-index: 4;
        }

        .input-group > .form-control:not(:last-child),
        .input-group > .custom-select:not(:last-child) {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-group > .form-control:not(:first-child),
        .input-group > .custom-select:not(:first-child) {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

    .input-group > .custom-file {
        display: flex;
        align-items: center;
    }

        .input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-group > .custom-file:not(:first-child) .custom-file-label {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

.input-group-prepend,
.input-group-append {
    display: flex;
}

    .input-group-prepend .btn,
    .input-group-append .btn {
        position: relative;
        z-index: 2;
    }

        .input-group-prepend .btn:focus,
        .input-group-append .btn:focus {
            z-index: 3;
        }

        .input-group-prepend .btn + .btn,
        .input-group-prepend .btn + .input-group-text,
        .input-group-prepend .input-group-text + .input-group-text,
        .input-group-prepend .input-group-text + .btn,
        .input-group-append .btn + .btn,
        .input-group-append .btn + .input-group-text,
        .input-group-append .input-group-text + .input-group-text,
        .input-group-append .input-group-text + .btn {
            margin-left: -1px;
        }

.input-group-prepend {
    margin-right: -1px;
}

.input-group-append {
    margin-left: -1px;
}

.input-group-text {
    display: flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    margin-bottom: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-primary, #333);
    text-align: center;
    white-space: nowrap;
    background-color: var(--bg-muted, #e9ecef);
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 0.25rem;
}

    .input-group-text input[type=radio],
    .input-group-text input[type=checkbox] {
        margin-top: 0;
    }

.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
    height: calc(1.5em + 1rem + 2px);
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: 0.3rem;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
    height: calc(1.5em + 0.5rem + 2px);
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 0.2rem;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
    padding-right: 1.75rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.custom-control {
    position: relative;
    z-index: 1;
    display: block;
    min-height: 1.5rem;
    padding-left: 1.5rem;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
}

.custom-control-inline {
    display: inline-flex;
    margin-right: 1rem;
}

.custom-control-input {
    position: absolute;
    left: 0;
    z-index: -1;
    width: 1rem;
    height: 1.25rem;
    opacity: 0;
}

    .custom-control-input:checked ~ .custom-control-label::before {
        color: var(--text-on-dark, #fff);
        border-color: var(--brand-accent, #fdb913);
        background-color: var(--brand-accent, #fdb913);
    }

    .custom-control-input:focus ~ .custom-control-label::before {
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
    }

    .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
        border-color: var(--brand-accent-light, #ffeeb5);
    }

    .custom-control-input:not(:disabled):active ~ .custom-control-label::before {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-warning-tint-light, #fffae8);
        border-color: var(--status-warning-tint-light, #fffae8);
    }

    .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {
        color: var(--brand-primary, #3d1a6f);
    }

        .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {
            background-color: var(--bg-muted, #e9ecef);
        }

.custom-control-label {
    position: relative;
    margin-bottom: 0;
    vertical-align: top;
}

    .custom-control-label::before {
        position: absolute;
        top: 0.25rem;
        left: -1.5rem;
        display: block;
        width: 1rem;
        height: 1rem;
        pointer-events: none;
        content: "";
        background-color: var(--bg-surface, #fff);
        border: var(--border-strong, #adb5bd) solid 1px;
    }

    .custom-control-label::after {
        position: absolute;
        top: 0.25rem;
        left: -1.5rem;
        display: block;
        width: 1rem;
        height: 1rem;
        content: "";
        background: no-repeat 50%/50% 50%;
    }

.custom-checkbox .custom-control-label::before {
    border-radius: 0.25rem;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
    border-color: var(--brand-accent, #fdb913);
    background-color: var(--brand-accent, #fdb913);
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(254, 209, 54, 0.5);
}

.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
    background-color: rgba(254, 209, 54, 0.5);
}

.custom-radio .custom-control-label::before {
    border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(254, 209, 54, 0.5);
}

.custom-switch {
    padding-left: 2.25rem;
}

    .custom-switch .custom-control-label::before {
        left: -2.25rem;
        width: 1.75rem;
        pointer-events: all;
        border-radius: 0.5rem;
    }

    .custom-switch .custom-control-label::after {
        top: calc(0.25rem + 2px);
        left: calc(-2.25rem + 2px);
        width: calc(1rem - 4px);
        height: calc(1rem - 4px);
        background-color: var(--border-strong, #adb5bd);
        border-radius: 0.5rem;
        transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    }

@media (prefers-reduced-motion: reduce) {
    .custom-switch .custom-control-label::after {
        transition: none;
    }
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    background-color: var(--bg-surface, #fff);
    transform: translateX(0.75rem);
}

.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background-color: rgba(254, 209, 54, 0.5);
}

.custom-select {
    display: inline-block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 1.75rem 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-primary, #333);
    vertical-align: middle;
    background: var(--bg-surface, #fff) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 0.25rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

    .custom-select:focus {
        border-color: var(--brand-accent-light, #ffeeb5);
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
    }

        .custom-select:focus::-ms-value {
            color: var(--text-primary, #333);
            background-color: var(--bg-surface, #fff);
        }

    .custom-select[multiple], .custom-select[size]:not([size="1"]) {
        height: auto;
        padding-right: 0.75rem;
        background-image: none;
    }

    .custom-select:disabled {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--bg-muted, #e9ecef);
    }

    .custom-select::-ms-expand {
        display: none;
    }

    .custom-select:-moz-focusring {
        color: transparent;
        text-shadow: 0 0 0 var(--text-primary, #495057);
    }

.custom-select-sm {
    height: calc(1.5em + 0.5rem + 2px);
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-left: 0.5rem;
    font-size: 0.875rem;
}

.custom-select-lg {
    height: calc(1.5em + 1rem + 2px);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 1rem;
    font-size: 1.25rem;
}

.custom-file {
    position: relative;
    display: inline-block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    margin-bottom: 0;
}

.custom-file-input {
    position: relative;
    z-index: 2;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    margin: 0;
    opacity: 0;
}

    .custom-file-input:focus ~ .custom-file-label {
        border-color: var(--brand-accent-light, #ffeeb5);
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
    }

    .custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {
        background-color: var(--bg-muted, #e9ecef);
    }

    .custom-file-input:lang(en) ~ .custom-file-label::after {
        content: "Browse";
    }

    .custom-file-input ~ .custom-file-label[data-browse]::after {
        content: attr(data-browse);
    }

.custom-file-label {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-primary, #333);
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-strong, #ced4da);
    border-radius: 0.25rem;
}

    .custom-file-label::after {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 3;
        display: block;
        height: calc(1.5em + 0.75rem);
        padding: 0.375rem 0.75rem;
        line-height: 1.5;
        color: var(--text-primary, #333);
        content: "Browse";
        background-color: var(--bg-muted, #e9ecef);
        border-left: inherit;
        border-radius: 0 0.25rem 0.25rem 0;
    }

.custom-range {
    width: 100%;
    height: 1.4rem;
    padding: 0;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

    .custom-range:focus {
        outline: none;
    }

        .custom-range:focus::-webkit-slider-thumb {
            box-shadow: 0 0 0 1px var(--bg-surface, #fff), 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
        }

        .custom-range:focus::-moz-range-thumb {
            box-shadow: 0 0 0 1px var(--bg-surface, #fff), 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
        }

        .custom-range:focus::-ms-thumb {
            box-shadow: 0 0 0 1px var(--bg-surface, #fff), 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
        }

    .custom-range::-moz-focus-outer {
        border: 0;
    }

    .custom-range::-webkit-slider-thumb {
        width: 1rem;
        height: 1rem;
        margin-top: -0.25rem;
        background-color: var(--brand-accent, #fdb913);
        border: 0;
        border-radius: 1rem;
        -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        -webkit-appearance: none;
        appearance: none;
    }

@media (prefers-reduced-motion: reduce) {
    .custom-range::-webkit-slider-thumb {
        -webkit-transition: none;
        transition: none;
    }
}

.custom-range::-webkit-slider-thumb:active {
    background-color: var(--status-warning-tint-light, #fffae8);
}

.custom-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: var(--border-default, #dee2e6);
    border-color: transparent;
    border-radius: 1rem;
}

.custom-range::-moz-range-thumb {
    width: 1rem;
    height: 1rem;
    background-color: var(--brand-accent, #fdb913);
    border: 0;
    border-radius: 1rem;
    -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    -moz-appearance: none;
    appearance: none;
}

@media (prefers-reduced-motion: reduce) {
    .custom-range::-moz-range-thumb {
        -moz-transition: none;
        transition: none;
    }
}

.custom-range::-moz-range-thumb:active {
    background-color: var(--status-warning-tint-light, #fffae8);
}

.custom-range::-moz-range-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: var(--border-default, #dee2e6);
    border-color: transparent;
    border-radius: 1rem;
}

.custom-range::-ms-thumb {
    width: 1rem;
    height: 1rem;
    margin-top: 0;
    margin-right: 0.2rem;
    margin-left: 0.2rem;
    background-color: var(--brand-accent, #fdb913);
    border: 0;
    border-radius: 1rem;
    -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    appearance: none;
}

@media (prefers-reduced-motion: reduce) {
    .custom-range::-ms-thumb {
        -ms-transition: none;
        transition: none;
    }
}

.custom-range::-ms-thumb:active {
    background-color: var(--status-warning-tint-light, #fffae8);
}

.custom-range::-ms-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background-color: transparent;
    border-color: transparent;
    border-width: 0.5rem;
}

.custom-range::-ms-fill-lower {
    background-color: var(--border-default, #dee2e6);
    border-radius: 1rem;
}

.custom-range::-ms-fill-upper {
    margin-right: 15px;
    background-color: var(--border-default, #dee2e6);
    border-radius: 1rem;
}

.custom-range:disabled::-webkit-slider-thumb {
    background-color: var(--border-strong, #adb5bd);
}

.custom-range:disabled::-webkit-slider-runnable-track {
    cursor: default;
}

.custom-range:disabled::-moz-range-thumb {
    background-color: var(--border-strong, #adb5bd);
}

.custom-range:disabled::-moz-range-track {
    cursor: default;
}

.custom-range:disabled::-ms-thumb {
    background-color: var(--border-strong, #adb5bd);
}

.custom-control-label::before,
.custom-file-label,
.custom-select {
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .custom-control-label::before,
    .custom-file-label,
    .custom-select {
        transition: none;
    }
}

.nav {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.nav-link {
    display: block;
    padding: 0.5rem 1rem;
}

    .nav-link:hover, .nav-link:focus {
        text-decoration: none;
    }

    .nav-link.disabled {
        color: var(--brand-primary, #3d1a6f);
        pointer-events: none;
        cursor: default;
    }

.nav-tabs {
    border-bottom: 1px solid var(--border-default, #ddd);
}

    .nav-tabs .nav-item {
        margin-bottom: -1px;
    }

    .nav-tabs .nav-link {
        border: 1px solid transparent;
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
    }

        .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
            border-color: var(--border-light, #e9ecef) var(--border-light, #e9ecef) var(--border-default, #ddd);
        }

        .nav-tabs .nav-link.disabled {
            color: var(--brand-primary, #3d1a6f);
            background-color: transparent;
            border-color: transparent;
        }

        .nav-tabs .nav-link.active,
        .nav-tabs .nav-item.show .nav-link {
            color: var(--text-primary, #333);
            background-color: var(--bg-surface, #fff);
            border-color: var(--border-default, #ddd) var(--border-default, #ddd) var(--bg-surface, #fff);
        }

    .nav-tabs .dropdown-menu {
        margin-top: -1px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }

.nav-pills .nav-link {
    border-radius: 0.25rem;
}

    .nav-pills .nav-link.active,
    .nav-pills .show > .nav-link {
        color: var(--brand-primary, #3d1a6f);
        background-color: var(--bg-purple-tint, #f3edf9);
        border: 1px solid var(--brand-primary, #3d1a6f);
    }

.nav-fill > .nav-link,
.nav-fill .nav-item {
    flex: 1 1 auto;
    text-align: center;
}

.nav-justified > .nav-link,
.nav-justified .nav-item {
    flex-basis: 0;
    flex-grow: 1;
    text-align: center;
}

.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
}

.navbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1rem;
}

    .navbar .container,
    .navbar .container-fluid,
    .navbar .container-sm,
    .navbar .container-md,
    .navbar .container-lg,
    .navbar .container-xl {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
    }

.navbar-brand {
    display: inline-block;
    padding-top: 0.3125rem;
    padding-bottom: 0.3125rem;
    margin-right: 1rem;
    font-size: 1.25rem;
    line-height: inherit;
    white-space: nowrap;
}

    .navbar-brand:hover, .navbar-brand:focus {
        text-decoration: none;
    }

.navbar-nav {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

    .navbar-nav .nav-link {
        padding-right: 0;
        padding-left: 0;
    }

    .navbar-nav .dropdown-menu {
        position: static;
        float: none;
    }

.navbar-text {
    display: inline-block;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.navbar-collapse {
    flex-basis: 100%;
    flex-grow: 1;
    align-items: center;
}

.navbar-toggler {
    padding: 0.25rem 0.75rem;
    font-size: 1.25rem;
    line-height: 5;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

    .navbar-toggler:hover, .navbar-toggler:focus {
        text-decoration: none;
    }

.navbar-toggler-icon {
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    vertical-align: middle;
    content: "";
    background: no-repeat center center;
    background-size: 100% 100%;
}

@media (max-width: 575.98px) {
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid,
    .navbar-expand-sm > .container-sm,
    .navbar-expand-sm > .container-md,
    .navbar-expand-sm > .container-lg,
    .navbar-expand-sm > .container-xl {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 576px) {
    .navbar-expand-sm {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }

        .navbar-expand-sm .navbar-nav {
            flex-direction: row;
        }

            .navbar-expand-sm .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-sm .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-sm > .container,
        .navbar-expand-sm > .container-fluid,
        .navbar-expand-sm > .container-sm,
        .navbar-expand-sm > .container-md,
        .navbar-expand-sm > .container-lg,
        .navbar-expand-sm > .container-xl {
            flex-wrap: nowrap;
        }

        .navbar-expand-sm .navbar-collapse {
            display: flex !important;
            flex-basis: auto;
        }

        .navbar-expand-sm .navbar-toggler {
            display: none;
        }
}

@media (max-width: 767.98px) {
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid,
    .navbar-expand-md > .container-sm,
    .navbar-expand-md > .container-md,
    .navbar-expand-md > .container-lg,
    .navbar-expand-md > .container-xl {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 768px) {
    .navbar-expand-md {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }

        .navbar-expand-md .navbar-nav {
            flex-direction: row;
        }

            .navbar-expand-md .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-md .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-md > .container,
        .navbar-expand-md > .container-fluid,
        .navbar-expand-md > .container-sm,
        .navbar-expand-md > .container-md,
        .navbar-expand-md > .container-lg,
        .navbar-expand-md > .container-xl {
            flex-wrap: nowrap;
        }

        .navbar-expand-md .navbar-collapse {
            display: flex !important;
            flex-basis: auto;
        }

        .navbar-expand-md .navbar-toggler {
            display: none;
        }
}

@media (max-width: 991.98px) {
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid,
    .navbar-expand-lg > .container-sm,
    .navbar-expand-lg > .container-md,
    .navbar-expand-lg > .container-lg,
    .navbar-expand-lg > .container-xl {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }

        .navbar-expand-lg .navbar-nav {
            flex-direction: row;
        }

            .navbar-expand-lg .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-lg .navbar-nav .nav-link {
                padding-right: 2.5rem;
                padding-left: 1.5rem;
            }

        .navbar-expand-lg > .container,
        .navbar-expand-lg > .container-fluid,
        .navbar-expand-lg > .container-sm,
        .navbar-expand-lg > .container-md,
        .navbar-expand-lg > .container-lg,
        .navbar-expand-lg > .container-xl {
            flex-wrap: nowrap;
        }

        .navbar-expand-lg .navbar-collapse {
            display: flex !important;
            flex-basis: auto;
        }

        .navbar-expand-lg .navbar-toggler {
            display: none;
        }
}

@media (max-width: 1199.98px) {
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid,
    .navbar-expand-xl > .container-sm,
    .navbar-expand-xl > .container-md,
    .navbar-expand-xl > .container-lg,
    .navbar-expand-xl > .container-xl {
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 1200px) {
    .navbar-expand-xl {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }

        .navbar-expand-xl .navbar-nav {
            flex-direction: row;
        }

            .navbar-expand-xl .navbar-nav .dropdown-menu {
                position: absolute;
            }

            .navbar-expand-xl .navbar-nav .nav-link {
                padding-right: 0.5rem;
                padding-left: 0.5rem;
            }

        .navbar-expand-xl > .container,
        .navbar-expand-xl > .container-fluid,
        .navbar-expand-xl > .container-sm,
        .navbar-expand-xl > .container-md,
        .navbar-expand-xl > .container-lg,
        .navbar-expand-xl > .container-xl {
            flex-wrap: nowrap;
        }

        .navbar-expand-xl .navbar-collapse {
            display: flex !important;
            flex-basis: auto;
        }

        .navbar-expand-xl .navbar-toggler {
            display: none;
        }
}

.navbar-expand {
    flex-flow: row nowrap;
    justify-content: flex-start;
}

    .navbar-expand > .container,
    .navbar-expand > .container-fluid,
    .navbar-expand > .container-sm,
    .navbar-expand > .container-md,
    .navbar-expand > .container-lg,
    .navbar-expand > .container-xl {
        padding-right: 0;
        padding-left: 0;
    }

    .navbar-expand .navbar-nav {
        flex-direction: row;
    }

        .navbar-expand .navbar-nav .dropdown-menu {
            position: absolute;
        }

        .navbar-expand .navbar-nav .nav-link {
            padding-right: 0.5rem;
            padding-left: 0.5rem;
        }

    .navbar-expand > .container,
    .navbar-expand > .container-fluid,
    .navbar-expand > .container-sm,
    .navbar-expand > .container-md,
    .navbar-expand > .container-lg,
    .navbar-expand > .container-xl {
        flex-wrap: nowrap;
    }

    .navbar-expand .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
    }

    .navbar-expand .navbar-toggler {
        display: none;
    }

.navbar-light .navbar-brand {
    color: var(--text-primary, rgba(0, 0, 0, 0.9));
}

    .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
        color: var(--text-primary, rgba(0, 0, 0, 0.9));
    }

.navbar-light .navbar-nav .nav-link {
    color: var(--text-secondary, rgba(0, 0, 0, 0.5));
}

    .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
        color: var(--text-body, rgba(0, 0, 0, 0.7));
    }

    .navbar-light .navbar-nav .nav-link.disabled {
        color: var(--text-tertiary, rgba(0, 0, 0, 0.3));
    }

    .navbar-light .navbar-nav .show > .nav-link,
    .navbar-light .navbar-nav .active > .nav-link,
    .navbar-light .navbar-nav .nav-link.show,
    .navbar-light .navbar-nav .nav-link.active {
        color: var(--text-primary, rgba(0, 0, 0, 0.9));
    }

.navbar-light .navbar-toggler {
    color: var(--text-secondary, rgba(0, 0, 0, 0.5));
    border-color: rgba(0, 0, 0, 0.1);
}

.navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-light .navbar-text {
    color: var(--text-secondary, rgba(0, 0, 0, 0.5));
}

    .navbar-light .navbar-text a {
        color: var(--text-primary, rgba(0, 0, 0, 0.9));
    }

        .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
            color: var(--text-primary, rgba(0, 0, 0, 0.9));
        }

.navbar-dark .navbar-brand {
    color: var(--text-on-dark, #fff);
}

    .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
        color: var(--text-on-dark, #fff);
    }

.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.5);
}

    .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
        color: rgba(255, 255, 255, 0.75);
    }

    .navbar-dark .navbar-nav .nav-link.disabled {
        color: rgba(255, 255, 255, 0.25);
    }

    .navbar-dark .navbar-nav .show > .nav-link,
    .navbar-dark .navbar-nav .active > .nav-link,
    .navbar-dark .navbar-nav .nav-link.show,
    .navbar-dark .navbar-nav .nav-link.active {
        color: var(--text-on-dark, #fff);
    }

.navbar-dark .navbar-toggler {
    color: rgba(255, 255, 255, 0.5);
    border-color: rgba(255, 255, 255, 0.1);
}

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-dark .navbar-text {
    color: rgba(255, 255, 255, 0.5);
}

    .navbar-dark .navbar-text a {
        color: var(--text-on-dark, #fff);
    }

        .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
            color: var(--text-on-dark, #fff);
        }

.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: var(--bg-surface, #fff);
    background-clip: border-box;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 0.25rem;
}

    .card > hr {
        margin-right: 0;
        margin-left: 0;
    }

    .card > .list-group {
        border-top: inherit;
        border-bottom: inherit;
    }

        .card > .list-group:first-child {
            border-top-width: 0;
            border-top-left-radius: calc(0.25rem - 1px);
            border-top-right-radius: calc(0.25rem - 1px);
        }

        .card > .list-group:last-child {
            border-bottom-width: 0;
            border-bottom-right-radius: calc(0.25rem - 1px);
            border-bottom-left-radius: calc(0.25rem - 1px);
        }

        .card > .card-header + .list-group,
        .card > .list-group + .card-footer {
            border-top: 0;
        }

.card-body {
    flex: 1 1 auto;
    min-height: 1px;
    padding: 1.25rem;
}

.card-title {
    margin-bottom: 0.75rem;
}

.card-subtitle {
    margin-top: -0.375rem;
    margin-bottom: 0;
}

.card-text:last-child {
    margin-bottom: 0;
}

.card-link:hover {
    text-decoration: none;
}

.card-link + .card-link {
    margin-left: 1.25rem;
}

.card-header {
    padding: 0.75rem 1.25rem;
    margin-bottom: 0;
    background-color: rgba(0, 0, 0, 0.03);
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-header:first-child {
        border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
    }

.card-footer {
    padding: 0.75rem 1.25rem;
    background-color: rgba(0, 0, 0, 0.03);
    border-top: 1px solid rgba(0, 0, 0, 0.125);
}

    .card-footer:last-child {
        border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
    }

.card-header-tabs {
    margin-right: -0.625rem;
    margin-bottom: -0.75rem;
    margin-left: -0.625rem;
    border-bottom: 0;
}

.card-header-pills {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

.card-img-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.25rem;
    border-radius: calc(0.25rem - 1px);
}

.card-img,
.card-img-top,
.card-img-bottom {
    flex-shrink: 0;
    width: 100%;
}

.card-img,
.card-img-top {
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px);
}

.card-img,
.card-img-bottom {
    border-bottom-right-radius: calc(0.25rem - 1px);
    border-bottom-left-radius: calc(0.25rem - 1px);
}

.card-deck .card {
    margin-bottom: 0.75rem;
}

@media (min-width: 576px) {
    .card-deck {
        display: flex;
        flex-flow: row wrap;
        margin-right: -0.75rem;
        margin-left: -0.75rem;
    }

        .card-deck .card {
            flex: 1 0 0%;
            margin-right: 0.75rem;
            margin-bottom: 0;
            margin-left: 0.75rem;
        }
}

.card-group > .card {
    margin-bottom: 0.75rem;
}

@media (min-width: 576px) {
    .card-group {
        display: flex;
        flex-flow: row wrap;
    }

        .card-group > .card {
            flex: 1 0 0%;
            margin-bottom: 0;
        }

            .card-group > .card + .card {
                margin-left: 0;
                border-left: 0;
            }

            .card-group > .card:not(:last-child) {
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
            }

                .card-group > .card:not(:last-child) .card-img-top,
                .card-group > .card:not(:last-child) .card-header {
                    border-top-right-radius: 0;
                }

                .card-group > .card:not(:last-child) .card-img-bottom,
                .card-group > .card:not(:last-child) .card-footer {
                    border-bottom-right-radius: 0;
                }

            .card-group > .card:not(:first-child) {
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
            }

                .card-group > .card:not(:first-child) .card-img-top,
                .card-group > .card:not(:first-child) .card-header {
                    border-top-left-radius: 0;
                }

                .card-group > .card:not(:first-child) .card-img-bottom,
                .card-group > .card:not(:first-child) .card-footer {
                    border-bottom-left-radius: 0;
                }
}

.card-columns .card {
    margin-bottom: 0.75rem;
}

@media (min-width: 576px) {
    .card-columns {
        -moz-column-count: 3;
        column-count: 3;
        -moz-column-gap: 1.25rem;
        column-gap: 1.25rem;
        orphans: 1;
        widows: 1;
    }

        .card-columns .card {
            display: inline-block;
            width: 100%;
        }
}

.accordion {
    overflow-anchor: none;
}

    .accordion > .card {
        overflow: hidden;
    }

        .accordion > .card:not(:last-of-type) {
            border-bottom: 0;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .accordion > .card:not(:first-of-type) {
            border-top-left-radius: 0;
            border-top-right-radius: 0;
        }

        .accordion > .card > .card-header {
            border-radius: 0;
            margin-bottom: -1px;
        }

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    list-style: none;
    background-color: var(--bg-muted, #e9ecef);
    border-radius: 0.25rem;
}

.breadcrumb-item {
    display: flex;
}

    .breadcrumb-item + .breadcrumb-item {
        padding-left: 0.5rem;
    }

        .breadcrumb-item + .breadcrumb-item::before {
            display: inline-block;
            padding-right: 0.5rem;
            color: var(--brand-primary, #3d1a6f);
            content: "/";
        }

        .breadcrumb-item + .breadcrumb-item:hover::before {
            text-decoration: underline;
        }

        .breadcrumb-item + .breadcrumb-item:hover::before {
            text-decoration: none;
        }

    .breadcrumb-item.active {
        color: var(--brand-primary, #3d1a6f);
    }

.pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
    border-radius: 0.25rem;
}

.page-link {
    position: relative;
    display: block;
    padding: 0.5rem 0.75rem;
    margin-left: -1px;
    line-height: 1.25;
    color: var(--brand-accent, #fdb913);
    background-color: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
}

    .page-link:hover {
        z-index: 2;
        color: var(--brand-accent-hover, #e6b301);
        text-decoration: none;
        background-color: var(--bg-muted, #e9ecef);
        border-color: var(--border-default, #ddd);
    }

    .page-link:focus {
        z-index: 3;
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.25);
    }

.page-item:first-child .page-link {
    margin-left: 0;
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}

.page-item:last-child .page-link {
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

.page-item.active .page-link {
    z-index: 3;
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
}

.page-item.disabled .page-link {
    color: var(--brand-primary, #3d1a6f);
    pointer-events: none;
    cursor: auto;
    background-color: var(--bg-surface, #fff);
    border-color: var(--border-default, #ddd);
}

.pagination-lg .page-link {
    padding: 0.75rem 1.5rem;
    font-size: 1.25rem;
    line-height: 1.5;
}

.pagination-lg .page-item:first-child .page-link {
    border-top-left-radius: 0.3rem;
    border-bottom-left-radius: 0.3rem;
}

.pagination-lg .page-item:last-child .page-link {
    border-top-right-radius: 0.3rem;
    border-bottom-right-radius: 0.3rem;
}

.pagination-sm .page-link {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
}

.pagination-sm .page-item:first-child .page-link {
    border-top-left-radius: 0.2rem;
    border-bottom-left-radius: 0.2rem;
}

.pagination-sm .page-item:last-child .page-link {
    border-top-right-radius: 0.2rem;
    border-bottom-right-radius: 0.2rem;
}

.badge {
    display: inline-block;
    padding: 0.25em 0.4em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 0.25rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .badge {
        transition: none;
    }
}

a.badge:hover, a.badge:focus {
    text-decoration: none;
}

.badge:empty {
    display: none;
}

.btn .badge {
    position: relative;
    top: -1px;
}

.badge-pill {
    padding-right: 0.6em;
    padding-left: 0.6em;
    border-radius: 10rem;
}

.badge-primary {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-accent, #fdb913);
}

a.badge-primary:hover, a.badge-primary:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-accent-hover, #fec503);
}

a.badge-primary:focus, a.badge-primary.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
}

.badge-secondary {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-primary, #3d1a6f);
}

a.badge-secondary:hover, a.badge-secondary:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-secondary, #545b62);
}

a.badge-secondary:focus, a.badge-secondary.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.badge-success {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-success, #28a745);
}

a.badge-success:hover, a.badge-success:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-success, #1e7e34);
}

a.badge-success:focus, a.badge-success.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.badge-info {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-info, #17a2b8);
}

a.badge-info:hover, a.badge-info:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-info, #117a8b);
}

a.badge-info:focus, a.badge-info.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.badge-warning {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-accent, #fdb913);
}

a.badge-warning:hover, a.badge-warning:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--brand-accent-hover, #fec503);
}

a.badge-warning:focus, a.badge-warning.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(254, 209, 54, 0.5);
}

.badge-danger {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-danger, #dc3545);
}

a.badge-danger:hover, a.badge-danger:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--status-danger, #bd2130);
}

a.badge-danger:focus, a.badge-danger.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.badge-light {
    color: var(--text-primary, #333);
    background-color: var(--bg-subtle, #fafafa);
}

a.badge-light:hover, a.badge-light:focus {
    color: var(--text-primary, #333);
    background-color: var(--bg-muted, #dae0e5);
}

a.badge-light:focus, a.badge-light.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.badge-dark {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary, #343a40);
}

a.badge-dark:hover, a.badge-dark:focus {
    color: var(--text-on-dark, #fff);
    background-color: var(--text-primary-hover, #1d2124);
}

a.badge-dark:focus, a.badge-dark.focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.jumbotron {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
    background-color: var(--bg-muted, #e9ecef);
    border-radius: 0.3rem;
}

@media (min-width: 576px) {
    .jumbotron {
        padding: 4rem 2rem;
    }
}

.jumbotron-fluid {
    padding-right: 0;
    padding-left: 0;
    border-radius: 0;
}

.alert {
    position: relative;
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

.alert-heading {
    color: inherit;
}

.alert-link {
    font-weight: 700;
}

.alert-dismissible {
    padding-right: 4rem;
}

    .alert-dismissible .close {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 2;
        padding: 0.75rem 1.25rem;
        color: inherit;
    }

.alert-primary {
    color: var(--status-warning-text, #846d1c);
    background-color: var(--status-warning-bg, #fff6d7);
    border-color: var(--status-warning-bg, #fff2c7);
}

    .alert-primary hr {
        border-top-color: var(--status-warning-tint, #ffecae);
    }

    .alert-primary .alert-link {
        color: var(--status-warning-text, #5a4a13);
    }

.alert-secondary {
    color: var(--text-primary, #383d41);
    background-color: var(--bg-muted, #e2e3e5);
    border-color: var(--bg-muted, #d6d8db);
}

    .alert-secondary hr {
        border-top-color: var(--bg-muted, #c8cbcf);
    }

    .alert-secondary .alert-link {
        color: var(--text-primary, #202326);
    }

.alert-success {
    color: var(--status-success-text, #155724);
    background-color: var(--status-success-bg, #d4edda);
    border-color: var(--status-success-border, #c3e6cb);
}

    .alert-success hr {
        border-top-color: var(--status-success-tint, #b1dfbb);
    }

    .alert-success .alert-link {
        color: var(--status-success-text, #0b2e13);
    }

.alert-info {
    color: var(--status-info-text, #0c5460);
    background-color: var(--status-info-bg, #d1ecf1);
    border-color: var(--status-info-border, #bee5eb);
}

    .alert-info hr {
        border-top-color: var(--status-info-tint, #abdde5);
    }

    .alert-info .alert-link {
        color: var(--status-info-text, #062c33);
    }

.alert-warning {
    color: var(--status-warning-text, #846d1c);
    background-color: var(--status-warning-bg, #fff6d7);
    border-color: var(--status-warning-bg, #fff2c7);
}

    .alert-warning hr {
        border-top-color: var(--status-warning-tint, #ffecae);
    }

    .alert-warning .alert-link {
        color: var(--status-warning-text, #5a4a13);
    }

.alert-danger {
    color: var(--status-danger-text, #721c24);
    background-color: var(--status-danger-bg, #f8d7da);
    border-color: var(--status-danger-border, #f5c6cb);
}

    .alert-danger hr {
        border-top-color: var(--status-danger-tint, #f1b0b7);
    }

    .alert-danger .alert-link {
        color: var(--status-danger-text, #491217);
    }

.alert-light {
    color: var(--text-secondary, #818182);
    background-color: var(--bg-surface, #fefefe);
    border-color: var(--bg-surface, #fdfdfe);
}

    .alert-light hr {
        border-top-color: var(--bg-muted, #ececf6);
    }

    .alert-light .alert-link {
        color: var(--text-secondary, #686868);
    }

.alert-dark {
    color: var(--text-primary, #1b1e21);
    background-color: var(--bg-muted, #d6d8d9);
    border-color: var(--bg-muted, #c6c8ca);
}

    .alert-dark hr {
        border-top-color: var(--bg-muted, #b9bbbe);
    }

    .alert-dark .alert-link {
        color: var(--text-primary, #040505);
    }

@-webkit-keyframes progress-bar-stripes {
    from {
        background-position: 1rem 0;
    }

    to {
        background-position: 0 0;
    }
}

@keyframes progress-bar-stripes {
    from {
        background-position: 1rem 0;
    }

    to {
        background-position: 0 0;
    }
}

.progress {
    display: flex;
    height: 1rem;
    overflow: hidden;
    line-height: 0;
    font-size: 0.75rem;
    background-color: var(--bg-muted, #e9ecef);
    border-radius: 0.25rem;
}

.progress-bar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: var(--text-on-dark, #fff);
    text-align: center;
    white-space: nowrap;
    background-color: var(--brand-accent, #fdb913);
    transition: width 0.6s ease;
}

@media (prefers-reduced-motion: reduce) {
    .progress-bar {
        transition: none;
    }
}

.progress-bar-striped {
    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

.progress-bar-animated {
    -webkit-animation: progress-bar-stripes 1s linear infinite;
    animation: progress-bar-stripes 1s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
    .progress-bar-animated {
        -webkit-animation: none;
        animation: none;
    }
}

.media {
    display: flex;
    align-items: flex-start;
}

.media-body {
    flex: 1;
}

.list-group {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    border-radius: 0.25rem;
}

.list-group-item-action {
    width: 100%;
    color: var(--text-primary, #333);
    text-align: inherit;
}

    .list-group-item-action:hover, .list-group-item-action:focus {
        z-index: 1;
        color: var(--text-primary, #333);
        text-decoration: none;
        background-color: var(--bg-subtle, #fafafa);
    }

    .list-group-item-action:active {
        color: var(--text-primary, #333);
        background-color: var(--bg-muted, #e9ecef);
    }

.list-group-item {
    position: relative;
    display: block;
    padding: 0.75rem 1.25rem;
    background-color: var(--bg-surface, #fff);
    border: 1px solid rgba(0, 0, 0, 0.125);
}

    .list-group-item:first-child {
        border-top-left-radius: inherit;
        border-top-right-radius: inherit;
    }

    .list-group-item:last-child {
        border-bottom-right-radius: inherit;
        border-bottom-left-radius: inherit;
    }

    .list-group-item.disabled, .list-group-item:disabled {
        color: var(--brand-primary, #3d1a6f);
        pointer-events: none;
        background-color: var(--bg-surface, #fff);
    }

    .list-group-item.active {
        z-index: 2;
        color: var(--text-on-dark, #fff);
        background-color: var(--brand-accent, #fdb913);
        border-color: var(--brand-accent, #fdb913);
    }

    .list-group-item + .list-group-item {
        border-top-width: 0;
    }

        .list-group-item + .list-group-item.active {
            margin-top: -1px;
            border-top-width: 1px;
        }

.list-group-horizontal {
    flex-direction: row;
}

    .list-group-horizontal > .list-group-item:first-child {
        border-bottom-left-radius: 0.25rem;
        border-top-right-radius: 0;
    }

    .list-group-horizontal > .list-group-item:last-child {
        border-top-right-radius: 0.25rem;
        border-bottom-left-radius: 0;
    }

    .list-group-horizontal > .list-group-item.active {
        margin-top: 0;
    }

    .list-group-horizontal > .list-group-item + .list-group-item {
        border-top-width: 1px;
        border-left-width: 0;
    }

        .list-group-horizontal > .list-group-item + .list-group-item.active {
            margin-left: -1px;
            border-left-width: 1px;
        }

@media (min-width: 576px) {
    .list-group-horizontal-sm {
        flex-direction: row;
    }

        .list-group-horizontal-sm > .list-group-item:first-child {
            border-bottom-left-radius: 0.25rem;
            border-top-right-radius: 0;
        }

        .list-group-horizontal-sm > .list-group-item:last-child {
            border-top-right-radius: 0.25rem;
            border-bottom-left-radius: 0;
        }

        .list-group-horizontal-sm > .list-group-item.active {
            margin-top: 0;
        }

        .list-group-horizontal-sm > .list-group-item + .list-group-item {
            border-top-width: 1px;
            border-left-width: 0;
        }

            .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
                margin-left: -1px;
                border-left-width: 1px;
            }
}

@media (min-width: 768px) {
    .list-group-horizontal-md {
        flex-direction: row;
    }

        .list-group-horizontal-md > .list-group-item:first-child {
            border-bottom-left-radius: 0.25rem;
            border-top-right-radius: 0;
        }

        .list-group-horizontal-md > .list-group-item:last-child {
            border-top-right-radius: 0.25rem;
            border-bottom-left-radius: 0;
        }

        .list-group-horizontal-md > .list-group-item.active {
            margin-top: 0;
        }

        .list-group-horizontal-md > .list-group-item + .list-group-item {
            border-top-width: 1px;
            border-left-width: 0;
        }

            .list-group-horizontal-md > .list-group-item + .list-group-item.active {
                margin-left: -1px;
                border-left-width: 1px;
            }
}

@media (min-width: 992px) {
    .list-group-horizontal-lg {
        flex-direction: row;
    }

        .list-group-horizontal-lg > .list-group-item:first-child {
            border-bottom-left-radius: 0.25rem;
            border-top-right-radius: 0;
        }

        .list-group-horizontal-lg > .list-group-item:last-child {
            border-top-right-radius: 0.25rem;
            border-bottom-left-radius: 0;
        }

        .list-group-horizontal-lg > .list-group-item.active {
            margin-top: 0;
        }

        .list-group-horizontal-lg > .list-group-item + .list-group-item {
            border-top-width: 1px;
            border-left-width: 0;
        }

            .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
                margin-left: -1px;
                border-left-width: 1px;
            }
}

@media (min-width: 1200px) {
    .list-group-horizontal-xl {
        flex-direction: row;
    }

        .list-group-horizontal-xl > .list-group-item:first-child {
            border-bottom-left-radius: 0.25rem;
            border-top-right-radius: 0;
        }

        .list-group-horizontal-xl > .list-group-item:last-child {
            border-top-right-radius: 0.25rem;
            border-bottom-left-radius: 0;
        }

        .list-group-horizontal-xl > .list-group-item.active {
            margin-top: 0;
        }

        .list-group-horizontal-xl > .list-group-item + .list-group-item {
            border-top-width: 1px;
            border-left-width: 0;
        }

            .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
                margin-left: -1px;
                border-left-width: 1px;
            }
}

.list-group-flush {
    border-radius: 0;
}

    .list-group-flush > .list-group-item {
        border-width: 0 0 1px;
    }

        .list-group-flush > .list-group-item:last-child {
            border-bottom-width: 0;
        }

.list-group-item-primary {
    color: var(--status-warning-text, #846d1c);
    background-color: var(--status-warning-bg, #fff2c7);
}

    .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
        color: var(--status-warning-text, #846d1c);
        background-color: var(--status-warning-tint, #ffecae);
    }

    .list-group-item-primary.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-warning-text, #846d1c);
        border-color: var(--status-warning-text, #846d1c);
    }

.list-group-item-secondary {
    color: var(--text-primary, #383d41);
    background-color: var(--bg-muted, #d6d8db);
}

    .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
        color: var(--text-primary, #383d41);
        background-color: var(--bg-muted, #c8cbcf);
    }

    .list-group-item-secondary.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary, #383d41);
        border-color: var(--text-primary, #383d41);
    }

.list-group-item-success {
    color: var(--status-success-text, #155724);
    background-color: var(--status-success-border, #c3e6cb);
}

    .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
        color: var(--status-success-text, #155724);
        background-color: var(--status-success-tint, #b1dfbb);
    }

    .list-group-item-success.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-success-text, #155724);
        border-color: var(--status-success-text, #155724);
    }

.list-group-item-info {
    color: var(--status-info-text, #0c5460);
    background-color: var(--status-info-border, #bee5eb);
}

    .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
        color: var(--status-info-text, #0c5460);
        background-color: var(--status-info-tint, #abdde5);
    }

    .list-group-item-info.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-info-text, #0c5460);
        border-color: var(--status-info-text, #0c5460);
    }

.list-group-item-warning {
    color: var(--status-warning-text, #846d1c);
    background-color: var(--status-warning-bg, #fff2c7);
}

    .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
        color: var(--status-warning-text, #846d1c);
        background-color: var(--status-warning-tint, #ffecae);
    }

    .list-group-item-warning.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-warning-text, #846d1c);
        border-color: var(--status-warning-text, #846d1c);
    }

.list-group-item-danger {
    color: var(--status-danger-text, #721c24);
    background-color: var(--status-danger-border, #f5c6cb);
}

    .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
        color: var(--status-danger-text, #721c24);
        background-color: var(--status-danger-tint, #f1b0b7);
    }

    .list-group-item-danger.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--status-danger-text, #721c24);
        border-color: var(--status-danger-text, #721c24);
    }

.list-group-item-light {
    color: var(--text-secondary, #818182);
    background-color: var(--bg-surface, #fdfdfe);
}

    .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
        color: var(--text-secondary, #818182);
        background-color: var(--bg-muted, #ececf6);
    }

    .list-group-item-light.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-secondary, #818182);
        border-color: var(--text-secondary, #818182);
    }

.list-group-item-dark {
    color: var(--text-primary, #1b1e21);
    background-color: var(--bg-muted, #c6c8ca);
}

    .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
        color: var(--text-primary, #1b1e21);
        background-color: var(--bg-muted, #b9bbbe);
    }

    .list-group-item-dark.list-group-item-action.active {
        color: var(--text-on-dark, #fff);
        background-color: var(--text-primary, #1b1e21);
        border-color: var(--text-primary, #1b1e21);
    }

.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: var(--text-primary, #000);
    text-shadow: 0 1px 0 var(--bg-surface, #fff);
    opacity: 0.5;
}

    .close:hover {
        color: var(--text-primary, #000);
        text-decoration: none;
    }

    .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
        opacity: 0.75;
    }

button.close {
    padding: 0;
    background-color: transparent;
    border: 0;
}

a.close.disabled {
    pointer-events: none;
}

.toast {
    flex-basis: 350px;
    max-width: 350px;
    font-size: 0.875rem;
    background-color: rgba(255, 255, 255, 0.85);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    opacity: 0;
    border-radius: 0.25rem;
}

    .toast:not(:last-child) {
        margin-bottom: 0.75rem;
    }

    .toast.showing {
        opacity: 1;
    }

    .toast.show {
        display: block;
        opacity: 1;
    }

    .toast.hide {
        display: none;
    }

.toast-header {
    display: flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    color: var(--brand-primary, #3d1a6f);
    background-color: rgba(255, 255, 255, 0.85);
    background-clip: padding-box;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px);
}

.toast-body {
    padding: 0.75rem;
}

.modal-open {
    overflow: hidden;
}

    .modal-open .modal {
        overflow-x: hidden;
        overflow-y: auto;
    }

.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    display: none;
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 0;
}

.modal-dialog {
    position: relative;
    width: auto;
    margin: 0.5rem;
    pointer-events: none;
}

.modal.fade .modal-dialog {
    transition: transform 0.3s ease-out;
    transform: translate(0, -50px);
}

@media (prefers-reduced-motion: reduce) {
    .modal.fade .modal-dialog {
        transition: none;
    }
}

.modal.show .modal-dialog {
    transform: none;
}

.modal.modal-static .modal-dialog {
    transform: scale(1.02);
}

.modal-dialog-scrollable {
    display: flex;
    max-height: calc(100% - 1rem);
}

    .modal-dialog-scrollable .modal-content {
        max-height: calc(100vh - 1rem);
        overflow: hidden;
    }

    .modal-dialog-scrollable .modal-header,
    .modal-dialog-scrollable .modal-footer {
        flex-shrink: 0;
    }

    .modal-dialog-scrollable .modal-body {
        overflow-y: auto;
    }

.modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - 1rem);
}

    .modal-dialog-centered::before {
        display: block;
        height: calc(100vh - 1rem);
        height: -webkit-min-content;
        height: -moz-min-content;
        height: min-content;
        content: "";
    }

    .modal-dialog-centered.modal-dialog-scrollable {
        flex-direction: column;
        justify-content: center;
        height: 100%;
    }

        .modal-dialog-centered.modal-dialog-scrollable .modal-content {
            max-height: none;
        }

        .modal-dialog-centered.modal-dialog-scrollable::before {
            content: none;
        }

.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: var(--bg-surface, #fff);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
    outline: 0;
}

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100vw;
    height: 100vh;
    background-color: var(--text-primary, #000);
}

    .modal-backdrop.fade {
        opacity: 0;
    }

    .modal-backdrop.show {
        opacity: 0.5;
    }

.modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1rem 1rem;
    border-bottom: 1px solid var(--border-default, #ddd);
    border-top-left-radius: calc(0.3rem - 1px);
    border-top-right-radius: calc(0.3rem - 1px);
}

    .modal-header .close {
        padding: 1rem 1rem;
        margin: -1rem -1rem -1rem auto;
    }

.modal-title {
    margin-bottom: 0;
    line-height: 1.5;
}

.modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: 1rem;
}

.modal-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    padding: 0.75rem;
    border-top: 1px solid var(--border-default, #ddd);
    border-bottom-right-radius: calc(0.3rem - 1px);
    border-bottom-left-radius: calc(0.3rem - 1px);
}

    .modal-footer > * {
        margin: 0.25rem;
    }

.modal-scrollbar-measure {
    position: absolute;
    top: -9999px;
    width: 50px;
    height: 50px;
    overflow: scroll;
}

@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
    }

    .modal-dialog-scrollable {
        max-height: calc(100% - 3.5rem);
    }

        .modal-dialog-scrollable .modal-content {
            max-height: calc(100vh - 3.5rem);
        }

    .modal-dialog-centered {
        min-height: calc(100% - 3.5rem);
    }

        .modal-dialog-centered::before {
            height: calc(100vh - 3.5rem);
            height: -webkit-min-content;
            height: -moz-min-content;
            height: min-content;
        }

    .modal-sm {
        max-width: 300px;
    }
}

@media (min-width: 992px) {
    .modal-lg,
    .modal-xl {
        max-width: 800px;
    }
}

@media (min-width: 1200px) {
    .modal-xl {
        max-width: 1140px;
    }
}

.tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    margin: 0;
    font-family: 'Outfit', sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    opacity: 0;
}

    .tooltip.show {
        opacity: 0.9;
    }

    .tooltip .arrow {
        position: absolute;
        display: block;
        width: 0.8rem;
        height: 0.4rem;
    }

        .tooltip .arrow::before {
            position: absolute;
            content: "";
            border-color: transparent;
            border-style: solid;
        }

.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {
    padding: 0.4rem 0;
}

    .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {
        bottom: 0;
    }

        .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {
            top: 0;
            border-width: 0.4rem 0.4rem 0;
            border-top-color: var(--text-primary, #000);
        }

.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {
    padding: 0 0.4rem;
}

    .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {
        left: 0;
        width: 0.4rem;
        height: 0.8rem;
    }

        .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {
            right: 0;
            border-width: 0.4rem 0.4rem 0.4rem 0;
            border-right-color: var(--text-primary, #000);
        }

.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {
    padding: 0.4rem 0;
}

    .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {
        top: 0;
    }

        .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {
            bottom: 0;
            border-width: 0 0.4rem 0.4rem;
            border-bottom-color: var(--text-primary, #000);
        }

.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {
    padding: 0 0.4rem;
}

    .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {
        right: 0;
        width: 0.4rem;
        height: 0.8rem;
    }

        .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {
            left: 0;
            border-width: 0.4rem 0 0.4rem 0.4rem;
            border-left-color: var(--text-primary, #000);
        }

.tooltip-inner {
    max-width: 200px;
    padding: 0.25rem 0.5rem;
    color: var(--text-on-dark, #fff);
    text-align: center;
    background-color: var(--text-primary, #000);
    border-radius: 0.25rem;
}

.popover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    display: block;
    max-width: 276px;
    font-family: 'Outfit', sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    background-color: var(--bg-surface, #fff);
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 0.3rem;
}

    .popover .arrow {
        position: absolute;
        display: block;
        width: 1rem;
        height: 0.5rem;
        margin: 0 0.3rem;
    }

        .popover .arrow::before, .popover .arrow::after {
            position: absolute;
            display: block;
            content: "";
            border-color: transparent;
            border-style: solid;
        }

.bs-popover-top, .bs-popover-auto[x-placement^=top] {
    margin-bottom: 0.5rem;
}

    .bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {
        bottom: calc(-0.5rem - 1px);
    }

        .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {
            bottom: 0;
            border-width: 0.5rem 0.5rem 0;
            border-top-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {
            bottom: 1px;
            border-width: 0.5rem 0.5rem 0;
            border-top-color: var(--bg-surface, #fff);
        }

.bs-popover-right, .bs-popover-auto[x-placement^=right] {
    margin-left: 0.5rem;
}

    .bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {
        left: calc(-0.5rem - 1px);
        width: 0.5rem;
        height: 1rem;
        margin: 0.3rem 0;
    }

        .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {
            left: 0;
            border-width: 0.5rem 0.5rem 0.5rem 0;
            border-right-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {
            left: 1px;
            border-width: 0.5rem 0.5rem 0.5rem 0;
            border-right-color: var(--bg-surface, #fff);
        }

.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {
    margin-top: 0.5rem;
}

    .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {
        top: calc(-0.5rem - 1px);
    }

        .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {
            top: 0;
            border-width: 0 0.5rem 0.5rem 0.5rem;
            border-bottom-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {
            top: 1px;
            border-width: 0 0.5rem 0.5rem 0.5rem;
            border-bottom-color: var(--bg-surface, #fff);
        }

    .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {
        position: absolute;
        top: 0;
        left: 50%;
        display: block;
        width: 1rem;
        margin-left: -0.5rem;
        content: "";
        border-bottom: 1px solid var(--bg-subtle, #f7f7f7);
    }

.bs-popover-left, .bs-popover-auto[x-placement^=left] {
    margin-right: 0.5rem;
}

    .bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {
        right: calc(-0.5rem - 1px);
        width: 0.5rem;
        height: 1rem;
        margin: 0.3rem 0;
    }

        .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {
            right: 0;
            border-width: 0.5rem 0 0.5rem 0.5rem;
            border-left-color: rgba(0, 0, 0, 0.25);
        }

        .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {
            right: 1px;
            border-width: 0.5rem 0 0.5rem 0.5rem;
            border-left-color: var(--bg-surface, #fff);
        }

.popover-header {
    padding: 0.5rem 0.75rem;
    margin-bottom: 0;
    font-size: 1rem;
    background-color: var(--bg-subtle, #f7f7f7);
    border-bottom: 1px solid var(--border-light, #ebebeb);
    border-top-left-radius: calc(0.3rem - 1px);
    border-top-right-radius: calc(0.3rem - 1px);
}

    .popover-header:empty {
        display: none;
    }

.popover-body {
    padding: 0.5rem 0.75rem;
    color: var(--text-primary, #333);
}

.carousel {
    position: relative;
}

    .carousel.pointer-event {
        touch-action: pan-y;
    }

.carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

    .carousel-inner::after {
        display: block;
        clear: both;
        content: "";
    }

.carousel-item {
    position: relative;
    display: none;
    float: left;
    width: 100%;
    margin-right: -100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transition: transform 0.6s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .carousel-item {
        transition: none;
    }
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
    display: block;
}

    .carousel-item-next:not(.carousel-item-left),
    .active.carousel-item-right {
        transform: translateX(100%);
    }

    .carousel-item-prev:not(.carousel-item-right),
    .active.carousel-item-left {
        transform: translateX(-100%);
    }

.carousel-fade .carousel-item {
    opacity: 0;
    transition-property: opacity;
    transform: none;
}

    .carousel-fade .carousel-item.active,
    .carousel-fade .carousel-item-next.carousel-item-left,
    .carousel-fade .carousel-item-prev.carousel-item-right {
        z-index: 1;
        opacity: 1;
    }

.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    z-index: 0;
    opacity: 0;
    transition: opacity 0s 0.6s;
}

@media (prefers-reduced-motion: reduce) {
    .carousel-fade .active.carousel-item-left,
    .carousel-fade .active.carousel-item-right {
        transition: none;
    }
}

.carousel-control-prev,
.carousel-control-next {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15%;
    color: var(--text-on-dark, #fff);
    text-align: center;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}

@media (prefers-reduced-motion: reduce) {
    .carousel-control-prev,
    .carousel-control-next {
        transition: none;
    }
}

.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
    color: var(--text-on-dark, #fff);
    text-decoration: none;
    outline: 0;
    opacity: 0.9;
}

.carousel-control-prev {
    left: 0;
}

.carousel-control-next {
    right: 0;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: no-repeat 50%/100% 100%;
}

.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e");
}

.carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e");
}

.carousel-indicators {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 15;
    display: flex;
    justify-content: center;
    padding-left: 0;
    margin-right: 15%;
    margin-left: 15%;
    list-style: none;
}

    .carousel-indicators li {
        box-sizing: content-box;
        flex: 0 1 auto;
        width: 30px;
        height: 3px;
        margin-right: 3px;
        margin-left: 3px;
        text-indent: -999px;
        cursor: pointer;
        background-color: var(--bg-surface, #fff);
        background-clip: padding-box;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        opacity: 0.5;
        transition: opacity 0.6s ease;
    }

@media (prefers-reduced-motion: reduce) {
    .carousel-indicators li {
        transition: none;
    }
}

.carousel-indicators .active {
    opacity: 1;
}

.carousel-caption {
    position: absolute;
    right: 15%;
    bottom: 20px;
    left: 15%;
    z-index: 10;
    padding-top: 20px;
    padding-bottom: 20px;
    color: var(--text-on-dark, #fff);
    text-align: center;
}

@-webkit-keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

@keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    -webkit-animation: spinner-border 0.75s linear infinite;
    animation: spinner-border 0.75s linear infinite;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.2em;
}

@-webkit-keyframes spinner-grow {
    0% {
        transform: scale(0);
    }

    50% {
        opacity: 1;
        transform: none;
    }
}

@keyframes spinner-grow {
    0% {
        transform: scale(0);
    }

    50% {
        opacity: 1;
        transform: none;
    }
}

.spinner-grow {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    background-color: currentColor;
    border-radius: 50%;
    opacity: 0;
    -webkit-animation: spinner-grow 0.75s linear infinite;
    animation: spinner-grow 0.75s linear infinite;
}

.spinner-grow-sm {
    width: 1rem;
    height: 1rem;
}

.align-baseline {
    vertical-align: baseline !important;
}

.align-top {
    vertical-align: top !important;
}

.align-middle {
    vertical-align: middle !important;
}

.align-bottom {
    vertical-align: bottom !important;
}

.align-text-bottom {
    vertical-align: text-bottom !important;
}

.align-text-top {
    vertical-align: text-top !important;
}

.bg-primary {
    background-color: var(--brand-accent, #fdb913) !important;
}

a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
    background-color: var(--brand-accent-hover, #fec503) !important;
}

.bg-secondary {
    background-color: var(--brand-primary, #3d1a6f) !important;
}

a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
    background-color: var(--text-secondary, #545b62) !important;
}

.bg-success {
    background-color: var(--status-success, #28a745) !important;
}

a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
    background-color: var(--status-success, #1e7e34) !important;
}

.bg-info {
    background-color: var(--status-info, #17a2b8) !important;
}

a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
    background-color: var(--status-info, #117a8b) !important;
}

.bg-warning {
    background-color: var(--brand-accent, #fdb913) !important;
}

a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
    background-color: var(--brand-accent-hover, #fec503) !important;
}

.bg-danger {
    background-color: var(--status-danger, #dc3545) !important;
}

a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
    background-color: var(--status-danger, #bd2130) !important;
}

.bg-light {
    background-color: var(--bg-subtle, #fafafa) !important;
}

a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
    background-color: var(--bg-muted, #dae0e5) !important;
}

.bg-dark {
    background-color: var(--text-primary, #343a40) !important;
}

a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
    background-color: var(--text-primary-hover, #1d2124) !important;
}

.bg-white {
    background-color: var(--bg-surface, #fff) !important;
}

.bg-transparent {
    background-color: transparent !important;
}

.border {
    border: 1px solid var(--border-default, #ddd) !important;
}

.border-top {
    border-top: 1px solid var(--border-default, #ddd) !important;
}

.border-right {
    border-right: 1px solid var(--border-default, #ddd) !important;
}

.border-bottom {
    border-bottom: 1px solid var(--border-default, #ddd) !important;
}

.border-left {
    border-left: 1px solid var(--border-default, #ddd) !important;
}

.border-0 {
    border: 0 !important;
}

.border-top-0 {
    border-top: 0 !important;
}

.border-right-0 {
    border-right: 0 !important;
}

.border-bottom-0 {
    border-bottom: 0 !important;
}

.border-left-0 {
    border-left: 0 !important;
}

.border-primary {
    border-color: var(--brand-accent, #fdb913) !important;
}

.border-secondary {
    border-color: var(--brand-primary, #3d1a6f) !important;
}

.border-success {
    border-color: var(--status-success, #28a745) !important;
}

.border-info {
    border-color: var(--status-info, #17a2b8) !important;
}

.border-warning {
    border-color: var(--brand-accent, #fdb913) !important;
}

.border-danger {
    border-color: var(--status-danger, #dc3545) !important;
}

.border-light {
    border-color: var(--bg-subtle, #f8f9fa) !important;
}

.border-dark {
    border-color: var(--text-primary, #343a40) !important;
}

.border-white {
    border-color: var(--bg-surface, #fff) !important;
}

.rounded-sm {
    border-radius: 0.2rem !important;
}

.rounded {
    border-radius: 0.25rem !important;
}

.rounded-top {
    border-top-left-radius: 0.25rem !important;
    border-top-right-radius: 0.25rem !important;
}

.rounded-right {
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
    border-bottom-right-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-left {
    border-top-left-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-lg {
    border-radius: 0.3rem !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

.rounded-pill {
    border-radius: 50rem !important;
}

.rounded-0 {
    border-radius: 0 !important;
}

.clearfix::after {
    display: block;
    clear: both;
    content: "";
}

.d-none {
    display: none !important;
}

.d-inline {
    display: inline !important;
}

.d-inline-block {
    display: inline-block !important;
}

.d-block {
    display: block !important;
}

.d-table {
    display: table !important;
}

.d-table-row {
    display: table-row !important;
}

.d-table-cell {
    display: table-cell !important;
}

.d-flex {
    display: flex !important;
}

.d-inline-flex {
    display: inline-flex !important;
}

@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }

    .d-sm-inline {
        display: inline !important;
    }

    .d-sm-inline-block {
        display: inline-block !important;
    }

    .d-sm-block {
        display: block !important;
    }

    .d-sm-table {
        display: table !important;
    }

    .d-sm-table-row {
        display: table-row !important;
    }

    .d-sm-table-cell {
        display: table-cell !important;
    }

    .d-sm-flex {
        display: flex !important;
    }

    .d-sm-inline-flex {
        display: inline-flex !important;
    }
}

@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }

    .d-md-inline {
        display: inline !important;
    }

    .d-md-inline-block {
        display: inline-block !important;
    }

    .d-md-block {
        display: block !important;
    }

    .d-md-table {
        display: table !important;
    }

    .d-md-table-row {
        display: table-row !important;
    }

    .d-md-table-cell {
        display: table-cell !important;
    }

    .d-md-flex {
        display: flex !important;
    }

    .d-md-inline-flex {
        display: inline-flex !important;
    }
}

@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }

    .d-lg-inline {
        display: inline !important;
    }

    .d-lg-inline-block {
        display: inline-block !important;
    }

    .d-lg-block {
        display: block !important;
    }

    .d-lg-table {
        display: table !important;
    }

    .d-lg-table-row {
        display: table-row !important;
    }

    .d-lg-table-cell {
        display: table-cell !important;
    }

    .d-lg-flex {
        display: flex !important;
    }

    .d-lg-inline-flex {
        display: inline-flex !important;
    }
}

@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }

    .d-xl-inline {
        display: inline !important;
    }

    .d-xl-inline-block {
        display: inline-block !important;
    }

    .d-xl-block {
        display: block !important;
    }

    .d-xl-table {
        display: table !important;
    }

    .d-xl-table-row {
        display: table-row !important;
    }

    .d-xl-table-cell {
        display: table-cell !important;
    }

    .d-xl-flex {
        display: flex !important;
    }

    .d-xl-inline-flex {
        display: inline-flex !important;
    }
}

@media print {
    .d-print-none {
        display: none !important;
    }

    .d-print-inline {
        display: inline !important;
    }

    .d-print-inline-block {
        display: inline-block !important;
    }

    .d-print-block {
        display: block !important;
    }

    .d-print-table {
        display: table !important;
    }

    .d-print-table-row {
        display: table-row !important;
    }

    .d-print-table-cell {
        display: table-cell !important;
    }

    .d-print-flex {
        display: flex !important;
    }

    .d-print-inline-flex {
        display: inline-flex !important;
    }
}

.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

    .embed-responsive::before {
        display: block;
        content: "";
    }

    .embed-responsive .embed-responsive-item,
    .embed-responsive iframe,
    .embed-responsive embed,
    .embed-responsive object,
    .embed-responsive video {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: 0;
    }

.embed-responsive-21by9::before {
    padding-top: 42.8571428571%;
}

.embed-responsive-16by9::before {
    padding-top: 56.25%;
}

.embed-responsive-4by3::before {
    padding-top: 75%;
}

.embed-responsive-1by1::before {
    padding-top: 100%;
}

.flex-row {
    flex-direction: row !important;
}

.flex-column {
    flex-direction: column !important;
}

.flex-row-reverse {
    flex-direction: row-reverse !important;
}

.flex-column-reverse {
    flex-direction: column-reverse !important;
}

.flex-wrap {
    flex-wrap: wrap !important;
}

.flex-nowrap {
    flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
    flex-wrap: wrap-reverse !important;
}

.flex-fill {
    flex: 1 1 auto !important;
}

.flex-grow-0 {
    flex-grow: 0 !important;
}

.flex-grow-1 {
    flex-grow: 1 !important;
}

.flex-shrink-0 {
    flex-shrink: 0 !important;
}

.flex-shrink-1 {
    flex-shrink: 1 !important;
}

.justify-content-start {
    justify-content: flex-start !important;
}

.justify-content-end {
    justify-content: flex-end !important;
}

.justify-content-center {
    justify-content: center !important;
}

.justify-content-between {
    justify-content: space-between !important;
}

.justify-content-around {
    justify-content: space-around !important;
}

.align-items-start {
    align-items: flex-start !important;
}

.align-items-end {
    align-items: flex-end !important;
}

.align-items-center {
    align-items: center !important;
}

.align-items-baseline {
    align-items: baseline !important;
}

.align-items-stretch {
    align-items: stretch !important;
}

.align-content-start {
    align-content: flex-start !important;
}

.align-content-end {
    align-content: flex-end !important;
}

.align-content-center {
    align-content: center !important;
}

.align-content-between {
    align-content: space-between !important;
}

.align-content-around {
    align-content: space-around !important;
}

.align-content-stretch {
    align-content: stretch !important;
}

.align-self-auto {
    align-self: auto !important;
}

.align-self-start {
    align-self: flex-start !important;
}

.align-self-end {
    align-self: flex-end !important;
}

.align-self-center {
    align-self: center !important;
}

.align-self-baseline {
    align-self: baseline !important;
}

.align-self-stretch {
    align-self: stretch !important;
}

@media (min-width: 576px) {
    .flex-sm-row {
        flex-direction: row !important;
    }

    .flex-sm-column {
        flex-direction: column !important;
    }

    .flex-sm-row-reverse {
        flex-direction: row-reverse !important;
    }

    .flex-sm-column-reverse {
        flex-direction: column-reverse !important;
    }

    .flex-sm-wrap {
        flex-wrap: wrap !important;
    }

    .flex-sm-nowrap {
        flex-wrap: nowrap !important;
    }

    .flex-sm-wrap-reverse {
        flex-wrap: wrap-reverse !important;
    }

    .flex-sm-fill {
        flex: 1 1 auto !important;
    }

    .flex-sm-grow-0 {
        flex-grow: 0 !important;
    }

    .flex-sm-grow-1 {
        flex-grow: 1 !important;
    }

    .flex-sm-shrink-0 {
        flex-shrink: 0 !important;
    }

    .flex-sm-shrink-1 {
        flex-shrink: 1 !important;
    }

    .justify-content-sm-start {
        justify-content: flex-start !important;
    }

    .justify-content-sm-end {
        justify-content: flex-end !important;
    }

    .justify-content-sm-center {
        justify-content: center !important;
    }

    .justify-content-sm-between {
        justify-content: space-between !important;
    }

    .justify-content-sm-around {
        justify-content: space-around !important;
    }

    .align-items-sm-start {
        align-items: flex-start !important;
    }

    .align-items-sm-end {
        align-items: flex-end !important;
    }

    .align-items-sm-center {
        align-items: center !important;
    }

    .align-items-sm-baseline {
        align-items: baseline !important;
    }

    .align-items-sm-stretch {
        align-items: stretch !important;
    }

    .align-content-sm-start {
        align-content: flex-start !important;
    }

    .align-content-sm-end {
        align-content: flex-end !important;
    }

    .align-content-sm-center {
        align-content: center !important;
    }

    .align-content-sm-between {
        align-content: space-between !important;
    }

    .align-content-sm-around {
        align-content: space-around !important;
    }

    .align-content-sm-stretch {
        align-content: stretch !important;
    }

    .align-self-sm-auto {
        align-self: auto !important;
    }

    .align-self-sm-start {
        align-self: flex-start !important;
    }

    .align-self-sm-end {
        align-self: flex-end !important;
    }

    .align-self-sm-center {
        align-self: center !important;
    }

    .align-self-sm-baseline {
        align-self: baseline !important;
    }

    .align-self-sm-stretch {
        align-self: stretch !important;
    }
}

@media (min-width: 768px) {
    .flex-md-row {
        flex-direction: row !important;
    }

    .flex-md-column {
        flex-direction: column !important;
    }

    .flex-md-row-reverse {
        flex-direction: row-reverse !important;
    }

    .flex-md-column-reverse {
        flex-direction: column-reverse !important;
    }

    .flex-md-wrap {
        flex-wrap: wrap !important;
    }

    .flex-md-nowrap {
        flex-wrap: nowrap !important;
    }

    .flex-md-wrap-reverse {
        flex-wrap: wrap-reverse !important;
    }

    .flex-md-fill {
        flex: 1 1 auto !important;
    }

    .flex-md-grow-0 {
        flex-grow: 0 !important;
    }

    .flex-md-grow-1 {
        flex-grow: 1 !important;
    }

    .flex-md-shrink-0 {
        flex-shrink: 0 !important;
    }

    .flex-md-shrink-1 {
        flex-shrink: 1 !important;
    }

    .justify-content-md-start {
        justify-content: flex-start !important;
    }

    .justify-content-md-end {
        justify-content: flex-end !important;
    }

    .justify-content-md-center {
        justify-content: center !important;
    }

    .justify-content-md-between {
        justify-content: space-between !important;
    }

    .justify-content-md-around {
        justify-content: space-around !important;
    }

    .align-items-md-start {
        align-items: flex-start !important;
    }

    .align-items-md-end {
        align-items: flex-end !important;
    }

    .align-items-md-center {
        align-items: center !important;
    }

    .align-items-md-baseline {
        align-items: baseline !important;
    }

    .align-items-md-stretch {
        align-items: stretch !important;
    }

    .align-content-md-start {
        align-content: flex-start !important;
    }

    .align-content-md-end {
        align-content: flex-end !important;
    }

    .align-content-md-center {
        align-content: center !important;
    }

    .align-content-md-between {
        align-content: space-between !important;
    }

    .align-content-md-around {
        align-content: space-around !important;
    }

    .align-content-md-stretch {
        align-content: stretch !important;
    }

    .align-self-md-auto {
        align-self: auto !important;
    }

    .align-self-md-start {
        align-self: flex-start !important;
    }

    .align-self-md-end {
        align-self: flex-end !important;
    }

    .align-self-md-center {
        align-self: center !important;
    }

    .align-self-md-baseline {
        align-self: baseline !important;
    }

    .align-self-md-stretch {
        align-self: stretch !important;
    }
}

@media (min-width: 992px) {
    .flex-lg-row {
        flex-direction: row !important;
    }

    .flex-lg-column {
        flex-direction: column !important;
    }

    .flex-lg-row-reverse {
        flex-direction: row-reverse !important;
    }

    .flex-lg-column-reverse {
        flex-direction: column-reverse !important;
    }

    .flex-lg-wrap {
        flex-wrap: wrap !important;
    }

    .flex-lg-nowrap {
        flex-wrap: nowrap !important;
    }

    .flex-lg-wrap-reverse {
        flex-wrap: wrap-reverse !important;
    }

    .flex-lg-fill {
        flex: 1 1 auto !important;
    }

    .flex-lg-grow-0 {
        flex-grow: 0 !important;
    }

    .flex-lg-grow-1 {
        flex-grow: 1 !important;
    }

    .flex-lg-shrink-0 {
        flex-shrink: 0 !important;
    }

    .flex-lg-shrink-1 {
        flex-shrink: 1 !important;
    }

    .justify-content-lg-start {
        justify-content: flex-start !important;
    }

    .justify-content-lg-end {
        justify-content: flex-end !important;
    }

    .justify-content-lg-center {
        justify-content: center !important;
    }

    .justify-content-lg-between {
        justify-content: space-between !important;
    }

    .justify-content-lg-around {
        justify-content: space-around !important;
    }

    .align-items-lg-start {
        align-items: flex-start !important;
    }

    .align-items-lg-end {
        align-items: flex-end !important;
    }

    .align-items-lg-center {
        align-items: center !important;
    }

    .align-items-lg-baseline {
        align-items: baseline !important;
    }

    .align-items-lg-stretch {
        align-items: stretch !important;
    }

    .align-content-lg-start {
        align-content: flex-start !important;
    }

    .align-content-lg-end {
        align-content: flex-end !important;
    }

    .align-content-lg-center {
        align-content: center !important;
    }

    .align-content-lg-between {
        align-content: space-between !important;
    }

    .align-content-lg-around {
        align-content: space-around !important;
    }

    .align-content-lg-stretch {
        align-content: stretch !important;
    }

    .align-self-lg-auto {
        align-self: auto !important;
    }

    .align-self-lg-start {
        align-self: flex-start !important;
    }

    .align-self-lg-end {
        align-self: flex-end !important;
    }

    .align-self-lg-center {
        align-self: center !important;
    }

    .align-self-lg-baseline {
        align-self: baseline !important;
    }

    .align-self-lg-stretch {
        align-self: stretch !important;
    }
}

@media (min-width: 1200px) {
    .flex-xl-row {
        flex-direction: row !important;
    }

    .flex-xl-column {
        flex-direction: column !important;
    }

    .flex-xl-row-reverse {
        flex-direction: row-reverse !important;
    }

    .flex-xl-column-reverse {
        flex-direction: column-reverse !important;
    }

    .flex-xl-wrap {
        flex-wrap: wrap !important;
    }

    .flex-xl-nowrap {
        flex-wrap: nowrap !important;
    }

    .flex-xl-wrap-reverse {
        flex-wrap: wrap-reverse !important;
    }

    .flex-xl-fill {
        flex: 1 1 auto !important;
    }

    .flex-xl-grow-0 {
        flex-grow: 0 !important;
    }

    .flex-xl-grow-1 {
        flex-grow: 1 !important;
    }

    .flex-xl-shrink-0 {
        flex-shrink: 0 !important;
    }

    .flex-xl-shrink-1 {
        flex-shrink: 1 !important;
    }

    .justify-content-xl-start {
        justify-content: flex-start !important;
    }

    .justify-content-xl-end {
        justify-content: flex-end !important;
    }

    .justify-content-xl-center {
        justify-content: center !important;
    }

    .justify-content-xl-between {
        justify-content: space-between !important;
    }

    .justify-content-xl-around {
        justify-content: space-around !important;
    }

    .align-items-xl-start {
        align-items: flex-start !important;
    }

    .align-items-xl-end {
        align-items: flex-end !important;
    }

    .align-items-xl-center {
        align-items: center !important;
    }

    .align-items-xl-baseline {
        align-items: baseline !important;
    }

    .align-items-xl-stretch {
        align-items: stretch !important;
    }

    .align-content-xl-start {
        align-content: flex-start !important;
    }

    .align-content-xl-end {
        align-content: flex-end !important;
    }

    .align-content-xl-center {
        align-content: center !important;
    }

    .align-content-xl-between {
        align-content: space-between !important;
    }

    .align-content-xl-around {
        align-content: space-around !important;
    }

    .align-content-xl-stretch {
        align-content: stretch !important;
    }

    .align-self-xl-auto {
        align-self: auto !important;
    }

    .align-self-xl-start {
        align-self: flex-start !important;
    }

    .align-self-xl-end {
        align-self: flex-end !important;
    }

    .align-self-xl-center {
        align-self: center !important;
    }

    .align-self-xl-baseline {
        align-self: baseline !important;
    }

    .align-self-xl-stretch {
        align-self: stretch !important;
    }
}

.float-left {
    float: left !important;
}

.float-right {
    float: right !important;
}

.float-none {
    float: none !important;
}

@media (min-width: 576px) {
    .float-sm-left {
        float: left !important;
    }

    .float-sm-right {
        float: right !important;
    }

    .float-sm-none {
        float: none !important;
    }
}

@media (min-width: 768px) {
    .float-md-left {
        float: left !important;
    }

    .float-md-right {
        float: right !important;
    }

    .float-md-none {
        float: none !important;
    }
}

@media (min-width: 992px) {
    .float-lg-left {
        float: left !important;
    }

    .float-lg-right {
        float: right !important;
    }

    .float-lg-none {
        float: none !important;
    }
}

@media (min-width: 1200px) {
    .float-xl-left {
        float: left !important;
    }

    .float-xl-right {
        float: right !important;
    }

    .float-xl-none {
        float: none !important;
    }
}

.user-select-all {
    -webkit-user-select: all !important;
    -moz-user-select: all !important;
    -ms-user-select: all !important;
    user-select: all !important;
}

.user-select-auto {
    -webkit-user-select: auto !important;
    -moz-user-select: auto !important;
    -ms-user-select: auto !important;
    user-select: auto !important;
}

.user-select-none {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

.overflow-auto {
    overflow: auto !important;
}

.overflow-hidden {
    overflow: hidden !important;
}

.position-static {
    position: static !important;
}

.position-relative {
    position: relative !important;
}

.position-absolute {
    position: absolute !important;
}

.position-fixed {
    position: fixed !important;
}

.position-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
}

.fixed-top {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}

.fixed-bottom {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
}

@supports ((position: -webkit-sticky) or (position: sticky)) {
    .sticky-top {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 1020;
    }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

.shadow-sm {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.shadow-lg {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow-none {
    box-shadow: none !important;
}

.w-25 {
    width: 25% !important;
}
.w-35 {
    width: 35% !important;
}
.w-50 {
    width: 50% !important;
}

.w-75 {
    width: 75% !important;
}

.w-100 {
    width: 100% !important;
}

.w-auto {
    width: auto !important;
}

.h-25 {
    height: 25% !important;
}

.h-50 {
    height: 50% !important;
}

.h-75 {
    height: 75% !important;
}

.h-100 {
    height: 100% !important;
}

.h-auto {
    height: auto !important;
}

.mw-100 {
    max-width: 100% !important;
}

.mh-100 {
    max-height: 100% !important;
}

.min-vw-100 {
    min-width: 100vw !important;
}

.min-vh-100 {
    min-height: 100vh !important;
}

.vw-100 {
    width: 100vw !important;
}

.vh-100 {
    height: 100vh !important;
}
}
.m-0 {
    margin: 0 !important;
}

.mt-0,
.my-0 {
    margin-top: 0 !important;
}

.mr-0,
.mx-0 {
    margin-right: 0 !important;
}

.mb-0,
.my-0 {
    margin-bottom: 0 !important;
}

.ml-0,
.mx-0 {
    margin-left: 0 !important;
}

.m-1 {
    margin: 0.25rem !important;
}

.mt-1,
.my-1 {
    margin-top: 0.25rem !important;
}

.mr-1,
.mx-1 {
    margin-right: 0.25rem !important;
}

.mb-1,
.my-1 {
    margin-bottom: 0.25rem !important;
}

.ml-1,
.mx-1 {
    margin-left: 0.25rem !important;
}

.m-2 {
    margin: 0.5rem !important;
}

.mt-2,
.my-2 {
    margin-top: 0.5rem !important;
}

.mr-2,
.mx-2 {
    margin-right: 0.5rem !important;
}

.mb-2,
.my-2 {
    margin-bottom: 0.5rem !important;
}

.ml-2,
.mx-2 {
    margin-left: 0.5rem !important;
}

.m-3 {
    margin: 1rem !important;
}

.mt-3,
.my-3 {
    margin-top: 1rem !important;
}

.mr-3,
.mx-3 {
    margin-right: 1rem !important;
}

.mb-3,
.my-3 {
    margin-bottom: 1rem !important;
}

.ml-3,
.mx-3 {
    margin-left: 1rem !important;
}

.m-4 {
    margin: 1.5rem !important;
}

.mt-4,
.my-4 {
    margin-top: 1.5rem !important;
}

.mr-4,
.mx-4 {
    margin-right: 1.5rem !important;
}

.mb-4,
.my-4 {
    margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4 {
    margin-left: 1.5rem !important;
}

.m-5 {
    margin: 3rem !important;
}

.mt-5,
.my-5 {
    margin-top: 3rem !important;
}

.mr-5,
.mx-5 {
    margin-right: 3rem !important;
}

.mb-5,
.my-5 {
    margin-bottom: 3rem !important;
}

.ml-5,
.mx-5 {
    margin-left: 3rem !important;
}

.p-0 {
    padding: 0 !important;
}

.pt-0,
.py-0 {
    padding-top: 0 !important;
}

.pr-0,
.px-0 {
    padding-right: 0 !important;
}

.pb-0,
.py-0 {
    padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
    padding-left: 0 !important;
}

.p-1 {
    padding: 0.25rem !important;
}

.pt-1,
.py-1 {
    padding-top: 0.25rem !important;
}

.pr-1,
.px-1 {
    padding-right: 0.25rem !important;
}

.pb-1,
.py-1 {
    padding-bottom: 0.25rem !important;
}

.pl-1,
.px-1 {
    padding-left: 0.25rem !important;
}

.p-2 {
    padding: 0.5rem !important;
}

.pt-2,
.py-2 {
    padding-top: 0.5rem !important;
}

.pr-2,
.px-2 {
    padding-right: 0.5rem !important;
}

.pb-2,
.py-2 {
    padding-bottom: 0.5rem !important;
}

.pl-2,
.px-2 {
    padding-left: 0.5rem !important;
}

.p-3 {
    padding: 1rem !important;
}

.pt-3,
.py-3 {
    padding-top: 1rem !important;
}

.pr-3,
.px-3 {
    padding-right: 1rem !important;
}

.pb-3,
.py-3 {
    padding-bottom: 1rem !important;
}

.pl-3,
.px-3 {
    padding-left: 1rem !important;
}

.p-4 {
    padding: 1.5rem !important;
}

.pt-4,
.py-4 {
    padding-top: 1.5rem !important;
}

.pr-4,
.px-4 {
    padding-right: 1.5rem !important;
}

.pb-4,
.py-4 {
    padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4 {
    padding-left: 1.5rem !important;
}

.p-5 {
    padding: 3rem !important;
}

.pt-5,
.py-5 {
    padding-top: 3rem !important;
}

.pr-5,
.px-5 {
    padding-right: 3rem !important;
}

.pb-5,
.py-5 {
    padding-bottom: 3rem !important;
}

.pl-5,
.px-5 {
    padding-left: 3rem !important;
}

.m-n1 {
    margin: -0.25rem !important;
}

.mt-n1,
.my-n1 {
    margin-top: -0.25rem !important;
}

.mr-n1,
.mx-n1 {
    margin-right: -0.25rem !important;
}

.mb-n1,
.my-n1 {
    margin-bottom: -0.25rem !important;
}

.ml-n1,
.mx-n1 {
    margin-left: -0.25rem !important;
}

.m-n2 {
    margin: -0.5rem !important;
}

.mt-n2,
.my-n2 {
    margin-top: -0.5rem !important;
}

.mr-n2,
.mx-n2 {
    margin-right: -0.5rem !important;
}

.mb-n2,
.my-n2 {
    margin-bottom: -0.5rem !important;
}

.ml-n2,
.mx-n2 {
    margin-left: -0.5rem !important;
}

.m-n3 {
    margin: -1rem !important;
}

.mt-n3,
.my-n3 {
    margin-top: -1rem !important;
}

.mr-n3,
.mx-n3 {
    margin-right: -1rem !important;
}

.mb-n3,
.my-n3 {
    margin-bottom: -1rem !important;
}

.ml-n3,
.mx-n3 {
    margin-left: -1rem !important;
}

.m-n4 {
    margin: -1.5rem !important;
}

.mt-n4,
.my-n4 {
    margin-top: -1.5rem !important;
}

.mr-n4,
.mx-n4 {
    margin-right: -1.5rem !important;
}

.mb-n4,
.my-n4 {
    margin-bottom: -1.5rem !important;
}

.ml-n4,
.mx-n4 {
    margin-left: -1.5rem !important;
}

.m-n5 {
    margin: -3rem !important;
}

.mt-n5,
.my-n5 {
    margin-top: -3rem !important;
}

.mr-n5,
.mx-n5 {
    margin-right: -3rem !important;
}

.mb-n5,
.my-n5 {
    margin-bottom: -3rem !important;
}

.ml-n5,
.mx-n5 {
    margin-left: -3rem !important;
}

.m-auto {
    margin: auto !important;
}

.mt-auto,
.my-auto {
    margin-top: auto !important;
}

.mr-auto,
.mx-auto {
    margin-right: auto !important;
}

.mb-auto,
.my-auto {
    margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
    margin-left: auto !important;
}

@media (min-width: 576px) {
    .m-sm-0 {
        margin: 0 !important;
    }

    .mt-sm-0,
    .my-sm-0 {
        margin-top: 0 !important;
    }

    .mr-sm-0,
    .mx-sm-0 {
        margin-right: 0 !important;
    }

    .mb-sm-0,
    .my-sm-0 {
        margin-bottom: 0 !important;
    }

    .ml-sm-0,
    .mx-sm-0 {
        margin-left: 0 !important;
    }

    .m-sm-1 {
        margin: 0.25rem !important;
    }

    .mt-sm-1,
    .my-sm-1 {
        margin-top: 0.25rem !important;
    }

    .mr-sm-1,
    .mx-sm-1 {
        margin-right: 0.25rem !important;
    }

    .mb-sm-1,
    .my-sm-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-sm-1,
    .mx-sm-1 {
        margin-left: 0.25rem !important;
    }

    .m-sm-2 {
        margin: 0.5rem !important;
    }

    .mt-sm-2,
    .my-sm-2 {
        margin-top: 0.5rem !important;
    }

    .mr-sm-2,
    .mx-sm-2 {
        margin-right: 0.5rem !important;
    }

    .mb-sm-2,
    .my-sm-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-sm-2,
    .mx-sm-2 {
        margin-left: 0.5rem !important;
    }

    .m-sm-3 {
        margin: 1rem !important;
    }

    .mt-sm-3,
    .my-sm-3 {
        margin-top: 1rem !important;
    }

    .mr-sm-3,
    .mx-sm-3 {
        margin-right: 1rem !important;
    }

    .mb-sm-3,
    .my-sm-3 {
        margin-bottom: 1rem !important;
    }

    .ml-sm-3,
    .mx-sm-3 {
        margin-left: 1rem !important;
    }

    .m-sm-4 {
        margin: 1.5rem !important;
    }

    .mt-sm-4,
    .my-sm-4 {
        margin-top: 1.5rem !important;
    }

    .mr-sm-4,
    .mx-sm-4 {
        margin-right: 1.5rem !important;
    }

    .mb-sm-4,
    .my-sm-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-sm-4,
    .mx-sm-4 {
        margin-left: 1.5rem !important;
    }

    .m-sm-5 {
        margin: 3rem !important;
    }

    .mt-sm-5,
    .my-sm-5 {
        margin-top: 3rem !important;
    }

    .mr-sm-5,
    .mx-sm-5 {
        margin-right: 3rem !important;
    }

    .mb-sm-5,
    .my-sm-5 {
        margin-bottom: 3rem !important;
    }

    .ml-sm-5,
    .mx-sm-5 {
        margin-left: 3rem !important;
    }

    .p-sm-0 {
        padding: 0 !important;
    }

    .pt-sm-0,
    .py-sm-0 {
        padding-top: 0 !important;
    }

    .pr-sm-0,
    .px-sm-0 {
        padding-right: 0 !important;
    }

    .pb-sm-0,
    .py-sm-0 {
        padding-bottom: 0 !important;
    }

    .pl-sm-0,
    .px-sm-0 {
        padding-left: 0 !important;
    }

    .p-sm-1 {
        padding: 0.25rem !important;
    }

    .pt-sm-1,
    .py-sm-1 {
        padding-top: 0.25rem !important;
    }

    .pr-sm-1,
    .px-sm-1 {
        padding-right: 0.25rem !important;
    }

    .pb-sm-1,
    .py-sm-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-sm-1,
    .px-sm-1 {
        padding-left: 0.25rem !important;
    }

    .p-sm-2 {
        padding: 0.5rem !important;
    }

    .pt-sm-2,
    .py-sm-2 {
        padding-top: 0.5rem !important;
    }

    .pr-sm-2,
    .px-sm-2 {
        padding-right: 0.5rem !important;
    }

    .pb-sm-2,
    .py-sm-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-sm-2,
    .px-sm-2 {
        padding-left: 0.5rem !important;
    }

    .p-sm-3 {
        padding: 1rem !important;
    }

    .pt-sm-3,
    .py-sm-3 {
        padding-top: 1rem !important;
    }

    .pr-sm-3,
    .px-sm-3 {
        padding-right: 1rem !important;
    }

    .pb-sm-3,
    .py-sm-3 {
        padding-bottom: 1rem !important;
    }

    .pl-sm-3,
    .px-sm-3 {
        padding-left: 1rem !important;
    }

    .p-sm-4 {
        padding: 1.5rem !important;
    }

    .pt-sm-4,
    .py-sm-4 {
        padding-top: 1.5rem !important;
    }

    .pr-sm-4,
    .px-sm-4 {
        padding-right: 1.5rem !important;
    }

    .pb-sm-4,
    .py-sm-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-sm-4,
    .px-sm-4 {
        padding-left: 1.5rem !important;
    }

    .p-sm-5 {
        padding: 3rem !important;
    }

    .pt-sm-5,
    .py-sm-5 {
        padding-top: 3rem !important;
    }

    .pr-sm-5,
    .px-sm-5 {
        padding-right: 3rem !important;
    }

    .pb-sm-5,
    .py-sm-5 {
        padding-bottom: 3rem !important;
    }

    .pl-sm-5,
    .px-sm-5 {
        padding-left: 3rem !important;
    }

    .m-sm-n1 {
        margin: -0.25rem !important;
    }

    .mt-sm-n1,
    .my-sm-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-sm-n1,
    .mx-sm-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-sm-n1,
    .my-sm-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-sm-n1,
    .mx-sm-n1 {
        margin-left: -0.25rem !important;
    }

    .m-sm-n2 {
        margin: -0.5rem !important;
    }

    .mt-sm-n2,
    .my-sm-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-sm-n2,
    .mx-sm-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-sm-n2,
    .my-sm-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-sm-n2,
    .mx-sm-n2 {
        margin-left: -0.5rem !important;
    }

    .m-sm-n3 {
        margin: -1rem !important;
    }

    .mt-sm-n3,
    .my-sm-n3 {
        margin-top: -1rem !important;
    }

    .mr-sm-n3,
    .mx-sm-n3 {
        margin-right: -1rem !important;
    }

    .mb-sm-n3,
    .my-sm-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-sm-n3,
    .mx-sm-n3 {
        margin-left: -1rem !important;
    }

    .m-sm-n4 {
        margin: -1.5rem !important;
    }

    .mt-sm-n4,
    .my-sm-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-sm-n4,
    .mx-sm-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-sm-n4,
    .my-sm-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-sm-n4,
    .mx-sm-n4 {
        margin-left: -1.5rem !important;
    }

    .m-sm-n5 {
        margin: -3rem !important;
    }

    .mt-sm-n5,
    .my-sm-n5 {
        margin-top: -3rem !important;
    }

    .mr-sm-n5,
    .mx-sm-n5 {
        margin-right: -3rem !important;
    }

    .mb-sm-n5,
    .my-sm-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-sm-n5,
    .mx-sm-n5 {
        margin-left: -3rem !important;
    }

    .m-sm-auto {
        margin: auto !important;
    }

    .mt-sm-auto,
    .my-sm-auto {
        margin-top: auto !important;
    }

    .mr-sm-auto,
    .mx-sm-auto {
        margin-right: auto !important;
    }

    .mb-sm-auto,
    .my-sm-auto {
        margin-bottom: auto !important;
    }

    .ml-sm-auto,
    .mx-sm-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 768px) {
    .m-md-0 {
        margin: 0 !important;
    }

    .mt-md-0,
    .my-md-0 {
        margin-top: 0 !important;
    }

    .mr-md-0,
    .mx-md-0 {
        margin-right: 0 !important;
    }

    .mb-md-0,
    .my-md-0 {
        margin-bottom: 0 !important;
    }

    .ml-md-0,
    .mx-md-0 {
        margin-left: 0 !important;
    }

    .m-md-1 {
        margin: 0.25rem !important;
    }

    .mt-md-1,
    .my-md-1 {
        margin-top: 0.25rem !important;
    }

    .mr-md-1,
    .mx-md-1 {
        margin-right: 0.25rem !important;
    }

    .mb-md-1,
    .my-md-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-md-1,
    .mx-md-1 {
        margin-left: 0.25rem !important;
    }

    .m-md-2 {
        margin: 0.5rem !important;
    }

    .mt-md-2,
    .my-md-2 {
        margin-top: 0.5rem !important;
    }

    .mr-md-2,
    .mx-md-2 {
        margin-right: 0.5rem !important;
    }

    .mb-md-2,
    .my-md-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-md-2,
    .mx-md-2 {
        margin-left: 0.5rem !important;
    }

    .m-md-3 {
        margin: 1rem !important;
    }

    .mt-md-3,
    .my-md-3 {
        margin-top: 1rem !important;
    }

    .mr-md-3,
    .mx-md-3 {
        margin-right: 1rem !important;
    }

    .mb-md-3,
    .my-md-3 {
        margin-bottom: 1rem !important;
    }

    .ml-md-3,
    .mx-md-3 {
        margin-left: 1rem !important;
    }

    .m-md-4 {
        margin: 1.5rem !important;
    }

    .mt-md-4,
    .my-md-4 {
        margin-top: 1.5rem !important;
    }

    .mr-md-4,
    .mx-md-4 {
        margin-right: 1.5rem !important;
    }

    .mb-md-4,
    .my-md-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-md-4,
    .mx-md-4 {
        margin-left: 1.5rem !important;
    }

    .m-md-5 {
        margin: 3rem !important;
    }

    .mt-md-5,
    .my-md-5 {
        margin-top: 3rem !important;
    }

    .mr-md-5,
    .mx-md-5 {
        margin-right: 3rem !important;
    }

    .mb-md-5,
    .my-md-5 {
        margin-bottom: 3rem !important;
    }

    .ml-md-5,
    .mx-md-5 {
        margin-left: 3rem !important;
    }

    .p-md-0 {
        padding: 0 !important;
    }

    .pt-md-0,
    .py-md-0 {
        padding-top: 0 !important;
    }

    .pr-md-0,
    .px-md-0 {
        padding-right: 0 !important;
    }

    .pb-md-0,
    .py-md-0 {
        padding-bottom: 0 !important;
    }

    .pl-md-0,
    .px-md-0 {
        padding-left: 0 !important;
    }

    .p-md-1 {
        padding: 0.25rem !important;
    }

    .pt-md-1,
    .py-md-1 {
        padding-top: 0.25rem !important;
    }

    .pr-md-1,
    .px-md-1 {
        padding-right: 0.25rem !important;
    }

    .pb-md-1,
    .py-md-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-md-1,
    .px-md-1 {
        padding-left: 0.25rem !important;
    }

    .p-md-2 {
        padding: 0.5rem !important;
    }

    .pt-md-2,
    .py-md-2 {
        padding-top: 0.5rem !important;
    }

    .pr-md-2,
    .px-md-2 {
        padding-right: 0.5rem !important;
    }

    .pb-md-2,
    .py-md-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-md-2,
    .px-md-2 {
        padding-left: 0.5rem !important;
    }

    .p-md-3 {
        padding: 1rem !important;
    }

    .pt-md-3,
    .py-md-3 {
        padding-top: 1rem !important;
    }

    .pr-md-3,
    .px-md-3 {
        padding-right: 1rem !important;
    }

    .pb-md-3,
    .py-md-3 {
        padding-bottom: 1rem !important;
    }

    .pl-md-3,
    .px-md-3 {
        padding-left: 1rem !important;
    }

    .p-md-4 {
        padding: 1.5rem !important;
    }

    .pt-md-4,
    .py-md-4 {
        padding-top: 1.5rem !important;
    }

    .pr-md-4,
    .px-md-4 {
        padding-right: 1.5rem !important;
    }

    .pb-md-4,
    .py-md-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-md-4,
    .px-md-4 {
        padding-left: 1.5rem !important;
    }

    .p-md-5 {
        padding: 3rem !important;
    }

    .pt-md-5,
    .py-md-5 {
        padding-top: 3rem !important;
    }

    .pr-md-5,
    .px-md-5 {
        padding-right: 3rem !important;
    }

    .pb-md-5,
    .py-md-5 {
        padding-bottom: 3rem !important;
    }

    .pl-md-5,
    .px-md-5 {
        padding-left: 3rem !important;
    }

    .m-md-n1 {
        margin: -0.25rem !important;
    }

    .mt-md-n1,
    .my-md-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-md-n1,
    .mx-md-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-md-n1,
    .my-md-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-md-n1,
    .mx-md-n1 {
        margin-left: -0.25rem !important;
    }

    .m-md-n2 {
        margin: -0.5rem !important;
    }

    .mt-md-n2,
    .my-md-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-md-n2,
    .mx-md-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-md-n2,
    .my-md-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-md-n2,
    .mx-md-n2 {
        margin-left: -0.5rem !important;
    }

    .m-md-n3 {
        margin: -1rem !important;
    }

    .mt-md-n3,
    .my-md-n3 {
        margin-top: -1rem !important;
    }

    .mr-md-n3,
    .mx-md-n3 {
        margin-right: -1rem !important;
    }

    .mb-md-n3,
    .my-md-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-md-n3,
    .mx-md-n3 {
        margin-left: -1rem !important;
    }

    .m-md-n4 {
        margin: -1.5rem !important;
    }

    .mt-md-n4,
    .my-md-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-md-n4,
    .mx-md-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-md-n4,
    .my-md-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-md-n4,
    .mx-md-n4 {
        margin-left: -1.5rem !important;
    }

    .m-md-n5 {
        margin: -3rem !important;
    }

    .mt-md-n5,
    .my-md-n5 {
        margin-top: -3rem !important;
    }

    .mr-md-n5,
    .mx-md-n5 {
        margin-right: -3rem !important;
    }

    .mb-md-n5,
    .my-md-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-md-n5,
    .mx-md-n5 {
        margin-left: -3rem !important;
    }

    .m-md-auto {
        margin: auto !important;
    }

    .mt-md-auto,
    .my-md-auto {
        margin-top: auto !important;
    }

    .mr-md-auto,
    .mx-md-auto {
        margin-right: auto !important;
    }

    .mb-md-auto,
    .my-md-auto {
        margin-bottom: auto !important;
    }

    .ml-md-auto,
    .mx-md-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 992px) {
    .m-lg-0 {
        margin: 0 !important;
    }

    .mt-lg-0,
    .my-lg-0 {
        margin-top: 0 !important;
    }

    .mr-lg-0,
    .mx-lg-0 {
        margin-right: 0 !important;
    }

    .mb-lg-0,
    .my-lg-0 {
        margin-bottom: 0 !important;
    }

    .ml-lg-0,
    .mx-lg-0 {
        margin-left: 0 !important;
    }

    .m-lg-1 {
        margin: 0.25rem !important;
    }

    .mt-lg-1,
    .my-lg-1 {
        margin-top: 0.25rem !important;
    }

    .mr-lg-1,
    .mx-lg-1 {
        margin-right: 0.25rem !important;
    }

    .mb-lg-1,
    .my-lg-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-lg-1,
    .mx-lg-1 {
        margin-left: 0.25rem !important;
    }

    .m-lg-2 {
        margin: 0.5rem !important;
    }

    .mt-lg-2,
    .my-lg-2 {
        margin-top: 0.5rem !important;
    }

    .mr-lg-2,
    .mx-lg-2 {
        margin-right: 0.5rem !important;
    }

    .mb-lg-2,
    .my-lg-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-lg-2,
    .mx-lg-2 {
        margin-left: 0.5rem !important;
    }

    .m-lg-3 {
        margin: 1rem !important;
    }

    .mt-lg-3,
    .my-lg-3 {
        margin-top: 1rem !important;
    }

    .mr-lg-3,
    .mx-lg-3 {
        margin-right: 1rem !important;
    }

    .mb-lg-3,
    .my-lg-3 {
        margin-bottom: 1rem !important;
    }

    .ml-lg-3,
    .mx-lg-3 {
        margin-left: 1rem !important;
    }

    .m-lg-4 {
        margin: 1.5rem !important;
    }

    .mt-lg-4,
    .my-lg-4 {
        margin-top: 1.5rem !important;
    }

    .mr-lg-4,
    .mx-lg-4 {
        margin-right: 1.5rem !important;
    }

    .mb-lg-4,
    .my-lg-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-lg-4,
    .mx-lg-4 {
        margin-left: 1.5rem !important;
    }

    .m-lg-5 {
        margin: 3rem !important;
    }

    .mt-lg-5,
    .my-lg-5 {
        margin-top: 3rem !important;
    }

    .mr-lg-5,
    .mx-lg-5 {
        margin-right: 3rem !important;
    }

    .mb-lg-5,
    .my-lg-5 {
        margin-bottom: 3rem !important;
    }

    .ml-lg-5,
    .mx-lg-5 {
        margin-left: 3rem !important;
    }

    .p-lg-0 {
        padding: 0 !important;
    }

    .pt-lg-0,
    .py-lg-0 {
        padding-top: 0 !important;
    }

    .pr-lg-0,
    .px-lg-0 {
        padding-right: 0 !important;
    }

    .pb-lg-0,
    .py-lg-0 {
        padding-bottom: 0 !important;
    }

    .pl-lg-0,
    .px-lg-0 {
        padding-left: 0 !important;
    }

    .p-lg-1 {
        padding: 0.25rem !important;
    }

    .pt-lg-1,
    .py-lg-1 {
        padding-top: 0.25rem !important;
    }

    .pr-lg-1,
    .px-lg-1 {
        padding-right: 0.25rem !important;
    }

    .pb-lg-1,
    .py-lg-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-lg-1,
    .px-lg-1 {
        padding-left: 0.25rem !important;
    }

    .p-lg-2 {
        padding: 0.5rem !important;
    }

    .pt-lg-2,
    .py-lg-2 {
        padding-top: 0.5rem !important;
    }

    .pr-lg-2,
    .px-lg-2 {
        padding-right: 0.5rem !important;
    }

    .pb-lg-2,
    .py-lg-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-lg-2,
    .px-lg-2 {
        padding-left: 0.5rem !important;
    }

    .p-lg-3 {
        padding: 1rem !important;
    }

    .pt-lg-3,
    .py-lg-3 {
        padding-top: 1rem !important;
    }

    .pr-lg-3,
    .px-lg-3 {
        padding-right: 1rem !important;
    }

    .pb-lg-3,
    .py-lg-3 {
        padding-bottom: 1rem !important;
    }

    .pl-lg-3,
    .px-lg-3 {
        padding-left: 1rem !important;
    }

    .p-lg-4 {
        padding: 1.5rem !important;
    }

    .pt-lg-4,
    .py-lg-4 {
        padding-top: 1.5rem !important;
    }

    .pr-lg-4,
    .px-lg-4 {
        padding-right: 1.5rem !important;
    }

    .pb-lg-4,
    .py-lg-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-lg-4,
    .px-lg-4 {
        padding-left: 1.5rem !important;
    }

    .p-lg-5 {
        padding: 3rem !important;
    }

    .pt-lg-5,
    .py-lg-5 {
        padding-top: 3rem !important;
    }

    .pr-lg-5,
    .px-lg-5 {
        padding-right: 3rem !important;
    }

    .pb-lg-5,
    .py-lg-5 {
        padding-bottom: 3rem !important;
    }

    .pl-lg-5,
    .px-lg-5 {
        padding-left: 3rem !important;
    }

    .m-lg-n1 {
        margin: -0.25rem !important;
    }

    .mt-lg-n1,
    .my-lg-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-lg-n1,
    .mx-lg-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-lg-n1,
    .my-lg-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-lg-n1,
    .mx-lg-n1 {
        margin-left: -0.25rem !important;
    }

    .m-lg-n2 {
        margin: -0.5rem !important;
    }

    .mt-lg-n2,
    .my-lg-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-lg-n2,
    .mx-lg-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-lg-n2,
    .my-lg-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-lg-n2,
    .mx-lg-n2 {
        margin-left: -0.5rem !important;
    }

    .m-lg-n3 {
        margin: -1rem !important;
    }

    .mt-lg-n3,
    .my-lg-n3 {
        margin-top: -1rem !important;
    }

    .mr-lg-n3,
    .mx-lg-n3 {
        margin-right: -1rem !important;
    }

    .mb-lg-n3,
    .my-lg-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-lg-n3,
    .mx-lg-n3 {
        margin-left: -1rem !important;
    }

    .m-lg-n4 {
        margin: -1.5rem !important;
    }

    .mt-lg-n4,
    .my-lg-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-lg-n4,
    .mx-lg-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-lg-n4,
    .my-lg-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-lg-n4,
    .mx-lg-n4 {
        margin-left: -1.5rem !important;
    }

    .m-lg-n5 {
        margin: -3rem !important;
    }

    .mt-lg-n5,
    .my-lg-n5 {
        margin-top: -3rem !important;
    }

    .mr-lg-n5,
    .mx-lg-n5 {
        margin-right: -3rem !important;
    }

    .mb-lg-n5,
    .my-lg-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-lg-n5,
    .mx-lg-n5 {
        margin-left: -3rem !important;
    }

    .m-lg-auto {
        margin: auto !important;
    }

    .mt-lg-auto,
    .my-lg-auto {
        margin-top: auto !important;
    }

    .mr-lg-auto,
    .mx-lg-auto {
        margin-right: auto !important;
    }

    .mb-lg-auto,
    .my-lg-auto {
        margin-bottom: auto !important;
    }

    .ml-lg-auto,
    .mx-lg-auto {
        margin-left: auto !important;
    }
}

@media (min-width: 1200px) {
    .m-xl-0 {
        margin: 0 !important;
    }

    .mt-xl-0,
    .my-xl-0 {
        margin-top: 0 !important;
    }

    .mr-xl-0,
    .mx-xl-0 {
        margin-right: 0 !important;
    }

    .mb-xl-0,
    .my-xl-0 {
        margin-bottom: 0 !important;
    }

    .ml-xl-0,
    .mx-xl-0 {
        margin-left: 0 !important;
    }

    .m-xl-1 {
        margin: 0.25rem !important;
    }

    .mt-xl-1,
    .my-xl-1 {
        margin-top: 0.25rem !important;
    }

    .mr-xl-1,
    .mx-xl-1 {
        margin-right: 0.25rem !important;
    }

    .mb-xl-1,
    .my-xl-1 {
        margin-bottom: 0.25rem !important;
    }

    .ml-xl-1,
    .mx-xl-1 {
        margin-left: 0.25rem !important;
    }

    .m-xl-2 {
        margin: 0.5rem !important;
    }

    .mt-xl-2,
    .my-xl-2 {
        margin-top: 0.5rem !important;
    }

    .mr-xl-2,
    .mx-xl-2 {
        margin-right: 0.5rem !important;
    }

    .mb-xl-2,
    .my-xl-2 {
        margin-bottom: 0.5rem !important;
    }

    .ml-xl-2,
    .mx-xl-2 {
        margin-left: 0.5rem !important;
    }

    .m-xl-3 {
        margin: 1rem !important;
    }

    .mt-xl-3,
    .my-xl-3 {
        margin-top: 1rem !important;
    }

    .mr-xl-3,
    .mx-xl-3 {
        margin-right: 1rem !important;
    }

    .mb-xl-3,
    .my-xl-3 {
        margin-bottom: 1rem !important;
    }

    .ml-xl-3,
    .mx-xl-3 {
        margin-left: 1rem !important;
    }

    .m-xl-4 {
        margin: 1.5rem !important;
    }

    .mt-xl-4,
    .my-xl-4 {
        margin-top: 1.5rem !important;
    }

    .mr-xl-4,
    .mx-xl-4 {
        margin-right: 1.5rem !important;
    }

    .mb-xl-4,
    .my-xl-4 {
        margin-bottom: 1.5rem !important;
    }

    .ml-xl-4,
    .mx-xl-4 {
        margin-left: 1.5rem !important;
    }

    .m-xl-5 {
        margin: 3rem !important;
    }

    .mt-xl-5,
    .my-xl-5 {
        margin-top: 3rem !important;
    }

    .mr-xl-5,
    .mx-xl-5 {
        margin-right: 3rem !important;
    }

    .mb-xl-5,
    .my-xl-5 {
        margin-bottom: 3rem !important;
    }

    .ml-xl-5,
    .mx-xl-5 {
        margin-left: 3rem !important;
    }

    .p-xl-0 {
        padding: 0 !important;
    }

    .pt-xl-0,
    .py-xl-0 {
        padding-top: 0 !important;
    }

    .pr-xl-0,
    .px-xl-0 {
        padding-right: 0 !important;
    }

    .pb-xl-0,
    .py-xl-0 {
        padding-bottom: 0 !important;
    }

    .pl-xl-0,
    .px-xl-0 {
        padding-left: 0 !important;
    }

    .p-xl-1 {
        padding: 0.25rem !important;
    }

    .pt-xl-1,
    .py-xl-1 {
        padding-top: 0.25rem !important;
    }

    .pr-xl-1,
    .px-xl-1 {
        padding-right: 0.25rem !important;
    }

    .pb-xl-1,
    .py-xl-1 {
        padding-bottom: 0.25rem !important;
    }

    .pl-xl-1,
    .px-xl-1 {
        padding-left: 0.25rem !important;
    }

    .p-xl-2 {
        padding: 0.5rem !important;
    }

    .pt-xl-2,
    .py-xl-2 {
        padding-top: 0.5rem !important;
    }

    .pr-xl-2,
    .px-xl-2 {
        padding-right: 0.5rem !important;
    }

    .pb-xl-2,
    .py-xl-2 {
        padding-bottom: 0.5rem !important;
    }

    .pl-xl-2,
    .px-xl-2 {
        padding-left: 0.5rem !important;
    }

    .p-xl-3 {
        padding: 1rem !important;
    }

    .pt-xl-3,
    .py-xl-3 {
        padding-top: 1rem !important;
    }

    .pr-xl-3,
    .px-xl-3 {
        padding-right: 1rem !important;
    }

    .pb-xl-3,
    .py-xl-3 {
        padding-bottom: 1rem !important;
    }

    .pl-xl-3,
    .px-xl-3 {
        padding-left: 1rem !important;
    }

    .p-xl-4 {
        padding: 1.5rem !important;
    }

    .pt-xl-4,
    .py-xl-4 {
        padding-top: 1.5rem !important;
    }

    .pr-xl-4,
    .px-xl-4 {
        padding-right: 1.5rem !important;
    }

    .pb-xl-4,
    .py-xl-4 {
        padding-bottom: 1.5rem !important;
    }

    .pl-xl-4,
    .px-xl-4 {
        padding-left: 1.5rem !important;
    }

    .p-xl-5 {
        padding: 3rem !important;
    }

    .pt-xl-5,
    .py-xl-5 {
        padding-top: 3rem !important;
    }

    .pr-xl-5,
    .px-xl-5 {
        padding-right: 3rem !important;
    }

    .pb-xl-5,
    .py-xl-5 {
        padding-bottom: 3rem !important;
    }

    .pl-xl-5,
    .px-xl-5 {
        padding-left: 3rem !important;
    }

    .m-xl-n1 {
        margin: -0.25rem !important;
    }

    .mt-xl-n1,
    .my-xl-n1 {
        margin-top: -0.25rem !important;
    }

    .mr-xl-n1,
    .mx-xl-n1 {
        margin-right: -0.25rem !important;
    }

    .mb-xl-n1,
    .my-xl-n1 {
        margin-bottom: -0.25rem !important;
    }

    .ml-xl-n1,
    .mx-xl-n1 {
        margin-left: -0.25rem !important;
    }

    .m-xl-n2 {
        margin: -0.5rem !important;
    }

    .mt-xl-n2,
    .my-xl-n2 {
        margin-top: -0.5rem !important;
    }

    .mr-xl-n2,
    .mx-xl-n2 {
        margin-right: -0.5rem !important;
    }

    .mb-xl-n2,
    .my-xl-n2 {
        margin-bottom: -0.5rem !important;
    }

    .ml-xl-n2,
    .mx-xl-n2 {
        margin-left: -0.5rem !important;
    }

    .m-xl-n3 {
        margin: -1rem !important;
    }

    .mt-xl-n3,
    .my-xl-n3 {
        margin-top: -1rem !important;
    }

    .mr-xl-n3,
    .mx-xl-n3 {
        margin-right: -1rem !important;
    }

    .mb-xl-n3,
    .my-xl-n3 {
        margin-bottom: -1rem !important;
    }

    .ml-xl-n3,
    .mx-xl-n3 {
        margin-left: -1rem !important;
    }

    .m-xl-n4 {
        margin: -1.5rem !important;
    }

    .mt-xl-n4,
    .my-xl-n4 {
        margin-top: -1.5rem !important;
    }

    .mr-xl-n4,
    .mx-xl-n4 {
        margin-right: -1.5rem !important;
    }

    .mb-xl-n4,
    .my-xl-n4 {
        margin-bottom: -1.5rem !important;
    }

    .ml-xl-n4,
    .mx-xl-n4 {
        margin-left: -1.5rem !important;
    }

    .m-xl-n5 {
        margin: -3rem !important;
    }

    .mt-xl-n5,
    .my-xl-n5 {
        margin-top: -3rem !important;
    }

    .mr-xl-n5,
    .mx-xl-n5 {
        margin-right: -3rem !important;
    }

    .mb-xl-n5,
    .my-xl-n5 {
        margin-bottom: -3rem !important;
    }

    .ml-xl-n5,
    .mx-xl-n5 {
        margin-left: -3rem !important;
    }

    .m-xl-auto {
        margin: auto !important;
    }

    .mt-xl-auto,
    .my-xl-auto {
        margin-top: auto !important;
    }

    .mr-xl-auto,
    .mx-xl-auto {
        margin-right: auto !important;
    }

    .mb-xl-auto,
    .my-xl-auto {
        margin-bottom: auto !important;
    }

    .ml-xl-auto,
    .mx-xl-auto {
        margin-left: auto !important;
    }
}

.stretched-link::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: auto;
    content: "";
    background-color: rgba(0, 0, 0, 0);
}

.text-monospace {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

.text-justify {
    text-align: justify !important;
}

.text-wrap {
    white-space: normal !important;
}

.text-nowrap {
    white-space: nowrap !important;
}

.text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.text-left {
    text-align: left !important;
}

.text-right {
    text-align: right !important;
}

.text-center {
    text-align: center !important;
}

@media (min-width: 576px) {
    .text-sm-left {
        text-align: left !important;
    }

    .text-sm-right {
        text-align: right !important;
    }

    .text-sm-center {
        text-align: center !important;
    }
}

@media (min-width: 768px) {
    .text-md-left {
        text-align: left !important;
    }

    .text-md-right {
        text-align: right !important;
    }

    .text-md-center {
        text-align: center !important;
    }
}

@media (min-width: 992px) {
    .text-lg-left {
        text-align: left !important;
    }

    .text-lg-right {
        text-align: right !important;
    }

    .text-lg-center {
        text-align: center !important;
    }
}

@media (min-width: 1200px) {
    .text-xl-left {
        text-align: left !important;
    }

    .text-xl-right {
        text-align: right !important;
    }

    .text-xl-center {
        text-align: center !important;
    }
}

.text-lowercase {
    text-transform: lowercase !important;
}

.text-uppercase {
    text-transform: uppercase !important;
}

.text-capitalize {
    text-transform: capitalize !important;
}

.font-weight-light {
    font-weight: 300 !important;
}

.font-weight-lighter {
    font-weight: lighter !important;
}

.font-weight-normal {
    font-weight: 400 !important;
}

.font-weight-bold {
    font-weight: 700 !important;
}

.font-weight-bolder {
    font-weight: bolder !important;
}

.font-italic {
    font-style: italic !important;
}

.text-white {
    color: var(--text-on-dark, #fff) !important;
}

.text-primary {
    color: var(--brand-accent, #fdb913) !important;
}

a.text-primary:hover, a.text-primary:focus {
    color: var(--brand-accent-hover, #e6b301) !important;
}

.text-secondary {
    color: var(--brand-primary, #3d1a6f) !important;
}

a.text-secondary:hover, a.text-secondary:focus {
    color: var(--text-secondary, #494f54) !important;
}

.text-success {
    color: var(--status-success, #28a745) !important;
}

a.text-success:hover, a.text-success:focus {
    color: var(--status-success, #19692c) !important;
}

.text-info {
    color: var(--status-info, #17a2b8) !important;
}

a.text-info:hover, a.text-info:focus {
    color: var(--status-info, #0f6674) !important;
}

.text-warning {
    color: var(--brand-accent, #fdb913) !important;
}

a.text-warning:hover, a.text-warning:focus {
    color: var(--brand-accent-hover, #e6b301) !important;
}

.text-danger {
    color: var(--status-danger, #dc3545) !important;
}

a.text-danger:hover, a.text-danger:focus {
    color: var(--status-danger, #a71d2a) !important;
}

.text-light {
    color: var(--bg-subtle, #f8f9fa) !important;
}

a.text-light:hover, a.text-light:focus {
    color: var(--bg-muted, #cbd3da) !important;
}

.text-dark {
    color: var(--text-primary, #343a40) !important;
}

a.text-dark:hover, a.text-dark:focus {
    color: var(--text-primary, #121416) !important;
}

.text-body {
    color: var(--text-primary, #333) !important;
}

.text-muted {
    color: var(--brand-primary, #3d1a6f) !important;
}

.text-black-50 {
    color: var(--text-secondary, rgba(0, 0, 0, 0.5)) !important;
}

.text-white-50 {
    color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
    font: 0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
}

.text-decoration-none {
    text-decoration: none !important;
}

.text-break {
    word-break: break-word !important;
    word-wrap: break-word !important;
}

.text-reset {
    color: inherit !important;
}

.visible {
    visibility: visible !important;
}

.invisible {
    visibility: hidden !important;
}

@media print {
    *,
    *::before,
    *::after {
        text-shadow: none !important;
        box-shadow: none !important;
    }

    a:not(.btn) {
        text-decoration: underline;
    }

    abbr[title]::after {
        content: " (" attr(title) ")";
    }

    pre {
        white-space: pre-wrap !important;
    }

    pre,
    blockquote {
        border: 1px solid var(--border-strong, #adb5bd);
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }

    @page {
        size: a3;
    }

    body {
        min-width: 992px !important;
    }

    .container {
        min-width: 992px !important;
    }

    .navbar {
        display: none;
    }

    .badge {
        border: 1px solid var(--text-primary, #000);
    }

    .table {
        border-collapse: collapse !important;
    }

        .table td,
        .table th {
            background-color: var(--bg-surface, #fff) !important;
        }

    .table-bordered th,
    .table-bordered td {
        border: 1px solid var(--border-default, #ddd) !important;
    }

    .table-dark {
        color: inherit;
    }

        .table-dark th,
        .table-dark td,
        .table-dark thead th,
        .table-dark tbody + tbody {
            border-color: var(--border-default, #ddd);
        }

    .table .thead-dark th {
        color: inherit;
        border-color: var(--border-default, #ddd);
    }
}

body {
    /* `clip` not `hidden` -- same reason as html in BUZZHub.css line 7618: hidden creates
       a scroll container that disables `position: sticky` for every descendant. clip
       still prevents horizontal scrollbar flicker. (Chrome 90+, FF 81+, Safari 16+.)
       Fixed 2026-05-19 when InterviewCoverage day banners still didn't stick after the
       html-level fix because this body rule sits later in the cascade. */
    overflow-x: clip;
}

p {
    line-height: 1.75;
}
.page-section-sm {
    padding: 2em 0;
}
.page-section {
    padding: 6rem 0;
}

    .page-section h2.section-heading {
        font-size: 2.5rem;
        margin-top: 0;
        margin-bottom: 1rem;
    }

    .page-section h3.section-subheading {
        font-size: 1rem;
        font-weight: 400;
        font-style: italic;
        font-family: 'Outfit', sans-serif;
        margin-bottom: 4rem;
    }

@media (min-width: 768px) {
    section {
        padding: 5rem 0;
    }
}

::-moz-selection {
    background: var(--brand-accent, #fdb913);
    text-shadow: none;
}

::selection {
    background: var(--brand-accent, #fdb913);
    text-shadow: none;
}

img::-moz-selection {
    background: transparent;
}

img::selection {
    background: transparent;
}

img::-moz-selection {
    background: transparent;
}

.btn-xl {
    padding: 1.25rem 2.5rem;
    font-family: 'Outfit', sans-serif;
    font-size: 1.125rem;
    font-weight: 700;
}

.btn-social {
    height: 2.5rem;
    width: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 50%;
}
    .btn-social:hover {
        color: var(--brand-accent, #fdb913);
    }


    .commstool {
        color: var(--text-on-dark, #fff);
        padding: 10px 15px;
        margin-left: 10px;
        border: 2px solid var(--bg-surface, #fff);
        border-radius: 50px;
        font-weight: 500;
    }

.padlock {
    color: var(--text-on-dark, #fff);
    padding: 10px 15px;
    margin-left: 10px;
    border: 2px solid var(--bg-surface, #fff);
    border-radius: 50px;
    font-weight: 500;
}

.telephone {
    color: var(--text-on-dark, #fff);
    padding: 10px 15px;
    margin-left: 0;
    margin-right: 0;
    border: 2px solid var(--bg-surface, #fff);
    border-radius: 50px;
    font-weight: 500;
}

.mediacastlogocolour {
    display: none;
}

.mediacastlogowhite {
    display: inline;
}


header.masthead {
    padding-top: 10.5rem;
    padding-bottom: 6rem;
    text-align: center;
    color: var(--text-on-dark, #fff);
    background-image: url("../assets/img/header-bg.jpg");
    background-repeat: no-repeat;
    background-attachment: scroll;
    background-position: center center;
    background-size: cover;
}

    header.masthead .masthead-subheading {
        font-size: 1.5rem;
        font-style: italic;
        line-height: 1.5rem;
        margin-bottom: 25px;
        font-family: 'Outfit', sans-serif;
    }

    header.masthead .masthead-heading {
        font-size: 3.25rem;
        font-weight: 700;
        line-height: 3.25rem;
        margin-bottom: 2rem;
        font-family: 'Outfit', sans-serif;
    }

@media (min-width: 768px) {
    header.masthead {
        padding-top: 17rem;
        padding-bottom: 12.5rem;
    }

        header.masthead .masthead-subheading {
            font-size: 2.25rem;
            font-style: italic;
            line-height: 2.25rem;
            margin-bottom: 2rem;
        }

        header.masthead .masthead-heading {
            font-size: 4.5rem;
            font-weight: 700;
            line-height: 4.5rem;
            margin-bottom: 4rem;
        }
}

#portfolio .portfolio-item {
    max-width: 25rem;
    margin-left: auto;
    margin-right: auto;
}

    #portfolio .portfolio-item .portfolio-link {
        position: relative;
        display: block;
        margin: 0 auto;
    }

        #portfolio .portfolio-item .portfolio-link .portfolio-hover {
            display: flex;
            position: absolute;
            width: 100%;
            height: 100%;
            background: rgba(254, 209, 54, 0.9);
            align-items: center;
            justify-content: center;
            opacity: 0;
            transition: opacity ease-in-out 0.25s;
        }

            #portfolio .portfolio-item .portfolio-link .portfolio-hover .portfolio-hover-content {
                font-size: 1.25rem;
                color: var(--text-on-dark, #fff);
            }

        #portfolio .portfolio-item .portfolio-link:hover .portfolio-hover {
            opacity: 1;
        }

    #portfolio .portfolio-item .portfolio-caption {
        padding: 1.5rem;
        text-align: center;
        background-color: var(--bg-surface, #fff);
    }

        #portfolio .portfolio-item .portfolio-caption .portfolio-caption-heading {
            font-size: 1.5rem;
            font-family: 'Outfit', sans-serif;
            font-weight: 700;
            margin-bottom: 0;
        }

        #portfolio .portfolio-item .portfolio-caption .portfolio-caption-subheading {
            font-style: italic;
            font-family: 'Outfit', sans-serif;
        }

.portfolio-modal .modal-dialog {
    margin: 1rem;
    max-width: 100vw;
}

.portfolio-modal .modal-content {
    padding-top: 6rem;
    padding-bottom: 6rem;
    text-align: center;
}

    .portfolio-modal .modal-content h2 {
        font-size: 3rem;
        line-height: 3rem;
    }

    .portfolio-modal .modal-content p.item-intro {
        font-style: italic;
        margin-bottom: 2rem;
        font-family: 'Outfit', sans-serif;
    }

    .portfolio-modal .modal-content p {
        margin-bottom: 2rem;
    }

    .portfolio-modal .modal-content ul.list-inline {
        margin-bottom: 2rem;
    }

    .portfolio-modal .modal-content img {
        margin-bottom: 2rem;
    }

.portfolio-modal .close-modal {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 3rem;
    height: 3rem;
    cursor: pointer;
    background-color: transparent;
}

    .portfolio-modal .close-modal:hover {
        opacity: 0.3;
    }

.timeline {
    position: relative;
    padding: 0;
    list-style: none;
}

    .timeline:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 40px;
        width: 2px;
        margin-left: -1.5px;
        content: "";
        background-color: var(--brand-accent, #fdb913);
    }

    .timeline > li {
        position: relative;
        min-height: 50px;
        margin-bottom: 50px;
    }

        .timeline > li:after, .timeline > li:before {
            display: table;
            content: " ";
        }

        .timeline > li:after {
            clear: both;
        }

        .timeline > li .timeline-panel {
            position: relative;
            float: right;
            width: 100%;
            padding: 0 20px 0 100px;
            text-align: left;
        }

            .timeline > li .timeline-panel:before {
                right: auto;
                left: -15px;
                border-right-width: 15px;
                border-left-width: 0;
            }

            .timeline > li .timeline-panel:after {
                right: auto;
                left: -14px;
                border-right-width: 14px;
                border-left-width: 0;
            }

        .timeline > li .timeline-image {
            position: absolute;
            z-index: 100;
            left: 0;
            width: 80px;
            height: 80px;
            margin-left: 0;
            text-align: center;
            color: var(--text-on-dark, #fff);
            border: 7px solid var(--brand-accent, #fdb913);
            border-radius: 100%;
            background-color: var(--brand-accent, #fdb913);
        }

            .timeline > li .timeline-image h4 {
                font-size: 10px;
                line-height: 14px;
                margin-top: 12px;
            }

        .timeline > li.timeline-inverted > .timeline-panel {
            float: right;
            padding: 0 20px 0 100px;
            text-align: left;
        }

            .timeline > li.timeline-inverted > .timeline-panel:before {
                right: auto;
                left: -15px;
                border-right-width: 15px;
                border-left-width: 0;
            }

            .timeline > li.timeline-inverted > .timeline-panel:after {
                right: auto;
                left: -14px;
                border-right-width: 14px;
                border-left-width: 0;
            }

        .timeline > li:last-child {
            margin-bottom: 0;
        }

    .timeline .timeline-heading h4 {
        margin-top: 0;
        color: inherit;
    }

        .timeline .timeline-heading h4.subheading {
            text-transform: none;
        }

    .timeline .timeline-body > ul,
    .timeline .timeline-body > p {
        margin-bottom: 0;
    }

@media (min-width: 768px) {
    .timeline:before {
        left: 50%;
    }

    .timeline > li {
        min-height: 100px;
        margin-bottom: 100px;
    }

        .timeline > li .timeline-panel {
            float: left;
            width: 41%;
            padding: 0 20px 20px 30px;
            text-align: right;
        }

        .timeline > li .timeline-image {
            left: 50%;
            width: 100px;
            height: 100px;
            margin-left: -50px;
        }

            .timeline > li .timeline-image h4 {
                font-size: 13px;
                line-height: 18px;
                margin-top: 16px;
            }

        .timeline > li.timeline-inverted > .timeline-panel {
            float: right;
            padding: 0 30px 20px 20px;
            text-align: left;
        }
}

@media (min-width: 992px) {
    .timeline > li {
        min-height: 150px;
    }

        .timeline > li .timeline-panel {
            padding: 0 20px 20px;
        }

        .timeline > li .timeline-image {
            width: 150px;
            height: 150px;
            margin-left: -75px;
        }

            .timeline > li .timeline-image h4 {
                font-size: 18px;
                line-height: 26px;
                margin-top: 30px;
            }

        .timeline > li.timeline-inverted > .timeline-panel {
            padding: 0 20px 20px;
        }
}

@media (min-width: 1200px) {
    .timeline > li {
        min-height: 170px;
    }

        .timeline > li .timeline-panel {
            padding: 0 20px 20px 100px;
        }

        .timeline > li .timeline-image {
            width: 170px;
            height: 170px;
            margin-left: -85px;
        }

            .timeline > li .timeline-image h4 {
                margin-top: 40px;
            }

        .timeline > li.timeline-inverted > .timeline-panel {
            padding: 0 100px 20px 20px;
        }
}



section#contact {
    background-color: var(--text-primary, #212529);
    background-image: url("../assets/img/map-image.png");
    background-repeat: no-repeat;
    background-position: center;
}

    section#contact .section-heading {
        color: var(--text-on-dark, #fff);
    }

    section#contact form#contactForm .form-group {
        margin-bottom: 1.5rem;
    }

        section#contact form#contactForm .form-group input,
        section#contact form#contactForm .form-group textarea {
            padding: 1.25rem;
        }

            section#contact form#contactForm .form-group input.form-control {
                height: auto;
            }

    section#contact form#contactForm .form-group-textarea {
        height: 100%;
    }

        section#contact form#contactForm .form-group-textarea textarea {
            height: 100%;
            min-height: 10rem;
        }

    section#contact form#contactForm p.help-block {
        margin: 0;
    }

    section#contact form#contactForm .form-control:focus {
        border-color: var(--brand-accent, #fdb913);
        box-shadow: none;
    }

    section#contact form#contactForm ::-webkit-input-placeholder {
        font-family: 'Outfit', sans-serif;
        font-weight: 700;
        color: var(--border-strong, #ced4da);
    }

    section#contact form#contactForm :-moz-placeholder {
        font-family: 'Outfit', sans-serif;
        font-weight: 700;
        color: var(--border-strong, #ced4da);
    }

    section#contact form#contactForm ::-moz-placeholder {
        font-family: 'Outfit', sans-serif;
        font-weight: 700;
        color: var(--border-strong, #ced4da);
    }

    section#contact form#contactForm :-ms-input-placeholder {
        font-family: 'Outfit', sans-serif;
        font-weight: 700;
        color: var(--border-strong, #ced4da);
    }

.footer {
    text-align: center;
    font-size: 0.9rem;
    font-family: 'Outfit', sans-serif;
}
.navbar-toggler {
    border: none;
    background: transparent !important;
}

    .navbar-toggler:focus {
        outline: none;
        background: transparent !important;
    }

    .navbar-toggler .icon-bar {
        background-color: #fdb913;
        transform: rotate(0deg) translate(0px, 0px);
        transition: ease all .2s;
    }

    .navbar-toggler .icon-bar {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 1px;
    }

        .navbar-toggler .icon-bar + .icon-bar {
            margin-top: 4px;
        }

.icon-bar:nth-child(2) {
    width: 16px;
    transition: ease all .2s;
}

.navbar-toggler:hover > .icon-bar:nth-child(2) {
    width: 22px;
    transition: ease all .2s;
}

.navbar-toggler:active > .icon-bar:nth-child(2) {
    width: 22px;
    transition: ease all .2s;
}

.navbar-toggler:not(.collapsed) .icon-bar:nth-child(1) {
    transform: rotate(45deg) translate(5px, 4px);
    transition: ease all .2s;
}

.navbar-toggler:not(.collapsed) .icon-bar:nth-child(2) {
    opacity: 0;
    transition: ease all .2s;
}

.navbar-toggler:not(.collapsed) .icon-bar:nth-child(3) {
    transform: rotate(-45deg) translate(4px, -4px);
    transition: ease all .2s;
}

.sec-accent {
    background-color: var(--bg-subtle, #fafcf5);
}

.blue {
    background-color: var(--accent-purple, #9999cc);
}

/* 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;
}
.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;
}

/* Editor footer */
.compose-editor-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-top: 1px solid var(--border-brand, #e0d4f0);
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #fafafa))) 0%, var(--bg-purple-tint, var(--bg-purple-tint, #f5f3f8)) 100%);
}
.compose-editor-secondary {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Preview section now inside modal - minimal styling needed */

/* Compose footer */
.compose-footer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-top: 1px solid var(--border-brand, #e0d4f0);
    background: linear-gradient(135deg, var(--bg-subtle, var(--bg-subtle, var(--bg-subtle, #fafafa))) 0%, var(--bg-purple-tint, var(--bg-purple-tint, #f5f3f8)) 100%);
}
.compose-footer .ml-auto { margin-left: auto; }

/* 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. Same tokens as .compose-footer for dark-mode parity. */
.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; }
    .compose-editor-footer, .compose-footer {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
        padding: 12px;
    }
    /* compose-preview-section removed - preview is now a modal */
}

/* 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;
    }
    /* 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;
}
.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;
}
.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 {
    padding: 0.5rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    font-size: 0.85rem;
}

.pitch-stats-collapsed a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

.pitch-stats-collapsed a:hover {
    text-decoration: underline;
}

.coverage-stats-collapsed {
    padding: 0.5rem 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 8px;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

.coverage-stats-collapsed a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
}

.coverage-stats-collapsed a:hover {
    text-decoration: underline;
}

.stats-dismiss-btn {
    background: transparent;
    border: none;
    color: var(--text-muted, #999);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    margin-left: auto;
    flex: 0 0 auto;
}

.stats-dismiss-btn:hover {
    color: var(--text-secondary, #666);
}

/* ==========================================================================
   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. 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(--bg-muted, #e2e3e5);
    color: var(--text-primary, #383d41);
}
.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);
}

.booking-card.status-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(--text-secondary, #666);
}

.booking-card.status-client-confirmed {
    border-left-color: var(--status-info, #17a2b8);
}

.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 {
    margin-top: 0.5rem;
    padding: 0.5rem;
    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;
}

/* 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;
}

.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);
}

.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: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    color: var(--text-secondary, #666);
    font-size: 0.85rem;
}

.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-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 */
.schedule-interview-card[data-interview-status="Confirmed"],
.schedule-interview-card[data-interview-status="Client Confirmed"] {
    border-left-color: var(--status-success, #28a745);
}

.schedule-interview-card[data-interview-status="Tentative"] {
    border-left-color: var(--status-warning-border, #ffc107);
}

/* 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;
}

/* Settings Dropdown Custom Items */
.dropdown-item-custom {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
}

.dropdown-item-custom .switch {
    margin: 0;
}

.dropdown-item-custom .dropdown-item-label {
    font-size: 0.9rem;
    color: var(--text-primary, #333);
}

.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; }

/* =============================================================================
   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;
}

/* =============================================================================
   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;
}

/* 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 {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: transparent;
    border: none;
    color: var(--text-muted, #999);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    font-size: 0.9rem;
}

.crm-stats-dismiss-btn:hover { color: var(--text-primary, #333); }

.crm-stats-collapsed {
    margin-bottom: 1rem;
    text-align: right;
}

.crm-stats-collapsed a {
    color: var(--text-secondary, #666);
    text-decoration: none;
    font-size: 0.85rem;
}

.crm-stats-collapsed a:hover {
    color: var(--brand-primary, #3d1a6f);
}

/* 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) {
    .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%;
    }

    .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 {
    position: relative;
}

.blocked-stats-dismiss-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: transparent;
    border: none;
    color: var(--text-muted, #999);
    font-size: 0.9rem;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    transition: all 0.2s;
}

.blocked-stats-dismiss-btn:hover {
    background: rgba(0,0,0,0.05);
    color: var(--text-secondary, #666);
}

/* 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);
}

/* Stats collapsed button */
.crm-stats-collapsed {
    margin-bottom: 1rem;
}

/* 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"] .edm-excl-table tbody tr.gv-row-selected {
    background-color: #3d2466 !important;
    color: #fff !important;
}
.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; }

/* 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-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;
}
/* 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);
}

/* 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: reads as plain (bold) row text, not a link -- the whole row is the
   click target. Inherits the cell colour so it matches sibling columns; subtle purple on hover. */
.pitch-list-title { color: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.pitch-list-title:hover, .pitch-list-title:focus { color: var(--brand-primary, #3d1a6f); text-decoration: none; }
/* 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) */
.bh-strategy-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 6px;
}
.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); }
/* 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; }

/* Context strip -- no header, just body */
.bh-strategy-context-strip { margin: 0; }
.bh-strategy-context-strip .profile-card-body {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 2rem;
    align-items: center;
    padding: 0.75rem 1rem;
}
.bh-strategy-context-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #6c757d);
    margin-right: 0.4rem;
}
.bh-strategy-context-archetypes {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.bh-strategy-context-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.bh-strategy-context-empty {
    font-size: 0.85rem;
    color: var(--text-secondary, #6c757d);
    font-style: italic;
}
.bh-strategy-context-meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-left: auto;
    font-size: 0.85rem;
    color: var(--text-body, #555);
}

/* Hero AI button */
.bh-strategy-ai-hero {
    text-align: center;
    padding: 1.25rem 1rem;
    background: linear-gradient(180deg, var(--bg-purple-tint, #f0ebf7) 0%, var(--bg-surface, #fff) 100%);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
}
.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;
}
.bh-strategy-ai-hero-hint {
    color: var(--text-secondary, #6c757d);
    font-size: 0.8rem;
    margin: 0.5rem 0 0;
}
/* 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; }
.bh-strategy-readonly {
    padding: 0.375rem 0.75rem;
    font-size: 0.9rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 4px;
    color: var(--text-body, #555);
    min-height: calc(1.5em + 0.75rem + 2px);
}

/* 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; }

/* Forecast tiles -- reuse .bh-kpi canonical classes */
.bh-strategy-forecast .bh-kpi-row { gap: 0.75rem; }

/* 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-context-strip .profile-card-body { flex-direction: column; align-items: flex-start; }
    .bh-strategy-context-meta { margin-left: 0; flex-direction: column; gap: 0.35rem; }
    .bh-strategy-status-bar { flex-direction: column; align-items: stretch; gap: 0.4rem; }
    .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-strategy-status-bar {
    background: var(--bg-subtle, #1a1a1a);
    border-color: var(--border-default, #2a2a2a);
}
[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-ai-hero {
    background: linear-gradient(180deg, var(--bg-purple-tint, #1e1430) 0%, var(--bg-surface, #141414) 100%);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .bh-strategy-readonly {
    background: var(--bg-subtle, #1a1a1a);
    border-color: var(--border-default, #2a2a2a);
    color: var(--text-body, #d4d4d4);
}
[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; }

/* Inline KPI editor carrier row (EngagementHub triage) -- lets #ehKpiInlinePanel open directly beneath the
   clicked campaign row inside the table, not at the bottom of the group. Full-width cell, no hover tint or
   cell padding so the parked panel reads as its own card. */
.bh-kpi-triage-table tr.bh-kpi-inline-row,
.bh-kpi-triage-table tr.bh-kpi-inline-row:hover { background: transparent; }
.bh-kpi-triage-table td.bh-kpi-inline-cell { padding: 0; border-top: 0; background: transparent; }
.bh-kpi-triage-table td.bh-kpi-inline-cell > .profile-card { margin-bottom: 1rem; }

/* ========================================================================
   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 */
.stats-dismiss-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: transparent;
    border: none;
    color: var(--text-muted, #999);
    font-size: 1rem;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    transition: all 0.2s;
}
.stats-dismiss-btn:hover {
    background: rgba(0,0,0,0.05);
    color: var(--text-secondary, #666);
}

/* 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 {
    margin-bottom: 1rem;
    text-align: right;
}

/* 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-provenance { color: var(--text-muted, #999999); font-size: 0.85em; }
.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) === */
.email-verification-chip { display: inline-block; padding: 1px 6px; border-radius: 8px; font-size: 0.75rem; font-weight: 500; margin-left: 6px; }
.email-verification-chip.ok { background: var(--status-success-bg, #d4edda); color: var(--status-success-text, #155724); }
.email-verification-chip.warn { background: var(--status-warning-bg, #fff3cd); color: var(--status-warning-text, #856404); }
.email-verification-chip.danger { background: var(--status-danger-bg, #f8d7da); color: var(--status-danger-text, #721c24); }
.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; }

/* 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); }

/* ============================================================================
   .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-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .85rem .15rem;}
.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;}
.bh-outreach-band-head{background:var(--brand-accent,#fdb913);}
.bh-outreach-band-tail{background:var(--text-muted,#9a93a6);}

.bh-outreach-tier-body{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;padding:.45rem .85rem .65rem;}
.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{border-top:1px dashed var(--border-color,#e3e3ea);margin:0 .85rem;padding:.5rem 0 .6rem;}
.bh-outreach-summary-text{font-size:.83rem;font-style:italic;color:var(--text-body,#534d61);}

@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-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, #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, #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, #fdb913), transparent);
}
.bh-rpt-body { min-width: 0; }
.bh-rpt-eyebrow {
    font-size: 9pt; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 700;
    color: var(--brand-accent, #fdb913); margin-bottom: 4px;
}
.bh-rpt-title { font-size: 20pt; font-weight: 700; line-height: 1.1; color: 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, #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, #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 */
.bh-rpt-kpi.bh-rpt-hero { background: linear-gradient(160deg, var(--brand-primary, #3d1a6f), 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, #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, #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, #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, #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, #5a2d82), 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) ---- full-bleed brand field hero.
   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 padding/border/
   shadow in BOTH render modes, and re-inset with the cover's own padding.
   Colours !important: PdfBrandHelper emits ".bh-page{color:<text>}" + ".bh-page h1..h6{color:
   <primary>}" AFTER this bundle (not !important) -- would wash the reversed-on-dark cover out. */
.bh-page.bh-covernew {
    color: #fff !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:
        radial-gradient(120% 90% at 100% 0%, var(--brand-secondary, #5a2d82) 0%, transparent 55%),
        linear-gradient(160deg, var(--brand-primary, #3d1a6f) 0%, #2c1150 100%) !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
/* PagedJS forces .bh-page min-height:0 (to avoid a phantom trailing page); re-assert a page
   fill for the cover so the brand field covers the whole A4 (border-box => padding included).
   296mm (1mm under the 297mm A4 box, @page margin:0) fills visibly while staying 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: #fff !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, #fdb913); font-weight: 600; }
.bh-covernew .bh-covernew-rule { width: 64px; height: 5px; background: var(--brand-accent, #fdb913); border-radius: 4px; margin: 14mm 0 8mm; }
.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(255,255,255,0.6); margin-bottom: 4px; }
.bh-covernew .bh-covernew-foot { display: flex; justify-content: space-between; align-items: flex-end;
    border-top: 1px solid rgba(255,255,255,0.18); padding-top: 10px; font-size: 9pt; color: rgba(255,255,255,0.7); }
.bh-covernew img.bh-covernew-logo { max-height: 16mm; max-width: 60mm; display: inline-block; }

/* ---- Back cover (new) ---- branded closing panel. Applied to the .bh-page element (see cover note). */
.bh-page.bh-backnew {
    color: #fff !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: linear-gradient(200deg, var(--brand-primary, #3d1a6f) 0%, #2c1150 100%) !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
body.bh-pagedjs .bh-page.bh-backnew { padding: 26mm 24mm 24mm !important; min-height: 296mm !important; }
.bh-backnew h2, .bh-backnew h2 strong { color: #fff !important; }
.bh-backnew .bh-backnew-rule { width: 64px; height: 5px; background: var(--brand-accent, #fdb913); border-radius: 4px; margin: 0 0 8mm; }
.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(255,255,255,0.6); margin-bottom: 4px; }
.bh-backnew .bh-backnew-foot { display: flex; justify-content: space-between; align-items: flex-end;
    border-top: 1px solid rgba(255,255,255,0.18); padding-top: 10px; font-size: 9pt; color: rgba(255,255,255,0.7); }
.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); }
.bh-supplier-item .bh-supplier-add { color: var(--brand-accent, #fdb913); font-weight: 600; }

@charset "UTF-8";

/*!
 * animate.css -https://daneden.github.io/animate.css/
 * Version - 3.7.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2019 Daniel Eden
 */

@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animated.delay-2s{-webkit-animation-delay:2s;animation-delay:2s}.animated.delay-3s{-webkit-animation-delay:3s;animation-delay:3s}.animated.delay-4s{-webkit-animation-delay:4s;animation-delay:4s}.animated.delay-5s{-webkit-animation-delay:5s;animation-delay:5s}.animated.fast{-webkit-animation-duration:.8s;animation-duration:.8s}.animated.faster{-webkit-animation-duration:.5s;animation-duration:.5s}.animated.slow{-webkit-animation-duration:2s;animation-duration:2s}.animated.slower{-webkit-animation-duration:3s;animation-duration:3s}@media (prefers-reduced-motion:reduce),(print){.animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}}
/* Styles for BUZZHub rich text editor */
.bh-rte-toolbar {
    position: sticky;
    top: 0;
    background: var(--bg-surface, #fff);
    z-index: 100;
    padding: 4px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.bh-rte-editor {
    position: relative;
    border: 1px solid #ccc;
    min-height: 200px;
    padding: 4px;
    font-family: Arial, sans-serif;
    overflow-y: auto;
    max-height: 80vh;
    resize: vertical;
    /* Height SNAPS, does not transition. The second .bh-rte-editor rule below
       (line ~190) declares `transition: padding-top 0.15s` which silently
       overrides any transition declared here (CSS transition shorthand has no
       merge semantics). The original intent (smooth grow/shrink during autoGrow)
       has not been live since the second rule was added. Reviving it requires
       refactoring autoGrow to drop its `style.height='auto'`-then-numeric
       pattern -- otherwise rapid typing queues overlapping transitions and
       causes visible jank. See Loop B in
       .claude/plans/looking-at-the-rte-delegated-dongarra.md. */
}

    .bh-rte-editor table {
        border-collapse: collapse;
        position: relative;
    }

    .bh-rte-editor td,
    .bh-rte-editor th {
        position: relative;
    }

.col-resizer {
    position: absolute;
    top: 0;
    right: -2px;
    width: 4px;
    cursor: col-resize;
    user-select: none;
    height: 100%;
    z-index: 1;
}

.table-resizer {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 8px;
    height: 8px;
    cursor: nwse-resize;
    background: transparent;
    z-index: 2;
}

/* Allow native image drag/resize and forward pointer events */
.bh-rte-editor img {
    max-width: none !important;
    display: inline-block !important;
    position: static !important;
    pointer-events: auto !important;
    user-select: auto !important;
    touch-action: manipulation !important;
}

/* optional helper class to enable pointer interaction globally */
img.bh-pointer {
    max-width: none !important;
    display: inline-block !important;
    position: static !important;
    pointer-events: auto !important;
    user-select: auto !important;
    touch-action: manipulation !important;
}

    /* override global pseudo elements that block mouse events */
    .bh-rte-editor img::before,
    .bh-rte-editor img::after,
    img.bh-pointer::before,
    img.bh-pointer::after {
        display: none !important;
        content: none !important;
        pointer-events: none !important;
    }

.bh-rte-editor img.selected {
    outline: 2px dashed #3b99fc;
    cursor: nwse-resize;
}

.bh-rte-editor img:focus:not(.selected) {
    outline: none !important;
}

.bh-rte-editor ol,
.bh-rte-editor ul {
    padding-left: 3em;
    list-style-position: outside;
}

.bh-rte-editor li {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

    .bh-rte-editor li::marker {
        font-family: inherit;
        font-size: inherit;
        color: inherit;
    }


.bh-rte-editor table {
    border-collapse: collapse;
    width: 100%;
}

    .bh-rte-editor table td,
    .bh-rte-editor table th {
        border: 1px solid #ccc;
        padding: 4px;
    }

.bh-rte-editor table {
    width: auto;
    table-layout: fixed; /* so your pixel widths stick */
}

.bh-rte-overlay {
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none; /* toggled by JS: overlay.style.display = 'flex' */
    pointer-events: none; /* or auto if you want to block interactions while loading */
    background: rgba(255,255,255,0.6);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
    .bh-rte-overlay.show {
        display: flex; 
        pointer-events: auto;
    }

    .bh-rte-overlay .spinner-border {
        position: static !important;
    }

/* outer wrapper */
.bh-rte-container {
    position: relative;
    border: 1px solid #fdb913;
    border-radius: 4px;
    margin-top: 5px;
    padding-left: 2px;
    margin-bottom: 5px;
    overflow: hidden;
    /* 2026-05-11: container queries below adapt the toolbar to THIS wrapper's
       width rather than the viewport, so RTE mounted in modals/sidebars/two-col
       layouts collapses to the minimal toolbar even on a wide desktop. */
    container-type: inline-size;
    container-name: bh-rte;
}

    /* split the border between toolbar & editor */
    .bh-rte-container .bh-rte-toolbar {
        border-bottom: 1px solid #fdb913;
    }


.word-count {
    font-size: .875rem;
    color: var(--text-secondary, #666);
    user-select: none;
}

/* editor already has padding, so just remove its own border */
.bh-rte-editor {
    border: none;
    min-height: 200px;
    font-family: Arial, sans-serif;
    resize: vertical;
    border: none;
    min-height: 200px;
    resize: vertical;
    padding: 0 0.75rem 0.375rem;
    transition: padding-top 0.15s;
}
.bh-rte-toolbar.show + .bh-rte-editor {
    padding-top: calc( var(--toolbar-height) + 4px );
}
    .bh-rte-editor.form-control {
        padding: 0 .75rem .375rem;
    }

.bh-rte-container {
    border: 1px solid #fdb913;
    border-radius: 4px;
    overflow: hidden;
}

.bh-rte-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    padding: 4px 0;
    background: var(--bg-surface, #fff);
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    padding-right: 5px;
}

    .bh-rte-toolbar button.active {
        background-color: var(--bg-muted, #f0f0f0);
        box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
    }

        .bh-rte-toolbar button.active i {
            color: var(--brand-primary, #3d1a6f); 
        }

        /* Example: hover/active combined */
        .bh-rte-toolbar button.active:hover {
            background-color: #d0d0d0;
        }

#tableGrid .cell {
    width: 20px;
    height: 20px;
    border: 1px solid #ccc;
    background: var(--bg-muted, #f8f8f8);
}

    #tableGrid .cell.hovered {
        background-color: var(--brand-primary, #3d1a6f);
    }



    .bh-rte-toolbar .bh-table-dropdown #tableGrid .cell {
        width: 20px;
        height: 20px;
        background: var(--bg-subtle, #f9f9f9);
        border: 1px solid #ccc;
        cursor: pointer;
    }


/* 1. Make the dropdown wrapper position itself as the origin */
.bh-rte-toolbar .bh-table-dropdown {
    position: relative;
}

        .bh-rte-toolbar .bh-table-dropdown #tableGrid .cell.hovered {
            background: var(--brand-primary, #3d1a6f);
        }



    /* 2. Hide the entire panel by default, and absolutely position it */
    .bh-rte-toolbar .bh-table-dropdown .bh-table-panel {
        display: none;
        position: absolute;
        top: calc(100% + 4px);
        right: 0;
        background: var(--bg-surface, #fff);
        border: 1px solid #ccc;
        padding: 8px;
        z-index: 2000;
        box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    }

    /* 3. When its parent has �open�, show the panel */
    .bh-rte-toolbar .bh-table-dropdown.open .bh-table-panel {
        display: block;
    }

    /* 4. Tidy the button row under the grid */
    .bh-rte-toolbar .bh-table-dropdown #bh-table-controls {
        margin-top: 8px;
        display: flex;
        gap: 4px;
    }

.bh-rte-editor.form-control {
    border: none;
    color: black;
}
.bh-rte-editor.form-control {
    /* default height */
    min-height: 300px;
}

/* Override by wrapper size */
.richtextwrapper-xs .bh-rte-editor.form-control {
    min-height: 150px;
}

.richtextwrapper-sm .bh-rte-editor.form-control {
    min-height: 200px;
}

.RadMultiLine .bh-rte-editor.form-control {
    min-height: 200px;
}
.richtextwrapper-lg .bh-rte-editor.form-control {
    min-height: 700px;
}

.RTEHeading .bh-rte-editor.form-control {
    min-height: 75px;
    font-weight: 900;
    font-size: 25px !important;
}

/* Always override for screens under 990px */
@media (max-width: 990px) {
    .bh-rte-editor.form-control {
        min-height: 400px !important;
    }
}

.richtextwrapper-sm .bh-rte-container {
    margin-bottom: 2em;
}

/* Table Context Menu */
.bh-table-context-menu {
    position: fixed;
    z-index: 10000;
    background: var(--bg-surface, #fff);
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 4px 0;
    min-width: 160px;
    display: none;
}

.bh-table-context-menu.show {
    display: block;
}

.bh-table-context-menu .menu-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-primary, #333);
    transition: background 0.15s;
}

.bh-table-context-menu .menu-item:hover {
    background: var(--bg-muted, #f0f0f0);
}

.bh-table-context-menu .menu-item i {
    width: 16px;
    text-align: center;
    color: var(--text-secondary, #666);
}

.bh-table-context-menu .menu-divider {
    height: 1px;
    background: #e0e0e0;
    margin: 4px 0;
}

/* Table cell size dialog */
.bh-cell-size-dialog {
    position: fixed;
    z-index: 10001;
    background: var(--bg-surface, #fff);
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 12px;
    min-width: 200px;
    display: none;
}

.bh-cell-size-dialog.show {
    display: block;
}

.bh-cell-size-dialog label {
    display: block;
    font-size: 13px;
    margin-bottom: 4px;
    color: var(--text-primary, #333);
}

.bh-cell-size-dialog input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-bottom: 10px;
    font-size: 14px;
}

.bh-cell-size-dialog .dialog-buttons {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.bh-cell-size-dialog button {
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

.bh-cell-size-dialog .btn-apply {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}

.bh-cell-size-dialog .btn-apply:hover {
    background: #0056b3;
}

.bh-cell-size-dialog .btn-cancel {
    background: #e0e0e0;
    color: var(--text-primary, #333);
}

.bh-cell-size-dialog .btn-cancel:hover {
    background: #ccc;
}

/* =========================================================================
   Fullscreen Mode
   ========================================================================= */
.bh-rte-container.bh-rte-fullscreen {
    position: fixed !important;
    inset: 0;
    z-index: 2147483646;
    border-radius: 0;
    margin: 0;
    border: none;
    background: var(--bg-surface, #fff);
    display: flex;
    flex-direction: column;
}

.bh-rte-fullscreen .bh-rte-toolbar {
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    flex: 0 0 auto;
    border-bottom: 2px solid #3d1a6f;
    padding: 8px 12px;
}

.bh-rte-fullscreen .bh-rte-editor.form-control {
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    border: none;
    padding: 16px 24px;
    overflow-y: auto;
    resize: none;
}

/* Icon swap for fullscreen toggle is handled in JS (FA 7 uses --fa custom props) */

/* =========================================================================
   Find & Replace Bar
   ========================================================================= */
.bh-rte-find-bar {
    display: none;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    padding: 8px 12px;
    background: var(--bg-gold-tint, #fdf8ec);
    border-bottom: 1px solid #fdb913;
    font-size: 0.85rem;
}

.bh-rte-find-bar.show {
    display: flex;
}

.bh-rte-find-bar input {
    flex: 1 1 120px;
    max-width: 220px;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.85rem;
}

.bh-rte-find-bar input:focus {
    outline: none;
    border-color: #3d1a6f;
    box-shadow: 0 0 0 2px rgba(61, 26, 111, 0.15);
}

.bh-rte-find-bar button {
    padding: 4px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: var(--bg-surface, #fff);
    cursor: pointer;
    font-size: 0.85rem;
}

.bh-rte-find-bar button:hover {
    background: #e8e8e8;
}

.bh-rte-find-bar .bh-find-count {
    color: var(--text-secondary, #666);
    min-width: 50px;
    font-size: 0.8rem;
}

.bh-rte-find-bar .bh-find-close {
    border: none;
    background: none;
    font-size: 1.1rem;
    padding: 2px 6px;
    color: var(--text-muted, #999);
}

.bh-rte-find-bar .bh-find-close:hover {
    color: var(--text-primary, #333);
}

/* Highlight for find matches */
.bh-find-match {
    background: var(--bg-gold-tint, #fff59d);
    border-radius: 2px;
}

.bh-find-match.bh-find-current {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 2px;
}

/* Find bar mobile responsive */
@media (max-width: 576px) {
    .bh-rte-find-bar {
        gap: 4px;
        padding: 6px 8px;
    }
    .bh-rte-find-bar input {
        max-width: none;
        flex: 1 1 100%;
    }
    .bh-rte-find-bar .bh-find-replace-one,
    .bh-rte-find-bar .bh-find-replace-all {
        font-size: 0.75rem;
        padding: 4px 6px;
    }
}

/* =========================================================================
   Color Picker Buttons (Font Color + Highlight Color)
   ========================================================================= */
.bh-color-btn {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.15s;
}

.bh-color-btn:hover {
    background: var(--bg-muted, #f0f0f0);
}

.bh-color-btn i {
    font-size: 14px;
    color: var(--text-primary, #333);
    line-height: 1;
}

.bh-color-bar {
    display: block;
    width: 18px;
    height: 4px;
    border-radius: 1px;
    margin-top: 2px;
    background: #000;
}

.bh-color-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    border: none;
    padding: 0;
}

/* =============================================================================
   DARK MODE -- Rich Text Editor
   ============================================================================= */
[data-theme="dark"] .bh-rte-container {
    border-color: var(--brand-accent-soft, #8a6d18);
}
[data-theme="dark"] .bh-rte-container .bh-rte-toolbar {
    border-bottom-color: var(--brand-accent-soft, #8a6d18);
}
[data-theme="dark"] .bh-rte-toolbar {
    background: var(--bg-muted, #1e1e1e);
}
[data-theme="dark"] .bh-rte-editor {
    background: var(--bg-surface, #141414);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-default, #2a2a2a);
}
/* Force all RTE content to light text in dark mode. Inline color styles from
   pasted/authored content (black, #333, etc.) become invisible on dark backgrounds.
   This blanket rule overrides ALL inline text colour. Users who intentionally set
   coloured text (red highlights etc.) will see it reset to white in dark mode,
   which is the correct trade-off vs unreadable black-on-black. */
[data-theme="dark"] .bh-rte-editor * {
    color: var(--text-primary, #e8e8e8) !important;
}
[data-theme="dark"] .bh-rte-editor a {
    color: var(--brand-primary, #a76bdf) !important;
}
[data-theme="dark"] .bh-rte-editor table td,
[data-theme="dark"] .bh-rte-editor table th {
    border-color: var(--border-strong, #3a3a3a);
}
[data-theme="dark"] .bh-rte-overlay {
    background: rgba(0,0,0,0.6);
}
/* Toolbar buttons */
[data-theme="dark"] .bh-rte-toolbar button {
    background: var(--bg-subtle, #1a1a1a);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-strong, #3a3a3a);
}
[data-theme="dark"] .bh-rte-toolbar button:hover {
    background: var(--bg-surface, #141414);
}
[data-theme="dark"] .bh-rte-toolbar button.active,
[data-theme="dark"] .bh-rte-toolbar button:active {
    background: var(--brand-primary, #a76bdf);
    color: var(--text-on-dark, #fff);
}
/* Toolbar selects (font family, size, format) */
[data-theme="dark"] .bh-rte-toolbar select {
    background: var(--bg-subtle, #1a1a1a);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-strong, #3a3a3a);
}
/* Word count */
[data-theme="dark"] .word-count {
    color: var(--text-muted, #808080);
}
/* Dropdowns (font picker, color picker panels) */
[data-theme="dark"] .bh-rte-toolbar .dropdown-menu,
[data-theme="dark"] .bh-font-picker,
[data-theme="dark"] .bh-rte-search-panel {
    background: var(--bg-surface, #141414);
    border-color: var(--border-strong, #3a3a3a);
    color: var(--text-primary, #e8e8e8);
}
[data-theme="dark"] .bh-font-picker .font-option:hover,
[data-theme="dark"] .bh-rte-search-panel input {
    background: var(--bg-muted, #1e1e1e);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-strong, #3a3a3a);
}
/* Table dialog */
[data-theme="dark"] .bh-rte-table-dialog {
    background: var(--bg-surface, #141414);
    border-color: var(--border-strong, #3a3a3a);
    color: var(--text-primary, #e8e8e8);
}
[data-theme="dark"] .bh-rte-table-dialog input {
    background: var(--bg-muted, #1e1e1e);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-strong, #3a3a3a);
}
/* Context menu */
[data-theme="dark"] .bh-rte-context-menu {
    background: var(--bg-surface, #141414);
    border-color: var(--border-strong, #3a3a3a);
}
[data-theme="dark"] .bh-rte-context-menu .ctx-item {
    color: var(--text-primary, #e8e8e8);
}
[data-theme="dark"] .bh-rte-context-menu .ctx-item:hover {
    background: var(--bg-muted, #1e1e1e);
}
[data-theme="dark"] .bh-rte-context-menu .ctx-separator {
    border-top-color: var(--border-default, #2a2a2a);
}
/* Rewrite dropdown */
[data-theme="dark"] .bh-rte-toolbar .rewrite-select {
    background: var(--bg-subtle, #1a1a1a);
    color: var(--text-primary, #e8e8e8);
    border-color: var(--border-strong, #3a3a3a);
}
/* =============================================================================
   Desktop: progressive disclosure. Hide non-essential tools behind "..." toggle.
   Essentials kept visible: B/I/U, lists, link, undo/redo, AI rewrite, word count.
   Toggle persists per-user via localStorage in RichTextEditor.js init().
   Mobile (<=768px) rules below override this -- mobile hides the "..." toggle
   too because the mobile rules already strip the same buttons.
   ============================================================================= */
@container bh-rte (min-width: 769px) {
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar select.font-name,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar select.font-size,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar select.block-format,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-cmd="strikeThrough"],
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-cmd="superscript"],
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-cmd="undo"],
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-cmd="redo"],
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button#linkToggleBtn,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-image],
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar .bh-table-dropdown,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar .bh-color-btn,
    .bh-rte-container:not(.bh-rte-overflow-shown) .bh-rte-toolbar button[data-find-replace] {
        display: none !important;
    }
    /* Fullscreen stays OUT of the overflow -- always visible in the toolbar (George 2026-05-23:
       "ensure full screen always appears in the media release editor"). */
    .bh-rte-container.bh-rte-overflow-shown .bh-rte-toolbar button[data-overflow-toggle] {
        background-color: var(--bg-muted, #f0f0f0);
    }
    .bh-rte-container.bh-rte-overflow-shown .bh-rte-toolbar button[data-overflow-toggle] i {
        color: var(--brand-primary, #3d1a6f);
    }
}

/* Narrow container: hide the overflow toggle entirely -- the narrow-container
   block below already strips the same set, so the toggle has nothing to reveal. */
@container bh-rte (max-width: 768px) {
    .bh-rte-toolbar button[data-overflow-toggle] {
        display: none !important;
    }
}

/* =============================================================================
   Editor height clamp on small viewports. Viewport-relative (45vh) so the editor
   can't blow up beyond half the screen on a phone. Stays on @media because the
   constraint is "small SCREEN" not "narrow container".
   ============================================================================= */
@media (max-width: 768px) {
    /* Force compact min/max-height across every richtextwrapper-* and RadMultiLine variant.
       !important + multiple selectors needed to beat .richtextwrapper-xs/.RadMultiLine specificity
       AND any inline height set by autoGrow's _bhLastHeight ratchet. */
    .bh-rte-editor,
    .richtextwrapper-xs .bh-rte-editor,
    .richtextwrapper-xs .bh-rte-editor.form-control,
    .richtextwrapper-sm .bh-rte-editor,
    .richtextwrapper-sm .bh-rte-editor.form-control,
    .richtextwrapper-lg .bh-rte-editor,
    .richtextwrapper-lg .bh-rte-editor.form-control,
    .RadMultiLine .bh-rte-editor,
    .RadMultiLine .bh-rte-editor.form-control,
    .RTEHeading .bh-rte-editor,
    .RTEHeading .bh-rte-editor.form-control {
        min-height: 120px !important;
        max-height: 45vh !important;
        height: auto !important;
    }
}

/* =============================================================================
   Narrow CONTAINER: collapse RTE toolbar to essential controls.
   Hides font/size/style selectors, advanced formatting, color, table, AI tone,
   leaving bold/italic/underline/lists/link/undo/redo + clear formatting.
   Container-query so RTE mounted in a narrow modal/sidebar collapses to minimal
   even on a wide desktop viewport. System-wide -- BHRichTextEditor.ascx is
   shared across all pages.
   ============================================================================= */
@container bh-rte (max-width: 768px) {
    .bh-rte-toolbar {
        gap: 2px;
        padding: 2px 0;
    }
    /* Hide font / size / style selects */
    .bh-rte-toolbar select.font-name,
    .bh-rte-toolbar select.font-size,
    .bh-rte-toolbar select.block-format,
    .bh-rte-toolbar select.tone-select,
    .bh-rte-toolbar #toneSelect {
        display: none !important;
    }
    /* Hide advanced formatting commands */
    .bh-rte-toolbar button[data-cmd="strikeThrough"],
    .bh-rte-toolbar button[data-cmd="superscript"],
    .bh-rte-toolbar button[data-cmd="outdent"],
    .bh-rte-toolbar button[data-cmd="indent"],
    .bh-rte-toolbar button[data-cmd="justifyLeft"],
    .bh-rte-toolbar button[data-cmd="justifyCenter"],
    .bh-rte-toolbar button[data-cmd="justifyRight"] {
        display: none !important;
    }
    /* Hide image / table / color / find. Fullscreen stays visible: the compact
       phone toolbar is cramped, so one-tap fullscreen is the main way to get
       editing room. Mirrors the desktop rule that keeps fullscreen out of the
       "..." overflow toggle. */
    .bh-rte-toolbar button[data-image],
    .bh-rte-toolbar button[data-find-replace],
    .bh-rte-toolbar .bh-table-dropdown,
    .bh-rte-toolbar .bh-color-btn {
        display: none !important;
    }
    /* Word count: keep but tighten */
    .bh-rte-toolbar .word-count {
        font-size: 0.7rem;
    }
}

/* =============================================================================
   Image on-select mini-toolbar. Floats above the selected <img> with
   size / fit / align / alt / replace / remove controls. Positioned by JS
   (absolute inside .bh-rte-container, or fixed when appended to body).
   Neutral surface styling; dark-mode safe via theme tokens.
   ============================================================================= */
.bh-rte-img-toolbar {
    position: absolute;
    z-index: 2147483640;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #ddd);
    border-radius: 6px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
    padding: 4px;
    color: var(--text-primary, #333);
}

    .bh-rte-img-toolbar .bh-rte-img-toolbar-row {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 2px;
    }

    .bh-rte-img-toolbar .bh-rte-img-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 26px;
        height: 26px;
        padding: 0 6px;
        font-size: 0.78rem;
        line-height: 1;
        border: 1px solid transparent;
        border-radius: 4px;
        background: transparent;
        color: var(--text-primary, #333);
        cursor: pointer;
    }

        .bh-rte-img-toolbar .bh-rte-img-btn:hover {
            background: var(--bg-muted, #f0f0f0);
            border-color: var(--border-default, #ddd);
        }

        .bh-rte-img-toolbar .bh-rte-img-btn.bh-rte-img-btn-danger:hover {
            color: var(--danger, #c0392b);
        }

    .bh-rte-img-toolbar .bh-rte-img-sep {
        display: inline-block;
        width: 1px;
        align-self: stretch;
        margin: 2px 3px;
        background: var(--border-default, #ddd);
    }

    .bh-rte-img-toolbar .bh-rte-img-alt-row {
        margin-top: 4px;
    }

    .bh-rte-img-toolbar input {
        width: 100%;
        box-sizing: border-box;
        font-size: 0.8rem;
        padding: 3px 6px;
        border: 1px solid var(--border-default, #ddd);
        border-radius: 4px;
        background: var(--bg-surface, #fff);
        color: var(--text-primary, #333);
    }

        .bh-rte-img-toolbar input:focus {
            outline: none;
            border-color: var(--brand-accent, #fdb913);
        }

/* release-styles.css -- Shared "rich release" named treatments
   ============================================================
   ONE definition for every surface that renders Media Release content:
   the BHRichTextEditor canvas (WYSIWYG authoring), the Newswire card,
   the email preview, and the PDF (Report.Master / Media Pack components).

   Named, semantic classes (the JS agent wraps selections in them; the
   markup agent's toolbar buttons trigger them). DO NOT rename without
   updating the Phase 1 shared contract.

   Brand palette only: #3d1a6f (primary) / #5a2d82 (secondary) /
   #fdb913 (accent gold) / cream. Dark-mode safe via theme-tokens.css
   tokens with hex fallbacks. Structural CSS only -- no JS dependency,
   so PagedJS / ChromeHtmlToPdf render the styles identically. */

/* ----------------------------------------------------------------
   Pull quote -- blockquote.bh-rs-pullquote (+ optional <cite> child)
   Gold left-border, purple text, italic, large opening-quote glyph.
   ---------------------------------------------------------------- */
blockquote.bh-rs-pullquote {
    position: relative;
    margin: 1.75rem 0;
    padding: 0.75rem 1.25rem 0.75rem 2.5rem;
    border-left: 4px solid var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.5;
}

blockquote.bh-rs-pullquote::before {
    content: "\201C"; /* left double quotation mark */
    position: absolute;
    left: 0.4rem;
    top: -0.1rem;
    font-size: 2.75rem;
    line-height: 1;
    font-style: normal;
    color: var(--brand-accent, #fdb913);
}

blockquote.bh-rs-pullquote cite {
    display: block;
    margin-top: 0.5rem;
    font-style: normal;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-tertiary, #888);
}

blockquote.bh-rs-pullquote cite::before {
    content: "-- ";
}

/* ----------------------------------------------------------------
   Standfirst / intro paragraph -- p.bh-rs-standfirst
   Larger, medium weight, slightly muted lead-in.
   ---------------------------------------------------------------- */
p.bh-rs-standfirst {
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.55;
    margin: 0 0 1.25rem;
    color: var(--text-body, #555);
}

/* ----------------------------------------------------------------
   Key facts panel -- div.bh-rs-keyfacts (contains a <ul>)
   Deliberately UNLIKE the quote/callout left-border motif: a full
   bordered "fact card" with a labelled header strip (no other release
   block is labelled) and CSS-drawn branded square markers (no glyph,
   so editor / email / PDF render identically). Rounded all corners.
   ---------------------------------------------------------------- */
div.bh-rs-keyfacts {
    margin: 1.5rem 0;
    padding: 0;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-default, #e4e0ee);
    border-radius: 8px;
    overflow: hidden;
    color: var(--text-body, #555);
}

/* Header strip -- the strongest differentiator from the other blocks.
   The label is an editable .bh-rs-keyfacts-head element (see below). This CSS
   ::before is the LEGACY fallback only: boxes saved before the header became
   editable have no head element, so the fixed label still renders for them.
   Excludes the plain variant (which never shows a header). */
div.bh-rs-keyfacts:not(.bh-rs-keyfacts--plain):not(:has(> .bh-rs-keyfacts-head))::before {
    content: "Key facts";
    display: block;
    padding: 0.55rem 1.25rem;
    background: var(--bg-purple-tint, #f0ebf7);
    border-bottom: 1px solid var(--border-default, #e4e0ee);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Editable header strip -- a real DOM node so authors can rename it inline; the
   text flows to email + PDF. Styled to match the legacy ::before label exactly. */
div.bh-rs-keyfacts > .bh-rs-keyfacts-head {
    display: block;
    padding: 0.55rem 1.25rem;
    background: var(--bg-purple-tint, #f0ebf7);
    border-bottom: 1px solid var(--border-default, #e4e0ee);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

div.bh-rs-keyfacts > ul {
    margin: 0;
    padding: 0.9rem 1.25rem;
    list-style: none;
}

div.bh-rs-keyfacts > ul > li {
    position: relative;
    margin: 0 0 0.55rem;
    padding-left: 1.4rem;
    line-height: 1.45;
}

/* Branded square marker -- drawn in CSS, no font dependency. */
div.bh-rs-keyfacts > ul > li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 0.45rem;
    height: 0.45rem;
    background: var(--brand-primary, #3d1a6f);
    border-radius: 2px;
}

div.bh-rs-keyfacts > ul > li:last-child {
    margin-bottom: 0;
}

/* Plain variant (author toggles via the Remove-style bubble): just a grey rounded
   box -- no header strip, no card border, standard disc bullets. */
div.bh-rs-keyfacts--plain {
    background: var(--bg-subtle, #f4f5f7);
    border: 1px solid var(--border-default, #e4e0ee);
    border-radius: 8px;
}
div.bh-rs-keyfacts--plain::before { content: none; }
div.bh-rs-keyfacts--plain > .bh-rs-keyfacts-head { display: none; }
div.bh-rs-keyfacts--plain > ul {
    padding: 1rem 1.25rem 1rem 2.4rem;
    list-style: disc;
}
div.bh-rs-keyfacts--plain > ul > li {
    position: static;
    padding-left: 0;
}
div.bh-rs-keyfacts--plain > ul > li::before { content: none; }

/* ----------------------------------------------------------------
   Callout -- div.bh-rs-callout
   Brand-tinted (purple) background, accent left-border, padding.
   "Make it stand out".
   ---------------------------------------------------------------- */
div.bh-rs-callout {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    background: var(--bg-purple-tint, #f0ebf7);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    border-radius: 0 6px 6px 0;
    color: var(--brand-primary, #3d1a6f);
}

div.bh-rs-callout > :first-child {
    margin-top: 0;
}

div.bh-rs-callout > :last-child {
    margin-bottom: 0;
}

/* ----------------------------------------------------------------
   Figure -- figure.bh-rs-figure (+ figcaption)
   Centered, generous margin, responsive image, small tertiary caption.
   ---------------------------------------------------------------- */
figure.bh-rs-figure {
    margin: 1.75rem auto;
    text-align: center;
}

figure.bh-rs-figure img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

figure.bh-rs-figure figcaption {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-tertiary, #888);
    text-align: center;
    line-height: 1.4;
}

/* ----------------------------------------------------------------
   Divider -- hr.bh-rs-divider
   Thin branded rule, generous vertical margin.
   ---------------------------------------------------------------- */
hr.bh-rs-divider {
    border: 0;
    border-top: 2px solid var(--brand-accent, #fdb913);
    width: 60px;
    margin: 2rem auto;
    opacity: 1;
}

/* ----------------------------------------------------------------
   Sub-heading + highlight -- h3.bh-rs-subheading
   Branded section heading with a gold "highlight" underline.
   ---------------------------------------------------------------- */
h3.bh-rs-subheading {
    margin: 1.75rem 0 0.75rem;
    padding-bottom: 0.3rem;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
}

/* ----------------------------------------------------------------
   Call-to-action block -- div.bh-rs-cta
   Centred, brand-filled banner. White text; any inner link goes gold.
   ---------------------------------------------------------------- */
div.bh-rs-cta {
    margin: 1.75rem auto;
    padding: 1.25rem 1.5rem;
    background: var(--brand-primary, #3d1a6f);
    border-radius: 8px;
    text-align: center;
    color: #ffffff;
}

div.bh-rs-cta > :first-child { margin-top: 0; }
div.bh-rs-cta > :last-child { margin-bottom: 0; }

div.bh-rs-cta a {
    color: var(--brand-accent, #fdb913);
    font-weight: 700;
    text-decoration: underline;
}

/* ----------------------------------------------------------------
   Button link -- div.bh-rs-button > a
   Centred, brand-filled pill. White label; the whole anchor is the button.
   Brand-primary fill works in both themes (matches the CTA banner), so no
   dark-mode override is needed.
   ---------------------------------------------------------------- */
div.bh-rs-button {
    margin: 1.75rem 0;
    text-align: center;
}

div.bh-rs-button a {
    display: inline-block;
    padding: 0.7rem 1.6rem;
    background: var(--brand-primary, #3d1a6f);
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
    border-radius: 8px;
    line-height: 1.2;
}

div.bh-rs-button a:hover {
    background: var(--brand-primary-dark, #2c1252);
    color: #ffffff;
}

/* ----------------------------------------------------------------
   Image gallery -- div.bh-rs-gallery
   Responsive grid wrapping 2+ images / figures.
   ---------------------------------------------------------------- */
div.bh-rs-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.6rem;
    margin: 1.75rem 0;
    align-items: start;
}

div.bh-rs-gallery img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

div.bh-rs-gallery figure {
    margin: 0;
}

/* ----------------------------------------------------------------
   Video / social embed -- div.bh-rs-embed
   Media-link card (sanitiser-safe; no iframe). Play glyph + accent border.
   A live in-page player needs an HtmlSanitiser iframe allowlist (separate).
   ---------------------------------------------------------------- */
div.bh-rs-embed {
    position: relative;
    margin: 1.75rem 0;
    padding: 1rem 1.25rem 1rem 3rem;
    background: var(--bg-subtle, #f4f5f7);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    color: var(--text-body, #555);
}

div.bh-rs-embed::before {
    content: "\25B6"; /* play triangle */
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.1rem;
    color: var(--brand-accent, #fdb913);
}

div.bh-rs-embed > :first-child { margin-top: 0; }
div.bh-rs-embed > :last-child { margin-bottom: 0; }

/* Provider-aware card variants (YouTube thumbnail / Vimeo / X / Instagram /
   TikTok / LinkedIn / Facebook / generic). The card itself is a single <a>
   so the whole block is clickable; sanitiser-safe (no iframe, no script). */
div.bh-rs-embed:has(.bh-rs-embed-card) {
    padding: 0;
    background: var(--bg-subtle, #f4f5f7);
}

div.bh-rs-embed:has(.bh-rs-embed-card)::before {
    display: none;
}

.bh-rs-embed-card {
    display: flex;
    gap: 1rem;
    align-items: stretch;
    text-decoration: none;
    color: inherit;
    border-radius: 6px;
    overflow: hidden;
}

.bh-rs-embed-card:hover {
    background: var(--bg-purple-tint, #8549da14);
}

.bh-rs-embed-card--linkonly {
    padding: 0.85rem 1.1rem;
    align-items: center;
    gap: 0.75rem;
}

.bh-rs-embed-thumb {
    position: relative;
    width: 240px;
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    background: #000;
    overflow: hidden;
}

.bh-rs-embed-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}

.bh-rs-embed-thumb::after {
    content: "\25B6";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 2.75rem;
    color: rgba(255, 255, 255, 0.92);
    background: rgba(0, 0, 0, 0.22);
    transition: background 120ms ease;
}

.bh-rs-embed-card:hover .bh-rs-embed-thumb::after {
    background: rgba(0, 0, 0, 0.35);
}

.bh-rs-embed-meta {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.85rem 1rem 0.85rem 0;
    justify-content: center;
    min-width: 0;
    flex: 1 1 auto;
}

.bh-rs-embed-provider {
    display: inline-block;
    width: max-content;
    padding: 0.18rem 0.55rem;
    background: var(--bg-purple-tint, #8549da14);
    color: var(--brand-primary, #3d1a6f);
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.bh-rs-embed-url {
    font-size: 0.9rem;
    word-break: break-all;
    color: var(--text-body, #555);
    line-height: 1.35;
}

@media (max-width: 600px) {
    .bh-rs-embed-card { flex-direction: column; }
    .bh-rs-embed-thumb { width: 100%; }
    .bh-rs-embed-meta { padding: 0.85rem 1rem; }
}

/* ----------------------------------------------------------------
   Dark mode overrides
   Most colours flow from tokens that already flip (brand-primary,
   brand-accent, bg-subtle, bg-purple-tint, text-body, text-tertiary).
   The pull quote glyph + standfirst already inherit flipped tokens.
   These overrides only touch cases where a flipped token alone would
   read poorly: the purple callout text needs a brighter tone on a
   dark tinted background, and the figure image edge softens.
   ---------------------------------------------------------------- */
[data-theme="dark"] div.bh-rs-callout {
    color: var(--text-body, #d4d4d4);
}

[data-theme="dark"] blockquote.bh-rs-pullquote {
    color: var(--text-body, #d4d4d4);
}

[data-theme="dark"] div.bh-rs-keyfacts {
    color: var(--text-body, #d4d4d4);
}

[data-theme="dark"] div.bh-rs-keyfacts::before,
[data-theme="dark"] div.bh-rs-keyfacts > .bh-rs-keyfacts-head {
    color: var(--text-strong, #e8e3f2);
}

[data-theme="dark"] div.bh-rs-keyfacts > ul > li::before {
    background: var(--text-strong, #e8e3f2);
}

[data-theme="dark"] figure.bh-rs-figure img {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] h3.bh-rs-subheading {
    color: var(--text-strong, #e8e3f2);
}

[data-theme="dark"] div.bh-rs-embed {
    color: var(--text-body, #d4d4d4);
}

[data-theme="dark"] .bh-rs-embed-url {
    color: var(--text-body, #d4d4d4);
}

[data-theme="dark"] .bh-rs-embed-card:hover {
    background: var(--bg-purple-tint, rgba(133, 73, 218, 0.18));
}

/* ----------------------------------------------------------------
   Table-grid popout stacking
   Each .bh-rte-toolbar is position:sticky + z-index:100, which creates its
   own stacking context. The table dropdown panel inside the main toolbar
   sets z-index:2000 but that only wins WITHIN the main toolbar's context --
   the later-in-DOM Release styles + Snippets rows then paint over it. Lift
   the main toolbar's z-index above its siblings while the dropdown is open
   so the panel can draw across both rows. Hit when the snippets row was
   added 2026-05-28.
   ---------------------------------------------------------------- */
.bh-rte-container .bh-rte-toolbar:has(.bh-table-dropdown.open) {
    z-index: 1500;
}

/* ----------------------------------------------------------------
   Release-styles hover-preview stacking (same family as the table
   dropdown above). The rich preview card (.bh-rte-rs-tip) opens
   DOWNWARD from a button in the Release styles row and overlaps the
   rows below it. Each .bh-rte-toolbar is its own position:sticky +
   z-index:100 stacking context, so the card's z-index:20001 only wins
   WITHIN the Release row -- the later-in-DOM Snippets (Insert) row, an
   equal-z sibling, still paints over it (seen in CampaignBuilder, where
   the Insert row is populated). Lift the Release row above its siblings
   while a style button is hovered/focused so the card draws across the
   Insert row and the editor body. Hit 2026-06-24.
   ---------------------------------------------------------------- */
.bh-rte-container .bh-rte-toolbar-release:has(.bh-rte-rs-btn:hover),
.bh-rte-container .bh-rte-toolbar-release:has(.bh-rte-rs-btn:focus-visible) {
    z-index: 1500;
}

/* ----------------------------------------------------------------
   Snippets toolbar row -- div.bh-rte-toolbar-snippets
   Sibling row to .bh-rte-toolbar-release. Hosts tenant + built-in
   boilerplate chips. Populated by InlineMediaReleaseEditor.js via
   window.BHRichTextEditor.setSnippetsToolbar().
   ---------------------------------------------------------------- */
.bh-rte-toolbar-snippets {
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.bh-rte-snippets-label,
.bh-rte-release-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-tertiary, #6f6f6f);
    margin-right: 4px;
}

.bh-rte-snippets-items {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.bh-rte-snippet-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--brand-primary-soft, #d6c5ef);
    background: var(--bg-surface, #fff);
    color: var(--text-body, #333);
    border-radius: 999px;
    font-size: 0.8rem;
    line-height: 1.3;
    cursor: pointer;
    transition: background 100ms ease, border-color 100ms ease, color 100ms ease;
}

.bh-rte-snippet-chip:hover,
.bh-rte-snippet-chip:focus-visible {
    background: var(--bg-purple-tint, #8549da14);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    outline: none;
}

.bh-rte-snippet-chip-name {
    font-weight: 500;
}

.bh-rte-snippet-chip-type {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    background: var(--bg-muted, #f0f0f0);
    color: var(--text-tertiary, #6f6f6f);
    border-radius: 3px;
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

.bh-rte-snippet-chip:hover .bh-rte-snippet-chip-type,
.bh-rte-snippet-chip:focus-visible .bh-rte-snippet-chip-type {
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
}

.bh-rte-snippets-manage {
    display: inline-flex;
    align-items: center;
    border: 1px dashed var(--brand-primary-soft, #d6c5ef);
    color: var(--brand-primary, #3d1a6f);
    background: transparent;
    font-size: 0.78rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
}

.bh-rte-snippets-manage:hover,
.bh-rte-snippets-manage:focus-visible {
    background: var(--bg-purple-tint, #8549da14);
    border-style: solid;
    color: var(--brand-primary, #3d1a6f);
    outline: none;
}

/* Dark mode: pick brighter accents so chips stay legible on a dark surface. */
[data-theme="dark"] .bh-rte-snippet-chip {
    background: var(--bg-surface, #1f1f1f);
    color: var(--text-body, #d4d4d4);
    border-color: var(--brand-primary-soft, #5a2d82);
}

[data-theme="dark"] .bh-rte-snippet-chip:hover,
[data-theme="dark"] .bh-rte-snippet-chip:focus-visible {
    background: var(--bg-purple-tint, rgba(133, 73, 218, 0.18));
    color: var(--text-strong, #e8e3f2);
    border-color: var(--brand-primary, #b794f4);
}

[data-theme="dark"] .bh-rte-snippet-chip-type {
    background: var(--bg-muted, #2a2a2a);
    color: var(--text-tertiary, #a0a0a0);
}

[data-theme="dark"] .bh-rte-snippets-manage {
    color: var(--text-body, #d4d4d4);
    border-color: var(--brand-primary-soft, #5a2d82);
}

[data-theme="dark"] .bh-rte-snippets-manage:hover,
[data-theme="dark"] .bh-rte-snippets-manage:focus-visible {
    color: var(--text-strong, #e8e3f2);
}

/* ----------------------------------------------------------------
   Release-styles toolbar buttons -- rich hover preview
   Each button shows a miniature, branded EXAMPLE of the block it
   inserts, so the author can see what a style does instead of
   guessing from an icon. Pure-CSS popover: a phrasing-content <span>
   child of the <button>, revealed on hover / keyboard focus, in the
   same upward escape context the old text tooltip used. Non-interactive
   (aria-hidden + pointer-events:none). Every colour via a theme token
   so dark mode flips automatically. ASCII only.
   ---------------------------------------------------------------- */
.bh-rte-rs-btn {
    position: relative;
}

.bh-rte-rs-tip {
    position: absolute;
    top: calc(100% + 9px);
    left: 50%;
    transform: translateX(-50%) translateY(-4px);
    z-index: 20001;
    width: 232px;
    padding: 10px 12px;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-default, #e4e0ee);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(61, 26, 111, 0.18);
    text-align: left;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 120ms ease, transform 120ms ease;
}

.bh-rte-rs-btn:hover .bh-rte-rs-tip,
.bh-rte-rs-btn:focus-visible .bh-rte-rs-tip {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* Pointer triangle joining the card to the button (card opens downward, so
   the pointer sits on the card's TOP edge and points up at the button). */
.bh-rte-rs-tip::after {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom-color: var(--bg-surface, #ffffff);
}

.bh-rte-rs-tip-name {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--brand-primary, #3d1a6f);
}

.bh-rte-rs-tip-desc {
    display: block;
    margin: 1px 0 7px;
    font-size: 0.7rem;
    line-height: 1.3;
    color: var(--text-tertiary, #888);
}

.bh-rte-rs-tip-demo {
    display: block;
    padding: 8px 9px;
    background: var(--bg-subtle, #f7f7f9);
    border-radius: 5px;
}

/* Mini block mock-ups (bh-rsx*) -- scaled echoes of the real .bh-rs-* blocks. */
.bh-rsx {
    display: block;
    font-size: 0.72rem;
    line-height: 1.35;
    color: var(--text-body, #444);
}

.bh-rsx-pullquote {
    display: block;
    padding-left: 8px;
    border-left: 3px solid var(--brand-accent, #fdb913);
    font-style: italic;
    color: var(--brand-primary, #3d1a6f);
}
.bh-rsx-pullquote .bh-rsx-cite {
    display: block;
    margin-top: 3px;
    font-style: normal;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--text-tertiary, #888);
}

.bh-rsx-standfirst {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-body, #555);
}

.bh-rsx-keyfacts {
    display: block;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e4e0ee);
    border-radius: 5px;
    overflow: hidden;
}
.bh-rsx-keyfacts .bh-rsx-kf-head {
    display: block;
    padding: 3px 8px;
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.bh-rsx-keyfacts .bh-rsx-kf-item {
    display: block;
    position: relative;
    margin: 4px 8px;
    padding-left: 11px;
}
.bh-rsx-keyfacts .bh-rsx-kf-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 5px;
    height: 5px;
    border-radius: 1px;
    background: var(--brand-primary, #3d1a6f);
}

.bh-rsx-callout {
    display: block;
    padding: 6px 8px;
    background: var(--bg-purple-tint, #f0ebf7);
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    border-radius: 0 4px 4px 0;
    color: var(--brand-primary, #3d1a6f);
}

.bh-rsx-figure {
    display: block;
    text-align: center;
}
.bh-rsx-figure .bh-rsx-img {
    display: block;
    height: 34px;
    background: linear-gradient(135deg, var(--bg-muted, #e9e6f0), var(--bg-subtle, #f4f5f7));
    border-radius: 3px;
}
.bh-rsx-figure .bh-rsx-cap {
    display: block;
    margin-top: 3px;
    font-size: 0.62rem;
    color: var(--text-tertiary, #888);
}

.bh-rsx-divider {
    display: block;
    width: 40px;
    height: 0;
    margin: 8px auto;
    border-top: 2px solid var(--brand-accent, #fdb913);
}

.bh-rsx-subheading {
    display: block;
    padding-bottom: 2px;
    border-bottom: 2px solid var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.82rem;
    font-weight: 700;
}

.bh-rsx-cta {
    display: block;
    padding: 7px 8px;
    background: var(--brand-primary, #3d1a6f);
    border-radius: 5px;
    text-align: center;
    color: #ffffff;
    font-size: 0.7rem;
}
.bh-rsx-cta .bh-rsx-cta-link {
    color: var(--brand-accent, #fdb913);
    font-weight: 700;
    text-decoration: underline;
}

.bh-rsx-button {
    display: block;
    width: fit-content;
    margin: 0 auto;
    padding: 4px 12px;
    background: var(--brand-primary, #3d1a6f);
    border-radius: 5px;
    text-align: center;
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 700;
}

.bh-rsx-gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
}
.bh-rsx-gallery .bh-rsx-img {
    height: 22px;
    background: linear-gradient(135deg, var(--bg-muted, #e9e6f0), var(--bg-subtle, #f4f5f7));
    border-radius: 3px;
}

.bh-rsx-embed {
    display: block;
    position: relative;
    padding: 6px 8px 6px 22px;
    background: var(--bg-subtle, #f4f5f7);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 4px;
    font-size: 0.66rem;
    color: var(--text-body, #555);
    word-break: break-all;
}
.bh-rsx-embed::before {
    content: "\25B6";
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--brand-accent, #fdb913);
    font-size: 0.7rem;
}

/* Dark mode: the card surface + demo backgrounds + accents all read from
   tokens that already flip; pin the card shadow softer on dark so the
   popover does not bloom. */
[data-theme="dark"] .bh-rte-rs-tip {
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5);
}

/* ===================================================================
   release-editor.css -- BUZZHub RTE "document canvas" skin (Jen 2026-05-22)

   OPT-IN editor-surface skin for the shared Rich Text Editor. The control
   emits the class .bh-rte--canvas on its .bh-rte-container ROOT only when it
   is initialised with a release profile (body / summary / notes); the default
   profile ("full", ~20 other consumers) emits NO class, so the shared RTE
   look is byte-unchanged everywhere else.

   These rules are the editor-SURFACE treatment ONLY: the paper fill, the
   softened hairline that replaces the shared gold container frame, the radius,
   the split-border soften between toolbar and editor, the body type / measure
   on the contenteditable, and the focus-within ring + lift. Page-composition
   (the document sheet wrapper, eyebrow labels, headline input, action row)
   stays page-scoped in CampaignBuilder.aspx -- this file is reusable by ANY
   release-profile RTE instance.

   COSMETIC ONLY: no position / overflow / height changes, so the RTE's
   focus-based sticky toolbar, autoGrow and resize behaviour are untouched.
   Brand palette + theme tokens only; every colour via var(--token, #fallback)
   so dark mode flips automatically (explicit dark overrides at the foot).
   ASCII only.

   Loaded everywhere the RTE loads (BHBootStrapCSS + RichTextEditorCSS bundles)
   but only .bh-rte--canvas instances are affected.
   =================================================================== */

/* Container: soften the shared gold frame to a quiet hairline + paper fill +
   soft radius. No position / overflow change, so the sticky focus toolbar
   keeps working. */
.bh-rte--canvas {
    border: 1px solid var(--border-light, #e9ecef);
    border-radius: 10px;
    background: var(--bg-surface, #ffffff);
    box-shadow: inset 0 0 0 1px rgba(61, 26, 111, 0.012);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Split-border between toolbar and editor: soften the shared gold rule. */
.bh-rte--canvas .bh-rte-toolbar {
    border-bottom-color: var(--border-light, #e9ecef);
}

/* The shared .bh-rte-editor contenteditable carries its own 1px frame
   (RichTextEditor.css:16). Inside the canvas container -- which already draws a
   hairline + radius + 2px left padding -- that produced two parallel borders
   (the "double line" running the full height of the tall release body). The
   container hairline is the only frame the canvas surface needs. */
.bh-rte--canvas .bh-rte-editor {
    border: none;
}

/* Body type: comfortable measure + generous line-height + refined size. */
.bh-rte--canvas .bh-rte-editor {
    font-size: 0.975rem;
    line-height: 1.6;
    color: var(--text-body, #2d2d34);
    /* Give the canvas a real writing area so it does not collapse to a couple of lines
       when the content is short (the "squished" look). It still scrolls past its cap. */
    min-height: 40vh;
}

/* Selection + scrollbar stay SYSTEM-neutral on the canvas, never the preview brand.
   updateBrandChip() (InlineMediaReleaseEditor.js) pins --brand-primary / --brand-accent /
   --brand-secondary inline on THIS .bh-rte-editor so the release-style blocks (pull-quote /
   key-facts / callout) preview in the chosen brand. The global ::selection (CustomBootstrap.css)
   and scrollbar-thumb (BUZZHub.css / theme-tokens.css) rules read those same --brand-* tokens,
   so without these resets the text-selection highlight + scrollbar would inherit the previewed
   brand -- and a dark preview colour made selected body text invisible (appeared "unselectable").
   Pin them to fixed neutral values so the editing surface always behaves like a system text
   field regardless of which brand is being previewed. */
.bh-rte--canvas .bh-rte-editor::selection,
.bh-rte--canvas .bh-rte-editor ::selection {
    background: #b3d4fc;
    color: #1a1a1a;
    text-shadow: none;
}
.bh-rte--canvas .bh-rte-editor::-moz-selection,
.bh-rte--canvas .bh-rte-editor ::-moz-selection {
    background: #b3d4fc;
    color: #1a1a1a;
    text-shadow: none;
}
[data-theme="dark"] .bh-rte--canvas .bh-rte-editor::selection,
[data-theme="dark"] .bh-rte--canvas .bh-rte-editor ::selection {
    background: #34406b;
    color: #f0f0f0;
}
[data-theme="dark"] .bh-rte--canvas .bh-rte-editor::-moz-selection,
[data-theme="dark"] .bh-rte--canvas .bh-rte-editor ::-moz-selection {
    background: #34406b;
    color: #f0f0f0;
}
.bh-rte--canvas .bh-rte-editor {
    scrollbar-color: var(--scrollbar-thumb, #c1c1c1) transparent;
}
.bh-rte--canvas .bh-rte-editor::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb, #c1c1c1);
}
.bh-rte--canvas .bh-rte-editor::-webkit-scrollbar-thumb:hover {
    background-color: var(--scrollbar-thumb-hover, #a1a1a1);
}

/* Refined focus state -- brand-purple ring + subtle lift on the focused
   field's RTE container (premium micro-interaction, CSS only via
   :focus-within). Reserved gold accent role kept on the surrounding chrome. */
.bh-rte--canvas:focus-within {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 3px var(--bg-purple-tint, #f0ebf7),
                0 6px 18px rgba(61, 26, 111, 0.08);
}

/* Dark mode -- the structural tokens above already flip, but pin the paper
   surface + hairline + focus ring to the dark palette for crisp contrast. */
[data-theme="dark"] .bh-rte--canvas {
    background: var(--bg-surface, #141414);
    border-color: var(--border-default, #2a2a2a);
}
[data-theme="dark"] .bh-rte--canvas:focus-within {
    border-color: var(--brand-primary, #a76bdf);
    box-shadow: 0 0 0 3px var(--bg-purple-tint, #1e1430),
                0 6px 18px rgba(0, 0, 0, 0.45);
}

/* Mobile (phone) -- the comfortable reading-measure + centred document column
   is a desktop nicety. On a narrow viewport a centred / capped editor column
   can exceed the viewport and clip at the right edge. Drop any measure-cap and
   centring so the canvas editor fills its container full-width, and trim the
   horizontal padding so long words / pasted content never push past the phone
   edge. Benefits every release-profile canvas consumer, not just the MR tab.
   Box-sizing keeps the reduced padding inside the 100% width. */
@media (max-width: 768px) {
    .bh-rte--canvas {
        max-width: none;
        width: 100%;
    }
    .bh-rte--canvas .bh-rte-editor {
        max-width: none;
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
}

/* ==========================================================================
   help-content.css -- shared rendering rules for raw RTE-authored Help.Answer
   HTML, used by:
     - Help.aspx public Learning Centre  (.help-article)  [Buzzhub.Master]
     - theHive.aspx course modal          (.helppage)      [Site.Master]
     - theHive.aspx inline article view   (.helppage)      [Site.Master]
     - BuzzHubAdmin.aspx article preview  (.helppage)      [Site.Master]

   One copy. Three surfaces. Loaded on Site.Master + Buzzhub.Master via
   ~/bundles/HelpContentCSS. Page-chrome (.bs-help-* hero/breadcrumb/badges)
   stays in Buzzscribed.css; .helppage frame styles (border, shadow, max-width)
   stay in their owning .aspx. Only the inner article rendering lives here.

   Token strategy: brand hexes hardcoded (stable across shells), dark-mode
   tokens use auth-shell namespace with fallbacks so Buzzhub.Master (which
   doesn't load theme-tokens.css) still resolves to the dark fallback values.
   ========================================================================== */

/* -- Section neutralisation --------------------------------------------------
   RTE-authored content nests <section> / <div class="doc-section"> wrappers
   that bring their own margins. Reset them so spacing is governed by
   p/h2/h3 rhythm only. */
.help-article section,
.help-article .doc-section,
.helppage section,
.helppage .doc-section {
    display: block;
    margin: 0;
    padding: 0;
}

.help-article > section + section,
.help-article > .doc-section + .doc-section,
.helppage > section + section,
.helppage > .doc-section + .doc-section {
    margin-top: 1rem;
}

.help-article > section:first-child > h2:first-child,
.help-article > .doc-section:first-child > h2:first-child,
.help-article > h2:first-child,
.helppage > section:first-child > h2:first-child,
.helppage > .doc-section:first-child > h2:first-child,
.helppage > h2:first-child {
    margin-top: 0;
}

/* -- Empty paragraph collapse ------------------------------------------------
   Editor leaves <p></p> and <p><br></p> behind on Enter; both produce visible
   void in the rendered article. */
.help-article p:empty,
.help-article p:has(> br:only-child),
.helppage p:empty,
.helppage p:has(> br:only-child) {
    display: none;
}

/* -- Typography scope --------------------------------------------------------
   font-family intentionally NOT set -- inherits from each shell so Help.aspx
   gets Buzzscribed brand fonts and theHive/BuzzHubAdmin get auth-shell fonts. */
.help-article,
.helppage {
    font-size: 1.0625rem;
    line-height: 1.7;
}

.help-article h1,
.helppage h1 {
    display: none;
}

.help-article h2,
.help-article h3,
.help-article h4,
.helppage h2,
.helppage h3,
.helppage h4 {
    color: #3d1a6f;
    line-height: 1.3;
    margin: 2.25rem 0 0.75rem;
}

.help-article h2,
.helppage h2 {
    font-size: 1.625rem;
    font-weight: 700;
    border-bottom: 2px solid #fdb913;
    padding-bottom: 0.4rem;
}

.help-article h3,
.helppage h3 {
    font-size: 1.25rem;
    font-weight: 600;
}

.help-article h4,
.helppage h4 {
    font-size: 1.05rem;
    font-weight: 600;
}

.help-article p,
.helppage p {
    margin: 0 0 1.1rem;
}

.help-article ul,
.help-article ol,
.helppage ul,
.helppage ol {
    margin: 0 0 1.25rem;
    padding-left: 1.4rem;
}

.help-article li,
.helppage li {
    margin-bottom: 0.4rem;
}

.help-article a,
.helppage a {
    color: #3d1a6f;
    text-decoration: underline;
    text-decoration-color: #fdb913;
    text-underline-offset: 2px;
}

.help-article a:hover,
.helppage a:hover {
    color: #5a2d82;
}

.help-article strong,
.help-article b,
.helppage strong,
.helppage b {
    color: #3d1a6f;
    font-weight: 600;
}

.help-article img,
.helppage img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1.25rem auto;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    border: 1px solid #e9ecef;
}

.help-article blockquote,
.helppage blockquote {
    margin: 1.5rem 0;
    padding: 0.75rem 1.25rem;
    border-left: 4px solid #fdb913;
    background: #fffbf0;
    color: #212529;
    border-radius: 0 4px 4px 0;
    font-style: italic;
}

.help-article code,
.helppage code {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
    font-size: 0.9em;
    padding: 0.15em 0.4em;
    background: #f8f9fa;
    color: #3d1a6f;
    border-radius: 4px;
}

.help-article pre,
.helppage pre {
    margin: 1.25rem 0;
    padding: 1rem 1.25rem;
    background: #212529;
    color: #f1f3f5;
    border-radius: 6px;
    overflow-x: auto;
    font-size: 0.9rem;
    line-height: 1.5;
}

.help-article pre code,
.helppage pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.help-article kbd,
.helppage kbd {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
    font-size: 0.85em;
    padding: 0.2rem 0.45rem;
    background: #f1f3f5;
    color: #212529;
    border: 1px solid #ced4da;
    border-bottom-width: 2px;
    border-radius: 4px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05);
}

.help-article table,
.helppage table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    font-size: 0.95rem;
}

.help-article th,
.help-article td,
.helppage th,
.helppage td {
    padding: 0.6rem 0.85rem;
    border: 1px solid #dee2e6;
    text-align: left;
    vertical-align: top;
}

.help-article th,
.helppage th {
    background: #3d1a6f;
    color: #ffffff;
    font-weight: 600;
}

.help-article hr,
.helppage hr {
    margin: 2rem 0;
    border: 0;
    border-top: 1px solid #dee2e6;
}

/* ==========================================================================
   Dark mode -- tokens with auth-shell-namespace fallbacks. Buzzhub.Master
   doesn't load theme-tokens.css so the fallback hex values are what render
   on Help.aspx in dark mode. Site.Master loads theme-tokens.css so tokens
   resolve to canonical dark values.
   ========================================================================== */
/* Dark mode: dark surface + forced-light descendant text. Same pattern as
   theme-tokens.css for ticket / askralph / editor surfaces. Wildcard !important
   defeats inline style="color:rgb(0,0,0)" on RTE-authored content. Light-mode
   brand colours for headings/links etc. are deliberately overridden here so they
   stay visible on the dark surface. */
[data-theme="dark"] .help-article,
[data-theme="dark"] .helppage {
    background-color: #1e1e1e;
    color: #e8e8e8;
}
[data-theme="dark"] .help-article *,
[data-theme="dark"] .helppage * {
    color: #e8e8e8 !important;
}
[data-theme="dark"] .help-article :is(h1, h2, h3, h4),
[data-theme="dark"] .helppage :is(h1, h2, h3, h4) {
    color: #e5d9ff !important;
}
[data-theme="dark"] .help-article a,
[data-theme="dark"] .helppage a {
    color: #d4b3ff !important;
}
[data-theme="dark"] .help-article strong,
[data-theme="dark"] .help-article b,
[data-theme="dark"] .helppage strong,
[data-theme="dark"] .helppage b {
    color: #e5d9ff !important;
}
[data-theme="dark"] .help-article code,
[data-theme="dark"] .helppage code {
    background: #0f0f12;
}
[data-theme="dark"] .help-article pre,
[data-theme="dark"] .helppage pre {
    background: #0f0f12;
    border: 1px solid #2a2a2a;
}
[data-theme="dark"] .help-article kbd,
[data-theme="dark"] .helppage kbd {
    background: #0f0f12;
    border-color: #3a3a3a;
}
[data-theme="dark"] .help-article blockquote,
[data-theme="dark"] .helppage blockquote {
    background: #14110d;
    border-left-color: #fdb913;
}
[data-theme="dark"] .help-article table th,
[data-theme="dark"] .helppage table th {
    background: #3d1a6f;
    border-color: #3a3a3a;
}
[data-theme="dark"] .help-article table td,
[data-theme="dark"] .helppage table td {
    border-color: #3a3a3a;
}
[data-theme="dark"] .help-article hr,
[data-theme="dark"] .helppage hr {
    border-top-color: #2a2a2a;
}

/* ==========================================================================
   Learning Centre pedagogy callouts (added 2026-05-11)
   Shared utility classes for proper teaching content: meta bar, try-this,
   weak/strong comparison, common mistake, FAQ, checklist, takeaways recap,
   image placeholder. Reused across all 27 curated course articles.
   ========================================================================== */

/* Top-of-article meta strip: time, difficulty, prereqs */
.help-article .lc-meta,
.helppage .lc-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding: .65rem 1rem;
    margin: 0 0 1.25rem;
    background: #f4f0fa;
    border-left: 3px solid #3d1a78;
    border-radius: 0 4px 4px 0;
    font-size: .9rem;
    color: #3d1a78;
}
.help-article .lc-meta strong,
.helppage .lc-meta strong {
    color: #3d1a78;
    margin-right: .25rem;
}

/* Try-this exercise -- active learning */
.help-article .lc-tryit,
.helppage .lc-tryit {
    background: #eef7ee;
    border-left: 3px solid #2e7d32;
    padding: .75rem 1rem;
    margin: 1rem 0;
    border-radius: 0 4px 4px 0;
}
.help-article .lc-tryit > .lc-label,
.helppage .lc-tryit > .lc-label {
    display: inline-block;
    font-weight: 600;
    color: #1b5e20;
    margin-right: .35rem;
}

/* Weak vs strong comparison */
.help-article .lc-compare,
.helppage .lc-compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin: 1rem 0;
}
.help-article .lc-compare > div,
.helppage .lc-compare > div {
    padding: .75rem 1rem;
    border-radius: 4px;
    font-size: .95rem;
}
.help-article .lc-compare .lc-weak,
.helppage .lc-compare .lc-weak {
    background: #fdecec;
    border-left: 3px solid #c62828;
}
.help-article .lc-compare .lc-strong,
.helppage .lc-compare .lc-strong {
    background: #eef7ee;
    border-left: 3px solid #2e7d32;
}
.help-article .lc-compare .lc-label,
.helppage .lc-compare .lc-label {
    display: block;
    font-weight: 600;
    margin-bottom: .25rem;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.help-article .lc-compare .lc-weak .lc-label,
.helppage .lc-compare .lc-weak .lc-label {
    color: #c62828;
}
.help-article .lc-compare .lc-strong .lc-label,
.helppage .lc-compare .lc-strong .lc-label {
    color: #1b5e20;
}
@media (max-width: 640px) {
    .help-article .lc-compare,
    .helppage .lc-compare {
        grid-template-columns: 1fr;
    }
}

/* Common mistake / pitfall -- WRONG / RIGHT pattern */
.help-article .lc-mistake,
.helppage .lc-mistake {
    background: #fff7e6;
    border-left: 3px solid #ef6c00;
    padding: .75rem 1rem;
    margin: 1rem 0;
    border-radius: 0 4px 4px 0;
}
.help-article .lc-mistake > .lc-label,
.helppage .lc-mistake > .lc-label {
    display: inline-block;
    font-weight: 600;
    color: #b34700;
    margin-right: .35rem;
}

/* FAQ block */
.help-article .lc-faq,
.helppage .lc-faq {
    margin: 1rem 0;
}
.help-article .lc-faq dt,
.helppage .lc-faq dt {
    font-weight: 600;
    color: #3d1a78;
    margin-top: .85rem;
}
.help-article .lc-faq dt:first-child,
.helppage .lc-faq dt:first-child {
    margin-top: 0;
}
.help-article .lc-faq dd,
.helppage .lc-faq dd {
    margin: .25rem 0 .75rem 1rem;
}

/* Checklist */
.help-article .lc-checklist,
.helppage .lc-checklist {
    list-style: none;
    padding-left: 0;
    margin: .5rem 0;
}
.help-article .lc-checklist li,
.helppage .lc-checklist li {
    padding: .2rem 0 .2rem 1.7rem;
    position: relative;
}
.help-article .lc-checklist li::before,
.helppage .lc-checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .45rem;
    width: 1.1rem;
    height: 1.1rem;
    border: 1.5px solid #3d1a78;
    border-radius: 3px;
    background: #fff;
}

/* Key takeaways recap */
.help-article .lc-takeaways,
.helppage .lc-takeaways {
    background: #fff8d6;
    border: 1px solid #fdb913;
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin: 1.5rem 0;
}
.help-article .lc-takeaways > .lc-label,
.helppage .lc-takeaways > .lc-label {
    display: block;
    font-weight: 700;
    color: #3d1a78;
    margin-bottom: .5rem;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.help-article .lc-takeaways ul,
.helppage .lc-takeaways ul {
    margin: 0;
    padding-left: 1.2rem;
}

/* Image placeholder -- temporary until screenshots captured */
.help-article .lc-image,
.helppage .lc-image {
    margin: 1rem 0;
    text-align: center;
}
.help-article .lc-image .lc-image-stub,
.helppage .lc-image .lc-image-stub {
    background: repeating-linear-gradient(45deg, #f4f0fa, #f4f0fa 10px, #ece4f8 10px, #ece4f8 20px);
    border: 1.5px dashed #3d1a78;
    color: #3d1a78;
    padding: 1.5rem 1rem;
    border-radius: 6px;
    font-size: .9rem;
    font-style: italic;
}
.help-article .lc-image figcaption,
.helppage .lc-image figcaption {
    font-size: .85rem;
    color: #666;
    margin-top: .35rem;
    font-style: italic;
}

/* Inline glossary term -- first mention */
.help-article .lc-term,
.helppage .lc-term {
    border-bottom: 1px dotted #3d1a78;
    cursor: help;
}

/* Dark mode overrides for callouts */
[data-theme="dark"] .help-article .lc-meta,
[data-theme="dark"] .helppage .lc-meta {
    background: #2a1f3d;
    color: #d9c9f2;
}
[data-theme="dark"] .help-article .lc-meta strong,
[data-theme="dark"] .helppage .lc-meta strong {
    color: #fdb913;
}
[data-theme="dark"] .help-article .lc-tryit,
[data-theme="dark"] .helppage .lc-tryit {
    background: #14241a;
}
[data-theme="dark"] .help-article .lc-tryit > .lc-label,
[data-theme="dark"] .helppage .lc-tryit > .lc-label {
    color: #81c784;
}
[data-theme="dark"] .help-article .lc-compare .lc-weak,
[data-theme="dark"] .helppage .lc-compare .lc-weak {
    background: #2a1414;
}
[data-theme="dark"] .help-article .lc-compare .lc-strong,
[data-theme="dark"] .helppage .lc-compare .lc-strong {
    background: #14241a;
}
[data-theme="dark"] .help-article .lc-mistake,
[data-theme="dark"] .helppage .lc-mistake {
    background: #2a1f0d;
}
[data-theme="dark"] .help-article .lc-mistake > .lc-label,
[data-theme="dark"] .helppage .lc-mistake > .lc-label {
    color: #ffb74d;
}
[data-theme="dark"] .help-article .lc-faq dt,
[data-theme="dark"] .helppage .lc-faq dt {
    color: #fdb913;
}
[data-theme="dark"] .help-article .lc-checklist li::before,
[data-theme="dark"] .helppage .lc-checklist li::before {
    border-color: #fdb913;
    background: #1a1a1a;
}
[data-theme="dark"] .help-article .lc-takeaways,
[data-theme="dark"] .helppage .lc-takeaways {
    background: #2a230d;
    border-color: #fdb913;
}
[data-theme="dark"] .help-article .lc-takeaways > .lc-label,
[data-theme="dark"] .helppage .lc-takeaways > .lc-label {
    color: #fdb913;
}
[data-theme="dark"] .help-article .lc-image .lc-image-stub,
[data-theme="dark"] .helppage .lc-image .lc-image-stub {
    background: repeating-linear-gradient(45deg, #1f1830, #1f1830 10px, #2a213f 10px, #2a213f 20px);
    color: #d9c9f2;
}

/* =============================================================================
   Engagement Design System -- Component CSS
   Spec: .claude/buzzscribed/engagement-design-system-2026-05-10.md
   Tokens defined in theme-tokens.css (Engagement Lifecycle Redesign block)
   All consumers reference this single canonical source -- no copy-pasted
   gradient declarations, no inline hex codes.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   Resolve panel (2026-05-16) -- intelligence layer for Capacity Outlook.
   Lives below Capacity heatmap on the Overview tab. Each over-loaded resource
   gets a row showing the rebalance options.
   ----------------------------------------------------------------------------- */
.bh-resolve-row {
    border: 1px solid var(--border-default, #e1e1e6);
    border-left: 4px solid var(--brand-danger, #ed174c);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
    background: var(--bg-surface, #fff);
}
.bh-resolve-head {
    margin-bottom: 0.6rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px dashed var(--border-light, #e9ecef);
}
.bh-resolve-head-title { font-size: 0.95rem; }
.bh-resolve-head-meta { margin-top: 0.15rem; }
.bh-resolve-over {
    color: var(--brand-danger, #ed174c);
    font-weight: 600;
    margin-left: 0.4rem;
}
.bh-resolve-role-badge {
    display: inline-block;
    font-size: 0.65rem;
    padding: 1px 7px;
    border-radius: 8px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    vertical-align: middle;
    margin-left: 0.25rem;
}
.bh-resolve-role-director {
    background: var(--bg-purple-tint, #f0ebf7);
    color: var(--brand-primary, #3d1a6f);
}
.bh-resolve-role-am {
    background: var(--bg-subtle, #fafafa);
    color: var(--text-body, #555);
}
[data-theme="dark"] .bh-resolve-role-director {
    background: rgba(167, 107, 223, 0.15);
    color: var(--brand-primary, #a76bdf);
}
[data-theme="dark"] .bh-resolve-role-am {
    background: rgba(255, 255, 255, 0.05);
}
.bh-resolve-suggestions {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.bh-resolve-suggestion {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--bg-subtle, #fafafa);
    border-radius: 4px;
    border: 1px solid var(--border-light, #e9ecef);
}
.bh-resolve-suggestion-text { flex: 1; min-width: 0; }
.bh-resolve-suggestion-meta { margin-top: 0.2rem; }
.bh-resolve-apply { flex: 0 0 auto; white-space: nowrap; }
.bh-resolve-actup-flag {
    display: inline-block;
    font-size: 0.65rem;
    padding: 1px 6px;
    border-radius: 8px;
    background: rgba(253, 126, 20, 0.15);
    color: #fd7e14;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.bh-resolve-escalate {
    margin-top: 0.5rem;
}
[data-theme="dark"] .bh-resolve-row {
    background: var(--bg-surface);
    border-color: var(--border-default);
}
[data-theme="dark"] .bh-resolve-suggestion {
    background: var(--bg-muted);
    border-color: var(--border-default);
}


/* -----------------------------------------------------------------------------
   0. Laptop-aware density (DS section 0)
   On viewports <= 900px tall, every canonical KPI row class collapses from
   ~80px cards to a single inline strip (~36px). Saves ~45px per row so the
   primary work surface lands above the fold.

   Was opt-in via `.bh-stats-laptop-aware` 2026-05-10..2026-05-14; chairman
   ruled site-consistent (Jen 2026-05-14) so it now targets the canonical row
   classes directly. The marker class is no longer required in markup; legacy
   `.bh-stats-laptop-aware` retained as a no-op selector so existing uses
   don't 404 the cascade. Page-local `.ra-stats-bar` aliased the same way.

   min-width:992px guard added 2026-06-06 (Jen): this compact strip is for SHORT,
   WIDE laptops. A tall phone in portrait also satisfies max-height:900px, so the
   strip was firing on phones -- forcing flex-wrap:nowrap on the KPI row and
   shoving the tiles off the right edge (Capacity "Available"/"Overallocated"
   were being clipped). Requiring a wide viewport keeps phones on the normal
   wrap behaviour while laptops still get the compact strip.
   ----------------------------------------------------------------------------- */
@media (max-height: 900px) and (min-width: 992px) {
    .bh-kpi-row,
    .crm-stats,
    .pipeline-stats,
    .bh-eng-summary-row,
    .pitch-stats,
    .ra-stats-bar,
    .bh-stats-laptop-aware {
        gap: 0.4rem;
        padding: 0.25rem 0;
        margin-bottom: 0.5rem;
        flex-wrap: nowrap;
    }
    .bh-kpi-row .bh-kpi,
    .crm-stats .crm-stat-card,
    .pipeline-stats .pipeline-stat-card,
    .bh-eng-summary-row .bh-eng-summary-tile,
    .pitch-stats .pitch-stat-card,
    .ra-stats-bar .ra-stat-card,
    .bh-kpi-row .kpi-card,
    .bh-stats-laptop-aware .bh-kpi,
    .bh-stats-laptop-aware .crm-stat-card,
    .bh-stats-laptop-aware .pipeline-stat-card,
    .bh-stats-laptop-aware .kpi-card,
    .bh-stats-laptop-aware .ra-stat-card,
    .bh-stats-laptop-aware .bh-eng-summary-tile,
    .bh-stats-laptop-aware .pitch-stat-card {
        padding: 0.35rem 0.7rem;
        text-align: left;
        display: flex;
        flex-direction: row;
        align-items: baseline;
        gap: 0.5rem;
        min-width: 0;
        min-height: 0;
        box-shadow: none;
        border: 1px solid var(--border-default, #e5e5e5);
        border-left-width: 3px;
        border-radius: 6px;
    }
    .bh-kpi-row .stat-value, .bh-kpi-row .bh-kpi-value, .bh-kpi-row .kpi-value,
    .crm-stats .stat-value,
    .pipeline-stats .stat-value,
    .bh-eng-summary-row .bh-eng-summary-tile-value,
    .pitch-stats .stat-value,
    .ra-stats-bar .stat-value,
    .bh-stats-laptop-aware .stat-value,
    .bh-stats-laptop-aware .bh-kpi-value,
    .bh-stats-laptop-aware .kpi-value,
    .bh-stats-laptop-aware .bh-eng-summary-tile-value {
        font-size: 1.05rem;
        line-height: 1;
        margin: 0;
        flex: 0 0 auto;
    }
    .bh-kpi-row .stat-label, .bh-kpi-row .bh-kpi-label, .bh-kpi-row .kpi-label,
    .crm-stats .stat-label,
    .pipeline-stats .stat-label,
    .bh-eng-summary-row .bh-eng-summary-tile-label,
    .pitch-stats .stat-label,
    .ra-stats-bar .stat-label,
    .bh-stats-laptop-aware .stat-label,
    .bh-stats-laptop-aware .bh-kpi-label,
    .bh-stats-laptop-aware .kpi-label,
    .bh-stats-laptop-aware .bh-eng-summary-tile-label {
        font-size: 0.78rem;
        margin: 0;
        flex: 1 1 auto;
        color: var(--text-body, #222);
        text-transform: none;
        letter-spacing: 0;
    }
    .bh-kpi-row .stat-sub, .bh-kpi-row .bh-kpi-sub,
    .crm-stats .stat-sub,
    .pipeline-stats .stat-sub,
    .bh-eng-summary-row .bh-eng-summary-tile-sub,
    .pitch-stats .stat-sub,
    .ra-stats-bar .stat-sub,
    .bh-stats-laptop-aware .stat-sub,
    .bh-stats-laptop-aware .bh-kpi-sub,
    .bh-stats-laptop-aware .bh-eng-summary-tile-sub {
        display: none; /* sub-caption hidden on laptop -- tooltip-only */
    }
    .bh-kpi-row .stat-label i, .crm-stats .stat-label i,
    .pipeline-stats .stat-label i, .bh-eng-summary-row .bh-eng-summary-tile-label i,
    .pitch-stats .stat-label i, .ra-stats-bar .stat-label i,
    .bh-stats-laptop-aware .stat-label i { margin-right: 0.2rem; }

    /* "Agreements awaiting first activity" panel: tighter padding when its
       sibling stats row is in laptop-compact mode. Sibling selector keeps
       scope tight without needing a body class. */
    .bh-kpi-row ~ .empty-agreements-section,
    .crm-stats ~ .empty-agreements-section,
    .bh-eng-summary-row ~ .empty-agreements-section,
    .bh-stats-laptop-aware ~ .empty-agreements-section {
        padding: 0.5rem 0.85rem;
        margin-bottom: 0.5rem;
    }
    .bh-kpi-row ~ .empty-agreements-section .empty-agreements-header,
    .crm-stats ~ .empty-agreements-section .empty-agreements-header,
    .bh-eng-summary-row ~ .empty-agreements-section .empty-agreements-header,
    .bh-stats-laptop-aware ~ .empty-agreements-section .empty-agreements-header {
        margin-bottom: 0.35rem;
    }
    .bh-kpi-row ~ .empty-agreements-section .empty-agreement-card,
    .crm-stats ~ .empty-agreements-section .empty-agreement-card,
    .bh-eng-summary-row ~ .empty-agreements-section .empty-agreement-card,
    .bh-stats-laptop-aware ~ .empty-agreements-section .empty-agreement-card {
        padding: 0.4rem 0.6rem;
    }

    /* Slate section header (.profile-card-header.yellow): hero min-height + clamp
       padding ignore viewport height. Tighten band so it stops eating the fold.
       !important beats both inline margin-bottom:15px (legacy markup) and the
       section 6 #tab*-scoped min-height:68px below. */
    .profile-card-header.yellow {
        padding: 0.3rem 0.75rem !important;
        margin-bottom: 0.5rem !important;
        min-height: 0 !important;
    }
    /* The 0.5rem above is for STANDALONE section bands. Inside a .profile-card the
       header is the card's connected top -- a gap there detaches the slate band
       from its body and it reads as a floating bar. Keep in-card headers flush. */
    .profile-card > .profile-card-header.yellow {
        margin-bottom: 0 !important;
    }
    .profile-card-header.yellow h3,
    .profile-card-header.yellow h4,
    .profile-card-header.yellow h5 {
        font-size: 0.92rem;
    }
    .profile-card-header.yellow .profile-card-title small {
        font-size: 0.72rem;
        line-height: 1.25;
    }
}

/* -----------------------------------------------------------------------------
   1. Striping mixins (DS section 1.3)
   ----------------------------------------------------------------------------- */

.bh-stripe-forecast {
    background-image: repeating-linear-gradient(
        45deg,
        var(--wl-forecast-base-bg),
        var(--wl-forecast-base-bg) 6px,
        var(--wl-forecast-stripe-color) 6px,
        var(--wl-forecast-stripe-color) 8px
    );
}

.bh-stripe-provisional-accent {
    position: relative;
}
.bh-stripe-provisional-accent::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background-image: repeating-linear-gradient(
        45deg,
        var(--es-provisional-border),
        var(--es-provisional-border) 4px,
        transparent 4px,
        transparent 8px
    );
    border-radius: 12px 0 0 12px;
}

/* -----------------------------------------------------------------------------
   2. Engagement State badges (DS section 2)
   ----------------------------------------------------------------------------- */

.bh-es-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-radius: 12px;
    border: 1px solid transparent;
    white-space: nowrap;
    line-height: 1.4;
}
.bh-es-badge i { font-size: 0.8em; }

.bh-es-provisional       { background: var(--es-provisional-bg); color: var(--es-provisional-fg); border-color: var(--es-provisional-border); }
.bh-es-draft             { background: var(--es-draft-bg);       color: var(--es-draft-fg);       border-color: var(--es-draft-border); }
.bh-es-pending-signature { background: var(--es-pending-bg);     color: var(--es-pending-fg);     border-color: var(--es-pending-border); }
.bh-es-active            { background: var(--es-active-bg);      color: var(--es-active-fg);      border-color: var(--es-active-border); }
.bh-es-closed            { background: var(--es-closed-bg);      color: var(--es-closed-fg);      border-color: var(--es-closed-border); }

/* -----------------------------------------------------------------------------
   2b. Page-level info banner (DS section 12b) -- canonical intro / explainer strip.
   Aliased onto legacy .bip-tab-intro / .bip-intro-dismiss so existing markup
   inherits the Design System treatment without per-page rewrites.
   Light purple tint, brand-primary left border, leading info icon, padded
   dismiss-X positioned absolute top-right. Single-line by default; wraps cleanly.
   ----------------------------------------------------------------------------- */

.bh-page-intro,
.bip-tab-intro {
    position: relative;
    margin: 0 0 1rem;
    padding: 0.65rem 2.25rem 0.65rem 0.85rem;
    border-radius: 6px;
    background: var(--bg-purple-tint, #f8f4fc);
    color: var(--text-body);
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
    line-height: 1.45;
}
.bh-page-intro::before,
.bip-tab-intro::before {
    content: "\f05a"; /* fa-info-circle */
    font-family: var(--bh-fa-family, "Font Awesome 7 Pro");
    font-weight: 900;
    color: var(--brand-primary, #3d1a6f);
    margin-right: 0.5rem;
    opacity: 0.85;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
}
.bh-page-intro strong,
.bip-tab-intro strong { color: var(--brand-primary, #3d1a6f); font-weight: 600; }
.bh-page-intro-dismiss,
.bip-intro-dismiss {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    width: 1.4rem;
    height: 1.4rem;
    border: 0;
    background: transparent;
    color: var(--text-muted, #6c757d);
    cursor: pointer;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    transition: background 0.15s ease, color 0.15s ease;
    padding: 0;
}
.bh-page-intro-dismiss:hover,
.bip-intro-dismiss:hover {
    background: rgba(0, 0, 0, 0.06);
    color: var(--text-body);
}

/* -----------------------------------------------------------------------------
   2bb. On-brand pill nav (DS section 11a) -- sub-tab navigation inside cards/panels.
   The site-wide `.nav-pills .nav-link.active` rule in BUZZHub.css paints active
   pills solid yellow, which works for CTA-heavy nav but reads as a separate
   control type when adjacent to inactive pills (the active one looks like a
   button, the others look like links). Adding `.bh-pill-nav` swaps in a
   tinted-purple active state with a leading accent border so all pills read as
   one connected control group.
   2026-06-02: inactive pills now get a real button surface (fill + border) and a
   slightly taller cell so EVERY pill reads as pressable, not just the active one
   (promoted from the SurveyForms .bh-share-mode treatment, George-approved).
   ----------------------------------------------------------------------------- */
.bh-pill-nav {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 8px;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default);
    list-style: none;
    margin: 0;
}
.bh-pill-nav .nav-item { margin: 0; }
.bh-pill-nav .nav-link {
    padding: 0.5rem 1rem !important;
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-body, #222) !important;
    background: var(--bg-surface, #fff) !important;
    border-radius: 6px !important;
    border: 1px solid var(--border-light, #e9ecef) !important;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    display: inline-flex;
    align-items: center;
    line-height: 1;
    text-decoration: none;
}
.bh-pill-nav .nav-link:hover {
    background: var(--bg-gold-tint, #fff5dc) !important;
    border-color: var(--brand-accent, #fdb913) !important;
    color: var(--brand-primary, #3d1a6f) !important;
}
.bh-pill-nav .nav-link:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: 1px;
}
/* Active state: solid purple gradient mirrors vertical rail's branded active treatment.
   White text + gold icon = the brand thread on the active item without fighting pill shape. */
.bh-pill-nav .nav-link.active,
.bh-pill-nav .show > .nav-link {
    background: linear-gradient(135deg, var(--brand-primary, #3d1a6f) 0%, #5a2d82 100%) !important;
    color: #fff !important;
    border-color: var(--brand-primary, #3d1a6f) !important;
    font-weight: 700;
}
.bh-pill-nav .nav-link i { margin-right: 0.35rem; opacity: 0.85; }
.bh-pill-nav .nav-link.active i { opacity: 1; color: var(--brand-accent, #fdb913) !important; }

/* 2c-dp. DP filter disclosure retired 2026-05-26 (George): Agreement/Client picker
   removed, Team Member picker moved into the Schedule sub-toolbar. Rules deleted. */

/* -----------------------------------------------------------------------------
   2cd. First-visit Wizard popover (DS section 14b) -- new-user onboarding hint
   anchored to the page Wizard button. One-shot per page per user.
   ----------------------------------------------------------------------------- */
.bh-wizard-popover {
    position: absolute;
    z-index: 1080;
    width: 280px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(61, 26, 111, 0.18);
    padding: 0;
    animation: bhWizardPopoverIn 0.25s ease-out;
}
@keyframes bhWizardPopoverIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.bh-wizard-popover-arrow {
    position: absolute;
    top: -8px;
    right: 220px;
    width: 16px;
    height: 8px;
    overflow: hidden;
}
.bh-wizard-popover-arrow::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 0;
    width: 12px;
    height: 12px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--brand-primary, #3d1a6f);
    transform: rotate(45deg);
    transform-origin: center;
}
.bh-wizard-popover-body { padding: 0.85rem 1rem; }
.bh-wizard-popover-title {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.35rem;
    font-size: 0.95rem;
}
.bh-wizard-popover-text {
    font-size: 0.85rem;
    color: var(--text-body);
    line-height: 1.45;
    margin-bottom: 0.75rem;
}
.bh-wizard-popover-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-end;
}

/* Theme toggle attention pulse -- paired with the first-run theme coachmark
   (ThemeManager.maybeShowThemeIntro). Gold glow works in light and dark. */
.bh-theme-toggle-attention {
    border-radius: 6px;
    animation: bhThemeTogglePulse 1.4s ease-out infinite;
}
@keyframes bhThemeTogglePulse {
    0%   { box-shadow: 0 0 0 0 rgba(253, 185, 19, 0.55); }
    70%  { box-shadow: 0 0 0 8px rgba(253, 185, 19, 0); }
    100% { box-shadow: 0 0 0 0 rgba(253, 185, 19, 0); }
}

/* -----------------------------------------------------------------------------
   2c. On-brand modal modifier (DS section 14a) -- routine creation modals.
   Default `.modalPopup .header` paints titles in brand-danger (red) which
   correctly signals destructive actions but mis-signals routine creation.
   Adding `.bh-modal-onbrand` to the panel flips the header to brand-primary
   purple. Scope is limited to NEW modals; legacy/destructive modals untouched.
   ----------------------------------------------------------------------------- */

.modalPopup.bh-modal-onbrand .header,
.modalPopup.bh-modal-onbrand .header h3,
.modalPopup.bh-modal-onbrand .header h4,
.modalPopup.bh-modal-onbrand .header h5,
.modalPopup.bh-modal-onbrand .header h3 i,
.modalPopup.bh-modal-onbrand .header h4 i,
.modalPopup.bh-modal-onbrand .header h5 i {
    color: var(--brand-primary, #3d1a6f);
}

/* -----------------------------------------------------------------------------
   3. AM kanban lanes (DS section 3) -- canonical lane-header layout, all 5 lanes.
   Two-row header: row 1 = icon + title + count badge (flex, baseline-aligned),
   row 2 = sub-caption (full width, single line, fixed height). Min-height
   guarantees all lane headers render identically tall regardless of label length
   or chevron presence. Each lane state uses its own tinted background pulled
   from the same Engagement State tokens that the card badges use, so the lane
   colour and the card badge colour always agree.
   ----------------------------------------------------------------------------- */

.bh-am-lane-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.6rem 0.85rem;
    min-height: 68px;
    border-radius: 6px 6px 0 0;
    border-bottom: 1px solid transparent;
    color: var(--text-body);
}
.bh-am-lane-header-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    line-height: 1.2;
}
.bh-am-lane-icon {
    flex: 0 0 auto;
    font-size: 0.95rem;
    opacity: 0.9;
}
.bh-am-lane-title {
    flex: 1 1 auto;
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-am-lane-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.08);
    color: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
}
.bh-am-lane-toggle {
    flex: 0 0 auto;
    width: 1.4rem;
    height: 1.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    border-radius: 4px;
    transition: transform 0.2s ease, background 0.15s ease;
}
.bh-am-lane-toggle:hover { background: rgba(0, 0, 0, 0.08); }
.bh-am-lane-toggle.bh-am-lane-toggle-open { transform: rotate(180deg); }
.bh-am-lane-sub {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    font-weight: 400;
    opacity: 0.75;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-am-lane-sub-link {
    color: inherit;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 2px;
}
.bh-am-lane-sub-link:hover {
    opacity: 1;
    text-decoration-style: solid;
}

/* Per-state palette -- pulls from Engagement State tokens so lane and card badge agree. */
.bh-am-lane-provisional       { border-left: 4px solid var(--es-provisional-border); }
.bh-am-lane-provisional       .bh-am-lane-header {
    background-image: repeating-linear-gradient(
        45deg,
        var(--es-provisional-bg),
        var(--es-provisional-bg) 8px,
        rgba(253, 185, 19, 0.15) 8px,
        rgba(253, 185, 19, 0.15) 12px
    );
    color: var(--es-provisional-fg);
    border-bottom-color: var(--es-provisional-border);
}

.bh-am-lane-draft             { border-left: 4px solid var(--es-draft-border); }
.bh-am-lane-draft             .bh-am-lane-header {
    background: var(--es-draft-bg);
    color: var(--es-draft-fg);
    border-bottom-color: var(--es-draft-border);
}

.bh-am-lane-pending-signature { border-left: 4px solid var(--es-pending-border); }
.bh-am-lane-pending-signature .bh-am-lane-header {
    background: var(--es-pending-bg);
    color: var(--es-pending-fg);
    border-bottom-color: var(--es-pending-border);
}

.bh-am-lane-active            { border-left: 4px solid var(--es-active-border); }
.bh-am-lane-active            .bh-am-lane-header {
    background: var(--es-active-bg);
    color: var(--es-active-fg);
    border-bottom-color: var(--es-active-border);
}

.bh-am-lane-closed            { border-left: 4px solid var(--es-closed-border); }
.bh-am-lane-closed            .bh-am-lane-header {
    background: var(--es-closed-bg);
    color: var(--es-closed-fg);
    border-bottom-color: var(--es-closed-border);
}

/* -----------------------------------------------------------------------------
   4. Schedule blocks -- three-layer rendering (DS section 4)
   ----------------------------------------------------------------------------- */

/* 2026-05-16 Jen (final): pill body IS the client hash colour. The 22%
   color-mix() attempt earlier was invisible -- every pill read as the same
   brand purple. Flipping to colour-as-body means the eye actually groups by
   client at a glance. Text colour computed JS-side via luminance so dark
   client colours get white text and bright ones (yellow/orange) get dark. */
.bh-sched-block {
    position: relative;
    border-radius: 4px;
    padding: 0.3rem 0.5rem 0.3rem 0.55rem;
    font-size: 0.78rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    grid-template-areas:
        "icon title title"
        "icon sub   hours";
    column-gap: 0.35rem;
    row-gap: 1px;
    min-height: 44px;
    cursor: pointer;
    line-height: 1.2;
    overflow: hidden;
    background-color: var(--block-color, var(--brand-primary));
    color: var(--block-text-color, #ffffff);
    border: 1px solid rgba(0, 0, 0, 0.08);
    /* Subtle shadow lifts text on borderline-contrast hues (teal/pink ~4:1).
       Invisible on dark-text-on-light pills, adds definition on white-on-coloured. */
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
}

/* Narrow pill (single-week span). Drop subtitle to give title + hours a
   clean single-row layout. Reduces "Gi..." 1-2 char truncations. Subtitle
   info still surfaces in the hover tooltip. */
.bh-sched-block.bh-sched-narrow {
    grid-template-areas: "icon title hours";
    grid-template-rows: auto;
    min-height: 32px;
    align-items: center;
}
.bh-sched-block.bh-sched-narrow .bh-sched-subtitle { display: none; }

.bh-sched-block .bh-sched-icon {
    grid-area: icon;
    font-size: 0.7em;
    align-self: center;
    /* Icon picks up the text colour so it stays visible on all backgrounds. */
    color: var(--block-text-color, #ffffff);
    opacity: 0.75;
}
.bh-sched-block .bh-sched-title {
    grid-area: title;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    font-size: 0.82rem;
    color: inherit;
}
.bh-sched-block .bh-sched-subtitle {
    grid-area: sub;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.7rem;
    color: inherit;
    opacity: 0.78;
    min-width: 0;
}
.bh-sched-block .bh-sched-hours {
    grid-area: hours;
    font-weight: 600;
    font-size: 0.7rem;
    color: inherit;
    opacity: 0.92;
    align-self: center;
    font-variant-numeric: tabular-nums;
    padding-left: 0.4rem;
    white-space: nowrap;
}

/* Hover-reveal per-block action strip. Forecast blocks: Edit + Delete + Promote.
   Committed/Actual: Edit only (delete protected -- billing history). */
.bh-sched-block-actions {
    position: absolute;
    top: 2px;
    right: 2px;
    display: none;
    gap: 2px;
    padding: 1px 2px;
    border-radius: 4px;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-default, #d1d5db);
    box-shadow: 0 1px 3px rgba(0,0,0,0.12);
    z-index: 2;
}
.bh-sched-block:hover .bh-sched-block-actions,
.bh-sched-block:focus-within .bh-sched-block-actions {
    display: inline-flex;
}
.bh-sched-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    border-radius: 3px;
    font-size: 0.7rem;
    line-height: 1;
}
.bh-sched-action:hover { background: var(--bg-subtle, #f1ebfa); }
.bh-sched-action:focus-visible { outline: 2px solid var(--brand-accent, #fdb913); outline-offset: 1px; }
.bh-sched-action.bh-sched-action-danger { color: #b03030; }
.bh-sched-action.bh-sched-action-danger:hover { background: #fde8e8; }
.bh-sched-action.bh-sched-action-promote { color: #1f7a3d; }
.bh-sched-action.bh-sched-action-promote:hover { background: #e6f4ea; }
/* Disabled state for blocked actions (e.g. Activate when engagement isn't Stage 3). */
.bh-sched-action:disabled,
.bh-sched-action[disabled] {
    opacity: 0.35;
    cursor: not-allowed;
}
.bh-sched-action:disabled:hover,
.bh-sched-action[disabled]:hover { background: transparent; }

/* 2026-05-16 Jen (final): lifecycle distinction moves OFF colour (which now
   carries client identity) and onto two secondary cues:
     - Committed: solid pill, solid 1px border, full opacity
     - Forecast: dashed 1.5px border + 0.72 opacity (reads as "tentative")
     - Actual: keeps the progress bar overlay at the bottom (existing)
   The previous diagonal stripe pattern fought with the client colour --
   replaced by the opacity + border-style cues which work over any hue. */
.bh-sched-forecast {
    opacity: 0.72;
    border-style: dashed;
    border-width: 1.5px;
    /* currentColor inherits text colour -- dashed border reads on both
       dark-text-on-light pills and white-text-on-coloured pills. */
    border-color: currentColor;
    background-image: none;
}
.bh-sched-committed {
    opacity: 1;
}

/* Actual progress bar (inside Committed block) */
.bh-sched-has-actual { overflow: hidden; }
.bh-sched-actual-bar {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: var(--actual-pct, 0%);
    background: var(--wl-actual-progress-bg);
    transition: width 0.2s ease;
}
.bh-sched-has-actual.bh-sched-over .bh-sched-actual-bar {
    background: var(--eh-over);
}

/* Layer toggles */
.bh-layer-toggles {
    display: inline-flex;
    gap: 0.4rem;
    padding: 0.25rem;
    border-radius: 8px;
    background: var(--bg-subtle);
    align-items: center;
    height: 34px;
    box-sizing: border-box;
}
.bh-layer-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.65rem;
    font-size: 0.8rem;
    line-height: 1;
    height: 26px;
    border: 1px solid var(--border-default);
    background: var(--bg-surface);
    color: var(--text-body);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s ease;
    box-sizing: border-box;
}
.bh-layer-toggle.bh-layer-active {
    background: var(--brand-primary);
    color: #ffffff;
    border-color: var(--brand-primary);
}
.bh-layer-toggle .bh-layer-count {
    font-size: 0.7rem;
    padding: 0.05rem 0.3rem;
    border-radius: 8px;
    background: rgba(255,255,255,0.2);
}
.bh-layer-toggle:not(.bh-layer-active) .bh-layer-count {
    background: var(--bg-muted);
}
/* Semantic RAG dot for the Status filter pills (At Risk / Behind / On Track /
   Standout / Gap). A glance cue on the resting neutral pill; rides the existing
   .bh-layer-toggle flex gap so no extra spacing is needed. Colours come from the
   --status-* token SSOT (dark-mode-safe). 2026-06-25 Jen. */
.bh-layer-toggle .bh-layer-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--text-muted);
}
.bh-layer-toggle .bh-layer-dot.is-danger   { background: var(--status-danger); }
.bh-layer-toggle .bh-layer-dot.is-warning  { background: var(--status-warning); }
.bh-layer-toggle .bh-layer-dot.is-success  { background: var(--status-success); }
.bh-layer-toggle .bh-layer-dot.is-standout { background: var(--brand-primary); }
.bh-layer-toggle .bh-layer-dot.is-info     { background: var(--status-info); }
/* Selected pill is purple-filled -- ring the dot in white so it stays legible
   (especially the purple Standout dot against the purple body). */
.bh-layer-toggle.is-selected .bh-layer-dot,
.bh-layer-toggle.active .bh-layer-dot { box-shadow: 0 0 0 1.5px rgba(255,255,255,0.85); }

/* -----------------------------------------------------------------------------
   5. Workflow Status chips (DS section 5)
   ----------------------------------------------------------------------------- */

.bh-ws-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.bh-ws-chip i { font-size: 0.85em; }
.bh-ws-todo        { background: var(--bg-muted);          color: var(--text-secondary); }
.bh-ws-in-progress { background: var(--es-draft-bg);       color: var(--es-draft-fg); }
.bh-ws-done        { background: var(--es-active-bg);      color: var(--es-active-fg); }
.bh-ws-on-hold     { background: var(--eh-under-bg);       color: var(--eh-under); }
.bh-ws-cancelled   { background: var(--eh-over-bg);        color: var(--eh-over); }
/* Lifecycle chips (2026-05-15 -- StoryStatus retired, derived from campaign activity state).
   Forecast = not yet promoted (neutral muted). Active = promoted + campaign open (success green). */
.bh-ws-forecast    { background: var(--bg-muted);          color: var(--text-secondary); }
.bh-ws-active      { background: var(--es-active-bg);      color: var(--es-active-fg); }

/* -----------------------------------------------------------------------------
   5b. Plan sub-pill -- info band, meta pairs, rate-card toggle, list header
   ----------------------------------------------------------------------------- */

.bh-plan-info-band {
    background: var(--bg-slate-tint, #f1f0f4);
    border: 1px solid var(--border-default, #e1e1e6);
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.bh-plan-meta-row .bh-meta-pair {
    display: flex;
    flex-direction: column;
    margin-bottom: 0.5rem;
}
.bh-plan-meta-row .bh-meta-pair:last-child { margin-bottom: 0; }
.bh-meta-key {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6c757d);
    font-weight: 600;
}
.bh-meta-val {
    font-size: 0.95rem;
    color: var(--text-body, #2c2c2c);
    font-weight: 500;
}
.bh-meta-val.bh-meta-empty,
.bh-meta-empty {
    color: var(--text-muted, #9ca3af);
    font-style: italic;
    font-weight: 400;
}
.bh-rate-toggle {
    background: transparent;
    border: none;
    color: var(--brand-primary, #3d1a6f);
    padding: 0 0.2rem;
    cursor: pointer;
    line-height: 1;
}
.bh-rate-toggle i { transition: transform 0.15s ease; font-size: 0.85rem; }
.bh-rate-toggle.is-open i { transform: rotate(180deg); }
.bh-rate-toggle:hover { color: var(--brand-secondary, #5a2d82); }
.bh-rate-toggle:focus { outline: 2px solid var(--brand-accent, #fdb913); outline-offset: 2px; }

.bh-rate-card-panel {
    background: var(--bg-subtle, #f8f9fa);
    border-radius: 6px;
    padding: 0.75rem 1rem;
}

.bh-kpi-row.bh-kpi-row--inline {
    margin-left: 0;
    margin-right: 0;
}

.bh-plan-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.bh-plan-list-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-body, #2c2c2c);
}
.bh-plan-list-controls {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

/* -----------------------------------------------------------------------------
   Agreement Time Breakdown band (Plan sub-pill, 2026-05-15)
   Sits above the Planned Activities header. Service-agreement bucket (manager
   oversight) + per-activity buckets in a single horizontal stacked bar.
   ----------------------------------------------------------------------------- */
.bh-agreement-time-band {
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e1e1e6);
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    margin-bottom: 0.85rem;
}
.bh-att-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: var(--text-body, #2c2c2c);
}
.bh-att-total {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-variant-numeric: tabular-nums;
}
.bh-att-bar {
    display: flex;
    width: 100%;
    height: 24px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--bg-muted, #f0f0f0);
    border: 1px solid var(--border-default, #e1e1e6);
}
.bh-att-seg {
    height: 100%;
    min-width: 4px;
    transition: filter 120ms ease-out;
    cursor: default;
}
.bh-att-seg + .bh-att-seg {
    border-left: 1px solid rgba(255, 255, 255, 0.45);
}
.bh-att-seg:hover { filter: brightness(1.07); }

/* Service-agreement bucket -- brand purple, manager-oversight primary role. */
.bh-att-seg-service { background: var(--brand-primary, #3d1a6f); }

/* Per-activity palette -- 5 muted distinct hues, deterministic by activityId mod 5.
   Chosen to keep visual separation from brand purple while staying within the
   product's gold/teal/coral accent family. */
.bh-att-seg-p0 { background: #2d8a8a; } /* teal */
.bh-att-seg-p1 { background: #c97a1f; } /* amber */
.bh-att-seg-p2 { background: #6e4a9a; } /* lilac */
.bh-att-seg-p3 { background: #c44a6a; } /* coral */
.bh-att-seg-p4 { background: #4a7ab8; } /* slate-blue */

.bh-att-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-top: 0.55rem;
    font-size: 0.78rem;
    color: var(--text-body, #2c2c2c);
}
.bh-att-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    line-height: 1.3;
}
.bh-att-swatch {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    flex: 0 0 auto;
}
.bh-att-legend-label {
    font-weight: 500;
    color: var(--text-primary, #1f1f1f);
}
.bh-att-legend-meta {
    color: var(--text-secondary, #555);
    font-variant-numeric: tabular-nums;
}

/* Dark-mode: surface, border + bar background flip via tokens; swatch hues stay
   constant (they are intentionally palette-fixed so they remain identifiable
   across themes). Boost segment border contrast against the dark bar track. */
[data-theme="dark"] .bh-agreement-time-band {
    background: var(--bg-subtle, #1d1d1f);
    border-color: var(--border-default, #3a3a3d);
}
[data-theme="dark"] .bh-att-bar {
    background: var(--bg-muted, #2a2a2d);
    border-color: var(--border-default, #3a3a3d);
}
[data-theme="dark"] .bh-att-seg + .bh-att-seg {
    border-left-color: rgba(0, 0, 0, 0.35);
}
[data-theme="dark"] .bh-att-total {
    color: var(--brand-accent, #fdb913);
}

/* Plan accordion expand-panel rows (Story 1:1 lockdown 2026-05-15). */
.bh-plan-expand-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-body, #2c2c2c);
    line-height: 1.4;
}
.bh-plan-expand-line strong {
    font-weight: 600;
    margin-right: 0.25rem;
}
.bh-plan-expand-line a {
    color: var(--brand-primary, #3d1a6f);
    text-decoration: none;
    font-weight: 500;
}
.bh-plan-expand-line a:hover { text-decoration: underline; }

/* Team strip -- avatar + name + position chip cluster. */
.bh-team-strip {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.bh-team-member {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.5rem 0.15rem 0.15rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e1e1e6);
    border-radius: 999px;
    font-size: 0.8rem;
    line-height: 1.2;
    color: var(--text-body, #2c2c2c);
    max-width: 18rem;
}
.bh-team-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.bh-team-name {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 9rem;
}
.bh-team-position {
    font-size: 0.7rem;
    padding: 0.05rem 0.45rem;
}

/* Inline pencil chip riding at the end of the team strip. Sized to match other action-btn
   instances in the row; .action-btn / .action-btn-secondary supply colour + hover. */
.bh-team-edit-chip {
    margin-left: 0.25rem;
}

/* Plan accordion: single-line financial roll-up (2026-05-15 Jen pass).
   Hidden when all three of Planned/Scheduled/Actual are zero. */
.bh-plan-financials {
    font-size: 0.85rem;
    line-height: 1.5;
}
.bh-plan-fin-sep {
    color: var(--text-muted, #aaa);
    margin: 0 0.15rem;
}

/* Empty-state Add-team CTA -- single chip replacing the "Team: No team assigned yet [pencil]" three-part line. */
.bh-team-add-cta {
    font-size: 0.8rem;
}

/* Inline Team editor (2026-05-15 -- replaces mpeActivityResources modal). Mounted into a
   placeholder div inside the .card-body of each Plan accordion card by toggleInlineTeamEditor.
   One open at a time site-wide. Allocator markup is rendered inside .bh-team-editor-rows by
   BHResourceAllocator (JScript/bh-resource-allocator.js).

   2026-05-15 Jen pass: indent + brand-tinted left border + max-width on desktop so the editor
   reads as a focused sub-interaction nested inside the row, not as another full-width section.
   The slider track inherits the editor's constrained width -- on a 1400px viewport a full-width
   percentage slider was overkill; 720px gives ample resolution without the visual sprawl. */
.bh-team-editor {
    background: var(--bg-purple-tint, #f0edf5);
    border: 1px solid var(--border-default, #e1e1e6);
    border-left: 3px solid var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    padding: 0.75rem 1rem;
    margin-top: 0.5rem;
    margin-left: 1.25rem;
    max-width: 720px;
}
/* Modal-mounted variant (Edit Activity standalone editor 2026-05-16): full-width inside
   modal body, no indent, no max-width cap. */
.bh-team-editor.bh-team-editor--modal {
    margin-left: 0;
    max-width: none;
}
.bh-team-editor-title {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
}
.bh-team-editor-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}
.bh-team-editor-hours { flex: 0 0 auto; }
/* 2026-05-15 v2: split aggregate label hidden -- BHResourceAllocator renders a green badge here
   ("100% (17.5h)") which duplicates the per-slider readout. Keep the DOM element so the allocator
   doesn't error on the setText path, just don't show it. */
.bh-team-editor-split { display: none !important; }
.bh-team-editor-rows { margin-top: 0.25rem; }
.bh-team-editor-empty {
    padding: 0.5rem 0;
    font-style: italic;
}
.bh-team-editor-rows:not(:empty) + .bh-team-editor-empty { display: none; }
.bh-team-editor-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-default, #e1e1e6);
    justify-content: space-between;
}

/* Auto-save status indicator (Pending / Saving / Saved / Save failed) in the editor footer.
   Replaces the explicit Save button -- editor now auto-saves on every state change. */
.bh-team-save-status {
    font-size: 0.78rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

/* Row-header Off-plan chip (2026-05-15): aggregate signal on the accordion row when any team
   member is outside the agreement rate card. Per-row pills inside the editor still apply;
   this surfaces the signal at-rest without expanding. Amber tint, status-warning tokens,
   dark-mode safe. */
.bh-offplan-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    margin-left: 0.4rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
    border: 1px solid var(--status-warning-border, #ffeeba);
}

@media (max-width: 768px) {
    /* Mobile: full width, drop indent. Vertical stack of head row controls. */
    .bh-team-editor {
        margin-left: 0;
        max-width: none;
    }
    .bh-team-editor-head { flex-direction: column; align-items: stretch; }
    .bh-team-editor-hours { max-width: 100% !important; }
}

[data-theme="dark"] .bh-team-editor {
    background: var(--bg-muted, #1c1a22);
    border-left-color: var(--brand-primary-dark, #b794f6);
}

/* Inline-editor variance band (2026-05-15).
   Renders Allocated-vs-Planned reconciliation between the head row and the slider rows.
   Story-modal "Lead" dropdown was dropped same release -- execution reconciliation belongs
   on the execution surface (team editor), not mixed with the budgeting surface (Story modal).
   Colour-coded delta: green = on plan (+/-5%), red = over, muted grey = under. */
.bh-team-variance {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: baseline;
    padding: 0.25rem 0;
    margin-bottom: 0.25rem;
    border-bottom: 1px solid var(--border-default, #e1e1e6);
    font-size: 0.78rem;
}
.bh-team-var-cell { flex: 0 0 auto; }
.bh-team-var-ok { color: var(--status-success, #28a745); font-weight: 500; }
.bh-team-var-over { color: var(--status-danger, #dc3545); font-weight: 600; }
.bh-team-var-under { color: var(--text-muted, #6c757d); font-weight: 400; }

/* Off-plan pill -- shown next to a resource name when their PositionLevel snapshot is not
   in the Story plan's plannedPositions list. RateCard mode only; non-RateCard plans omit
   plannedPositions and the pill is suppressed (paintOffPlanPills early-return). Amber tint
   uses the shared status-warning tokens so dark-mode flips automatically via theme-tokens.css. */
.bh-team-offplan-pill {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.4rem;
    border-radius: 0.5rem;
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.3;
    vertical-align: middle;
}

/* Phase B (2026-05-15): per-row Actuals cell + "Other contributors" panel.
   Per-row cell rides at the right of the slider/value row (appended by paintRowActuals into
   the .bh-resalloc-row's inner flex container). Fixed min-width so multiple rows align
   vertically. Variance classes drive colour; status tokens flip in dark mode automatically.
   Pre-promotion: paintRowActuals suppresses the cell entirely (no DOM = no layout cost). */
.bh-team-actual-cell {
    display: inline-block;
    margin-left: 0.5rem;
    min-width: 110px;
    text-align: right;
    font-size: 0.7rem;
    line-height: 1.3;
    white-space: nowrap;
    flex-shrink: 0;
}
.bh-team-actual-on-track { color: var(--status-success, #28a745); }
.bh-team-actual-over { color: var(--status-danger, #dc3545); font-weight: 600; }
.bh-team-actual-under { color: var(--text-muted, #6c757d); }

/* Other contributors -- people who logged RetainerTime against this activity but aren't in
   BH_ActivityResources. Section sits below the slider rows + above the Add Team Member
   dropdown. Collapsed by default; toggle persists in data-bh-expanded on the host. Empty
   list -> renderOtherContributors hides the host (display:none). */
.bh-other-contributors {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--border-default, #e1e1e6);
}
.bh-other-contrib-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}
.bh-other-contrib-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    text-decoration: none !important;
    color: var(--text-body, #2c2c2c);
}
.bh-other-contrib-toggle:hover { text-decoration: none; }
.bh-other-contrib-toggle .bh-other-contrib-title { font-weight: 600; }
.bh-other-contrib-toggle .badge { font-size: 0.7rem; }
.bh-other-contrib-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 200px;
    overflow-y: auto;
    padding-right: 0.25rem;
}
.bh-other-contrib-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    background: var(--bg-surface, #ffffff);
    border: 1px solid var(--border-default, #e1e1e6);
    border-radius: 6px;
    font-size: 0.8rem;
}
.bh-other-contrib-hours {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--text-muted, #6c757d);
    white-space: nowrap;
}
.bh-other-contrib-add {
    flex-shrink: 0;
}

[data-theme="dark"] .bh-other-contributors {
    border-top-color: var(--border-default, #2a2730);
}
[data-theme="dark"] .bh-other-contrib-row {
    background: var(--bg-muted, #1c1a22);
    border-color: var(--border-default, #2a2730);
}
[data-theme="dark"] .bh-other-contrib-toggle {
    color: var(--text-body, #d4d4d4);
}

/* -----------------------------------------------------------------------------
   6. Execution Health indicators (DS section 6)
   ----------------------------------------------------------------------------- */

.bh-card-eh-ontrack { box-shadow: 0 0 0 1px var(--eh-ontrack); }
.bh-card-eh-over    { box-shadow: 0 0 0 1px var(--eh-over); }
.bh-card-eh-under   { box-shadow: 0 0 0 1px var(--eh-under); }

.bh-eh-indicator {
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.bh-eh-indicator i { font-size: 0.85em; }
.bh-card-eh-ontrack .bh-eh-indicator { color: var(--eh-ontrack); }
.bh-card-eh-over    .bh-eh-indicator { color: var(--eh-over); }
.bh-card-eh-under   .bh-eh-indicator { color: var(--eh-under); }

/* -----------------------------------------------------------------------------
   7. Resource conflict warning (DS section 7)
   ----------------------------------------------------------------------------- */

.bh-cap-cell {
    position: relative;
    padding: 0.4rem 0.5rem;
    font-size: 0.8rem;
    text-align: right;
}
.bh-cap-conflict .bh-cap-overlay {
    position: absolute;
    inset: 0;
    background: var(--conflict-overlay);
    pointer-events: none;
}
.bh-cap-conflict .bh-cap-pct {
    font-weight: 700;
    color: var(--eh-over);
}
.bh-cap-warn {
    color: var(--conflict-icon);
    margin-left: 0.25rem;
}

/* -----------------------------------------------------------------------------
   8. Capacity heatmap cell (DS section 8) -- gradient by utilisation
   ----------------------------------------------------------------------------- */

.bh-cap-pct { font-weight: 600; }
.bh-cap-hours { display: block; font-size: 0.7rem; color: var(--text-muted); }

/* 2026-05-16 Phase 1b: bucket classes now keyed by HEADROOM (hours), not utilisation %.
   Re-used class names so existing per-bucket page-local overrides keep working, but the
   numeric thresholds in JS are reversed (positive headroom = green, negative = red).
   New tight-over bucket sits between "high" (near cap) and "over" (significantly over). */
.bh-cap-bucket-low        { background: #dcedc8; }   /* plenty of headroom */
.bh-cap-bucket-mid-high   { background: #f1f8e9; }   /* moderate headroom */
.bh-cap-bucket-high       { background: #fff9c4; }   /* near cap (<20h free) */
.bh-cap-bucket-tight-over { background: #ffe0b2; }   /* mildly over (-1 to -20h) */
.bh-cap-bucket-over       { background: var(--eh-over-bg); }   /* significantly over (>20h) */

/* Ensure the cell can position internal absolute content (warn icons, overlays) */
.bh-cap-cell { position: relative; }

/* Resource has work assigned but no available capacity (leave >= gross billable).
   Distinct visual from "over capacity" -- this is a data-quality flag, not a
   pure utilisation reading. Hatched amber bg + warn icon. */
.bh-cap-no-capacity {
    background: repeating-linear-gradient(
        45deg,
        #fff3cd 0,
        #fff3cd 6px,
        #ffe69c 6px,
        #ffe69c 12px
    );
    color: #856404;
    cursor: help;
}
.bh-cap-no-capacity .bh-cap-pct { font-weight: 600; font-size: 0.72rem; }

/* Resource has work assigned but no BH_ResourceCapacitySettings row at all.
   Informational (not a warning) -- prompts admin to configure setup. Muted
   slate bg + cog icon distinguishes from the amber leave-exceeds-billable case. */
.bh-cap-not-set {
    background: #eef2f6;
    color: #495057;
    cursor: help;
    font-style: italic;
}
.bh-cap-not-set .bh-cap-pct { font-weight: 500; font-size: 0.72rem; }

/* Inline team editor capacity-not-set warning pill (bh-resource-allocator.js). */
.bh-resalloc-capwarn {
    border: 1px solid #d4d4d4;
    background: #f6f7f9 !important;
    color: #6c757d !important;
    font-size: 0.7rem;
    font-weight: 500;
    cursor: help;
    margin-left: 0.4rem;
}
.bh-resalloc-capwarn i { margin-right: 2px; opacity: 0.7; }
[data-theme="dark"] .bh-resalloc-capwarn {
    background: #2a2f37 !important;
    color: #b0b8c0 !important;
    border-color: #3a3f47;
}

[data-theme="dark"] .bh-cap-not-set {
    background: #232830;
    color: #b0b8c0;
}

[data-theme="dark"] .bh-cap-bucket-low        { background: #1e3010; }
[data-theme="dark"] .bh-cap-bucket-mid-high   { background: #1a2410; }
[data-theme="dark"] .bh-cap-bucket-high       { background: #3a3008; }
[data-theme="dark"] .bh-cap-bucket-tight-over { background: #3a2810; }
[data-theme="dark"] .bh-cap-no-capacity {
    background: repeating-linear-gradient(
        45deg,
        #3a2810 0,
        #3a2810 6px,
        #4a3415 6px,
        #4a3415 12px
    );
    color: #f0c674;
}

/* -----------------------------------------------------------------------------
   9. LSE Legacy badge (DS section 9)
   ----------------------------------------------------------------------------- */

.bh-legacy-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.45rem;
    font-size: 0.7rem;
    font-weight: 600;
    background: var(--legacy-bg);
    color: var(--legacy-fg);
    border: 1px solid var(--legacy-border);
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.bh-legacy-badge i { font-size: 0.85em; }

/* -----------------------------------------------------------------------------
   10. Activity card (DS section 10)
   ----------------------------------------------------------------------------- */

.bh-act-card {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    transition: box-shadow 0.15s ease;
}
.bh-act-card-header {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}
.bh-act-card-title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-primary);
}
.bh-act-card-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
}
.bh-act-hours { color: var(--text-body); }
.bh-act-progress {
    flex: 1 1 auto;
    height: 4px;
    border-radius: 2px;
    appearance: none;
}
.bh-act-progress::-webkit-progress-bar { background: var(--bg-muted); border-radius: 2px; }
.bh-act-progress::-webkit-progress-value { background: var(--brand-accent); border-radius: 2px; }
.bh-act-card-context {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 0.4rem;
}
.bh-act-card-context > span + span::before {
    content: " \00B7 ";
    margin: 0 0.2rem;
}
.bh-act-card-resources {
    display: flex;
    gap: 0.2rem;
    margin-bottom: 0.6rem;
}
.bh-avatar {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--brand-purple-tint);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    border: 1px solid var(--bg-surface);
}
.bh-avatar-overflow {
    background: var(--bg-muted);
    color: var(--text-muted);
}
.bh-act-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.bh-act-card-kebab {
    color: var(--text-muted);
    border: none;
    background: transparent;
    padding: 0.25rem 0.5rem;
}
.bh-act-card-kebab:hover { color: var(--brand-primary); }

/* -----------------------------------------------------------------------------
   11. Lane / column / tab heading typography (DS section 11)
   ----------------------------------------------------------------------------- */

.bh-lane-header {
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary);
    padding: 0.5rem 0.75rem;
    border-bottom: 2px solid var(--border-default);
}
.bh-lane-count {
    background: var(--brand-primary);
    color: #ffffff;
    border-radius: 10px;
    padding: 0.05rem 0.45rem;
    font-size: 0.7rem;
    margin-left: 0.4rem;
}

/* -----------------------------------------------------------------------------
   12. Empty state (DS section 12)
   ----------------------------------------------------------------------------- */

.bh-empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--text-muted);
    width: 100%;
}
.bh-empty-state > * { text-align: center; }
.bh-empty-icon {
    font-size: 3rem;
    color: var(--brand-primary);
    opacity: 0.3;
    margin: 0 auto 1rem;
    display: block;
    text-align: center; /* glyph self-centres within the block; fixes off-centre FA icon */
    width: 100%;
}
.bh-empty-title {
    color: var(--text-body);
    margin: 0 auto 0.5rem;
    text-align: center;
}
.bh-empty-body {
    margin: 0 auto 1.5rem;
    max-width: 32rem;
    text-align: center;
    display: block;
}

/* -----------------------------------------------------------------------------
   13. Click-through affordances (DS section 13)
   ----------------------------------------------------------------------------- */

.bh-clickable {
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.bh-clickable:hover {
    box-shadow: 0 4px 12px rgba(61, 26, 111, 0.12);
}
.bh-clickable:focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 2px;
}
[data-theme="dark"] .bh-clickable:hover {
    box-shadow: 0 4px 12px rgba(124, 63, 198, 0.3);
}

/* -----------------------------------------------------------------------------
   16. Mobile patterns (DS section 16)
   ----------------------------------------------------------------------------- */

@media (max-width: 990px) {
    /* Schedule view -> per-resource accordion */
    .bh-sched-mobile-resource summary {
        padding: 0.75rem 1rem;
        cursor: pointer;
        background: var(--bg-subtle);
        border-radius: 8px 8px 0 0;
        font-weight: 600;
        list-style: none;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    .bh-sched-mobile-resource summary::-webkit-details-marker { display: none; }
    .bh-sched-mobile-blocks {
        list-style: none;
        padding: 0.5rem;
        margin: 0;
        background: var(--bg-surface);
        border-radius: 0 0 8px 8px;
        border: 1px solid var(--border-default);
        border-top: none;
    }
    .bh-sched-mobile-blocks li { margin-bottom: 0.4rem; }

    /* Capacity heatmap -> vertical list */
    .bh-cap-mobile-list {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    .bh-cap-mobile-list > li {
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--border-default);
    }
    .bh-cap-mobile-months {
        list-style: none;
        padding: 0.4rem 0 0 0.5rem;
        margin: 0;
        font-size: 0.85rem;
        color: var(--text-body);
    }
    .bh-cap-mobile-months li { padding: 0.15rem 0; }

    /* AM kanban -> single-lane selector */
    .bh-am-mobile-lane-select {
        display: block;
        width: 100%;
        padding: 0.6rem;
        font-size: 0.95rem;
        margin-bottom: 1rem;
    }
}

@media (max-width: 768px) {
    /* Touch target enforcement */
    .bh-act-card-kebab,
    .bh-layer-toggle {
        min-width: 44px;
        min-height: 44px;
    }
    /* Engagement detail tabs -> horizontal-scroll */
    .bh-eng-tabs {
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    .bh-eng-tabs .nav-link {
        white-space: nowrap;
        flex-shrink: 0;
    }
}

/* -----------------------------------------------------------------------------
   EH Overview tab (Phase 7) -- capacity mini, at-risk list, trend
   Spec: .claude/buzzscribed/engagement-design-system-2026-05-10.md sec 12
   KPI tiles migrated 2026-05-14 to canonical .bh-kpi (BUZZHub.css) -- legacy
   .ra-overview-tile / .ra-tile-* removed.
   ----------------------------------------------------------------------------- */

/* Capacity mini -- compact heatmap table.
   table-layout:fixed + explicit col widths so month cells fill their column
   (auto-layout collapses dash-only "-" cells and crams the populated cells
   into a narrow strip on the left). Resource col 25%, each month 25%.
   .mytooltip on the td forces display:inline-block via Content/mySite.css --
   re-assert display:table-cell so the column widths and table layout hold. */
.bh-overview-cap-mini { overflow-x: auto; }
.bh-overview-cap-table {
    margin-bottom: 0;
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 8px 3px;
}
.bh-overview-cap-table th, .bh-overview-cap-table td { border: 0 !important; }
.bh-overview-cap-table th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--brand-primary); }
.bh-overview-cap-table th:first-child,
.bh-overview-cap-table td:first-child { width: 25%; }
.bh-overview-cap-table th:not(:first-child),
.bh-overview-cap-table td:not(:first-child) { width: 25%; }
.bh-overview-cap-table td.mytooltip,
.bh-overview-cap-table .bh-cap-cell { display: table-cell !important; }
.bh-overview-cap-resource {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.85rem;
}
.bh-overview-cap-table .bh-cap-cell { padding: 0.4rem 0.6rem; text-align: center; vertical-align: middle; height: 56px; }
/* Empty/dash cell -- keep row tall and visually quiet. */
.bh-overview-cap-table .bh-cap-cell:not(.bh-cap-bar-cell):not(.bh-cap-state-cell):not(.bh-cap-not-set):not(.bh-cap-no-capacity) {
    color: var(--text-muted, #adb5bd);
    font-size: 1.1rem;
    font-weight: 600;
}
/* Special-state cell (capacity not set / leave > billable) -- shared shell. */
.bh-cap-state-cell { padding: 4px !important; }
.bh-cap-state-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 100%;
}
.bh-cap-state-icon { font-size: 0.85rem; opacity: 0.8; }
.bh-cap-state-value { font-weight: 700; font-size: 0.8rem; font-variant-numeric: tabular-nums; }
.bh-cap-state-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
    opacity: 0.85;
}

/* Bar-as-cell labelled (2026-05-18 Jen redesign -- Option 9).
   The cell itself is the stacked bar. Segments fill cell height and proportional
   width; headroom number floats on a white chip near the top so the column reads
   at a glance. Replaces the bucket-bg + mini-bar + chip-row stack. */
.bh-overview-cap-table .bh-cap-bar-cell {
    padding: 0 !important;
    height: 56px;
    background: #fff;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px var(--border-light, #e9ecef);
}
/* Stage G (2026-05-18): the segment stack now lives in the middle band so the
   top strip (cumulative/quarterly bar) + bottom strip (delta footer) have
   dedicated space. Without this the stack-bar overlaps the strips. */
.bh-overview-cap-table .bh-cap-bar-cell .bh-cap-stack {
    position: absolute;
    top: 6px;
    bottom: 12px;
    left: 0;
    right: 0;
}
.bh-cap-h-overlay {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    font-size: 0.78rem;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.94);
    padding: 1px 7px;
    border-radius: 3px;
    color: #212529;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
    pointer-events: none;
    line-height: 1.2;
}
.bh-cap-h-ok         .bh-cap-h-overlay { color: #2e7d32; }
.bh-cap-h-near       .bh-cap-h-overlay { color: #b88600; }
.bh-cap-h-tight-over .bh-cap-h-overlay { color: #d84315; }
.bh-cap-h-over       .bh-cap-h-overlay { color: #b71c1c; }
.bh-cap-stack {
    display: flex;
    width: 100%;
    height: 100%;
}
.bh-cap-seg {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    font-weight: 700;
    color: #fff;
    font-variant-numeric: tabular-nums;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    letter-spacing: 0.01em;
}
.bh-cap-seg-c        { background: #3d1a6f; }                  /* Committed */
.bh-cap-seg-f        { background: #a76bdf; }                  /* Forecast */
.bh-cap-seg-l        { background: #ed174c; color: #fff; }     /* Personal leave */
.bh-cap-seg-h        { background: #fdb913; color: #3d1a6f; }  /* Holiday */
/* Free: sage tint ("your remaining time, good") -- visually distinct from
   the muted hatched .bh-cap-seg-beyond so you can tell at a glance whether
   a row has real headroom or is just a part-timer with shorter gross. */
.bh-cap-seg-headroom {
    background: linear-gradient(to right, #eef7ef, #dfeee2);
    color: #2e7d32;
    font-weight: 600;
    font-size: 0.58rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
/* Beyond-capacity trailing segment for part-timers: the gap between this
   resource's gross hours and the global max gross. Muted hatch -- "not your
   capacity" -- so the cell still fills full width but the boundary is clear. */
.bh-cap-seg-beyond {
    background: repeating-linear-gradient(
        45deg,
        rgba(0, 0, 0, 0.025),
        rgba(0, 0, 0, 0.025) 4px,
        rgba(0, 0, 0, 0.055) 4px,
        rgba(0, 0, 0, 0.055) 8px
    );
}
.bh-cap-seg-c.over {
    background: repeating-linear-gradient(
        45deg,
        #c62828,
        #c62828 8px,
        #9a1f1f 8px,
        #9a1f1f 16px
    );
    color: #fff;
}
[data-theme="dark"] .bh-overview-cap-table .bh-cap-bar-cell {
    background: #1a1226;
    border-color: #2d1f3f;
}
[data-theme="dark"] .bh-cap-h-overlay {
    background: rgba(40, 25, 60, 0.94);
    color: #f1ecf8;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .bh-cap-h-ok         .bh-cap-h-overlay { color: #81c784; }
[data-theme="dark"] .bh-cap-h-near       .bh-cap-h-overlay { color: #ffb74d; }
[data-theme="dark"] .bh-cap-h-tight-over .bh-cap-h-overlay { color: #ff8a65; }
[data-theme="dark"] .bh-cap-h-over       .bh-cap-h-overlay { color: #ef5350; }
[data-theme="dark"] .bh-cap-seg-c        { background: #6a3aa0; }
[data-theme="dark"] .bh-cap-seg-f        { background: #a76bdf; }
[data-theme="dark"] .bh-cap-seg-h        { background: #d4a824; color: #1a0f2e; }
[data-theme="dark"] .bh-cap-seg-headroom {
    background: linear-gradient(to right, rgba(76, 175, 80, 0.10), rgba(76, 175, 80, 0.18));
    color: #81c784;
}
[data-theme="dark"] .bh-cap-seg-beyond {
    background: repeating-linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.03),
        rgba(255, 255, 255, 0.03) 4px,
        rgba(255, 255, 255, 0.08) 4px,
        rgba(255, 255, 255, 0.08) 8px
    );
}
[data-theme="dark"] .bh-cap-seg-c.over {
    background: repeating-linear-gradient(
        45deg,
        #d32f2f,
        #d32f2f 8px,
        #a01818 8px,
        #a01818 16px
    );
}

/* Capacity heatmap legend strip (below the chart). */
.bh-cap-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 12px;
    padding: 10px 14px;
    background: var(--bg-slate-tint, #f5f5f7);
    border-radius: 6px;
    border: 1px solid var(--border-light, #e9ecef);
    font-size: 0.75rem;
    color: var(--text-muted, #6c757d);
}
.bh-cap-legend-title {
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.7rem;
}
.bh-cap-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 500;
}
.bh-cap-legend-swatch {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    flex-shrink: 0;
}
.bh-cap-legend-swatch.swatch-headroom {
    background: linear-gradient(to right, #eef7ef, #dfeee2);
    border: 1px solid #c8e0cc;
}
.bh-cap-legend-swatch.swatch-over {
    background: repeating-linear-gradient(
        45deg,
        #c62828,
        #c62828 4px,
        #9a1f1f 4px,
        #9a1f1f 8px
    );
}
.bh-cap-legend-swatch.swatch-beyond {
    background: repeating-linear-gradient(
        45deg,
        rgba(0, 0, 0, 0.03),
        rgba(0, 0, 0, 0.03) 4px,
        rgba(0, 0, 0, 0.08) 4px,
        rgba(0, 0, 0, 0.08) 8px
    );
    border: 1px solid var(--border-light, #e9ecef);
}
.bh-cap-legend-sep {
    width: 1px;
    align-self: stretch;
    background: var(--border-light, #e9ecef);
    margin: 0 4px;
}
.bh-cap-legend-hint {
    color: var(--text-muted, #6c757d);
    font-style: italic;
    margin-left: auto;
}
.bh-cap-overlay-note {
    margin: 8px 0 0 0;
    padding: 8px 12px;
    font-size: 0.82rem;
    line-height: 1.4;
    color: var(--text-muted, #6c757d);
    background: var(--card-subtle-bg, rgba(0, 0, 0, 0.02));
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 0 4px 4px 0;
}
.bh-cap-overlay-note strong {
    color: var(--text-primary, #212529);
    font-weight: 600;
}
.bh-cap-overlay-note .fa-info-circle {
    color: var(--brand-accent, #fdb913);
}
[data-theme="dark"] .bh-cap-overlay-note {
    background: rgba(255, 255, 255, 0.03);
    color: rgba(255, 255, 255, 0.65);
}
[data-theme="dark"] .bh-cap-overlay-note strong {
    color: rgba(255, 255, 255, 0.95);
}
[data-theme="dark"] .bh-cap-legend {
    background: rgba(255, 255, 255, 0.03);
    border-color: #2d1f3f;
}
[data-theme="dark"] .bh-cap-legend-swatch.swatch-headroom {
    background: linear-gradient(to right, rgba(76, 175, 80, 0.10), rgba(76, 175, 80, 0.18));
    border-color: rgba(76, 175, 80, 0.35);
}

/* ----------------------------------------------------------------------------
   EH Overview -- phone fixes (<=768px).
   The laptop-aware compact strip (section 0) is HEIGHT-based, so on a phone it
   forces the KPI row to a single non-wrapping strip -- 7 tiles then cram and
   clip. Override on WIDTH to a 2-up wrapped grid (scoped to the Overview tab),
   and give the fixed-layout capacity heatmap a floor width so the headroom chip
   stops colliding with the segment labels (the wrapper scrolls horizontally).
   ---------------------------------------------------------------------------- */
@media (max-width: 768px) {
    #overviewContent .bh-kpi-row {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0;
    }
    #overviewContent .bh-kpi-row .bh-kpi {
        flex: 1 1 calc(50% - 0.5rem);
        min-width: calc(50% - 0.5rem);
        flex-direction: column;
        align-items: flex-start;
        gap: 0.1rem;
        padding: 0.6rem 0.75rem;
    }
    #overviewContent .bh-kpi-row .bh-kpi-value { font-size: 1.4rem; line-height: 1.1; }
    #overviewContent .bh-kpi-row .bh-kpi-label { font-size: 0.72rem; line-height: 1.2; white-space: normal; }

    .bh-overview-cap-table { min-width: 600px; }
}

/* ============================================================================
   Capacity heatmap per-retainer-type overlays (Stage G, 2026-05-18)
   - Target line:      vertical (cells render rotated -- segments are horizontal,
                       so the "commitment" target marker is a vertical line at
                       the X-axis position corresponding to MonthlyTarget /
                       globalDenom%). White semi-transparent with brand purple
                       border so it sits on top of segments without obscuring.
   - Quarterly bar:    thin band along the top edge of the cell. Visible on
                       Tiered (Flex-Hours) cells only. Width-fill = quarter
                       cumulative / quarterly cap (clamped to 100%).
   - Cumulative bar:   same shape as quarterly but rendered with a different
                       hue (slate-blue) and only for Amortised + Project cells.
                       Fill width = cumulative burn / contract total.
   - Rest overlay:     Bi-Monthly off-month -- diagonal hatched background +
                       "Rest cycle" centred text.
   - Contract-end:     small flag marker top-right corner of the cell whose
                       monthKey matches RetainerStartDate + RetainerMonths.
   - Footer:           tiny text strip below the segments, type-specific.
   ============================================================================ */
.bh-cap-target-line {
    position: absolute;
    top: 12%;
    bottom: 22%;
    width: 2px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 0 1px #3d1a6f, 0 0 6px rgba(61, 26, 111, 0.35);
    z-index: 4;
    pointer-events: none;
    border-radius: 1px;
}
.bh-cap-quarterly-bar,
.bh-cap-cumulative-bar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: rgba(0, 0, 0, 0.08);
    overflow: hidden;
    z-index: 3;
    pointer-events: none;
}
.bh-cap-qbar-fill,
.bh-cap-cumbar-fill {
    display: block;
    height: 100%;
    transition: width 0.25s ease;
}
.bh-cap-quarterly-bar .bh-cap-qbar-fill { background: #2196f3; }
.bh-cap-quarterly-bar.bh-cap-qbar-warn .bh-cap-qbar-fill { background: #ff9800; }
.bh-cap-quarterly-bar.bh-cap-qbar-over .bh-cap-qbar-fill { background: #c62828; }
.bh-cap-cumulative-bar .bh-cap-cumbar-fill { background: #455a64; }
.bh-cap-cumulative-bar.bh-cap-cumbar-warn .bh-cap-cumbar-fill { background: #ef6c00; }
.bh-cap-cumulative-bar.bh-cap-cumbar-over .bh-cap-cumbar-fill { background: #b71c1c; }

/* Cell footer -- delta vs target / cycle / burn. Small text strip below the bar. */
.bh-cap-footer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1px;
    font-size: 0.58rem;
    line-height: 1;
    text-align: center;
    color: var(--text-muted, #6c757d);
    background: rgba(255, 255, 255, 0.85);
    padding: 1px 2px;
    z-index: 4;
    font-variant-numeric: tabular-nums;
    pointer-events: none;
    letter-spacing: -0.01em;
}
.bh-cap-footer.bh-cap-delta-ok    { color: #455a64; }
.bh-cap-footer.bh-cap-delta-over  { color: #c62828; font-weight: 600; }
.bh-cap-footer.bh-cap-delta-under { color: #b88600; }
.bh-cap-footer.bh-cap-footer-muted { color: var(--text-muted, #6c757d); font-style: italic; }

/* Bi-Monthly rest cell -- diagonal hatch + centred reminder text. */
.bh-cap-bar-cell.bh-cap-rest-cell {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(168, 178, 200, 0.10),
            rgba(168, 178, 200, 0.10) 8px,
            rgba(168, 178, 200, 0.22) 8px,
            rgba(168, 178, 200, 0.22) 16px
        ),
        #f6f5fb;
}
.bh-cap-rest-overlay {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    font-size: 0.68rem;
    font-weight: 600;
    color: #5a4f7c;
    background: rgba(255, 255, 255, 0.92);
    padding: 2px 8px;
    border-radius: 3px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    pointer-events: none;
    white-space: nowrap;
}
.bh-cap-rest-cell .bh-cap-h-overlay,
.bh-cap-rest-cell .bh-cap-stack { opacity: 0.35; }

/* Amortised contract-end marker -- top-right corner. */
.bh-cap-contract-end-marker {
    position: absolute;
    top: 6px;
    right: 4px;
    z-index: 5;
    color: #455a64;
    font-size: 0.65rem;
    background: rgba(255, 255, 255, 0.92);
    padding: 1px 4px;
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    pointer-events: none;
}

/* Legend swatches for the new overlay categories. */
.bh-cap-legend-swatch.swatch-target-line {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #3d1a6f;
    position: relative;
}
.bh-cap-legend-swatch.swatch-target-line::after {
    content: "";
    position: absolute;
    top: 1px; bottom: 1px;
    left: 50%;
    width: 2px;
    margin-left: -1px;
    background: #3d1a6f;
}
.bh-cap-legend-swatch.swatch-qbar {
    background: linear-gradient(to right, #2196f3 60%, rgba(33, 150, 243, 0.18) 60%);
    border: 1px solid #1976d2;
}
.bh-cap-legend-swatch.swatch-cumbar {
    background: linear-gradient(to right, #455a64 60%, rgba(69, 90, 100, 0.18) 60%);
    border: 1px solid #37474f;
}
.bh-cap-legend-swatch.swatch-rest {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(168, 178, 200, 0.30),
            rgba(168, 178, 200, 0.30) 3px,
            rgba(168, 178, 200, 0.55) 3px,
            rgba(168, 178, 200, 0.55) 6px
        );
    border: 1px solid #b8c0d4;
}

/* Rebalance modal "top contributor" badge -- dominant-BF row. */
.bh-rb-activity-tag.dominant {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffd54f;
}

/* Dark-mode overrides. */
[data-theme="dark"] .bh-cap-target-line {
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0 0 0 1px #a76bdf, 0 0 6px rgba(167, 107, 223, 0.45);
}
[data-theme="dark"] .bh-cap-quarterly-bar,
[data-theme="dark"] .bh-cap-cumulative-bar {
    background: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .bh-cap-quarterly-bar .bh-cap-qbar-fill { background: #64b5f6; }
[data-theme="dark"] .bh-cap-quarterly-bar.bh-cap-qbar-warn .bh-cap-qbar-fill { background: #ffb74d; }
[data-theme="dark"] .bh-cap-quarterly-bar.bh-cap-qbar-over .bh-cap-qbar-fill { background: #ef5350; }
[data-theme="dark"] .bh-cap-cumulative-bar .bh-cap-cumbar-fill { background: #90a4ae; }
[data-theme="dark"] .bh-cap-cumulative-bar.bh-cap-cumbar-warn .bh-cap-cumbar-fill { background: #ffa726; }
[data-theme="dark"] .bh-cap-cumulative-bar.bh-cap-cumbar-over .bh-cap-cumbar-fill { background: #ef5350; }
[data-theme="dark"] .bh-cap-footer {
    background: rgba(26, 18, 38, 0.85);
    color: #c9c4d8;
}
[data-theme="dark"] .bh-cap-footer.bh-cap-delta-ok    { color: #90a4ae; }
[data-theme="dark"] .bh-cap-footer.bh-cap-delta-over  { color: #ef5350; }
[data-theme="dark"] .bh-cap-footer.bh-cap-delta-under { color: #ffb74d; }
[data-theme="dark"] .bh-cap-bar-cell.bh-cap-rest-cell {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(168, 178, 200, 0.05),
            rgba(168, 178, 200, 0.05) 8px,
            rgba(168, 178, 200, 0.12) 8px,
            rgba(168, 178, 200, 0.12) 16px
        ),
        #1a1226;
}
[data-theme="dark"] .bh-cap-rest-overlay {
    background: rgba(40, 25, 60, 0.92);
    color: #c9c4d8;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .bh-cap-contract-end-marker {
    background: rgba(40, 25, 60, 0.92);
    color: #c9c4d8;
}
[data-theme="dark"] .bh-cap-legend-swatch.swatch-target-line {
    background: rgba(255, 255, 255, 0.85);
    border-color: #a76bdf;
}
[data-theme="dark"] .bh-cap-legend-swatch.swatch-target-line::after { background: #a76bdf; }
[data-theme="dark"] .bh-rb-activity-tag.dominant {
    background: rgba(255, 213, 79, 0.18);
    color: #ffd54f;
    border-color: rgba(255, 213, 79, 0.45);
}

/* Engagement Budget Risk list -- stacked name-top / chip-right / bar-bottom
   layout. The bar visualises % of budget consumed against a 100% midpoint marker
   so over/under reads at a glance distinct from Story Delivery Risk's table. */
.bh-risk-list {
    list-style: none;
    padding: 0;
    margin: 0;
    max-height: 320px;
    overflow-y: auto;
}
.bh-risk-item {
    display: block;
    padding: 0.65rem 0.8rem;
    border-bottom: 1px solid var(--border-light);
    cursor: pointer;
    transition: background 0.15s ease;
}
.bh-risk-item:last-child { border-bottom: none; }
.bh-risk-item:hover { background: var(--bg-subtle); }
.bh-risk-item:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: -3px; background: var(--bg-subtle); }
.bh-risk-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.bh-risk-name { font-weight: 600; font-size: 0.9rem; color: var(--text-primary); }
.bh-risk-client { color: var(--text-muted); font-size: 0.75rem; margin-top: 1px; }
.bh-risk-health {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.bh-risk-health.eh-over  { background: var(--eh-over-bg);  color: var(--eh-over); }
.bh-risk-health.eh-under { background: var(--eh-under-bg); color: var(--eh-under); }
.bh-risk-bar {
    position: relative;
    height: 8px;
    background: var(--bg-subtle, #f0f0f0);
    border-radius: 4px;
    margin-top: 6px;
    overflow: hidden;
}
.bh-risk-bar-fill {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    border-radius: 4px;
    transition: width 0.3s ease;
}
.bh-risk-bar-fill.over  { background: linear-gradient(90deg, #f8a8aa, #c62828); }
.bh-risk-bar-fill.under { background: linear-gradient(90deg, #ffe4a8, #b88600); }
/* 100% marker line at the midpoint of the bar (0-200% range). */
.bh-risk-bar-mark {
    position: absolute;
    top: -2px; bottom: -2px;
    left: 50%;
    width: 2px;
    background: var(--brand-primary, #3d1a6f);
    opacity: 0.55;
}
[data-theme="dark"] .bh-risk-bar { background: rgba(255,255,255,0.06); }
[data-theme="dark"] .bh-risk-bar-fill.over  { background: linear-gradient(90deg, #4a1818, #d32f2f); }
[data-theme="dark"] .bh-risk-bar-fill.under { background: linear-gradient(90deg, #3a2a08, #d4a824); }
[data-theme="dark"] .bh-risk-bar-mark { background: #b890e8; opacity: 0.6; }

/* -----------------------------------------------------------------------------
   Renewal Due drill-in (EH Overview)
   PCM Qty-remaining signal. Reuses the risk-list visual language -- subtle
   hover, chip on the right showing months left (red 0, amber 1-2).
   ----------------------------------------------------------------------------- */
.bh-renewal-due-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bh-renewal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.4rem;
    border-bottom: 1px solid var(--border-light);
    cursor: pointer;
    transition: background 0.15s ease;
}
.bh-renewal-row:last-child { border-bottom: none; }
.bh-renewal-row:hover { background: var(--bg-subtle); }
.bh-renewal-row:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: -3px; background: var(--bg-subtle); }
.bh-renewal-row-main { flex: 1 1 auto; min-width: 0; }
.bh-renewal-row-name { font-weight: 600; font-size: 0.9rem; color: var(--text-primary); }
.bh-renewal-row-client { color: var(--text-muted); font-size: 0.78rem; margin-top: 1px; }
.bh-renewal-row-desc { margin-top: 2px; }
.bh-renewal-chip {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25rem 0.6rem;
    border-radius: 12px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.bh-renewal-chip-red          { background: var(--eh-over-bg, #fde6e6);  color: var(--eh-over, #c62828); }
.bh-renewal-chip-amber        { background: var(--eh-under-bg, #fff4d4); color: var(--eh-under, #b88600); }
.bh-renewal-chip-amber-muted  { background: var(--bg-subtle, #f1efe9);   color: var(--text-primary, #4a3a08); }

/* 2026-05-18 Item F: inline Renewal Due widget on EH Overview (col-lg-4
   sibling of 6-Month Trend chart). Slimmer rows than the drill-in modal --
   short chip labels ("0 left" / "1 mo" / "N mo") and no separate
   description line so 6 rows fit beside the chart. */
.bh-overview-renewal-list {
    display: flex;
    flex-direction: column;
}
.bh-overview-renewal-rows {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bh-overview-renewal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.5rem 0.4rem;
    border-bottom: 1px solid var(--border-light);
    cursor: pointer;
    transition: background 0.15s ease;
}
.bh-overview-renewal-row:last-child { border-bottom: none; }
.bh-overview-renewal-row:hover { background: var(--bg-subtle); }
.bh-overview-renewal-row:focus-visible { outline: 2px solid var(--brand-accent); outline-offset: -2px; background: var(--bg-subtle); }
.bh-overview-renewal-row-text { flex: 1 1 auto; min-width: 0; }
.bh-overview-renewal-row-name {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bh-overview-renewal-row-client {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bh-overview-renewal-card { display: flex; flex-direction: column; }
.bh-overview-renewal-card .profile-card-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.bh-empty-state--inline { padding: 1.5rem 0.5rem; text-align: center; }
.bh-empty-state--inline .bh-empty-title { font-size: 0.95rem; margin-top: 0.5rem; }
.bh-empty-state--inline .bh-empty-body { font-size: 0.8rem; }
[data-theme="dark"] .bh-overview-renewal-row:hover { background: var(--bg-muted, #2a2438); }

/* Mobile breakpoint */
@media (max-width: 990px) {
    .bh-risk-list { max-height: none; }
}

/* Paired Retainer Risk + Activity Risk cards (EH Overview 2-col).
   Both cards constrained to a viewport-aware shared height so neither panel
   dominates -- inner scroller fills the body and scrolls past the cap.
   60vh gives ~580px on a 1080p viewport (roughly Capacity-heatmap height
   above); min/max bound it so it stays useful on small + large screens.
   h-100 in markup is now redundant but harmless. */
.bh-overview-risk-card {
    height: 60vh;
    min-height: 420px;
    max-height: 640px;
    display: flex;
    flex-direction: column;
}
.bh-overview-risk-card .profile-card-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.bh-overview-risk-card #overviewAtRiskList,
.bh-overview-risk-card #overviewKpiTriageBody {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}
/* The standalone .bh-risk-list cap (320px) was sized for the old full-width
   layout. Inside a paired card the parent already constrains height; unset
   the cap so the list grows to fill. */
.bh-overview-risk-card .bh-risk-list { max-height: none; }
/* .table-responsive introduces its own scroller; collapse it so
   #overviewKpiTriageBody is the single scroll context in the flex chain. */
.bh-overview-risk-card .table-responsive { overflow: visible; }

@media (max-width: 767px) {
    /* Stacked layout below md -- restore a sensible cap so neither panel
       eats the full viewport. */
    .bh-overview-risk-card #overviewAtRiskList,
    .bh-overview-risk-card #overviewKpiTriageBody { max-height: 480px; }
    .bh-overview-risk-card .bh-risk-list { max-height: 480px; }
}

/* -----------------------------------------------------------------------------
   DP Schedule Grid (Phase 5b) -- time x resource heatmap
   Spec: .claude/buzzscribed/engagement-design-system-2026-05-10.md sec 4
   ----------------------------------------------------------------------------- */

/* Schedule panel + sub-toolbar (DS section 4a)
   The sub-toolbar is an attached header above the grid -- shared border so the
   two read as a single unit. Visually distinct from page-level filters above. */
.bh-sched-panel {
    border: 1px solid var(--border-default);
    border-radius: 8px;
    background: var(--bg-surface);
    /* Top gap separates the KPI tile row from the toolbar panel so they read as
       two distinct zones (Jen 2026-05-27). */
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    overflow: hidden;
}
.bh-sched-subtoolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    /* row-gap keeps wrapped clusters breathing; the wider column-gap separates
       the Layers group from the right-hand control cluster (Jen 2026-05-27 --
       toolbar read as claustrophobic at 0.75rem). */
    gap: 0.65rem 1.5rem;
    padding: 0.7rem 1.1rem;
    background: var(--bg-subtle, #f8f9fa);
    border-bottom: 1px solid var(--border-default);
}
.bh-sched-subtoolbar-group {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
}
.bh-sched-subtoolbar-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6c757d);
    font-weight: 600;
    margin: 0;
}
.bh-sched-subtoolbar-select {
    width: auto;
    height: 28px;
    padding: 0 0.5rem;
    font-size: 0.8rem;
}

/* ----------------------------------------------------------------------------
   bh-multifilter -- generic select/deselect picker with a checkbox popover.
   Used by the EH Schedule Filters bar (Agreement / Client + Team Member). The
   trigger mimics a form-control so it lines up with sibling inputs; the popover
   anchors below it. Tokens flip for dark mode automatically.
   ---------------------------------------------------------------------------- */
.bh-multifilter {
    position: relative;
}
.bh-multifilter-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    cursor: pointer;
}
.bh-multifilter-trigger .bh-multifilter-summary {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-multifilter-caret {
    font-size: 0.7rem;
    color: var(--text-muted, #6c757d);
    flex: 0 0 auto;
}
.bh-multifilter.is-filtered .bh-multifilter-trigger {
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
}
.bh-multifilter-pop {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 1035; /* above grid internals (max z:99); below the wizard overlay (z:9000) */
    min-width: 240px;
    max-height: 320px;
    display: flex;
    flex-direction: column;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}
.bh-multifilter-pop[hidden] { display: none; }
.bh-multifilter-pop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    border-bottom: 1px solid var(--border-default, #dee2e6);
    background: var(--bg-subtle, #f8f9fa);
}
.bh-multifilter-pop-title {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
    color: var(--text-muted, #6c757d);
}
.bh-multifilter-pop-actions { display: flex; gap: 0.15rem; }
.bh-multifilter-pop-actions .btn {
    padding: 0 0.35rem;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.bh-multifilter-search {
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--border-default, #dee2e6);
}
.bh-multifilter-list {
    overflow-y: auto;
    padding: 0.3rem 0.25rem;
}
.bh-multifilter-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.32rem 0.5rem;
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--text-body, #333);
    cursor: pointer;
}
.bh-multifilter-item:hover { background: var(--bg-gold-tint, #fff8e6); }
.bh-multifilter-item input { margin: 0; cursor: pointer; flex: 0 0 auto; }
.bh-multifilter-item-text { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.bh-multifilter-sub { color: var(--text-muted, #6c757d); font-size: 0.72rem; }
.bh-multifilter-empty {
    padding: 0.85rem;
    font-size: 0.82rem;
    text-align: center;
    color: var(--text-muted, #6c757d);
}

/* ----------------------------------------------------------------------------
   Schedule subtoolbar -- one control baseline (Jen 2026-05-25). The Layers /
   Navigate / Zoom / Group-by / Show clusters previously rendered at 4 different
   heights (38 / 34 / 31 / 26 / 24px); normalise every interactive control to a
   single ~30px line so the row reads as one cohesive toolbar.
   ---------------------------------------------------------------------------- */
.bh-sched-subtoolbar .btn,
.bh-sched-subtoolbar .bh-sched-subtoolbar-select,
.bh-sched-subtoolbar .bh-layer-toggles,
.bh-sched-subtoolbar .bh-duration-chip-group,
.bh-sched-subtoolbar .bh-multifilter-trigger {
    height: 30px;
    box-sizing: border-box;
}
/* Team Member picker relocated into the toolbar (2026-05-26): fixed footprint so
   the trigger reads as a compact control, not a stretched form field. */
.bh-sched-subtoolbar .bh-multifilter { width: 190px; }
.bh-sched-subtoolbar .bh-multifilter-trigger {
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.8rem;
}
/* Picker sits at the right end of the toolbar (right of Primary only): anchor its
   popover to the right edge so the wider list never clips off-screen. */
.bh-sched-subtoolbar .bh-multifilter-pop { left: auto; right: 0; }
.bh-sched-subtoolbar .btn {
    display: inline-flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.8rem;
}
.bh-sched-subtoolbar .bh-layer-toggles { padding: 0.18rem; }
.bh-sched-subtoolbar .bh-layer-toggle { height: 24px; }
.bh-sched-subtoolbar .bh-duration-chip {
    height: 24px;
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
}

.bh-sched-grid-wrap {
    overflow-x: scroll;
    background: var(--bg-surface);
    cursor: grab;
    position: relative;
    -webkit-user-select: none;
    user-select: none;
    overscroll-behavior-x: contain;
    /* Always show the horizontal scrollbar so the affordance is discoverable
       even when content happens to fit. Pre-load logic also ensures the table
       overflows on initial render so the bar is functional from the start. */
    scrollbar-width: thin;
}
.bh-sched-grid-wrap::-webkit-scrollbar {
    height: 10px;
}
.bh-sched-grid-wrap::-webkit-scrollbar-thumb {
    background: var(--brand-primary, #3d1a6f);
    border-radius: 5px;
    opacity: 0.6;
}
.bh-sched-grid-wrap::-webkit-scrollbar-track {
    background: var(--bg-muted, #f1eef6);
}
.bh-sched-grid-wrap.is-panning {
    cursor: grabbing;
}
/* During an active drag, suppress block / cell click targets so the pan
   gesture doesn't accidentally fire onclick handlers (drill cells, blocks).
   A separate JS suppress-click guard backs this up for the mouse-up frame. */
.bh-sched-grid-wrap.is-panning .bh-sched-block,
.bh-sched-grid-wrap.is-panning .bh-sched-cell {
    pointer-events: none;
}
/* Edge loader pip -- absolute, sticky-to-viewport-edge spinner shown while
   fetching the next chunk during pan. Renders as a small pulsing dot so it
   doesn't compete with the today marker or block content. */
.bh-sched-edge-loader {
    position: sticky;
    top: 0;
    width: 24px;
    height: 100%;
    display: none;
    align-items: center;
    justify-content: center;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.9rem;
    pointer-events: none;
    z-index: 50;
}
.bh-sched-edge-loader.is-active { display: inline-flex; }
.bh-sched-edge-loader.is-left { left: 0; }
.bh-sched-edge-loader.is-right { right: 0; }
/* When inside the panel, the grid drops its own border / radius -- panel owns them. */
.bh-sched-panel .bh-sched-grid-wrap {
    border: 0;
    border-radius: 0;
}
/* Empty / loading states inside the panel get top spacing so they don't kiss the toolbar. */
.bh-sched-panel .bh-empty-state,
.bh-sched-panel #scheduleGridLoading {
    padding-top: 2rem;
}

/* 2026-05-16 Jen: switched from table-row to CSS grid so blocks can span
   multiple week columns (duration-aware). Each row computes lane assignment
   in JS to stack overlapping blocks. --weeks set inline per row. */
.bh-sched-table {
    display: block;
    width: max-content;
    min-width: 100%;
}

/* Fixed pixel-per-week (was minmax(100px, 1fr) which stretched to container --
   incompatible with infinite pan, since the table width must exceed the viewport
   so horizontal scroll is real). --col-w is set on .bh-sched-table inline at
   render time + mutated by the zoom +/- buttons; rows inherit via CSS var
   cascade. 200px axis-cell stays sticky so the resource label remains visible
   while panning. */
.bh-sched-row {
    display: grid;
    grid-template-columns: 200px repeat(var(--weeks, 12), var(--col-w, 110px));
    grid-auto-rows: minmax(28px, auto);
    position: relative;
    border-bottom: 1px solid var(--border-light);
    align-items: stretch;
}
.bh-sched-axis-header,
.bh-sched-axis-cell {
    position: sticky;
    left: 0;
    z-index: 20;
    /* Solid fallback first -- the token may resolve to a semi-transparent
       value on some themes, which would let scrolling blocks bleed through. */
    background-color: #ffffff;
    background-color: var(--bg-surface, #ffffff);
    /* Right-edge shadow gives the eye an unambiguous boundary between the
       sticky name column and the scrolling timeline content. */
    box-shadow: 6px 0 8px -6px rgba(0, 0, 0, 0.18);
    /* Force a new stacking context so blocks (z:2) inside the row can't
       accidentally win on browsers that handle sticky + grid-item z-index
       inconsistently. */
    isolation: isolate;
}
.bh-sched-header .bh-sched-axis-header {
    background-color: #ece7f4;
    background-color: var(--bg-muted, #ece7f4);
    z-index: 22;
}
.bh-sched-row:nth-child(even) .bh-sched-axis-cell {
    background-color: #f7f5fb;
    background-color: var(--bg-subtle, #f7f5fb);
}
[data-theme="dark"] .bh-sched-axis-header,
[data-theme="dark"] .bh-sched-axis-cell {
    background-color: #1f1530;
    background-color: var(--bg-surface, #1f1530);
    box-shadow: 6px 0 8px -6px rgba(0, 0, 0, 0.55);
}
[data-theme="dark"] .bh-sched-row:nth-child(even) .bh-sched-axis-cell {
    background-color: #2a1f44;
    background-color: var(--bg-subtle, #2a1f44);
}
/* 2026-05-18: clickable resource name cell. Hover lifts + brand-tints the
   background, label gets a brand-coloured dotted underline to signal "this
   is a link" without changing the layout. (unassigned) + Engagement axis
   rows skip this class so they stay non-interactive.
   IMPORTANT: hover backgrounds must be OPAQUE -- this cell is sticky over
   the scrolling timeline; an rgba()-with-alpha hover would let blocks bleed
   through visually. Use pre-blended opaque tints per row-stripe + theme. */
.bh-sched-axis-cell.bh-sched-axis-clickable {
    cursor: pointer;
    transition: background-color 0.12s ease;
}
.bh-sched-axis-cell.bh-sched-axis-clickable:hover {
    background-color: #efebf8;
}
.bh-sched-row:nth-child(even) .bh-sched-axis-cell.bh-sched-axis-clickable:hover {
    background-color: #e8e1f2;
}
[data-theme="dark"] .bh-sched-axis-cell.bh-sched-axis-clickable:hover {
    background-color: #2d2245;
}
[data-theme="dark"] .bh-sched-row:nth-child(even) .bh-sched-axis-cell.bh-sched-axis-clickable:hover {
    background-color: #382a55;
}
.bh-sched-axis-cell.bh-sched-axis-clickable .bh-sched-axis-label {
    color: var(--brand-primary, #3d1a6f);
    border-bottom: 1px dotted currentColor;
}
[data-theme="dark"] .bh-sched-axis-cell.bh-sched-axis-clickable .bh-sched-axis-label {
    color: var(--brand-accent, #fdb913);
}
/* 2026-05-18: drag-affordance hint chip in the legend strip. Muted, not a
   call-to-action -- the [Earlier][Today][Later] buttons are the primary
   nav affordance; drag is the gesture sugar on top. */
.bh-sched-legend-hint {
    margin-left: auto;
    color: var(--text-muted, #6b6378);
    font-style: italic;
    font-size: 0.78rem;
}

/* 2026-05-18 (revised): per-row expand chevron. Now lives as a separate grid
   item appended after the placement blocks, positioned via grid-column at the
   last cell + position:sticky;right so it floats at the viewport's right edge
   as the user pans. Never collides with the sticky name column on the left.
   Solid brand-purple pill so it stands out from the multi-coloured blocks
   underneath; z-index above blocks but below the axis (which is z:20). */
.bh-sched-axis-cell .bh-sched-axis-label {
    flex: 1 1 auto;
    min-width: 0;
}
.bh-sched-row-expand {
    grid-column: -2 / -1;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    position: sticky;
    right: 12px;
    z-index: 8;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    background: var(--brand-primary, #3d1a6f);
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 14px;
    font-size: 0.72rem;
    line-height: 1.1;
    color: #ffffff;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
    transition: background-color 0.12s ease, box-shadow 0.12s ease;
    pointer-events: auto;
    white-space: nowrap;
}
.bh-sched-row-expand:hover {
    background: #4d2a85;
    box-shadow: 0 3px 9px rgba(0, 0, 0, 0.24);
}
.bh-sched-row-expand i { font-size: 0.7rem; }
.bh-sched-row-overflow-count {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
[data-theme="dark"] .bh-sched-row-expand {
    background: var(--brand-accent, #fdb913);
    border-color: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
}
[data-theme="dark"] .bh-sched-row-expand:hover {
    background: #ffce4f;
}

/* 2026-05-18: zoom +/- buttons in the schedule subtoolbar. Sit inline next
   to the Earlier/Today/Later nav group, share the small btn-outline-secondary
   visual language. No active-state styling -- the zoom level isn't a toggle. */
.bh-sched-zoom .btn {
    padding: 0.2rem 0.45rem;
}
.bh-sched-zoom .btn i { font-size: 0.78rem; }

.bh-sched-row:nth-child(even) { background: var(--bg-subtle); }

.bh-sched-header {
    background: var(--bg-muted);
    font-weight: 600;
    font-size: 0.8rem;
    border-bottom: 2px solid var(--border-default);
}
.bh-sched-header:nth-child(even) { background: var(--bg-muted); }

.bh-sched-header .bh-sched-axis-header,
.bh-sched-header .bh-sched-week-header {
    padding: 0.6rem 0.75rem;
    color: var(--brand-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    grid-row: 1;
}

.bh-sched-axis-header,
.bh-sched-axis-cell {
    grid-column: 1;
    grid-row: 1 / -1;
    padding: 0.5rem 0.75rem;
    border-right: 2px solid var(--border-default);
    overflow: hidden;
    font-size: 0.85rem;
    align-self: stretch;
    display: flex;
    align-items: center;
    min-width: 0;
}
/* Wrapped label so text-overflow works inside the flex container. Without
   the inner span, ellipsis is silently ignored on the cell's anonymous
   text run. min-width:0 on the cell lets flex shrink past intrinsic size. */
.bh-sched-axis-cell .bh-sched-axis-label {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bh-sched-week-header {
    grid-row: 1;
    padding: 0.4rem 0.4rem;
    border-right: 1px solid var(--border-light);
    text-align: center;
}

/* 2026-05-16 Jen: today marker. Header gets a gold "NOW" chip + brand-primary
   text, cells in the column get a subtle vertical tint band so the eye finds
   "this week" without scanning the dates. Uses tokens so dark mode flips. */
.bh-sched-week-header.is-today {
    color: var(--brand-primary);
    font-weight: 700;
    background: rgba(253, 185, 19, 0.10);
    position: relative;
}
[data-theme="dark"] .bh-sched-week-header.is-today {
    background: rgba(253, 185, 19, 0.08);
    color: var(--brand-accent);
}
/* 2026-05-16 v3: vertical "now" line. Switched from gold to brand-primary purple
   in both modes -- gold collided with .bh-sched-actual-bar (also gold) at the
   bottom of pills, users mistook the horizontal actuals stub for a vertical
   today marker. Purple is the semantic anchor colour ("you are here") and
   reads as distinct from any other schedule decoration. NOW chip kept gold-on-
   purple as the chip-style icon -- the COMBINATION of chip + purple line is the
   today indicator. 4px wide, glow for prominence over blocks. */
.bh-sched-week-header.is-today::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 6px rgba(61, 26, 111, 0.55);
    pointer-events: none;
    z-index: 10;
}
.bh-sched-week-header.is-today::after {
    content: 'NOW';
    position: absolute;
    top: 50%;
    right: 6px;
    transform: translateY(-50%);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    padding: 1px 5px;
    border-radius: 8px;
    line-height: 1.4;
}
/* No background tint on today's column cells -- the purple vertical line +
   NOW chip + bold header are sufficient. The earlier 7% gold tint was
   reading as ambiguous with the pink conflict-overlay (0.18 opacity) which
   can also look cream on light backgrounds. Header bold/colour stays. */
/* Today vertical line -- rendered as a separate grid item via JS (not as
   .bh-sched-cell::after) so it's a sibling of the block with its own
   stacking context. z-index:99 paints above all blocks (z:2), capacity
   overlays (z:0), and cap-warn icons (z:4). pointer-events:none so block
   clicks still hit through. JS inlines grid-column to land it on the
   today week column. */
.bh-sched-today-overlay {
    grid-row: 1;
    align-self: stretch;
    position: relative;
    z-index: 99;
    pointer-events: none;
    min-height: inherit;
}
.bh-sched-today-overlay::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 6px rgba(61, 26, 111, 0.55);
}
/* Capacity-warning cell: cursor:help signals the tooltip carries detail. */
.bh-sched-cell.bh-cap-conflict,
.bh-sched-cell:has(.bh-cap-overlay) { cursor: help; }

/* 2026-05-16: clickable heatmap cells -- hover ring signals "this drills down".
   Applied on Pipeline Forecast + Overview Capacity Mini heatmaps. cursor:pointer
   set inline via JS so the affordance works without this class too, but the
   outline-on-hover is what makes "click me" obvious. */
.bh-cap-cell-drill {
    position: relative;
    transition: outline 0.12s ease, transform 0.12s ease;
}
.bh-cap-cell-drill:hover {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: -2px;
    z-index: 5;
}
.bh-cap-cell-drill:focus-visible {
    outline: 2px solid var(--brand-primary, #3d1a6f);
    outline-offset: -2px;
}

/* Schedule legend strip -- sits under the layers/window toolbar, explains
   colour codes that the grid uses without inline labels. */
.bh-sched-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.25rem;
    padding: 0.5rem 0.9rem;
    font-size: 0.78rem;
    color: var(--text-body);
    border-bottom: 1px solid var(--border-light);
    background: var(--bg-subtle);
}
.bh-sched-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}
.bh-sched-legend-today {
    display: inline-block;
    width: 4px;
    height: 14px;
    background: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 4px rgba(61, 26, 111, 0.45);
}
.bh-sched-legend-overcap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 14px;
    background: var(--conflict-overlay);
    color: var(--conflict-icon);
    font-size: 0.7rem;
    border-radius: 2px;
}
.bh-sched-legend-pill {
    display: inline-block;
    width: 22px;
    height: 10px;
    border-radius: 3px;
    background: var(--brand-primary);
}
.bh-sched-legend-pill-forecast {
    background: transparent;
    border: 1px dashed var(--brand-primary);
}
.bh-sched-legend-pill-committed {
    background: var(--brand-primary);
}
.bh-sched-legend-pill-actual {
    background: linear-gradient(to right, var(--brand-primary) 0%, var(--brand-primary) 60%, var(--brand-accent) 60%, var(--brand-accent) 100%);
}
/* Footer placement (2026-05-26): legend now sits below the grid. Flip the divider
   to a top border and inherit the panel's bottom-corner radius so it reads as a
   footer rather than a pre-grid header. */
.bh-sched-legend--footer {
    border-bottom: 0;
    border-top: 1px solid var(--border-light);
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
}
/* Agreement colour key also moved below the grid (2026-05-26): flip its divider to
   a top border so it stacks cleanly between the grid and the marker legend. */
.bh-sched-agreement-legend--footer {
    border-bottom: 0;
    border-top: 1px solid var(--border-light);
}

/* ---------- Agreement colour key (2026-05-19) ----------
   One chip per distinct bfAgreementName in the loaded window. Click toggles
   focus mode: the grid container picks up [data-bh-sched-focus="<name>"] and
   non-matching blocks dim to 20% opacity via the rule further down. Chips
   visually mirror bar colour via --chip-color CSS var set inline. */
.bh-sched-agreement-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.5rem;
    padding: 0.5rem 0.9rem;
    border-bottom: 1px solid var(--border-light);
    background: var(--bg-subtle);
}
.bh-sched-agreement-legend.has-focus {
    background: var(--bg-muted, #f3eef9);
}
.bh-sched-agreement-legend-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #6b6376);
    margin-right: 0.15rem;
}
.bh-sched-agreement-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.18rem 0.55rem 0.18rem 0.4rem;
    border: 1px solid var(--border-light);
    background: var(--bg-card, #fff);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--text-body);
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease;
    max-width: 240px;
}
.bh-sched-agreement-chip:hover {
    border-color: var(--chip-color, var(--brand-primary));
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.bh-sched-agreement-chip.is-active {
    background: var(--chip-color, var(--brand-primary));
    border-color: var(--chip-color, var(--brand-primary));
    color: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}
.bh-sched-agreement-chip.is-active .bh-sched-agreement-chip-count {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}
.bh-sched-agreement-swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--chip-color, var(--brand-primary));
    flex-shrink: 0;
    border: 1px solid rgba(0, 0, 0, 0.08);
}
.bh-sched-agreement-chip.is-active .bh-sched-agreement-swatch {
    background: #fff;
    border-color: rgba(255, 255, 255, 0.6);
}
.bh-sched-agreement-chip-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 180px;
}
.bh-sched-agreement-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.2em;
    padding: 0 0.35em;
    background: var(--bg-muted, #efeaf6);
    color: var(--text-muted, #6b6376);
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
}
.bh-sched-agreement-clear {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.6rem;
    background: transparent;
    border: 1px dashed var(--text-muted, #6b6376);
    border-radius: 999px;
    color: var(--text-muted, #6b6376);
    font-size: 0.74rem;
    cursor: pointer;
    margin-left: 0.25rem;
}
.bh-sched-agreement-clear:hover {
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}
/* Focus mode -- when the grid container carries a non-empty data-bh-sched-focus,
   every block fades to 20%. JS adds .is-focused-match to the blocks whose
   data-agreement equals the focused name, restoring them to full visibility.
   (Pure CSS can't match against an arbitrary attribute value, so the class
   bridge keeps the rule static.) */
.bh-sched-grid-wrap[data-bh-sched-focus] .bh-sched-block {
    opacity: 0.2;
    filter: saturate(0.55);
    transition: opacity 0.18s ease, filter 0.18s ease;
}
.bh-sched-grid-wrap[data-bh-sched-focus] .bh-sched-block.is-focused-match {
    opacity: 1;
    filter: none;
}

[data-theme="dark"] .bh-sched-agreement-legend {
    background: var(--bg-subtle);
}
[data-theme="dark"] .bh-sched-agreement-chip {
    background: var(--bg-card, #1f1828);
    border-color: var(--border-light, #2f2638);
    color: var(--text-body);
}
[data-theme="dark"] .bh-sched-agreement-chip-count {
    background: var(--bg-muted, #2a2233);
    color: var(--text-muted, #b8acc8);
}

/* Background grid cells -- always row 1, one per week column. Hold capacity
   overlays + click affordances. Blocks layer on top with z-index. */
.bh-sched-cell {
    grid-row: 1;
    padding: 0;
    border-right: 1px solid var(--border-light);
    position: relative;
    min-height: 64px;
}

.bh-sched-cell .bh-cap-overlay {
    position: absolute;
    inset: 0;
    background: var(--conflict-overlay);
    pointer-events: none;
    z-index: 0;
}

.bh-sched-cell .bh-cap-warn {
    position: absolute;
    top: 0.2rem;
    right: 0.3rem;
    color: var(--conflict-icon);
    font-size: 0.85rem;
    z-index: 4;
    pointer-events: none;
}

/* Duration-spanning blocks: positioned via inline grid-column from JS.
   --lane offsets row position so overlapping blocks stack vertically.
   Lane pitch (48px) must be >= block min-height (44px) + breathing room
   or lane N+1 overlaps lane N. Row min-height in JS uses the same constant. */
.bh-sched-row .bh-sched-block {
    grid-row: 1;
    align-self: start;
    margin: calc(2px + (var(--lane, 0) * 48px)) 3px 2px 3px;
    width: auto;
    z-index: 2;
}

.bh-sched-block:focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 2px;
}

/* No explicit StartDate -- capacity duration is heuristic. Dashed leading
   edge + tiny corner chip ("~") so users know the spread is estimated and
   can click in to set a precise Start Date. */
.bh-sched-block.bh-sched-est-duration {
    border-left: 2px dashed rgba(255, 255, 255, 0.7);
}
[data-theme="dark"] .bh-sched-block.bh-sched-est-duration {
    border-left-color: rgba(255, 255, 255, 0.5);
}
.bh-sched-block.bh-sched-est-duration::before {
    content: '~';
    position: absolute;
    bottom: 1px;
    left: 4px;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    color: inherit;
    opacity: 0.7;
    pointer-events: none;
}

/* Mobile fallback: stack as block list. Grid collapses, blocks stack vertically.
   Lane offsets + grid-column placement become irrelevant -- reset them. */
@media (max-width: 990px) {
    .bh-sched-grid-wrap { overflow-x: visible; }
    .bh-sched-table { display: block; min-width: 0; }
    .bh-sched-row { display: block; padding: 0.5rem 0; border-bottom: 1px solid var(--border-default); min-height: 0 !important; }
    .bh-sched-header { display: none; }
    .bh-sched-axis-header, .bh-sched-axis-cell {
        display: block; width: 100%; min-width: 0;
        font-weight: 600; font-size: 0.95rem;
        border-right: none; border-bottom: none;
        padding: 0.5rem 0.75rem 0.25rem;
    }
    .bh-sched-week-header, .bh-sched-cell {
        display: block; width: 100%; min-width: 0;
        border-right: none; padding: 0.25rem 0.75rem;
        min-height: 0;
    }
    .bh-sched-cell:empty { display: none; }
    .bh-sched-row .bh-sched-block {
        grid-column: auto !important;
        margin: 0.25rem 0.75rem !important;
        width: auto;
    }
}

/* -----------------------------------------------------------------------------
   Engagement Lifecycle Wizard (Phase 12) -- contextual help layer
   ----------------------------------------------------------------------------- */
.bh-wizard-modal {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bh-wizard-backdrop {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
}
.bh-wizard-dialog {
    position: relative;
    background: var(--bg-surface);
    border-radius: 12px;
    width: 90%;
    max-width: 640px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}
.bh-wizard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--border-default);
}
.bh-wizard-header h3 {
    margin: 0;
    color: var(--brand-primary);
    font-size: 1.2rem;
}
.bh-wizard-close {
    border: none;
    background: transparent;
    font-size: 1.1rem;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0.25rem 0.5rem;
}
.bh-wizard-close:hover { color: var(--text-primary); }
.bh-wizard-body { padding: 1.25rem 1.5rem; }
.bh-wizard-intro {
    color: var(--text-muted);
    margin-bottom: 1rem;
}
.bh-wizard-options {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.bh-wizard-option {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    text-align: left;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-default);
    background: var(--bg-surface);
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.bh-wizard-option:hover {
    background: var(--bg-purple-tint);
    border-color: var(--brand-primary);
}
.bh-wizard-option:focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 2px;
}
.bh-wizard-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--brand-purple-tint);
    color: var(--brand-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}
.bh-wizard-text { flex: 1 1 auto; }
.bh-wizard-label { font-weight: 600; font-size: 0.95rem; color: var(--text-primary); }
.bh-wizard-desc { font-size: 0.8rem; color: var(--text-muted); margin-top: 0.2rem; }
.bh-wizard-chev { color: var(--text-muted); flex: 0 0 auto; }

/* Walkthrough overlay (post-navigation) */
.bh-wizard-walkthrough {
    background: var(--bg-surface);
    border: 2px solid var(--brand-accent);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    max-width: 320px;
    font-size: 0.85rem;
    color: var(--text-body);
}
.bh-wizard-walkthrough-text { margin-bottom: 0.4rem; }

/* Mobile */
@media (max-width: 768px) {
    .bh-wizard-dialog { width: 95%; max-height: 85vh; }
    .bh-wizard-option { padding: 0.6rem 0.75rem; gap: 0.5rem; }
    .bh-wizard-icon { width: 32px; height: 32px; }
    .bh-wizard-label { font-size: 0.85rem; }
    .bh-wizard-desc { font-size: 0.7rem; }
}

/* -----------------------------------------------------------------------------
   RA Capacity tab (Phase 6) -- merged sub-pills for the 3 historical views
   ----------------------------------------------------------------------------- */
#capacitySubPills .nav-link {
    padding: 0.4rem 0.85rem;
    font-size: 0.85rem;
    color: var(--text-body);
    border-radius: 6px;
    margin-right: 0.4rem;
}
#capacitySubPills .nav-link.active {
    background: var(--brand-primary);
    color: #ffffff;
}
#capacitySubPills .nav-link:hover:not(.active) {
    background: var(--bg-purple-tint);
    color: var(--brand-primary);
}

/* -----------------------------------------------------------------------------
   DP Triage strip (Phase 5c) -- pinned attention surface
   ----------------------------------------------------------------------------- */
.bh-triage-strip {
    background: var(--es-pending-bg);
    border: 1px solid var(--es-pending-border);
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    margin-bottom: 1rem;
}
.bh-triage-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.4rem;
}
.bh-triage-title {
    font-weight: 600;
    color: var(--es-pending-fg);
    font-size: 0.85rem;
}
.bh-triage-dismiss {
    color: var(--text-muted);
    padding: 0;
    font-size: 0.85rem;
}
.bh-triage-pills {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.bh-triage-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
}
.bh-triage-pill-warn   { color: var(--es-pending-fg);  border-color: var(--es-pending-border); }
.bh-triage-pill-danger { color: var(--eh-over);        border-color: var(--eh-over); }
.bh-triage-pill-info   { color: var(--es-draft-fg);    border-color: var(--es-draft-border); }

/* -----------------------------------------------------------------------------
   AM Kanban -- hours-used progress bar on Active cards (Phase 4 deferred)
   ----------------------------------------------------------------------------- */
.kanban-card-hours-bar {
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px solid var(--border-light, #eee);
}
.kanban-card-hours-bar-track {
    height: 4px;
    background: var(--bg-muted);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 0.2rem;
}
.kanban-card-hours-bar-fill {
    height: 100%;
    transition: width 0.2s ease;
}
.kanban-card-hours-bar-fill.eh-ontrack { background: var(--eh-ontrack); }
.kanban-card-hours-bar-fill.eh-over    { background: var(--eh-over); }
.kanban-card-hours-bar-fill.eh-under   { background: var(--eh-under); }

/* -----------------------------------------------------------------------------
   AM Kanban Closed lane (collapsed-by-default per Design System sec 5.2 / Phase 4)
   ----------------------------------------------------------------------------- */
.kanban-column.kanban-column-collapsed {
    /* Narrower column when collapsed -- header acts as expander pill. */
    min-width: 12rem;
    max-width: 14rem;
    flex: 0 0 auto;
    opacity: 0.85;
}
.kanban-column.kanban-column-collapsed .kanban-column-header {
    border-radius: 8px;
}
.kanban-column.kanban-column-collapsed:hover {
    opacity: 1;
}

/* -----------------------------------------------------------------------------
   Card flash highlight (used by ?focusBfId= deep-link in AM)
   ----------------------------------------------------------------------------- */
@keyframes bhCardFlash {
    0%   { box-shadow: 0 0 0 0 var(--brand-accent); }
    50%  { box-shadow: 0 0 0 6px rgba(253, 185, 19, 0.6); }
    100% { box-shadow: 0 0 0 0 var(--brand-accent); }
}
.bh-card-flash {
    animation: bhCardFlash 2s ease-in-out;
    z-index: 5;
}

/* === Jen polish 2026-05-11: RA === */

/* Empty-state success variant: green-tinted icon + body for "nothing wrong" messages
   (e.g. "All engagements within budget"). Re-uses canonical .bh-empty-state structure
   so spacing, alignment, and dark-mode behaviour stay consistent. */
.bh-empty-state.bh-empty-state-success .bh-empty-icon {
    color: var(--eh-ontrack, #198754);
    opacity: 0.7;
}
.bh-empty-state.bh-empty-state-success .bh-empty-title {
    color: var(--eh-ontrack, #198754);
}
[data-theme="dark"] .bh-empty-state.bh-empty-state-success .bh-empty-icon {
    color: var(--eh-ontrack, #4ade80);
    opacity: 0.85;
}
[data-theme="dark"] .bh-empty-state.bh-empty-state-success .bh-empty-title {
    color: var(--eh-ontrack, #4ade80);
}

/* Service Delivery table header contrast (WCAG AAA, >=7:1).
   Scoped to #tblServiceDelivery thead so global table-modern styling is untouched.
   Targets both default thead-light grey and tfoot totals row. */
#tblServiceDelivery thead.thead-light th,
#tblServiceDelivery tfoot.thead-light th {
    color: var(--text-strong, #1a1a1a);
    font-weight: 600;
    background-color: var(--bg-subtle, #f1f3f5);
}
[data-theme="dark"] #tblServiceDelivery thead.thead-light th,
[data-theme="dark"] #tblServiceDelivery tfoot.thead-light th {
    color: var(--text-strong, #f3f4f6);
    background-color: var(--bg-elevated, #2a2a2a);
}
/* Preserve existing tonal accents on Forecast/Committed/Actual headers but darken
   for AAA contrast in light mode. */
#tblServiceDelivery thead th.text-secondary,
#tblServiceDelivery tfoot th.text-secondary { color: #495057 !important; }
#tblServiceDelivery thead th.text-primary,
#tblServiceDelivery tfoot th.text-primary { color: var(--brand-primary, #3d1a6f) !important; }
#tblServiceDelivery thead th.text-success,
#tblServiceDelivery tfoot th.text-success { color: #146c43 !important; }
[data-theme="dark"] #tblServiceDelivery thead th.text-secondary,
[data-theme="dark"] #tblServiceDelivery tfoot th.text-secondary { color: #adb5bd !important; }
[data-theme="dark"] #tblServiceDelivery thead th.text-primary,
[data-theme="dark"] #tblServiceDelivery tfoot th.text-primary { color: #c4b5fd !important; }
[data-theme="dark"] #tblServiceDelivery thead th.text-success,
[data-theme="dark"] #tblServiceDelivery tfoot th.text-success { color: #75d99c !important; }

/* 2026-05-16 Jen: Service Delivery tinted-row contrast pass.
   Bootstrap's stock .table-danger (#f5c6cb) reads heavier than .table-warning
   (#ffeeba) at the same row lane width -- the pink row swallows the small
   "Over" pill (white-bg/red-outline) which then loses prominence. Two fixes:
   (a) swap stock pink for the DS --eh-over-bg token (paler, matches yellow
       lane lightness); align warning to --eh-under-bg for symmetry.
   (b) give .bh-card-eh-* pills a solid surface bg INSIDE SD rows so they
       stand clear of the row tint. Scoped to #tblServiceDelivery so card
       surfaces elsewhere keep their current treatment. */
#tblServiceDelivery .sd-row.table-danger > td,
#tblServiceDelivery .sd-row.table-danger > th,
#tblServiceDelivery .sd-detail-row[data-sd-bucket="0"] > td {
    background-color: var(--eh-over-bg, #fde0e6);
}
#tblServiceDelivery .sd-row.table-warning > td,
#tblServiceDelivery .sd-row.table-warning > th,
#tblServiceDelivery .sd-detail-row[data-sd-bucket="1"] > td {
    background-color: var(--eh-under-bg, #fff0e0);
}
[data-theme="dark"] #tblServiceDelivery .sd-row.table-danger > td,
[data-theme="dark"] #tblServiceDelivery .sd-row.table-danger > th,
[data-theme="dark"] #tblServiceDelivery .sd-detail-row[data-sd-bucket="0"] > td {
    background-color: var(--eh-over-bg, #401822);
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] #tblServiceDelivery .sd-row.table-warning > td,
[data-theme="dark"] #tblServiceDelivery .sd-row.table-warning > th,
[data-theme="dark"] #tblServiceDelivery .sd-detail-row[data-sd-bucket="1"] > td {
    background-color: var(--eh-under-bg, #3a2410);
    color: var(--text-body, #d4d4d4);
}
#tblServiceDelivery .sd-row .bh-card-eh-over,
#tblServiceDelivery .sd-row .bh-card-eh-under,
#tblServiceDelivery .sd-row .bh-card-eh-ontrack {
    background-color: var(--bg-surface, #ffffff);
}
[data-theme="dark"] #tblServiceDelivery .sd-row .bh-card-eh-over,
[data-theme="dark"] #tblServiceDelivery .sd-row .bh-card-eh-under,
[data-theme="dark"] #tblServiceDelivery .sd-row .bh-card-eh-ontrack {
    background-color: var(--bg-elevated, #2a2a2a);
}

/* === Jen polish 2026-05-11: DP ===
   Three fixes:
   1. At Risk KPI tile -- distinct amber palette so it doesn't blur with This Month yellow.
   2. (CTA contrast handled inline in DeliveryPlanner.aspx <style> -- bumped weight + hover underline.)
   3. Filter disclosure chevron -- visible affordance + rotate when [open].
   ----------------------------------------------------------------------------- */

/* FIX 1: At Risk tile -- amber warning (Bootstrap orange #fd7e14), distinct from .warning yellow.
   Selectors migrated to canonical .bh-kpi 2026-05-14; legacy .crm-stat-card alias retained for
   any straggler page still on the old class. */
.bh-kpi.risk,
.crm-stat-card.risk {
    border-left-color: #fd7e14;
}
.bh-kpi.risk .bh-kpi-label i.fa-exclamation-triangle,
.crm-stat-card.risk .stat-label i.fa-exclamation-triangle {
    color: #fd7e14;
    margin-right: 0.25rem;
}
[data-theme="dark"] .bh-kpi.risk,
[data-theme="dark"] .crm-stat-card.risk {
    border-left-color: #ffa552;
}
[data-theme="dark"] .bh-kpi.risk .bh-kpi-label i.fa-exclamation-triangle,
[data-theme="dark"] .crm-stat-card.risk .stat-label i.fa-exclamation-triangle {
    color: #ffa552;
}

/* FIX 3 (filter disclosure chevron) deleted with the disclosure -- 2026-05-26. */

/* === Jen polish 2026-05-11: AM === */
/* AM kanban -- consistent Draft footer treatment. When only the Create Agreement
   CTA renders (no BF yet), it stretches to fill the row beside the kebab so the
   card visually matches the Manage+Schedule pair. Predicate-based, single source
   of truth on card.retainerCampaignId. */
.kanban-card-actions .btn-cta.btn-cta-full {
    flex: 1 1 auto;
    width: auto;
}

/* AM page-actions toolbar -- New Agreement promoted to primary slot (Pattern S4).
   Ensure the primary button keeps visual weight against the secondary Wizard/Tour
   pair without growing taller than them. */
.page-actions .btn.btn-primary {
    font-weight: 500;
}
.page-actions .btn.btn-primary .fas {
    font-size: 0.85em;
}
/* === end Jen polish 2026-05-11: AM === */

/* === Federation F3 2026-05-11: AM legacy kanban cards === */
/* LSE-direct (Cohort D) engagements rendered with subtle dotted left accent +
   slightly muted body so users can tell at-a-glance which cards are read-only
   in NE pending bridge. Hover lifts opacity to full -- still interactive. */
/* 2026-05-11 Chairman v3: federation invisible -- legacy and NE cards look identical.
   Kept the .is-legacy class so the JS hooks still match, but stripped all visual
   differentiation. Edit auto-bridges transparently. */
.kanban-card.is-legacy {
    /* intentionally empty -- same look as NE card */
}
/* === end Federation F3 === */

/* === Jen polish 2026-05-11 round 2: RA === */
/* Fix 1 -- RA Overview KPI tiles: icon+number on one row, label below.
   Caps icon size, normalises padding, matches AM kanban stat-card pattern. */
.ra-overview-tile {
    padding: 1.25rem 1rem;
    text-align: left;
}
.ra-overview-tile .ra-tile-top {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.4rem;
}
.ra-overview-tile .ra-tile-top .ra-tile-icon {
    font-size: 1.5rem;
    margin-bottom: 0;
    line-height: 1;
    flex: 0 0 auto;
}
.ra-overview-tile .ra-tile-top .ra-tile-value {
    font-size: 2rem;
    margin-bottom: 0;
    line-height: 1;
    flex: 1 1 auto;
}
.ra-overview-tile .ra-tile-label {
    font-size: 0.875rem;
    color: var(--text-muted);
    text-transform: none;
    letter-spacing: 0;
}
@media (max-width: 990px) {
    .ra-overview-tile .ra-tile-top .ra-tile-value { font-size: 1.5rem; }
    .ra-overview-tile .ra-tile-top .ra-tile-icon { font-size: 1.25rem; }
}

/* Fix 2 -- 6-month trend chart: cap width so 6 bars stay proportionate. */
.ra-trend-chart-wrap {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
}

/* Fix 3 -- Capacity sub-section headers: lighter weight than full yellow header. */
.ra-section-h {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--brand-primary);
    padding: 0.75rem 1rem 0.5rem 1rem;
    border-bottom: 1px solid var(--border-light);
    margin: 0 0 1rem 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.ra-section-h .ml-auto { margin-left: auto !important; }
.ra-section-h .fas,
.ra-section-h .far,
.ra-section-h .fab {
    color: var(--brand-primary);
    opacity: 0.85;
}
[data-theme="dark"] .ra-section-h {
    color: var(--brand-primary-light, #a78bda);
    border-bottom-color: var(--border-medium-dark, #3a3f47);
}
[data-theme="dark"] .ra-section-h .fas,
[data-theme="dark"] .ra-section-h .far,
[data-theme="dark"] .ra-section-h .fab {
    color: var(--brand-primary-light, #a78bda);
}

/* RA stat tile vertical centring (size + padding now from canonical .bh-kpi). */
.ra-stats-bar .ra-stat-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
/* === end Jen polish 2026-05-11 round 2: RA === */

/* === RA alignment sweep 2026-05-11 === */
/* Granular within-table alignment + spacing rhythm pass.
   Chairman flagged 3-5 times: pills inconsistent sizes, top-aligned badges,
   cramped headers, empty-state rhythm. Single-block fix. */

/* 2026-05-25 (George): #tblUtilizationReport rules removed -- the per-engagement
   Utilisation table was collapsed into Service Delivery. */

/* 2. Service Delivery table: same vertical-centring contract + nowrap pills. */
#tblServiceDelivery tbody td {
    vertical-align: middle;
}
#tblServiceDelivery thead th,
#tblServiceDelivery tfoot th {
    vertical-align: middle;
}

/* 2026-05-27 (George/Jen): Service Delivery filter strip rebuilt to MATCH the Schedule subtoolbar
   -- solid .bh-layer-toggle pills (neutral light box -> solid purple when selected) in one light
   tray = a single cohesive baseline. Replaces the thin bh-duration-chip / bh-pill-nav attempts that
   read as loose form rows. Pills + labels are the shared Schedule primitives (DRY, pixel-match). */
.sd-filter-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e6e6ef);
    border-radius: 10px;
}
/* Each row (filters / view) wraps internally; both live in the one box so Period and View are boxed
   consistently (George 2026-05-27 -- "why is period in a box and view is not"). */
.sd-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 1.25rem;
}
/* Pill groups (Period quick-pills / Stage / Health / View) flow freely and wrap on narrow widths.
   Service / Type + the Period "More" overflow are compact selects (.bh-sched-subtoolbar-select). */
.sd-filter-toolbar .sd-period-chips,
.sd-filter-toolbar .sd-life-pills,
.sd-filter-toolbar .sd-health-pills,
.sd-filter-toolbar .sd-view-toggle {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}
/* Selected pill -> solid purple. Driven by the class names this page's JS already toggles
   (is-selected for Period/Stage/Health/View; active for the Show-closed sticky toggle). */
.bh-layer-toggle.is-selected,
.bh-layer-toggle.active {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-color: var(--brand-primary, #3d1a6f);
}
.bh-layer-toggle.is-selected .bh-layer-count,
.bh-layer-toggle.active .bh-layer-count { background: rgba(255, 255, 255, 0.22); }
/* Greyed/non-interactive control row (reporting period while in Monthly hours view). */
.sd-disabled { opacity: 0.45; pointer-events: none; }
/* Reopen-a-closed-campaign modal: result rows (clean two-line list + compact action-btn). */
.sd-reopen-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.4rem;
    border-bottom: 1px solid var(--border-default, #e6e6ef);
}
.sd-reopen-row:last-child { border-bottom: 0; }
.sd-reopen-row:hover { background: var(--bg-gold-tint, #fff8e6); border-radius: 6px; }
.sd-reopen-main { min-width: 0; }
.sd-reopen-title { font-size: 0.9rem; line-height: 1.35; }
.sd-reopen-title .bh-entity-chip { margin-right: 0.4rem; }
.sd-reopen-meta { font-size: 0.75rem; color: var(--text-muted, #6c757d); margin-top: 0.1rem; }
/* Child stories nest under their retainer with an indent + vertical guide line. */
.sd-reopen-row--child { padding-left: 1.9rem; position: relative; }
.sd-reopen-row--child::before {
    content: '';
    position: absolute;
    left: 0.85rem;
    top: 0;
    bottom: 0;
    border-left: 2px solid var(--border-default, #e6e6ef);
}
.sd-reopen-ctx { font-size: 0.72rem; color: var(--text-muted, #6c757d); margin-top: 0.05rem; }
/* Forecast-vs-actual mini-bars used by the SD drilldown Shape chart.
   (The standalone Flow column that also used these was retired 2026-06-01.) */
.sd-flow-b { width: 7px; border-radius: 2px 2px 0 0; display: block; }
.sd-flow-fc { background: var(--brand-primary-light, #c4b5fd); }
.sd-flow-ac--ok { background: var(--eh-ontrack, #28a745); }
.sd-flow-ac--under { background: var(--eh-under, #f0ad4e); }
.sd-flow-ac--over { background: var(--eh-over, #dc3545); }
/* Shape mini-chart: expected (forecast) vs actual distribution over the activity's months. */
.sd-shape { display: inline-flex; align-items: flex-end; gap: 3px; height: 26px; }
.sd-shape-m { display: inline-flex; align-items: flex-end; gap: 1px; }
.sd-shape-m .sd-flow-b { width: 5px; }

/* SD drilldown inner table: fixed layout + shared colgroup so columns align
   identically across every expanded agreement. Auto layout sized each table to
   its own content, leaving Activity/Type/Go Live unaligned between sections. */
.sd-detail-table { table-layout: fixed; width: 100%; }
.sd-detail-table th,
.sd-detail-table td { overflow-wrap: break-word; }

/* Compact density toggle for the Service Delivery table -- denser rows for scanning at scale. */
#tblServiceDelivery.sd-compact td,
#tblServiceDelivery.sd-compact th { padding: 0.3rem 0.5rem; }
#tblServiceDelivery.sd-compact td { font-size: 0.8rem; }
#tblServiceDelivery.sd-compact small { font-size: 0.72rem; }
#tblServiceDelivery.sd-compact .bh-es-badge { font-size: 0.6rem; padding: 0.08rem 0.4rem; }
#tblServiceDelivery.sd-compact .mt-1 { margin-top: 0.15rem !important; }
#tblServiceDelivery.sd-compact .pipeline-bar { height: 8px; }
/* Compact = a genuinely simpler view: drop secondary columns (Service / Period / Activities /
   Budget / Progress / Trend), keeping Client / Committed / Actual / Health / actions. Detail
   rows (single colspan td) and the matrix are untouched. */
#tblServiceDelivery.sd-compact thead th:nth-child(2), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(2),
#tblServiceDelivery.sd-compact thead th:nth-child(3), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(3),
#tblServiceDelivery.sd-compact thead th:nth-child(4), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(4),
#tblServiceDelivery.sd-compact thead th:nth-child(5), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(5),
#tblServiceDelivery.sd-compact thead th:nth-child(8), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(8),
#tblServiceDelivery.sd-compact thead th:nth-child(10), #tblServiceDelivery.sd-compact tbody > tr.sd-row > td:nth-child(10) { display: none; }
#tblServiceDelivery.sd-compact tfoot { display: none; }

/* Monthly hours matrix view -- scheduled-hours cells, coloured by execution health vs actual. */
#tblSdMatrix th, #tblSdMatrix td { white-space: nowrap; }
#tblSdMatrix th:first-child, #tblSdMatrix td:first-child { min-width: 180px; position: sticky; left: 0; background: var(--bg-surface, #ffffff); z-index: 1; }
#tblSdMatrix td.sd-mx-over { background: rgba(220, 53, 69, 0.14); }
#tblSdMatrix td.sd-mx-under { background: rgba(240, 173, 78, 0.18); }
#tblSdMatrix td.sd-mx-cell { line-height: 1.15; }
#tblSdMatrix td.sd-mx-cell .mytooltip { position: relative; display: inline-block; }
.sd-mx-sched { display: block; font-weight: 600; }
.sd-mx-act { display: block; font-size: 0.72rem; color: var(--text-muted, #6c757d); }
[data-theme="dark"] #tblSdMatrix th:first-child, [data-theme="dark"] #tblSdMatrix td:first-child { background: var(--bg-surface, #1c1c1c); }

/* Add Activity picker modal -- searchable engagement list. */
.sd-add-list { max-height: 50vh; overflow-y: auto; border: 1px solid var(--border-subtle, #e9ecef); border-radius: 6px; }
.sd-add-group {
    padding: 0.35rem 0.75rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-subtle, #f8f9fa);
    position: sticky;
    top: 0;
    z-index: 1;
}
.sd-add-group-n { font-weight: 500; color: var(--text-muted, #6c757d); margin-left: 0.3rem; }
.sd-add-item {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--border-subtle, #f1f3f5);
    background: transparent;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
}
.sd-add-item:hover, .sd-add-item:focus { background: var(--bg-muted, #eef0f2); outline: none; }
.sd-add-item-client { display: block; font-weight: 600; color: var(--text-body, #2c2c2c); }
.sd-add-item-agr { display: block; font-size: 0.82rem; color: var(--text-muted, #6c757d); }
[data-theme="dark"] .sd-add-group { color: var(--brand-primary-light, #c4b5fd); }
#tblServiceDelivery .ra-sd-col-service {
    white-space: nowrap;
    min-width: 130px;
}
#tblServiceDelivery .ra-sd-col-service .badge {
    white-space: nowrap;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.3rem 0.55rem;
    border-radius: 999px;
}
#tblServiceDelivery .ra-sd-col-period small {
    line-height: 1.25;
}
#tblServiceDelivery .ra-sd-col-pipeline .pipeline-bar {
    margin: 0;
}
#tblServiceDelivery .ra-sd-col-status {
    min-width: 110px;
}

/* 2a. Service Delivery KPI tile bar: 6 tiles must wrap cleanly, never clip. */
.ra-stats-bar {
    flex-wrap: wrap;
    gap: 0.5rem;
}
.ra-stats-bar .ra-stat-card {
    flex: 1 1 auto;
    min-width: 110px;
    overflow: hidden;
}
.ra-stats-bar .ra-stat-card .stat-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* 3. Overview KPI tile labels: tiny breathing room so they don't kiss the
      value line. (Icon+value already share .ra-tile-top.) */
.ra-overview-tile .ra-tile-label {
    padding-top: 0.25rem;
    line-height: 1.25;
}

/* 3a. Overview side cards: tighten empty-state rhythm so icon + title sit
       closer and CTA isn't orphaned far below body. RA-scoped. */
#overviewContent .profile-card-body .bh-empty-state {
    padding: 1.5rem 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
#overviewContent .profile-card-body .bh-empty-state .bh-empty-icon {
    margin: 0 auto 0.25rem;
    font-size: 2.25rem;
}
#overviewContent .profile-card-body .bh-empty-state .bh-empty-title {
    margin: 0 auto 0.25rem;
}
#overviewContent .profile-card-body .bh-empty-state .bh-empty-body {
    margin: 0 auto 0.5rem;
}

/* 4. Capacity sub-pills row: now a top-level row (.mb-3 owns spacing).
   The legacy nested-in-actions override is gone; per-sub-pane yellow headers
   no longer need the top-margin nudge. */

/* 4b. Capacity sub-pane visibility (2026-05-15 fix).
   When the sub-panes lived as siblings of #tabcapacity (pre-fix), Bootstrap's
   `.tab-content > .tab-pane { display: none }` rule (child combinator) hid
   them by default. After the 2026-05-14 nesting fix moved them inside
   #tabcapacity, that selector no longer matches (they're grandchildren of
   .tab-content), so all 5 sub-panes rendered visible at once until
   switchCapacitySubPill ran. Restore the hidden-by-default behaviour with
   an attribute-scoped rule that does not depend on DOM depth.

   2026-05-15 follow-up: outer EH tabs (#ResultsTabs) were ALSO reported as
   showing every pane stacked vertically -- clicking Schedule, Capacity, or
   Business Impact appended their content to whichever pane was already
   visible. Re-assert Bootstrap's `display:none` default for outer tabs with
   !important and explicit `.active` block override, scoped via the
   `#ResultsTabs + .tab-content >` combinator so it cannot leak to other
   tab systems on the page (modals, Site.Master #myTabs, Capacity sub-panes
   inside #tabcapacity which are not direct children of .tab-content). */
.tab-pane[data-cap-subpane] {
    display: none;
}
.tab-pane[data-cap-subpane].show.active,
.tab-pane[data-cap-subpane].active {
    display: block;
}
#ResultsTabs + .tab-content > .tab-pane {
    display: none !important;
}
#ResultsTabs + .tab-content > .tab-pane.active {
    display: block !important;
}

/* 5. Pipeline Forecast empty state: canonical .bh-empty-state rhythm. */
#pfEmpty.bh-empty-state {
    padding: 2.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}
#pfEmpty .bh-empty-icon {
    margin: 0 auto 0.75rem;
}
#pfEmpty .bh-empty-title {
    margin: 0 auto 0.5rem;
}
#pfEmpty .bh-empty-body {
    margin: 0 auto;
}

/* 5a. Pipeline Forecast sub-cards: body italic line sits 1rem under header. */
#tabpipelineforecast .profile-card .profile-card-header.yellow {
    margin-bottom: 0;
}
#tabpipelineforecast .profile-card .profile-card-body {
    padding-top: 1rem;
}

/* 6. Yellow header card: small subtitles wrap consistently. The original
      min-height:68px was dropped 2026-05-14 -- forced every band to hero
      height on every viewport, fighting the canonical clamp() padding.
      Single-line headers now render at ~40px naturally. */
.profile-card-header.yellow .profile-card-title small {
    line-height: 1.35;
    display: inline-block;
}

/* 7. Trend chart legend: Chart.js renders its own legend inside <canvas>,
      so it already inherits the .ra-trend-chart-wrap max-width. Re-state
      the wrap so legend + chart share the same constrained box. */
.ra-trend-chart-wrap canvas {
    max-width: 100%;
    height: auto;
}
/* === end RA alignment sweep 2026-05-11 === */

/* === AM + DP alignment sweep 2026-05-11 === */
/* Chairman flagged alignment 3-5x across sessions. CSS-only fix across
   AM kanban + DP grid/schedule/gantt + DP KPI tiles + awaiting-first panel. */

/* ---------- 1. AM kanban Active cards: badge slot + title ellipsis ---------- */
/* Title row: flex header so badge is fixed-width slot and title truncates
   when long. Without min-width:0, flex children with text-overflow ellipsis
   refuse to shrink. */
.kanban-card > .d-flex.justify-content-between {
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}
.kanban-card .kanban-card-title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Badge slot: any badge or detail-link icon sits on a fixed-width rail so
   cards with/without SIGNED badge line up vertically across the lane. */
.kanban-card .kanban-card-detail-link,
.kanban-card > .d-flex.justify-content-between > .badge,
.kanban-card > .d-flex.justify-content-between > .bh-eng-state-badge {
    flex: 0 0 auto;
}
/* 2-line meta -> single line ellipsis. The status/service/date row was
   wrapping when service name was long. */
.kanban-card .kanban-card-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Action row: equal-padding buttons across NE + LEGACY variants. */
.kanban-card .kanban-card-actions .btn,
.kanban-card .kanban-card-actions .btn-cta {
    padding: 4px 8px;
    line-height: 1.2;
}
.kanban-card .kanban-card-actions .btn-cta + .btn-cta {
    margin-left: 4px;
}

/* ---------- 2. AM kanban lane headers: equal heights so cards align ---------- */
/* Provisional / Draft / Pending / Active have different sub-line lengths +
   count badge widths. Force a common min-height so the first card in each
   column lines up. */
.bh-am-lane-header {
    min-height: 76px;
}
.bh-am-lane-sub {
    /* one-line so 2-line subtitles don't push lane bodies down */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- 3. DP Schedule view: tabular weeks + axis padding ---------- */
.bh-sched-week-header { font-variant-numeric: tabular-nums; }
/* "(unassigned)" axis label: keep flush with named-resource rows. */
.bh-sched-axis-cell {
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
    line-height: 1.3;
}

/* ---------- 4. DP Grid view: column alignment + actions min-width ---------- */
/* Actions column needs a min-width so NE rows (3 buttons) and legacy rows
   (2 buttons) don't shift the start of the Activity column. */
#activitiesTable thead th:first-child,
#activitiesTable tbody td:first-child {
    min-width: 132px;
    white-space: nowrap;
}
/* Right-align Hours (numeric) -- 8th column. Centre Stage/Type badges. */
#activitiesTable thead th:nth-child(8),
#activitiesTable tbody td:nth-child(8) {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
#activitiesTable thead th:nth-child(4),
#activitiesTable tbody td:nth-child(4),
#activitiesTable thead th:nth-child(7),
#activitiesTable tbody td:nth-child(7) {
    text-align: center;
}
/* Legacy rows: brief notes border-bottom missing visually because lighter
   background reduces contrast. Force a slightly darker bottom rule. */
#activitiesTable tbody tr.bh-legacy-row {
    opacity: 0.92;
}
#activitiesTable tbody tr.bh-legacy-row td {
    border-bottom: 1px solid var(--border-medium, #d4d8dc) !important;
}
[data-theme="dark"] #activitiesTable tbody tr.bh-legacy-row td {
    border-bottom-color: var(--border-medium-dark, #3a3f47) !important;
}

/* ---------- 6. Schedule KPI tiles: vertical centring (size from canonical .bh-kpi) ---------- */
#scheduleStatsBar .bh-kpi {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ---------- 7. DP "Agreements awaiting first activity" cards uniform ---------- */
/* Grid auto-fills cards to 240px min. At 4/3/2-up the card heights vary
   when meta line is short or long. Force min-height + ellipsis the meta. */
.empty-agreements-grid .empty-agreement-card {
    min-height: 110px;
    justify-content: space-between;
}
.empty-agreements-grid .empty-agreement-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.empty-agreements-grid .empty-agreement-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}
.empty-agreements-grid .empty-agreement-cta {
    margin-top: auto;
}
/* === end AM + DP alignment sweep 2026-05-11 === */

/* === DP Grid soft pills 2026-05-11 ===
   Chairman: "deliverable badge is harsh on your eyes". Outlined soft pills -- same
   information, lower visual weight. */
.bh-deliv-pill {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-purple-tint, #f8f4fc);
    border: 1px solid rgba(61, 26, 111, 0.22);
    border-radius: 12px;
    line-height: 1.5;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}
.bh-legacy-pill {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-muted, #6c757d);
    background: transparent;
    border: 1px dashed var(--border-medium, #cbd0d4);
    border-radius: 12px;
    line-height: 1.5;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    vertical-align: middle;
}
[data-theme="dark"] .bh-deliv-pill {
    color: var(--brand-primary-light, #c4a7e7);
    background: rgba(196, 167, 231, 0.08);
    border-color: rgba(196, 167, 231, 0.25);
}
[data-theme="dark"] .bh-legacy-pill {
    color: var(--text-muted-dark, #9aa0a6);
    border-color: var(--border-medium-dark, #4a5057);
}
/* === end DP Grid soft pills === */

/* === RA Capacity strip -- portfolio utilisation traffic-light row (RA > Capacity > Utilisation, 2026-05-12) === */
.ra-cap-strip { display: flex; gap: 6px; flex-wrap: wrap; }
.ra-cap-tile {
    flex: 1 1 0;
    min-width: 64px;
    border-radius: 8px;
    padding: 8px 4px;
    text-align: center;
    border: 1px solid var(--border-default, #ddd);
    background: var(--bg-subtle, #fafafa);
}
.ra-cap-tile .cap-month { font-size: 0.72rem; color: var(--text-muted, #999); }
.ra-cap-tile .cap-pct   { font-size: 1.15rem; font-weight: 700; line-height: 1.2; color: var(--text-body, #555); }
.ra-cap-tile .cap-hrs   { font-size: 0.7rem; color: var(--text-muted, #999); }
.ra-cap-tile .cap-slack { font-size: 0.66rem; color: var(--text-muted, #bbb); }
.ra-cap-tile.is-current { box-shadow: inset 0 0 0 2px var(--brand-primary, #3d1a6f); }
.ra-cap-tile.cap-ok   { background: var(--status-success-bg, #e7f4e8); }
.ra-cap-tile.cap-ok   .cap-pct { color: var(--status-success-text, #2e7d32); }
.ra-cap-tile.cap-warn { background: var(--status-warning-bg, #fff4e3); }
.ra-cap-tile.cap-warn .cap-pct { color: var(--status-warning-text, #8a6d00); }
.ra-cap-tile.cap-over { background: var(--status-danger-bg, #fdeaea); }
.ra-cap-tile.cap-over .cap-pct { color: var(--status-danger-text, #c62828); }
/* Phase 3B.5 (2026-05-28): under-band = "not enough load" -- info palette
   (light blue tint). Empty utilisation isn't an error; it's a heads-up. */
.ra-cap-tile.cap-under { background: var(--status-info-bg, #e3f2fd); }
.ra-cap-tile.cap-under .cap-pct { color: var(--status-info-text, #1565c0); }
.ra-cap-tile.cap-na   .cap-pct { color: var(--text-muted, #999); }
.ra-cap-alert { font-size: 0.8rem; margin: 8px 2px 0; }
.ra-cap-alert a { white-space: nowrap; }
@media (max-width: 768px) {
    .ra-cap-tile { flex: 1 1 calc(33.333% - 4px); }
}
/* === end RA Capacity strip === */

/* End of Engagement Design System component CSS */

/* === Phase 3 finish (2026-05-13): Scoping lane sub-state badges. ===
   Predicate (first match): Revising > Speculative > Sold-Scoping > AM-Initiated.
   Rendered by bhScopingBadge() in AccountManagement.aspx -- shown only on Scoping
   lane cards (flag=0). Suppressed for Pending Sig / Active / Closed where lane
   conveys state. Each variant has a tooltip via .mytooltip + tooltiptext attr. */
.bh-scope-badge-wrap {
    margin: 0 0 0.4rem 0;
    line-height: 1;
}
.bh-scope-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: 1px solid transparent;
    white-space: nowrap;
}
.bh-scope-badge i {
    font-size: 0.7em;
}
.bh-scope-revising {
    background: var(--status-warning-bg, #fff3cd);
    color: var(--status-warning-text, #856404);
    border-color: var(--status-warning-border, #ffeeba);
}
.bh-scope-speculative {
    background: var(--bg-slate-tint, #eef1f5);
    color: var(--text-muted, #6c757d);
    border-color: rgba(108, 117, 125, 0.25);
}
.bh-scope-sold {
    background: rgba(111, 66, 193, 0.10);
    color: var(--brand-primary, #6f42c1);
    border-color: rgba(111, 66, 193, 0.25);
}
.bh-scope-am {
    background: rgba(13, 110, 253, 0.10);
    color: #0d6efd;
    border-color: rgba(13, 110, 253, 0.25);
}
[data-theme=dark] .bh-scope-revising  { background: rgba(255, 193, 7, 0.15); color: #ffd966; border-color: rgba(255, 193, 7, 0.30); }
[data-theme=dark] .bh-scope-speculative { background: rgba(255, 255, 255, 0.06); color: #c9d1d9; border-color: rgba(255, 255, 255, 0.15); }
[data-theme=dark] .bh-scope-sold      { background: rgba(180, 142, 246, 0.18); color: #c8a8ff; border-color: rgba(180, 142, 246, 0.35); }
[data-theme=dark] .bh-scope-am        { background: rgba(64, 156, 255, 0.18); color: #79b8ff; border-color: rgba(64, 156, 255, 0.35); }
/* === end Phase 3 Scoping badges === */

/* === Jen H3 (2026-05-13): Brief RTE compact sizing.
   Replaces the  wrapper hack on the 5 RTE instances in the
   Service Agreement Brief tab. zoom is non-standard (breaks Firefox layout math)
   and scaled click targets along with the text. font-size + min-height instead. */
.brief-rte iframe { min-height: 100px !important; }
.brief-rte .RadEditor, .brief-rte .reToolBar { font-size: 0.875rem; }

/* Plan tab dark-mode contrast pass (2026-05-15 Jen). Card-body inheritance was technically
   reaching --text-primary but the accumulated text-muted/small surrounds made the financial
   rollups + inline editor name read as grey-on-grey. Lock these surfaces to explicit body
   colour so they pop. */
.bh-plan-financials { color: var(--text-body, #2c2c2c); }
.bh-plan-financials strong { color: var(--text-primary, #212529); }
.bh-resalloc-row .bh-resalloc-name { color: var(--text-primary, #212529); }
.bh-team-variance { color: var(--text-body, #2c2c2c); }
.bh-sched-axis-cell { color: var(--text-body, #2c2c2c); }
[data-theme="dark"] .bh-meta-key { color: var(--text-secondary, #bcbcbc); }

/* 2026-05-16 Jen: Service Delivery + Capacity triage toggle pills. Default
   uses .btn-outline-secondary; pressed state inverts to brand purple. The
   button keeps the outline button geometry so pressing it doesn't reflow
   the toolbar. Hover uses brightness() rather than a non-existent
   --brand-primary-dark token so it tracks both themes (#3d1a6f and #a76bdf). */
.btn.bh-active,
.btn.bh-active:focus {
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #ffffff);
    box-shadow: 0 0 0 0.15rem rgba(61, 26, 111, 0.18);
}
.btn.bh-active:hover {
    background-color: var(--brand-primary, #3d1a6f);
    border-color: var(--brand-primary, #3d1a6f);
    color: var(--text-on-dark, #ffffff);
    filter: brightness(0.88);
}

/* Service Delivery activity-detail: month-grouped table. Compact, neutral
   month band -- separates a 60-activity flat dump (e.g. Brooks) into 6 short
   monthly groups. */
.sd-detail-month-header td {
    background: var(--bg-muted, #ececf1);
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary, #3d1a6f);
    padding: 0.4rem 0.6rem !important;
    border-top: 1px solid var(--border-default, #d1d5db);
}

/* 2026-05-25 (George): .ra-month-cell + .ra-filter-chip(s) rules removed -- they
   styled the deleted per-engagement Utilisation table + its Compare/View toggles. */

/* ===========================================================================
   Phase 4 Resource Leave Calendar (2026-05-17, Jen polish pass)
   Leave strip with weekday-letter cells, hero legend, branded action bar,
   holiday month-chip grid, KPI-friendly empty states.
=========================================================================== */

/* Compact intro callout (replaces dense .bh-page-intro for this tab) */
.bh-leave-intro {
    padding: 0.6rem 0.9rem;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, rgba(61,26,111,0.05), rgba(253,185,19,0.04));
    border-left: 3px solid var(--brand-accent, #fdb913);
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--text-body, #333);
}
.bh-leave-intro i { color: var(--brand-primary, #3d1a6f); }
.bh-leave-intro strong { color: var(--brand-primary, #3d1a6f); }
[data-theme="dark"] .bh-leave-intro {
    background: linear-gradient(135deg, rgba(167,107,223,0.08), rgba(212,168,36,0.06));
    color: var(--text-body, #d4d4d4);
}
[data-theme="dark"] .bh-leave-intro strong,
[data-theme="dark"] .bh-leave-intro i { color: #c9b3eb; }

/* Branded action bar -- picker on left, actions on right, single rounded strip */
.bh-leave-toolbar {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.7rem;
    background: var(--bg-subtle, #faf9fc);
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 8px;
    flex-wrap: wrap;
}
.bh-leave-tb-picker {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-width: 240px;
}
.bh-leave-tb-label {
    /* Form label: sentence case per UI rules (Jen 2026-05-17). Tab/sub-tab labels
       are ALL CAPS, but inline form labels read more naturally as "Resource". */
    font-size: 0.78rem;
    text-transform: none;
    letter-spacing: 0;
    color: var(--text-muted, #666);
    font-weight: 600;
    margin: 0;
    flex-shrink: 0;
}
.bh-leave-intro-help {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    color: var(--text-muted, #888);
    cursor: help;
}
.bh-leave-intro-help i { font-size: 0.95rem; }
.bh-leave-intro-help:hover i { color: var(--brand-primary, #3d1a6f); }
[data-theme="dark"] .bh-leave-intro-help:hover i { color: #c9b3eb; }
.bh-leave-tb-select { max-width: 320px; flex: 1 1 auto; }
.bh-leave-tb-actions { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
[data-theme="dark"] .bh-leave-toolbar {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
}

/* Hero card (Next 3 months) -- legend lives inline in the section title */
.bh-leave-hero-legend {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--text-muted, #666);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
}
.bh-leave-hero .ra-section-h { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; }
.bh-leave-leg-item { display: inline-flex; align-items: center; gap: 4px; }
.bh-leave-leg-swatch {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid transparent;
    vertical-align: middle;
}
.bh-leave-leg-swatch.is-today   { background: transparent; border: 2px solid var(--brand-primary, #3d1a6f); }
.bh-leave-leg-swatch.is-holiday { background: var(--brand-accent, #fdb913); }
.bh-leave-leg-swatch.is-weekend { background: var(--bg-muted, #ececec); border: 1px solid var(--border-default, #d9d9d9); }
.bh-leave-leg-swatch.is-h1 { background: rgba(61,26,111,0.16); border-color: transparent; }
.bh-leave-leg-swatch.is-h2 { background: rgba(61,26,111,0.40); border-color: transparent; }
.bh-leave-leg-swatch.is-h3 { background: rgba(61,26,111,0.64); border-color: transparent; }
.bh-leave-leg-swatch.is-h4 { background: rgba(61,26,111,0.92); border-color: transparent; }
.bh-leave-ramp { display: inline-flex; align-items: center; gap: 2px; margin: 0 2px; }
.bh-leave-ramp .bh-leave-leg-swatch { width: 16px; height: 12px; border-radius: 2px; }
.bh-leave-ramp-cap { font-size: 0.7rem; color: var(--text-muted, #888); }
[data-theme="dark"] .bh-leave-leg-swatch.is-holiday { background: #d4a824; }
[data-theme="dark"] .bh-leave-leg-swatch.is-weekend { background: #3a3450; border-color: #3a3450; }
[data-theme="dark"] .bh-leave-leg-swatch.is-h1 { background: rgba(167,107,223,0.20); }
[data-theme="dark"] .bh-leave-leg-swatch.is-h2 { background: rgba(167,107,223,0.42); }
[data-theme="dark"] .bh-leave-leg-swatch.is-h3 { background: rgba(167,107,223,0.66); }
[data-theme="dark"] .bh-leave-leg-swatch.is-h4 { background: rgba(167,107,223,0.95); }

/* Next-3-months heat calendar: 7-column month grids. Cell shade = share of the
   team away that day; weekends grey, holidays gold (override), today ringed. */
.bh-leave-cal-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.bh-leave-cal-navbtn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid var(--border-default, #e6e1ee);
    background: var(--card-bg, #ffffff);
    color: var(--brand-primary, #3d1a6f);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
}
.bh-leave-cal-navbtn:disabled { opacity: 0.4; cursor: default; }
.bh-leave-cal-today {
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 8px;
    cursor: pointer;
    background: var(--cream-lighter, #fffbf0);
    color: var(--brand-primary, #3d1a6f);
    padding: 6px 12px;
    font-size: 0.78rem;
    font-weight: 600;
}
.bh-leave-cal-today.is-active { background: var(--brand-accent, #fdb913); border-color: var(--brand-accent, #fdb913); }
.bh-leave-cal-range { font-weight: 700; font-size: 0.86rem; color: var(--text-body, #333); min-width: 120px; }
[data-theme="dark"] .bh-leave-cal-navbtn { background: #2a2438; color: #cbb6f5; border-color: #3a3450; }
[data-theme="dark"] .bh-leave-cal-today { background: #2a2438; color: #cbb6f5; border-color: #3a3450; }
[data-theme="dark"] .bh-leave-cal-today.is-active { background: #d4a824; color: #1a0f2e; border-color: #d4a824; }
[data-theme="dark"] .bh-leave-cal-range { color: #e7e1f5; }
.bh-leave-pastmore { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; padding: 10px 0 2px; }
.bh-leave-pastmore-cap { font-size: 0.78rem; color: var(--text-muted, #888); }
.bh-leave-cal { display: flex; flex-wrap: wrap; gap: 18px; }
.bh-leave-cal-month { flex: 1 1 280px; min-width: 248px; }
.bh-leave-cal-monthlabel {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-primary, #3d1a6f);
    border-left: 3px solid var(--brand-accent, #fdb913);
    padding-left: 0.5rem;
    margin-bottom: 0.5rem;
}
[data-theme="dark"] .bh-leave-cal-monthlabel { color: #cbb6f5; }
.bh-leave-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }
.bh-leave-cal-dow span { text-align: center; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; color: var(--text-muted, #999); }
.bh-leave-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.bh-leave-cal-blank { aspect-ratio: 1 / 1; }
.bh-leave-cal-day {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 6px;
    position: relative;
    cursor: pointer;
    background: var(--bg-subtle, #faf9fc);
    color: var(--text-body, #333);
    border: 1px solid var(--border-default, #e6e1ee);
    transition: transform 100ms ease;
}
.bh-leave-cal-day:hover { transform: translateY(-1px); }
.bh-leave-cal-cnt { position: absolute; top: 2px; right: 4px; font-size: 0.5rem; font-weight: 700; opacity: 0.7; }
.bh-leave-cal-day.is-weekend { background: var(--bg-muted, #f0eef5); color: var(--text-muted, #999); border-color: transparent; }
.bh-leave-cal-day.is-holiday { background: var(--brand-accent, #fdb913); color: var(--brand-primary, #3d1a6f); border-color: var(--brand-accent, #fdb913); }
.bh-leave-cal-day.is-h1 { background: rgba(61,26,111,0.16); border-color: transparent; }
.bh-leave-cal-day.is-h2 { background: rgba(61,26,111,0.40); border-color: transparent; }
.bh-leave-cal-day.is-h3 { background: rgba(61,26,111,0.64); color: #ffffff; border-color: transparent; }
.bh-leave-cal-day.is-h4 { background: rgba(61,26,111,0.92); color: #ffffff; border-color: transparent; }
.bh-leave-cal-day.is-today { box-shadow: 0 0 0 2px var(--brand-primary, #3d1a6f), 0 0 0 4px rgba(253,185,19,0.45); z-index: 1; }
[data-theme="dark"] .bh-leave-cal-day { background: var(--bg-muted, #2a2438); color: var(--text-body, #d4d4d4); border-color: var(--border-default, #3a3450); }
[data-theme="dark"] .bh-leave-cal-day.is-weekend { background: #221c30; color: var(--text-muted, #777); border-color: transparent; }
[data-theme="dark"] .bh-leave-cal-day.is-holiday { background: #d4a824; color: #1a0f2e; border-color: #d4a824; }
[data-theme="dark"] .bh-leave-cal-day.is-h1 { background: rgba(167,107,223,0.20); }
[data-theme="dark"] .bh-leave-cal-day.is-h2 { background: rgba(167,107,223,0.42); }
[data-theme="dark"] .bh-leave-cal-day.is-h3 { background: rgba(167,107,223,0.66); color: #1a0f2e; }
[data-theme="dark"] .bh-leave-cal-day.is-h4 { background: rgba(167,107,223,0.95); color: #1a0f2e; }
[data-theme="dark"] .bh-leave-cal-day.is-today { box-shadow: 0 0 0 2px #a76bdf, 0 0 0 4px rgba(212,168,36,0.4); }

/* Holiday-list chip tooltip alignment (kept from prior strip block). */
.bh-holiday-chip.mytooltip:hover::after { left: 0; white-space: nowrap; }

/* Day detail popover: who is off + quick add. Closes on outside click / Esc. */
.bh-leave-pop {
    position: fixed;
    z-index: 1029;
    width: 268px;
    border-radius: 12px;
    overflow: hidden;
    background: var(--card-bg, #ffffff);
    border: 1px solid var(--border-default, #e6e1ee);
    box-shadow: 0 10px 34px rgba(20,10,40,0.24);
}
[data-theme="dark"] .bh-leave-pop { background: #1e1830; border-color: #3a3450; }
.bh-leave-pop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: linear-gradient(135deg, var(--brand-primary, #3d1a6f), #5a2d82);
    color: #ffffff;
    padding: 10px 12px;
    font-weight: 700;
    font-size: 0.82rem;
}
.bh-leave-pop-x { border: 0; background: transparent; color: #ffffff; font-size: 1.2rem; line-height: 1; cursor: pointer; padding: 0 2px; }
.bh-leave-pop-body { padding: 12px; }
.bh-leave-pop-cover { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted, #888); margin-bottom: 8px; }
[data-theme="dark"] .bh-leave-pop-cover { color: #9b93b5; }
.bh-leave-pop-hol { display: flex; align-items: center; font-size: 0.82rem; font-weight: 600; color: var(--brand-primary, #3d1a6f); margin-bottom: 8px; }
[data-theme="dark"] .bh-leave-pop-hol { color: #cbb6f5; }
.bh-leave-pop-muted { font-size: 0.82rem; color: var(--text-muted, #888); }
[data-theme="dark"] .bh-leave-pop-muted { color: #9b93b5; }
.bh-leave-pop-list { list-style: none; margin: 0; padding: 0; }
.bh-leave-pop-list li { display: flex; align-items: center; font-size: 0.82rem; padding: 6px 0; border-top: 1px solid var(--border-default, #eee); color: var(--text-body, #333); }
.bh-leave-pop-list li:first-child { border-top: 0; }
[data-theme="dark"] .bh-leave-pop-list li { color: #e7e1f5; border-top-color: #3a3450; }
.bh-leave-pop-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 9px; flex-shrink: 0; background: #8a82a0; }
.bh-leave-pop-dot.is-annual { background: #5a2d82; }
.bh-leave-pop-dot.is-sick { background: #ed174c; }
.bh-leave-pop-dot.is-parental { background: #1aa179; }
.bh-leave-pop-dot.is-lieu { background: #fdb913; }
.bh-leave-pop-dot.is-holiday { background: #fdb913; }
.bh-leave-pop-pill { margin-left: auto; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 8px; border-radius: 10px; background: rgba(138,130,160,0.18); color: #6f6790; }
.bh-leave-pop-pill.is-annual { background: rgba(90,45,130,0.14); color: #5a2d82; }
.bh-leave-pop-pill.is-sick { background: rgba(237,23,76,0.14); color: #ed174c; }
.bh-leave-pop-pill.is-parental { background: rgba(26,161,121,0.16); color: #13855f; }
.bh-leave-pop-pill.is-lieu { background: rgba(253,185,19,0.24); color: #8a6500; }
[data-theme="dark"] .bh-leave-pop-pill.is-annual { color: #c9a9ef; }
[data-theme="dark"] .bh-leave-pop-pill.is-parental { color: #43c79e; }
[data-theme="dark"] .bh-leave-pop-pill.is-lieu { color: #e6b53c; }
.bh-leave-pop-foot { padding: 10px 12px; border-top: 1px solid var(--border-default, #eee); }
[data-theme="dark"] .bh-leave-pop-foot { border-top-color: #3a3450; }
.bh-leave-pop-add { width: 100%; border: 1px dashed var(--brand-primary, #3d1a6f); background: transparent; color: var(--brand-primary, #3d1a6f); border-radius: 8px; padding: 8px; font-size: 0.78rem; font-weight: 600; cursor: pointer; }
[data-theme="dark"] .bh-leave-pop-add { color: #cbb6f5; border-color: #a76bdf; }

/* Public holiday chip grid -- month groups + branded date-chip cards */
.bh-holiday-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.bh-holiday-month {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.bh-holiday-month-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding-left: 0.4rem;
    border-left: 3px solid var(--brand-accent, #fdb913);
}
.bh-holiday-month-items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem;
}
.bh-holiday-chip {
    display: flex;
    align-items: stretch;
    gap: 0.6rem;
    padding: 0.5rem 0.6rem;
    background: var(--bg-subtle, #faf9fc);
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 8px;
    transition: transform 120ms ease, box-shadow 120ms ease;
    position: relative; /* anchor for .mytooltip ::after pseudo */
}
.bh-holiday-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(61,26,111,0.08);
}
.bh-holiday-chip-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: var(--brand-accent, #fdb913);
    color: var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    padding: 0.3rem 0.5rem;
    min-width: 44px;
}
.bh-holiday-chip-day {
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.bh-holiday-chip-mon {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-top: 1px;
}
.bh-holiday-chip-body { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; min-width: 0; }
.bh-holiday-chip-name {
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bh-holiday-chip-meta {
    font-size: 0.7rem;
    color: var(--text-muted, #666);
    margin-top: 1px;
}
.bh-holiday-chip.is-clickable { cursor: pointer; }
.bh-holiday-chip-edit {
    align-self: center;
    color: var(--text-muted, #999);
    opacity: 0;
    transition: opacity 120ms ease;
    flex: 0 0 auto;
    padding: 0 0.3rem;
}
.bh-holiday-chip.is-clickable:hover .bh-holiday-chip-edit { opacity: 1; color: var(--brand-primary, #3d1a6f); }
[data-theme="dark"] .bh-holiday-chip.is-clickable:hover .bh-holiday-chip-edit { color: #c9b3eb; }
[data-theme="dark"] .bh-holiday-chip {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
}
[data-theme="dark"] .bh-holiday-chip-name { color: #c9b3eb; }
[data-theme="dark"] .bh-holiday-chip-date { background: #d4a824; color: #1a0f2e; }

/* Empty-state polish for the leave tab */
.bh-leave-empty { padding: 2rem 1rem; }

/* ---------------------------------------------------------------------------
   Jen 2026-05-17 redesign:
   - Right-pad the leave list so the floating AI chat avatar (fixed bottom-right)
     never sits on top of the row action button.
   - Compact-row treatment: single-line period cell with dates + duration + hours.
   - Quiet sync-freshness meta row + holiday expander button.
--------------------------------------------------------------------------- */
/* Fixed layout so columns keep their width across views (content can't reflow them). */
.bh-leave-list { table-layout: fixed; width: 100%; }
.bh-leave-list td:not(:last-child) { overflow: hidden; text-overflow: ellipsis; }
.bh-leave-list th:last-child,
.bh-leave-list td:last-child {
    padding-right: 60px; /* clears bhAiAvatar at the right gutter */
}
.bh-leave-list td { vertical-align: middle; }
.bh-leave-period { white-space: nowrap; }
.bh-leave-notes-cell {
    max-width: 280px;
    color: var(--text-muted, #666);
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 768px) {
    .bh-leave-list th:last-child,
    .bh-leave-list td:last-child { padding-right: 0.75rem; } /* avatar tucks away on mobile */
    .bh-leave-period { white-space: normal; }
}

.bh-leave-meta-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.bh-leave-meta-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--bg-subtle, #faf9fc);
    border: 1px solid var(--border-default, #e6e1ee);
    font-size: 0.75rem;
    color: var(--text-muted, #666);
}
.bh-leave-meta-chip.text-danger { background: rgba(237,23,76,0.08); border-color: rgba(237,23,76,0.25); }
[data-theme="dark"] .bh-leave-meta-chip {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
    color: var(--text-body, #d4d4d4);
}

.bh-holiday-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 0.75rem;
}
.bh-holiday-more-wrap .btn { min-width: 220px; }

/* Team Capacity grid -- inline-edit cells (Jen 2026-05-17). Weekly Hours +
   Billable % live in input fields directly in the table; tighten the form-
   control to fit cell metrics so the grid doesn't bloat when editing toggles
   on. Totals row gets a slate fill + top border to delineate footer. */
.bh-cap-grid .bh-cap-edit-cell {
    padding: 0.3rem 0.5rem;
}
.bh-cap-grid .bh-cap-input {
    width: 100%;
    max-width: 92px;
    margin-left: auto;
    padding: 0.15rem 0.4rem;
    font-size: 0.85rem;
    text-align: right;
}
.bh-cap-grid .bh-cap-input:focus {
    border-color: var(--brand-primary, #3d1a6f);
    box-shadow: 0 0 0 2px rgba(61, 26, 111, 0.15);
}
.bh-cap-grid tr.bh-cap-total-row td {
    background: var(--bg-slate-tint, #f4f0fb);
    border-top: 2px solid var(--brand-primary, #3d1a6f);
    font-weight: 700;
}
[data-theme="dark"] .bh-cap-grid tr.bh-cap-total-row td {
    background: var(--bg-slate-tint-2, #2a2438);
    border-top-color: #a76bdf;
}

/* Schedule view: leave block on a resource row (axisMode=Resource only). */
.bh-sched-leave-block {
    position: absolute;
    top: 2px;
    bottom: 2px;
    background: repeating-linear-gradient(
        135deg,
        rgba(149, 149, 149, 0.20) 0,
        rgba(149, 149, 149, 0.20) 6px,
        rgba(149, 149, 149, 0.40) 6px,
        rgba(149, 149, 149, 0.40) 12px
    );
    border: 1px dashed var(--text-muted, #999);
    border-radius: 4px;
    z-index: 1;
    pointer-events: auto;
    cursor: help;
    color: var(--text-muted, #6c757d);
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
[data-theme="dark"] .bh-sched-leave-block {
    background: repeating-linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.08) 0,
        rgba(255, 255, 255, 0.08) 6px,
        rgba(255, 255, 255, 0.16) 6px,
        rgba(255, 255, 255, 0.16) 12px
    );
    border-color: var(--text-muted, #888);
}

/* Resolve panel: leave-conflict badge on an overloaded source row. */
.bh-resolve-leave-conflict {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(253, 185, 19, 0.18);
    color: #856404;
    border: 1px solid var(--brand-accent, #fdb913);
    font-size: 0.75rem;
    font-weight: 600;
    margin-left: 0.5rem;
}
[data-theme="dark"] .bh-resolve-leave-conflict {
    background: rgba(212, 168, 36, 0.18);
    color: #d4a824;
    border-color: #d4a824;
}

/* ===========================================================================
   Rebalance redesign (2026-05-17 Jen)
   Mini stacked bars on heatmap cells + compact Resolve list + drill-in modal
=========================================================================== */

/* Mini stacked bar + inline text breakdown under headroom number in heatmap cell */
.bh-cap-stackbar {
    display: flex;
    width: 100%;
    height: 4px;
    margin-top: 4px;
    background: rgba(0,0,0,0.06);
    border-radius: 2px;
    overflow: hidden;
}
.bh-cap-breakdown {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 3px;
    font-size: 0.65rem;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted, #666);
}
.bh-cap-bd { display: inline-flex; align-items: center; gap: 2px; }
.bh-cap-bd-k {
    display: inline-block;
    font-weight: 700;
    color: #fff;
    background: #3d1a6f;
    border-radius: 2px;
    padding: 0 3px;
    font-size: 0.6rem;
    line-height: 1.2;
    letter-spacing: 0.04em;
}
.bh-cap-bd-c .bh-cap-bd-k { background: #3d1a6f; }                /* Committed -- brand primary */
.bh-cap-bd-f .bh-cap-bd-k { background: #a76bdf; }                /* Forecast  -- brand primary light */
.bh-cap-bd-l .bh-cap-bd-k { background: #ed174c; color: #fff; }   /* Personal leave -- danger red so booked PTO stands out */
.bh-cap-bd-h .bh-cap-bd-k { background: #fdb913; color: #3d1a6f; }/* Tenant holiday -- brand accent gold */
[data-theme="dark"] .bh-cap-breakdown { color: var(--text-muted, #999); }
[data-theme="dark"] .bh-cap-bd-c .bh-cap-bd-k { background: #a76bdf; color: #1a0f2e; }
[data-theme="dark"] .bh-cap-bd-f .bh-cap-bd-k { background: #c9b3eb; color: #1a0f2e; }
[data-theme="dark"] .bh-cap-bd-l .bh-cap-bd-k { background: #ed174c; color: #fff; }
[data-theme="dark"] .bh-cap-bd-h .bh-cap-bd-k { background: #d4a824; color: #1a0f2e; }
.bh-cap-stackbar-seg {
    display: block;
    height: 100%;
}
.bh-cap-seg-c { background: #3d1a6f; }      /* Committed -- brand primary */
.bh-cap-seg-f { background: #a76bdf; }      /* Forecast -- brand primary light */
.bh-cap-seg-l { background: #fdb913; }      /* Leave -- brand accent */
[data-theme="dark"] .bh-cap-stackbar { background: rgba(255,255,255,0.08); }
[data-theme="dark"] .bh-cap-seg-c { background: #a76bdf; }
[data-theme="dark"] .bh-cap-seg-f { background: #c9b3eb; }
[data-theme="dark"] .bh-cap-seg-l { background: #d4a824; }

/* Legend swatch (12px square) */
.bh-cap-bar-swatch {
    display: inline-block;
    width: 12px;
    height: 8px;
    border-radius: 2px;
    vertical-align: middle;
}

/* Compact Rebalance list (replaces expanded Resolve cards) */
.bh-rebalance-list { display: flex; flex-direction: column; gap: 0.4rem; }
.bh-rebalance-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--border-default, #e6e1ee);
    border-left-width: 4px;
    border-radius: 6px;
    background: var(--bg-subtle, #faf9fc);
    cursor: pointer;
    transition: background-color 120ms ease, transform 120ms ease;
}
.bh-rebalance-row:hover {
    background: var(--bg-purple-tint, #f0ebf7);
    transform: translateX(2px);
}
.bh-rebalance-row.severity-mild     { border-left-color: #fd7e14; }
.bh-rebalance-row.severity-moderate { border-left-color: #e8590c; }
.bh-rebalance-row.severity-severe   { border-left-color: var(--brand-danger, #ed174c); }
.bh-rebalance-row-name { font-weight: 600; color: var(--brand-primary, #3d1a6f); flex: 0 0 auto; }
.bh-rebalance-row-role {
    font-size: 0.7rem;
    padding: 1px 7px;
    border-radius: 999px;
    background: rgba(61,26,111,0.10);
    color: var(--brand-primary, #3d1a6f);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.bh-rebalance-row-month { font-size: 0.85rem; color: var(--text-muted, #666); flex: 1 1 auto; }
.bh-rebalance-row-over {
    font-weight: 700;
    color: var(--brand-danger, #ed174c);
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}
.bh-rebalance-row-chevron { color: var(--text-muted, #999); flex: 0 0 auto; }
[data-theme="dark"] .bh-rebalance-row {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
}
[data-theme="dark"] .bh-rebalance-row:hover {
    background: rgba(167, 107, 223, 0.12);
}
[data-theme="dark"] .bh-rebalance-row-name { color: #c9b3eb; }
[data-theme="dark"] .bh-rebalance-row-role { background: rgba(167,107,223,0.18); color: #c9b3eb; }

/* Rebalance drill-in modal */
.bh-rb-kpi-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.5rem;
    margin-bottom: 1rem;
}
@media (max-width: 700px) {
    .bh-rb-kpi-row { grid-template-columns: repeat(2, 1fr); }
}
.bh-rb-kpi {
    padding: 0.6rem;
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 6px;
    text-align: center;
    background: var(--bg-subtle, #faf9fc);
}
.bh-rb-kpi-value {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.bh-rb-kpi-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #666);
    margin-top: 0.2rem;
}
.bh-rb-kpi.is-committed .bh-rb-kpi-value { color: #3d1a6f; }
.bh-rb-kpi.is-forecast  .bh-rb-kpi-value { color: #a76bdf; }
.bh-rb-kpi.is-leave     .bh-rb-kpi-value { color: #fdb913; }
.bh-rb-kpi.is-available .bh-rb-kpi-value { color: #28a745; }
.bh-rb-kpi.is-over .bh-rb-kpi-value { color: var(--brand-danger, #ed174c); }
[data-theme="dark"] .bh-rb-kpi { background: var(--bg-muted, #2a2438); border-color: var(--border-default, #3a3450); }
[data-theme="dark"] .bh-rb-kpi-value { color: #c9b3eb; }

.bh-rb-headroom {
    text-align: center;
    margin-bottom: 1rem;
    padding: 0.5rem;
    border-radius: 6px;
}
.bh-rb-headroom.is-over { background: rgba(237,23,76,0.10); color: var(--brand-danger, #ed174c); }
.bh-rb-headroom.is-ok   { background: rgba(40,167,69,0.10); color: #28a745; }
.bh-rb-headroom strong { font-size: 1.1rem; font-variant-numeric: tabular-nums; }

.bh-rb-section-title {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #666);
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid var(--border-default, #e6e1ee);
}

/* Activity rows (collapsible, slider inside) */
.bh-rb-activity-list { display: flex; flex-direction: column; gap: 0.3rem; }
.bh-rb-activity {
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 6px;
    background: var(--bg-card, var(--bg-surface, #ffffff));
    overflow: hidden;
}
.bh-rb-activity-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.7rem;
    cursor: pointer;
    user-select: none;
}
.bh-rb-activity-head:hover { background: var(--bg-purple-tint, #f0ebf7); }
.bh-rb-activity-chevron {
    transition: transform 150ms ease;
    color: var(--text-muted, #666);
    flex: 0 0 auto;
}
.bh-rb-activity.is-open > .bh-rb-activity-head .bh-rb-activity-chevron { transform: rotate(90deg); }
.bh-rb-activity-name { flex: 1 1 auto; font-weight: 600; color: var(--brand-primary, #3d1a6f); }
.bh-rb-activity-meta { font-size: 0.78rem; color: var(--text-muted, #666); flex: 0 0 auto; }
/* 2026-05-18 Item A: per-activity Edit launcher (Rebalance modal -> Modal v2). */
.bh-rb-activity-edit {
    flex: 0 0 auto;
    border: 1px solid var(--border-default, #e6e1ee);
    background: var(--bg-surface, #fff);
    color: var(--brand-primary, #3d1a6f);
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
    padding: 0;
}
.bh-rb-activity-edit:hover {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-color: var(--brand-primary, #3d1a6f);
}
[data-theme="dark"] .bh-rb-activity-edit {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
    color: #c9b3eb;
}
[data-theme="dark"] .bh-rb-activity-edit:hover { background: #c9b3eb; color: #2a2438; }
.bh-rb-activity-tag {
    display: inline-block;
    font-size: 0.65rem;
    padding: 1px 6px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-right: 0.4rem;
    font-weight: 700;
}
.bh-rb-activity-tag.committed { background: rgba(61,26,111,0.12); color: #3d1a6f; }
.bh-rb-activity-tag.forecast  { background: rgba(167,107,223,0.18); color: #6f42c1; }
.bh-rb-activity-body {
    padding: 0.7rem;
    border-top: 1px solid var(--border-default, #e6e1ee);
    display: none;
}
.bh-rb-activity.is-open > .bh-rb-activity-body { display: block; }
[data-theme="dark"] .bh-rb-activity { background: var(--bg-muted, #2a2438); border-color: var(--border-default, #3a3450); }
[data-theme="dark"] .bh-rb-activity-name { color: #c9b3eb; }
[data-theme="dark"] .bh-rb-activity-tag.committed { background: rgba(167,107,223,0.18); color: #c9b3eb; }
[data-theme="dark"] .bh-rb-activity-tag.forecast  { background: rgba(201,179,235,0.18); color: #c9b3eb; }

/* -----------------------------------------------------------------------------
   Rebalance modal -- expanded-row Team SHAPE bar + Distribution CURVE picker
   (2026-05-18 parity with Modal v2 Team + Distribution tabs).
   Per-activity blocks live INSIDE bh-rb-activity-body so each expanded row owns
   its own shape/curve UI. DOM IDs prefixed rbAct{activityId}_ to avoid clashes
   with Modal v2's hard-coded ae* IDs (both can mount on the same page).
   ----------------------------------------------------------------------------- */
.bh-rb-shape-bar {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 0.35rem; padding: 0.35rem 0.5rem; margin-bottom: 0.5rem;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 6px;
}
.bh-rb-shape-bar .bh-rb-shape-label { font-size: 0.78rem; color: var(--text-muted, #6c757d); margin-right: 0.2rem; }
.bh-rb-shape-bar .bh-rb-shape-hint { font-size: 0.72rem; color: var(--text-muted, #6c757d); margin-left: auto; font-style: italic; }
[data-theme="dark"] .bh-rb-shape-bar { background: var(--bg-muted, #2a2438); border-color: var(--border-default, #3a3450); }
[data-theme="dark"] .bh-rb-shape-bar .bh-rb-shape-label,
[data-theme="dark"] .bh-rb-shape-bar .bh-rb-shape-hint { color: #c9b3eb; }

.bh-rb-curve-section {
    margin-top: 0.75rem; padding-top: 0.6rem;
    border-top: 1px dashed var(--border-default, #e6e1ee);
}
.bh-rb-curve-section .bh-rb-curve-heading {
    display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
    font-size: 0.85rem; font-weight: 600; color: var(--brand-primary, #3d1a6f);
    margin-bottom: 0.4rem;
}
.bh-rb-curve-applyto {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem;
    margin-bottom: 0.5rem;
}
.bh-rb-curve-applyto .bh-rb-applyto-label { font-size: 0.78rem; color: var(--text-muted, #6c757d); }
.bh-rb-curve-applyto select { max-width: 220px; }

/* Rebalance curve picker now routes through the shared BHDistributionPicker
   (.bh-dist-picker-cards / .bh-dist-picker-card in BUZZHub.css) -- the former
   .bh-rb-curve-picker / .bh-rb-curve-card styles were retired with the duplicate
   rbBuildMiniSvg renderer (SSOT consolidation). */
.bh-rb-curve-preview {
    margin-top: 0.5rem; padding: 8px 10px 4px; min-height: 140px;
    background: var(--bg-subtle, #f8f9fa);
    border: 1px solid var(--border-default, #e6e1ee);
    border-radius: 6px;
}
.bh-rb-curve-preview .bh-rb-prev-bars { display: flex; align-items: stretch; gap: 6px; height: 110px; padding: 4px 4px 0; }
.bh-rb-curve-preview .bh-rb-prev-bars .bar-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; }
.bh-rb-curve-preview .bh-rb-prev-bars .bar-val { font-size: 0.7rem; font-weight: 600; color: var(--text-body, #1e1e1e); margin-bottom: 2px; height: 14px; line-height: 14px; }
.bh-rb-curve-preview .bh-rb-prev-bars .bar-wrap { flex: 1 1 auto; width: 60%; max-width: 60px; display: flex; align-items: end; background: rgba(0,0,0,0.04); border-radius: 3px 3px 0 0; }
.bh-rb-curve-preview .bh-rb-prev-bars .bar { width: 100%; background: var(--brand-accent, #fdb913); border-radius: 3px 3px 0 0; transition: height 0.15s ease; min-height: 2px; }
.bh-rb-curve-preview .bh-rb-prev-bars .bar-date { font-size: 0.62rem; color: var(--text-muted, #6b6378); margin-top: 4px; height: 12px; }
.bh-rb-curve-preview .bh-rb-prev-subtitle { font-size: 0.72rem; color: var(--text-muted, #6c757d); margin-top: 4px; padding-left: 4px; }
.bh-rb-curve-preview .bh-rb-prev-empty { color: var(--text-muted, #6c757d); font-size: 0.78rem; padding: 12px; text-align: center; font-style: italic; }
[data-theme="dark"] .bh-rb-curve-preview { background: var(--bg-muted, #2a2438); border-color: var(--border-default, #3a3450); }
[data-theme="dark"] .bh-rb-curve-preview .bh-rb-prev-bars .bar-wrap { background: rgba(255,255,255,0.05); }
[data-theme="dark"] .bh-rb-curve-preview .bh-rb-prev-subtitle { color: #c9b3eb; }

.bh-rb-custom-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.4rem; }
.bh-rb-custom-toolbar-spacer { flex: 1 1 auto; }
.bh-rb-custom-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.35rem; margin-top: 0.4rem; }
.bh-rb-custom-grid .rcg-cell { display: flex; flex-direction: column; align-items: stretch; }
.bh-rb-custom-grid .rcg-cell label { font-size: 0.65rem; color: var(--text-muted, #6c757d); margin-bottom: 1px; }
.bh-rb-custom-grid .rcg-cell .rcg-input-row { display: flex; align-items: center; gap: 6px; }
.bh-rb-custom-grid .rcg-cell .rcg-input-row input[type="range"] { flex: 1 1 60%; min-width: 0; accent-color: var(--brand-primary, #3d1a6f); }
.bh-rb-custom-grid .rcg-cell .rcg-input-row input[type="number"] { flex: 0 0 60px; font-size: 0.78rem; padding: 2px 4px; height: 26px; }
.bh-rb-custom-sum { font-size: 0.72rem; margin-top: 4px; }
.bh-rb-custom-sum.is-warn { color: var(--state-warning-text, #b07d0e); }
.bh-rb-custom-sum.is-ok { color: var(--state-success-text, #28a745); }

/* -----------------------------------------------------------------------------
   Awaiting First Activity (Phase 3 of 2026-05-18-key-contact-plus-empty-state-plan)
   Overview tile drilldown panel + Plan sub-pill empty-state banner. Surfaces
   Active engagements with no stories yet so the GAD sees them at-a-glance and
   can land in Plan with the activity modal already open.
   ----------------------------------------------------------------------------- */
.bh-awaiting-panel {
    background: linear-gradient(135deg, rgba(253, 185, 19, 0.08) 0%, rgba(253, 185, 19, 0.03) 100%);
    border: 1px solid var(--brand-gold, #fdb913);
    border-left: 4px solid var(--brand-gold, #fdb913);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    box-shadow: 0 1px 4px rgba(61, 26, 111, 0.06);
}
.bh-awaiting-header {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%;
    background: transparent;
    border: 0;
    padding: 0.35rem 0.25rem;
    cursor: pointer;
    color: var(--brand-primary, #3d1a6f);
    font-weight: 600;
    font-size: 0.95rem;
    text-align: left;
}
.bh-awaiting-header:hover { color: var(--brand-gold-dark, #c89500); }
.bh-awaiting-header:focus { outline: 2px solid var(--brand-gold, #fdb913); outline-offset: 2px; }
.bh-awaiting-title { display: inline-flex; align-items: center; }
.bh-awaiting-chev { color: var(--brand-primary, #3d1a6f); font-size: 0.85rem; transition: transform 0.15s ease; }
.bh-awaiting-list { display: flex; flex-direction: column; gap: 0.25rem; margin-top: 0.4rem; padding-top: 0.4rem; border-top: 1px solid rgba(253, 185, 19, 0.25); }
.bh-awaiting-row {
    display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
    padding: 0.3rem 0.6rem;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-default, #e1e1e6);
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.12s ease, border-color 0.12s ease;
    font-size: 0.85rem;
    line-height: 1.4;
}
.bh-awaiting-row:hover {
    background: rgba(253, 185, 19, 0.06);
    border-color: var(--brand-gold, #fdb913);
}
.bh-awaiting-row-text { flex: 1 1 auto; color: var(--text-body, #555); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bh-awaiting-row-signed { color: var(--text-muted, #888); font-size: 0.75rem; margin-left: 0.5rem; }
.bh-awaiting-add { padding: 0.1rem 0.55rem !important; font-size: 0.75rem !important; line-height: 1.3 !important; flex: 0 0 auto; }

/* Plan sub-pill empty-state banner */
.bh-plan-empty-banner {
    display: flex; align-items: center; gap: 1rem;
    background: var(--bg-slate-tint, #f1f3f5);
    border: 1px solid var(--border-default, #e1e1e6);
    border-left: 4px solid var(--brand-gold, #fdb913);
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}
.bh-plan-empty-icon {
    font-size: 2rem; color: var(--brand-primary, #3d1a6f);
    flex: 0 0 auto;
}
.bh-plan-empty-text { flex: 1 1 auto; }
.bh-plan-empty-text h4 { color: var(--brand-primary, #3d1a6f); font-weight: 600; }
.bh-plan-empty-sub { color: var(--text-muted, #666); font-size: 0.95rem; }
.bh-plan-empty-cta { flex: 0 0 auto; }

[data-theme="dark"] .bh-awaiting-panel,
[data-theme="dark"] .bh-plan-empty-banner {
    background: var(--bg-muted, #2a2438);
    border-color: var(--border-default, #3a3450);
}
[data-theme="dark"] .bh-awaiting-row {
    background: var(--card-bg, #1c1a22);
    border-color: var(--border-default, #3a3450);
}
[data-theme="dark"] .bh-awaiting-row:hover {
    background: var(--bg-muted, #3a3450);
}
[data-theme="dark"] .bh-awaiting-header h4,
[data-theme="dark"] .bh-plan-empty-text h4,
[data-theme="dark"] .bh-plan-empty-icon { color: #c9b3eb; }

/* =============================================================
   Stage J (2026-05-18): Promotion Capacity Diff modal
   GAD "what-if" confidence check before promoting Forecast -> Committed.
   ============================================================= */
.bh-promote-diff-modal .bh-promote-diff-subtitle {
    border-bottom: 1px solid var(--border-default, #eaeaea);
}
.bh-promote-diff-actname {
    font-weight: 600;
    color: var(--text-body, #555);
    font-size: 1.05rem;
    margin-bottom: 0.25rem;
}
.bh-promote-diff-meta {
    color: var(--text-muted, #6c757d);
    font-size: 0.85rem;
}
.bh-promote-diff-meta strong { color: var(--text-body, #555); }

.bh-promote-diff-resources {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.bh-promote-diff-resource-row {
    display: grid;
    grid-template-columns: 1fr 240px;
    gap: 0.75rem;
    align-items: center;
    padding: 0.6rem 0.75rem;
    background: var(--card-bg, #f8f5fb);
    border: 1px solid var(--border-default, #e3d8ec);
    border-radius: 6px;
}
.bh-promote-diff-resource-head {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.bh-promote-diff-resource-name {
    font-weight: 600;
    color: var(--text-body, #555);
}
.bh-promote-diff-resource-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
}
.bh-promote-diff-resource-numbers {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    font-size: 0.8rem;
    color: var(--text-body, #555);
    padding-top: 0.4rem;
    border-top: 1px dashed var(--border-default, #eaeaea);
}
.bh-promote-diff-num-lbl {
    font-weight: 600;
    color: var(--text-muted, #6c757d);
    margin-right: 0.25rem;
}

.bh-promote-diff-chart {
    grid-row: 1 / span 1;
    grid-column: 2 / 3;
    justify-self: end;
}
.bh-promote-diff-svg {
    display: block;
    width: 240px;
    height: 110px;
}

/* Bar segment colours -- match the Schedule sub-pill (Forecast/Committed) palette. */
.bh-promote-diff-bar-committed { fill: #3d1a6f; }
.bh-promote-diff-bar-forecast  { fill: #a76bdf; opacity: 0.85; }
.bh-promote-diff-bar-free      { fill: #d8f3e5; opacity: 0.6; }
.bh-promote-diff-bar-over      { fill: #ed174c; opacity: 0.65; }
.bh-promote-diff-cap-line {
    stroke: #2a2436;
    stroke-width: 1.5;
    stroke-dasharray: 4 3;
    opacity: 0.85;
}
.bh-promote-diff-bar-label {
    font-size: 10px;
    fill: var(--text-muted, #6c757d);
    font-family: inherit;
}

/* Chips */
.bh-promote-diff-chip {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
}
.bh-promote-diff-chip--committed {
    background: #3d1a6f;
    color: #fff;
}
.bh-promote-diff-chip--forecast {
    background: rgba(167, 107, 223, 0.18);
    color: #5c2a96;
}

/* Delta + warning */
.bh-promote-diff-delta {
    font-size: 0.78rem;
    color: var(--text-muted, #6c757d);
}
.bh-promote-diff-delta--inc {
    color: #28a745;
    font-weight: 600;
}
.bh-promote-diff-warn {
    display: inline-flex;
    align-items: center;
    background: rgba(237, 23, 76, 0.10);
    color: var(--brand-danger, #ed174c);
    padding: 0.1rem 0.45rem;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
}

/* Explainer footer line */
.bh-promote-diff-explainer { font-size: 0.78rem; }

/* Footer bar layout */
.bh-promote-diff-footer-bar {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
}

/* Mobile compact */
@media (max-width: 768px) {
    .bh-promote-diff-resource-row {
        grid-template-columns: 1fr;
    }
    .bh-promote-diff-chart {
        grid-column: 1 / -1;
        justify-self: stretch;
    }
    .bh-promote-diff-svg { width: 100%; }
    .bh-promote-diff-footer-bar { flex-direction: column-reverse; align-items: stretch; }
    .bh-promote-diff-footer-bar .btn { width: 100%; }
}

/* Dark mode tokens */
[data-theme="dark"] .bh-promote-diff-resource-row {
    background: var(--card-bg, #1c1a22);
    border-color: var(--border-default, #3a3450);
}
[data-theme="dark"] .bh-promote-diff-meta,
[data-theme="dark"] .bh-promote-diff-num-lbl,
[data-theme="dark"] .bh-promote-diff-bar-label,
[data-theme="dark"] .bh-promote-diff-delta { color: #c9b3eb; }
[data-theme="dark"] .bh-promote-diff-resource-numbers { border-top-color: #3a3450; }
[data-theme="dark"] .bh-promote-diff-bar-committed { fill: #c79bf2; }
[data-theme="dark"] .bh-promote-diff-bar-forecast  { fill: #7a4eb0; opacity: 0.85; }
[data-theme="dark"] .bh-promote-diff-bar-free      { fill: #2d4a39; opacity: 0.5; }
[data-theme="dark"] .bh-promote-diff-cap-line      { stroke: #e6e0f0; }
[data-theme="dark"] .bh-promote-diff-chip--committed { background: #c79bf2; color: #1c1a22; }
[data-theme="dark"] .bh-promote-diff-chip--forecast  { background: rgba(199, 155, 242, 0.20); color: #d6bbf2; }

/* =========================================================================
   Phase 5 Task 5.2 -- Activity Modal Distribution-tab panel switcher
   Cap Impact table + Flex-Hours Cap Status chips. Bi-Monthly cadence note
   reuses existing text styling. Dark-mode via theme-tokens.css.
   ========================================================================= */
.bh-cap-impact-table { font-size: 0.875rem; margin-bottom: 0; }
.bh-cap-impact-table .over { color: var(--status-danger-text, #c5221f); font-weight: 600; }
.bh-cap-impact-table .ok { color: var(--text-muted, #6c757d); }
.bh-cap-impact-table tr.is-over { background: rgba(197, 34, 31, 0.06); }

.bh-cap-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.bh-cap-chip {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.25rem 0.6rem; border-radius: 999px;
    font-size: 0.8125rem; line-height: 1.2;
    background: var(--bg-subtle, #f1f3f5);
    color: var(--text-primary, #212529);
    border: 1px solid var(--border-default, #dee2e6);
}
.bh-cap-chip.is-over {
    background: rgba(197, 34, 31, 0.10);
    color: var(--status-danger-text, #c5221f);
    border-color: var(--status-danger-text, #c5221f);
    font-weight: 600;
}
.bh-cap-chip .bh-cap-chip-label { opacity: 0.75; }

@media (max-width: 768px) {
    .bh-cap-impact-table { font-size: 0.78rem; }
    .bh-cap-impact-table th, .bh-cap-impact-table td { padding: 0.35rem 0.4rem; }
    .bh-cap-impact-table th:nth-child(3),
    .bh-cap-impact-table td:nth-child(3) { display: none; }
    .bh-cap-chips { gap: 0.35rem; }
    .bh-cap-chip { font-size: 0.78rem; padding: 0.2rem 0.5rem; }
}

/* =========================================================================
   Rolling Forecast (Phase 4 Task 4.2 -- 2026-05-23)
   Spec: .claude/commands/2026-05-22-rolling-forecast-with-actuals.md
   Markup: Pages/Planning/EngagementHub.aspx#bhRollingForecast{Banner,History,Future}
   ========================================================================= */

.bh-rf-banner {
    background: var(--bg-subtle, #f1f3f5);
    border: 1px solid var(--border-default, #dee2e6);
    border-radius: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
}

.bh-rf-banner-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.bh-rf-tag {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
    border-radius: 999px;
    font-size: 0.75rem;
    line-height: 1.4;
    white-space: nowrap;
}

.bh-rf-summary {
    color: var(--text-primary, #212529);
}

.bh-rf-overdeliv {
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--status-danger-bg, rgba(197, 34, 31, 0.10));
    color: var(--status-danger-text, #c5221f);
    border-radius: 0.25rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.bh-rf-overdeliv .btn {
    /* Override default btn-outline-light on the danger background.
       Surface flips to dark in dark mode so the rose --status-danger-text
       stays readable -- a naked #fff here would go light-on-light. */
    color: var(--status-danger-text, #c5221f);
    background: var(--bg-surface, #fff);
    border-color: currentColor;
}

.bh-rf-history,
.bh-rf-future {
    padding: 0.5rem;
    border-radius: 0.25rem;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #dee2e6);
}

.bh-rf-row {
    display: grid;
    grid-template-columns: 5rem 4rem 1fr 4rem 1fr 6rem;
    gap: 0.5rem;
    align-items: center;
    padding: 0.25rem 0;
    font-size: 0.875rem;
    border-bottom: 1px solid var(--border-default, #dee2e6);
}

.bh-rf-row:last-child {
    border-bottom: 0;
}

.bh-rf-row-label {
    color: var(--text-muted, #6c757d);
    font-variant-numeric: tabular-nums;
}

.bh-rf-bar {
    height: 0.85rem;
    border-radius: 0.2rem;
    overflow: hidden;
    background: var(--bg-muted, #f1f3f5);
}

.bh-rf-bar-fill {
    height: 100%;
    transition: width 0.15s ease;
}

.bh-rf-bar-fill.forecast {
    background: var(--text-muted, #6c757d);
}

.bh-rf-bar-fill.actual-under {
    background: var(--brand-primary, #3d1a6f);
}

.bh-rf-bar-fill.actual-over {
    background: var(--status-danger-text, #c5221f);
}

.bh-rf-delta {
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.bh-rf-delta.over {
    color: var(--status-danger-text, #c5221f);
}

.bh-rf-delta.under {
    color: var(--text-muted, #6c757d);
}

.bh-rf-delta.on-plan {
    color: var(--brand-primary, #3d1a6f);
}

.bh-rf-future-row {
    display: grid;
    grid-template-columns: 5rem 4rem 1fr 6rem;
    gap: 0.5rem;
    align-items: center;
    padding: 0.25rem 0;
    font-size: 0.875rem;
}

.bh-rf-future-row input[type="number"] {
    width: 5rem;
    padding: 0.15rem 0.35rem;
    font-size: 0.875rem;
}

/* GFS time model: coarse (month/quarter/year) buckets are read-only -- a static
   planned value instead of an editable input. Italic label distinguishes the
   coarse far-future window from the editable weekly near-term. */
.bh-rf-planned-ro {
    color: var(--text-secondary, #6c757d);
    font-weight: 600;
}
.bh-rf-future-row.bh-rf-gran-month .bh-rf-row-label,
.bh-rf-future-row.bh-rf-gran-quarter .bh-rf-row-label,
.bh-rf-future-row.bh-rf-gran-year .bh-rf-row-label {
    font-style: italic;
}

.bh-rf-future-actions {
    display: flex;
    gap: 0.5rem;
}

/* Phase 5 Task 5.2: per-resource forecast-vs-actual bars in the rebalance modal. */
.bh-rf-resource-bars {
    margin-bottom: 0.75rem;
}
.bh-rf-resource-bars:empty {
    display: none;
}
.bh-rf-section-title {
    margin-bottom: 0.25rem;
}
.bh-rf-resource-head {
    margin: 0.5rem 0 0.15rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-primary, #212529);
    word-break: break-all;
}

@media (max-width: 768px) {
    .bh-rf-row {
        grid-template-columns: 4rem 1fr 1fr 5rem;
    }
    /* Hide raw F: / A: numeric labels on mobile -- bars + delta still tell the story */
    .bh-rf-row > .bh-rf-row-forecast-num,
    .bh-rf-row > .bh-rf-row-actual-num {
        display: none;
    }
    .bh-rf-future-row {
        grid-template-columns: 4rem 4rem 1fr 5rem;
    }
}

/* =========================================================================
   Distribution-editor collapsible groups (BHDistributionEditor, 2026-05-27).
   Each data group (Capacity Impact / History / Forecast / Per-resource) gets a
   clickable header that collapses its body, so the modal isn't one long scroll.
   ========================================================================= */
.bhde-sec-head {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    user-select: none;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-primary, #3d1a6f);
    padding: 0.3rem 0;
    border-bottom: 1px solid var(--border-default, #e5e5e5);
    margin-bottom: 0.5rem;
}
.bhde-sec-head:hover { color: var(--brand-accent, #fdb913); }
.bhde-sec-head .bhde-sec-chevron {
    margin-left: auto;
    transition: transform 0.15s ease;
    font-size: 0.7rem;
}
.bhde-collapsed > .bhde-sec-head .bhde-sec-chevron { transform: rotate(-90deg); }
.bhde-collapsed > :not(.bhde-sec-head) { display: none !important; }
[data-theme="dark"] .bhde-sec-head { color: var(--page-title-color, #e5d9ff); }

/* State-B view hides the legacy editor chrome (shape picker, live preview, apply-to
   row, old capacity panels). Class + !important so legacy re-render paths cannot undo it. */
.bhde-stateb-on .bh-act-curve-heading,
.bhde-stateb-on [data-bhde="applyrow"],
.bhde-stateb-on [data-bhde="curveCards"],
.bhde-stateb-on [data-bhde="customWrap"],
.bhde-stateb-on [data-bhde="durationStepper"],
.bhde-stateb-on .bh-act-preview-wrap,
.bhde-stateb-on [data-bhde="capImpact"],
.bhde-stateb-on [data-bhde="capStatus"],
.bhde-stateb-on [data-bhde="cadence"] { display: none !important; }

/* State-A (planning) duration stepper -- always-visible +/- the planning view was missing.
   Reuses the State-B .bhde-b-end-stepper / .bhde-b-step controls; only the row chrome is new. */
.bhde-a-duration {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.bhde-a-duration .bhde-a-duration-lbl { font-size: 0.8rem; font-weight: 700; }
.bhde-a-duration .bhde-b-end-stepper { margin-left: 0; }
.bhde-a-duration .bhde-a-duration-weeks {
    min-width: 48px;
    text-align: center;
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--text-body, #333);
}
.bhde-a-duration .bhde-a-duration-end { font-size: 0.72rem; color: var(--text-muted, #888); }

/* ============================================================================
   Workload board (2026-06-02) -- DELIVERY > Workload. Matrix reuses .bh-cap-bucket-*
   colour bands; only layout/structure classes are new here.
   ============================================================================ */
.bh-wl-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.bh-wl-title { font-weight:600; }
.bh-wl-sub { font-weight:400; opacity:.7; font-size:.82rem; margin-left:6px; }
.bh-wl-winnav { display:flex; align-items:center; gap:8px; }
.bh-wl-winlabel { font-size:.85rem; min-width:120px; text-align:center; }
.bh-wl-board { overflow-x:auto; }
.bh-wl-matrix { border-collapse:separate; border-spacing:6px; width:100%; }
.bh-wl-matrix th { font-size:.74rem; opacity:.7; font-weight:600; text-align:center; white-space:nowrap; }
.bh-wl-matrix th.bh-wl-name-h, .bh-wl-name { position:sticky; left:0; z-index:1; background:var(--bg-surface, #fff); text-align:left; min-width:165px; }
.bh-wl-name { border-radius:8px; padding:7px 10px; display:flex; align-items:center; gap:8px; }
.bh-wl-prow { cursor:pointer; }
.bh-wl-prow:hover .bh-wl-name { background:var(--bg-slate-tint, #f1efe9); }
.bh-wl-prow:hover .bh-wl-pname { color:var(--brand-purple, #3d1a6f); }
.bh-wl-prow.open .bh-wl-name { box-shadow:0 0 0 1px var(--brand-purple, #3d1a6f) inset; }
.bh-wl-chevron { font-size:.7rem; color:var(--text-muted, #8a8a8a); flex:0 0 auto; }
.bh-wl-prow.open .bh-wl-chevron { color:var(--brand-purple, #3d1a6f); }
.bh-wl-nametext { display:flex; flex-direction:column; min-width:0; }
.bh-wl-pname { font-weight:600; font-size:.85rem; display:block; }
.bh-wl-name small { opacity:.55; font-size:.71rem; }
.bh-wl-cell { border-radius:8px; padding:7px 8px; min-height:58px; vertical-align:top; }
.bh-wl-cell.bh-wl-locked { opacity:.55; }
.bh-wl-top { font-size:.71rem; opacity:.65; }
.bh-wl-tag { font-size:.74rem; font-weight:700; margin-top:6px; }
.bh-wl-detail > td { padding:0; }
.bh-wl-loading { padding:20px; text-align:center; opacity:.6; }

/* ============================================================================
   Workload board v2 (2026-06-02) -- the FIX SURFACE (levers + destinations) and
   the hand-off TRANSACTION MODAL balance grid. Ports the approved mockups
   (fix-flow.html / fix-modal.html) from inline styles to real classes. Reuses
   the same brand language as the v1 matrix above: purple = var(--brand-purple),
   tint = var(--eh-tint), success/danger via the existing status-text tokens.
   Every colour is var(--token, fallback) so dark mode flips cleanly.
   ============================================================================ */

/* --- Fix surface: the focused (person, week) overload panel --- */
.bh-wl-fix { border:1px solid var(--brand-purple, #3d1a6f); border-radius:12px; overflow:hidden; background:var(--eh-tint, rgba(61,26,111,.04)); margin-top:10px; }
.bh-wl-fix-head { padding:12px 16px; border-bottom:1px solid var(--border-subtle, rgba(61,26,111,.2)); background:rgba(214,69,69,.10); }
.bh-wl-fix-head h3 { margin:0; font-size:1rem; color:var(--brand-purple, #3d1a6f); }
.bh-wl-fix-head .sub { font-size:.84rem; margin-top:2px; opacity:.85; }
.bh-wl-fix-head .over { color:var(--status-danger-text, #b23232); font-weight:800; }

/* over-week switcher chips (re-focus the panel on another over-week) */
.bh-wl-fix-head .bh-wl-wkchips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.bh-wl-wkchip { font-size:.74rem; font-weight:600; border-radius:20px; padding:3px 10px; cursor:pointer; border:1px solid var(--border-subtle, rgba(0,0,0,.12)); background:var(--bg-surface, #fff); color:inherit; }
.bh-wl-wkchip:hover { border-color:var(--brand-purple, #3d1a6f); }
.bh-wl-wkchip.over { color:var(--status-danger-text, #b23232); border-color:rgba(214,69,69,.45); background:rgba(214,69,69,.10); }

/* two columns: levers (left) | destinations (right), divider between */
.bh-wl-fix-cols { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.bh-wl-fix-col { padding:14px 16px; }
.bh-wl-fix-col.left { border-right:1px solid var(--border-subtle, rgba(0,0,0,.08)); }
.bh-wl-fix-col h4 { margin:0 0 4px; font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--brand-purple, #3d1a6f); opacity:.85; }
.bh-wl-fix-col .hint { font-size:.74rem; opacity:.6; margin-bottom:12px; }

/* a lever = a draggable activity chip */
.bh-wl-lever { display:flex; align-items:center; gap:9px; padding:8px 9px; border:1px solid var(--border-subtle, rgba(0,0,0,.12)); border-radius:8px; margin-bottom:7px; background:var(--bg-surface, #fff); cursor:grab; }
.bh-wl-lever .grip { color:var(--text-muted, #9a8a78); opacity:.6; letter-spacing:-2px; font-size:.9rem; flex:0 0 auto; }
.bh-wl-lever .nm { flex:1; font-size:.82rem; min-width:0; }
.bh-wl-lever .hr { font-weight:700; font-size:.84rem; color:var(--brand-purple, #3d1a6f); width:48px; text-align:right; flex:0 0 auto; }
.bh-wl-lever.lifted { border-color:var(--brand-accent, #fdb913); box-shadow:0 0 0 2px var(--brand-accent, #fdb913) inset, 0 6px 16px rgba(61,26,111,.2); transform:translateX(6px); }

/* folded sub-1.5h slivers (non-draggable) */
.bh-wl-slivers { font-size:.78rem; opacity:.6; padding:7px 9px; border:1px dashed var(--border-subtle, rgba(0,0,0,.18)); border-radius:8px; text-align:center; }

/* destinations: own free weeks + free teammates */
.bh-wl-destgroup { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; opacity:.6; margin:4px 0 7px; }
.bh-wl-destgroup + .bh-wl-destgroup, .bh-wl-dest + .bh-wl-destgroup { margin-top:12px; }
.bh-wl-dest { display:flex; align-items:center; gap:10px; padding:7px 9px; border-radius:8px; margin-bottom:6px; border:1px solid var(--border-subtle, rgba(0,0,0,.08)); }
.bh-wl-dest .nm { flex:1; font-size:.82rem; min-width:0; }
.bh-wl-dest .free { font-size:.78rem; font-weight:700; color:var(--status-success-text, #2c8049); white-space:nowrap; }
.bh-wl-dest .capbar { width:80px; height:7px; border-radius:4px; background:rgba(59,165,93,.18); overflow:hidden; flex:0 0 auto; }
.bh-wl-dest .capbar i { display:block; height:100%; background:var(--status-success, #3ba55d); }
.bh-wl-dest.can { background:rgba(59,165,93,.10); box-shadow:0 0 0 2px var(--status-success, #3ba55d) inset; }
.bh-wl-dest.can .takes { font-size:.72rem; color:var(--status-success-text, #2c8049); font-weight:700; white-space:nowrap; }

/* SortableJS wiring (see wireSortables in bh-workload-board.js).
 * - The receiver onMove returns false so the clone never enters the dest DOM, but as
 *   a belt-and-braces guard we still hide anything that does land in .bh-wl-dests-list.
 * - body.bh-wl-dragging is added/removed in the source Sortable's onStart/onEnd to
 *   suppress text-selection drift during the drag (mousedown -> mousemove was bleeding
 *   into a text selection on the labels) and to force the grabbing cursor everywhere. */
.bh-wl-dests-list > .bh-wl-lever,
.bh-wl-dests-list > .bh-wl-leverbar,
.bh-wl-dests-list .bh-wl-flight { display:none !important; }
body.bh-wl-dragging,
body.bh-wl-dragging * { -webkit-user-select:none !important; user-select:none !important; }
body.bh-wl-dragging,
body.bh-wl-dragging .bh-wl-lever { cursor:grabbing !important; }

/* --- Hand-off modal: the per-week balance grid (inside .modalPopup .body) --- */
.bal { width:100%; border-collapse:separate; border-spacing:0 6px; font-size:.82rem; }
.bal th { font-size:.68rem; text-transform:uppercase; letter-spacing:.03em; opacity:.55; font-weight:700; text-align:left; padding:0 8px; }
.bal td { padding:8px; background:var(--bg-slate-tint, #fafafa); border-top:1px solid var(--border-subtle, rgba(0,0,0,.05)); border-bottom:1px solid var(--border-subtle, rgba(0,0,0,.05)); }
.bal td:first-child { border-left:1px solid var(--border-subtle, rgba(0,0,0,.05)); border-radius:8px 0 0 8px; font-weight:600; }
.bal td:last-child { border-right:1px solid var(--border-subtle, rgba(0,0,0,.05)); border-radius:0 8px 8px 0; }
.bal tr.skip td { opacity:.5; }

/* "now" column (source person's current hours; over in danger) */
.amynow .over { color:var(--status-danger-text, #b23232); font-weight:700; }
.amynow small { opacity:.6; display:block; font-size:.68rem; }

/* slider visuals -- custom track/fill/knob. The native <input type=range> is
   nested INSIDE .track and layered over the visual (opacity:0); it captures all
   drag/click/keyboard while only the custom .fill + .knob render. Earlier it sat
   as a sibling of .track in .slidewrap with flex:1, so the browser-default thumb
   showed next to the custom knob -- read as "two sliders". */
.slidewrap { display:flex; align-items:center; gap:8px; }
.track { position:relative; height:6px; border-radius:4px; background:rgba(61,26,111,.15); flex:1; }
.track .fill { position:absolute; left:0; top:0; bottom:0; border-radius:4px; background:var(--brand-purple, #3d1a6f); pointer-events:none; }
.track .knob { position:absolute; top:50%; transform:translate(-50%,-50%); width:14px; height:14px; border-radius:50%; background:var(--bg-surface, #fff); border:2px solid var(--brand-purple, #3d1a6f); box-shadow:0 1px 3px rgba(0,0,0,.3); pointer-events:none; }
.track input[type=range].bh-wl-slider { position:absolute; left:0; top:-8px; width:100%; height:22px; margin:0; padding:0; opacity:0; cursor:pointer; }
.mvval { width:42px; text-align:right; font-weight:700; color:var(--brand-purple, #3d1a6f); }

/* receiver column -- ok (green) / capped (amber) + headroom bar */
.recv .ok { color:var(--status-success-text, #2c8049); }
.recv .cap { color:var(--status-warning-text, #9a7400); }
.recv small { display:block; opacity:.6; font-size:.68rem; }
.recvbar { height:6px; border-radius:4px; background:rgba(59,165,93,.18); overflow:hidden; margin-top:3px; }
.recvbar i { display:block; height:100%; background:var(--status-success, #3ba55d); }
.recvbar i.full { background:var(--status-warning, #e0a300); }

/* live summary; .warn = amber rate-change notice (non-blocking) */
.summary { margin-top:14px; background:var(--eh-tint, rgba(61,26,111,.04)); border:1px dashed var(--brand-purple, #3d1a6f); border-radius:8px; padding:11px 13px; font-size:.82rem; line-height:1.55; }
.summary b { color:var(--brand-purple, #3d1a6f); }
.summary.warn { background:var(--eh-warn-bg, #fff8e1); border:1px solid var(--status-warning, #e0a300); border-left:4px solid var(--status-warning, #e0a300); }
.summary.warn b { color:var(--status-warning-text, #9a7400); }

/* work picker row + intro + footer tip */
.picker { display:flex; align-items:center; gap:10px; font-size:.83rem; background:var(--eh-tint, rgba(61,26,111,.04)); border:1px solid var(--border-subtle, rgba(61,26,111,.12)); border-radius:8px; padding:9px 11px; margin-bottom:16px; }
.picker .lab { font-weight:600; color:var(--brand-purple, #3d1a6f); flex:0 0 auto; }
.picker select { flex:1; border:1px solid var(--border-subtle, rgba(0,0,0,.18)); border-radius:6px; padding:5px 8px; font-size:.82rem; background:var(--bg-surface, #fff); color:inherit; }
.picker .picker-static { flex:1; font-weight:500; color:inherit; padding:3px 0; }
.mintro { font-size:.84rem; opacity:.85; margin-bottom:14px; }
.altnote { font-size:.74rem; opacity:.6; }

/* =============================================================================
   Distribution tab State-B (shape-locked rolling forecast) view.
   Rendered by rfRenderStateB() in bh-distribution-editor.js.
   All new classes are prefixed bhde-b- to avoid collision with existing
   bh-rf-* (old forecast panels) and df-* (mockup prototype) classes.
   Brand palette: purple #3d1a6f, gold #fdb913, danger #ed174c.
   ============================================================================= */

/* Colour tokens for this module (fallbacks match light-mode values). */
.bhde-stateb {
    --bhde-col-actual:  #3d1a6f;
    --bhde-col-forecast: #fdb913;
    --bhde-col-over:    #ed174c;
    --bhde-col-ghost-bg: rgba(207, 200, 226, 0.2);
    --bhde-col-ghost-border: #cfc8e2;
    --bhde-col-leave-a: #fdeccf;
    --bhde-col-leave-b: #fbe1b0;
}
[data-theme="dark"] .bhde-stateb {
    --bhde-col-actual:  #a76bdf;
    --bhde-col-forecast: #d4a824;
    --bhde-col-over:    #f44060;
    --bhde-col-ghost-bg: rgba(100, 80, 150, 0.15);
    --bhde-col-ghost-border: #5a4580;
    --bhde-col-leave-a: #2a1e08;
    --bhde-col-leave-b: #3a2a10;
}

/* Lock notice (top of state-B view). */
.bhde-b-lock {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    background: var(--status-warning-bg, #fff8e8);
    border: 1px solid var(--status-warning-border, #f3dca0);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
    color: var(--status-warning-text, #7a5a12);
    margin-bottom: 0.85rem;
}
.bhde-b-lock .fas { margin-top: 0.1rem; flex-shrink: 0; }
[data-theme="dark"] .bhde-b-lock {
    background: var(--status-warning-bg);
    border-color: var(--status-warning-border);
    color: var(--status-warning-text);
}

/* Out-of-window banner -- shown in both states (A + B) when actuals exist in
   weeks outside the activity's planned [Start, GoLive] window. Same warning
   palette as the State-B lock so they read as a family, but lighter weight
   (no left accent, no "lock" mental model) -- this is a data-hygiene hint,
   not a state lock. */
.bhde-oow-banner {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    background: var(--status-warning-bg, #fff8e8);
    border: 1px solid var(--status-warning-border, #f3dca0);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
    color: var(--status-warning-text, #7a5a12);
    margin-bottom: 0.75rem;
}
.bhde-oow-banner .fas { margin-top: 0.1rem; flex-shrink: 0; }
[data-theme="dark"] .bhde-oow-banner {
    background: var(--status-warning-bg);
    border-color: var(--status-warning-border);
    color: var(--status-warning-text);
}

/* "Outside the plan window" sub-group INSIDE the History drawer -- visually muted
   vs the in-span rows so the two read as distinct: in-span is the plan record;
   out-of-window is a hygiene surface listing hours stranded outside the planned
   dates. Actual-only bar in a neutral muted tone, no forecast bar (there is no
   plan for those weeks). A dashed top-border separates it from the in-plan rows. */
.bhde-b-oow-sub {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0.6rem 0 0.3rem;
    padding-top: 0.5rem;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--text-muted, #6c757d);
    border-top: 1px dashed var(--border-default, #e7e3f3);
}
.bhde-b-hrow--oow .bhde-b-htrk-a {
    background: var(--text-muted, #9aa0a6);
    opacity: 0.7;
}
.bhde-b-hrow--oow .bhde-b-hrow-lbl,
.bhde-b-hrow--oow .bhde-b-hvar {
    color: var(--text-muted, #6c757d);
}

/* Section label row. */
.bhde-b-seclbl {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #999);
    font-weight: 700;
    margin: 0 0 0.45rem;
}

/* Card wrapper (sections 2 / 3 / 4). */
.bhde-b-card {
    border: 1px solid var(--border-default, #ececf2);
    border-radius: 9px;
    padding: 12px 14px;
    margin-bottom: 14px;
    background: var(--bg-surface, #fff);
}
[data-theme="dark"] .bhde-b-card {
    background: var(--bg-surface);
    border-color: var(--border-default);
}

/* Section 1: status block. */
.bhde-b-status {
    background: var(--bg-purple-tint, #f3eefc);
    border-left: 4px solid var(--brand-primary, #3d1a6f);
    border-radius: 8px;
    padding: 10px 13px;
    margin-bottom: 14px;
}
[data-theme="dark"] .bhde-b-status {
    background: rgba(167, 107, 223, 0.08);
    border-left-color: var(--brand-primary, #a76bdf);
}
.bhde-b-status-ln { font-size: 0.82rem; line-height: 1.5; }
.bhde-b-status-over { color: var(--brand-danger, #ed174c); }
[data-theme="dark"] .bhde-b-status-over { color: var(--brand-danger, #f44060); }

/* KPI strip inside status block. */
.bhde-b-kpis {
    display: flex;
    gap: 1.2rem;
    margin-top: 0.55rem;
    flex-wrap: wrap;
}
.bhde-b-kpi-v {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--brand-primary, #3d1a6f);
}
.bhde-b-kpi-l {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #8a86a0);
    font-weight: 700;
}
.bhde-b-kpi--over .bhde-b-kpi-v { color: var(--brand-danger, #ed174c); }
[data-theme="dark"] .bhde-b-kpi-v { color: var(--brand-primary, #a76bdf); }

/* -------------------------------------------------------------------------
   Section 2: Bar chart (lanes).
   Total lane = 72px; person lanes = 38px (comfortable, not cramped).
   .bhde-b-col is position:relative so ghost + fill both use absolute bottom-0.
   ------------------------------------------------------------------------- */
.bhde-b-lanes { position: relative; }

.bhde-b-lane {
    display: flex;
    align-items: stretch;
    gap: 0;
}
.bhde-b-lane-nm {
    width: 62px;
    flex: 0 0 62px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-body, #444);
    align-self: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bhde-b-lane--total .bhde-b-lane-nm {
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--brand-primary, #3d1a6f);
}
[data-theme="dark"] .bhde-b-lane--total .bhde-b-lane-nm {
    color: var(--brand-primary, #a76bdf);
}

.bhde-b-cols {
    flex: 1;
    display: flex;
    gap: 3px;
    align-items: flex-end;
}
.bhde-b-lane--total .bhde-b-cols { height: 72px; }
.bhde-b-lane--person .bhde-b-cols { height: 38px; }
.bhde-b-lane--person {
    border-top: 1px solid var(--border-light, #f1f1f6);
    padding-top: 6px;
    margin-top: 6px;
}
[data-theme="dark"] .bhde-b-lane--person { border-top-color: var(--border-default); }

.bhde-b-col {
    flex: 1 1 0;
    position: relative;
    height: 100%;
    min-width: 0;
}

/* Ghost (planned target outline). Dashed top edge only -- reads as a target
   marker rather than a progress-bar track waiting to be filled. */
.bhde-b-ghost {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    border-top: 1px dashed var(--bhde-col-ghost-border);
    border-left: none;
    border-right: none;
    border-bottom: none;
    background: transparent;
    min-height: 1px;
    pointer-events: none;
}

/* Fill bars (actual, forecast, over-cap). */
.bhde-b-fill {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    border-radius: 2px 2px 0 0;
    min-height: 3px;
}
.bhde-b-fill--act  { background: var(--bhde-col-actual, #3d1a6f); }
.bhde-b-fill--fc   { background: var(--bhde-col-forecast, #fdb913); }
.bhde-b-fill--over { background: var(--bhde-col-over, #ed174c); }
/* Over-budget cap: the slice of a future Total-lane forecast bar that sits beyond the
   remaining budget (plan - logged). Stacks on top of the gold fill via an inline bottom
   offset set by _recomputeStateB; min-height:0 so it vanishes cleanly when within budget. */
.bhde-b-fill--obud { background: var(--bhde-col-over, #ed174c); min-height: 0; z-index: 2; }

/* Leave hatch pattern. */
.bhde-b-leave {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        45deg,
        var(--bhde-col-leave-a, #fdeccf),
        var(--bhde-col-leave-a, #fdeccf) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 6px
    );
    border-radius: 2px;
}

/* Today divider. */
.bhde-b-today {
    position: absolute;
    top: 0; bottom: 0;
    width: 2px;
    background: var(--brand-primary, #3d1a6f);
    z-index: 3;
    pointer-events: none;
}
.bhde-b-today span {
    position: absolute;
    top: -14px;
    left: 4px;
    font-size: 0.55rem;
    font-weight: 800;
    color: var(--brand-primary, #3d1a6f);
    white-space: nowrap;
}
[data-theme="dark"] .bhde-b-today,
[data-theme="dark"] .bhde-b-today span { background-color: transparent; color: var(--brand-primary, #a76bdf); }
[data-theme="dark"] .bhde-b-today { background: var(--brand-primary, #a76bdf); }

/* Right-hand residual label per lane. Widened 2026-06-05 to carry the over-capacity
   magnitude (e.g. "over 15 Jun (+12.0h)" / "room (peak 92%)") that replaced Section 4. */
.bhde-b-lane-rt {
    width: 118px;
    flex: 0 0 118px;
    font-size: 0.66rem;
    font-weight: 700;
    text-align: right;
    align-self: center;
    padding-left: 6px;
    white-space: nowrap;
}
.bhde-b-lane-rt--ok  { color: #1e7a45; }
.bhde-b-lane-rt--bad { color: var(--brand-danger, #b21338); }
.bhde-b-lane-rt--lv  { color: #8a5a00; }
.bhde-b-lane-rt--muted { color: var(--text-muted, #999); font-weight: 600; }
[data-theme="dark"] .bhde-b-lane-rt--ok  { color: #6ddf8b; }
[data-theme="dark"] .bhde-b-lane-rt--bad { color: var(--brand-danger, #f44060); }
[data-theme="dark"] .bhde-b-lane-rt--lv  { color: var(--status-warning-text, #d4a824); }

/* Fold note for >5 person lanes. */
.bhde-b-lanes-fold {
    font-size: 0.7rem;
    color: var(--text-muted, #888);
    padding-left: 62px;
    margin-top: 4px;
}

/* Axis labels. */
.bhde-b-axis {
    display: flex;
    margin: 5px 0 0 62px;
    padding-right: 72px;
}
.bhde-b-axis span {
    flex: 1;
    font-size: 0.58rem;
    color: var(--text-muted, #aaa);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Monthly capacity ribbon (below chart). */
.bhde-b-ribbon {
    display: flex;
    gap: 3px;
    margin: 9px 0 0 62px;
    padding-right: 72px;
    flex-wrap: nowrap;
    overflow: hidden;
}
.bhde-b-cell {
    flex: 1;
    text-align: center;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 3px 0;
    border-radius: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bhde-b-cell--ok   { background: #e4f5ea; color: #1e7a45; }
.bhde-b-cell--over { background: #fde4ea; color: var(--brand-danger, #b21338); }
[data-theme="dark"] .bhde-b-cell--ok   { background: #0d2818; color: #6ddf8b; }
[data-theme="dark"] .bhde-b-cell--over { background: var(--status-danger-bg); color: var(--status-danger-text, #ff8a9a); }

/* Chart legend. */
.bhde-b-legend {
    display: flex;
    gap: 0.85rem;
    margin-top: 8px;
    flex-wrap: wrap;
    font-size: 0.68rem;
    color: var(--text-muted, #888);
}
.bhde-b-leg-swatch {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 3px;
    vertical-align: middle;
}
.bhde-b-leg-swatch--ghost {
    border: none;
    border-top: 2px dashed var(--bhde-col-ghost-border);
    background: transparent;
    height: 0;
    margin-top: 4px;
}
.bhde-b-leg-swatch--leave {
    background: repeating-linear-gradient(
        45deg,
        var(--bhde-col-leave-a, #fdeccf),
        var(--bhde-col-leave-a, #fdeccf) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 6px
    );
}
.bhde-b-legend-unit {
    margin-left: auto;
    font-style: italic;
    opacity: 0.85;
}
.bhde-b-scalenote {
    font-size: 0.68rem;
    color: var(--text-muted, #8a86a0);
    margin-top: 6px;
    font-style: italic;
}
.bhde-b-chart-empty { padding: 1rem 0; }

/* -------------------------------------------------------------------------
   Section 3: Reforecast editor.
   ------------------------------------------------------------------------- */

/* Whole/Per-resource toggle. */
.bhde-b-toggle {
    display: inline-flex;
    border: 1px solid var(--brand-primary, #3d1a6f);
    border-radius: 6px;
    overflow: hidden;
    font-size: 0.72rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}
.bhde-b-toggle-opt {
    padding: 5px 12px;
    color: var(--brand-primary, #3d1a6f);
    cursor: pointer;
    user-select: none;
}
.bhde-b-toggle-opt--on {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
[data-theme="dark"] .bhde-b-toggle { border-color: var(--brand-primary, #a76bdf); }
[data-theme="dark"] .bhde-b-toggle-opt { color: var(--brand-primary, #a76bdf); }
[data-theme="dark"] .bhde-b-toggle-opt--on { background: var(--brand-primary, #a76bdf); color: var(--bg-surface, #141414); }

/* Editor row (one per bucket). */
.bhde-b-erow {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    padding: 7px 0;
    border-bottom: 1px solid var(--border-light, #f3f3f7);
}
.bhde-b-erow:last-of-type { border-bottom: none; }
.bhde-b-erow--locked { opacity: 0.55; }
[data-theme="dark"] .bhde-b-erow { border-bottom-color: var(--border-default); }

/* Per-resource-always (2026-06-04). The week parent becomes a read-only TOTAL; the editable
   controls are the per-person sub-rows nested beneath. */
.bhde-b-erow--rototal { font-weight: 600; }
.bhde-b-erow-rototal {
    margin-left: auto;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-body, #555);
}
[data-theme="dark"] .bhde-b-erow-rototal { color: var(--text-primary, #e8e8ec); }
.bhde-b-erow--per {
    padding-left: 14px;
    border-left: 2px solid var(--border-light, #f3f3f7);
    border-bottom: none;
}
[data-theme="dark"] .bhde-b-erow--per { border-left-color: var(--border-default); }
.bhde-b-perres-note { font-style: italic; }

.bhde-b-erow-dt {
    width: 62px;
    flex: 0 0 62px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-body, #555);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Slider track. Container is 20px tall so the native thumb has room; a thin 9px
   visual track is drawn via ::before. The slider input + fill bar are absolutely
   positioned inside this container so they share an exact coordinate system --
   no gap accounting, no thumb-width drift between knob and fill.
   Set --bhde-thumb to the thumb diameter so the fill calc stays in sync. */
.bhde-b-eslide {
    flex: 1;
    height: 20px;
    position: relative;
    --bhde-thumb: 18px;
}
.bhde-b-eslide::before {
    content: "";
    position: absolute;
    left: 0; right: 0;
    top: 50%;
    height: 9px;
    transform: translateY(-50%);
    background: var(--border-default, #ececf2);
    border-radius: 5px;
    pointer-events: none;
}

.bhde-b-erow { position: relative; }
.bhde-b-eslide-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    cursor: pointer;
    z-index: 3;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
}
.bhde-b-eslide-input:focus { outline: none; }
.bhde-b-eslide-input::-webkit-slider-runnable-track { height: 20px; background: transparent; border: none; }
.bhde-b-eslide-input::-moz-range-track { height: 20px; background: transparent; border: none; }
/* Visible round grab handle so it is obvious the slider can be dragged -- Safari/Chrome/Firefox. */
.bhde-b-eslide-input::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(40, 20, 80, 0.35);
    cursor: grab;
    margin-top: 1px;
}
.bhde-b-eslide-input::-webkit-slider-thumb:active { cursor: grabbing; }
.bhde-b-eslide-input::-moz-range-thumb {
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--brand-primary, #3d1a6f);
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(40, 20, 80, 0.35);
    cursor: grab;
}
.bhde-b-eslide-input:disabled { cursor: default; pointer-events: none; }
.bhde-b-eslide-input:disabled::-webkit-slider-thumb { background: #b8b2cc; }
.bhde-b-eslide-input:disabled::-moz-range-thumb { background: #b8b2cc; }
/* Fill bar -- pinned to the same 9px-tall band as the visual track, width grows
   from half-thumb-width to (full track minus half-thumb-width) so the fill end
   sits exactly under the thumb centre at any value. Driven by --bhde-val (0-1)
   set inline on the parent track. */
.bhde-b-eslide-fill,
.bhde-b-eslide-fill--over {
    position: absolute;
    left: 0;
    top: 50%;
    height: 9px;
    transform: translateY(-50%);
    width: calc((var(--bhde-val, 0)) * (100% - var(--bhde-thumb, 18px)) + (var(--bhde-thumb, 18px) / 2));
    border-radius: 5px;
    pointer-events: none;
    z-index: 1;
}
.bhde-b-eslide-fill { background: #9b8fc4; }
.bhde-b-eslide-fill--over { background: var(--brand-danger, #ed174c); }
[data-theme="dark"] .bhde-b-eslide { background: var(--border-default); }

/* Flag chips (leave / over-cap) in editor rows. */
.bhde-b-eflag {
    font-size: 0.62rem;
    font-weight: 700;
    border-radius: 5px;
    padding: 2px 6px;
    white-space: nowrap;
    flex-shrink: 0;
}
.bhde-b-eflag--lv   { color: #8a5a00; background: #fdeccf; }
.bhde-b-eflag--over { color: var(--brand-danger, #b21338); background: #fde4ea; }
[data-theme="dark"] .bhde-b-eflag--lv   { color: var(--status-warning-text, #d4a824); background: var(--status-warning-bg); }
[data-theme="dark"] .bhde-b-eflag--over { color: var(--status-danger-text, #ff8a9a); background: var(--status-danger-bg); }

/* Number input in editor rows. */
.bhde-b-enum {
    width: 56px;
    height: 28px;
    text-align: center;
    border: 1px solid var(--border-default, #c9c9d6);
    border-radius: 6px;
    font-size: 0.8rem;
    flex-shrink: 0;
    background: var(--bg-surface, #fff);
    color: inherit;
}
.bhde-b-enum:disabled { opacity: 0.55; }
[data-theme="dark"] .bhde-b-enum { background: var(--bg-subtle); border-color: var(--border-default); }

/* Far-tail fold group. */
.bhde-b-egrp { margin-top: 6px; }

/* Far-tail: each folded month/quarter is its own collapsible group of editable weeks. */
.bhde-b-monthgrp { margin: 2px 0 2px 8px; }
.bhde-b-month-head { font-weight: 500; }
.bhde-b-month-total {
    margin-left: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted, #6c757d);
}
.bhde-b-month-weeks {
    padding-left: 10px;
    border-left: 2px solid var(--border-default, #e5e5e5);
    margin-left: 2px;
}
.bhde-b-erow--sub .bhde-b-erow-dt { font-size: 0.78rem; color: var(--text-muted, #6c757d); }
[data-theme="dark"] .bhde-b-month-total,
[data-theme="dark"] .bhde-b-erow--sub .bhde-b-erow-dt { color: var(--text-muted-dark, #9aa0a6); }
[data-theme="dark"] .bhde-b-month-weeks { border-left-color: var(--border-dark, #3a3a3a); }

/* Action buttons row. */
.bhde-b-eact {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 10px;
    align-items: center;
}
.bhde-b-btn {
    font-size: 0.75rem;
    border: 1px solid var(--brand-primary, #3d1a6f);
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-surface, #fff);
    border-radius: 7px;
    padding: 5px 11px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.bhde-b-btn:hover { background: var(--bg-purple-tint, #f0ebf7); }
.bhde-b-btn--pri {
    background: var(--brand-primary, #3d1a6f);
    color: #fff;
}
.bhde-b-btn--pri:hover { opacity: 0.88; }
[data-theme="dark"] .bhde-b-btn { background: var(--bg-subtle); border-color: var(--brand-primary, #a76bdf); color: var(--brand-primary, #a76bdf); }
[data-theme="dark"] .bhde-b-btn--pri { background: var(--brand-primary, #a76bdf); color: var(--bg-surface, #141414); }

/* End-date stepper. */
.bhde-b-end-stepper {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    color: var(--text-body, #666);
    white-space: nowrap;
}
.bhde-b-end-date {
    border: 1px solid var(--border-default, #c9c9d6);
    border-radius: 6px;
    padding: 4px 7px;
    font-weight: 600;
    color: var(--text-body, #333);
    background: var(--bg-surface, #fff);
    font-size: 0.72rem;
}
.bhde-b-step {
    border: 1px solid var(--border-default, #c9c9d6);
    border-radius: 6px;
    width: 24px;
    height: 26px;
    line-height: 24px;
    text-align: center;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    background: var(--bg-surface, #fff);
    cursor: pointer;
    font-size: 0.85rem;
}
.bhde-b-step:hover:not(:disabled) { background: var(--bg-purple-tint, #f0ebf7); }
.bhde-b-step:disabled { opacity: 0.4; cursor: not-allowed; }
.bhde-b-end-unit { opacity: 0.6; }
[data-theme="dark"] .bhde-b-end-date,
[data-theme="dark"] .bhde-b-step { background: var(--bg-subtle); border-color: var(--border-default); color: var(--text-body); }
[data-theme="dark"] .bhde-b-step { color: var(--brand-primary, #a76bdf); }

/* Reveal-on-add: brief gold pulse on the week a +/- just created, so the change is never
   buried in a re-rendered/collapsed accordion. Background-only -> dark-mode safe. */
.bhde-b-erow--flash { animation: bhdeRowFlash 1.6s ease-out; }
@keyframes bhdeRowFlash {
    0% { background: var(--bg-gold-tint, #fff6da); }
    100% { background: transparent; }
}

/* -------------------------------------------------------------------------
   Section 4: Capacity readout.
   ------------------------------------------------------------------------- */
.bhde-b-cap-bucket-lbl { color: var(--text-muted, #888); }

.bhde-b-cap {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.75rem;
    padding: 5px 0;
}
.bhde-b-cap-nm {
    width: 62px;
    flex: 0 0 62px;
    font-weight: 600;
    color: var(--text-body, #444);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bhde-b-ctrk {
    flex: 1;
    height: 14px;
    border-radius: 7px;
    background: var(--border-light, #eceaf3);
    position: relative;
    overflow: hidden;
}
.bhde-b-ctrk-other {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    background: #c3bcd9;
}
.bhde-b-ctrk-this {
    position: absolute;
    top: 0; bottom: 0;
    background: var(--brand-accent, #fdb913);
}
.bhde-b-ctrk-over {
    position: absolute;
    top: 0; bottom: 0;
    background: var(--brand-danger, #ed174c);
}
.bhde-b-ctrk-leave {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        45deg,
        var(--bhde-col-leave-a, #fdeccf),
        var(--bhde-col-leave-a, #fdeccf) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 3px,
        var(--bhde-col-leave-b, #fbe1b0) 6px
    );
}
[data-theme="dark"] .bhde-b-ctrk { background: var(--border-default); }
[data-theme="dark"] .bhde-b-ctrk-other { background: rgba(167, 107, 223, 0.3); }

.bhde-b-cv {
    width: 82px;
    flex: 0 0 82px;
    text-align: right;
    font-size: 0.68rem;
    font-weight: 700;
}
.bhde-b-cv--ok   { color: #1e7a45; }
.bhde-b-cv--warn { color: #8a5a00; }
.bhde-b-cv--bad  { color: var(--brand-danger, #b21338); }
[data-theme="dark"] .bhde-b-cv--ok   { color: #6ddf8b; }
[data-theme="dark"] .bhde-b-cv--warn { color: var(--status-warning-text, #d4a824); }
[data-theme="dark"] .bhde-b-cv--bad  { color: var(--brand-danger, #f44060); }

/* -------------------------------------------------------------------------
   Section 5: Collapsed detail drawers (History + per-resource breakdown).
   .bhde-b-disc is the outer accordion card.
   .bhde-b-hrow is a single history row.
   ------------------------------------------------------------------------- */
.bhde-b-disc {
    border: 1px solid var(--border-default, #e7e3f3);
    border-radius: 8px;
    background: var(--bg-subtle, #fbfaff);
    padding: 9px 12px;
    margin-bottom: 9px;
}
[data-theme="dark"] .bhde-b-disc {
    background: var(--bg-subtle);
    border-color: var(--border-default);
}
/* bhde-b-disc uses bhde-sec-head for the accordion header (shared accordion system). */

.bhde-b-hrow {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.72rem;
    padding: 5px 0;
    color: var(--text-body, #555);
}
.bhde-b-hrow-lbl {
    width: 68px;
    flex: 0 0 68px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.bhde-b-htrk {
    flex: 1;
    height: 9px;
    border-radius: 5px;
    background: var(--border-default, #ececf2);
    position: relative;
}
.bhde-b-htrk-p {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    background: var(--bhde-col-ghost-border, #cfc8e2);
    border-radius: 5px;
}
.bhde-b-htrk-a {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    background: var(--bhde-col-actual, #3d1a6f);
    border-radius: 5px;
}
[data-theme="dark"] .bhde-b-htrk { background: var(--border-default); }
.bhde-b-hvar {
    width: 80px;
    flex: 0 0 80px;
    text-align: right;
    font-size: 0.65rem;
    color: var(--text-muted, #8a86a0);
}
.bhde-b-perres-head {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-primary, #3d1a6f);
    margin: 0.5rem 0 0.2rem;
}
[data-theme="dark"] .bhde-b-perres-head { color: var(--brand-primary, #a76bdf); }

/* -------------------------------------------------------------------------
   Overspend sentinel (pinned to the bottom of the state-B view).
   Uses position:sticky so it stays visible while scrolling inside the modal.
   ------------------------------------------------------------------------- */
.bhde-b-sentinel {
    position: sticky;
    bottom: 8px;
    width: max-content;
    max-width: 100%;
    margin-left: auto;
    background: #fde4ea;
    border: 1px solid #f3b9c6;
    border-radius: 16px;
    padding: 5px 11px;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-danger, #b21338);
    box-shadow: 0 2px 8px rgba(40, 20, 80, 0.16);
    z-index: 6;
    z-index: 2;
    flex-wrap: wrap;
}
.bhde-b-sentinel-btn {
    font-size: 0.68rem;
    border: 1px solid var(--brand-danger, #ed174c);
    border-radius: 6px;
    padding: 3px 9px;
    background: var(--bg-surface, #fff);
    color: var(--brand-danger, #b21338);
    cursor: pointer;
    font-weight: 600;
}
[data-theme="dark"] .bhde-b-sentinel {
    background: var(--status-danger-bg);
    border-color: var(--status-danger-border);
    color: var(--status-danger-text, #ff8a9a);
}
[data-theme="dark"] .bhde-b-sentinel-btn {
    background: var(--bg-subtle);
    border-color: var(--brand-danger, #f44060);
    color: var(--status-danger-text, #ff8a9a);
}

/* Ribbon placeholder (async loaded). */
.bhde-b-ribbon-placeholder:empty { display: none; }

/* Capacity sentinel (over-capacity months variant). Uses warning amber to
   distinguish from the over-delivery (danger) sentinel. */
.bhde-b-sentinel--cap {
    background: #fff8e7;
    border-color: #d4a824;
    color: #7a5200;
}
.bhde-b-sentinel--cap .bhde-b-sentinel-btn {
    border-color: #d4a824;
    color: #7a5200;
}
[data-theme="dark"] .bhde-b-sentinel--cap {
    background: var(--status-warning-bg);
    border-color: var(--status-warning-border, #d4a824);
    color: var(--status-warning-text, #d4a824);
}
[data-theme="dark"] .bhde-b-sentinel--cap .bhde-b-sentinel-btn {
    background: var(--bg-subtle);
    border-color: var(--status-warning-border, #d4a824);
    color: var(--status-warning-text, #d4a824);
}

/* Brief pulse on the State-B view when a new over-capacity month is created.
   Finite (3 iterations) -- not infinite. */
@keyframes bhStateBOverCapPulse {
    0%   { box-shadow: 0 0 0 0 rgba(212, 168, 36, 0.55); }
    40%  { box-shadow: 0 0 0 7px rgba(212, 168, 36, 0.2); }
    100% { box-shadow: 0 0 0 0 rgba(212, 168, 36, 0); }
}
.bhde-b-overcap-pulse {
    animation: bhStateBOverCapPulse 0.3s ease-out 3;
}

/* =============================================================================
   Phone reflow -- 2026-06-06 (Jen). Below the component breakpoint the dense EH
   tables stop side-scrolling and stack into labelled cards, so no column falls
   off the right edge. Scoped by table id so other .table-modern/.table grids
   are untouched; each data cell shows its column name from a data-label set in
   the JS renderers. George signed off "reflow to cards" 2026-06-06.
   ============================================================================= */
@media (max-width: 768px) {

    /* ---- Capacity grid (#tblResourceCapacity) + Service Delivery
            (#tblServiceDelivery): one row becomes one labelled card. ---- */
    #tblResourceCapacity,
    #tblResourceCapacity > tbody,
    #tblResourceCapacity > tbody > tr,
    #tblResourceCapacity > tbody > tr > td,
    #tblServiceDelivery,
    #tblServiceDelivery > tbody,
    #tblServiceDelivery > tbody > tr,
    #tblServiceDelivery > tbody > tr > td {
        display: block;
        width: auto;
        /* Service Delivery is a .table-bordered table; BUZZHub.css sets
           ".table-bordered td { height: 0 }" (the height:100%-child trick, valid
           for display:table-cell). In card mode the cell is display:flex, which
           takes height:0 literally and collapses the card row so its content
           overflows into the next row. Reset to auto here -- this id-scoped
           selector outranks .table-bordered td. (Capacity uses .table-modern, so
           it never hit this, which is why only SD looked broken.) */
        height: auto;
    }
    #tblResourceCapacity > thead,
    #tblServiceDelivery > thead,
    #tblServiceDelivery > tfoot { display: none; }
    #tblResourceCapacity, #tblServiceDelivery { border: 0; }

    /* the card shell */
    #tblResourceCapacity > tbody > tr,
    #tblServiceDelivery > tbody > tr.sd-row {
        border: 1px solid var(--border-default, #e5e5e5);
        border-radius: 10px;
        margin-bottom: 0.6rem;
        padding: 0.4rem 0.75rem;
        background: var(--bg-surface, #fff);
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    }

    /* each data cell = label : value */
    #tblResourceCapacity > tbody > tr > td,
    #tblServiceDelivery > tbody > tr.sd-row > td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.75rem;
        text-align: right;
        padding: 0.32rem 0;
        border: 0;
        border-bottom: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.06));
        white-space: normal;
        min-height: 0;
    }
    #tblResourceCapacity > tbody > tr > td:last-child,
    #tblServiceDelivery > tbody > tr.sd-row > td:last-child { border-bottom: 0; }

    #tblResourceCapacity > tbody > tr > td::before,
    #tblServiceDelivery > tbody > tr.sd-row > td::before {
        content: attr(data-label);
        font-weight: 600;
        font-size: 0.78rem;
        color: var(--text-muted, #6c757d);
        text-align: left;
        text-transform: none;
        letter-spacing: 0;
        flex: 0 0 auto;
    }

    /* first cell = card header (name / client). display:block keeps the inner
       <br>/<div> stack -- a flex header would lay them in a row. */
    #tblResourceCapacity > tbody > tr > td:first-child,
    #tblServiceDelivery > tbody > tr.sd-row > td:first-child {
        display: block;
        text-align: left;
        font-weight: 600;
        font-size: 0.95rem;
        border-bottom: 2px solid var(--border-default, #e5e5e5);
        padding-bottom: 0.45rem;
        margin-bottom: 0.2rem;
    }
    #tblResourceCapacity > tbody > tr > td:first-child::before,
    #tblServiceDelivery > tbody > tr.sd-row > td:first-child::before { content: none; }

    /* empty Total-row placeholders collapse away */
    #tblResourceCapacity > tbody > tr > td:empty { display: none; }

    /* comfy tap-size inline-edit inputs, right of their label */
    #tblResourceCapacity .bh-cap-input { max-width: 120px; }

    /* Total row reads as a summary card */
    #tblResourceCapacity > tbody > tr.bh-cap-total-row {
        background: var(--bg-slate-tint, #f1efe9);
        border-color: var(--brand-primary, #3d1a6f);
    }

    /* SD progress bar fills the row under its label */
    #tblServiceDelivery > tbody > tr.sd-row > td.ra-sd-col-pipeline { width: auto !important; }
    #tblServiceDelivery > tbody > tr.sd-row > td.ra-sd-col-pipeline .pipeline-bar { flex: 1; min-width: 130px; }

    /* SD action cell (last) -- buttons right-aligned, no label */
    #tblServiceDelivery > tbody > tr.sd-row > td:last-child { justify-content: flex-end; }
    #tblServiceDelivery > tbody > tr.sd-row > td:last-child::before { content: none; }

    /* expanded activity-detail row spans the full card width */
    #tblServiceDelivery > tbody > tr.sd-detail-row > td { display: block; width: auto; }

    /* ---- Workload board: the matrix stays a sticky-scroll heatmap (a person x
            week grid is built to be scanned across both axes -- carding it per
            person loses that). The FIX surface (the part you actually act on)
            becomes a single full-width column, pinned to the viewport so the
            "drop it where there's room" panel can never sit off-screen. ---- */
    .bh-wl-fix-cols { grid-template-columns: 1fr; }
    .bh-wl-fix-col.left {
        border-right: 0;
        border-bottom: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.08));
    }
    .bh-wl-detail > td { position: sticky; left: 0; }
    .bh-wl-detail > td > .bh-wl-fix {
        width: calc(100vw - 2.5rem);
        max-width: 640px;
    }

    /* ---- Hand-off balance grid (#wlHandoffGrid, inside the fullscreen modal):
            one card per week, slider full width under its label. ---- */
    #wlHandoffGrid,
    #wlHandoffGrid > tbody,
    #wlHandoffGrid > tbody > tr,
    #wlHandoffGrid > tbody > tr > td {
        display: block;
        width: auto;
    }
    #wlHandoffGrid > thead { display: none; }
    #wlHandoffGrid > tbody > tr {
        border: 1px solid var(--border-default, #e5e5e5);
        border-radius: 10px;
        margin-bottom: 0.6rem;
        padding: 0.4rem 0.75rem;
        background: var(--bg-surface, #fff);
    }
    #wlHandoffGrid > tbody > tr > td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.75rem;
        padding: 0.32rem 0;
        border: 0;
        border-bottom: 1px solid var(--border-subtle, rgba(0, 0, 0, 0.06));
    }
    #wlHandoffGrid > tbody > tr > td:last-child { border-bottom: 0; }
    #wlHandoffGrid > tbody > tr > td::before {
        content: attr(data-label);
        font-weight: 600;
        font-size: 0.78rem;
        color: var(--text-muted, #6c757d);
        text-align: left;
        flex: 0 0 auto;
    }
    #wlHandoffGrid > tbody > tr > td:first-child {
        display: block;
        font-weight: 600;
        border-bottom: 2px solid var(--border-default, #e5e5e5);
    }
    #wlHandoffGrid > tbody > tr > td:first-child::before { content: none; }
    #wlHandoffGrid > tbody > tr > td .slidewrap { flex: 1; min-width: 140px; }
}

/*
 * skeletons.css -- shared skeleton-loader shapes used while AJAX responses are in flight.
 * Shape variants: card, line, row, bar (horizontal / vertical), donut, stat, timeline-bar.
 * Shimmer animation is shared. Tokens flip in dark mode via var() fallbacks.
 */

@keyframes skel-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Shimmering surface used by every variant. */
.skel-shimmer,
.skel-line,
.skel-row,
.skel-bar-h,
.skel-bar-v,
.skel-donut,
.skel-stat-value,
.skel-timeline-bar,
.skel-sched-name,
.skel-sched-blocks > span,
.skel-cap-chart,
.skel-leave-cal-label,
.skel-leave-cal-cell,
.skel-holiday-month-label,
.skel-holiday-chip-date {
    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-radius: 3px;
}

/* Card placeholder -- matches a kanban card / list card / dashboard card. */
.skel-card {
    background: var(--bg-surface, #fff);
    border-radius: 6px;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
    border-left: 3px solid var(--border-light, #e9ecef);
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

/* Story-selector card placeholder -- mirrors .storyboximage + .storybox shell
   produced by Scripts/story-selector.js. Sized + positioned identically so the
   row doesn't reflow when real cards land. */
.skel-story-card {
    width: 280px;
    height: 200px;
    margin-top: 30px;
    margin-left: 10%;
    border-radius: 3px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4);
    /* Solid brand-purple to match the loaded .storybox scrim (logo is only a faint
       watermark on the real card, so a flat purple reads the same). Intentionally
       does NOT flip in dark mode because the real card doesn't either. */
    background: linear-gradient(135deg, #3d1a6f 0%, #2a1250 100%);
    position: relative;
    overflow: hidden;
}
.skel-story-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,0.10) 50%,
        rgba(255,255,255,0) 100%);
    background-size: 200% 100%;
    animation: skel-shimmer 1.4s ease-in-out infinite;
    pointer-events: none;
}
/* Plain shimmer tile -- no inner placeholders. The purple tile + .skel-story-card::after
   shimmer is the whole skeleton; detail-mimicry read as noise (George, 2026-06-29). */

/* Single line of placeholder text. Width modifiers control how complete the line looks. */
.skel-line {
    height: 0.65rem;
    margin-bottom: 0.4rem;
}
.skel-line.w-30 { width: 30%; }
.skel-line.w-40 { width: 40%; }
.skel-line.w-50 { width: 50%; }
.skel-line.w-60 { width: 60%; }
.skel-line.w-70 { width: 70%; }
.skel-line.w-80 { width: 80%; }
.skel-line.w-90 { width: 90%; }
.skel-line:last-child { margin-bottom: 0; }

/* Table row placeholder. Use inside a <tr><td colspan="N">. */
.skel-row {
    height: 1.5rem;
    width: 100%;
    margin-bottom: 0.35rem;
}

/* Horizontal bar -- conversion funnel, stage duration, leaderboard rows. */
.skel-bar-h {
    height: 1.5rem;
    width: 100%;
    margin-bottom: 0.6rem;
    border-radius: 3px;
}
.skel-bar-h.w-90 { width: 90%; }
.skel-bar-h.w-70 { width: 70%; }
.skel-bar-h.w-50 { width: 50%; }
.skel-bar-h.w-35 { width: 35%; }
.skel-bar-h.w-20 { width: 20%; }

/* Vertical bar -- Pipeline Value Over Time chart. */
.skel-bar-v {
    width: 100%;
    max-width: 50px;
    border-radius: 4px 4px 0 0;
}
.skel-bar-v-group {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    height: 160px;
    padding: 0.5rem 0;
}
.skel-bar-v-group > div {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
}

/* Donut chart placeholder -- Win/Loss widget. */
.skel-donut {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    margin: 1rem auto;
    /* Override the linear-gradient shimmer with a radial mask so it reads as a ring. */
    background:
        radial-gradient(circle at center, var(--bg-surface, #fff) 0 38%, transparent 38%),
        linear-gradient(90deg,
            var(--bg-subtle, #f0f0f0) 0%,
            var(--bg-muted, #e0e0e0) 50%,
            var(--bg-subtle, #f0f0f0) 100%);
    background-size: 100% 100%, 200% 100%;
    animation: skel-shimmer 1.4s ease-in-out infinite;
}

/* KPI tile placeholder -- big-number + small-label stat. */
.skel-stat {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
}
.skel-stat-value {
    height: 1.5rem;
    width: 60%;
    border-radius: 3px;
}
.skel-stat-label {
    height: 0.6rem;
    width: 80%;
}

/* Prospect Close Schedule timeline -- horizontal bars stacked by stage. */
.skel-timeline-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0;
}
.skel-timeline-row .skel-line { margin: 0; flex-shrink: 0; width: 140px; }
.skel-timeline-bar {
    height: 1.2rem;
    border-radius: 3px;
    flex: 1;
}

/* Compact list-item skeleton -- Stuck Deals, focus lists. */
.skel-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border-light, #eee);
}
.skel-list-item:last-child { border-bottom: none; }
.skel-list-item .skel-line { margin: 0; }

/* ============================================================
   Engagement Hub composite shapes -- match the loaded layout
   so the in-flight surface keeps the same visual rhythm as the
   rendered one (resource-name col + week blocks, traffic-light
   month tiles, day-cell calendar strip, date-chip holiday card).
   ============================================================ */

/* Schedule gantt row -- 200px axis name + scattered week-blocks. */
.skel-sched-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 0.5rem;
    align-items: center;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border-light, #eee);
}
.skel-sched-row:last-child { border-bottom: none; }
.skel-sched-name {
    height: 0.85rem;
    border-radius: 3px;
}
.skel-sched-blocks {
    display: flex;
    gap: 8px;
    align-items: center;
}
.skel-sched-blocks > span {
    height: 22px;
    border-radius: 4px;
    display: inline-block;
}
.skel-sched-blocks > span.w-60  { width: 60px; }
.skel-sched-blocks > span.w-90  { width: 90px; }
.skel-sched-blocks > span.w-120 { width: 120px; }
.skel-sched-blocks > span.w-160 { width: 160px; }

/* Capacity-vs-Scheduled month tile strip (9 traffic-light tiles + chart). */
.skel-cap-strip {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.skel-cap-tile {
    flex: 1 1 110px;
    min-height: 78px;
    border-radius: 8px;
    padding: 0.5rem 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    justify-content: center;
    background: var(--bg-subtle, #f5f3f8);
    border: 1px solid var(--border-light, #e9ecef);
}
.skel-cap-tile .skel-line { margin: 0; }
.skel-cap-chart {
    height: 240px;
    margin-top: 14px;
    border-radius: 6px;
}

/* 3-month leave heat calendar -- month label + 7-col day grid, x3. */
.skel-leave-cal {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}
.skel-leave-cal-month {
    flex: 1 1 280px;
    min-width: 248px;
}
.skel-leave-cal-label {
    width: 80px;
    height: 14px;
    margin-bottom: 10px;
    border-radius: 3px;
}
.skel-leave-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}
.skel-leave-cal-cell {
    aspect-ratio: 1 / 1;
    border-radius: 6px;
}

/* Public holiday chip grid -- month label + chip cards (date sq + body lines). */
.skel-holiday-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.skel-holiday-month {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.skel-holiday-month-label {
    width: 90px;
    height: 0.85rem;
    border-radius: 3px;
}
.skel-holiday-items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem;
}
.skel-holiday-chip {
    display: flex;
    align-items: stretch;
    gap: 0.6rem;
    padding: 0.5rem 0.6rem;
    border-radius: 8px;
    background: var(--bg-surface, #fff);
    border: 1px solid var(--border-default, #e6e1ee);
}
.skel-holiday-chip-date {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    flex-shrink: 0;
}
.skel-holiday-chip-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    justify-content: center;
    min-width: 0;
}
.skel-holiday-chip-body .skel-line { margin: 0; }

/* ============================================================
   Dashboard (Default.aspx) composite helpers -- list-row with
   title/meta + action placeholder, and a 2-up KPI stat grid.
   ============================================================ */
.skel-list-item-text {
    flex: 1 1 auto;
    padding-right: 1rem;
}
.skel-list-item-act {
    flex: 0 0 44px;
    width: 44px;
    height: 1.6rem;
}
.skel-stat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

/* ============================================================
   Data-table skeleton (table table-modern shell) -- purple
   header strip with shimmer labels + shimmer body rows. Used by
   BHSkeletons.showTable() so JS-rendered tables keep their shape.
   ============================================================ */
.skel-table thead th { padding: 0.45rem 0.6rem; }
.skel-table tbody td { padding: 0.5rem 0.6rem; }
.skel-table tbody td .skel-row { margin: 0; height: 1.1rem; }
/* Header labels shimmer in white-translucent so they read on the purple thead. */
.skel-th {
    display: block;
    height: 0.65rem;
    width: 60%;
    border-radius: 3px;
    background: linear-gradient(90deg,
        rgba(255, 255, 255, 0.25) 0%,
        rgba(255, 255, 255, 0.55) 50%,
        rgba(255, 255, 255, 0.25) 100%);
    background-size: 200% 100%;
    animation: skel-shimmer 1.4s ease-in-out infinite;
}

/* ============================================================
   Chart-area overlay -- absolutely-positioned shimmer painted
   inside a position:relative .bh-chart-wrap, removed when the
   real Chart.js canvas draws. Variants: vertical bars (default),
   horizontal bars (--h), centred donut (--center).
   ============================================================ */
.skel-chart-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    gap: 6px;
    padding: 16px;
    pointer-events: none;
}
.skel-chart-overlay--center {
    align-items: center;
    justify-content: center;
}
.skel-chart-overlay--h {
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
}
.skel-chart-overlay--h .skel-bar-h { height: 1.4rem; }

/* Line/area-chart placeholder -- a shimmer fill clipped to a wavy area silhouette so it
   reads as a line chart, not bars. Used for Coverage Trend (variant 'line'). */
.skel-chart-overlay--line {
    align-items: stretch;
    gap: 0;
}
.skel-line-area {
    flex: 1 1 auto;
    align-self: stretch;
    border-radius: 0;
    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;
    -webkit-clip-path: polygon(
        0% 75%, 6% 55%, 12% 68%, 18% 40%, 24% 62%, 30% 35%, 36% 70%, 42% 50%,
        48% 72%, 54% 30%, 60% 58%, 66% 45%, 72% 66%, 78% 38%, 84% 60%, 90% 48%,
        96% 64%, 100% 55%, 100% 100%, 0% 100%);
    clip-path: polygon(
        0% 75%, 6% 55%, 12% 68%, 18% 40%, 24% 62%, 30% 35%, 36% 70%, 42% 50%,
        48% 72%, 54% 30%, 60% 58%, 66% 45%, 72% 66%, 78% 38%, 84% 60%, 90% 48%,
        96% 64%, 100% 55%, 100% 100%, 0% 100%);
}

