/* Minification failed. Returning unminified contents.
(6,10): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,28): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,86): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,103): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,123): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,143): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,162): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,180): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,198): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,214): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,230): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,248): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,271): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,293): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,315): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,337): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,359): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,381): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,403): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,425): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,447): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,469): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,490): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,513): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,534): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,552): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,573): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,593): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,612): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,630): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,658): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,689): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,716): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,741): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,768): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,794): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,821): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,844): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,871): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,892): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,921): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,950): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1151): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1250): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1339): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1387): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1412): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1438): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1464): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1488): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1506): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1528): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1552): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1578): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1629): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1657): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1687): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1716): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1743): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1771): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1801): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1825): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1855): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,1879): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,2053): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-font-family'
(6,2090): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-font-size'
(6,2127): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-font-weight'
(6,2166): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-line-height'
(6,2199): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-color'
(6,2231): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-text-align'
(6,2274): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-bg'
(6,3502): run-time error CSS1039: Token not allowed after unary operator: '-bs-highlight-bg'
(6,3645): run-time error CSS1039: Token not allowed after unary operator: '-bs-link-color'
(6,3706): run-time error CSS1039: Token not allowed after unary operator: '-bs-link-hover-color'
(6,3858): run-time error CSS1039: Token not allowed after unary operator: '-bs-font-monospace'
(6,4065): run-time error CSS1039: Token not allowed after unary operator: '-bs-code-color'
(6,4180): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-bg'
(6,4215): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-color'
(6,7682): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,7970): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,7991): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,8042): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8085): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8625): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,8646): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,8716): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-y'
(6,8760): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8803): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8889): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8932): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-x'
(6,8968): run-time error CSS1039: Token not allowed after unary operator: '-bs-gutter-y'
(6,10144): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10171): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10198): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10231): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10264): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10296): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10328): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10358): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10388): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10420): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10452): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,10482): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11817): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11850): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11883): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11922): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11961): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,11999): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12037): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12073): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12109): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12147): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12185): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,12221): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13557): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13590): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13623): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13662): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13701): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13739): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13777): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13813): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13849): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13887): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13925): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,13961): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15297): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15330): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15363): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15402): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15441): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15479): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15517): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15553): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15589): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15627): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15665): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,15701): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17038): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17071): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17104): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17143): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17182): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17220): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17258): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17294): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17330): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17368): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17406): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,17442): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,18814): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,18849): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,18884): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,18925): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,18966): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19006): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19046): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19084): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19122): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19162): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19202): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19240): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19267): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19305): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19331): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19378): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19411): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19457): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19499): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19544): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19584): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19628): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,19710): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,19764): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,19855): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-bg'
(6,19928): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-accent-bg'
(6,20416): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20475): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-striped-color'
(6,20555): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20614): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-striped-color'
(6,20653): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20711): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-active-color'
(6,20765): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20822): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-hover-color'
(6,20860): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20882): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20904): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20936): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20966): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,20996): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21025): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21054): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21082): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21121): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,21156): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,21197): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21219): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21241): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21273): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21303): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21333): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21362): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21391): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21419): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21458): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,21493): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,21532): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21554): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21576): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21608): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21638): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21668): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21697): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21726): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21754): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21793): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,21828): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,21864): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21886): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21908): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21940): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,21970): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22000): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22029): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22058): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22086): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22125): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,22160): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,22199): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22221): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22243): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22275): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22305): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22335): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22364): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22393): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22421): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22460): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,22495): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,22533): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22555): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22577): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22609): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22639): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22669): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22698): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22727): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22755): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22794): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,22829): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,22866): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22888): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22910): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22942): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,22972): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23002): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23031): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23060): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23088): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23127): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,23162): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,23198): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23220): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23242): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23274): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23304): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23334): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23363): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23392): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23420): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,23459): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-color'
(6,23494): run-time error CSS1039: Token not allowed after unary operator: '-bs-table-border-color'
(6,46069): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46096): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46124): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46147): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46171): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46196): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46221): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46244): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46268): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46294): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46328): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46360): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46400): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46491): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46522): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,46637): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-padding-y'
(6,46661): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-padding-x'
(6,46697): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-font-family'
(6,46733): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-font-size'
(6,46769): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-font-weight'
(6,46807): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-line-height'
(6,46839): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-color'
(6,47006): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-border-width'
(6,47039): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-border-color'
(6,47080): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-border-radius'
(6,47125): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-bg'
(6,47346): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-color'
(6,47389): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-bg'
(6,47425): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-border-color'
(6,47486): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-color'
(6,47523): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-bg'
(6,47553): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-border-color'
(6,47605): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-color'
(6,47648): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-bg'
(6,47684): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-border-color'
(6,47738): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-focus-box-shadow'
(6,47812): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-border-color'
(6,47866): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-focus-box-shadow'
(6,48002): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-active-color'
(6,48046): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-active-bg'
(6,48083): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-active-border-color'
(6,48297): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-focus-box-shadow'
(6,48385): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-disabled-color'
(6,48451): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-disabled-bg'
(6,48490): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-disabled-border-color'
(6,48534): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-disabled-opacity'
(6,48573): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48593): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48613): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48643): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48669): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48695): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48731): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48768): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48795): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48822): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48859): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48919): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48948): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,48977): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49031): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49051): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49071): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49101): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49127): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49153): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49189): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49227): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49254): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49281): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49318): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49378): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49407): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49436): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49488): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49508): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49528): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49558): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49584): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49610): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49646): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49683): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49710): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49737): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49774): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49834): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49863): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49892): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49941): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49961): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,49981): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50011): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50037): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50063): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50099): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50163): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50190): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50227): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50287): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50316): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50345): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50397): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50417): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50437): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50467): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50493): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50519): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50555): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50591): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50618): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50645): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50682): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50742): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50771): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50800): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50851): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50871): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50891): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50921): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50947): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,50973): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51009): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51045): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51072): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51099): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51196): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51225): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51254): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51304): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51324): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51344): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51374): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51400): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51426): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51462): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51500): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51527): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51554): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51591): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51651): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51680): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51709): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51758): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51778): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51798): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51828): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51854): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51880): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51916): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51951): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,51978): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52005): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52042): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52102): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52131): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52160): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52220): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52243): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52273): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52299): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52325): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52361): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52398): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52425): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52452): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52489): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52549): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52581): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52614): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52653): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52695): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52718): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52748): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52774): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52800): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52836): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52874): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52901): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52928): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,52965): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53025): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53057): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53090): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53129): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53169): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53192): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53222): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53248): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53274): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53310): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53346): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53373): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53400): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53437): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53497): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53529): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53562): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53601): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53638): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53661): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53691): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53717): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53743): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53779): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53816): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53843): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53870): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53907): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53967): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,53999): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54032): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54071): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54111): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54134): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54164): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54190): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54216): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54252): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54288): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54315): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54342): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54379): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54439): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54471): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54504): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54543): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54582): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54605): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54635): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54661): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54687): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54723): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54759): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54786): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54813): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54850): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54910): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54942): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,54975): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55014): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55052): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55075): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55105): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55131): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55157): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55193): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55231): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55258): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55285): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55322): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55382): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55414): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55447): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55486): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55523): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55546): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55576): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55602): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55628): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55664): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55699): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55726): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55753): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55790): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55850): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55882): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55915): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55954): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,55983): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56008): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56044): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56068): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56102): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56150): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56190): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56239): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56280): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56312): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56355): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56380): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56478): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-color'
(6,56520): run-time error CSS1039: Token not allowed after unary operator: '-bs-btn-hover-color'
(6,56568): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56594): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56618): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56645): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56702): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56729): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56755): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,56783): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57663): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57689): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57719): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57745): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57776): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57806): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57835): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57863): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57885): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57947): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,57984): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58015): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58070): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58130): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58168): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58227): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58260): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58299): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58335): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58372): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58409): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58451): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58485): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58522): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58557): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58593): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,58662): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-zindex'
(6,58711): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-min-width'
(6,58748): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-padding-y'
(6,58777): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-padding-x'
(6,58825): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-font-size'
(6,58860): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-color'
(6,58934): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-bg'
(6,58991): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-border-width'
(6,59029): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-border-color'
(6,59075): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-border-radius'
(6,59166): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-spacer'
(6,59208): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59302): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59422): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59522): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59646): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59746): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59870): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,59970): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,60095): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,60195): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,60321): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,60423): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,60591): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-spacer'
(6,60975): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-spacer'
(6,61414): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-spacer'
(6,61943): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-divider-margin-y'
(6,62018): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-divider-bg'
(6,62106): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-item-padding-y'
(6,62140): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-item-padding-x'
(6,62207): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-color'
(6,62382): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-hover-color'
(6,62435): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-hover-bg'
(6,62518): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-active-color'
(6,62593): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-active-bg'
(6,62681): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-disabled-color'
(6,62842): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-header-padding-y'
(6,62878): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-header-padding-x'
(6,62954): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-header-color'
(6,63047): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-item-padding-y'
(6,63081): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-item-padding-x'
(6,63121): run-time error CSS1039: Token not allowed after unary operator: '-bs-dropdown-link-color'
(6,63166): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63194): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63219): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63281): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63308): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63341): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63377): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63437): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63491): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63528): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63565): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,63607): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,65845): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,65874): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,65905): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,65933): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,65974): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66027): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66176): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-padding-y'
(6,66205): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-padding-x'
(6,66244): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-font-size'
(6,66285): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-font-weight'
(6,66322): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-color'
(6,66570): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-hover-color'
(6,66626): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-disabled-color'
(6,66700): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66731): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66766): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66803): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66865): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66905): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,66939): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,67018): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-width'
(6,67056): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-color'
(6,67132): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-width'
(6,67187): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-width'
(6,67260): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-radius'
(6,67317): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-radius'
(6,67433): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-link-hover-border-color'
(6,67540): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-disabled-color'
(6,67696): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-link-active-color'
(6,67750): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-link-active-bg'
(6,67797): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-link-active-border-color'
(6,67887): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-tabs-border-width'
(6,67977): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68015): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68053): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68155): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-pills-border-radius'
(6,68225): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-link-disabled-color'
(6,68374): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-pills-link-active-color'
(6,68429): run-time error CSS1039: Token not allowed after unary operator: '-bs-nav-pills-link-active-bg'
(6,68779): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68803): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68832): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68870): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68913): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,68959): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69003): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69041): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69075): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69111): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69154): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69203): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69241): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69279): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69317): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69355): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69619): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69671): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69714): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69754): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,69922): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-padding-y'
(6,69949): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-padding-x'
(6,70237): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-padding-y'
(6,70285): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-padding-y'
(6,70331): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-margin-end'
(6,70375): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-font-size'
(6,70414): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-color'
(6,70529): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-brand-hover-color'
(6,70571): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70597): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70628): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70656): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70699): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70754): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,70965): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-active-color'
(6,71096): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-color'
(6,71182): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-active-color'
(6,71300): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-padding-y'
(6,71335): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-padding-x'
(6,71380): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-font-size'
(6,71435): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-color'
(6,71494): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,71523): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-border-color'
(6,71575): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-border-radius'
(6,71625): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-transition'
(6,71846): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-focus-width'
(6,71989): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-toggler-icon-bg'
(6,72128): run-time error CSS1039: Token not allowed after unary operator: '-bs-scroll-height'
(6,72426): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,72475): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,73340): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,73389): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,74254): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,74303): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,75169): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,75218): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,76088): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,76137): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,76971): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,77020): run-time error CSS1039: Token not allowed after unary operator: '-bs-navbar-nav-link-padding-x'
(6,77621): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77665): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77715): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77768): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77798): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77827): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77862): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,77920): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78196): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78220): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78244): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78276): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78303): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78361): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78394): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78417): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78468): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78499): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78528): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78565): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78587): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78606): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78624): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78642): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78677): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,78785): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-height'
(6,78845): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-bg'
(6,78897): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-width'
(6,78931): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-color'
(6,78973): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-radius'
(6,79171): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,79230): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,79343): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,79404): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,79547): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-spacer-y'
(6,79571): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-spacer-x'
(6,79601): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-color'
(6,79648): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-title-spacer-y'
(6,79715): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-title-spacer-y'
(6,79834): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-spacer-x'
(6,79879): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-y'
(6,79908): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,79959): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-color'
(6,80001): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-bg'
(6,80037): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-width'
(6,80071): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-color'
(6,80138): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,80173): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,80233): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-y'
(6,80262): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,80297): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-color'
(6,80339): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-bg'
(6,80372): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-width'
(6,80406): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-border-color'
(6,80476): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,80511): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,80588): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,80642): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-y'
(6,80695): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,80793): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-bg'
(6,80831): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-bg'
(6,80892): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,80945): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-cap-padding-x'
(6,81049): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-img-overlay-padding'
(6,81098): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,81232): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,81291): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,81380): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,81441): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-inner-border-radius'
(6,81508): run-time error CSS1039: Token not allowed after unary operator: '-bs-card-group-margin'
(6,82395): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82424): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82447): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82617): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82668): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82700): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82738): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82794): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82831): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82865): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82898): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,82943): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83239): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83277): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83327): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83389): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83692): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83738): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83813): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83851): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83886): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,83922): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,84047): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-padding-y'
(6,84081): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-padding-x'
(6,84136): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-color'
(6,84199): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-bg'
(6,84283): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-transition'
(6,84428): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-active-color'
(6,84478): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-active-bg'
(6,84537): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-width'
(6,84573): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-color'
(6,84664): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-active-icon'
(6,84710): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon-transform'
(6,84794): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon-width'
(6,84836): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon-width'
(6,84916): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon'
(6,84989): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon-width'
(6,85035): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-icon-transition'
(6,85237): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-focus-border-color'
(6,85301): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-btn-focus-box-shadow'
(6,85398): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-color'
(6,85441): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-bg'
(6,85471): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-width'
(6,85510): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-color'
(6,85596): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,85654): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,85759): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-inner-border-radius'
(6,85823): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-inner-border-radius'
(6,85968): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,86028): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,86146): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-inner-border-radius'
(6,86212): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-inner-border-radius'
(6,86328): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,86388): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-border-radius'
(6,86446): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-body-padding-y'
(6,86481): run-time error CSS1039: Token not allowed after unary operator: '-bs-accordion-body-padding-x'
(6,86899): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,86927): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,86955): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,86990): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87011): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87043): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87081): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87119): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87202): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-padding-y'
(6,87233): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-padding-x'
(6,87278): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-margin-bottom'
(6,87323): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-font-size'
(6,87387): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-bg'
(6,87425): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-border-radius'
(6,87507): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-item-padding-x'
(6,87610): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-item-padding-x'
(6,87652): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-divider-color'
(6,87695): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-divider'
(6,87759): run-time error CSS1039: Token not allowed after unary operator: '-bs-breadcrumb-item-active-color'
(6,87805): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87839): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87874): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87905): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87948): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,87972): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88005): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88042): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88081): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88169): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88212): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88267): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88300): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88372): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88406): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88440): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88484): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88523): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88556): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,88702): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-padding-y'
(6,88733): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-padding-x'
(6,88774): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-font-size'
(6,88811): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-color'
(6,88876): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-bg'
(6,88907): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-width'
(6,88947): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-color'
(6,89207): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-hover-color'
(6,89257): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-hover-bg'
(6,89300): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-hover-border-color'
(6,89373): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-focus-color'
(6,89423): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-focus-bg'
(6,89474): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-focus-box-shadow'
(6,89565): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-active-color'
(6,89616): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-active-bg'
(6,89660): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-active-border-color'
(6,89748): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-disabled-color'
(6,89821): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-disabled-bg'
(6,89867): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-disabled-border-color'
(6,90024): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-radius'
(6,90085): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-radius'
(6,90177): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-radius'
(6,90239): run-time error CSS1039: Token not allowed after unary operator: '-bs-pagination-border-radius'
(6,90284): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90317): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90351): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90385): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90437): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90470): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90504): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90539): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90584): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90612): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90640): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90668): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90695): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90717): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,90785): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-padding-y'
(6,90811): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-padding-x'
(6,90847): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-font-size'
(6,90885): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-font-weight'
(6,90933): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-color'
(6,91030): run-time error CSS1039: Token not allowed after unary operator: '-bs-badge-border-radius'
(6,91127): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91153): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91179): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91205): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91235): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91260): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91296): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91353): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91418): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-padding-y'
(6,91444): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-padding-x'
(6,91484): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-margin-bottom'
(6,91520): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-color'
(6,91559): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-bg'
(6,91585): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-border'
(6,91622): run-time error CSS1039: Token not allowed after unary operator: '-bs-alert-border-radius'
(6,91850): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91875): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91897): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,91987): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92012): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92034): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92124): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92149): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92171): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92256): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92281): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92303): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92388): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92413): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92435): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92522): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92547): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92569): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92654): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92679): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92701): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92784): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92809): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92831): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,92974): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93000): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93032): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93057): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93094): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93156): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93185): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93214): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,93284): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-height'
(6,93336): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-font-size'
(6,93382): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-bg'
(6,93418): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-border-radius'
(6,93545): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-bar-color'
(6,93628): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-bar-bg'
(6,93665): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-bar-transition'
(6,93985): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-height'
(6,94011): run-time error CSS1039: Token not allowed after unary operator: '-bs-progress-height'
(6,94195): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94225): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94249): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94299): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94332): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94371): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94407): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94445): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94482): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94525): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94565): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94609): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94650): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94689): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94722): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94756): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94790): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,94919): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,95167): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-action-color'
(6,95296): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-action-hover-color'
(6,95374): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-action-hover-bg'
(6,95448): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-action-active-color'
(6,95506): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-action-active-bg'
(6,95601): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-item-padding-y'
(6,95637): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-item-padding-x'
(6,95679): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-color'
(6,95744): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-bg'
(6,95775): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,95815): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-color'
(6,96096): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-disabled-color'
(6,96169): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-disabled-bg'
(6,96242): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-active-color'
(6,96293): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-active-bg'
(6,96337): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-active-border-color'
(6,96493): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,96545): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,96716): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,96870): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,97067): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,97207): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,97260): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,97462): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,97619): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,97822): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,97965): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,98018): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,98221): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,98378): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,98581): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,98724): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,98777): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,98980): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,99137): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,99340): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,99483): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,99536): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,99740): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,99897): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,100100): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,100243): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,100296): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,100502): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,100660): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-radius'
(6,100865): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,101009): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,101062): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,101183): run-time error CSS1039: Token not allowed after unary operator: '-bs-list-group-border-width'
(6,104688): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104711): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104740): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104768): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104794): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104821): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104851): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104870): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104910): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104938): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,104997): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105031): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105087): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105119): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105166): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105228): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-max-width'
(6,105279): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-font-size'
(6,105311): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-color'
(6,105370): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-bg'
(6,105424): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-width'
(6,105459): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-color'
(6,105499): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-box-shadow'
(6,105540): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-radius'
(6,105638): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,105692): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-zindex'
(6,105866): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-spacing'
(6,105944): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-padding-y'
(6,105970): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-padding-x'
(6,106002): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-header-color'
(6,106048): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-header-bg'
(6,106116): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-width'
(6,106151): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-header-border-color'
(6,106215): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-radius'
(6,106247): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-width'
(6,106306): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-radius'
(6,106338): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-border-width'
(6,106417): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-padding-x'
(6,106456): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-padding-x'
(6,106502): run-time error CSS1039: Token not allowed after unary operator: '-bs-toast-padding-x'
(6,106551): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106574): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106597): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106621): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106646): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106665): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106684): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106743): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106771): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106803): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106865): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106915): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106948): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,106981): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107017): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107071): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107106): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107139): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107168): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107191): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107245): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,107321): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-zindex'
(6,107474): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-margin'
(6,107829): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-margin'
(6,108060): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-margin'
(6,108173): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-color'
(6,108232): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-bg'
(6,108286): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-border-width'
(6,108321): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-border-color'
(6,108364): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-border-radius'
(6,108415): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,108441): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,108463): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,108530): run-time error CSS1039: Token not allowed after unary operator: '-bs-backdrop-zindex'
(6,108598): run-time error CSS1039: Token not allowed after unary operator: '-bs-backdrop-bg'
(6,108680): run-time error CSS1039: Token not allowed after unary operator: '-bs-backdrop-opacity'
(6,108805): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding'
(6,108850): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-border-width'
(6,108892): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-border-color'
(6,108951): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-inner-border-radius'
(6,109011): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-inner-border-radius'
(6,109085): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding-y'
(6,109129): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding-x'
(6,109186): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding-y'
(6,109231): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding-x'
(6,109276): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-header-padding-y'
(6,109356): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-title-line-height'
(6,109442): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-padding'
(6,109579): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-padding'
(6,109605): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-footer-gap'
(6,109655): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-footer-bg'
(6,109692): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-footer-border-width'
(6,109734): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-footer-border-color'
(6,109797): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-inner-border-radius'
(6,109859): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-inner-border-radius'
(6,109923): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-footer-gap'
(6,109983): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,110009): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,110094): run-time error CSS1039: Token not allowed after unary operator: '-bs-modal-width'
(6,110156): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,110225): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,110285): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112243): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112268): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112297): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112327): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112358): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112380): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112412): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112436): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112457): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112493): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112518): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112550): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,112596): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-zindex'
(6,112643): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,112681): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-margin'
(6,112718): run-time error CSS1039: Token not allowed after unary operator: '-bs-font-sans-serif'
(6,112990): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-font-size'
(6,113071): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-opacity'
(6,113141): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,113178): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,113543): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,113579): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,113634): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-bg'
(6,113761): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,113799): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,113967): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114003): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,114039): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114096): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-bg'
(6,114365): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114401): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,114452): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-bg'
(6,114581): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,114619): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114787): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114830): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-width'
(6,114866): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-arrow-height'
(6,114915): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-bg'
(6,114961): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-max-width'
(6,114997): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-padding-y'
(6,115025): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-padding-x'
(6,115059): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-color'
(6,115118): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-bg'
(6,115153): run-time error CSS1039: Token not allowed after unary operator: '-bs-tooltip-border-radius'
(6,115189): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115214): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115243): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115275): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115296): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115326): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115387): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115421): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115473): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115531): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115566): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115603): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115638): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115666): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115697): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115730): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115763): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115795): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115825): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115858): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,115928): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-zindex'
(6,115977): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-max-width'
(6,116017): run-time error CSS1039: Token not allowed after unary operator: '-bs-font-sans-serif'
(6,116289): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-font-size'
(6,116355): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-bg'
(6,116411): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,116448): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-color'
(6,116493): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-radius'
(6,116569): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,116606): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,116911): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,116945): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,117202): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,117238): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,117409): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-border'
(6,117552): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,117600): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-bg'
(6,117730): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,117764): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,117802): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,117840): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,118104): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,118140): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,118176): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,118349): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-border'
(6,118492): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,118542): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-bg'
(6,118675): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,118709): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,118985): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,119021): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,119191): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-border'
(6,119337): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,119388): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-bg'
(6,119577): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,119630): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,119686): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,119723): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-bg'
(6,119862): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,119896): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,119934): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,119972): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,120238): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,120281): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-width'
(6,120317): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-height'
(6,120484): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-arrow-border'
(6,120629): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,120678): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-bg'
(6,120723): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-padding-y'
(6,120758): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-padding-x'
(6,120819): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-font-size'
(6,120860): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-color'
(6,120908): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-header-bg'
(6,120950): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-width'
(6,120987): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-border-color'
(6,121041): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-inner-border-radius'
(6,121103): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-inner-border-radius'
(6,121198): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-body-padding-y'
(6,121231): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-body-padding-x'
(6,121270): run-time error CSS1039: Token not allowed after unary operator: '-bs-popover-body-color'
(6,124993): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-width'
(6,125024): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-height'
(6,125064): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-vertical-align'
(6,125125): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-animation-speed'
(6,125175): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-animation-name'
(6,125274): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125298): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125323): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125360): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125393): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125428): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125483): run-time error CSS1039: Token not allowed after unary operator: '-bs-spinner-border-width'
(6,125578): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125602): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125627): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125749): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125773): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125798): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125835): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125870): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125968): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,125992): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126086): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126203): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126230): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126257): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126284): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126314): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126344): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126367): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126390): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126422): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126485): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,126630): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,126713): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,126774): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,127045): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,127084): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,127123): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,127261): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,127299): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,127338): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,127483): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,127540): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,127579): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,127722): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,127776): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,127815): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,128118): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,128145): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,128462): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,128545): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,128606): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,128877): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,128916): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,128955): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,129093): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,129131): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,129170): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,129315): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,129372): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,129411): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,129554): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,129608): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,129647): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,129950): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,129977): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,130294): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,130377): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,130438): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,130709): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,130748): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,130787): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,130925): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,130963): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,131002): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,131147): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,131204): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,131243): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,131386): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,131440): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,131479): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,131782): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,131809): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,132127): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,132210): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,132271): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,132544): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,132583): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,132622): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,132761): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,132799): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,132838): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,132984): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,133041): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,133080): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,133224): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,133278): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,133317): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,133623): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,133650): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,133969): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,134052): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,134113): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,134388): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,134427): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,134466): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,134606): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,134644): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,134683): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,134830): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,134887): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,134926): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,135071): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,135125): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,135164): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,135476): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,135503): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,135791): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-zindex'
(6,135874): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-color'
(6,135935): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-bg'
(6,136146): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,136185): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,136224): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,136330): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-width'
(6,136368): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,136407): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,136520): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,136577): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,136616): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,136727): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-height'
(6,136781): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-width'
(6,136820): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-border-color'
(6,137282): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-y'
(6,137312): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-x'
(6,137384): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-y'
(6,137425): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-x'
(6,137483): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-y'
(6,137538): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-x'
(6,137594): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-y'
(6,137710): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-y'
(6,137740): run-time error CSS1039: Token not allowed after unary operator: '-bs-offcanvas-padding-x'
(6,138668): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,138776): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,138880): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,138982): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,139086): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,139189): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,139293): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,139393): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,140299): run-time error CSS1039: Token not allowed after unary operator: '-bs-aspect-ratio'
(6,140402): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,140436): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,140470): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,140507): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,144543): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,144566): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-style'
(6,144589): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,144674): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,144697): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-style'
(6,144720): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,144815): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,144838): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-style'
(6,144861): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,144962): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,144985): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-style'
(6,145008): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,145110): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-width'
(6,145133): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-style'
(6,145156): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-color'
(6,145240): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145285): run-time error CSS1039: Token not allowed after unary operator: '-bs-primary-rgb'
(6,145307): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145356): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145401): run-time error CSS1039: Token not allowed after unary operator: '-bs-secondary-rgb'
(6,145425): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145472): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145517): run-time error CSS1039: Token not allowed after unary operator: '-bs-success-rgb'
(6,145539): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145583): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145628): run-time error CSS1039: Token not allowed after unary operator: '-bs-info-rgb'
(6,145647): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145694): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145739): run-time error CSS1039: Token not allowed after unary operator: '-bs-warning-rgb'
(6,145761): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145807): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145852): run-time error CSS1039: Token not allowed after unary operator: '-bs-danger-rgb'
(6,145873): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,145918): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,145963): run-time error CSS1039: Token not allowed after unary operator: '-bs-light-rgb'
(6,145983): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,146027): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146072): run-time error CSS1039: Token not allowed after unary operator: '-bs-dark-rgb'
(6,146091): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,146136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146181): run-time error CSS1039: Token not allowed after unary operator: '-bs-white-rgb'
(6,146201): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-opacity'
(6,146242): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146274): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146306): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146338): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146370): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146411): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146454): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146498): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146541): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,146586): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,153043): run-time error CSS1039: Token not allowed after unary operator: '-bs-font-monospace'
(6,154395): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154431): run-time error CSS1039: Token not allowed after unary operator: '-bs-primary-rgb'
(6,154453): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154498): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154534): run-time error CSS1039: Token not allowed after unary operator: '-bs-secondary-rgb'
(6,154558): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154601): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154637): run-time error CSS1039: Token not allowed after unary operator: '-bs-success-rgb'
(6,154659): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154699): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154735): run-time error CSS1039: Token not allowed after unary operator: '-bs-info-rgb'
(6,154754): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154797): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154833): run-time error CSS1039: Token not allowed after unary operator: '-bs-warning-rgb'
(6,154855): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154897): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,154933): run-time error CSS1039: Token not allowed after unary operator: '-bs-danger-rgb'
(6,154954): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,154995): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155031): run-time error CSS1039: Token not allowed after unary operator: '-bs-light-rgb'
(6,155051): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,155091): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155127): run-time error CSS1039: Token not allowed after unary operator: '-bs-dark-rgb'
(6,155146): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,155187): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155223): run-time error CSS1039: Token not allowed after unary operator: '-bs-black-rgb'
(6,155243): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,155284): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155320): run-time error CSS1039: Token not allowed after unary operator: '-bs-white-rgb'
(6,155340): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,155380): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155416): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-color-rgb'
(6,155441): run-time error CSS1039: Token not allowed after unary operator: '-bs-text-opacity'
(6,155482): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155541): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155607): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155676): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155737): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155777): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155816): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155857): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155889): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,155934): run-time error CSS1039: Token not allowed after unary operator: '-bs-primary-rgb'
(6,155956): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,155997): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156042): run-time error CSS1039: Token not allowed after unary operator: '-bs-secondary-rgb'
(6,156066): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156105): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156150): run-time error CSS1039: Token not allowed after unary operator: '-bs-success-rgb'
(6,156172): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156208): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156253): run-time error CSS1039: Token not allowed after unary operator: '-bs-info-rgb'
(6,156272): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156311): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156356): run-time error CSS1039: Token not allowed after unary operator: '-bs-warning-rgb'
(6,156378): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156416): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156461): run-time error CSS1039: Token not allowed after unary operator: '-bs-danger-rgb'
(6,156482): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156519): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156564): run-time error CSS1039: Token not allowed after unary operator: '-bs-light-rgb'
(6,156584): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156620): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156665): run-time error CSS1039: Token not allowed after unary operator: '-bs-dark-rgb'
(6,156684): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156721): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156766): run-time error CSS1039: Token not allowed after unary operator: '-bs-black-rgb'
(6,156786): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156823): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156868): run-time error CSS1039: Token not allowed after unary operator: '-bs-white-rgb'
(6,156888): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,156924): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,156969): run-time error CSS1039: Token not allowed after unary operator: '-bs-body-bg-rgb'
(6,156991): run-time error CSS1039: Token not allowed after unary operator: '-bs-bg-opacity'
(6,157034): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157106): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157141): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157177): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157212): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157249): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6,157302): run-time error CSS1039: Token not allowed after unary operator: '-bs-gradient'
(6,157764): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,157860): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius-sm'
(6,157922): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,157981): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius-lg'
(6,158043): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius-xl'
(6,158105): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius-2xl'
(6,158215): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius-pill'
(6,158290): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158348): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158419): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158480): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158557): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158617): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158692): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(6,158749): run-time error CSS1039: Token not allowed after unary operator: '-bs-border-radius'
(44,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(45,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(51,42): run-time error CSS1030: Expected identifier, found ' '
(51,44): run-time error CSS1031: Expected selector, found '/'
(51,44): run-time error CSS1025: Expected comma or open brace, found '/'
(53,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(58,107): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(62,38): run-time error CSS1039: Token not allowed after unary operator: '-chat-msg-font-size'
(75,41): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(83,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(95,40): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(95,76): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(96,44): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(96,78): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(111,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(112,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(113,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(114,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(115,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(122,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(125,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(131,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(136,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(144,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(152,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(153,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(226,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(227,35): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(228,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(230,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(232,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(238,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(239,35): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(240,17): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(242,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(245,52): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(254,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(271,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(444,31): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(471,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(472,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(488,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(489,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(490,33): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(491,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(492,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(499,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(504,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(505,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(519,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(530,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(534,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(547,35): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(547,66): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(547,102): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(548,35): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(548,87): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(549,36): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(549,90): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(550,27): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(550,61): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(590,40): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(590,92): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(591,53): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(592,43): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(592,95): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(632,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(634,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(634,83): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(636,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(638,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(640,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(642,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(644,56): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(653,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(658,45): run-time error CSS1039: Token not allowed after unary operator: '-kind-color'
(661,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(664,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(671,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(676,59): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(684,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(690,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(691,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(692,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(693,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(694,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(695,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(696,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(711,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(712,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(714,37): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(715,38): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(717,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(738,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(751,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(752,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(764,72): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(765,38): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(765,70): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(769,32): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(771,44): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(771,76): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(781,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(782,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(788,99): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(799,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(801,71): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(806,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(810,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(811,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(826,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(828,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(829,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(832,41): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(832,69): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(849,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(850,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(853,76): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(861,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(862,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(879,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(880,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(881,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(882,22): run-time error CSS1039: Token not allowed after unary operator: '-result-bg'
(883,17): run-time error CSS1039: Token not allowed after unary operator: '-result-fg'
(884,28): run-time error CSS1039: Token not allowed after unary operator: '-result-accent'
(885,33): run-time error CSS1039: Token not allowed after unary operator: '-result-accent'
(886,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(887,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(895,54): run-time error CSS1039: Token not allowed after unary operator: '-result-fg'
(897,60): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(898,61): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(909,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(911,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(912,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(923,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(925,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(943,28): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(944,24): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(949,28): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn-hover'
(950,24): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn-hover'
(1008,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1009,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1010,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1011,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(1012,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(1020,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1028,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1031,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1045,64): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1048,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(1061,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(1062,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(1067,32): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1067,70): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(1072,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1080,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1085,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1085,48): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1085,67): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1086,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1086,48): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1086,70): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1087,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1087,48): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1087,70): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1088,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1088,48): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1088,70): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1089,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1089,61): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1089,93): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1105,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1106,45): run-time error CSS1039: Token not allowed after unary operator: '-kind-color'
(1109,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1111,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(1113,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1117,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1118,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1119,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1120,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1131,58): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(1131,92): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1134,79): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(1138,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1139,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1141,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1142,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1143,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(1145,47): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1146,35): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(1146,74): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(1146,110): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(1147,32): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(1148,35): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(1148,71): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(1148,104): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(1149,32): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(1154,48): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1164,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1168,39): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(1168,71): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(1169,39): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(1169,71): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(1170,39): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(1170,71): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(1191,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1192,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1193,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1194,33): run-time error CSS1039: Token not allowed after unary operator: '-row-accent'
(1195,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1199,40): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1200,54): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1220,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1221,26): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(1226,44): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(1226,81): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(1243,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1244,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1245,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1268,22): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1275,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1278,47): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1279,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1293,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(1294,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1295,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1296,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1303,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1304,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1316,56): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1326,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1332,22): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1334,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1336,68): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1340,55): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1342,42): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1343,42): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1344,42): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1345,42): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1353,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1357,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1360,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1363,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(1365,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1367,36): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(1427,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1432,58): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1432,112): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(1441,36): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1517,38): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1532,42): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1533,73): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1541,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(1543,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(1627,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1629,26): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1639,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(1691,46): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(1726,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1747,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1747,56): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1749,67): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1749,95): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1750,66): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1750,94): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1800,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(1803,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1805,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(1812,52): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(1847,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1867,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1868,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(1869,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1870,25): run-time error CSS1039: Token not allowed after unary operator: '-radius-lg'
(1871,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(1878,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1887,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border-subtle'
(1888,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1892,36): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1893,35): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1927,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1928,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1929,25): run-time error CSS1039: Token not allowed after unary operator: '-radius-md'
(1937,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-hover'
(1938,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(1942,37): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1942,65): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(1947,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(1948,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(1949,33): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(1950,25): run-time error CSS1039: Token not allowed after unary operator: '-radius-md'
(1951,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(1975,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2007,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2012,87): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2016,86): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2025,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2039,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2040,25): run-time error CSS1039: Token not allowed after unary operator: '-radius'
(2041,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(2057,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2060,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-dim'
(2067,39): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2067,76): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2130,23): run-time error CSS1039: Token not allowed after unary operator: '-line-height'
(2137,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2138,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(2143,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2154,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(2155,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(2158,51): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(2159,51): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2160,51): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(2161,71): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2182,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2183,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2227,41): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(2229,41): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(2230,41): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2232,41): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(2233,41): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2237,45): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(2237,73): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(2246,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2247,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(2256,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(2268,44): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2284,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2288,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(2289,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(2313,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(2314,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2315,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(2316,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2316,46): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2345,27): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2346,27): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2347,46): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2350,52): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(2383,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(2384,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2385,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2386,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(2388,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2389,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2389,78): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2393,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(2399,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(2400,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(2402,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2405,40): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(2407,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(2408,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2421,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2421,78): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2425,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(2444,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(2445,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2449,51): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2450,73): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2453,39): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(2463,36): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2469,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(2470,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(2472,46): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2499,35): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(2503,73): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2504,55): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2505,58): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2513,35): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(2517,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2519,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(2520,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2526,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2551,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(2554,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2564,47): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(2565,32): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2577,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(2578,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2579,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2584,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-light'
(2585,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2591,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2594,71): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2597,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(2600,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2608,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2609,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2610,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(2612,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2613,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(2616,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2617,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(2623,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(2626,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(2629,46): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(2630,46): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(2631,58): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(2633,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2634,33): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2660,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2662,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(2666,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(2676,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2677,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2678,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(2679,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2686,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2687,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(2693,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(2699,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(2704,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(2707,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2717,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(2718,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2719,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(2725,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2730,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(2733,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2782,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2787,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2795,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(2798,24): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2845,1): run-time error CSS1031: Expected selector, found '@media'
(2856,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2857,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2858,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2859,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2860,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2861,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2862,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2863,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2864,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2865,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2866,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2867,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2868,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2869,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2870,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(2876,96): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(2876,123): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2876,226): run-time error CSS1039: Token not allowed after unary operator: '-shadow-drawer'
(2878,44): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(2879,81): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2881,57): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2896,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2898,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2920,31): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(2932,66): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(2933,65): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(2952,21): run-time error CSS1030: Expected identifier, found ':'
(2952,29): run-time error CSS1031: Expected selector, found ')'
(2952,29): run-time error CSS1025: Expected comma or open brace, found ')'
(2953,21): run-time error CSS1030: Expected identifier, found ':'
(2953,29): run-time error CSS1031: Expected selector, found ')'
(2953,29): run-time error CSS1025: Expected comma or open brace, found ')'
(2954,18): run-time error CSS1030: Expected identifier, found ':'
(2954,26): run-time error CSS1031: Expected selector, found ')'
(2954,26): run-time error CSS1025: Expected comma or open brace, found ')'
(2955,19): run-time error CSS1030: Expected identifier, found ':'
(2955,27): run-time error CSS1031: Expected selector, found ')'
(2955,27): run-time error CSS1025: Expected comma or open brace, found ')'
(2956,20): run-time error CSS1030: Expected identifier, found ':'
(2956,28): run-time error CSS1031: Expected selector, found ')'
(2956,28): run-time error CSS1025: Expected comma or open brace, found ')'
(2961,112): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(3041,170): run-time error CSS1039: Token not allowed after unary operator: '-shadow-msg-card'
(3076,46): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3095,48): run-time error CSS1039: Token not allowed after unary operator: '-cc'
(3105,62): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(3109,14): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(3110,31): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(3112,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3115,31): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(3116,30): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3123,43): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3143,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3144,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3184,148): run-time error CSS1039: Token not allowed after unary operator: '-shadow-msg-menu'
(3208,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(3209,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(3210,23): run-time error CSS1039: Token not allowed after unary operator: '-btn-font-weight'
(3212,25): run-time error CSS1039: Token not allowed after unary operator: '-btn-radius'
(3214,22): run-time error CSS1039: Token not allowed after unary operator: '-btn-transition'
(3218,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(3219,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(3231,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(3232,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(3235,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(3278,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-top'
(3279,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-top-2'
(3280,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-left'
(3281,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-right'
(3282,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-highlight'
(3283,10): run-time error CSS1039: Token not allowed after unary operator: '-shadow-compose-outer'
(3297,59): run-time error CSS1039: Token not allowed after unary operator: '-shadow-member-dd'
(3317,24): run-time error CSS1039: Token not allowed after unary operator: '-recip-color'
(3323,28): run-time error CSS1039: Token not allowed after unary operator: '-recip-color'
(3352,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3352,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3352,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3353,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3353,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3353,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3354,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3354,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3354,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3355,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3355,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,29): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,54): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,79): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,104): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3357,129): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,37): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,70): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,103): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3358,169): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,33): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,62): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,91): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,120): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3359,149): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,32): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,60): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,88): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,116): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3360,144): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,82): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,108): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3361,134): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,66): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,97): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,128): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3362,159): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,82): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,108): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3363,134): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,35): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,66): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,97): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,128): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3364,159): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,30): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,56): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,82): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,108): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3365,134): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,37): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,70): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,103): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,136): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3366,169): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,32): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,60): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,88): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,116): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3367,144): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,32): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,60): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,88): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,116): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3368,144): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3371,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3371,28): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3371,53): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3371,78): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3372,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3372,36): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3372,69): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3372,102): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3373,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3373,32): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3373,61): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3373,90): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3374,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3374,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3374,59): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3374,87): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3375,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3375,29): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3375,55): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3375,81): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3376,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3376,34): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3376,65): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3376,96): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3377,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3377,29): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3377,55): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3377,81): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3378,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3378,34): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3378,65): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3378,96): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3379,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3379,29): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3379,55): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3379,81): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3380,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3380,36): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3380,69): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3380,102): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3381,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3381,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3381,59): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3381,87): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3382,3): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3382,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3382,59): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3382,87): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(3623,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(3649,71): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(3649,99): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(3664,19): run-time error CSS1039: Token not allowed after unary operator: '-shadow-linkwhite'
(3676,58): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3677,70): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(3692,38): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(3772,63): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(3844,39): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(3926,64): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4003,79): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4106,73): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4167,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(4168,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4169,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(4172,44): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(4172,83): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(4175,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4176,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4179,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(4185,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4186,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4197,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4273,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4274,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4275,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(4321,95): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(4331,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(4332,33): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(4334,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4336,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4337,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4345,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4348,40): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4358,67): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4365,20): run-time error CSS1030: Expected identifier, found '*'
(4365,22): run-time error CSS1031: Expected selector, found ')'
(4365,22): run-time error CSS1025: Expected comma or open brace, found ')'
(4372,26): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(4378,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4378,67): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4381,83): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(4381,120): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4382,41): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4383,82): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4384,61): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(4394,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(4394,68): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4395,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-xl'
(4396,85): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(4402,58): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4403,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4405,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4407,102): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4409,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4411,73): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4415,54): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(4415,92): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4415,120): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4425,74): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4426,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(4426,56): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4429,42): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4429,84): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(4449,66): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4452,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4454,41): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4454,69): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4457,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(4457,73): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(4458,50): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4459,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4467,89): run-time error CSS1039: Token not allowed after unary operator: '-shadow-xl'
(4473,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4477,50): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4480,77): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4484,36): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4494,45): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4494,81): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4495,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4495,67): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(4495,91): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4497,45): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4525,27): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4636,52): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4637,42): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(4640,34): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4640,62): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4641,41): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(4643,33): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4645,27): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(4648,36): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4677,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4678,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4679,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(4683,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4684,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4689,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4690,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4693,36): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4694,38): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4694,66): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(4700,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4721,52): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4725,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4728,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4729,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4731,31): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(4731,61): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4732,49): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4732,77): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4736,50): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4736,82): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4742,50): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4743,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4744,29): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(4748,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(4749,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4752,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4753,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4766,29): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(4767,28): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(4768,31): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4807,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4808,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4854,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(4863,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4864,24): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4899,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4906,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4907,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(4924,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(4924,41): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4925,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4932,33): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(4933,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(4935,36): run-time error CSS1039: Token not allowed after unary operator: '-shadow-card-hover'
(4935,61): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(4942,50): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(4943,50): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(4962,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4965,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(4968,69): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(4968,135): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(4972,32): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(4972,73): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(4972,113): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(4974,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4975,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(4981,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(4981,54): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(4983,64): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(4983,89): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(4984,29): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(4993,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(4994,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(4997,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(4998,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(4999,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5001,39): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(5001,80): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(5001,125): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(5002,39): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(5002,80): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(5002,125): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(5003,39): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(5003,80): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(5003,125): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(5005,59): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5006,39): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-light'
(5006,82): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-deeper'
(5006,109): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(5006,159): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5024,81): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5025,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5026,29): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5026,66): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5027,31): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5027,78): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5029,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5029,73): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(5038,56): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(5038,101): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(5039,56): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5039,101): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5054,35): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(5054,76): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(5070,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5076,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5077,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5118,30): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5119,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5120,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5122,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5127,66): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5129,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5141,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5144,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5154,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5155,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5159,40): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5198,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5204,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5205,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5208,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5219,30): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5220,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5221,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5223,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5229,51): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5242,43): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5243,47): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5243,87): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5253,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5254,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5256,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5257,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5268,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5273,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5295,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(5296,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5299,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5308,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5311,27): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5311,68): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5314,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5315,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(5332,30): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5333,22): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(5334,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5338,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5351,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5352,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5353,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5355,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5360,24): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(5361,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(5362,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(5399,30): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5400,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5401,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5403,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5410,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5411,17): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(5415,24): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(5416,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(5417,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5426,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5429,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5451,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5452,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(5453,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5458,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5466,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5477,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5478,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5489,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5496,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5497,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5498,33): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5499,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(5500,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(5512,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5535,33): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5545,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5591,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(5592,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5604,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5605,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5606,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5607,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5610,34): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5610,70): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(5610,100): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5617,49): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(5618,49): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(5619,49): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5622,52): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5626,25): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(5632,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5633,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5634,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5636,45): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5639,33): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5639,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5639,97): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5640,42): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5659,49): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5667,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5668,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5669,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5670,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5673,32): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5673,68): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(5673,98): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5680,49): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5681,49): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(5684,50): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5688,23): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(5691,42): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5697,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5698,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5699,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5701,43): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5704,31): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5704,67): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5704,95): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5705,40): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5724,49): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(5725,25): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5725,59): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5735,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5736,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5737,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5738,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5741,33): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5741,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(5741,99): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5752,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(5753,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5754,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(5755,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5756,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5765,45): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(5770,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5771,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(5772,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5787,36): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5791,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5792,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5793,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5797,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5802,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(5802,84): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(5803,29): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(5803,84): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(5816,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5822,33): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5822,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(5822,97): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5823,27): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5823,63): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5836,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(5837,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(5839,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(5840,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(5841,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(5844,51): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5845,24): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5845,60): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5847,56): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5847,84): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5848,29): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5848,59): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(5848,95): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5852,51): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(5852,95): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5852,131): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5874,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5877,61): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5880,87): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5885,86): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5892,61): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(5920,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(5921,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(5922,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5923,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5928,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5928,58): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5930,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5930,66): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5931,43): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5931,68): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5932,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5934,64): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5934,94): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5935,42): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5935,70): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(5951,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(5952,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(5954,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(5955,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(5957,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5958,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5959,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5963,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5964,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(5967,44): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(5968,50): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(5975,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(5976,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(5989,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(5991,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(5997,22): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6005,45): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6005,66): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(6017,36): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(6018,38): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6018,66): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6021,57): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6021,81): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(6027,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6028,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6030,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(6031,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-light'
(6032,47): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6048,31): run-time error CSS1039: Token not allowed after unary operator: '-card-padding-lg'
(6048,71): run-time error CSS1039: Token not allowed after unary operator: '-card-padding-lg'
(6058,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6059,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6060,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(6063,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(6064,39): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-back'
(6099,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6100,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6106,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(6106,61): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(6106,101): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(6108,64): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(6111,42): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6114,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6115,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6116,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6117,23): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6126,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6129,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-light'
(6130,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-deeper'
(6131,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6148,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6150,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6151,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6152,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6156,39): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6156,87): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(6156,132): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6157,39): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(6157,87): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(6157,132): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6158,39): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6158,87): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(6158,132): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6159,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6165,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6166,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6167,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6179,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6180,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6188,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6189,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(6229,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6230,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6231,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6234,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6237,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6238,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6241,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6242,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6260,49): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6270,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6271,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6283,30): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6284,27): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6285,29): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6286,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(6295,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6297,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(6298,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(6300,45): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6300,79): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6301,45): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6301,79): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6302,73): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6303,49): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6304,49): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6305,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6308,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6309,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6310,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6315,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6316,17): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6328,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6332,35): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(6339,61): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(6350,48): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(6355,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6356,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6357,21): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(6363,56): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6363,84): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6364,29): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6364,59): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(6364,95): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6367,50): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6367,84): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6367,116): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6368,27): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6371,40): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(6390,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6398,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6399,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6400,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6401,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6404,33): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6404,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(6404,99): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6423,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6438,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6442,47): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6443,47): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6445,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6446,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6447,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6450,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6451,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6461,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6462,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6463,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6464,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(6465,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6467,35): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6471,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6472,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6475,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(6484,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6486,58): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6487,58): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6491,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6492,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6497,35): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6503,68): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6507,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6511,49): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6514,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6515,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6516,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6519,31): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6527,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6530,29): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6531,31): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6531,63): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6532,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6532,64): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6536,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6537,36): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(6542,34): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(6543,26): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(6548,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6549,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6550,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6561,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6569,77): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6593,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6594,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6597,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6602,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6603,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(6606,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6613,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6614,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6621,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(6622,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6637,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6643,33): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6648,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(6649,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6652,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6661,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6668,52): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6668,77): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6670,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6682,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6683,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6690,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6691,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(6691,35): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6692,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6693,47): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6695,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(6696,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(6700,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6701,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6713,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6744,42): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6752,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6754,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6755,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6757,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(6757,80): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(6761,35): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(6761,69): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6761,101): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6762,34): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6762,62): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6764,53): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(6764,92): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(6765,64): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6767,51): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6767,89): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(6769,62): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6770,53): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(6770,92): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(6771,64): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6780,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6780,64): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(6781,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(6783,30): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6783,58): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6784,30): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6784,58): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6784,90): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6792,33): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6792,69): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6801,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6801,64): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6802,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6804,30): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(6804,64): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6804,96): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6805,30): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6805,58): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6806,36): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6806,74): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(6807,42): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6808,37): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(6808,76): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(6809,43): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6811,47): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6811,83): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6817,126): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6818,36): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6822,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6822,64): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6823,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(6824,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6826,57): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(6827,67): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(6833,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6838,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6839,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6840,33): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6840,65): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6841,28): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(6843,50): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(6844,50): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6844,83): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6846,48): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6847,50): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6847,84): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(6848,51): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(6849,50): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6849,83): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-light'
(6850,50): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(6851,50): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6851,83): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(6852,49): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(6853,50): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6877,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(6878,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6879,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6880,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(6881,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(6889,100): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6899,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(6900,19): run-time error CSS1039: Token not allowed after unary operator: '-input-padding'
(6912,78): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6921,39): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(6921,67): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(6921,105): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(6974,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(6975,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(6976,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(6977,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(6978,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(6992,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(6993,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(6996,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(6997,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(6998,47): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7003,58): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7017,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7018,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(7021,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7022,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7028,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7029,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(7038,76): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7040,88): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7050,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7051,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7052,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(7053,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(7058,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7058,49): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7059,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(7078,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7079,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7080,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(7105,56): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7105,89): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(7109,40): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7125,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7136,53): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(7140,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(7141,24): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7142,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(7144,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7148,24): run-time error CSS1039: Token not allowed after unary operator: '-cc'
(7188,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7191,51): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(7191,87): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7191,138): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7192,50): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(7192,78): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7197,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7198,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(7199,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7208,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7208,55): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7209,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7210,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7210,65): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7213,72): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7214,100): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(7217,34): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7218,35): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7222,86): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7231,45): run-time error CSS1030: Expected identifier, found '.'
(7231,46): run-time error CSS1030: Expected identifier, found 'button'
(7231,52): run-time error CSS1031: Expected selector, found ')'
(7231,52): run-time error CSS1025: Expected comma or open brace, found ')'
(7234,41): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7234,66): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7255,33): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7256,36): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7273,32): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7277,71): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7277,129): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7278,71): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(7278,129): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(7279,81): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7279,138): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7281,96): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7282,96): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(7283,106): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7285,100): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7288,120): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7291,55): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7291,112): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7292,55): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7292,113): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7293,88): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7294,80): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7295,80): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7303,57): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7309,60): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7318,89): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7322,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7323,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(7326,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7337,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7338,25): run-time error CSS1039: Token not allowed after unary operator: '-radius-md'
(7339,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7342,42): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(7352,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7357,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7362,43): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(7366,42): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7369,26): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(7373,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7374,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(7382,34): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7404,48): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7404,78): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7409,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(7413,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7425,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7427,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7428,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7433,54): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7434,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7436,49): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7439,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7439,52): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7440,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7445,82): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7445,115): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7447,95): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7457,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7458,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7458,52): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7461,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7461,52): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7462,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7467,109): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7469,51): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7470,40): run-time error CSS1039: Token not allowed after unary operator: '-cucs-font'
(7471,40): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7471,70): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7478,31): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7479,31): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7482,104): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7483,32): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(7484,31): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(7489,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(7492,48): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7496,48): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7497,30): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7501,40): run-time error CSS1039: Token not allowed after unary operator: '-cucs-font'
(7502,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7502,52): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7506,44): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7510,65): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(7512,48): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7516,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7516,52): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7517,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7528,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(7528,51): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(7529,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(7529,82): run-time error CSS1039: Token not allowed after unary operator: '-shadow-card-hover'
(7531,154): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7534,30): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7539,43): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(7543,51): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(7575,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7576,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7577,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7578,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7579,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7580,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7581,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7584,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7585,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7586,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7587,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7588,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7589,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7590,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7591,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7592,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7593,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7594,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7595,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7596,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7597,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7598,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7599,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7602,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7603,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7604,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7605,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7606,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7609,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7610,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7611,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7612,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7615,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7616,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7619,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7620,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7621,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7624,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7625,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7626,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7627,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7628,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7629,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7630,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7631,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7632,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7633,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7634,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7635,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7638,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7639,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7640,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7643,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7644,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7645,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7646,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7647,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7648,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7649,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7650,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7651,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7652,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7653,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7656,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7657,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7660,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7661,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7662,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7663,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7664,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7665,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7668,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7669,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7670,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7673,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7674,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7675,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7676,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7677,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7678,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7681,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7682,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7688,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7689,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7690,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7692,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7693,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7694,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7695,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7697,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7698,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7700,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7701,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7702,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7703,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7704,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7705,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7706,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7707,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7709,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7710,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7711,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7712,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7713,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7714,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7715,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7716,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7717,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7718,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7720,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7722,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7736,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7737,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7738,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7739,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7740,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7741,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7742,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7743,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7744,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7745,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7746,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7747,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7748,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7754,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7755,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7756,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7757,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7758,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7759,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7760,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7761,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7762,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7763,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7764,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7765,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7766,43): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7778,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7779,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7780,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7781,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7782,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7784,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7785,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7786,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7787,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7788,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7790,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7791,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7792,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7793,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7794,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7796,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7797,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7798,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7799,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7800,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7802,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7803,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7804,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7805,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7806,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7808,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7809,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7810,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7811,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7812,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7814,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7815,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7816,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7817,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7818,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7820,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7821,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7822,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7823,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7824,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7826,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7827,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7828,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7829,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7830,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7832,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7833,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7834,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7835,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7836,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7838,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7839,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7840,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7841,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7842,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7844,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7845,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7846,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7847,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7848,31): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7856,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7857,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7858,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7859,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7861,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7862,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7863,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7864,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7866,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7867,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7868,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7869,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7871,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7872,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7873,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7874,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7876,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7877,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7878,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7879,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7881,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7882,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7883,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7884,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7886,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7887,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7888,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7889,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7891,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7892,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7893,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7894,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7896,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7897,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7898,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7899,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7901,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7902,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7903,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7904,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7906,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7907,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7908,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7909,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7911,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7912,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7913,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7914,50): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7931,44): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7940,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7941,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7942,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7943,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7944,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7945,24): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7947,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7948,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7949,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7950,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7951,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7952,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(7964,42): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(8003,37): run-time error CSS1039: Token not allowed after unary operator: '-selection-bg'
(8003,65): run-time error CSS1039: Token not allowed after unary operator: '-selection-color'
(8004,37): run-time error CSS1039: Token not allowed after unary operator: '-selection-bg'
(8004,65): run-time error CSS1039: Token not allowed after unary operator: '-selection-color'
(8019,35): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(8024,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(8025,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(8026,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8027,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(8028,23): run-time error CSS1039: Token not allowed after unary operator: '-line-height'
(8036,46): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8041,41): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8047,41): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8058,41): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(8059,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8061,47): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8065,41): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8065,67): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(8071,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(8072,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8073,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(8083,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xxl'
(8084,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8085,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8094,39): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8097,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8098,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8104,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8105,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8110,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8111,17): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(8112,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(8113,33): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(8115,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(8120,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8121,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8128,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(8129,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8135,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(8135,35): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8137,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8139,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8143,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link-hover'
(8143,41): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(8157,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8166,29): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8167,29): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8167,73): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8186,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8192,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(8193,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8194,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8195,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8197,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(8211,15): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8212,17): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8223,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8224,25): run-time error CSS1039: Token not allowed after unary operator: '-btn-radius'
(8225,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(8230,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(8233,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn-active'
(8237,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(8238,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(8239,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8240,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8254,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(8255,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(8256,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8257,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8266,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(8267,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8268,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8269,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-card'
(8270,19): run-time error CSS1039: Token not allowed after unary operator: '-card-padding'
(8271,25): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(8272,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(8272,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(8274,26): run-time error CSS1039: Token not allowed after unary operator: '-card-padding-lg'
(8276,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(8277,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8279,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8281,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8298,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8301,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8313,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8320,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-card-hover'
(8321,43): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8321,68): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8324,32): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8325,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8366,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8370,45): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8373,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(8374,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8375,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8381,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8382,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8403,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8404,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8405,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8412,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(8429,18): run-time error CSS1039: Token not allowed after unary operator: '-input-height'
(8430,19): run-time error CSS1039: Token not allowed after unary operator: '-input-padding'
(8432,31): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(8433,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8434,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(8435,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8436,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(8439,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8440,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8441,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8446,27): run-time error CSS1039: Token not allowed after unary operator: '-input-height'
(8470,43): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8470,81): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8481,24): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(8481,50): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8482,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(8494,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(8502,24): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8512,24): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8513,51): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8527,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8538,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8585,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8614,19): run-time error CSS1039: Token not allowed after unary operator: '-btn-padding'
(8616,21): run-time error CSS1039: Token not allowed after unary operator: '-btn-font-size'
(8617,23): run-time error CSS1039: Token not allowed after unary operator: '-btn-font-weight'
(8622,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8624,25): run-time error CSS1039: Token not allowed after unary operator: '-btn-radius'
(8626,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8627,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8628,33): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8629,30): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8631,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(8638,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(8644,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(8645,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(8649,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn-active'
(8660,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(8661,24): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(8665,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn-hover'
(8666,24): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn-hover'
(8671,28): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(8672,24): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(8676,28): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn-hover'
(8677,24): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn-hover'
(8683,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8684,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8688,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(8689,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(8690,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(8695,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(8696,24): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(8706,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(8709,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(8714,19): run-time error CSS1039: Token not allowed after unary operator: '-btn-padding-sm'
(8720,40): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(8722,28): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(8727,35): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(8728,35): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8742,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8746,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(8747,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8748,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8752,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8753,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(8757,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(8757,55): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8784,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8785,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(8786,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8787,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(8788,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8793,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8794,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8795,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8798,34): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8801,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8803,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8807,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(8819,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(8820,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8825,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(8897,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(8899,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8905,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(8906,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8907,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8916,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(8917,18): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(8922,17): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8940,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(8946,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8947,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8953,40): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(8953,75): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(8954,40): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8954,75): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(8961,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(8962,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8967,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(8968,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8969,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(8972,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8974,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(8978,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(8979,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(8994,29): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(8995,29): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(8996,29): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(9056,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(9072,37): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(9077,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9078,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9079,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(9080,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-xl'
(9085,36): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-back'
(9097,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(9098,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9116,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9117,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9125,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(9129,34): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(9131,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9131,71): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9251,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9263,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-bg'
(9263,45): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(9264,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9267,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9270,52): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9276,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9277,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9316,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(9317,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9318,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9322,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9327,48): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9328,61): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9332,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9333,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9340,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9343,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(9344,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9345,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9351,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9354,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9360,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9360,88): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(9362,68): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9396,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(9397,35): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(9398,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(9400,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9402,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9405,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9417,28): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(9418,35): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(9419,17): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(9421,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9423,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9425,41): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(9438,17): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(9439,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9454,22): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(9481,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(9485,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(9486,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9487,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9491,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9492,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9495,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(9495,55): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(9508,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9511,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(9513,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9514,24): run-time error CSS1039: Token not allowed after unary operator: '-nav-z'
(9527,37): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(9545,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9550,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9551,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9552,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9560,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9562,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9565,85): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(9566,50): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9569,15): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(9571,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9576,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(9578,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9592,67): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(9630,54): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9649,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9658,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9659,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(9662,47): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(9665,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9666,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(9667,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9672,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9699,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9700,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(9703,47): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(9711,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9712,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9713,24): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9716,31): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9719,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9734,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9740,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(9741,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9741,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9743,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9743,70): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9744,66): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(9744,94): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(9750,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9751,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(9752,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(9805,27): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(9812,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(9812,70): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(9823,32): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(9824,39): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(9869,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(9871,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9871,76): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9874,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9882,24): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9883,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9891,41): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(9892,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(9893,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(9894,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(9895,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(9908,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9933,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(9934,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(9938,30): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(9939,31): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(9945,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9947,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9947,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9952,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(9954,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9954,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(9962,19): run-time error CSS1039: Token not allowed after unary operator: '-nav-z'
(9963,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(9967,48): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(9968,29): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(9969,18): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(9972,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(9991,30): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(9994,33): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10015,15): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(10019,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(10021,24): run-time error CSS1039: Token not allowed after unary operator: '-nav-z'
(10055,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10056,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10057,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10057,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10064,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10065,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10070,28): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10071,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10073,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10097,26): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10098,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10098,61): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10112,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(10148,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10149,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(10150,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10160,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10163,38): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(10174,64): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav-dropdown'
(10181,32): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10183,27): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10194,32): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav-dropdown'
(10198,29): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(10199,26): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(10204,43): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(10237,32): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10241,32): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10243,27): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10259,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10316,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10319,84): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10323,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(10331,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10362,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10365,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10367,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10369,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10376,22): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(10377,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10378,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(10391,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(10392,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10393,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10397,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10398,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10412,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(10413,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10414,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(10418,39): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10420,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10422,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10427,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(10428,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10429,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10430,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10431,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10442,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10443,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(10455,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(10486,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10502,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(10503,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(10504,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(10507,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(10508,38): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-back'
(10531,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(10539,34): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10541,40): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(10545,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10547,41): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(10548,41): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(10551,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10554,45): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(10555,45): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(10558,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10559,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10563,42): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10565,64): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10565,100): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10570,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(10571,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10572,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10574,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10579,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10586,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10592,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10596,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(10598,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(10600,44): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(10601,44): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(10607,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10613,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10614,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10622,41): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10635,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(10649,33): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(10664,14): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(10665,33): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(10668,49): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(10679,15): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(10689,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10691,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10691,76): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10692,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10696,49): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(10697,50): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(10699,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(10700,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(10702,57): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(10705,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10706,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10709,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(10710,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10720,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(10721,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10729,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(10730,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10731,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(10734,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(10735,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(10786,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(10787,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10788,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(10789,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(10790,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(10791,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10808,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(10810,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(10832,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10834,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10837,47): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10838,47): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(10839,47): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(10861,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10896,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10904,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10906,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10906,76): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(10907,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(10912,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(10913,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(10918,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(10922,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(10948,22): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10957,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(10987,43): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(10987,77): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10989,58): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10989,86): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(10991,45): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(10992,58): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10994,92): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(10997,109): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(10998,45): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11000,43): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11000,71): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11006,57): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11007,64): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11007,105): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11008,69): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(11015,41): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(11015,69): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(11017,41): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(11017,72): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(11018,41): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(11018,72): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(11020,41): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(11020,71): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(11030,29): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11031,37): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11032,37): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11033,37): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(11033,71): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(11034,37): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(11034,71): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(11053,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11054,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11055,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11063,57): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11064,38): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11066,38): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11073,44): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(11075,44): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(11077,44): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(11107,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11111,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11112,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11118,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11123,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(11125,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(11127,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11149,40): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(11149,72): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(11150,40): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(11150,72): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(11151,40): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(11151,72): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(11154,40): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(11154,72): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(11165,42): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11174,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11186,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11187,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11196,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(11197,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(11198,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11199,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11219,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11230,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11238,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(11269,25): run-time error CSS1039: Token not allowed after unary operator: '-btn-radius'
(11270,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(11290,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11291,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(11306,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11307,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11307,76): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11314,54): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11315,54): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11316,55): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(11332,34): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(11333,32): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(11336,35): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11338,51): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11342,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11343,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11347,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11351,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11352,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11353,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(11356,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11357,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11360,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11361,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(11366,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11380,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(11381,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11382,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11383,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11386,39): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11387,51): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(11398,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(11399,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11407,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11408,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11427,30): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11428,28): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11429,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11430,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(11431,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11432,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(11436,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11437,38): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11438,38): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11439,38): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11440,38): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11444,24): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(11445,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11447,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(11451,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(11452,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(11454,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11455,56): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(11458,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn-hover'
(11459,28): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn-hover'
(11463,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(11469,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11484,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11486,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11487,43): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11487,69): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11491,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11496,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(11497,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(11500,41): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11500,67): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-input'
(11506,22): run-time error CSS1039: Token not allowed after unary operator: '-input-height'
(11517,30): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11524,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11527,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11527,65): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11530,38): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11530,74): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(11531,50): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(11583,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11584,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11598,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11603,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11604,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(11613,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11617,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11619,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11621,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(11625,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11629,49): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11656,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(11688,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11689,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11692,62): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11693,70): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus'
(11701,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(11703,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11712,43): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(11728,34): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11729,35): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11731,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(11731,68): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11737,69): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11739,71): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11747,36): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11750,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11756,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11770,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11776,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11780,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(11790,33): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11794,27): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11794,51): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11808,38): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11815,31): run-time error CSS1039: Token not allowed after unary operator: '-card-padding-lg'
(11815,71): run-time error CSS1039: Token not allowed after unary operator: '-card-padding-lg'
(11824,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(11825,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(11826,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(11829,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(11830,39): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-back'
(11863,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(11865,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(11866,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11884,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(11905,20): run-time error CSS1039: Token not allowed after unary operator: '-nav-height'
(11921,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(11922,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(11923,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(11925,35): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(11961,30): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11961,71): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(11990,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(11995,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(12000,28): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12001,30): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12013,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(12014,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-xl'
(12020,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(12020,40): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-ring'
(12034,45): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12034,66): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(12047,80): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12047,114): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12047,150): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12048,76): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12049,36): run-time error CSS1039: Token not allowed after unary operator: '-color-delete-btn'
(12053,32): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12053,88): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12054,59): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12055,41): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12056,33): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12065,107): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12068,59): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12068,102): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12085,31): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(12086,31): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(12087,35): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12089,68): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12090,40): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12091,31): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(12104,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12106,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12106,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12111,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12113,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12113,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12126,41): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12127,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12128,47): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12131,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12132,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12135,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12140,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12153,51): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12161,41): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12166,29): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12171,39): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12192,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12202,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12202,82): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12203,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12203,86): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12204,50): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12204,86): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12208,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12210,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12211,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12214,46): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12215,47): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(12217,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12218,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12228,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12229,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12235,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12236,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12240,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(12241,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12246,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12255,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12256,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12262,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12263,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12281,22): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(12282,17): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(12283,28): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(12286,22): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-bg'
(12287,17): run-time error CSS1039: Token not allowed after unary operator: '-color-danger'
(12288,28): run-time error CSS1039: Token not allowed after unary operator: '-color-danger-border'
(12291,22): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(12292,17): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(12293,28): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(12297,22): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(12298,17): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(12299,28): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(12306,29): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12319,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(12320,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12321,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12324,42): run-time error CSS1039: Token not allowed after unary operator: '-color-link-hover'
(12336,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(12337,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(12340,56): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(12351,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12352,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12354,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12355,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(12364,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12366,39): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(12380,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12394,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12397,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12398,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12412,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12413,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12419,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12421,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12423,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12424,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12425,27): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12425,51): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12428,38): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12458,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12459,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12460,17): run-time error CSS1039: Token not allowed after unary operator: '-color-link'
(12460,35): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12466,28): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12469,40): run-time error CSS1039: Token not allowed after unary operator: '-color-link-hover'
(12469,64): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(12482,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12483,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12490,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12492,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12494,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12495,33): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12496,27): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12496,51): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12497,38): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12518,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12519,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12521,41): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12543,22): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12545,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-mid'
(12547,45): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12548,45): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12548,108): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12567,44): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12599,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12601,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12602,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12609,67): run-time error CSS1039: Token not allowed after unary operator: '-color-accent-dark'
(12625,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12626,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12627,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(12628,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(12633,36): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(12633,70): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(12641,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12652,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12653,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12654,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12679,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12680,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12681,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12682,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(12683,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12684,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(12686,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12686,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12688,37): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12689,44): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(12690,37): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(12690,69): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(12690,105): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(12708,32): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(12726,15): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(12727,25): run-time error CSS1039: Token not allowed after unary operator: '-section-gap'
(12743,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12745,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12745,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12750,37): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12752,38): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12752,60): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12765,17): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12771,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12781,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(12782,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(12783,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12785,62): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12790,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12791,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12813,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12814,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12815,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12817,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12818,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12821,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12821,76): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12821,106): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12821,140): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12824,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12825,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12826,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(12832,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(12857,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12858,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12859,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(12860,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(12864,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(12865,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(12867,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12872,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12873,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12878,59): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12878,84): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12879,50): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(12895,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12897,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12898,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(12899,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(12900,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(12903,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12903,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12903,106): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(12904,23): run-time error CSS1039: Token not allowed after unary operator: '-font-family'
(12907,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12908,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(12909,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12912,29): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(12916,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12917,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12922,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(12941,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12942,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12946,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(12947,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(12952,28): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12953,30): run-time error CSS1039: Token not allowed after unary operator: '-ease-out-quint'
(12962,35): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(12962,77): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(12963,50): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(12977,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(12978,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(12979,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(12980,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(12989,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(12990,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(13001,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(13002,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(13004,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(13004,69): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(13008,22): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(13009,17): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-dark'
(13030,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(13031,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(13036,43): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(13036,75): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(13036,115): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(13037,43): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(13037,75): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(13037,115): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(13038,43): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(13038,75): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(13038,115): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(13039,43): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(13039,75): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13039,118): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13053,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13054,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(13058,40): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(13058,74): run-time error CSS1039: Token not allowed after unary operator: '-color-info-bg'
(13058,113): run-time error CSS1039: Token not allowed after unary operator: '-color-info-border'
(13059,40): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(13059,74): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-bg'
(13059,113): run-time error CSS1039: Token not allowed after unary operator: '-color-warning-border'
(13059,171): run-time error CSS1039: Token not allowed after unary operator: '-ease-in-out'
(13060,40): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(13060,74): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(13060,113): run-time error CSS1039: Token not allowed after unary operator: '-color-success-border'
(13061,40): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13061,77): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(13061,108): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13064,60): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(13107,25): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(13318,25): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(13338,25): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13366,32): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13406,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13408,39): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(13411,43): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(13412,52): run-time error CSS1039: Token not allowed after unary operator: '-color-border-focus'
(13414,28): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(13415,33): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(13425,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13426,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13431,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(13447,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg'
(13448,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13449,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(13450,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13451,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13456,57): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(13459,43): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(13459,75): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(13461,43): run-time error CSS1039: Token not allowed after unary operator: '-color-success-bg'
(13461,75): run-time error CSS1039: Token not allowed after unary operator: '-color-success'
(13464,40): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13464,76): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(13468,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(13469,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13470,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13524,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13528,51): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(13544,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13574,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(13579,22): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13586,22): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(13596,35): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13616,24): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(13620,24): run-time error CSS1039: Token not allowed after unary operator: '-color-save-btn'
(13631,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13632,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13652,33): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(13731,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13732,25): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(13751,32): run-time error CSS1039: Token not allowed after unary operator: '-transition-fast'
(13758,29): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(13762,32): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-card'
(13762,64): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(13786,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13787,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13788,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13789,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13790,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13791,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13792,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13793,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13797,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13800,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13804,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13805,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13806,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13807,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13808,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13809,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13810,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13811,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13816,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13817,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13818,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13819,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13822,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13823,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13824,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13825,5): run-time error CSS1062: Expected semicolon or closing curly-brace, found '-'
(13833,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-btn'
(13834,22): run-time error CSS1039: Token not allowed after unary operator: '-shadow-focus-warning'
(13837,32): run-time error CSS1039: Token not allowed after unary operator: '-color-primary-light'
(13838,32): run-time error CSS1039: Token not allowed after unary operator: '-color-primary'
(13871,69): run-time error CSS1031: Expected selector, found '/'
(13871,69): run-time error CSS1025: Expected comma or open brace, found '/'
(13920,32): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-normal'
(13921,32): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(13922,32): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(13924,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xs'
(13925,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(13926,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-base'
(13927,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-lg'
(13928,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xl'
(13929,28): run-time error CSS1039: Token not allowed after unary operator: '-font-size-xxl'
(13938,29): run-time error CSS1039: Token not allowed after unary operator: '-color-info'
(13939,29): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(13952,36): run-time error CSS1039: Token not allowed after unary operator: '-border-radius'
(13953,36): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-sm'
(13954,36): run-time error CSS1039: Token not allowed after unary operator: '-border-radius-lg'
(13957,40): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13958,44): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13959,47): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(13961,34): run-time error CSS1039: Token not allowed after unary operator: '-shadow-sm'
(13962,34): run-time error CSS1039: Token not allowed after unary operator: '-shadow-md'
(13963,34): run-time error CSS1039: Token not allowed after unary operator: '-shadow-lg'
(13999,32): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-nav'
(14067,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(14068,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(14072,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(14073,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(14081,22): run-time error CSS1039: Token not allowed after unary operator: '-color-text-light'
(14087,50): run-time error CSS1039: Token not allowed after unary operator: '-color-warning'
(14098,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(14110,22): run-time error CSS1039: Token not allowed after unary operator: '-color-accent'
(14113,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(14140,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(14141,23): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-medium'
(14146,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text'
(14168,21): run-time error CSS1039: Token not allowed after unary operator: '-font-size-sm'
(14182,42): run-time error CSS1039: Token not allowed after unary operator: '-font-weight-bold'
(14248,28): run-time error CSS1039: Token not allowed after unary operator: '-color-border'
(14261,45): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-hover'
(14269,62): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(14285,17): run-time error CSS1039: Token not allowed after unary operator: '-color-text-muted'
(14300,22): run-time error CSS1039: Token not allowed after unary operator: '-color-bg-hover'
 */
@charset "UTF-8";/*!
 * Bootstrap  v5.2.3 (https://getbootstrap.com/)
 * Copyright 2011-2022 The Bootstrap Authors
 * Copyright 2011-2022 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#0d6efd;--bs-link-hover-color:#0a58ca;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-link-color);text-decoration:underline}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.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:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid var(--bs-border-color);border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color:var(--bs-body-color);--bs-table-bg:transparent;--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-body-color);--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:var(--bs-body-color);--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:var(--bs-body-color);--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#bacbe6;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#cbccce;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#bcd0c7;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#badce3;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#e6dbb9;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#dfc2c4;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#dfe0e1;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#373b3e;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.5em + .75rem + 2px);padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + 2px)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#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 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.375rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.375rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.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(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;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 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.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-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.375rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;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 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:#212529;--bs-btn-bg:transparent;--bs-btn-border-width:1px;--bs-btn-border-color:transparent;--bs-btn-border-radius:0.375rem;--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:none;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:0.5rem}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:0.25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:#212529;--bs-dropdown-bg:#fff;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:0.375rem;--bs-dropdown-border-width:1px;--bs-dropdown-inner-border-radius:calc(0.375rem - 1px);--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color:#212529;--bs-dropdown-link-hover-color:#1e2125;--bs-dropdown-link-hover-bg:#e9ecef;--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.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-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:#6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:1px;--bs-nav-tabs-border-color:#dee2e6;--bs-nav-tabs-border-radius:0.375rem;--bs-nav-tabs-link-hover-border-color:#e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color:#495057;--bs-nav-tabs-link-active-bg:#fff;--bs-nav-tabs-link-active-border-color:#dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:0 0;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:0.375rem;--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(0, 0, 0, 0.55);--bs-navbar-hover-color:rgba(0, 0, 0, 0.7);--bs-navbar-disabled-color:rgba(0, 0, 0, 0.3);--bs-navbar-active-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-hover-color:rgba(0, 0, 0, 0.9);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--bs-navbar-toggler-border-radius:0.375rem;--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap: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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap: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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap: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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap: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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:1px;--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:0.375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(0.375rem - 1px);--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(0, 0, 0, 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:#fff;--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.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:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@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-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{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-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:#212529;--bs-accordion-bg:#fff;--bs-accordion-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,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:1px;--bs-accordion-border-radius:0.375rem;--bs-accordion-inner-border-radius:calc(0.375rem - 1px);--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:#212529;--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:#0c63e4;--bs-accordion-active-bg:#e7f1ff}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:#6c757d;--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:#6c757d;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:#fff;--bs-pagination-border-width:1px;--bs-pagination-border-color:#dee2e6;--bs-pagination-border-radius:0.375rem;--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:#e9ecef;--bs-pagination-hover-border-color:#dee2e6;--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:#e9ecef;--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:#6c757d;--bs-pagination-disabled-bg:#fff;--bs-pagination-disabled-border-color:#dee2e6;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:0.5rem}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:0.25rem}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:0.375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:1px solid var(--bs-alert-border-color);--bs-alert-border-radius:0.375rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:#084298;--bs-alert-bg:#cfe2ff;--bs-alert-border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{--bs-alert-color:#41464b;--bs-alert-bg:#e2e3e5;--bs-alert-border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{--bs-alert-color:#0f5132;--bs-alert-bg:#d1e7dd;--bs-alert-border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{--bs-alert-color:#055160;--bs-alert-bg:#cff4fc;--bs-alert-border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{--bs-alert-color:#664d03;--bs-alert-bg:#fff3cd;--bs-alert-border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{--bs-alert-color:#842029;--bs-alert-bg:#f8d7da;--bs-alert-border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{--bs-alert-color:#636464;--bs-alert-bg:#fefefe;--bs-alert-border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{--bs-alert-color:#141619;--bs-alert-bg:#d3d3d4;--bs-alert-border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:#e9ecef;--bs-progress-border-radius:0.375rem;--bs-progress-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:#212529;--bs-list-group-bg:#fff;--bs-list-group-border-color:rgba(0, 0, 0, 0.125);--bs-list-group-border-width:1px;--bs-list-group-border-radius:0.375rem;--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:#495057;--bs-list-group-action-hover-color:#495057;--bs-list-group-action-hover-bg:#f8f9fa;--bs-list-group-action-active-color:#212529;--bs-list-group-action-active-bg:#e9ecef;--bs-list-group-disabled-color:#6c757d;--bs-list-group-disabled-bg:#fff;--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.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(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(255, 255, 255, 0.85);--bs-toast-border-width:1px;--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:0.375rem;--bs-toast-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color:#6c757d;--bs-toast-header-bg:rgba(255, 255, 255, 0.85);--bs-toast-header-border-color:rgba(0, 0, 0, 0.05);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:#fff;--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:1px;--bs-modal-border-radius:0.5rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(0.5rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .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{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:#fff;--bs-tooltip-bg:#000;--bs-tooltip-border-radius:0.375rem;--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;padding:var(--bs-tooltip-arrow-height);margin:var(--bs-tooltip-margin);font-family:var(--bs-font-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;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:#fff;--bs-popover-border-width:1px;--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:0.5rem;--bs-popover-inner-border-radius:calc(0.5rem - 1px);--bs-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: ;--bs-popover-header-bg:#f0f0f0;--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:#212529;--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-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;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.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 .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color: ;--bs-offcanvas-bg:#fff;--bs-offcanvas-border-width:1px;--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(13,110,253,var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(108,117,125,var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(25,135,84,var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(13,202,240,var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(255,193,7,var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(220,53,69,var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(248,249,250,var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(33,37,41,var(--bs-bg-opacity,1))!important}.link-primary{color:#0d6efd!important}.link-primary:focus,.link-primary:hover{color:#0a58ca!important}.link-secondary{color:#6c757d!important}.link-secondary:focus,.link-secondary:hover{color:#565e64!important}.link-success{color:#198754!important}.link-success:focus,.link-success:hover{color:#146c43!important}.link-info{color:#0dcaf0!important}.link-info:focus,.link-info:hover{color:#3dd5f3!important}.link-warning{color:#ffc107!important}.link-warning:focus,.link-warning:hover{color:#ffcd39!important}.link-danger{color:#dc3545!important}.link-danger:focus,.link-danger:hover{color:#b02a37!important}.link-light{color:#f8f9fa!important}.link-light:focus,.link-light:hover{color:#f9fafb!important}.link-dark{color:#212529!important}.link-dark:focus,.link-dark:hover{color:#1a1e21!important}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.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}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.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}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!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}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!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}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-1{--bs-border-width:1px}.border-2{--bs-border-width:2px}.border-3{--bs-border-width:3px}.border-4{--bs-border-width:4px}.border-5{--bs-border-width:5px}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!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}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.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-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}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-evenly{justify-content:space-evenly!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}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.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}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!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}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.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-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}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-sm-evenly{justify-content:space-evenly!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}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!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}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.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-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}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-md-evenly{justify-content:space-evenly!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}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!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}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.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-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}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-lg-evenly{justify-content:space-evenly!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}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!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}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.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-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}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!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}.justify-content-xl-evenly{justify-content:space-evenly!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}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!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}.d-print-none{display:none!important}}
/*# sourceMappingURL=bootstrap.min.css.map */
/* ============================================================
   qMeet - styles.css
   Site-specific rules. Loaded BEFORE Shared/styles_shared.css
   (via Bundle.config) so shared rules win on equal specificity.
   To override a shared rule, raise this file's selector
   specificity (see the .pill.pill pattern near the bottom).

   Design tokens, base typography, buttons, form inputs, cards,
   alerts, pills, modals, spinners, back-btn, and utility classes
   all live in styles_shared.css. This file holds:
     - Nav-specific CSS variables (cyan highlight palette)
     - Skip-to-content link
     - Toasts
     - Tips panel overrides
     - Navigation chrome
     - Page layout / page-title-flush
     - Tables
     - Banners (chatbar, view-only)
     - Search input with clear (×)
     - Footer
     - qMeet-specific components (section-bar, result-card, etc.)
     - Legacy compatibility (kept so old pages keep rendering)
   ============================================================ */

/* ── 1./2. CSS Variables + Dark Mode ──────────────────────────
   All design tokens now live in Shared/styles_shared.css (single source of
   truth across qMeet / PacklistPRO / qFIT). The empty :root + dark-mode
   section markers that used to sit here were dropped 2026-06-06. */

/* Skip-to-content link — visually hidden until focused, then slides into view
   at the top-left. Keyboard users (Tab on page load) get to bypass the nav.
   WCAG 2.4.1 "Bypass Blocks". Targets <main id="main-content"> in both masters. */

/* ── 4. Typography (site-specific extras) ─────────────────── */

.tiny {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

/* Dynamic body labels rendered from code-behind helpers (AddLabel etc.) —
   regular-weight by default, with a .label-dyn-bold modifier that swaps to
   bold. Replaces inline Font.Size/ForeColor/Font.Bold writes the legacy
   Configure*/Add* helpers used to apply. */
.label-dyn        { display: inline; font-size: var(--font-size-sm); color: var(--color-text); font-weight: var(--font-weight-normal); }
.label-dyn-bold   { font-weight: var(--font-weight-bold); }

/* ChatUC recipient status pill — gains a yellow highlight when the status
   text is a quoted away-message. Replaces the legacy lblRecipientStatus.BackColor
   write that produced inline style="background-color:Yellow". */
.chat-recipient-status-active { background: #ffff00; color: #000; padding: 0 0.25rem; border-radius: var(--border-radius-sm); }

/* ChatUC user-tunable font sizes — applied via Style.Add of a CSS custom
   property rather than the legacy Font.Size inline write. */
.chat-msg-textbox  { font-size: var(--chat-msg-font-size, 1rem); }

/* ── 7. Buttons ──────────────────────────────────────────── */
/* Dominant convention (space-separated, combined on same element):
   class="button"             → primary (accent blue)
   class="button save"        → lime green (Save)
   class="button danger"      → red (Delete / destructive)
   class="button transparent" → outlined / ghost
   class="button small"       → smaller variant
*/

/* Clipboard-copied feedback (used by site.js initClipboardButtons) */
.button.copied,
.link.copied   { background-color: var(--color-success); color: #fff; }
/* AutoPostBack inputs (spec line 25) — brief pulse to confirm the change is
   committing. Applied by site.js initAutoPostbackFeedback to controls whose
   ASP.NET-emitted onchange contains __doPostBack. */
input.saving,
select.saving,
.checkbox.saving {
    box-shadow: 0 0 0 3px rgba(0, 176, 240, 0.35);
    transition: box-shadow var(--transition-fast);
}

/* ── 8. Form inputs ──────────────────────────────────────── */


/* Compact FileUpload (replaces a stray style="padding:1px" in Help_Chat.ascx) */
.file-upload-compact { padding: 1px; }

/* Character-counter wrapper. site.js initCharCounters toggles
   .over-threshold once the input is within 5% of MaxLength so the
   user notices the cap before they hit it. */
.char-counter            { color: var(--color-text-muted); font-size: var(--font-size-sm); }
.char-counter.over-threshold { color: var(--color-danger); font-weight: var(--font-weight-medium); }

/* Sizing variants for multi-line textareas — replace inline Height="…px" on
   .textbox controls that the markup used to apply for short/medium/long bodies. */

/* Single-line input sizing variants — replace inline Width="…px" attributes. */
.textbox-w-datetime  { width: 150px; }
.textbox-w-search    { width: 140px; }
.textbox-w-date      { width: 80px; }
.button-w-page-arrow { width: 100px; }

/* ── 8b. Calendar (asp:Calendar — replaces inline BorderStyle/Font-Names/
       ForeColor/BackColor on the Calendar control in ManageEvent.aspx) ─── */
.qmeet-calendar {
    border-collapse: collapse;
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    color: var(--color-text);
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    margin-top: 0.5rem;
}
.qmeet-calendar td,
.qmeet-calendar th {
    padding: 6px 10px;
    text-align: center;
    border: 1px solid var(--color-border);
}
.qmeet-calendar a {
    color: var(--color-text);
    text-decoration: none;
    display: inline-block;
    min-width: 1.5rem;
}
.qmeet-calendar a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}
.qmeet-calendar-title,
.qmeet-calendar .qmeet-calendar-title {
    background-color: var(--color-accent);
    color: #fff;
    font-weight: bold;
}
.qmeet-calendar-title a,
.qmeet-calendar .qmeet-calendar-title a { color: #fff; }
.qmeet-calendar-selected,
.qmeet-calendar .qmeet-calendar-selected {
    background-color: var(--color-accent);
    color: #fff;
    font-weight: bold;
}
.qmeet-calendar-selected a,
.qmeet-calendar .qmeet-calendar-selected a { color: #fff; }
.qmeet-calendar-today,
.qmeet-calendar .qmeet-calendar-today {
    background-color: var(--color-primary-light);
    color: var(--color-text);
    font-weight: bold;
}

/* ── 9. Checkboxes / Radios ─────────────────────────────── */


/* ── 13. Modal site-specific overrides ──────────────────── */

/* Post-login install + push prompts modal styles live in Shared/styles_shared.css
   (single source of truth across qMeet, PacklistPRO, qFIT). */


/* ── 15. Navigation — all nav styling defers to styles_shared.css ─ */

/* ── 16. Page layout ─────────────────────────────────────── */

/* Page-header title row: Back button + page title on one line. Mirrors PacklistPRO
   so identical page skeletons render identically across the two sites. */

/* Page title with no bottom margin — use when the title sits inside a
   page-header-title-row so the row controls the spacing. */

/* TipsPanel.ascx renders <div class="tips-trigger-wrap"> (Ⓘ trigger) BEFORE
   the .page-header on most pages — the shared float:right layout left Ⓘ
   floating on its own line above the title. Anchor the trigger absolutely
   to the upper-right of the page-wrapper instead, so it appears in the
   upper-right corner of the title row on every page.
   Offsets are deliberately smaller than the page-wrapper's padding so the
   icon nests into the corner ABOVE the page-title baseline rather than
   wrapping onto its own line below the title. */

/* Reserve right space in any .page-header that follows the absolutely-positioned
   ⓘ trigger so a long title can't visually overlap the icon. */

/* ── Chat page header alignment ───────────────────────────────
   Chat.aspx wraps its <h1> + <qm:Tips> in .chat-page-head. Two small fixes
   so the ← back arrow, the "Chat" title, and the Ⓘ tips trigger all share one
   vertical centreline (they were each ~4–5px off against the bare orphan title):

   1) position:relative makes THIS the containing block for the absolutely-
      positioned .tips-trigger-wrap, then top/bottom:0 + flex-centre drop the
      44px tap-target onto the title row's midline instead of pinning its top
      to the title's top (which left the glyph ~5px low). When the tip card is
      open the head grows, but the trigger button is display:none then anyway;
      pointer-events:none keeps the stretched (empty) wrap from ever covering
      the open card's links/close button.
   2) zero the title's 0.5rem bottom margin INSIDE the flex title-row so its
      margin box stops lifting the text ~4px above the margin-less ← arrow. */
.chat-page-head { position: relative; }
.chat-page-head .tips-trigger-wrap {
    top: 0;
    bottom: 0;
    right: 0;
    display: flex;
    align-items: center;
    pointer-events: none;
}
.chat-page-head .tips-trigger-wrap .tip-icon-button { pointer-events: auto; }
.chat-page-head .page-header-title-row > .page-title { margin-bottom: 0; }

/* ── 17. Tables ──────────────────────────────────────────── */


/* ── Tip card display toggle (duplicated from shared CSS because the
   bundler's minifier drops it from styles_shared.css) ────── */

/* ── 18. Banners ─────────────────────────────────────────── */

/* View-only banner — shown when site.js adds .view-only to <body> after
   the user picks "Stay Here (view-only)" on the session-expired modal. */
.banner-viewonly {
    display: none;
    background-color: var(--color-warning-bg);
    border-bottom: 1px solid var(--color-warning-border);
    color: var(--color-warning);
    padding: 0.55rem 1rem;
    font-size: var(--font-size-sm);
    text-align: center;
    font-weight: var(--font-weight-medium);
}
body.view-only .banner-viewonly { display: block; }

/* Anonymous / promo banner — server toggles Visible. */
.banner-anon {
    background-color: var(--color-info-bg);
    border-bottom: 1px solid var(--color-info-border);
    color: var(--color-info);
    padding: 0.55rem 1rem;
    font-size: var(--font-size-sm);
    text-align: center;
}
.banner-anon a { color: inherit; font-weight: var(--font-weight-medium); text-decoration: underline; }

/* Chat-bar banner (active contacts / unread messages summary in Site.Master). */
.banner-chatbar {
    background-color: #808080;
    /* Container text (separators ·, "ACTIVE:" label, spaces) renders black.
       Anchor (username) overrides below take it back to white. */
    color: #000;
    padding: 0.4rem 1rem;
    font-size: var(--font-size-sm);
    display: block;
}
.banner-chatbar:empty { display: none; }

/* ── Second notification bar: upcoming events you're interested in / going to.
   Server-rendered by Site.Master.ConfigureEventReminderBar, directly below the
   grey chat bar. A blue accent (distinct from the chat bar's grey) so the two
   bars read as separate. The whole body is one link; the × dismisses it for the
   day (localStorage, handled in the Site.Master inline script). ── */
.banner-events {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background-color: #1f6feb;
    color: #fff;
    padding: 0.4rem 1rem;
    font-size: var(--font-size-sm);
}
.banner-events-body {
    flex: 1 1 auto;
    min-width: 0;
    color: #fff;
    text-decoration: none;
}
.banner-events-body:hover { text-decoration: underline; }
.banner-events-body strong { font-weight: 700; }
.banner-events-icon { margin-right: 0.35rem; }
.banner-events-x {
    flex: 0 0 auto;
    background: transparent;
    border: none;
    color: #fff;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
    opacity: 0.85;
}
.banner-events-x:hover { opacity: 1; }

/* Four name colors by section / state:
   - lblMessages (chatbar-messages): users with unread messages waiting → black (default)
   - lblActiveContacts (chatbar-active): currently-active contacts → white
   - chat-active-user override: an unread-message sender who is also currently active
     (i.e. appears in the active-contacts result set) → white. So you can tell at a
     glance which unread senders are online right now vs. left a message earlier and
     are away.
   - chat-urgent override: messages flagged urgent → magenta. We pin its specificity
     to (0,3,1) — matching chat-active-user — so the source-order tiebreak makes urgent
     win when both flags apply to the same sender. Past bug (memory: feedback_css_specificity_descendant)
     was a single-class chat-urgent silently losing to a more-specific descendant rule.
   Non-anchor text in the bar (· separators, "ACTIVE:" label, spaces) inherits
   the container's color: #000 set on .banner-chatbar. */
.banner-chatbar .chatbar-messages a                   { color: #000; }
.banner-chatbar .chatbar-active   a                   { color: #fff; }
.banner-chatbar .chatbar-messages a.chat-active-user  { color: #fff; }
.banner-chatbar .chatbar-messages a.chat-urgent,
.banner-chatbar .chatbar-active   a.chat-urgent       { color: #ff00ff; }
/* "On LiveChat now" badge: a contact actively viewing the LiveChat page (set via the
   lc:active:<id> app-pool presence key LiveChatApi refreshes every 5s). Distinct from
   the "/Nmin" last-active suffix — green = here in real time right now. The !important
   color wins over the per-section anchor color rules above (the badge is a span inside
   the contact's <a>), so the text stays white on green even for urgent/active senders. */
.banner-chatbar .chatbar-live {
    display: inline-block;
    margin-left: 5px;
    padding: 0 5px;
    border-radius: 999px;
    background-color: #18a957;
    color: #fff !important;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.5;
    vertical-align: middle;
}
/* Separator between users — drawn as a CSS circle (background + border-radius)
   instead of relying on the Unicode bullet glyph, whose vertical position is
   font-dependent and rendered slightly above the text baseline on Windows
   Chrome. The inline-block dot inherits vertical-align:middle to lock onto the
   x-height of the surrounding text. font-size:0 hides the literal "•" that the
   server still emits inside the span, so only the painted circle is visible. */
.banner-chatbar .chatbar-sep {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #000;
    opacity: 0.55;
    margin: 0 6px;
    vertical-align: middle;
    font-size: 0;
    line-height: 0;
}

/* ── Active-contact CHIPS (ChatBarStatus.ashx, option #1) ─────────────────────
   Each active/unread contact renders as a pill: a status dot + name + optional
   place pin + "since" time + a red unread-count bubble. Replaces the old
   bullet-separated text links. The chip is an <a> inside lblMessages
   (.chatbar-messages), so we must beat the `.chatbar-messages a { color:#000 }`
   rule below to keep names white. */
.banner-chatbar .chatbar-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 9px;
    margin: 2px 5px 2px 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-weight: 500;
    text-decoration: none;
    vertical-align: middle;
    line-height: 1.4;
}
.banner-chatbar .chatbar-chip:hover { background: rgba(255, 255, 255, 0.26); text-decoration: none; }
/* Win the name color back from the per-section anchor rules (specificity 0,3,1). */
.banner-chatbar .chatbar-messages a.chatbar-chip,
.banner-chatbar .chatbar-active   a.chatbar-chip { color: #fff; }
.banner-chatbar .chatbar-chip .cb-name { color: #fff; }
.banner-chatbar .chatbar-chip.chat-urgent .cb-name { color: #ff00ff; }
.banner-chatbar .chatbar-chip .cb-since { font-size: 0.72rem; opacity: 0.8; }
/* Status dot: green = on LiveChat now, magenta = urgent, white = active recently. */
.banner-chatbar .cb-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: none;
}
.banner-chatbar .cb-dot.cb-live   { background: #18a957; }
.banner-chatbar .cb-dot.cb-urgent { background: #ff00ff; box-shadow: 0 0 0 2px rgba(255, 0, 255, 0.25); }
.banner-chatbar .cb-dot.cb-active { background: #fff; }
/* Red unread-count bubble (only emitted when count > 0). */
.banner-chatbar .cb-unread {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    border-radius: 999px;
    background: #e23b3b;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
}
/* Place pin — clicking opens the shared "at places" popover (Site.Master JS
   intercepts .cb-pin clicks and calls QMeetPlaces.open()). */
.banner-chatbar .cb-pin {
    font-size: 0.82em;
    line-height: 1;
    cursor: pointer;
}
.banner-chatbar .cb-pin:hover { filter: brightness(1.25); }
.banner-chatbar .cb-pin:focus-visible { outline: 2px solid #fff; outline-offset: 1px; border-radius: 3px; }

/* ChatUC "my status" label — color signals state.
   Default = white inside the dark chat bar; -urgent = yellow (under 30 min
   left on the timed status); -empty = yellow (no status set, prompting the
   user to pick one). Replaces inline Label.ForeColor = Color.X assignments. */
.chat-my-status         { color: #fff; }
.chat-my-status-urgent  { color: #ffff00; }
.chat-my-status-empty   { color: #ffff00; }

/* ── 19. Form layout helpers ─────────────────────────────── */


/* Char counter for textareas with maxlength */

/* ── 20. Search input with clear (×) ─────────────────────── */


/* Search container (input + button side-by-side) */
.search-row {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.search-row .input-clearable { flex: 1 1 200px; }

/* ── 21. Footer ──────────────────────────────────────────── */
/* Footer markup mirrors PacklistPRO via Shared/styles_shared.css
   (.site-footer-links/-copy/-sep, .linklike-btn); the logged-in
   .site-footer-user label was retired 2026-06-07. */

/* ── 22. Site-specific utility extras (text-warning, d-inline-block) ── */
.text-warning   { color: var(--color-warning); }
.d-inline-block { display: inline-block; }


/* FilesToSend image preview — replaces a per-row inline style built in code-behind.
   Pages that render queued chat-file images use class="files-to-send-preview". */
.files-to-send-preview {
    width: 98%;
    border: 1px solid #000;
    box-shadow: 0 15px 15px #808080;
    margin-bottom: 0.5rem;
}

/* ── FilesToSend2 — queued chat-attachment cards (PacklistPRO-look redesign) ──
   Compact, scannable cards replace the old full-width stacked image previews.
   Built entirely from shared design tokens so they stay theme-aware in dark mode. */
.fts-upload-note { margin: 0 0 0.9rem; }

.fts-queue-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0.25rem 0 0.85rem;
}
.fts-summary-text {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}

.fts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.6rem;
}
@media (min-width: 700px) {
    .fts-grid { grid-template-columns: 1fr 1fr; }
}

.fts-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-accent);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    padding: 0.55rem 0.7rem;
}
.fts-thumb {
    flex: 0 0 auto;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: var(--border-radius-sm);
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    text-decoration: none;
}
.fts-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fts-icon { font-size: 1.6rem; line-height: 1; }

.fts-info { flex: 1 1 auto; min-width: 0; }
.fts-name {
    display: block;
    font-weight: var(--font-weight-medium);
    overflow-wrap: anywhere;
    word-break: break-word;
}
.fts-meta { display: block; margin-top: 0.1rem; }

.fts-remove { flex: 0 0 auto; }

/* Admin-only contact info panel on PublicProfile.aspx. Sits below the page title
   so admin data stays visually distinct from the user-visible profile. */
.admin-only-info {
    font-size: var(--font-size-sm);
    margin-bottom: 0.5rem;
}
.admin-only-info .label {
    font-weight: var(--font-weight-bold);
    margin-right: 0.25rem;
}

/* ============================================================
   LEGACY COMPATIBILITY
   These classes are used by older pages that haven't been
   migrated to the modern system yet. Keep them so pages don't
   visually break, but prefer the modern classes above for new
   work. Remove a legacy entry once no page references it.
   ============================================================ */

/* Legacy typography variants — old pages use class="text" / "boldtext" / "smallheading" / "mediumheading" */
.boldtext     { font-family: var(--font-family); font-size: var(--font-size-base); font-weight: var(--font-weight-bold); }
.smallheading { font-family: var(--font-family); font-size: 1rem;   font-weight: var(--font-weight-bold); }
.mediumheading { font-family: var(--font-family); font-size: 1.125rem; font-weight: var(--font-weight-bold); }
.footer { font-size: var(--font-size-sm); font-family: var(--font-family); }
.box-shadow { box-shadow: 7px 7px 10px 0px rgba(50,50,50,0.5); }

.whitetext  { color: #fff; }
.blacktext  { color: #000; }
.graytext   { color: #808080; }
.blue1text  { color: #00B0F0; }

/* Legacy color classes used for old buttons and gradients */
.lime         { background-color: #00ff00; color: #000; border: 1px solid #00ff00; }
.lime:hover   { background-color: #000; color: #00ff00; }
.green        { background-color: #00aa00; color: #fff; border: 1px solid #00aa00; }
.green:hover  { background-color: #fff; color: #00aa00; }
.red          { background-color: #ff0000; color: #fff; border: 1px solid #ff0000; }
.red:hover    { background-color: #fff; color: #ff0000; }
.cyan         { background-color: #00ffff; color: #000; border: 1px solid #00ffff; }
.cyan:hover   { background-color: #000; color: #00ffff; }
.yellow       { background-color: #ffff00; color: #000; border: 1px solid #ffff00; }
.yellow:hover { background-color: #000; color: #ffff00; }
.orange       { background-color: #ff8c00; color: #fff; border: 1px solid #ff8c00; }
.orange:hover { background-color: #fff; color: #ff8c00; }
.purple       { background-color: #5d3fd3; color: #fff; border: 1px solid #5d3fd3; }
.purple:hover { background-color: #fff; color: #5d3fd3; }
.pink         { background-color: #ffc0cb; color: #000; border: 1px solid #ffc0cb; }
.pink:hover   { background-color: #000; color: #ffc0cb; }
.gray         { background-color: #808080; color: #fff; border: 1px solid #808080; }
.gray:hover   { background-color: #fff; color: #808080; }
.black        { background-color: #000; color: #fff; border: 1px solid #000; }
.black:hover  { background-color: #fff; color: #000; }
.white        { background-color: #fff; color: #000; border: 1px solid #fff; }
.white:hover  { background-color: #000; color: #fff; }
.blue         { background-color: #0000ff; color: #fff; border: 1px solid #0000ff; }
.blue:hover   { background-color: #fff; color: #0000ff; }
.magenta      { background-color: #ff00ff; color: #fff; border: 1px solid #ff00ff; }
.magenta:hover{ background-color: #fff; color: #ff00ff; }
/* `.button.magenta` lives in the legacy-color block at the bottom of this file
   (alongside `.button.lime`, `.button.cyan`, etc) — placement there is what
   gives it the cascade-order win over the single-class `.button` in
   styles_shared.css, so the duplicate copy that used to sit here was
   dead weight. Don't re-add it; add new `.button.<color>` variants down there. */
.main         { background-color: var(--color-accent); color: #fff; border: 1px solid var(--color-accent); }
.main:hover   { background-color: #fff; color: var(--color-accent); }
.blue1background { background-color: var(--color-accent); color: #fff; border: 1px solid var(--color-accent); }

/* Outline-button variants — white background, colored text + matching border.
   Used by Help_Chat.ascx to legend the chat-action buttons (EDIT / SAVE / PIN /
   BUMP / REPLY / HIDE / READ). Replaces inline BorderColor/ForeColor/
   BorderStyle/BorderWidth on those asp:Button controls. */
.button-outline-green    { background:#fff; color:#00aa00;     border:1px solid #00aa00;     }
.button-outline-green:hover    { background:#00aa00; color:#fff; }
.button-outline-yellow   { background:#fff; color:#b58900;     border:1px solid #ffff00;     }
.button-outline-yellow:hover   { background:#ffff00; color:#000; }
.button-outline-cyan     { background:#fff; color:#00ffff;     border:1px solid #00ffff;     }
.button-outline-cyan:hover     { background:#00ffff; color:#000; }
.button-outline-magenta  { background:#fff; color:#ff00ff;     border:1px solid #ff00ff;     }
.button-outline-magenta:hover  { background:#ff00ff; color:#fff; }
.button-outline-orange   { background:#fff; color:#ff8c00;     border:1px solid #ff8c00;     }
.button-outline-orange:hover   { background:#ff8c00; color:#fff; }
.button-outline-purple   { background:#fff; color:#5d3fd3;     border:1px solid #5d3fd3;     }
.button-outline-purple:hover   { background:#5d3fd3; color:#fff; }

/* On-black variants (less commonly used) */
.limeonblack, .greenonblack, .redonblack, .cyanonblack, .yellowonblack,
.orangeonblack, .purpleonblack, .pinkonblack, .grayonblack, .blueonblack,
.magentaonblack, .whiteonblack, .darkorangeonblack, .darkorangeonwhite { background-color: #000; color: #fff; }
.limeonblack   { color: #00ff00; }
.greenonblack  { color: #00aa00; }
.redonblack    { color: #ff0000; }
.cyanonblack   { color: #00ffff; }
.yellowonblack { color: #ffff00; }
.orangeonblack,
.darkorangeonblack { color: #ff8c00; }
.purpleonblack { color: #5d3fd3; }
.pinkonblack   { color: #ffc0cb; }
.grayonblack   { color: #808080; }
.blueonblack   { color: #0000ff; }
.magentaonblack{ color: #ff00ff; }
.whiteonblack  { color: #fff; }
.darkorangeonwhite { background-color:#fff; color:#ff8c00; border:1px solid #fff; }

/* Legacy link variants (kept so existing markup still styles) */
.underline { text-decoration: underline; }
.linkblue,    .linkblue:visited    { font-family: var(--font-family); color: #0000ff; font-weight: bold; text-decoration: none; }
.linkblue:hover  { color: red; }
.linkblue1,   .linkblue1:visited   { font-family: var(--font-family); color: var(--color-accent); font-weight: bold; text-decoration: none; }
.linkblue1:hover { color: red; }
.linkgreen,   .linkgreen:visited   { font-family: var(--font-family); color: #00aa00; font-weight: bold; text-decoration: none; }
.linkgreen:hover { color: red; }
.linkwhite,   .linkwhite:visited   { font-family: var(--font-family); color: #fff;    font-weight: bold; text-decoration: none; }
.linkwhite:hover { color: red; }
.linkblack,   .linkblack:visited   { font-family: var(--font-family); color: #000;    font-weight: bold; text-decoration: none; }
.linkblack:hover { color: red; }
.linkgray,    .linkgray:visited    { font-family: var(--font-family); color: #808080; font-weight: bold; text-decoration: none; }
.linkgray:hover  { color: red; }
.linkred,     .linkred:visited     { font-family: var(--font-family); color: red;     font-weight: bold; text-decoration: none; }
.linkred:hover   { color: #000; }

/* ── Dashboard section headers ───────────────────────────
   Colored gradient bar that groups a dashboard panel. Each
   "kind" sets its own accent color via --kind-color. The
   inner dropdown is styled to read against the gradient.
   --------------------------------------------------------- */
.dash-section {
    --kind-color: #555;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    background: linear-gradient(90deg, var(--kind-color), #000 100%);
    color: #fff;
    padding: 0.4rem 0.75rem;
    border-radius: var(--border-radius-sm);
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    box-shadow: var(--shadow-sm);
}
.dash-section h2,
.dash-section .dash-section-title {
    color: #fff;
    margin: 0;
    font-size: 1rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.dash-section a, .dash-section a:visited {
    color: #fff; text-decoration: none; font-weight: var(--font-weight-bold);
}
.dash-section a:hover { text-decoration: underline; }
.dash-section .dash-section-control select,
.dash-section .dash-section-control .textbox {
    background: rgba(0,0,0,0.6);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: var(--border-radius-sm);
    padding: 0.2rem 0.4rem;
    font-size: 0.85rem;
}
.dash-section .dash-section-control select option { color: initial; }

.dash-section-popular  { --kind-color: #00AAAA; }
.dash-section-tasks    { --kind-color: #AA0000; }
.dash-section-events   { --kind-color: #0000FF; }
.dash-section-chat     { --kind-color: #5D3FD3; }
.dash-section-contacts { --kind-color: #ff8c00; }
.dash-section-groups   { --kind-color: #008000; }
.dash-section-here     { --kind-color: #8B8000; }

/* dash-section (colored banner) + dash-panel (content) below it now read as
   one cohesive card. The banner is the card header (loses bottom radius +
   margin so it sits flush against the panel), and the panel is the card
   body (white bg, border continuous with the header, rounded bottom corners,
   shadow). Nested dash-panels inside .main-card (panelPopularPlaces inside
   panelImHere) get reset back to bare so we don't double-card. */
.dash-section {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: none;
}
.dash-panel {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-top: 0;
    border-bottom-left-radius: var(--border-radius-sm);
    border-bottom-right-radius: var(--border-radius-sm);
    padding: 0.75rem;
    box-shadow: var(--shadow-sm);
    margin-bottom: 1rem;
}
.main-card .dash-panel {
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
    margin-bottom: 0;
}
/* Popular-places body (panelImHere) — keep main-card's nice padding for the
   form inside, but flatten the top corners + drop the top border so it
   visually connects to the .dash-section-popular banner above. Used in
   addition to .main-card on that panel. */
.main-card.dash-card-body {
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: 0;
    margin-bottom: 1rem;
}
.dash-panel:empty { padding: 0.4rem; color: var(--color-text-muted); }

/* Kill the "double-spaced records" look. The <hr class='hr'> separators
   between task / contact / chat / group rows inherit the global
   var(--section-gap, 1.5rem) margin from hr.hr — appropriate between page
   sections, way too much between sibling records in a list. Override
   inside the dashboard panels only. */
.dash-panel hr.hr { margin: 0.4rem 0; }
.dash-panel hr.hr:last-child { display: none; }
.dash-task-card,
.dash-chat-from-me { padding: 0.35rem 0.25rem; }

.dash-panel-row {
    background: var(--color-bg-card);
    border-bottom: 1px solid var(--color-border);
    padding: 0.4rem 0.5rem;
}
.dash-panel-row:last-child { border-bottom: 0; }

/* ── Dashboard2 — collapsible card dashboard (PacklistPRO-style) ────────────
   Each section is a <details class="main-card dash2-card">; the
   <summary class="card-title"> is the click target (the chevron + native
   marker hiding come from the shared `summary.card-title` rules in
   styles_shared.css). Row rendering reuses the .dash-panel / .dash-* /
   .label-dyn classes above, so this block only adds the collapsible-header
   chrome, the count badge, and the per-card toolbar. */
.dash2-greeting { display: block; margin: -0.25rem 0 1rem; color: var(--color-text-muted); }
.dash2-greeting strong { color: var(--color-text); font-weight: var(--font-weight-bold); }

/* "What's happening near you" social-proof block (Home, authenticated). A 3-column
   grid keeps the icon, number, and text columns aligned vertically down the rows. */
.home-localstats { color: var(--color-text-muted); }
.home-localstats-head { margin-bottom: 0.5rem; }
.home-localstats-head strong { color: var(--color-text); font-weight: var(--font-weight-bold); }
.home-localstats-grid {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 0.25rem 0.6rem;
    align-items: baseline;
}
.home-localstats-icon { text-align: center; }
.home-localstats-num {
    text-align: right;
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
}
.home-localstats-txt { min-width: 0; }
.home-localstats-row { display: contents; color: inherit; text-decoration: none; }
.home-localstats-row:hover .home-localstats-txt,
.home-localstats-row:focus-visible .home-localstats-txt { text-decoration: underline; color: var(--color-text); }

.dash2-quicknav { margin: 0 0 1.25rem; }

.dash2-card > summary.card-title {
    margin: 0;
    padding-bottom: 0;
    border-bottom: 0;
    align-items: center;
    cursor: pointer;
    user-select: none;
    transition: color var(--transition-fast);
}
.dash2-card > summary.card-title:hover .dash2-card-name { color: var(--color-accent); }
/* Divider only when the card is open, so a collapsed header reads as a clean bar. */
.dash2-card[open] > summary.card-title {
    margin-bottom: 0.85rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--color-border);
}
.dash2-card > summary.card-title:focus-visible {
    outline: none;
    box-shadow: var(--shadow-focus, 0 0 0 3px rgba(0, 176, 240, 0.35));
    border-radius: var(--border-radius-sm);
}
.dash2-card-icon { flex: 0 0 auto; font-size: 1.15em; line-height: 1; }
.dash2-card-name { min-width: 0; overflow-wrap: anywhere; }

.dash2-count {
    margin-left: auto;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.5rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
}
.dash2-count.is-zero { background: var(--color-border); color: var(--color-text-muted); }

/* Right-justified check-in status on the "Where are you now?" card header:
   ✓ when a place is currently set, ❓ otherwise. */
.dash2-status { margin-left: auto; flex: 0 0 auto; font-size: 1.05rem; line-height: 1; }

.dash2-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.85rem;
}
.dash2-window-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.dash2-window-label .dropdown { width: auto; min-width: 7.5rem; }
.dash2-viewall { margin-left: auto; white-space: nowrap; font-weight: var(--font-weight-medium); }

/* "Include contacts' events / groups" toggle in a card toolbar. */
.dash2-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    cursor: pointer;
}
.dash2-toggle input { margin: 0; cursor: pointer; }
.dash2-toggle span { cursor: pointer; }

@media (max-width: 575px) {
    .dash2-viewall { margin-left: 0; width: 100%; }
    .dash2-window-label { width: 100%; }
    .dash2-window-label .dropdown { flex: 1 1 auto; min-width: 0; }
}

/* ── Group / Event search result cards ───────────────────
   Variants reflect record state. Used by GroupSearch and
   (next pass) EventSearch.
   --------------------------------------------------------- */
.result-card {
    --result-bg: #fff;
    --result-fg: var(--color-text);
    --result-accent: var(--color-border);
    background: var(--result-bg);
    color: var(--result-fg);
    border: 1px solid var(--result-accent);
    border-left: 6px solid var(--result-accent);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    padding: 0.6rem 0.75rem;
    margin-bottom: 0.6rem;
    /* Cards have a whole-card onclick handler that routes to details. Was set
       inline via Panel.Style.Add("cursor","pointer") in EventSearch.aspx.vb;
       moved here so the result-card class always carries it. */
    cursor: pointer;
}
.result-card a, .result-card a:visited { color: var(--result-fg); text-decoration: none; }
.result-card a:hover { text-decoration: underline; }
.result-card-title  { font-size: 1.1rem; font-weight: var(--font-weight-bold); display: block; line-height: 1.2; }
.result-card-status { font-size: 0.85rem; font-weight: var(--font-weight-medium); opacity: 0.85; margin-left: 0.4rem; }
.result-card-meta   { font-size: 0.85rem; opacity: 0.85; margin-top: 0.15rem; display: block; }
.result-card-desc   { font-size: 0.9rem;  margin-top: 0.25rem;  display: block; }
/* FREE badge — pill under the title for events whose CostAndGoal says they
   cost nothing (EventSearch). Success tokens keep it theme-aware in dark mode. */
.result-card-free {
    display: inline-block;
    padding: 0 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    line-height: 1.5;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
    background: var(--color-success-bg);
    color: var(--color-success);
}
.result-card-status + .result-card-free { margin-left: 0.4rem; }
/* "X days only" pill — outline style matching the ↻ Recurring badge (transparent
   fill, bright-green border). EventSearch, non-recurring events spanning 1–4 days. */
.result-card-days {
    display: inline-block;
    padding: 0 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    line-height: 1.5;
    font-weight: var(--font-weight-medium);
    background: transparent;
    color: var(--color-text, #1a1f2e);
    border: 1px solid #00FF00;
}
.result-card-status + .result-card-days,
.result-card-free + .result-card-days { margin-left: 0.4rem; }
.result-card-actions {
    margin-top: 0.5rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.result-card-actions .button { padding: 0.25rem 0.6rem; font-size: 0.85rem; }

/* "× Not Interested" hide pill — red, and floated to the far right of the
   actions row via margin-left:auto (works even when the row wraps). Sets
   Interested='N'; the "All" view then filters the card out of the default list. */
.result-card-actions .pill.result-card-hide {
    margin-left: auto;
    background-color: var(--color-delete-btn, #d32f2f);
    border-color: var(--color-delete-btn, #d32f2f);
    color: #ffffff;
}
.result-card-actions .pill.result-card-hide:hover,
.result-card-actions .pill.result-card-hide:focus {
    background-color: var(--color-delete-btn-hover, #b71c1c);
    border-color: var(--color-delete-btn-hover, #b71c1c);
    color: #ffffff;
}

/* Interested toggle states (leftmost pill on each event card):
   marked interested → bright-green "★ Interested!"; marked not interested → red.
   Both use white text per spec. !important keeps them ahead of the generic
   .pill rule whichever stylesheet loads last. */
.result-card-actions .pill.result-card-interested-yes,
.result-card-actions .pill.result-card-interested-yes:hover,
.result-card-actions .pill.result-card-interested-yes:focus {
    background-color: #00CC00 !important;
    border-color: #00CC00 !important;
    color: #ffffff !important;
}
/* "Maybe" (Interested='M') → dark green #008000, white text. */
.result-card-actions .pill.result-card-interested-maybe,
.result-card-actions .pill.result-card-interested-maybe:hover,
.result-card-actions .pill.result-card-interested-maybe:focus {
    background-color: #008000 !important;
    border-color: #008000 !important;
    color: #ffffff !important;
}
/* When the event is already marked not-interested, the far-right "× Not Interested"
   hide pill goes bright red (#ff0000) + white to show it's the active state (the
   default hide pill is the muted delete-red). */
.result-card-actions .pill.result-card-hide.result-card-hide-active,
.result-card-actions .pill.result-card-hide.result-card-hide-active:hover,
.result-card-actions .pill.result-card-hide.result-card-hide-active:focus {
    background-color: #ff0000 !important;
    border-color: #ff0000 !important;
    color: #ffffff !important;
}

/* ── Interest-level menu ─────────────────────────────────────────
   Double-click or press-and-hold the "Interested?" pill to open a popup of
   EventDetails' interest levels — Yeah! / Don't Know / Not at all (driven by
   site.js initInterestMenus, which toggles .menu-open on the wrap). The pill
   keeps its single-click interested toggle. The menu is absolutely positioned
   off the pill; .menu-open lifts the wrap above later cards so it isn't
   clipped by them. */
.interest-wrap { position: relative; display: inline-flex; }
.interest-wrap.menu-open { z-index: 1000; }
.interest-toggle {
    /* Suppress text selection / native callout on double-tap & long-press. */
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    touch-action: manipulation;
}
.interest-menu {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 1;
    min-width: 12rem;
    padding: 0.25rem;
    background: var(--color-bg-card, #fff);
    color: var(--color-text, #222);
    border: 1px solid var(--color-border, #ccc);
    border-radius: var(--border-radius, 8px);
    box-shadow: var(--shadow-md, 0 6px 18px rgba(0, 0, 0, 0.18));
}
.interest-wrap.menu-open .interest-menu { display: block; }
/* Flip above the pill when there isn't room below (set by initInterestMenus). */
.interest-menu.menu-flip-up { top: auto; bottom: calc(100% + 4px); }
.interest-menu-header {
    padding: 0.3rem 0.7rem 0.35rem;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    opacity: 0.7;
}
.interest-menu .interest-menu-item {
    display: block;
    padding: 0.4rem 0.7rem;
    border-radius: var(--border-radius-sm, 6px);
    font-size: 0.9rem;
    line-height: 1.2;
    color: var(--color-text, #222);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.interest-menu .interest-menu-item:hover,
.interest-menu .interest-menu-item:focus {
    background: rgba(0, 0, 0, 0.06);
    text-decoration: none;
}
[data-theme="dark"] .interest-menu .interest-menu-item:hover,
[data-theme="dark"] .interest-menu .interest-menu-item:focus {
    background: rgba(255, 255, 255, 0.10);
}
.interest-menu .interest-menu-item-current { font-weight: var(--font-weight-bold, 700); }
.interest-menu .interest-menu-item-current::after {
    content: " ✓";
    color: var(--color-primary, #0090C8);
}

/* Event-list pager (100 events/page). Each page link reuses the .pill look. */
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: 1.25rem 0 0.5rem;
}
.pager .pager-current {
    background-color: var(--color-primary, #0090C8);
    border-color: var(--color-primary, #0090C8);
    color: #ffffff;
    font-weight: 700;
    cursor: default;
    /* Lift the active page out of the row of identical-looking pills. */
    box-shadow: 0 0 0 2px var(--color-bg-card, #fff), 0 0 0 4px var(--color-primary, #0090C8);
    transform: scale(1.08);
}
.pager .pager-gap {
    padding: 0 0.15rem;
    color: var(--color-text-muted, #6c757d);
    user-select: none;
}
/* "Page X of Y" — full-width line above the page pills. */
.pager .pager-status {
    flex: 0 0 100%;
    text-align: center;
    font-weight: 600;
    color: var(--color-text, #1a1f2e);
    margin-bottom: 0.1rem;
}

/* Variants */
.result-card--rejected { --result-bg: #b00020; --result-fg: #fff; --result-accent: #7a0014; }
.result-card--pending  { --result-bg: #fff7d6; --result-fg: #5a4500; --result-accent: #e6c200; }
.result-card--wip      { --result-bg: #fff7d6; --result-fg: #5a4500; --result-accent: #e6c200; }
.result-card--owned    { --result-bg: #d3fad3; --result-fg: #114411; --result-accent: #00aa00; }
.result-card--normal   { --result-bg: var(--color-bg-card); --result-fg: var(--color-text); --result-accent: var(--color-border); }

/* Time-window overlays for EventSearch — applied alongside the state variant.
   A thicker left border = single occurrence, thinner = recurring (per the
   filter-summary legend on the page). */
.result-card--now           { border-left-width: 10px; border-left-color: #00ff7f; }
.result-card--soon          { border-left-width: 10px; border-left-color: #008000; }
.result-card--recurring-now { border-left-width: 4px;  border-left-color: #00ff7f; }
.result-card--recurring-soon{ border-left-width: 4px;  border-left-color: #008000; }

/* ── Inline section bar ───────────────────────────────────
   Lightweight version of .dash-section for details pages —
   single colored band, no flex slot, no control. Set --kind-color
   to theme it. Used by GroupDetails, EventDetails, etc.
   --------------------------------------------------------- */
.section-bar {
    --kind-color: #555;
    background: linear-gradient(90deg, var(--kind-color), #000 100%);
    color: #fff;
    padding: 0.4rem 0.75rem;
    border-radius: var(--border-radius-sm);
    margin: 1rem 0 0.5rem;
    box-shadow: var(--shadow-sm);
    font-size: 1rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.section-bar-groups { --kind-color: #008000; }
.section-bar-events { --kind-color: #0000ff; }
.section-bar-chat   { --kind-color: #5d3fd3; }
.section-bar-manage { --kind-color: #b08800; }

/* Interest-state section-bar + swatch variants — see styles_qmeet.css */

/* ── ManageInterests2 — interest-library admin ───────────
   PLP-look library curator. Reuses .result-card (left-border
   state), .main-card, .form-group, .empty-state; these mi2-*
   rules only cover the bits the shared components don't:
   the overview chip strip, row layout, badges, and pager.
   All token-driven so dark mode follows automatically.
   --------------------------------------------------------- */
.mi2-count-inline { font-size: 0.9rem; font-weight: var(--font-weight-normal); color: var(--color-text-muted); }

/* Overview count chips */
.mi2-stats { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: var(--section-gap); }
.mi2-stat {
    display: inline-flex; align-items: baseline; gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    box-shadow: var(--shadow-sm);
}
.mi2-stat b { font-size: 1.05rem; color: var(--color-text); }
.mi2-stat-warn { background: var(--color-warning-bg); border-color: var(--color-warning-border); color: var(--color-warning); }
.mi2-stat-warn b { color: var(--color-warning); }
.mi2-stat-info { background: var(--color-info-bg); border-color: var(--color-info-border); color: var(--color-info); }
.mi2-stat-info b { color: var(--color-info); }

/* List + rows (built on .result-card) */
.mi2-list { margin-top: 0.75rem; }
.result-card.mi2-row { cursor: default; }
.mi2-row.mi2-editing { outline: 2px solid var(--color-accent); outline-offset: 1px; }
.mi2-row-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.55rem; }
.mi2-row-main .result-card-status { margin-left: 0; }

/* Small state badges shown beside a row title */
.mi2-badge {
    display: inline-block;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.mi2-badge-pending { background: var(--color-warning-bg); color: var(--color-warning); }
.mi2-badge-info    { background: var(--color-info-bg);    color: var(--color-info); }
.mi2-badge-deleted { background: var(--color-danger-bg);  color: var(--color-danger); }

/* The add/rename hint under each editor */
.mi2-edit-hint { margin: 0.1rem 0 0.6rem; }

/* Filter dropdown shouldn't stretch in the search row */
.mi2-filter { flex: 0 0 auto; width: auto; min-width: 9.5rem; }

/* Interests pager */
.mi2-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 0.75rem; }
.mi2-pager-label { margin: 0; }
.mi2-pager-size { display: inline-flex; align-items: center; gap: 0.4rem; margin-left: auto; }
.mi2-pager-size .input-label { margin: 0; }
.mi2-pager-size .dropdown { width: auto; min-width: 4.5rem; }

/* ── Contact rows ────────────────────────────────────────
   Compact list pattern for people lists (Contacts, Members,
   MemberSearch). Title + meta line + actions row, smaller
   padding than result-card. Variants flag favorite/blocked.
   --------------------------------------------------------- */
.contact-row {
    --row-accent: var(--color-border);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--row-accent);
    border-radius: var(--border-radius-sm);
    padding: 0.4rem 0.6rem;
    margin-bottom: 0.4rem;
}
.contact-row-title { font-weight: var(--font-weight-bold); }
.contact-row-meta  { font-size: 0.85rem; color: var(--color-text-muted); display: block; margin-top: 0.1rem; }
.contact-row-badge {
    display: inline-block;
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    margin-left: 0.4rem;
    vertical-align: middle;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.contact-row-badge--fav { background: #d3fad3; color: #114411; border: 1px solid #00aa00; }
.contact-row-actions {
    margin-top: 0.4rem;
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}
.contact-row-actions .button { padding: 0.15rem 0.5rem; font-size: 0.8rem; }

.contact-row--favorite { --row-accent: #00aa00; }
.contact-row--blocked  { --row-accent: #b00020; background: #fff5f5; }
.contact-row--blocked .contact-row-title { color: #b00020; }

/* Hover affordance — the row title links to the contact's profile, so
   a subtle lift on hover signals the card is interactive. */
.contact-row { transition: box-shadow var(--transition-fast), border-color var(--transition-fast); }
.contact-row:hover { box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); }
[data-theme="dark"] .contact-row:hover { box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); }

/* ── Bulk action toolbar ──────────────────────────────────
   Per-row checkboxes (.bulk-row-check) + a toolbar above the
   list (.bulk-actions) for multi-row operations. Generic pattern
   reusable by any list page. The button stays disabled until
   at least one row is selected (set by the page's JS).
   --------------------------------------------------------- */
.bulk-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.4rem 0.6rem;
    margin-bottom: 0.4rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
}
.bulk-actions[hidden] { display: none; }
.bulk-actions-selectall-wrap { display: inline-flex; align-items: center; gap: 0.3rem; margin: 0; }
.bulk-actions-count { min-width: 4rem; }
.bulk-actions-btn[disabled],
.bulk-actions-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.bulk-row-check {
    display: inline-flex;
    align-items: center;
    margin: 0 0.4rem 0 0;
    vertical-align: middle;
}
.bulk-row-check input[type="checkbox"] { margin: 0; }

/* ── Match score bar (MemberMatch) ────────────────────────
   A labeled progress bar for showing % match between users.
   Color shifts with strength.
   --------------------------------------------------------- */
.match-bar {
    display: block;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--color-border);
    overflow: hidden;
    margin: 0.2rem 0;
}
.match-bar-fill {
    display: block;
    height: 100%;
    background: var(--color-accent);
    transition: width 0.25s ease;
}
.match-stat { font-size: 0.85rem; color: var(--color-text); }
.match-stat b { color: var(--color-accent); }

/* .countdown — see styles_qmeet.css */

/* ── Interest chips (PublicProfile, User) ─────────────────
   Pill-shaped tags showing interests. Two flavors:
   --top: "top interest" (lime), --other: any other (green).
   --------------------------------------------------------- */
.interest-chip {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    margin: 0.15rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: var(--font-weight-medium);
    background: var(--color-bg-card);
    color: var(--color-text);
    border: 1px solid var(--color-border);
}
.interest-chip--top   { background: #d3fad3; color: #114411; border-color: #00aa00; }
.interest-chip--other { background: #114411; color: #fff;   border-color: #003300; }

.interest-skill-heading {
    font-size: 1rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-accent);
    margin: 0.75rem 0 0.25rem;
}

/* Availability table on profile pages */
.availability-table {
    border-collapse: collapse;
}
.availability-table td {
    padding: 0.15rem 0.6rem;
    font-size: 0.9rem;
}
.availability-table td:first-child { font-weight: var(--font-weight-bold); }

/* ── Details-page members table ─────────────────────────── */
.members-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0.75rem;
}
.members-table th,
.members-table td {
    border: 1px solid var(--color-border);
    padding: 0.4rem 0.6rem;
    vertical-align: top;
    text-align: left;
}
.members-table thead th {
    background: var(--color-text);
    color: #fff;
    font-weight: var(--font-weight-bold);
}
.members-table .role-organizer { color: #008000; font-weight: var(--font-weight-bold); }

/* "No results" empty state */
.linkunderline,
.linkunderline:visited            { font-family: var(--font-family); font-weight: bold; text-decoration: underline; }
.linkunderline:hover { color: red; }
.linkblueunderline   { font-family: var(--font-family); color: blue; }
.linkblackunderline  { font-family: var(--font-family); color: black; }
.linkwhiteunderline  { font-family: var(--font-family); color: white; }
.linkyellowunderline { font-family: var(--font-family); color: yellow; }

/* Admin / View-Feedback queue table — used by Admin.aspx.vb / ViewFeedback.aspx.vb
   to render the moderation lists. Replaces 50+ inline style='border:1px solid' attrs. */
.admin-queue-table {
    border-collapse: collapse;
    width: 100%;
    margin: 0.5rem 0 1rem;
    background-color: var(--color-bg-card, #fff);
}
.admin-queue-table th,
.admin-queue-table td {
    border: 1px solid var(--color-border, #e0e0e0);
    padding: 0.4rem 0.6rem;
    vertical-align: top;
    font-size: var(--font-size-sm, 0.9rem);
}
.admin-queue-table thead th {
    background-color: var(--color-bg, #f5f7fa);
    text-align: left;
    font-weight: var(--font-weight-bold, 600);
}
.admin-queue-table a { color: var(--color-link); }

/* ── Data-table readability layer (qMeet-local) ───────────────
   Zebra striping + row hover + long-text wrap for the qMeet data
   tables (feedback queue, Contact-Us moderation queue, API blocks,
   popular interests). members-table shares .admin-queue-table but
   its rows are sparse and its columns are text, so it's excluded
   from striping and gets hover only. Dark-mode tints follow the
   established dashboard pattern (literal rgba + [data-theme="dark"]
   override). These rules live here (not in Shared) because each
   sister site carries its own copy of these table classes. */

/* Zebra striping — alternate body rows get a faint tint so the eye
   tracks one row across the full width of the table. */
.admin-queue-table:not(.members-table) tbody tr:nth-child(even),
.data-table tbody tr:nth-child(even),
.popular-interests-table tr:nth-child(even) {
    background-color: rgba(0, 0, 0, 0.035);
}
[data-theme="dark"] .admin-queue-table:not(.members-table) tbody tr:nth-child(even),
[data-theme="dark"] .data-table tbody tr:nth-child(even),
[data-theme="dark"] .popular-interests-table tr:nth-child(even) {
    background-color: rgba(255, 255, 255, 0.045);
}

/* Row hover — placed AFTER the zebra rules so it wins on striped
   rows (equal specificity → source order). Feedback / member rows
   are clickable, so this doubles as an interaction affordance. */
.admin-queue-table:not(.members-table) tbody tr:hover,
.data-table tbody tr:hover,
.members-table tbody tr:hover {
    background-color: rgba(0, 176, 240, 0.10);
}
[data-theme="dark"] .admin-queue-table:not(.members-table) tbody tr:hover,
[data-theme="dark"] .data-table tbody tr:hover,
[data-theme="dark"] .members-table tbody tr:hover {
    background-color: rgba(0, 176, 240, 0.18);
}

/* Long free-text cells (feedback comments, emails, URLs) wrap and
   break unbroken strings instead of stretching the table wider. */
.admin-queue-table td { overflow-wrap: anywhere; }

/* ── Feedback queue column alignment (ViewFeedback.aspx only) ──
   The single-character Urgency (U, col 3) and Importance (I, col 4)
   columns read better centered under their headers; the date stays
   on one line. Scoped to the .feedback-queue modifier so the other
   pages that reuse .admin-queue-table (Admin.aspx Contact-Us queue,
   whose col 3/4 are Date/Submitted By) are not affected. */
.feedback-queue thead th:nth-child(3),
.feedback-queue thead th:nth-child(4),
.feedback-queue tbody td:nth-child(3),
.feedback-queue tbody td:nth-child(4) {
    text-align: center;
    white-space: nowrap;
}
.feedback-queue tbody td:nth-child(1) { white-space: nowrap; }

/* Users.aspx — bold per-row name label (replaces the legacy hardcoded
   Label.Font.Bold = True / Font.Size = 11 inline assignments). */
.users-label-bold { font-weight: var(--font-weight-bold, 600); }

/* Users.aspx — each user is wrapped in a .user-row so the client-side
   data-list-filter can hide/show one entry at a time. The trailing <hr>
   sits inside the wrapper so it hides along with the row. */
.user-row { padding: 0.25rem 0.4rem; border-radius: var(--border-radius-sm); transition: background-color var(--transition-fast); }
.user-row[hidden] { display: none; }
/* Hover highlight — each row packs many fields; a tint helps the admin
   keep one user's row together while scanning the wide list. */
.user-row:hover { background-color: rgba(0, 176, 240, 0.06); }
[data-theme="dark"] .user-row:hover { background-color: rgba(0, 176, 240, 0.12); }

/* Dashboard "I'm Here" / Tasks / Contacts cards — white panels inside the dashboard's
   dark area. Used by Dashboard.aspx.vb's panelTasks/panelContacts rendering. */
.dash-task-card { background: var(--color-bg-card, #fff); }

/* Dashboard programmatic-link-button — replaces inline Style.Add("text-decoration","none"). */
.dash-linkbtn { text-decoration: none; }
.dash-linkbtn:hover { text-decoration: underline; }

/* Dashboard upcoming-events row tinting — stronger green = sooner. Modernized 2026-06-05:
   the original literals (#00FF00 / #99FF99 / #BBFFBB / #DDFFDD) were pure-neon and fought
   the link colors; now the same translucent ramp the dark theme uses, layered over the
   light card surface, so the recency encoding reads without shouting. */
.dash-event-today    { background: rgba(46, 204, 113, 0.38); }
.dash-event-tomorrow { background: rgba(46, 204, 113, 0.26); }
.dash-event-d2       { background: rgba(46, 204, 113, 0.16); }
.dash-event-d3       { background: rgba(46, 204, 113, 0.08); }

/* Dashboard chat preview rows — indigo tint = sent by me, green tint = sent to me
   (same hues as the dark-mode overrides; was opaque lavender #CCCCFF / #CCFFCC). */
.dash-chat-from-me { background: rgba(124, 131, 253, 0.20); }
.dash-chat-to-me   { background: rgba(46, 204, 113, 0.18); }

/* Dark-mode overrides for the dashboard row tints. The light values above are
   near-neon and broke in dark mode (light text on bright green = unreadable).
   Re-tint to translucent hues layered over the dark card surface so the
   recency/sender encoding survives with readable contrast. Light mode is
   untouched. (Requirements §3.4 dark mode.) */
[data-theme="dark"] .dash-event-today    { background: rgba(46, 204, 113, 0.32); }
[data-theme="dark"] .dash-event-tomorrow { background: rgba(46, 204, 113, 0.22); }
[data-theme="dark"] .dash-event-d2       { background: rgba(46, 204, 113, 0.14); }
[data-theme="dark"] .dash-event-d3       { background: rgba(46, 204, 113, 0.08); }
[data-theme="dark"] .dash-chat-from-me   { background: rgba(124, 131, 253, 0.22); }
[data-theme="dark"] .dash-chat-to-me     { background: rgba(46, 204, 113, 0.16); }

/* EventDetails interest-vote columns. Colours encode vote weight from "YEAH!" (bright green)
   down to "Naw" (orange) plus a special "Another time" (cyan). Centered text + bold by default. */
.vote-row-bordered  { border: solid; border-width: 1px 0; }
.vote-col           { text-align: center; font-weight: bold; }
.vote-col-yeah      { background-color: #00FF00; text-align: center; }
.vote-col-sure      { background-color: #00CC00; text-align: center; }
.vote-col-maybe     { background-color: #FFFF00; text-align: center; }
.vote-col-naw       { background-color: #FFA500; text-align: center; }
.vote-col-later     { background-color: #00FFFF; text-align: center; }
.vote-results-table { border-collapse: collapse; width: 100%; }

/* EventDetails event-photos thumbnail strip — small bordered preview tiles. */
.event-file-thumb { border: 1px solid #000; margin: 2px; width: 120px; height: 120px; object-fit: cover; }

/* PublicProfile photo — full-width, thin border. */
.public-profile-pic { border: 1px solid #000; width: 100%; height: auto; display: block; }

/* RemoveDuplicateEvents helper notes — slightly muted, smaller than body. */
.dedup-helper-note  { font-size: 12px; margin-bottom: 8px; }

/* Interests grid — taller line-height so the ⤵ "drill down" arrow lines up with each row. */
.interest-row-tall  { line-height: 3.5; }

/* Legacy layout helpers used by old pages */
.center        { margin-left: auto; margin-right: auto; }
.paneltable    { vertical-align: top; background-color: #c0c0c0; border: 10px solid #c0c0c0; padding: 0; table-layout: auto; border-collapse: collapse; margin: 0 auto; }
.tablelines    { border-bottom: 1px solid #000; border-right: 0 solid #00c000; }
.tableshadow   { box-shadow: 7px 7px 10px 0px rgba(50,50,50,0.5); background-color: #ccffcc; }
.table1        { border-spacing: 0; border-collapse: collapse; }
.table2        { border-collapse: collapse; width: 100%; }
.v-top         { vertical-align: top; }
.cell          { border: 1px solid #808080; }
.cell-dark     { border: 1px solid #000; }
.cell-dark-header { border: 1px solid #000; background-color: #000; color: #fff; }
.cell-padded   { padding: 5px; }
.bg-white      { background-color: #fff; }
.chat-urgent   { color: #ff00ff; font-weight: bold; }
.row-tall > td { height: 20px; }

/* Staged-upload preview thumb in the chat composer (the file is uploaded but
   not yet sent). Emitted by ChatThumbHelper, which feeds BOTH render paths —
   ChatFilesReady.ashx (AJAX, right after upload) and ChatUC.ShowFilesReadyToSend
   (postback) — so the preview is the same size whichever path drew it.
   object-fit:contain keeps aspect; border uses --color-text for dark-mode contrast. */
.chat-thumb { border: 1px solid var(--color-text); width: 160px; height: 160px; object-fit: contain; }
/* Inline-image inside a chat message bubble. Width % + border color come
   per-message via inline style (user-driven scale + per-user color); the
   static margin + cursor live here so they aren't repeated 100 times in
   server-rendered HTML. */
.chat-img-inline {
    margin: 2px;
    cursor: zoom-in;
    border: 2px solid transparent;
    border-style: solid;
}

/* ViewFeedback (admin) — thumbnails on the feedback queue row + full-size
   image on the open-record detail panel. Replaces inline width/Style attrs.
   Borders use design-system tokens so dark mode renders readably. */
.feedback-thumb { border: 1px solid var(--color-text); }
.feedback-full  { max-width: 100%; height: auto; border: 1px solid var(--color-border); }

/* ChatUC confirmation badges — appended to the "Posted." toast text after
   the user sends a message, summarizing which flags they checked. Replaces a
   set of 5 inline style='background:X;color:Y' attributes. */
.msg-badge {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    border-radius: var(--border-radius-sm, 4px);
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold, 600);
    line-height: 1.4;
    vertical-align: middle;
}
.msg-badge-urgent  { background: magenta; color: #fff; }
.msg-badge-pinned  { background: cyan;    color: #000; }
.msg-badge-saved   { background: yellow;  color: #000; }
.msg-badge-notify  { background: orange;  color: #000; }
.msg-badge-lowpri  { background: #808080; color: #fff; }
.msg-badge-live    { background: #6f42c1; color: #fff; }

/* ChatUC "..." secondary-menu trigger — static neutral-gray pill that toggles
   the per-message action menu. Pulled out of an inline style attribute that
   was repeating background/color/border on every message render. Only the
   font-size remains data-driven (user-set per-message size). */
.msg-menu-trigger {
    background: #ddd;
    color: #000;
    border: 1px solid #ddd;
}

/* ChatUC per-message action menu items — bg/fg colors stay inline (data-driven
   per action) but the cursor:pointer is static. */
.msg-action-item { cursor: pointer; }

/* Same-size placeholder shown while a staged image's server thumbnail is still
   being generated; matches .chat-thumb so the strip doesn't jump when it loads. */
.chat-thumb-pending {
    display: inline-block;
    width: 160px;
    height: 160px;
    border: 1px solid #999;
    margin: 1px;
    vertical-align: top;
    font-size: 11px;
    line-height: 160px;
    text-align: center;
    color: #666;
}

/* Legacy section headers used on EventDetails/GroupDetails/Interests etc. */
.div1     { background: linear-gradient(90deg, #008000, #004000 100%) no-repeat; box-shadow: 10px 5px 8px #666; }
.divblue  { background: linear-gradient(90deg, #0000ff, #000080 100%) no-repeat; box-shadow: 10px 5px 8px #666; }
.whitediv { background: linear-gradient(90deg, #fff, #808080 100%) no-repeat; box-shadow: 10px 5px 8px #666; height: 40px; vertical-align: middle; overflow: hidden; }
.reddiv   { background: linear-gradient(90deg, #ff0000, #800000 100%) no-repeat; box-shadow: 10px 5px 8px #666; height: 40px; vertical-align: middle; overflow: hidden; }

/* Transparent overlays (used on some chat/profile cards) */
.transparent66 { color: #fff; background-color: rgba(0,0,0,0.66); }
.transparent50 { color: #fff; background-color: rgba(0,0,0,0.5); }
.transparent25 { color: #fff; background-color: rgba(0,0,0,0.25); }

/* Sideways label used on some lists */
.sideways {
    writing-mode: vertical-rl;
    -webkit-transform: rotate(180deg);
    text-align: left;
    vertical-align: bottom;
}

/* Old collapsible blocks (used on some help/admin pages) */
.collapsible {
    background-color: #777;
    color: white;
    cursor: pointer;
    padding: 18px;
    width: 100%;
    border: none;
    text-align: left;
    outline: none;
    font-size: 0.9375rem;
}
.active, .collapsible:hover { background-color: #555; }
.mycontent { padding: 0 18px; display: none; overflow: hidden; background-color: #f1f1f1; }

/* Old file-picker button styling (kept) */
input[type="file"] { display: none; }
/* …but the shared design-system .file-picker class marks a file input that is
   meant to be VISIBLE and styled (e.g. FilesToSend.aspx, which has no trigger
   label). The bare input[type=file] hide above outweighs shared's
   .file-picker{display:block} on specificity (0,1,1 vs 0,1,0), so re-show it
   here with a selector that beats it. Pages that want the hidden+label pattern
   (ChatUC, ContactUs) use .chat-hidden / a label trigger, not .file-picker. */
input[type="file"].file-picker { display: block; }
input::file-selector-button {
    background-color: var(--color-accent);
    color: #fff;
    border: 0 solid var(--color-accent);
    width: auto;
    min-width: 40px;
    height: 28px;
    font-size: 0.8125rem;
    display: inline-block;
    padding: 4px 8px;
    border-radius: 6px;
    box-sizing: content-box;
    text-decoration: none;
    font-family: var(--font-family);
    font-weight: bold;
    text-align: center;
    transition: all 0.2s;
    -webkit-appearance: none;
    appearance: none;
    text-transform: uppercase;
    box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
    margin-right: 4px;
    margin-bottom: 4px;
}

/* Legacy "title" id used at top of Site.Master (kept until pages migrate) */
.title { display: none; }

/* span class="nobr" used in many older pages */
span.nobr { white-space: nowrap; }


/* ── Login page (mirrors PacklistPRO Login.aspx layout) ─────────── */


/* Tips area sits ABOVE the login card; matches its width so the right-aligned
   Ⓘ trigger lines up with the card's right edge. The Tips card itself is
   visually distinct from the login card (lighter background, narrower margin)
   so the user's eye lands on the login form first. */
.login-tips-panel { margin: 0 0 0.75rem; }

/* Password visibility toggle */

/* Links row below Login button */

/* IP address display under the Login button — small muted note with a blank
   line of space above so it sits clearly below the button rather than crowding
   into it. */

/* Forgot-Login layout (matches login card width) */
.forgot-card     { max-width: 480px; margin: 0 auto; }
.forgot-back-row { margin-top: 1rem; }

/* Join wizard (Join1-Join8) — consistent step-card layout */
.join-row.three   .form-group { flex: 1 1 calc(33% - 0.5rem); }
.join-actions-back { margin-top: 1rem; }
.account-created-card { max-width: 560px; margin: 1rem auto; text-align: center; }
.account-created-next { margin-top: 1rem; }
.account-created-steps { text-align: left; margin: 1rem auto 0; max-width: 480px; padding-left: 1.25rem; }
.account-created-steps li { margin-bottom: 0.65rem; line-height: 1.4; }
.account-created-steps li:last-child { margin-bottom: 0; }

/* Me.aspx "Get started" onboarding checklist — shown only when the user has
   missing profile bits (no photo, no bio, no interests, etc.). Sits above
   the main me-actions button stack. */
.me-getstarted { border-left: 4px solid var(--color-accent, #00B0F0); }
.me-getstarted-heading { margin-top: 0; }
.me-getstarted-items { margin: 0.5rem 0 0 1.25rem; padding: 0; }
.me-getstarted-items li { margin-bottom: 0.5rem; line-height: 1.4; }
.me-getstarted-items li:last-child { margin-bottom: 0; }

/* Dashboard "Where are you right now?" — View/Edit + Add New Place buttons
   under the place dropdown (now buttons, not links → lay them out in a row). */
.dash-place-actions {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* "＋ Add a Place" action under the check-in badge's "Still here?" Place picker. */
.here-modal-place-actions {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Add/View/Edit Place modal (#placeModal) — the form is taller than the
   session/here modals, so cap it to the viewport and let it scroll instead of
   pushing the footer buttons off-screen. Reuses the shared .modal-overlay/
   .modal-box shell; this only widens it a touch and adds the scroll. */
.place-modal-box {
    max-width: 540px;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}
.place-modal-box .modal-footer {
    position: sticky;
    bottom: 0;
    background: var(--color-bg-card);
    padding-top: 0.75rem;
    margin-top: 1rem;
}

/* Popular-places ("Where is everyone?") — kill the wide gap above the
   report block (the global hr.hr --section-gap looked like a blank line
   after the list of places). */
#card-popular .dash-report-place { margin-top: 0.25rem; }
#card-popular .dash-report-place .hr { margin: 0.4rem 0; }

/* Popular-places rows: place name + muted meta line (City, State · Map) on the
   left, people-count pill aligned right. */
.pp-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.pp-main { min-width: 0; }
.pp-name { font-weight: 600; display: block; }
.pp-meta { font-size: var(--font-size-sm); color: var(--color-text-muted); }
.pp-meta a { white-space: nowrap; }
.pp-people { display: block; margin-top: 0.15rem; font-size: var(--font-size-sm); color: var(--color-text); }
.pp-stats { display: block; margin-top: 0.15rem; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.pp-count { flex: 0 0 auto; }

/* Gender-breakdown count pills on each popular-places row: pink = female,
   blue = male, gray = unknown/other. */
.pp-counts { flex: 0 0 auto; display: inline-flex; gap: 0.3rem; white-space: nowrap; }
/* Two-class selectors (0,2,0) so these win over shared .pill background-color,
   which loads after Content/styles.css and would otherwise override them. */
.pp-counts .pp-count-f { background-color: #e84393 !important; color: #fff !important; border-color: #e84393 !important; }
.pp-counts .pp-count-m { background-color: #0984e3 !important; color: #fff !important; border-color: #0984e3 !important; }
.pp-counts .pp-count-u { background-color: #8e44ad !important; color: #fff !important; border-color: #8e44ad !important; }

/* Check-In card: "Where are you right now?" label on the left, the selected
   place's 🗺 Map link on the right of the same row. */
.dash-place-label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}
.dash-place-label-row .input-label { margin-bottom: 0.25rem; }
.dash-place-map { white-space: nowrap; }

/* Check In card's single "current place" button + its "(updated: …)" stamp sitting
   right beside it (mirrors ChatUC's "📍 Place:" row). Wraps on narrow screens. */
.dash-place-btn-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}
.dash-place-btn-row .qm-place-updated { white-space: nowrap; }

/* Floating "active check-in" badge (Site.Master) — shown site-wide while the user
   has a live check-in. Green = active; amber + faster pulse = about to time out
   (within 30 min of "here until"). Tapping opens the "Still here?" confirm. Sits
   top-LEFT (moved 2026-06-25) to stay clear of LiveChat's bottom composer and the
   OneSignal bell / back-to-top (bottom-right). */
.here-badge {
    position: fixed;
    right: 1rem;
    top: 4.5rem;
    z-index: 1500;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 70vw;
    padding: 0.5rem 0.9rem;
    border: 0;
    border-radius: 999px;
    background: var(--color-success, #2e7d32);
    color: #fff;
    font-weight: 600;
    font-size: var(--font-size-sm);
    line-height: 1.2;
    box-shadow: var(--shadow-lg);
    cursor: pointer;
}
.here-badge:hover { filter: brightness(1.08); }
.here-badge:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.here-badge-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.here-badge-pin { animation: herePulse 2.4s ease-in-out infinite; }
.here-badge.here-badge-expiring { background: var(--color-warning, #e65100); }
.here-badge.here-badge-expiring .here-badge-pin { animation-duration: 0.9s; }
@keyframes herePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } }
@media (prefers-reduced-motion: reduce) {
    .here-badge-pin { animation: none; }
}
/* On phones (hamburger-nav mode, <992px) the floating badge moves UP into the
   nav bar, centered horizontally between the brand and the hamburger toggle,
   rather than floating below the header on the right. Capped narrower (50vw)
   so a long place name ellipsizes before it can crowd the brand/toggle. */
@media (max-width: 991px) {
    .here-badge {
        top: calc(env(safe-area-inset-top, 0px) + 0.5rem);
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        max-width: 50vw;
        padding: 0.35rem 0.7rem;
    }
}

/* ── Contacts-at-a-Place: notification-bar pill + shared popover ──
   Surfaces the viewer's MUTUAL contacts who are currently checked in somewhere
   (powered by ChatBarStatus.ashx). The notification-bar 📍 pill opens the popover.
   (The floating 👋 badge that also opened it was removed 2026-06-25.) */
.chatbar-places {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: 0.5rem;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
    font-weight: 700;
    font-size: var(--font-size-sm);
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    vertical-align: middle;
}
.chatbar-places:hover { background: rgba(255, 255, 255, 0.30); }
.chatbar-places .cap-pin { font-size: 0.95em; }
.chatbar-places .cap-count { min-width: 0.8em; text-align: center; }

/* Popover anchored top-left, just under the check-in badge (the 📍 pill that opens
   it lives in the notification bar near the top of the page). */
.cap-popover {
    position: fixed;
    left: 1rem;
    top: 8rem;
    z-index: 1600;
    width: min(22rem, 92vw);
    max-height: 60vh;
    overflow-y: auto;
    background: var(--color-bg-card, #fff);
    color: var(--color-text, #222);
    border: 1px solid var(--color-border, #ddd);
    border-radius: var(--radius-lg, 12px);
    box-shadow: var(--shadow-lg);
    padding: 0.6rem 0.75rem;
}
.cap-popover-head {
    font-weight: 700;
    margin-bottom: 0.4rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--color-border, #eee);
}
.cap-popover-head .note { font-weight: 400; }
.cap-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--color-border-subtle, #f0f0f0);
    font-size: var(--font-size-sm);
}
.cap-item:last-child { border-bottom: 0; }
.cap-item .cap-who { font-weight: 600; }
.cap-item .cap-where { color: var(--color-text-muted, #666); }
.cap-item .cap-when { color: var(--color-text-muted, #999); }
.cap-item a.link { margin-left: auto; white-space: nowrap; }

/* Check-In card tweaks:
   • Comments box matches the dropdowns' full width (the shared
     .form-group .textbox 480px desktop cap otherwise made it narrower).
   • Pull the "I'm Here Now" button up so there's no empty gap above it. */
#card-checkin .form-group textarea.textbox { max-width: none; }
#card-checkin .form-group:last-of-type { margin-bottom: 0.35rem; }

/* GPS check-in — "Use my location" detect button, status, and result list */
.dash-detect {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
}
.dash-detect #detectStatus { margin: 0; }
#btnDetectLocation.is-busy { opacity: 0.6; cursor: progress; }

.dash-detect-results {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.dash-detect-item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.65rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 8px);
    cursor: pointer;
    font: inherit;
    color: inherit;
    transition: background 0.12s ease, border-color 0.12s ease;
}
.dash-detect-item:hover,
.dash-detect-item:focus-visible {
    background: var(--color-bg-hover, rgba(0, 0, 0, 0.04));
    border-color: var(--color-primary, #4a90d9);
    outline: none;
}
.dash-detect-name { font-weight: 600; }
.dash-detect-meta { font-size: var(--font-size-sm); color: var(--color-text-muted); }

/* Actionable help shown when geolocation is denied/unavailable */
.dash-detect-help {
    padding: 0.6rem 0.75rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-warning, #e0a800);
    border-radius: var(--radius-md, 8px);
    font-size: var(--font-size-sm);
}
.dash-detect-help ul { margin: 0 0 0.5rem; padding-left: 1.2rem; }
.dash-detect-help li { margin-bottom: 0.3rem; }
.dash-detect-retry { margin-top: 0.1rem; }

/* Search pages (EventSearch / GroupSearch / MemberSearch) */
.search-toggle-row     { margin-bottom: 0.5rem; }
.search-card           { margin-top: 0.5rem; }
.search-footer-actions { margin-top: 1rem; }
.input-clearable-grow  { flex: 1 1 200px; }
.search-results-count  { display: block; margin: 0.75rem 0 0.25rem; }

/* EventSearch "Hide Categories" preference — a wrapping list of category
   checkboxes inside a <details>. RepeatLayout="UnorderedList" keeps each
   checkbox glued to its label inside one <li> chip; the <ul> flex-wraps. */
.hide-cat-details           { margin-top: 0.25rem; }
.hide-cat-summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
    user-select: none;
    color: var(--color-primary, #0090C8);   /* link-like, so it reads as clickable */
    list-style: none;                        /* drop the default ▸ marker (most browsers) */
}
.hide-cat-summary::-webkit-details-marker { display: none; }      /* …and on WebKit/Blink */
.hide-cat-summary:hover .hide-cat-summary-text { text-decoration: underline; }
.hide-cat-caret {
    display: inline-block;
    font-size: 0.8em;
    transition: transform 0.15s ease;
}
.hide-cat-details[open] .hide-cat-caret { transform: rotate(90deg); }
.hide-cat-hint              { font-style: italic; font-weight: 400; }
.hide-cat-details[open] .hide-cat-hint { display: none; }   /* hint only while collapsed */
.hide-cat-count             { margin-left: 0; font-weight: 400; }
ul.hide-cat-list {
    list-style: none;
    padding: 0;
    margin: 0.35rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.85rem;
}
.hide-cat-list li {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 40px;
}
.hide-cat-list input[type="checkbox"] {
    width: 1.05rem;
    height: 1.05rem;
    min-width: 1.05rem;
    accent-color: var(--color-primary, #0090C8);
    cursor: pointer;
}
.hide-cat-list label { cursor: pointer; white-space: nowrap; }
/* EventSearch2: the Hide Categories block sits full-width below the filter grid. */
.es2-hide-cats { margin-top: 0.25rem; padding-top: 0.6rem; border-top: 1px solid var(--color-border, #e0e0e0); }

/* EventSearch "Manage Keyword Lists" — per-user named keyword lists, each edited as a
   Name + Keywords row. The disclosure chrome mirrors the Hide Categories block above. */
.es2-kw-lists { margin-top: 0.25rem; padding-top: 0.6rem; border-top: 1px solid var(--color-border, #e0e0e0); }
.kw-list-details { margin-top: 0.25rem; }
.kw-list-summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
    user-select: none;
    color: var(--color-primary, #0090C8);   /* link-like, so it reads as clickable */
    list-style: none;
}
.kw-list-summary::-webkit-details-marker { display: none; }
.kw-list-summary:hover .kw-list-summary-text { text-decoration: underline; }
.kw-list-caret { display: inline-block; font-size: 0.8em; transition: transform 0.15s ease; }
.kw-list-details[open] .kw-list-caret { transform: rotate(90deg); }
.kw-list-hint { font-style: italic; font-weight: 400; }
.kw-list-details[open] .kw-list-hint { display: none; }   /* hint only while collapsed */
.kw-list-count { margin-left: 0; font-weight: 400; }

/* Editor: a vertical stack of bordered list "cards", each = Name (+ × remove) + Keywords. */
.kw-editor { display: flex; flex-direction: column; gap: 0.6rem; margin: 0.5rem 0; }
.kw-row {
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: var(--radius, 8px);
    background: var(--color-bg, #fff);
    padding: 0.55rem 0.6rem 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.kw-field { display: flex; flex-direction: column; gap: 0.2rem; }
.kw-field-label { margin: 0; font-weight: 600; }
.kw-row .textbox { width: 100%; }
.kw-name-row { display: flex; align-items: center; gap: 0.4rem; }
.kw-name-row .kw-name { flex: 1 1 auto; min-width: 0; }
.kw-remove {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    line-height: 1;
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-dim, #777);
    font-size: 1.25rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.kw-remove:hover { border-color: var(--color-danger, #c0392b); color: var(--color-danger, #c0392b); }
.kw-add { margin-top: 0.25rem; }
.kw-empty { margin: 0.4rem 0; }

/* Location row(s) — multiple city/state/country triples on EventSearch */
.loc-rows { margin-bottom: 0.25rem; }
.loc-row {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 0.25rem;
    align-items: center;
    flex-wrap: wrap;
}
/* Each .loc-* input now sits inside an .input-clearable wrapper (in-field × clear
   button), so the row's flex sizing rides on the wrappers; the input fills its wrapper. */
.loc-row .loc-field-city    { flex: 2; min-width: 120px; }
.loc-row .loc-field-state   { flex: 1; min-width: 80px; }
.loc-row .loc-field-country { flex: 1; min-width: 90px; }
.loc-row .input-clearable .textbox { width: 100%; min-width: 0; }

/* SimilarEvents (under construction) */
.similar-events-card { max-width: 560px; margin: 0 auto; }

/* GroupDetails — join/leave row beneath the group card */
.group-join-actions { margin-top: 0.5rem; }

/* ContactUs host cards (page wraps the ContactUs.ascx control) */
.contactus-card { max-width: 800px; }

/* ContactUs file picker — wraps a visually-hidden <input type="file"> with a
   labeled button so the upload UI is obvious. JS in ContactUs.ascx updates
   the file-count span. Mirrors PacklistPRO. */

/* Invite.ascx layout (QR + recipient form) */
.invite-card      { max-width: 480px; margin: 0 auto; text-align: center; }
.invite-qr        { width: 100%; max-width: 320px; height: auto; }
.invite-recipient { text-align: left; margin-top: 0.5rem; }
/* "Or share this link" row — read-only URL grows, Copy button sits beside it
   (wraps below on narrow screens). Mirrors PacklistPRO's Invite layout. */
.invite-link-row  { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.invite-link-row .textbox { flex: 1 1 16rem; min-width: 0; }

/* FeedbackSent — post-Contact-Us confirmation card */
.feedback-sent-card { max-width: 560px; margin: 1rem auto; text-align: center; }

/* ViewFeedback (admin) — filter column flex sizing */
.viewfeedback-filter { flex: 1 1 200px; margin-bottom: 0; }

/* ShortenURL (admin tool) */
.shorten-url-card { max-width: 640px; margin: 0 auto; }

/* offline.html — PWA offline fallback page */
.offline-card { max-width: 600px; margin: 3rem auto; text-align: center; }

/* About page — feature bullet list (replaces legacy table-based bullets) */
.about-bullets {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem 0;
}
.about-bullets > li {
    position: relative;
    padding: 0.35rem 0 0.35rem 1.5rem;
    line-height: var(--line-height);
}
.about-bullets > li::before {
    content: "•";
    position: absolute;
    left: 0.25rem;
    top: 0.35rem;
    color: var(--color-accent);
    font-weight: var(--font-weight-bold);
    font-size: 1.1em;
}
.about-sub {
    margin: 0.4rem 0 0;
    color: var(--color-text-muted);
}
.about-footer { margin-top: 1.25rem; }

/* Status badge — inline state indicator. Used for event/group approval state
   on ManageEvent / ManageGroup, and for membership state on EventDetails.
   Replaces the legacy inline `lbl.BackColor = Color.Red/Yellow/Transparent`
   pattern from code-behind. */
.status-badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: var(--border-radius-sm);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
}
.status-badge--pending   { background-color: var(--color-warning); color: #fff; }
.status-badge--rejected  { background-color: var(--color-danger);  color: #fff; }
.status-badge--approved  { background-color: var(--color-success); color: #fff; }
.status-badge--neutral   { background-color: transparent; color: var(--color-text); }

/* Required fields carry no border highlight — the red "*" asterisk
   (.required-star) plus the server-side RequiredFieldValidators are the cue.
   The legacy magenta outline was removed site-wide at the user's request.
   The .required class can stay on inputs harmlessly (no rule targets it). */

/* User profile (User.aspx) — profile-pic + availability layout */
.profile-pic-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.25rem 0 0.5rem 0;
}
.profile-pic-preview {
    display: block;
    width: 160px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    margin-top: 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.availability-grid {
    border-collapse: separate;
    border-spacing: 0.35rem 0.25rem;
    margin: 0.5rem 0 0;
}
.availability-grid td {
    vertical-align: middle;
    padding: 0;
}
.availability-grid .availability-time {
    display: inline-block;
    width: 110px;
    min-width: 0;
}

/* ManageEvent recurring-days — 7 day-of-week checkboxes arranged as a wrap row */
.recurring-days {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-top: 0.25rem;
}
.recurring-days .checkbox {
    flex: 0 0 auto;
}

/* Interests.aspx — back/forward pagination row above the interest panels */
.interests-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 1rem;
}
.interests-pagination .button { min-width: 4rem; }
.interests-pagination__index { width: 4rem !important; text-align: center; }
.interests-pagination__rows  { width: 5rem !important; text-align: center; }

/* Subscribe (push notifications) — state-card layout */
.subscribe-card           { max-width: 480px; margin: 0 auto; text-align: center; }
.subscribe-state-hidden   { display: none; }
.subscribe-loading        { color: var(--color-text-light); }
.subscribe-icon           { font-size: 2.25rem; font-weight: bold; }
.subscribe-icon-ok        { color: var(--color-success); }
.subscribe-icon-err       { color: var(--color-danger); }
.subscribe-headline       { font-weight: bold; margin: 0.75rem 0 0.4rem; }
.subscribe-headline-ok    { color: var(--color-success); }
.subscribe-headline-err   { color: var(--color-danger); }
.subscribe-btn            { min-width: 200px; }
.subscribe-result         { display: block; margin-top: 0.75rem; min-height: 1.2em; }
.subscribe-unsubscribe-row { margin-top: 1.25rem; }
.subscribe-unsubscribe    { font-size: var(--font-size-sm); color: var(--color-text-light); }

/* Subscription-details card on the "subscribed" state — small readout so
   the user (or support staff) can verify the OneSignal wire-up is sane
   without dropping into devtools. Populated by JS on SDK ready. */
.subscribe-details-table td { padding: 0.2rem 0.4rem; vertical-align: top; }
.subscribe-denied-blurb   { margin-bottom: 1rem; }
.subscribe-denied-list {
    text-align: left;
    color: var(--color-text);
    font-size: var(--font-size-sm);
    margin: 0 auto 1.25rem;
    max-width: 360px;
    line-height: 1.8;
}
.subscribe-prompt         { margin: 0.75rem 0 1.25rem; }

/* ContactUs.ascx — "prove you're human" captcha block */
.captcha-card {
    background: var(--color-bg);
    text-align: center;
    margin-top: 1rem;
}
.captcha-prompt   { margin-bottom: 0.5rem; }
.captcha-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.captcha-problem  { margin: 0; color: var(--color-accent); }
.captcha-answer   { max-width: 80px; display: inline-block; }

/* PublicProfile — action row + interest legend */
.profile-actions    { margin-top: 0.5rem; }
.interest-legend    { margin-top: 0.75rem; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }

/* PopularInterests — ranked table layout */
.popular-interests-table {
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    border-collapse: collapse;
}
.popular-interests-table td {
    padding: 0.25rem 0.5rem;
    border-bottom: 1px solid var(--color-border);
}
.popular-interests-count {
    text-align: right;
    color: var(--color-accent-dark);
    font-weight: var(--font-weight-bold);
    width: 4rem;
}

/* Client-side list filter (PopularInterests, Updates) — centered above the list. */
.popular-interests-filter,
.updates-filter {
    max-width: 480px;
    margin: 0 auto 0.75rem;
}

/* ManageEventMembers — bulk-add results readout */
.bulk-add-results { display: block; margin-top: 0.5rem; }

/* ManageEvent / ManageGroup — pinned save bar at bottom of the page */
.sticky-save-bar {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.5rem;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background-color: var(--color-bg-card);
    border-top: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    z-index: 100;
    max-width: 100%;
    flex-wrap: wrap;
}

/* MemberSearch — age-range row */
.member-search-card { max-width: 560px; margin: 0 auto; }
.member-age-row     { display: flex; align-items: center; gap: 0.5rem; }
.member-age-box     { width: 5rem; text-align: center; }

/* "Me" account-hub: stacked button list */
.me-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.me-actions .button { width: 100%; text-align: left; }

/* qMEET logo wordmark — used by Login, Join, etc. */
.logo-wordmark {
    text-align: center;
    margin: 0.25rem 0 1rem;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    font-size: 2rem;
    line-height: 1;
}
.logo-q     { color: var(--color-accent); }
.logo-meet  { color: var(--color-text); }
[data-theme="dark"] .logo-meet { color: var(--color-text); }
/* The wordmark is now wrapped in an anchor so it's clickable on Login/Join.
   Strip the default text-decoration and let the hover ring carry feedback. */
.logo-link:focus-visible { outline: 3px solid var(--color-border-focus); outline-offset: 4px; border-radius: 4px; }

/* Admin.aspx — vertical button stack with logical groups.
   Each button stretches full-width; gaps are uniform rather than the legacy
   `Width="98%"` + `<br /><br />` pattern. */
.admin-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.admin-action-btn { width: 100%; text-align: left; }

/* ── Admin2.aspx — PacklistPRO-look admin console ───────────────────────────
   Collapsible cards reuse .dash2-card (chevron, count badge, toolbar); queue
   items reuse .result-card (state-colored left border). This block only adds
   the pending-review stat strip, the queue-item anchor reset, the action grid,
   and the destructive-card accent. */
.admin2-quicknav { margin: 0 0 1.25rem; }

/* Pending-review stat strip */
.admin2-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0 0 1.25rem;
}
.admin2-stat {
    flex: 1 1 7rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.7rem 0.9rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    text-decoration: none;
    color: var(--color-text);
    transition: box-shadow var(--transition-fast, .15s) ease, transform var(--transition-fast, .15s) ease;
}
.admin2-stat:hover,
.admin2-stat:focus-visible {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
    text-decoration: none;
}
.admin2-stat-icon { font-size: 1.15rem; line-height: 1; }
.admin2-stat-num {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    line-height: 1.1;
    color: var(--color-accent);
    font-variant-numeric: tabular-nums;
}
.admin2-stat-num.is-zero { color: var(--color-text-light); }
.admin2-stat-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* Queue toolbar: dropdown on the left, search row grows to fill */
.admin2-queue-toolbar { justify-content: space-between; }
.admin2-queue-search { flex: 1 1 16rem; margin: 0; }

/* Queue items — built on .result-card, but the whole card is one anchor */
a.admin2-qitem {
    display: block;
    text-decoration: none;
    transition: box-shadow var(--transition-fast, .15s) ease, transform var(--transition-fast, .15s) ease;
}
a.admin2-qitem:hover,
a.admin2-qitem:focus-visible {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}
.admin2-queue-list { margin-top: 0.25rem; }

/* Action grid — button + one-line description per row */
.admin2-action-grid {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.admin2-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
}
.admin2-action .button { margin: 0; }
.admin2-action-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

/* Destructive card — red left edge + red title so it reads as dangerous */
.admin2-card-danger { border-left: 4px solid var(--color-danger); }
.admin2-card-danger > summary.card-title .dash2-card-name { color: var(--color-danger); }

/* Approval cards sit at the top when an item is selected for review */
.admin2-approve { margin-bottom: var(--section-gap, 1.5rem); }

/* Updates change-log — simple dated entries */
.updates-card  { max-width: 760px; margin: 0 auto; }
.updates-list  { list-style: none; margin: 0; padding: 0; }
.updates-item  {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px dashed var(--color-border);
}
.updates-item:last-child { border-bottom: 0; }
.updates-date  {
    flex: 0 0 auto;
    min-width: 5.5rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-accent-dark);
}
.updates-body  { flex: 1 1 auto; color: var(--color-text); }
@media (max-width: 480px) {
    .updates-item { flex-direction: column; gap: 0.15rem; }
    .updates-date { min-width: 0; }
}

/* Help.aspx — 8-step recovery checklist. Numbered list with accent-colored
   markers and a bit of breathing room between steps. Mirrors PacklistPRO. */

/* Changes.aspx — release notes table groupings + pager. Mirrors PacklistPRO. */

/* TypingSpeed.aspx — full-viewport textarea + live WPM readout. Personal scratchpad
   for a small allowlist of UserIDs; the readout uses the standard chars/5 ÷ minutes
   typing-test convention. The `width:100vw + margin-left:calc(50% - 50vw)` trick
   lets the page break out of `.page-wrapper`'s 1200px max-width to fill the viewport
   edge-to-edge without restructuring the master page. */
.typing-speed-page {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0.25rem 0.5rem 0.5rem;
    box-sizing: border-box;
    /* Fill the remaining viewport: viewport height minus nav (~56px) and a small
       footer cushion. Calc fallback in case --nav-height isn't defined. */
    min-height: calc(100vh - var(--nav-height, 56px) - 1rem);
}
.typing-speed-bar      { display: flex; align-items: center; gap: 1rem; padding: 0.25rem 0; flex-wrap: wrap; }
.typing-speed-stat     { display: flex; align-items: baseline; gap: 0.5rem; }
.typing-speed-value    { font-size: 3rem; font-weight: 700; color: var(--color-accent); line-height: 1; min-width: 4ch; }
.typing-speed-label    { font-size: 1rem; color: var(--color-text-muted); letter-spacing: 0.05em; text-transform: uppercase; }
.typing-speed-meta     { font-size: 0.95rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
/* Reset button anchored to the upper-right corner of the page so it stays out
   of the WPM/meta cluster regardless of viewport width. */
.typing-speed-reset    { position: absolute; top: 0.25rem; right: 0.5rem; z-index: 2; }
.typing-speed-textarea {
    flex: 1 1 auto;
    width: 100%;
    /* Fill the rest of the viewport below the bar. */
    min-height: calc(100vh - var(--nav-height, 56px) - 6rem);
    font-size: 1.75rem;
    line-height: 1.55;
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    background: var(--color-bg, #fff);
    color: var(--color-text);
    font-family: inherit;
    resize: none;
    box-sizing: border-box;
}
.typing-speed-textarea:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* ── TypingSpeed2.aspx — PLP-look typing test ──────────────────────────────
   Redesign of TypingSpeed.aspx. A focused "test" card (passage with live
   per-character highlighting + stat tiles + results) plus a "free type"
   scratchpad mode that preserves the original behavior. Every color comes
   from a design token, so dark mode falls out of the cascade for free. */

/* Controls row: mode/limit pills + action buttons. */
.ts2-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 1rem;
}
.ts2-pillgroup {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.ts2-pillgroup-label {
    font-size: var(--font-size-xs, 0.75rem);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-right: 0.1rem;
}
.ts2-controls-spacer { flex: 1 1 auto; }

/* Mode visibility is driven entirely by the card's data-mode attribute. */
.ts2-card[data-mode="test"] .ts2-free-only { display: none; }
.ts2-card[data-mode="free"] .ts2-test-only { display: none; }

/* Personal best line. */
.ts2-best { margin: 0 0 1rem; font-size: var(--font-size-sm, 0.875rem); }
.ts2-best strong { color: var(--color-accent); }

/* Live stat tiles. */
.ts2-stats { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1.1rem; }
.ts2-stat {
    flex: 1 1 5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.7rem 0.5rem;
    background: var(--color-bg, #f5f7fa);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius, 10px);
    text-align: center;
}
.ts2-stat.is-primary {
    flex-basis: 7rem;
    background: var(--color-accent-light, #e0f6fe);
    border-color: var(--color-accent, #00B0F0);
}
.ts2-stat-value {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-text);
    font-variant-numeric: tabular-nums;
}
.ts2-stat.is-primary .ts2-stat-value { font-size: 2.4rem; color: var(--color-accent, #00B0F0); }
.ts2-stat-unit { font-size: 0.6em; font-weight: 600; }
.ts2-stat-label {
    font-size: var(--font-size-xs, 0.75rem);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

/* Typing surface (test mode) — the real input is visually hidden; the passage
   is what the user reads, with per-character highlighting. */
.ts2-surface {
    position: relative;
    cursor: text;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius, 10px);
    background: var(--color-bg-card, #fff);
    padding: 1.1rem 1.25rem;
    transition: border-color var(--transition-fast, 0.15s ease),
                box-shadow var(--transition-fast, 0.15s ease);
}
.ts2-card.is-focused .ts2-surface {
    border-color: var(--color-accent, #00B0F0);
    box-shadow: var(--shadow-focus-ring, 0 0 0 3px rgba(0, 176, 240, 0.25));
}
.ts2-passage {
    font-size: 1.5rem;
    line-height: 1.9;
    letter-spacing: 0.01em;
    color: var(--color-text-light, #9aa0a8);   /* untyped text is dim */
    white-space: pre-wrap;
    word-break: break-word;
    font-family: var(--font-family);
}
.ts2-passage span { transition: color 0.05s linear; }
.ts2-passage span.is-correct   { color: var(--color-success, #2e7d32); }
.ts2-passage span.is-incorrect { color: var(--color-danger, #c62828); }
.ts2-passage span.is-incorrect.ts2-sp { background: var(--color-danger-bg, #ffebee); border-radius: 2px; }
.ts2-passage span.is-current {
    color: var(--color-text);
    border-left: 2px solid var(--color-accent, #00B0F0);
    margin-left: -2px;
    animation: ts2Caret 1s steps(1) infinite;
}
@keyframes ts2Caret { 50% { border-left-color: transparent; } }

/* Visually hide the real input but keep it focusable & in flow so mobile
   keyboards open and focus/blur events fire. */
.ts2-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    opacity: 0;
}
/* Subtle "click & type" affordance — a small pill, not an obscuring overlay. */
.ts2-idle {
    position: absolute;
    bottom: 0.5rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.2rem 0.75rem;
    background: var(--color-accent, #00B0F0);
    color: #fff;
    font-size: var(--font-size-xs, 0.75rem);
    border-radius: 999px;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.1));
}

/* Free-type textarea (original scratchpad behavior). */
.ts2-freetext {
    width: 100%;
    min-height: 14rem;
    font-size: 1.4rem;
    line-height: 1.6;
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius, 10px);
    background: var(--color-bg-card, #fff);
    color: var(--color-text);
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
}
.ts2-freetext:focus {
    outline: none;
    border-color: var(--color-accent, #00B0F0);
    box-shadow: var(--shadow-focus-ring, 0 0 0 3px rgba(0, 176, 240, 0.25));
}
.ts2-foot-hint { margin-top: 0.85rem; }

/* Results card. */
.ts2-results { text-align: center; }
.ts2-newbest { color: var(--color-success, #2e7d32); font-weight: 700; margin: 0.25rem 0 0.5rem; }
.ts2-result-hero { display: flex; flex-direction: column; align-items: center; margin: 0.5rem 0 1.25rem; }
.ts2-result-wpm {
    font-size: 4rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-accent, #00B0F0);
    font-variant-numeric: tabular-nums;
}
.ts2-result-wpm-label {
    margin-top: 0.25rem;
    font-size: var(--font-size-sm, 0.875rem);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
}
.ts2-result-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}
.ts2-result-item {
    padding: 0.6rem 0.4rem;
    background: var(--color-bg, #f5f7fa);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius, 10px);
}
.ts2-result-val {
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--color-text);
    font-variant-numeric: tabular-nums;
}
.ts2-result-key {
    display: block;
    font-size: var(--font-size-xs, 0.75rem);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}
.ts2-results .form-actions { justify-content: center; }

@media (max-width: 575px) {
    .ts2-passage { font-size: 1.25rem; line-height: 1.8; }
    .ts2-stat.is-primary .ts2-stat-value { font-size: 1.9rem; }
    .ts2-result-grid { grid-template-columns: repeat(2, 1fr); }
    .ts2-result-wpm { font-size: 3rem; }
}
@media (prefers-reduced-motion: reduce) {
    .ts2-passage span.is-current { animation: none; }
}

/* ── Contact Us Viewer / Status (PacklistPRO-mirrored) ────────────────────
   Used by ContactUsStatus.aspx today; future ContactUsViewer port will reuse
   the same primitives. */

/* Clickable rows in the submissions table. */

/* Status pill */

/* Dark-mode overrides for badges not keyed to a CSS variable. */

/* Read-only info bar inside the detail card (Submitted / Type / Status row). */

/* Detail card layout — close button + sectioned reveals. */
.cus-reply-date { margin-bottom: 0.25rem; }

/* Chat composer textbox (ChatUC's tbMessage with class="chat-compose").
   Force black text on a white background regardless of theme — the textarea
   sits inside a dark-themed chat panel where inherited text color reads white,
   and the page's `color-scheme: light dark` meta lets browsers render native
   form-control text in white under dark mode too. Pin both for legibility. */
textarea.chat-compose,
.chat-compose {
    color: #000 !important;
    background-color: #fff !important;
    color-scheme: light;          /* keep native scrollbar / selection light too */
    caret-color: #000;
}
textarea.chat-compose::placeholder,
.chat-compose::placeholder        { color: #6b6b6b !important; }
/* Selection color matches the default button background (accent/primary) so
   highlighted text in the composer reads as part of the site's color system,
   not the OS default (which on Windows is a muddy blue that fights with our
   forced white background). */
textarea.chat-compose::selection,
.chat-compose::selection {
    background-color: var(--color-primary);
    color: #fff;
}
textarea.chat-compose::-moz-selection,
.chat-compose::-moz-selection {
    background-color: var(--color-primary);
    color: #fff;
}

/* Dark-mode overrides — must use !important to beat the light-mode pins above */
[data-theme="dark"] textarea.chat-compose,
[data-theme="dark"] .chat-compose {
    color: #ffffff !important;
    background-color: var(--color-bg-input) !important;
    color-scheme: dark;
    caret-color: #fff;
    border-color: var(--color-border);
}
[data-theme="dark"] textarea.chat-compose::placeholder,
[data-theme="dark"] .chat-compose::placeholder { color: #888 !important; }

/* PWA install button — mirrors PacklistPRO's `.plp-install-btn` so users get
   the same floating bottom-right install prompt on supported browsers.
   Login.aspx is the only page that wires this up today (we surface it pre-
   auth so anonymous visitors can install before signing in). The button is
   created dynamically and only made visible when `beforeinstallprompt` fires
   (Chrome/Edge desktop + Android Chrome). Right-click dismisses for the
   session via sessionStorage. */

/* Session-expired / Unauthorized / Error standalone pages */
.standalone-card     { max-width: 520px; margin: 2rem auto; text-align: center; }
.error-detail {
    background:#f5f5f5;
    padding:1rem;
    border-radius:4px;
    overflow-x:auto;
    font-size:0.8rem;
    white-space:pre-wrap;
    word-break:break-word;
    max-height:400px;
    overflow-y:auto;
}
[data-theme="dark"] .error-detail { background:#2a2a2a; color:#e8eaed; }

/* ── Auto-resize textarea — disable manual handle when JS controls height ── */

/* ── Keyboard shortcuts overlay (built by site.js) ──────────────────────────
   Press '?' to open, '/' to focus search, 'g' then a letter for Gmail-style
   navigation (e.g. 'g d' = Dashboard). Closes on Esc, outside-click, or X. */
@media print {
}

/* ── Back-to-top floating button (ported from PacklistPRO parity) ───
   Bottom-right circular button that fades in after the user scrolls past
   400px. Smooth-scrolls to top on click. Also targeted by the footer
   "Back to top" link via #site-footer-top (site.js initBackToTop). */
@media print { .back-to-top { display: none !important; } }

/* ── On-this-page TOC floating button + overlay (PacklistPRO parity) ──
   Pages opt in via data-page-toc on a parent of the .card sections.
   site.js initPageTOC populates the list. Button sits left of back-to-top. */

.toc-link:hover,
@media print { .toc-btn, .toc-overlay { display: none !important; } }

/* ════════════════════════════════════════════════════════════════════
   CHAT UC STYLES — extracted from the ChatUC.ascx inline <style> block
   on 2026-05-20 so the ~330 lines aren't re-emitted on every render of
   EventDetails.aspx, GroupDetails.aspx, Chat.aspx. Now cached + parsed
   once via the CSS bundle.
   ════════════════════════════════════════════════════════════════════ */

/* ── Shadow tokens for chat UI ─────────────────────────────────── */
:root {
  --shadow-drawer:        -3px 0 10px rgba(0,0,0,0.35);
  --shadow-msg-card:       0 4px 7px  rgba(0,0,0,0.40);
  --shadow-msg-menu:       0 3px 7px  rgba(0,0,0,0.30);
  --shadow-view-select:    3px 3px 6px rgba(0,0,0,0.32);
  --shadow-member-dd:      5px 5px 10px rgba(0,0,0,0.25);
  --shadow-linkwhite:      1px 1px 3px rgba(0,0,0,0.32);
  --shadow-checkbox-ul:    2px 2px 5px rgba(0,0,0,0.32);
  --shadow-compose-top:        inset 0 6px 8px rgba(0,0,0,0.28);
  --shadow-compose-top-2:      inset 0 3px 4px rgba(0,0,0,0.18);
  --shadow-compose-left:       inset  2px 0 4px rgba(0,0,0,0.12);
  --shadow-compose-right:      inset -2px 0 4px rgba(0,0,0,0.12);
  --shadow-compose-highlight:  inset 0 -1px 0 rgba(255,255,255,0.95);
  --shadow-compose-outer:      0 2px 4px rgba(0,0,0,0.18);
  --shadow-compose-focus-ring: 0 0 0 2px rgba(0,176,240,0.50);
  --shadow-compose-focus-halo: 0 1px 5px rgba(0,176,240,0.45);
}

/* ── Options slide drawer ─────────────────────────────────── */
.chat-options-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:1040;display:none}
.chat-options-overlay.open{display:block}
.chat-options-drawer{position:fixed;top:0;right:-380px;width:360px;height:100%;background:var(--color-bg-card);color:var(--color-text);z-index:1050;overflow-y:auto;transition:right .25s ease;padding:10px 14px;box-shadow:var(--shadow-drawer);font-size:13px}
.chat-options-drawer.open{right:0}
.options-section{border-top:1px solid var(--color-border);padding:8px 0}
.options-section h5{margin:0 0 6px 0;font-size:13px;font-weight:bold;color:var(--color-text)}
.options-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}
.options-label{min-width:90px;font-size:12px;color:var(--color-text)}
.options-row .textbox{flex:1}

/* All chat checkboxes use the shared `.checkbox` class (defined in
   styles_shared.css) — a white-bg appearance:none box with the accent-color
   border and a blue check-fill when checked. No per-option custom styling. */

/* ── RT (real-time) check pulse ────────────────────────────────────
   The "RT" label gently pulses green each time an auto-refresh poll reloads
   the message list (class added by the realtime poller in ChatUC.ascx, applied
   to the <label>, not the appearance:none checkbox box — scale/glow on the box
   itself didn't render visibly). The colour shift is the always-visible signal;
   the gentle scale-up + text glow add emphasis while staying slow and smooth,
   not a flash. Additive + uniquely-named — touches no existing rule. */
@keyframes rtPulse {
  0%   { color: var(--color-primary, #0090C8); transform: scale(1); }
  50%  { color: #28a745; text-shadow: 0 0 8px rgba(40,167,69,0.7); transform: scale(1.35); }
  100% { color: var(--color-primary, #0090C8); transform: scale(1); }
}
/* `!important` defeats Bootstrap's prefers-reduced-motion reset
   (`*,*::before,*::after { animation-duration:.01ms!important }`), which
   otherwise zeroes this pulse to ~0ms — completing instantly/invisibly — on
   devices that have "reduce motion" enabled. .rt-pulse's class specificity
   already beats the `*` selector, so the !important duration wins. This pulse
   is a deliberate, gentle status cue the user asked to always be visible. */
.rt-pulse { animation: rtPulse 1.2s ease-in-out !important; transform-origin: center; display: inline-block; }

/* ── "Live" auto-refresh toggle pill ───────────────────────────────
   Replaced the cbRealtime "LIVE" checkbox (2026-06-23). First pill in the chat
   pills row; a tap flips the 30s realtime auto-refresh (qmeetToggleLive). OFF =
   the plain outline pill (the .pill.pill.small toolbar override below); ON =
   bright-green (#00ff00) fill.
   The ON selector DOUBLES .chat-live-on to reach (0,4,0) so it beats BOTH the
   qMeet `.pill.pill.small` transparent toolbar override (0,3,0, defined LATER —
   was winning the resting state on source order, so the green only showed on
   :hover) AND the shared `.pill[aria-pressed="true"]` blue active style (0,2,0,
   set because the pill carries aria-pressed for a11y). Same doubled-modifier
   trick the .chat-status-set pill below uses; :hover/:focus pinned so
   .pill:hover can't swap the green back to the outline look. */
.chat-live-pill { color: var(--color-primary, #0090C8); }
.pill.chat-live-pill.chat-live-on.chat-live-on,
.pill.chat-live-pill.chat-live-on.chat-live-on:hover,
.pill.chat-live-pill.chat-live-on.chat-live-on:focus {
  background-color: #00ff00;
  border-color: #00ff00;
  color: #000;
  font-weight: 600;
}

/* ── Options drawer header layout ─────────────────────────── */
.opt-drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.opt-drawer-title{font-size:14px;letter-spacing:.05em;color:var(--color-text)}
.opt-drawer-close{background:transparent;border:none;color:var(--color-text-muted);font-size:22px;font-weight:bold;line-height:1;cursor:pointer;padding:0 6px}

/* Send Options section — 3-column grid layout for the 5 send-flag checkboxes
   (NOTIFY / URGENT / PIN / SAVE / Hi-Res). Replaces the older colored .opt-pill
   wrapper design. */
.send-options-grid{display:grid;grid-template-columns:repeat(3,auto);gap:4px 12px;justify-content:start}
/* Send-flag chips as TOGGLE pills (2026-06-25) — each flag is an outline chip when OFF and
   fills with its colour when its inner checkbox is CHECKED, so active send flags read at a
   glance (same idea as the "Live" pill above). The checked fill colours still match each
   flag's Post-button colour (orange notify / magenta urgent / cyan pin / yellow save / grey
   hi-res). Driven by :has(input:checked) on the wrapper span; the label inherits the chip
   colour. Self-contained fg/bg so it stays legible in both light and dark themes. */
.send-options-grid .cb-row { border:1.5px solid; border-radius:5px; padding:2px 8px; background:transparent; cursor:pointer; transition:background-color .12s,color .12s; }
.send-options-grid .cb-row .input-label { color:inherit; cursor:pointer; }
.cb-notify { border-color:#fd7e14; color:#c85e00; }
.cb-urgent { border-color:#ff00ff; color:#b300b3; }
.cb-pin    { border-color:#00b3b3; color:#008b8b; }
.cb-save   { border-color:#d4b106; color:#9a8200; }
.cb-hires  { border-color:#9aa0a6; color:#5f6368; }
.cb-notify:has(input:checked) { background:#fd7e14; border-color:#fd7e14; color:#fff; }
.cb-urgent:has(input:checked) { background:#ff00ff; border-color:#ff00ff; color:#fff; }
.cb-pin:has(input:checked)    { background:cyan;    border-color:cyan;    color:#000; }
.cb-save:has(input:checked)   { background:yellow;  border-color:yellow;  color:#000; }
.cb-hires:has(input:checked)  { background:#d0d0d0; border-color:#d0d0d0; color:#000; }

/* Thin cluster labels inside the Options drawer (Actions section's Broadcast /
   Upload files / Recent message sub-rows). Quiet uppercase captions that separate
   the grouped button rows without adding visual weight. */
.options-subhead { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); margin:8px 0 3px; }
.options-subhead:first-of-type { margin-top:2px; }

/* ── ChatUC layout helpers ─ */
/* !important on .chat-hidden so this utility hide-class beats .button (defined in
   styles_shared.css with display:inline-flex, loaded AFTER this file via Bundle.config —
   same specificity, later rule normally wins). Without !important the class silently
   does nothing on any element that also has the .button class.
   `.chat-hidden`, `.chat-pad-left-4`, `.chat-margin-3`, `.bold`, and `.upload-progress-text`
   are also redeclared in the ChatUC2 block lower in this file and the later rule wins —
   the earlier ones were removed. `.chat-pad-row` keeps its `padding` here because the
   lower flex-row redeclaration doesn't carry that forward; same idea for `.cb-row`'s
   `white-space:nowrap` and `.tagchips-recent-hint`'s `margin-bottom`. */
.chat-pad-row         { padding:0 8px; }
.cb-row               { white-space:nowrap; }
.tagchips-recent-hint { margin-bottom:4px; }
/* Chat recipient dropdowns (ddlEvent/ddlGroup/ddlCategory/ddlInterest/ddlMember) —
   replaces inline Font-Bold/Width="100%" on five DropDownLists in ChatUC. */
.chat-recipient-select{ font-weight:bold; }
/* Post / low-priority post buttons — replaces inline Font-Bold/Font-Size/
   Height/Width on btnPost & btnPostLowPriority in ChatUC. */
.button.chat-post-btn { font-weight:bold; font-size:9pt; height:32px; width:50px; padding:0; min-width:0; }

/* "Sending…" state for the post buttons: added on click (qmeetDisablePost), removed on
   reload / PRM endRequest (qmeetReenablePostButtons). A thick white border marks it busy
   (no color inversion) without disabling it (disabling risks a stuck button if the postback hangs).
   Rendered as a box-shadow ring: !important + a ring (not a real border) so it wins over every
   button variant's own border, follows the rounded corners, and never shifts layout. */
.chat-post-sending { box-shadow: 0 0 0 4px #ffffff !important; cursor: progress; }

/* Optimistic "Sending…" toast — the instant you hit Post a GRAY toast rises at the
   top (the same toast element the green "Sent to …" confirmation uses), so it simply
   turns green when the async send lands. Replaced the old in-list pending bubble,
   which appeared at the far (bottom) end of the list from the top compose box. */
.chat-sending-mark { display:inline-flex; align-items:center; }
.chat-sending-spin  { width:.95em; height:.95em; border-width:.14em; margin-inline-end:.45em; }

/* Optimistic per-message action feedback (instant, before the postback re-renders the list).
   .chat-acting = state change (Pin/Save/Urgent) → brief dim acknowledge; .chat-removing =
   the message leaves the view (Delete/Hide/Reply+Hide/Unsend/Snooze) → fade + slight shrink.
   Both are transient — the server re-render replaces the card with its real state. */
.msg-card.chat-acting  { opacity: .5; pointer-events: none; transition: opacity .12s ease; }
.msg-card.chat-removing { opacity: 0; transform: scale(.96); pointer-events: none;
    transition: opacity .18s ease, transform .18s ease; }

/* "Working" affordance: dim + lock the message list while a re-rendering chat postback
   (recipient switch, view/sort, search, paging, options-apply) is in flight. */
.chat-list-loading { opacity: .45; pointer-events: none; transition: opacity .12s ease; }

/* ── Chat toast (Bootstrap toast with chat-specific layout) ─ */
.chat-toast-fixed     { z-index:1200; }
.chat-toast-el        { cursor:pointer; box-shadow:0 8px 28px rgba(0,0,0,0.85),0 2px 8px rgba(0,0,0,0.65); }
.chat-toast-body      { font-size:10pt; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ── My-status textbox (clear-button overlay) ───────────── */
.status-input-wrap    { position:relative; width:100%; }
.status-input         { padding-right:28px; box-sizing:border-box; }
.status-clear-btn     { position:absolute; right:4px; top:50%; transform:translateY(-50%); background:transparent; border:none; color:#888; font-weight:bold; font-size:14px; cursor:pointer; padding:0 6px; box-shadow:none; height:auto; line-height:1; }

/* ── Image lightbox (full-screen viewer for chat photos) ── */
.chat-lightbox        { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.92); z-index:2000; align-items:center; justify-content:center; flex-direction:column; }
.chat-lightbox.is-open{ display:flex; }
.chat-lb-close        { position:absolute; top:10px; right:16px; background:none; border:none; color:#fff; font-size:30px; cursor:pointer; line-height:1; padding:0; }
.chat-lb-img          { max-width:95vw; max-height:80vh; object-fit:contain; }
.chat-lb-counter      { color:#ccc; font-size:12px; margin-top:8px; }
.chat-lb-controls     { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:14px; }
.chat-lb-nav          { background:rgba(255,255,255,0.15); color:#fff; border:1px solid rgba(255,255,255,0.3); font-size:14pt; padding:6px 18px; }
.chat-lb-fullink      { color:#aaa; font-size:12px; text-decoration:underline; }

/* ── Realtime-checkbox helper text positioned under the checkbox ── */
.realtime-help        { font-size:11px; color:#666; margin-top:2px; margin-left:22px; }

/* ── Upload progress wrap margin (when shown by JS toggle) ── */
.upload-progress-wrap { margin-top:4px; }

/* ── Tag-modal recent-tag chips ─────────────────────────── */
.tag-chip { background:#17a2b8; color:#fff; cursor:pointer; font-size:9pt; border:none; }
.tag-chip:focus-visible { outline:2px solid #0d6efd; outline-offset:2px; }

/* ── Message cards ────────────────────────────────────────── */
.msg-card{border-top:1px solid #000;border-bottom:1px solid #000;padding:4px 14px 2px 14px;margin:0 8px 18px 8px;border-radius:10px;word-wrap:break-word;box-shadow:var(--shadow-msg-card);line-height:1.2;max-width:78%;box-sizing:border-box}
.msg-card.from-me  {margin:0 8px 18px auto}
.msg-card.from-them{margin:0 auto 18px 8px}
.msg-header{line-height:1.4;margin-bottom:2px}
.msg-sender{margin-right:3px;text-decoration:none}
.msg-time{margin-right:4px}
.msg-badge{font-size:8pt;padding:1px 5px;border-radius:3px;margin-right:2px;vertical-align:middle;border:1px solid rgba(0,0,0,0.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.15)}
.msg-badge-urgent {background:magenta; color:#fff;}
.msg-badge-pinned {background:cyan;    color:#000;}
.msg-badge-saved  {background:yellow;  color:#000;}
.msg-badge-notify {background:orange;  color:#000;}
.msg-badge-lowpri {background:#888;    color:#fff;}
.msg-badge-tag    {background:#17a2b8; color:#fff;}
.msg-badge-live   {background:#6f42c1; color:#fff;}
.msg-time-bold    {font-weight:bold;}
.msg-action-tag   {background:#17a2b8; color:#fff;}
.msg-body{margin:4px 0;line-height:1.2}
.msg-history{opacity:.75;border-left:3px solid currentColor;padding-left:8px;margin:6px 0 4px 0;line-height:1.3;font-style:italic}
.msg-actions{padding:4px 0 2px 0}
/* Even gap around each message action button so HIDE/REPLY+HIDE/⋯ etc.
   don't crowd each other. The ⋯ trigger is itself a .button nested inside
   .msg-menu-wrap, so it must NOT also carry the margin — otherwise the gap
   after ⋯ doubles (trigger margin + wrap margin) and reads wider than the
   gap between the plain buttons. Let the wrap own the spacing on that side. */
.msg-actions .button{margin:2px 5px}
.msg-actions .msg-menu-wrap{margin:2px 5px}
.msg-actions .msg-menu-wrap .button{margin:0}

/* ── Single Inbox ──────────────────────────────────────────────
   Flat mode: a "with <Name>" chip on each bubble names the conversation
   partner. Grouped mode: one collapsible card per partner. Colours use
   neutral rgba overlays + the primary accent so both Light & Dark read
   correctly without theme-specific vars. */
.inbox-with-chip{display:inline-block;font-size:8pt;font-weight:700;text-decoration:none;
  padding:1px 7px;border-radius:20px;margin-right:2px;vertical-align:middle;
  background:rgba(0,176,240,0.16);color:var(--color-primary,#0090C8);
  border:1px solid rgba(0,176,240,0.45)}
.inbox-with-chip:hover{background:rgba(0,176,240,0.28)}

.qmeet-thread{border:2px solid rgba(127,127,127,0.28);border-radius:12px;margin:8px;overflow:hidden;
  background:rgba(127,127,127,0.06);box-shadow:4px 4px 8px rgba(0,0,0,0.33)}
/* Same drop shadow on every button + pill on the page (4px down/right, 8px blur,
   33% black). `body`/`body .button.transparent` prefixes beat the shared .button
   and .button.transparent box-shadow rules that load after this file. Covers the
   transparent toolbar buttons (ALL, CC, X MSG, OPTIONS, LIVECHAT …) and the status
   pills (Status?, Archive, +Hidden …). Excludes buttons inside chat bubbles. */
body .button,
body .button.transparent,
body .button:hover,
body .button:focus-visible,
body .button:active,
body .pill{box-shadow:4px 4px 8px rgba(0,0,0,0.33)}
body .msg-card .button{box-shadow:none}
/* Each contact card is outlined in that contact's chosen color (set inline as --cc). */
.qmeet-thread[style*="--cc"]{border-color:var(--cc)}
.qmeet-thread-head{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;user-select:none}
.qmeet-thread-head:hover{background:rgba(127,127,127,0.10)}
.qmeet-av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;
  justify-content:center;font-weight:800;color:#04222b;font-size:14px;
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}
/* A recolorable sender name (1:1 received message): suppress text-selection/callout so
   double-click and press-and-hold trigger the recolor cleanly instead of selecting text. */
.msg-sender[data-cp]{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.qmeet-thread-meta{flex:1;min-width:0}
.qmeet-thread-name{font-weight:800;font-size:15px;color:var(--color-text,#111);
  display:flex;align-items:baseline;gap:7px}
.qmeet-thread-nametext{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qmeet-thread-lastactive{flex:0 0 auto;font-weight:400;font-size:11px;
  color:var(--color-text,#666);opacity:.6;white-space:nowrap}
.qmeet-thread-prev{color:var(--color-text,#444);opacity:.65;font-size:13px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.qmeet-thread-status{color:var(--color-primary,#0090C8);opacity:.85;font-size:11px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.qmeet-thread-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}
.qmeet-thread-time{color:var(--color-text,#666);opacity:.6;font-size:11px;white-space:nowrap}
.qmeet-count{background:var(--color-primary,#0090C8);color:#fff;font-weight:800;font-size:11px;
  border-radius:20px;padding:1px 8px;min-width:20px;text-align:center}
.qmeet-chev{opacity:.6;transition:transform .15s ease;font-size:11px;display:inline-block}
.qmeet-thread.open .qmeet-chev{transform:rotate(90deg)}
.qmeet-thread-body{display:none;padding:4px 8px 10px;border-top:1px solid rgba(127,127,127,0.22)}
.qmeet-thread.open .qmeet-thread-body{display:block}
.qmeet-thread-reply{margin:8px 8px 2px}
.qmeet-lockline{font-size:11px;color:var(--color-primary,#0090C8);margin:4px 8px 2px;opacity:.9}
.qmeet-thread-more{text-align:center;margin:2px 0 6px}

/* A magenta "URGENT" pill next to the contact's name when an unread urgent message is
   waiting from them. Magenta matches the per-message .msg-badge-urgent identity and is a
   reserved status color (never a contact color). The card outline itself is left alone —
   it keeps the per-contact --cc color and normal width. */
.qmeet-urgent-pill{flex:0 0 auto;background:magenta;color:#fff;font-weight:800;font-size:10px;
  line-height:1.5;border-radius:20px;padding:0 7px;white-space:nowrap;text-transform:uppercase;
  letter-spacing:.02em;align-self:center}

/* Chat status/view pills (STATUS?, -PINS, +HIDDEN) — text + outline match the
   transparent buttons sitting in the same toolbar to their left, and the
   background is transparent so the pill blends into the toolbar instead of
   reading as a separate white chip.
   Doubled class (.pill.pill) raises specificity to (0,2,0) so this qMeet
   override still wins now that Shared/styles_shared.css loads LAST in the
   bundle (shared's .pill is (0,1,0), .pill.small (0,2,0)). Do NOT simplify
   back to bare .pill or the shared white-chip style will take over. */
.pill.pill, .pill.pill.small{
    color: var(--color-primary, #0090C8);
    border-color: var(--color-primary, #0090C8);
    background-color: transparent;
}

/* ChatUC "My Status" pill (lblMyStatus) — true-lime fill once the viewer
   actually has a chat status set; the "Status?" prompt keeps the outline look
   above. The transparent .pill.pill.small override is (0,3,0), so a plain
   .pill.chat-status-set (0,2,0) loses — the doubled modifier class lifts this
   to (0,3,0) and source order (it sits AFTER the override) breaks the tie, the
   same trick the .home-radar-status pills document. :hover/:focus pinned so
   .pill:hover can't swap the border back to the primary color. */
.pill.chat-status-set.chat-status-set,
.pill.chat-status-set.chat-status-set:hover,
.pill.chat-status-set.chat-status-set:focus{
    background-color: #00ff00;
    border-color: #00ff00;
    color: #000;
}
/* …turning yellow once the status is within 15 minutes of auto-clearing
   (code-behind swaps chat-status-set → chat-status-ending). Same doubled-class
   specificity trick so it beats the .pill.pill.small outline override. */
.pill.chat-status-ending.chat-status-ending,
.pill.chat-status-ending.chat-status-ending:hover,
.pill.chat-status-ending.chat-status-ending:focus{
    background-color: #ffff00;
    border-color: #ffff00;
    color: #000;
}

/* Any select styled as .button inherits .button { text-align:center }, which on
   Windows Chrome makes the dropdown LIST render its options centered too. Force
   left-align on the options so long labels line up on the left edge. (The chat
   view dropdowns moved into the OPTIONS drawer as .textbox, so this is currently
   a defensive rule with no active select.button consumer.) */
select.button option {
    text-align: left;
}

/* ── kebab dropdown menu ──────────────────────────────────────── */
.msg-menu-wrap{position:relative;display:inline-block;vertical-align:middle}
.msg-menu{position:absolute;bottom:110%;left:0;background:#fff;border:1px solid #ccc;border-radius:5px;z-index:300;min-width:180px;box-shadow:var(--shadow-msg-menu);display:none}
.msg-menu.open{display:block}
.msg-action-item{padding:14px 16px;cursor:pointer !important;white-space:nowrap;font-size:13pt;border-bottom:1px solid #eee;user-select:none;-webkit-user-select:none;background:#fff !important;color:#000 !important}
.msg-action-item:last-child{border-bottom:none}
.msg-action-item:hover{background:#f0f0f0 !important;font-weight:bold}

/* ── Message-actions popup (modal replacement for the kebab dropdown) ──
   #msg-actions-modal reuses the shared .modal-overlay/.modal-box pattern;
   the item list is cloned from the hidden per-message .msg-menu, so the
   .msg-action-item rules above (incl. their dark-mode variants) style the
   items. The list just takes over the container chrome .msg-menu provided. */
.msg-actions-box{max-width:380px}
.msg-actions-list{border:1px solid #ccc;border-radius:5px;overflow:hidden auto;max-height:65vh}
[data-theme="dark"] .msg-actions-list{border-color:#555}

/* ── Reply quote ──────────────────────────────────────────── */
.reply-quote{background:#f0f0f0;border-left:3px solid #888;padding:8px 36px 8px 12px;margin-bottom:6px;border-radius:3px;position:relative;font-size:15px}
.reply-quote-label{font-weight:bold;color:#555;margin-bottom:4px;font-size:13px}
.reply-quote-close{position:absolute;top:4px;right:8px;background:none;border:none;cursor:pointer;color:#555;font-size:16px;font-weight:bold;line-height:1;padding:0}

/* ── View bar dropdown styled to match .button.button-sm.button-secondary ── */
.view-select {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--btn-font-weight);
    line-height: 1;
    border-radius: var(--btn-radius);
    cursor: pointer;
    transition: var(--btn-transition);
    white-space: nowrap;
    min-height: 36px;
    background-color: transparent;
    color: var(--color-accent);
    border: 1px solid var(--color-accent);
    box-shadow: none;
    margin-right: 4px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0.25rem 1.5rem 0.25rem 0.6rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2300B0F0'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
}
.view-select:hover {
    background-color: var(--color-primary-light);
    color: var(--color-accent-dark);
}
.view-select:focus {
    outline: 3px solid var(--color-border-focus);
    outline-offset: 2px;
}

/* ── Misc chat UI ─────────────────────────────────────────────── */
.view-bar{margin:4px 0}
.indicators-bar{margin:3px 0;font-size:13px}

/* ── Simplified non-member chat (event / group / category / interest) ─────────
   Per site owner: for every chat type EXCEPT 1:1 Member chat, the ONLY controls
   that should show are the recipient dropdown, the compose box, and the main ▶ Post
   button. The wrapper gets the .chat-recipient-only class server-side (ChatUC's
   ChatRowSimplifiedClass, applied only on the standalone Chat page for non-U chats),
   and we hide the LOW-priority button plus the whole options / file / view / indicator
   toolbar here. The message list (outside .chat-pad-row) and the bottom pagination
   (hidden server-side in LoadChat) are unaffected by these rules. */
.chat-recipient-only [id$="btnPostLowPriority"],
.chat-recipient-only .chat-margin-3,
.chat-recipient-only .upload-progress-wrap,
.chat-recipient-only .indicators-bar,
.chat-recipient-only .view-bar { display: none !important; }

/* "Show More" pager for simplified chat — tucked into the TOP-RIGHT of the history (above the
   message list). Loads another page of older messages, which append below. The row collapses
   whenever there's nothing more to load (button Visible=False → empty row). */
.chat-show-more-row { text-align: right; margin: 0.25rem 0; min-height: 0; }
.chat-show-more-row:empty { display: none; }
.chat-show-more-btn { font-size: 0.8rem; padding: 0.15rem 0.6rem; opacity: 0.85; }
.chat-show-more-btn:hover { opacity: 1; }
.upload-progress-track{width:100%;height:10px;border:1px solid #999;box-sizing:border-box;margin-top:3px}
.upload-progress-bar{height:100%;width:0%;background:#4a8}
textarea.chat-compose{
  box-sizing:border-box;
  width:100%;
  overflow:hidden;
  resize:none;
  min-height:2.2em;
  padding:8px;
  border:1px solid #000;
  border-radius:8px;
  line-height:1.0;
  background:#ffffff;
  box-shadow:
    var(--shadow-compose-top),
    var(--shadow-compose-top-2),
    var(--shadow-compose-left),
    var(--shadow-compose-right),
    var(--shadow-compose-highlight),
    var(--shadow-compose-outer);
  transition:box-shadow .15s ease, border-color .15s ease;
}
/* Intentionally no focus styling: the thick recipient-colored confirmation
   border (--recip-color, below) already signals state, and a blue focus border
   + ring/halo layered on top of it reads as confusing. Keep the focused box
   visually identical to its resting state — just suppress the native outline. */
textarea.chat-compose:focus{
  outline:none;
}

/* Round the Member recipient dropdown to match the textbox/buttons.
   Vertical padding + min-height keep tall names from clipping at the bottom,
   especially once the 3px recipient-color border is applied. */
select[id$='ddlMember']{border-radius:8px;box-shadow:var(--shadow-member-dd);padding-top:6px;padding-bottom:6px;min-height:2.6rem;line-height:1.3}

/* ── Dark mode overrides ───────────────────────────────────── */
[data-theme="dark"] textarea.chat-compose {
    background-color: #2a2a2a !important;
    color: #ffffff !important;
    color-scheme: dark;
    caret-color: #ffffff;
    border-color: #555 !important;
}
[data-theme="dark"] textarea.chat-compose::placeholder {
    color: #9a9a9a !important;
}

/* ── Compose box: recipient-colored border + "To:" overlay placeholder ───────── */
/* The recipient's avatar color is injected as the inline --recip-color custom property by
   the server (ApplyRecipientBorder). The [style*=] selector scopes these to when it's set;
   placed AFTER the dark-mode border override above so it wins source-order at equal
   specificity (in both light and dark) and recolors the thick confirmation border. */
textarea.chat-compose[style*="--recip-color"] {
    border-color: var(--recip-color) !important;
    border-width: 3px !important;
}
/* Same colored confirmation border on the recipient dropdown so ddlMember
   matches tbMessage (same color + thickness) for the selected user. */
select[id$='ddlMember'][style*="--recip-color"] {
    border: 3px solid var(--recip-color) !important;
}
.chat-compose-wrap { position: relative; }
/* Styled "To: <name>" block that sits inside the empty compose box like a rich placeholder
   (mixed font sizes the native ::placeholder can't do). pointer-events:none so clicks reach
   the textarea; JS sizes the box to fit it and hides it once the user types. */
.compose-overlay {
    position: absolute;
    top: 0; left: 0; right: 0;
    padding: 11px 12px;
    pointer-events: none;
    color: #808080;
    overflow: hidden;
}
.compose-overlay .co-to    { font-size: 20px; font-weight: 600; color: #6b6b6b; line-height: 1.2; }
.compose-overlay .co-sub   { font-size: 14px; line-height: 1.3; }
.compose-overlay .co-admin { font-size: 12px; line-height: 1.3; margin-top: 4px; opacity: .9; }
[data-theme="dark"] .compose-overlay        { color: #9a9a9a; }
[data-theme="dark"] .compose-overlay .co-to { color: #b8b8b8; }
[data-theme="dark"] .msg-bg-plain {
    background-color: #bfbfbf !important;
}

/* ── Chat message TEXT palette (Received Text / Sent Text dropdowns) ──────────
   The renderer emits color:var(--mtext-<token>) when the user picks an explicit text
   colour. Unlike the bubble background (which adapts per theme), a chosen text colour is
   theme-INDEPENDENT: one value used in both Light and Dark. The grayscale ramp and pure
   100% hues are absolute; the spectrum tints reuse their light-palette value. */
:root {
  --mtext-gray-100: #ffffff; --mtext-gray-90: #e5e5e5; --mtext-gray-80: #cccccc;
  --mtext-gray-70: #b3b3b3;  --mtext-gray-60: #999999; --mtext-gray-50: #808080;
  --mtext-gray-40: #666666;  --mtext-gray-30: #4d4d4d; --mtext-gray-20: #333333;
  --mtext-gray-10: #1a1a1a;  --mtext-gray-0: #000000;

  --mtext-red-100: #ff0000; --mtext-red-50: #ff8080; --mtext-red-40: #ff9999; --mtext-red-30: #ffb3b3; --mtext-red-20: #ffcccc; --mtext-red-10: #ffe6e6;
  --mtext-red-magenta-100: #ff007f; --mtext-red-magenta-50: #ff80bf; --mtext-red-magenta-40: #ff99cc; --mtext-red-magenta-30: #ffb3d9; --mtext-red-magenta-20: #ffcce5; --mtext-red-magenta-10: #ffe6f2;
  --mtext-magenta-100: #ff00ff; --mtext-magenta-50: #ff80ff; --mtext-magenta-40: #ff99ff; --mtext-magenta-30: #ffb3ff; --mtext-magenta-20: #ffccff; --mtext-magenta-10: #ffe6ff;
  --mtext-purple-100: #8000ff; --mtext-purple-50: #bf80ff; --mtext-purple-40: #cc99ff; --mtext-purple-30: #d9b3ff; --mtext-purple-20: #e5ccff; --mtext-purple-10: #f2e6ff;
  --mtext-blue-100: #0000ff; --mtext-blue-50: #8080ff; --mtext-blue-40: #9999ff; --mtext-blue-30: #b3b3ff; --mtext-blue-20: #ccccff; --mtext-blue-10: #e6e6ff;
  --mtext-blue-cyan-100: #0080ff; --mtext-blue-cyan-50: #80bfff; --mtext-blue-cyan-40: #99ccff; --mtext-blue-cyan-30: #b3d9ff; --mtext-blue-cyan-20: #cce5ff; --mtext-blue-cyan-10: #e6f2ff;
  --mtext-cyan-100: #00ffff; --mtext-cyan-50: #80ffff; --mtext-cyan-40: #99ffff; --mtext-cyan-30: #b3ffff; --mtext-cyan-20: #ccffff; --mtext-cyan-10: #e6ffff;
  --mtext-cyan-lime-100: #00ff80; --mtext-cyan-lime-50: #80ffbf; --mtext-cyan-lime-40: #99ffcc; --mtext-cyan-lime-30: #b3ffd9; --mtext-cyan-lime-20: #ccffe5; --mtext-cyan-lime-10: #e6fff2;
  --mtext-lime-100: #00ff00; --mtext-lime-50: #80ff80; --mtext-lime-40: #99ff99; --mtext-lime-30: #b3ffb3; --mtext-lime-20: #ccffcc; --mtext-lime-10: #e6ffe6;
  --mtext-lime-yellow-100: #80ff00; --mtext-lime-yellow-50: #bfff80; --mtext-lime-yellow-40: #ccff99; --mtext-lime-yellow-30: #d9ffb3; --mtext-lime-yellow-20: #e5ffcc; --mtext-lime-yellow-10: #f2ffe6;
  --mtext-yellow-100: #ffff00; --mtext-yellow-50: #ffff80; --mtext-yellow-40: #ffff99; --mtext-yellow-30: #ffffb3; --mtext-yellow-20: #ffffcc; --mtext-yellow-10: #ffffe6;
  --mtext-orange-100: #ff7f00; --mtext-orange-50: #ffbf80; --mtext-orange-40: #ffcc99; --mtext-orange-30: #ffd9b3; --mtext-orange-20: #ffe5cc; --mtext-orange-10: #fff2e6;

  /* 90/80/70/60 levels (fill the 100→50 gap). */
  --mtext-red-90: #ff1a1a; --mtext-red-80: #ff3333; --mtext-red-70: #ff4d4d; --mtext-red-60: #ff6666;
  --mtext-red-magenta-90: #ff1a8c; --mtext-red-magenta-80: #ff3399; --mtext-red-magenta-70: #ff4da5; --mtext-red-magenta-60: #ff66b2;
  --mtext-magenta-90: #ff1aff; --mtext-magenta-80: #ff33ff; --mtext-magenta-70: #ff4dff; --mtext-magenta-60: #ff66ff;
  --mtext-purple-90: #8d1aff; --mtext-purple-80: #9933ff; --mtext-purple-70: #a64dff; --mtext-purple-60: #b366ff;
  --mtext-blue-90: #1a1aff; --mtext-blue-80: #3333ff; --mtext-blue-70: #4d4dff; --mtext-blue-60: #6666ff;
  --mtext-blue-cyan-90: #1a8dff; --mtext-blue-cyan-80: #3399ff; --mtext-blue-cyan-70: #4da6ff; --mtext-blue-cyan-60: #66b3ff;
  --mtext-cyan-90: #1affff; --mtext-cyan-80: #33ffff; --mtext-cyan-70: #4dffff; --mtext-cyan-60: #66ffff;
  --mtext-cyan-lime-90: #1aff8d; --mtext-cyan-lime-80: #33ff99; --mtext-cyan-lime-70: #4dffa6; --mtext-cyan-lime-60: #66ffb3;
  --mtext-lime-90: #1aff1a; --mtext-lime-80: #33ff33; --mtext-lime-70: #4dff4d; --mtext-lime-60: #66ff66;
  --mtext-lime-yellow-90: #8dff1a; --mtext-lime-yellow-80: #99ff33; --mtext-lime-yellow-70: #a6ff4d; --mtext-lime-yellow-60: #b3ff66;
  --mtext-yellow-90: #ffff1a; --mtext-yellow-80: #ffff33; --mtext-yellow-70: #ffff4d; --mtext-yellow-60: #ffff66;
  --mtext-orange-90: #ff8c1a; --mtext-orange-80: #ff9933; --mtext-orange-70: #ffa54d; --mtext-orange-60: #ffb266;
}

/* ── Chat bubble palette (Received Msg / Sent Msg dropdowns) ──────────────────
   Same tokens as Preferences ▸ Site Background. The message renderer emits
   data-bubble="<token>" on .msg-card; these rules paint the bubble per theme —
   light tints in Light mode, dark shades in Dark mode — so the inline text colour
   (var(--color-text)) always has contrast. Hex values mirror the [data-bg=...]
   palette in Shared/styles_shared.css. Base rules first so the specific token rules
   (equal specificity) win on source order; the dark base also catches the tokens
   that have no dark shade (spectrum -10 + light-half grays → look like a default
   dark bubble, keeping light text readable). */
.msg-card[data-bubble] { background-color: #ffffff; }

.msg-card[data-bubble="gray-100"] { background-color: #ffffff; }
.msg-card[data-bubble="gray-90"]  { background-color: #e5e5e5; }
.msg-card[data-bubble="gray-80"]  { background-color: #cccccc; }
.msg-card[data-bubble="gray-70"]  { background-color: #b3b3b3; }
.msg-card[data-bubble="gray-60"]  { background-color: #999999; }
.msg-card[data-bubble="gray-50"]  { background-color: #808080; }

.msg-card[data-bubble="red-50"]          { background-color: #ff8080; }
.msg-card[data-bubble="red-40"]          { background-color: #ff9999; }
.msg-card[data-bubble="red-30"]          { background-color: #ffb3b3; }
.msg-card[data-bubble="red-20"]          { background-color: #ffcccc; }
.msg-card[data-bubble="red-10"]          { background-color: #ffe6e6; }
.msg-card[data-bubble="red-magenta-50"]  { background-color: #ff80bf; }
.msg-card[data-bubble="red-magenta-40"]  { background-color: #ff99cc; }
.msg-card[data-bubble="red-magenta-30"]  { background-color: #ffb3d9; }
.msg-card[data-bubble="red-magenta-20"]  { background-color: #ffcce5; }
.msg-card[data-bubble="red-magenta-10"]  { background-color: #ffe6f2; }
.msg-card[data-bubble="magenta-50"]      { background-color: #ff80ff; }
.msg-card[data-bubble="magenta-40"]      { background-color: #ff99ff; }
.msg-card[data-bubble="magenta-30"]      { background-color: #ffb3ff; }
.msg-card[data-bubble="magenta-20"]      { background-color: #ffccff; }
.msg-card[data-bubble="magenta-10"]      { background-color: #ffe6ff; }
.msg-card[data-bubble="purple-50"]       { background-color: #bf80ff; }
.msg-card[data-bubble="purple-40"]       { background-color: #cc99ff; }
.msg-card[data-bubble="purple-30"]       { background-color: #d9b3ff; }
.msg-card[data-bubble="purple-20"]       { background-color: #e5ccff; }
.msg-card[data-bubble="purple-10"]       { background-color: #f2e6ff; }
.msg-card[data-bubble="blue-50"]         { background-color: #8080ff; }
.msg-card[data-bubble="blue-40"]         { background-color: #9999ff; }
.msg-card[data-bubble="blue-30"]         { background-color: #b3b3ff; }
.msg-card[data-bubble="blue-20"]         { background-color: #ccccff; }
.msg-card[data-bubble="blue-10"]         { background-color: #e6e6ff; }
.msg-card[data-bubble="blue-cyan-50"]    { background-color: #80bfff; }
.msg-card[data-bubble="blue-cyan-40"]    { background-color: #99ccff; }
.msg-card[data-bubble="blue-cyan-30"]    { background-color: #b3d9ff; }
.msg-card[data-bubble="blue-cyan-20"]    { background-color: #cce5ff; }
.msg-card[data-bubble="blue-cyan-10"]    { background-color: #e6f2ff; }
.msg-card[data-bubble="cyan-50"]         { background-color: #80ffff; }
.msg-card[data-bubble="cyan-40"]         { background-color: #99ffff; }
.msg-card[data-bubble="cyan-30"]         { background-color: #b3ffff; }
.msg-card[data-bubble="cyan-20"]         { background-color: #ccffff; }
.msg-card[data-bubble="cyan-10"]         { background-color: #e6ffff; }
.msg-card[data-bubble="cyan-lime-50"]    { background-color: #80ffbf; }
.msg-card[data-bubble="cyan-lime-40"]    { background-color: #99ffcc; }
.msg-card[data-bubble="cyan-lime-30"]    { background-color: #b3ffd9; }
.msg-card[data-bubble="cyan-lime-20"]    { background-color: #ccffe5; }
.msg-card[data-bubble="cyan-lime-10"]    { background-color: #e6fff2; }
.msg-card[data-bubble="lime-50"]         { background-color: #80ff80; }
.msg-card[data-bubble="lime-40"]         { background-color: #99ff99; }
.msg-card[data-bubble="lime-30"]         { background-color: #b3ffb3; }
.msg-card[data-bubble="lime-20"]         { background-color: #ccffcc; }
.msg-card[data-bubble="lime-10"]         { background-color: #e6ffe6; }
.msg-card[data-bubble="lime-yellow-50"]  { background-color: #bfff80; }
.msg-card[data-bubble="lime-yellow-40"]  { background-color: #ccff99; }
.msg-card[data-bubble="lime-yellow-30"]  { background-color: #d9ffb3; }
.msg-card[data-bubble="lime-yellow-20"]  { background-color: #e5ffcc; }
.msg-card[data-bubble="lime-yellow-10"]  { background-color: #f2ffe6; }
.msg-card[data-bubble="yellow-50"]       { background-color: #ffff80; }
.msg-card[data-bubble="yellow-40"]       { background-color: #ffff99; }
.msg-card[data-bubble="yellow-30"]       { background-color: #ffffb3; }
.msg-card[data-bubble="yellow-20"]       { background-color: #ffffcc; }
.msg-card[data-bubble="yellow-10"]       { background-color: #ffffe6; }
.msg-card[data-bubble="orange-50"]       { background-color: #ffbf80; }
.msg-card[data-bubble="orange-40"]       { background-color: #ffcc99; }
.msg-card[data-bubble="orange-30"]       { background-color: #ffd9b3; }
.msg-card[data-bubble="orange-20"]       { background-color: #ffe5cc; }
.msg-card[data-bubble="orange-10"]       { background-color: #fff2e6; }

/* 90/80/70/60 levels — light tints filling the 100→50 gap. */
.msg-card[data-bubble="red-90"]          { background-color: #ff1a1a; }
.msg-card[data-bubble="red-80"]          { background-color: #ff3333; }
.msg-card[data-bubble="red-70"]          { background-color: #ff4d4d; }
.msg-card[data-bubble="red-60"]          { background-color: #ff6666; }
.msg-card[data-bubble="red-magenta-90"]  { background-color: #ff1a8c; }
.msg-card[data-bubble="red-magenta-80"]  { background-color: #ff3399; }
.msg-card[data-bubble="red-magenta-70"]  { background-color: #ff4da5; }
.msg-card[data-bubble="red-magenta-60"]  { background-color: #ff66b2; }
.msg-card[data-bubble="magenta-90"]      { background-color: #ff1aff; }
.msg-card[data-bubble="magenta-80"]      { background-color: #ff33ff; }
.msg-card[data-bubble="magenta-70"]      { background-color: #ff4dff; }
.msg-card[data-bubble="magenta-60"]      { background-color: #ff66ff; }
.msg-card[data-bubble="purple-90"]       { background-color: #8d1aff; }
.msg-card[data-bubble="purple-80"]       { background-color: #9933ff; }
.msg-card[data-bubble="purple-70"]       { background-color: #a64dff; }
.msg-card[data-bubble="purple-60"]       { background-color: #b366ff; }
.msg-card[data-bubble="blue-90"]         { background-color: #1a1aff; }
.msg-card[data-bubble="blue-80"]         { background-color: #3333ff; }
.msg-card[data-bubble="blue-70"]         { background-color: #4d4dff; }
.msg-card[data-bubble="blue-60"]         { background-color: #6666ff; }
.msg-card[data-bubble="blue-cyan-90"]    { background-color: #1a8dff; }
.msg-card[data-bubble="blue-cyan-80"]    { background-color: #3399ff; }
.msg-card[data-bubble="blue-cyan-70"]    { background-color: #4da6ff; }
.msg-card[data-bubble="blue-cyan-60"]    { background-color: #66b3ff; }
.msg-card[data-bubble="cyan-90"]         { background-color: #1affff; }
.msg-card[data-bubble="cyan-80"]         { background-color: #33ffff; }
.msg-card[data-bubble="cyan-70"]         { background-color: #4dffff; }
.msg-card[data-bubble="cyan-60"]         { background-color: #66ffff; }
.msg-card[data-bubble="cyan-lime-90"]    { background-color: #1aff8d; }
.msg-card[data-bubble="cyan-lime-80"]    { background-color: #33ff99; }
.msg-card[data-bubble="cyan-lime-70"]    { background-color: #4dffa6; }
.msg-card[data-bubble="cyan-lime-60"]    { background-color: #66ffb3; }
.msg-card[data-bubble="lime-90"]         { background-color: #1aff1a; }
.msg-card[data-bubble="lime-80"]         { background-color: #33ff33; }
.msg-card[data-bubble="lime-70"]         { background-color: #4dff4d; }
.msg-card[data-bubble="lime-60"]         { background-color: #66ff66; }
.msg-card[data-bubble="lime-yellow-90"]  { background-color: #8dff1a; }
.msg-card[data-bubble="lime-yellow-80"]  { background-color: #99ff33; }
.msg-card[data-bubble="lime-yellow-70"]  { background-color: #a6ff4d; }
.msg-card[data-bubble="lime-yellow-60"]  { background-color: #b3ff66; }
.msg-card[data-bubble="yellow-90"]       { background-color: #ffff1a; }
.msg-card[data-bubble="yellow-80"]       { background-color: #ffff33; }
.msg-card[data-bubble="yellow-70"]       { background-color: #ffff4d; }
.msg-card[data-bubble="yellow-60"]       { background-color: #ffff66; }
.msg-card[data-bubble="orange-90"]       { background-color: #ff8c1a; }
.msg-card[data-bubble="orange-80"]       { background-color: #ff9933; }
.msg-card[data-bubble="orange-70"]       { background-color: #ffa54d; }
.msg-card[data-bubble="orange-60"]       { background-color: #ffb266; }

[data-theme="dark"] .msg-card[data-bubble] { background-color: #33373e; }

[data-theme="dark"] .msg-card[data-bubble="gray-50"] { background-color: #808080; }
[data-theme="dark"] .msg-card[data-bubble="gray-40"] { background-color: #666666; }
[data-theme="dark"] .msg-card[data-bubble="gray-30"] { background-color: #4d4d4d; }
[data-theme="dark"] .msg-card[data-bubble="gray-20"] { background-color: #333333; }
[data-theme="dark"] .msg-card[data-bubble="gray-10"] { background-color: #1a1a1a; }
[data-theme="dark"] .msg-card[data-bubble="gray-0"]  { background-color: #000000; }

[data-theme="dark"] .msg-card[data-bubble="red-50"]          { background-color: #800000; }
[data-theme="dark"] .msg-card[data-bubble="red-40"]          { background-color: #660000; }
[data-theme="dark"] .msg-card[data-bubble="red-30"]          { background-color: #4d0000; }
[data-theme="dark"] .msg-card[data-bubble="red-20"]          { background-color: #330000; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-50"]  { background-color: #800040; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-40"]  { background-color: #660033; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-30"]  { background-color: #4d0026; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-20"]  { background-color: #330019; }
[data-theme="dark"] .msg-card[data-bubble="magenta-50"]      { background-color: #800080; }
[data-theme="dark"] .msg-card[data-bubble="magenta-40"]      { background-color: #660066; }
[data-theme="dark"] .msg-card[data-bubble="magenta-30"]      { background-color: #4d004d; }
[data-theme="dark"] .msg-card[data-bubble="magenta-20"]      { background-color: #330033; }
[data-theme="dark"] .msg-card[data-bubble="purple-50"]       { background-color: #400080; }
[data-theme="dark"] .msg-card[data-bubble="purple-40"]       { background-color: #330066; }
[data-theme="dark"] .msg-card[data-bubble="purple-30"]       { background-color: #26004d; }
[data-theme="dark"] .msg-card[data-bubble="purple-20"]       { background-color: #1a0033; }
[data-theme="dark"] .msg-card[data-bubble="blue-50"]         { background-color: #000080; }
[data-theme="dark"] .msg-card[data-bubble="blue-40"]         { background-color: #000066; }
[data-theme="dark"] .msg-card[data-bubble="blue-30"]         { background-color: #00004d; }
[data-theme="dark"] .msg-card[data-bubble="blue-20"]         { background-color: #000033; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-50"]    { background-color: #004080; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-40"]    { background-color: #003366; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-30"]    { background-color: #00264d; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-20"]    { background-color: #001a33; }
[data-theme="dark"] .msg-card[data-bubble="cyan-50"]         { background-color: #008080; }
[data-theme="dark"] .msg-card[data-bubble="cyan-40"]         { background-color: #006666; }
[data-theme="dark"] .msg-card[data-bubble="cyan-30"]         { background-color: #004d4d; }
[data-theme="dark"] .msg-card[data-bubble="cyan-20"]         { background-color: #003333; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-50"]    { background-color: #008040; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-40"]    { background-color: #006633; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-30"]    { background-color: #004d26; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-20"]    { background-color: #00331a; }
[data-theme="dark"] .msg-card[data-bubble="lime-50"]         { background-color: #008000; }
[data-theme="dark"] .msg-card[data-bubble="lime-40"]         { background-color: #006600; }
[data-theme="dark"] .msg-card[data-bubble="lime-30"]         { background-color: #004d00; }
[data-theme="dark"] .msg-card[data-bubble="lime-20"]         { background-color: #003300; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-50"]  { background-color: #408000; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-40"]  { background-color: #336600; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-30"]  { background-color: #264d00; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-20"]  { background-color: #1a3300; }
[data-theme="dark"] .msg-card[data-bubble="yellow-50"]       { background-color: #808000; }
[data-theme="dark"] .msg-card[data-bubble="yellow-40"]       { background-color: #666600; }
[data-theme="dark"] .msg-card[data-bubble="yellow-30"]       { background-color: #4d4d00; }
[data-theme="dark"] .msg-card[data-bubble="yellow-20"]       { background-color: #333300; }
[data-theme="dark"] .msg-card[data-bubble="orange-50"]       { background-color: #804000; }
[data-theme="dark"] .msg-card[data-bubble="orange-40"]       { background-color: #663300; }
[data-theme="dark"] .msg-card[data-bubble="orange-30"]       { background-color: #4d2600; }
[data-theme="dark"] .msg-card[data-bubble="orange-20"]       { background-color: #331900; }

/* 90/80/70/60 levels — dark shades filling the 100→50 gap. */
[data-theme="dark"] .msg-card[data-bubble="red-90"]          { background-color: #e60000; }
[data-theme="dark"] .msg-card[data-bubble="red-80"]          { background-color: #cc0000; }
[data-theme="dark"] .msg-card[data-bubble="red-70"]          { background-color: #b30000; }
[data-theme="dark"] .msg-card[data-bubble="red-60"]          { background-color: #990000; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-90"]  { background-color: #e60072; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-80"]  { background-color: #cc0066; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-70"]  { background-color: #b30059; }
[data-theme="dark"] .msg-card[data-bubble="red-magenta-60"]  { background-color: #99004c; }
[data-theme="dark"] .msg-card[data-bubble="magenta-90"]      { background-color: #e600e6; }
[data-theme="dark"] .msg-card[data-bubble="magenta-80"]      { background-color: #cc00cc; }
[data-theme="dark"] .msg-card[data-bubble="magenta-70"]      { background-color: #b300b3; }
[data-theme="dark"] .msg-card[data-bubble="magenta-60"]      { background-color: #990099; }
[data-theme="dark"] .msg-card[data-bubble="purple-90"]       { background-color: #7300e6; }
[data-theme="dark"] .msg-card[data-bubble="purple-80"]       { background-color: #6600cc; }
[data-theme="dark"] .msg-card[data-bubble="purple-70"]       { background-color: #5a00b3; }
[data-theme="dark"] .msg-card[data-bubble="purple-60"]       { background-color: #4d0099; }
[data-theme="dark"] .msg-card[data-bubble="blue-90"]         { background-color: #0000e6; }
[data-theme="dark"] .msg-card[data-bubble="blue-80"]         { background-color: #0000cc; }
[data-theme="dark"] .msg-card[data-bubble="blue-70"]         { background-color: #0000b3; }
[data-theme="dark"] .msg-card[data-bubble="blue-60"]         { background-color: #000099; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-90"]    { background-color: #0073e6; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-80"]    { background-color: #0066cc; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-70"]    { background-color: #005ab3; }
[data-theme="dark"] .msg-card[data-bubble="blue-cyan-60"]    { background-color: #004d99; }
[data-theme="dark"] .msg-card[data-bubble="cyan-90"]         { background-color: #00e6e6; }
[data-theme="dark"] .msg-card[data-bubble="cyan-80"]         { background-color: #00cccc; }
[data-theme="dark"] .msg-card[data-bubble="cyan-70"]         { background-color: #00b3b3; }
[data-theme="dark"] .msg-card[data-bubble="cyan-60"]         { background-color: #009999; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-90"]    { background-color: #00e673; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-80"]    { background-color: #00cc66; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-70"]    { background-color: #00b35a; }
[data-theme="dark"] .msg-card[data-bubble="cyan-lime-60"]    { background-color: #00994d; }
[data-theme="dark"] .msg-card[data-bubble="lime-90"]         { background-color: #00e600; }
[data-theme="dark"] .msg-card[data-bubble="lime-80"]         { background-color: #00cc00; }
[data-theme="dark"] .msg-card[data-bubble="lime-70"]         { background-color: #00b300; }
[data-theme="dark"] .msg-card[data-bubble="lime-60"]         { background-color: #009900; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-90"]  { background-color: #73e600; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-80"]  { background-color: #66cc00; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-70"]  { background-color: #5ab300; }
[data-theme="dark"] .msg-card[data-bubble="lime-yellow-60"]  { background-color: #4d9900; }
[data-theme="dark"] .msg-card[data-bubble="yellow-90"]       { background-color: #e6e600; }
[data-theme="dark"] .msg-card[data-bubble="yellow-80"]       { background-color: #cccc00; }
[data-theme="dark"] .msg-card[data-bubble="yellow-70"]       { background-color: #b3b300; }
[data-theme="dark"] .msg-card[data-bubble="yellow-60"]       { background-color: #999900; }
[data-theme="dark"] .msg-card[data-bubble="orange-90"]       { background-color: #e67200; }
[data-theme="dark"] .msg-card[data-bubble="orange-80"]       { background-color: #cc6600; }
[data-theme="dark"] .msg-card[data-bubble="orange-70"]       { background-color: #b35900; }
[data-theme="dark"] .msg-card[data-bubble="orange-60"]       { background-color: #994c00; }

[data-theme="dark"] .reply-quote {
    background: var(--color-bg-input);
    border-left-color: #555;
}
[data-theme="dark"] .reply-quote-label {
    color: #aaa;
}
[data-theme="dark"] .reply-quote-close {
    color: #aaa;
}
[data-theme="dark"] .msg-menu {
    background: #2a2a2a;
    border-color: #555;
}
[data-theme="dark"] .msg-action-item {
    background: #2a2a2a !important;
    color: #e8eaed !important;
    border-bottom-color: #444;
}
[data-theme="dark"] .msg-action-item:hover {
    background: #3a3a3a !important;
}

/* Round all controls inside the OPTIONS drawer to match the compose textbox/Member dropdown */
.chat-options-drawer .textbox,
.chat-options-drawer input[type="text"],
.chat-options-drawer select,
.chat-options-drawer textarea{border-radius:8px;background-color:var(--color-bg-input);color:var(--color-text)}

/* Status/-Pins/+Hidden/Date Range/Archive/Search notifier tags.
   Background pinned here to replace inline BackColor="Black" on seven
   ChatUC LinkButtons (lblMyStatus, lblDateRange, lblArchive,
   lblIgnoringPins, lblShowingHidden, lblHidingLowPri, lblSearching). */
a.linkwhite{
  display:inline-block;
  padding:2px 10px;
  border-radius:8px;
  font-size:10pt;
  line-height:1.5;
  vertical-align:middle;
  margin:0 2px;
  background-color:#000;
  box-shadow:var(--shadow-linkwhite);
}

/* Post button used for the most recent message gets a white inset border. */
.button.last-used-post{box-shadow:inset 0 0 0 2px #fff !important;}

/* `.checkbox.toolbar` — modifier for a checkbox sitting inline with the
   .button.transparent toolbar buttons (currently the "U/L" checkbox in the
   chat compose row). Colors the rendered <label> text the same primary-cyan
   as the buttons' outline so the row reads as one continuous strip.
   The wrapping span gets the color too — when asp:CheckBox has Text, ASP.NET
   puts CssClass on the span, and we want the label child to inherit. */
.checkbox.toolbar, .checkbox.toolbar label { color: var(--color-primary, #0090C8); }
.checkbox.toolbar > input[type="checkbox"] { outline: 1px solid var(--color-primary, #0090C8); outline-offset: -1px; }

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVENESS
   Breakpoints:
     480px  — small phones
     640px  — large phones / phablets
     768px  — tablets (already used for page-wrapper, form-group)
     992px  — desktop (already used for nav)
   ════════════════════════════════════════════════════════════════════ */

/* ── Tables: horizontal scroll on narrow screens ──────────── */
@media (max-width: 768px) {
    .data-table,
    .admin-queue-table,
    .members-table { font-size: var(--font-size-xs); }

    .data-table th,
    .data-table td,
    .admin-queue-table th,
    .admin-queue-table td,
    .members-table th,
    .members-table td { padding: 0.35rem 0.4rem; }

}

/* ── Page header: stack title + actions vertically ────────── */


/* ── Dashboard sections: stack title/controls on narrow ──── */
@media (max-width: 480px) {
    .dash-section { flex-wrap: wrap; }
    .dash-section .dash-section-control { width: 100%; }
    .dash-section .dash-section-control select,
    .dash-section .dash-section-control .textbox { width: 100%; }
}

/* ── Result cards: let meta wrap; shrink action buttons ──── */
@media (max-width: 480px) {
    .result-card { padding: 0.6rem 0.75rem; }
    .result-card-title { font-size: 1rem; }
    .result-card-status { display: block; margin-left: 0; margin-top: 0.15rem; }
    .result-card-actions .button { font-size: 0.8rem; padding: 0.2rem 0.45rem; }
}

/* ── Contact rows: tighter on mobile ─────────────────────── */
@media (max-width: 480px) {
    .contact-row { padding: 0.5rem 0.6rem; }
    .contact-row-actions .button { font-size: 0.75rem; padding: 0.1rem 0.4rem; }
}

/* ── Sticky save bar: full-width on mobile ────────────────── */
@media (max-width: 640px) {
    .sticky-save-bar {
        left: 0;
        right: 0;
        transform: none;
        border-radius: 0;
        justify-content: center;
    }
}

/* ── Availability grid: stack day labels above time slots ── */
@media (max-width: 480px) {
    .availability-grid { border-spacing: 0; width: 100%; }
    .availability-grid tr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0 0.25rem;
        padding: 0.15rem 0;
    }
    .availability-grid td:first-child {
        flex-basis: 100%;
    }
    .availability-grid .availability-time {
        width: auto;
        min-width: 0;
        flex: 1 1 4.5rem;
    }
}

/* ── Chat options drawer: fit narrow viewports ────────────── */
@media (max-width: 400px) {
    .chat-options-drawer { width: calc(100vw - 20px); right: calc(-100vw); }
    .chat-options-drawer.open { right: 0; }
}

/* ── Chat message cards: wider on small screens ───────────── */
@media (max-width: 480px) {
    .msg-card { max-width: 92%; }
}

/* ── Chat bar banner: allow wrapping on mobile ───────────── */
@media (max-width: 640px) {
    .banner-chatbar { padding: 0.3rem 0.5rem; font-size: var(--font-size-xs); line-height: 1.6; }
    .cb-row { white-space: normal; }
}

/* ── Message action items: allow wrapping in bottom sheet ── */
@media (max-width: 480px) {
    .msg-action-item { white-space: normal; font-size: 11pt; padding: 12px 14px; }
}

/* ── Search row: stack on small screens ───────────────────── */
@media (max-width: 480px) {
    .search-row { flex-direction: column; }
    .search-row .input-clearable { flex-basis: auto; }
    .search-row .button { width: 100%; justify-content: center; }
}

/* ── Footer: tighter spacing on mobile ───────────────────── */


/* ── Member search age row: wrap inputs ──────────────────── */
@media (max-width: 480px) {
    .member-age-row { flex-wrap: wrap; }
}

/* ── Chat compose area: tighter padding ──────────────────── */
@media (max-width: 480px) {
    .send-options-grid { grid-template-columns: repeat(2, auto); }
}

/* ── Chat lightbox: larger image on mobile ───────────────── */
@media (max-width: 480px) {
    .chat-lb-img { max-width: 100vw; max-height: 70vh; }
    .chat-lb-controls { gap: 8px; flex-wrap: wrap; justify-content: center; }
    .chat-lb-nav { padding: 6px 12px; font-size: 12pt; }
}

/* ── Global: prevent horizontal page scroll on narrow viewports.
   Long unbroken strings (URLs, hashes, IDs) inside .page-wrapper used to push
   the body wider than the viewport, producing both a horizontal scrollbar AND
   off-screen content on phones. Pinning body to overflow-x:hidden and forcing
   word-wrap on the wrapper kills both. .typing-speed-page deliberately breaks
   out of the wrapper (100vw bleed); pin its width too so it can't overflow. ── */
@media (max-width: 640px) {
    html, body { overflow-x: hidden; }
    .page-wrapper { word-wrap: break-word; overflow-wrap: anywhere; }
    .typing-speed-page { max-width: 100vw; }
}

/* ── Tables: horizontal-scroll wrappers + tighter padding.
   Wide data tables (Admin queue, members list, vote results, calendar, etc.)
   used to burst the page width on phones. Pinning them to display:block +
   overflow-x:auto lets the user pan the table without breaking the page.
   .qmeet-calendar shrinks padding so the 7-column grid fits in ~360px.
   .test-table / .sql-results-table / .cuv-table are admin-built tables — admins
   reach for phones too, so include them so the admin console doesn't bust. ── */
@media (max-width: 640px) {
    .data-table,
    .admin-queue-table,
    .members-table,
    .vote-results-table,
    .popular-interests-table,
    .subscribe-details-table,
    .availability-table,
    .test-table,
    .sql-results-table,
    .cuv-table,
    .table2 {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }
    .qmeet-calendar { font-size: var(--font-size-xs); }
    .qmeet-calendar td,
    .qmeet-calendar th { padding: 3px 4px; }
    .qmeet-calendar a { min-width: 1.2rem; }
}

/* Opt-in horizontal-scroll wrapper for any raw <table>. Pages with legacy
   markup can wrap a <div class="table-responsive"> around the table to keep
   it from busting the viewport on phones. Always block-scrolls on mobile;
   on desktop it's a no-op. ── */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}
.table-responsive > table { min-width: 100%; }

/* ── Forms: prevent iOS auto-zoom-on-focus.
   Mobile Safari zooms into any form control whose computed font-size is below
   16px when the user taps to focus it. Several of our compact inputs (textbox,
   dropdown, datebox, status-input, file-upload) inherit a smaller body font.
   Pin them to 16px on small viewports so the focus tap doesn't reframe the
   whole page. Desktop sizing is unaffected. ── */
@media (max-width: 640px) {
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="datetime-local"],
    input[type="time"],
    textarea,
    select,
    .textbox,
    .textarea,
    .dropdown,
    .date-picker { font-size: 16px; }
}

/* ── Buttons: 44×44 minimum tap target on mobile.
   WCAG 2.5.5 + iOS/Android UX guidelines call for a 44px touch target. Our
   compact .button.small (used in result-card-actions, contact-row-actions,
   chat msg-actions) sits at ~28-32px on desktop, which is fine for a mouse
   but tough for fingers. Bump the floor on phones; let the .button-w-* sizing
   utilities stay as-is. ── */
@media (max-width: 640px) {
    .button,
    button.button,
    a.button,
    input[type="submit"].button,
    input[type="button"].button {
        min-height: 40px;
    }
    .nav-toggle { min-width: 44px; min-height: 44px; }
}

/* ── Forms: stack form-actions buttons full-width on tiny screens.
   Multi-button confirm/cancel rows (Save / Cancel / Delete) were squishing on
   narrow phones; stack and stretch so each button gets full thumb-tap area. ── */
@media (max-width: 480px) {
    .form-actions { flex-direction: column; align-items: stretch; gap: 0.5rem; }
    .form-actions .button { width: 100%; justify-content: center; }
}

/* ── Loc-row (EventSearch / member search city/state/country): the three flex
   children were squishing each input to ~80px on narrow phones. Let the city
   span the full row and have state/country share line two. ── */
@media (max-width: 480px) {
    .loc-row { gap: 0.4rem; }
    .loc-row .loc-field-city    { flex: 1 1 100%; min-width: 0; }
    .loc-row .loc-field-state   { flex: 1 1 calc(50% - 0.2rem); min-width: 0; }
    .loc-row .loc-field-country { flex: 1 1 calc(50% - 0.2rem); min-width: 0; }
}

/* ── Banners: drop horizontal padding so narrow text doesn't wrap to 4 lines.
   Affects chat-bar, view-only, anonymous-promo, and any other site-wide
   notification strip mounted in the masters. ── */
@media (max-width: 480px) {
    .banner-anon,
    .banner-viewonly { padding: 0.5rem 0.6rem; font-size: var(--font-size-xs); line-height: 1.4; }
}

/* ── Section bars: keep title and control on one row but allow wrap on tiny
   screens where a long "▼ All categories" dropdown would overflow. ── */
@media (max-width: 480px) {
    .dash-section { padding: 0.35rem 0.55rem; gap: 0.3rem; }
    .dash-section h2,
    .dash-section .dash-section-title { font-size: 0.95rem; letter-spacing: 0.02em; }
    .section-bar { padding: 0.35rem 0.55rem; font-size: 0.95rem; letter-spacing: 0.02em; }
}

/* ── Page-header title row: stack back-btn above title on tiny screens so
   long page titles ("Manage Event Members → Bulk add") don't elide. ── */
@media (max-width: 480px) {
    .page-header-title-row {
        flex-wrap: wrap;
        gap: 0.4rem;
    }
}

/* ── Image thumbnails: shrink the 120/160px fixed widths on phones so the
   row doesn't horizontally scroll. EventDetails photo strip and User profile
   pic both used to bleed off the right edge of small screens. ── */
@media (max-width: 480px) {
    .event-file-thumb     { width: 88px; height: 88px; }
    .profile-pic-preview  { width: 120px; }
    .files-to-send-preview{ width: 100%; }
}

/* ── Error / diagnostic <pre> blocks: keep the panel inside the viewport.
   Stacktraces are long and unbroken; let them wrap (already set) but tighten
   padding/font so the wrap doesn't produce 30+ lines on a phone. ── */
@media (max-width: 480px) {
    .error-detail { padding: 0.6rem; font-size: 0.72rem; max-height: 260px; }
}

/* ── Sticky-save bar on phones: keep above the iOS home-indicator and let
   the inner buttons share the row without overflow. The base rule already
   pins it left/right at <=640px; this adds safe-area padding. ── */
@media (max-width: 640px) {
    .sticky-save-bar {
        padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
        flex-wrap: wrap;
        gap: 0.4rem;
    }
    .sticky-save-bar .button { flex: 1 1 auto; justify-content: center; }
}

/* ── Footer: stack link-row and copy-row, and let the link separators fold.
   On <=480 the chain of "About · Help · Tips · …" used to overflow to a
   second row anyway; this just lets it wrap cleanly with smaller gaps. ── */
@media (max-width: 480px) {
    .site-footer-links,
    .site-footer-copy { line-height: 1.6; padding: 0.25rem 0.5rem; }
    .site-footer-links a,
    .site-footer-copy  a { display: inline-block; padding: 0.15rem 0.25rem; }
}

/* ── Modal box: take more of the viewport on phones so the action buttons
   inside (Log in / Stay here / Close / etc.) aren't squeezed. ── */
@media (max-width: 480px) {
    .modal-box     { width: calc(100vw - 1.5rem); max-width: 100%; padding: 1rem; }
    .modal-footer  { flex-wrap: wrap; gap: 0.4rem; }
    .modal-footer .button { flex: 1 1 100%; justify-content: center; }
}

/* ── Captcha row on ContactUs: shrink answer box to ~60px so the problem
   text and Submit can share the row on tiny phones. ── */
@media (max-width: 360px) {
    .captcha-row     { gap: 0.35rem; }
    .captcha-answer  { max-width: 60px; }
}

/* ── Chat reply quote: tighter padding + smaller close-button hit area so a
   long quoted message doesn't take half the chat panel. ── */
@media (max-width: 480px) {
    .reply-quote      { padding: 0.3rem 1.6rem 0.3rem 0.5rem; font-size: var(--font-size-xs); }
    .reply-quote-close{ top: 0.25rem; right: 0.3rem; }
}

/* ── Nav brand: shrink the qMEET wordmark on tiny phones so it shares a row
   with the hamburger toggle and any unread badge without wrapping. ── */
@media (max-width: 360px) {
    .nav-brand { font-size: 1.1rem; }
}

/* ── Print page: table should not scroll ─────────────────── */
@media print {
    .data-table,
    .admin-queue-table,
    .members-table,
    .vote-results-table,
    .popular-interests-table,
    .subscribe-details-table,
    .availability-table,
    .test-table,
    .sql-results-table,
    .cuv-table,
    .table-responsive,
    .table2 { display: table; overflow: visible; }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVENESS — 2026-06-06 follow-up
   Catches a handful of patterns that prior passes didn't cover:
   raw <pre>/<code> blocks, images without a sized wrapper, the
   .page-header actions row when it has a sibling, and PWA standalone-
   mode safe-area inset at the top of the nav.
   ════════════════════════════════════════════════════════════════════ */

/* ── <img> / <pre> / <code> baseline: keep content inside the viewport.
   Images without a width attribute or sizing class (e.g. inline images in
   ContactUsStatus admin replies, EventDetails body copy) used to push the
   page wider than the viewport on phones. Pinning max-width:100% is a
   non-invasive cap — explicit Width="…" attributes still win because the
   ASP.NET Image control emits inline `style="width:..."` which beats a
   class selector. <pre>/<code> get word-wrap so a long stacktrace or SQL
   line can't horizontally scroll the whole page. ── */
@media (max-width: 640px) {
    .page-wrapper img:not([width]):not(.no-fluid) {
        max-width: 100%;
        height: auto;
    }
    .page-wrapper pre,
    .page-wrapper code {
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: break-word;
    }
    .page-wrapper pre {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: pre-wrap;
    }
}

/* ── Page header: stack title row + actions row on phones so a long
   page title doesn't elbow the 📋 Share / 🖨 Print buttons off-screen.
   EventDetails / GroupDetails / Dashboard / ContactUsStatus all use
   the .page-header-actions slot. ── */
@media (max-width: 640px) {
    .page-header {
        flex-wrap: wrap;
        gap: 0.4rem;
    }
    .page-header-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.3rem;
        width: 100%;
    }
    .page-header-actions .button { flex: 0 1 auto; }
}

/* ── Modal overlay: keep tall modals scrollable on short phone viewports.
   The post-login modal (Install + Push cards + instructions) can exceed
   100vh on a 568px-tall phone in landscape; without overflow:auto the
   user can't reach the bottom buttons. Inner .modal-box also caps its
   own height so the *box* scrolls, not the page behind it (preserves the
   backdrop-tap-to-close affordance). ── */
@media (max-width: 640px) {
    .modal-overlay {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0.5rem;
        align-items: flex-start;
    }
    .modal-box {
        max-height: calc(100vh - 1rem);
        overflow-y: auto;
        margin: 0.5rem auto;
    }
}

/* ── Bulk actions toolbar: let the count text shrink so the action button
   always stays visible on narrow screens. The 4rem floor on .bulk-actions-count
   pushed the "Remove" / "Unblock" buttons partly off-screen on 320px phones. ── */
@media (max-width: 480px) {
    .bulk-actions { gap: 0.4rem; }
    .bulk-actions-count { min-width: 0; flex: 0 1 auto; font-size: var(--font-size-xs); }
    .bulk-actions-btn { flex: 1 1 auto; }
}

/* ── iOS PWA standalone: reserve safe-area inset at the top of the nav so
   the qMEET wordmark + hamburger don't sit under the device status bar /
   Dynamic Island. display-mode:standalone matches both Add-to-Home-Screen
   installs and the desktop PWA install path. ── */
@media (display-mode: standalone) {
    .site-nav { padding-top: env(safe-area-inset-top, 0px); }
    .site-footer { padding-bottom: env(safe-area-inset-bottom, 0px); }
}

/* ── Section bar + dash-section: allow the heading text to wrap rather than
   force horizontal overflow when a category name + control crowds the row. ── */
@media (max-width: 480px) {
    .section-bar { white-space: normal; overflow-wrap: anywhere; }
    .dash-section h2,
    .dash-section .dash-section-title { overflow-wrap: anywhere; min-width: 0; }
}

/* ── Captcha / inline math problem rows: ContactUs.ascx already covers
   captcha-row at 360px. Extend the same wrap to .form-actions ROWS that
   ContactUs.ascx mounts inside .alert-panel banners so a long error
   message doesn't force the parent to scroll. ── */
@media (max-width: 480px) {
    .alert-panel { overflow-wrap: anywhere; }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVENESS — 2026-06-10 follow-up
   A prior audit found no horizontal-overflow breaks (every min-width is
   <=220px, so nothing busts a 320px viewport). This pass only extends the
   site's established "primary CTAs and cards go full-width on phones"
   pattern — already applied to .form-actions / .search-row / .modal-footer
   buttons — to the last couple of fixed-min-width components that didn't yet
   follow it. Purely additive, scoped to narrow breakpoints; desktop is
   untouched.
   ════════════════════════════════════════════════════════════════════ */

/* ── Fixed-min-width primary buttons: stretch to full thumb-width on phones.
   .subscribe-btn (Notifications push CTA) carried a 200px min-width that left
   it hugging the centre of a full-bleed card on small screens; full-width
   matches every other mobile CTA on the site. ── */
@media (max-width: 480px) {
    .subscribe-btn { min-width: 0; width: 100%; }
}

/* The .countdown narrow-screen rules live AFTER the .countdown base block
   below (a same-specificity rule must follow it in source order to win the
   cascade on mobile). See "Countdown: full-width on phones" further down. ── */

/* ── Countdown widget (EventDetails) ───────────────────────── */

.countdown {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    padding: 0.75rem 1rem;
    margin: 0.5rem 0.75rem 0.5rem 0;
    border-radius: var(--border-radius);
    background-color: var(--color-primary-light);
    border-left: 4px solid var(--color-primary);
    min-width: 220px;
}
.countdown--ends { border-left-color: var(--color-danger); background-color: var(--color-danger-bg); }

.countdown-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: var(--font-weight-medium);
}
.countdown-digits {
    font-size: 2rem;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    display: flex;
    gap: 0.2rem;
    align-items: baseline;
}
.countdown-digits span,
.countdown-digits .label { font-size: 1em; }
.countdown-units {
    display: flex;
    gap: 0.9rem;
    font-size: 0.7rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Countdown: full-width on phones (2026-06-10 follow-up).
   On phones each timer already sits on its own row (separate UpdatePanels),
   so let the 220px inline-flex box fill the row as a banner instead of
   leaving dead space to its right. These rules MUST follow the .countdown
   base block above — same specificity, so source order decides the winner.
   box-sizing:border-box is required: the base rule's horizontal padding +
   left border would otherwise push width:100% past the viewport edge.
   On the smallest phones trim the 2rem digits so a "12:23:59" readout never
   crowds a 320px-class screen. */
@media (max-width: 480px) {
    .countdown {
        display: flex;
        width: 100%;
        min-width: 0;
        margin-right: 0;
        box-sizing: border-box;
    }
}
@media (max-width: 360px) {
    .countdown-digits { font-size: 1.6rem; }
}

/* ── Search & pagination rows ──────────────────────────────── */

.search-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0.5rem 0 0.75rem;
}
.search-row .textbox,
.search-row .input-clearable { flex: 1 1 220px; min-width: 180px; }
.search-row .button { flex: 0 0 auto; }

.input-clearable-grow { flex: 1 1 220px; min-width: 180px; }

/* EventSearch's search box stays a single compact row even on phones: the search
   term fills the width and the 🔍 button sits to its right. Without this, the
   global "@media (max-width:480px) .search-row{flex-direction:column}" rule
   centered a narrow input with the button stacked full-width below it (the "huge
   space around the box"). The in-field × clears the term — no separate button. */
.search-card .search-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}
.search-card .search-row .input-clearable-grow {
    flex: 1 1 auto;
    min-width: 0;
}
.search-card .search-row .button {
    width: auto;
    flex: 0 0 auto;
}

.interests-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin: 0.5rem 0 0.75rem;
}
.interests-pagination .button { flex: 0 0 auto; min-width: 2.5rem; }
.interests-pagination .textbox.interests-pagination__index { width: 4rem; text-align: center; }
.interests-pagination .textbox.interests-pagination__rows  { width: 4rem; }
.interests-pagination .label { margin-left: 0.5rem; }

.swatch {
    display: inline-block;
    padding: 0 0.4rem;
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--color-border);
    font-weight: var(--font-weight-medium);
}
.swatch--top         { background-color: #d4edbc; color: #2d5016; border-color: #84cc16; }
.swatch--interested  { background-color: #b9d8a7; color: #1b3b0f; border-color: #65a30d; }
.swatch--indifferent { background-color: #cfe2ff; color: #084298; border-color: #0d6efd; }
.swatch--notint      { background-color: #f8d7da; color: #842029; border-color: #dc3545; }

.section-bar-top           { border-left: 4px solid #84cc16; background-color: #d4edbc22; }
.section-bar-interested    { border-left: 4px solid #65a30d; background-color: #b9d8a722; }
.section-bar-indifferent   { border-left: 4px solid #0d6efd; background-color: #cfe2ff22; }
.section-bar-notinterested { border-left: 4px solid #dc3545; background-color: #f8d7da22; }
.section-bar-untagged      { border-left: 4px solid #6c757d; background-color: #f3f4f622; }

/* ── ChatUC2 (Chat, Chat2, EventDetails chat, GroupDetails chat) ── */

.chat-hidden { display: none !important; }

.chat-pad-row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.chat-pad-left-4 { padding-left: 0.5rem; }
/* Flex-wrap with a gap so the toolbar buttons (View, CC, X MSG, OPTIONS, LIVECHAT …)
   and the status pills keep both horizontal AND vertical spacing when they wrap to a
   new line — plain inline flow gave wrapped rows zero vertical buffer. Mirrors .view-bar. */
.chat-margin-3 { margin: 0.5rem 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
/* Narrower toolbar buttons — tighten horizontal padding and drop the shared 44px
   min-width (min-height stays, preserving the vertical tap target) so View / CC /
   X MSG / OPTIONS / LIVECHAT / X U/L / Unread / 64H / All pack tighter. */
.chat-margin-3 .button.small,
.view-bar .button.small {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    min-width: 0;
}
.chat-recipient-select { flex: 1 1 220px; min-width: 200px; }
/* Compose-area wrapper inside .chat-pad-row (flex container). flex-basis 100%
   + wrap on the parent puts the composer on its own row spanning the full
   width. min-width:0 lets the textbox honor its width:100% without being held
   open by the textarea's intrinsic min-content size. */
.chat-compose-row { flex: 1 1 100%; min-width: 0; }
.chat-compose,
.chat-msg-textbox { width: 100%; min-height: 4.5rem; resize: vertical; box-sizing: border-box; }
.chat-post-btn { flex: 0 0 auto; align-self: stretch; padding: 0.5rem 1rem; font-weight: var(--font-weight-medium); }
/* The two post buttons travel as ONE flex unit (replaces the old <nobr> in ChatUC.ascx):
   on narrow wraps they move to the next line together, never splitting. Internal gap 5px
   matches the old inline spacing between LOW and ▶. */
.chat-post-btns { display: flex; gap: 5px; flex: 0 0 auto; align-items: stretch; }
/* Recipient status (lblRecipientStatus, a direct-child .note of .chat-pad-row) keeps its
   own full row now that the toolbar table no longer forces it to wrap. */
.chat-pad-row > .note { flex: 1 1 100%; }

.reply-quote {
    background-color: var(--color-info-bg);
    border-left: 3px solid var(--color-info);
    padding: 0.4rem 0.75rem;
    border-radius: var(--border-radius-sm);
    margin-bottom: 0.4rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-style: italic;
    position: relative;
}
.reply-quote-label { font-weight: bold; margin-bottom: 0.25rem; }
.reply-quote-close {
    position: absolute; top: 0.4rem; right: 0.5rem;
    background: none; border: none; cursor: pointer;
    color: var(--color-text-muted); font-size: 1rem; line-height: 1; padding: 0 0.25rem;
    font-style: normal;
}
.reply-quote-close:hover { color: var(--color-text); }

.view-bar, .view-select {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0.5rem 0;
}
.view-select { display: inline-flex; }
.button-w-page-arrow { min-width: 2.5rem; text-align: center; }

.indicators-bar {
    display: flex; flex-wrap: wrap; gap: 0.5rem 1rem;
    align-items: center; margin: 0.3rem 0 0.5rem; font-size: var(--font-size-sm);
}
/* Collapse the toolbar's counter/pagination bars when they have nothing to show, so there's no
   empty line between the toolbar buttons and the messages below. We can't use :empty — ASP.NET
   emits whitespace text nodes between the server controls — so test for element children:
   the view-bar's page buttons are Visible=False on the first page (no element children), and the
   indicators-bar's upload/image counters render as empty <a>/<span> until something is uploaded. */
.view-bar:not(:has(*)),
.indicators-bar:not(:has(*:not(:empty))) {
    display: none;
}

.linkwhite { color: #fff; text-decoration: none; }
.linkwhite:hover { text-decoration: underline; }
.linkblue  { color: var(--color-link); text-decoration: none; }
.linkblue:hover { text-decoration: underline; }

.cb-rounded-wrap {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.2rem 0.55rem; border-radius: 999px;
    background-color: var(--color-primary-light); font-size: var(--font-size-sm);
}

.upload-progress-wrap { margin: 0.4rem 0; padding: 0.5rem; background-color: var(--color-info-bg); border-radius: var(--border-radius-sm); }
.upload-progress-text { font-size: var(--font-size-sm); margin-bottom: 0.25rem; }
.upload-progress-track { height: 6px; border-radius: 3px; background-color: var(--color-border); overflow: hidden; }
.upload-progress-bar { height: 100%; background-color: var(--color-accent); transition: width 0.2s ease-out; width: 0%; }

.chat-options-overlay {
    position: fixed; inset: 0; background-color: rgba(0,0,0,0.35); z-index: 9990; display: none;
}
.chat-options-overlay.open { display: block; }
.chat-options-drawer {
    position: fixed; top: 0; right: 0; height: 100vh; width: min(420px, 75vw);
    /* Never wider than 75% of the screen, on any device. */
    max-width: 75vw;
    background-color: var(--color-bg); border-left: 1px solid var(--color-border);
    box-shadow: var(--shadow-xl); z-index: 9991; display: none; flex-direction: column;
    overflow-y: auto; transform: translateX(100%); transition: transform 0.25s var(--ease-out-quint);
}
.chat-options-overlay.open + .chat-options-drawer,
.chat-options-drawer.open { display: flex; transform: translateX(0); }
.opt-drawer-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.75rem 1rem; border-bottom: 1px solid var(--color-border);
    background-color: var(--color-primary-light);
}
.opt-drawer-title { font-weight: var(--font-weight-bold); margin: 0; }
.opt-drawer-close {
    background: none; border: none; cursor: pointer; font-size: 1.25rem; line-height: 1; color: var(--color-text-muted);
}
.opt-drawer-close:hover { color: var(--color-text); }

.options-section { padding: 0.75rem 1rem; border-bottom: 1px solid var(--color-border); }
.options-section:last-child { border-bottom: none; }
.options-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.options-row:last-child { margin-bottom: 0; }
.options-label { min-width: 110px; font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.options-row .textbox { flex: 1 1 180px; }
/* Search row's clearable wrapper grows to fill the row but never collapses below
   a usable width — mirrors the contextual `.input-clearable` sizing used by
   .search-row / .ct-search-bar / .pi-filter elsewhere (replaces an inline style). */
.options-row .input-clearable { flex: 1; min-width: 120px; }

.opt-pill-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.opt-pill {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.3rem 0.7rem; border-radius: 999px; border: 1px solid var(--color-border);
    background-color: var(--color-bg); font-size: var(--font-size-sm);
    cursor: pointer; transition: background-color 0.15s, border-color 0.15s;
}
.opt-pill:hover { background-color: var(--color-primary-light); border-color: var(--color-primary); }
.opt-pill input[type="checkbox"] { margin: 0; cursor: pointer; }

.opt-pill-notify  { color: #0a7d2a; }
.opt-pill-urgent  { color: #c0392b; }
.opt-pill-pin     { color: #8e44ad; }
.opt-pill-save    { color: #2c7be5; }
.opt-pill-hires   { color: #d35400; }
.cb-color { accent-color: currentColor; }
.cb-row { display: inline-flex; align-items: center; gap: 0.35rem; }

/* PopulateEvents (admin import): one source checkbox + status pill per row. */
.pe-source-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
/* Free-tier / usage limit note that drops to its own line under the source checkbox. */
.pe-source-note { flex: 1 1 100%; margin: -0.1rem 0 0.2rem 1.6rem; }

.status-input-wrap { position: relative; flex: 1 1 200px; }
.status-input { width: 100%; padding-right: 2rem; }
.status-clear-btn {
    position: absolute; right: 0.35rem; top: 50%; transform: translateY(-50%);
    background: none; border: none; cursor: pointer; color: var(--color-text-muted);
    font-size: 1rem; line-height: 1; padding: 0 0.25rem;
}
.status-clear-btn:hover { color: var(--color-text); }

.tagchips-recent-hint { font-size: var(--font-size-sm); color: var(--color-text-muted); }

.realtime-help {
    background-color: var(--color-info-bg); border-left: 3px solid var(--color-info);
    padding: 0.5rem 0.75rem; border-radius: var(--border-radius-sm);
    font-size: var(--font-size-sm); margin: 0.5rem 0;
}

.chat-lightbox {
    position: fixed; inset: 0; background-color: rgba(0,0,0,0.92); z-index: 10000;
    display: none; align-items: center; justify-content: center; flex-direction: column;
}
.chat-lightbox.open { display: flex; }
.chat-lb-img { max-width: 92vw; max-height: 80vh; object-fit: contain; box-shadow: var(--shadow-xl); }
.chat-lb-close {
    position: absolute; top: 1rem; right: 1rem; background: rgba(0,0,0,0.5);
    color: #fff; border: none; border-radius: 999px; width: 2.5rem; height: 2.5rem;
    font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.chat-lb-counter { color: #fff; margin-top: 0.5rem; font-size: var(--font-size-sm); }
.chat-lb-controls { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.chat-lb-nav {
    background: rgba(255,255,255,0.15); color: #fff; border: none;
    padding: 0.5rem 0.85rem; border-radius: var(--border-radius-sm); cursor: pointer;
}
.chat-lb-nav:hover { background: rgba(255,255,255,0.3); }
.chat-lb-fullink { color: #fff; text-decoration: underline; font-size: var(--font-size-sm); }

.chat-toast-fixed { position: fixed; top: 1rem; left: 1rem; z-index: 9999; pointer-events: none; }
.chat-toast-el { pointer-events: auto; max-width: 320px; }
.chat-toast-body { font-size: var(--font-size-sm); }

/* Site-toast stack/positioning is now fully shared (Shared/styles_shared.css):
   top-center, 560px cap, identical on all 3 sites. The old top-right override
   that lived here was removed during cross-site toast unification (it was also
   largely dead — Shared loads after this file in Bundle.config, so its shared
   .site-toast-stack already won on equal specificity). The .chat-toast-* rules
   above are a SEPARATE feature (urgent-chat popup) and intentionally stay. */

.buttonsmall {
    padding: 0.3rem 0.6rem; font-size: var(--font-size-sm); border-radius: var(--border-radius-sm);
    border: 1px solid var(--color-border); background-color: var(--color-bg); color: var(--color-text); cursor: pointer;
}
.buttonsmall:hover { background-color: var(--color-primary-light); }


/* ── Legacy color helpers (button modifiers) ───────────────── */

.button.magenta { background-color: #ff00ff; color: #fff; border-color: #ff00ff; }
.button.magenta:hover  { background-color: #fff; color: #ff00ff; }
.button.orange  { background-color: #fd7e14; color: #fff; }
.button.orange:hover   { background-color: #d96807; color: #fff; }
.button.lime    { background-color: #84cc16; color: #fff; }
.button.lime:hover     { background-color: #65a30d; color: #fff; }
.button.cyan    { background-color: #00b0f0; color: #fff; }
.button.cyan:hover     { background-color: #008bbf; color: #fff; }
.button.gray    { background-color: #6c757d; color: #fff; }
.button.gray:hover     { background-color: #565e64; color: #fff; }
.button.red     { background-color: #dc3545; color: #fff; }
.button.red:hover      { background-color: #b02a37; color: #fff; }
.button.purple  { background-color: #6f42c1; color: #fff; }
.button.purple:hover   { background-color: #553098; color: #fff; }

.magenta { color: #ff00ff; }
.orange  { color: #fd7e14; }
.lime    { color: #84cc16; }
.cyan    { color: #00b0f0; }
.gray    { color: #6c757d; }
.red     { color: #dc3545; }
.purple  { color: #6f42c1; }

.bold { font-weight: var(--font-weight-bold); }

/* ════════════════════════════════════════════════════════════════════
   PRINT STYLESHEET
   Users occasionally want a paper copy of an event/group detail page,
   a confirmation, or their feedback. Without these rules the printed
   output includes the site nav, chat bar, footer link row, post-login
   modal containers, tip cards, toast stack, FABs — and in dark mode,
   ink-heavy dark backgrounds. This block strips the chrome, forces a
   light palette, prints link URLs alongside the link text, and asks
   the renderer to keep cards on one page.

   Other narrow print rules already live earlier in the file
   (.back-to-top, .toc-btn, table overflow). Those stay; this block
   only adds to them.
   ════════════════════════════════════════════════════════════════════ */
@media print {

    /* ── Page setup ──────────────────────────────────────────── */
    @page { margin: 0.5in; }

    /* ── Hide site chrome and interactive-only UI ────────────── */
    .skip-link,
    .site-nav,
    .nav-toggle,
    .banner-chatbar,
    .banner-events,
    .tip-card,
    .tip-icon-button,
    .site-toast-stack,
    .modal-overlay,
    .chat-fab,
    .chat-drawer,
    .chat-toggle-btn,
    .form-actions,
    .save-bar,
    .sticky-save-bar,
    .input-clear-btn,
    .site-footer-links,
    #site-footer-top,
    [data-confirm],
    [data-save-btn] {
        display: none !important;
    }

    /* ── Force a print-friendly palette regardless of theme ── */
    html,
    html[data-theme="dark"],
    body,
    body.offline {
        background: #fff !important;
        color: #000 !important;
    }

    /* Strip dark-mode + heavy-shadow styling from common surfaces so
       backgrounds don't waste ink and shadows don't print as smudges. */
    .main-card,
    .card,
    .result-card,
    .alert-panel,
    .countdown,
    [data-theme="dark"] .main-card,
    [data-theme="dark"] .card,
    [data-theme="dark"] .result-card,
    [data-theme="dark"] .alert-panel,
    [data-theme="dark"] .countdown {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        border-color: #999 !important;
    }

    /* ── Strip wide max-widths so content uses the full page ── */
    .page-wrapper {
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* ── Keep cards / forms / countdowns from splitting awkwardly ── */
    .main-card,
    .card,
    .result-card,
    .alert-panel,
    .countdown,
    .form-group {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    h1, h2, h3, h4 {
        break-after: avoid;
        page-break-after: avoid;
    }

    /* ── Print link URLs alongside link text. Skip in-page anchors,
         javascript:, mailto:, tel: (visible text is already the address). ── */
    a[href]:not([href^="#"]):not([href^="javascript:"]):not([href^="mailto:"]):not([href^="tel:"])::after {
        content: " (" attr(href) ")";
        font-size: 0.85em;
        color: #555;
        word-break: break-all;
    }
    .visually-hidden a::after { content: none !important; }
}
/* ── API Usage admin page (.au-*) ──────────────────────────────────
   ApiUsage.aspx: traffic stat chips, top-source mini tables, recent-call
   filter row, and the block-management form. Cross-site (same on PLP/qMeet/qFIT). */
.au-stats { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.au-stat {
    display: flex; flex-direction: column; min-width: 9rem;
    padding: 0.6rem 0.9rem; border: 1px solid var(--color-border);
    border-radius: 8px; background: var(--color-bg-card);
}
.au-stat-num { font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.au-stat-label { font-size: var(--font-size-xs); color: var(--color-text-muted); }
.au-stat-bad .au-stat-num { color: var(--color-danger, #c0392b); }
.au-tops { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 1rem; }
.au-top-table { font-size: var(--font-size-sm); width: 100%; }
.au-top-table td:first-child { word-break: break-all; }
.au-refused { color: var(--color-danger, #c0392b); font-weight: 600; }
.au-filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.au-filter-row .textbox { flex: 1 1 16rem; min-width: 0; width: auto; }
.au-recent-table { font-size: var(--font-size-xs); width: 100%; }
.au-recent-table code { word-break: break-all; }
.au-block-form {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0 1rem; align-items: end; margin-bottom: 1rem;
}
.au-block-form .form-actions { grid-column: 1 / -1; }
.au-config { margin: 0; padding-left: 1.2rem; }
/* ── Event Details — WEATHER section (.ed-*) ───────────────────────
   Async-loaded forecast (WeatherService → GetEventWeather WebMethod).
   A horizontally scrollable strip of per-day tiles so a multi-week
   event never forces the section taller than the rest of the page.
   Mirrors PacklistPRO's .td-weather-* Trip Dashboard rules. */
.ed-weather-loc { margin: 0 0 0.5rem; }
.ed-weather-days {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
}
.ed-weather-day {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    min-width: 76px;
    padding: 0.5rem 0.45rem;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    background: var(--color-bg);
    text-align: center;
}
.ed-weather-date {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    line-height: 1.2;
}
.ed-weather-date strong {
    display: block;
    color: var(--color-text);
    font-size: var(--font-size-sm);
}
.ed-weather-icon { font-size: 1.6rem; line-height: 1; }
.ed-weather-temp { font-size: var(--font-size-sm); white-space: nowrap; }
.ed-weather-precip { font-size: var(--font-size-xs); color: var(--color-info); white-space: nowrap; }
.ed-weather-horizon { margin: 0.5rem 0 0; }
/* Open-Meteo attribution, tucked into a subtle info icon on the location line —
   dim by default, full-opacity on hover/focus; tooltip carries the credit. */
.ed-weather-credit-link {
    text-decoration: none;
    color: var(--color-text-muted);
    opacity: 0.7;
    cursor: help;
    font-size: 0.85em;
    margin-left: 0.15rem;
}
.ed-weather-credit-link:hover,
.ed-weather-credit-link:focus { opacity: 1; }

/* ───────────────────────────────────────────────────────────────────────
   EventDetails2.aspx — card-based event view (page-specific helpers).
   Token-driven so dark mode comes for free. The cards, collapse behaviour,
   badges and countdown all reuse shared/qMeet components; these classes only
   lay out the hero facts, detail rows and prose blocks built in code-behind.
   ─────────────────────────────────────────────────────────────────────── */
.ed2-hero .countdown { margin: 0 0 0.85rem; }
.ed2-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.85rem; }
.ed2-badges:last-child { margin-bottom: 0; }

/* Hero quick-fact rows: icon + label + value */
.ed2-fact { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.45rem 0; }
.ed2-fact + .ed2-fact { border-top: 1px solid var(--color-border); }
.ed2-fact-ico { flex: 0 0 1.6rem; font-size: 1.15rem; line-height: 1.4; text-align: center; }
.ed2-fact-body { display: flex; flex-direction: column; min-width: 0; }
.ed2-fact-k {
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    font-weight: var(--font-weight-bold);
}
.ed2-fact-v { font-size: var(--font-size-base); color: var(--color-text); overflow-wrap: anywhere; }
.ed2-fact-sub { display: block; font-size: var(--font-size-sm); color: var(--color-text-muted); }

/* Detail label/value rows (When & where, Who can attend) */
.ed2-row { display: flex; flex-wrap: wrap; gap: 0.2rem 0.75rem; padding: 0.3rem 0; }
.ed2-row-k { flex: 0 0 8.5rem; font-weight: var(--font-weight-bold); color: var(--color-text-muted); }
.ed2-row-v { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }

/* Prose blocks (Cost, What to wear, …) and the prominent description */
.ed2-block { margin: 0 0 0.85rem; }
.ed2-block:last-child { margin-bottom: 0; }
.ed2-block-k { display: block; font-weight: var(--font-weight-bold); margin-bottom: 0.15rem; }
.ed2-block-v { color: var(--color-text); }
.ed2-desc { font-size: var(--font-size-base); line-height: 1.55; margin: 0 0 1rem; }

/* Sub-section heading inside a card (auto-divides multi-section cards) */
.ed2-subhead {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    margin: 1.1rem 0 0.55rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--color-border);
    color: var(--color-text);
}
.ed2-subhead:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.ed2-meta { margin: 1rem 0 0; }

/* Photo gallery */
.ed2-gallery { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* Voting */
.ed2-vote-intro { margin: 0 0 0.75rem; }
.ed2-vote-table td { padding: 0.35rem 0.4rem; vertical-align: middle; }

/* Member RSVP status colours */
.ed2-rsvp-yes { color: var(--color-success); }
.ed2-rsvp-no { color: var(--color-danger); }
.ed2-rsvp-maybe { color: var(--color-text); }

/* Action button rows (Manage card + bottom toolbar) */
.ed2-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ── Contact List page (ContactList.aspx) ──────────────────────────
   Ported from PacklistPRO. Collapsible-card chevron for <details> whose
   <summary> is the card title, plus the shared contact-row layout
   (search results, My Contacts, Blocked) with avatar, presence dot,
   favorite star, and filter box. */
summary.card-title { list-style: none; cursor: pointer; }
summary.card-title::-webkit-details-marker { display: none; }
summary.card-title::before {
    content: "\25B8";          /* ▸ */
    display: inline-block;
    margin-right: 0.5rem;
    transition: transform 0.2s ease;
}
details[open] > summary.card-title::before { content: "\25BE"; }   /* ▾ */

.ct-search-bar {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.ct-search-bar .input-clearable { flex: 1 1 16rem; }
.ct-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.ct-row {
    display: flex;
    flex-wrap: wrap;                 /* let the action buttons drop to their own line when narrow */
    align-items: center;
    gap: 0.5rem 0.75rem;             /* row-gap when wrapped · column-gap inline */
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm, 0.375rem);
}
.ct-row-info {
    flex: 1 1 12rem;       /* keeps name/place readable; forces actions to WRAP, not squish the text */
    min-width: 0;
}
.ct-name { word-break: break-word; }
.ct-status { font-style: italic; }
.ct-row-actions {
    display: flex;
    gap: 0.4rem;
    flex: 1 1 auto;        /* when wrapped to its own line, spans the row and right-aligns */
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.ct-row-actions.ct-add-col { flex: 0 0 auto; }   /* the search-row Add column stays small */
.ct-search-row .ct-add-col { order: -1; }        /* Add button to the LEFT of search results */
.ct-filter {
    margin-bottom: 0.75rem;
    max-width: 24rem;
}

/* Colored initials avatar + green presence dot (matches the chat .qmeet-av look) */
.ct-av {
    position: relative;
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.9rem;
    line-height: 1;
    user-select: none;
}
.ct-dot {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #22c55e;
    border: 2px solid var(--color-bg-card);
}

/* Favorite star toggle — an outline button that turns gold when on. Shared CSS
   (.button.transparent) loads after this file, so the on/off colors need >2-class
   specificity to win. Off = muted gray ☆; on = ★ on a SOLID gold fill (dark text)
   so the favorited state is unmistakable and matches the gold ★ badge + row tint. */
.button.transparent.ct-fav {
    line-height: 1;
    color: var(--color-text-muted, #888);
    border-color: var(--color-border, #cccccc);
}
.button.transparent.ct-fav.ct-fav-on {
    color: #111;
    border-color: #f5b301;
    background-color: #f5b301;
}
.ct-fav-badge {
    color: #f5b301;
    font-size: 1em;
}
/* Favorited rows stand out: gold left edge + a subtle gold tint (both themes) */
.ct-row-fav {
    border-left: 3px solid #f5b301;
    background: rgba(245, 179, 1, 0.10);
}

/* ============================================================================
   EventSearch2 — redesigned events browse page (PacklistPRO-style cards).
   Each event is a native <details> card that expands on header click. Interest
   is a segmented control in the body, set via AJAX. Leans on shared design
   tokens (with fallbacks) so it adapts to light/dark automatically.
   ========================================================================== */

/* Always-visible search bar above the collapsible filters card. */
.es2-searchbar { display: flex; gap: .5rem; margin-bottom: .75rem; }
.es2-searchbar-input { flex: 1 1 auto; }

/* "Filters & Sorting" card: show a plain × close glyph in the upper-right
   corner (like the Tips/toast closers) rather than the filled-button look the
   shared .card-options-topbar rule gives. Scoped to .es2-filters so other sites'
   use of .card-options-topbar (PLP ShoppingList, etc.) keeps the filled style. */
.es2-filters .card-options-topbar .tip-icon-button {
    min-width: 2rem;
    min-height: 2rem;
    color: var(--color-text-muted, #6c757d);
    background-color: transparent;
    box-shadow: none;
    font-weight: 400;
    font-size: 1.5rem;
}
.es2-filters .card-options-topbar .tip-icon-button:hover {
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-primary-light, #e0f6fe);
}
.es2-filters .card-options-topbar .tip-icon-button:active {
    box-shadow: none;
}

/* Filters card body laid out as a responsive grid (single column on mobile). */
.es2-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .25rem 1rem;
    margin-bottom: .5rem;
}

.es2-results-head { margin: .25rem 0 .75rem; }
.es2-legend {
    display: block;
    color: var(--color-text-light, var(--color-text-muted, #888));
    font-size: var(--font-size-xs, .75rem);
    margin-top: .15rem;
}

/* ── Event card (collapsible) ─────────────────────────────────────────────── */
.es2-card {
    margin-bottom: .75rem;
    border-left: 4px solid var(--color-border, #e0e0e0);
    transition: box-shadow var(--transition-fast, .15s);
}
.es2-card[open] { box-shadow: var(--shadow-card-hover, var(--shadow-lg, 0 8px 24px rgba(0,0,0,.12))); }

/* Left accent rail. Compound `.es2-card.X` selectors (specificity 0,2,0) so they
   out-rank `.main-card { border: 1px solid … }` from the shared sheet, which loads
   AFTER this file and would otherwise reset border-left to a flat 1px grey line —
   hiding every accent below. (A plain `.es2-card` rule ties .main-card and loses.)
   State accents (set first) … */
.es2-card.es2-rejected { border-left-color: var(--color-danger, #c62828);  border-left-width: 5px; }
.es2-card.es2-pending  { border-left-color: var(--color-warning, #e65100); border-left-width: 5px; }
.es2-card.es2-owned    { border-left-color: #00aa00;                       border-left-width: 5px; }
/* … time-proximity accents (declared after, so they win when both apply).
   Width encodes urgency: THICK green = today / in progress, THIN green = within 3 days.
   Colours match the es2-badge-now / es2-badge-soon pills. */
.es2-card.es2-now, .es2-card.es2-recurring-now   { border-left-color: #00FF00; border-left-width: 6px; }
.es2-card.es2-soon, .es2-card.es2-recurring-soon { border-left-color: #006400; border-left-width: 3px; }

/* Clickable summary header — custom chevron, no native marker. */
summary.es2-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    gap: .6rem;
    align-items: flex-start;
}
summary.es2-summary::-webkit-details-marker { display: none; }
summary.es2-summary::before {
    content: "\25B8"; /* ▸ */
    color: var(--color-text-muted, #6c757d);
    flex: 0 0 auto;
    margin-top: .15rem;
    transition: transform var(--transition-fast, .15s);
}
details[open] > summary.es2-summary::before { transform: rotate(90deg); }
summary.es2-summary:focus-visible { outline: none; box-shadow: var(--shadow-focus, 0 0 0 3px rgba(0,176,240,.4)); border-radius: var(--border-radius-sm, 6px); }

.es2-summary-main { flex: 1 1 auto; min-width: 0; }
.es2-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.es2-title { font-weight: var(--font-weight-bold, 600); font-size: var(--font-size-base, 1.125rem); color: var(--color-text, #1a1f2e); }
.es2-meta {
    color: var(--color-text-muted, #6c757d);
    font-size: var(--font-size-sm, .875rem);
    margin-top: .25rem;
    display: flex;
    flex-wrap: wrap;
    gap: .1rem 1rem;
}
.es2-distance { color: var(--color-accent-dark, var(--color-accent, #0090C8)); }
.es2-loc-link { color: inherit; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; cursor: pointer; }
.es2-loc-link:hover, .es2-loc-link:focus-visible { color: var(--color-accent-dark, var(--color-accent, #0090C8)); text-decoration-style: solid; }
.es2-loc-warn { color: var(--color-warning, #d9822b); margin-left: .15rem; }

/* ── Badges (status / recurring / interest at a glance) ───────────────────── */
.es2-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
.es2-badges-body { margin: 0 0 .6rem; }
.es2-badge {
    display: inline-block;
    padding: .12rem .55rem;
    border-radius: 999px;
    font-size: var(--font-size-xs, .75rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: 1.5;
    white-space: nowrap;
    background: var(--color-bg, #f5f7fa);
    color: var(--color-text-muted, #6c757d);
    border: 1px solid var(--color-border, #e0e0e0);
}
.es2-badge-danger  { background: var(--color-danger-bg, #ffebee);  color: var(--color-danger, #c62828);  border-color: var(--color-danger-border, #ef9a9a); }
.es2-badge-warning { background: var(--color-warning-bg, #fff3e0); color: var(--color-warning, #e65100); border-color: var(--color-warning-border, #ffcc80); }
.es2-badge-info    { background: var(--color-info-bg, #e1f5fe);    color: var(--color-info, #0277bd);    border-color: var(--color-info-border, #81d4fa); }
/* Recurring badge — outline style (bright-green border, no fill). Only used for ↻ Recurring. */
.es2-badge-success { background: transparent; color: var(--color-text, #1a1f2e); border-color: #00FF00; }
.es2-badge-cyan    { background: var(--color-accent-light, #e0f6fe); color: var(--color-accent-deeper, var(--color-accent-dark, #0090C8)); border-color: var(--color-accent, #00B0F0); }
.es2-badge-free     { background: #00a000; color: #fff; border-color: #00a000; }
.es2-badge-interest { background: #00FF00; color: #003300; border-color: #00FF00; }
.es2-badge-maybe    { background: #008000; color: #fff; border-color: #008000; }
/* Time-proximity badges — solid green so "happening now / soon" reads at a glance. */
.es2-badge-now      { background: #00FF00; color: #003300; border-color: #00FF00; }
.es2-badge-soon     { background: #006400; color: #fff; border-color: #006400; }
/* People-count card pills, each a distinct hue so they read apart at a glance:
   invited = violet, going = green, interested = amber, members = slate-blue. */
.es2-badge-invited    { background: #efe7fb; color: #6d28d9; border-color: #c4b5fd; }
.es2-badge-going      { background: #e3f6e8; color: #15803d; border-color: #a7e0bb; }
.es2-badge-interested { background: #fff4e0; color: #b45309; border-color: #fcd9a3; }
.es2-badge-members    { background: #e6edfb; color: #1d4ed8; border-color: #b6c8f3; }
/* These badges inside a GroupSearch result-card (block-flow children) — give them their own line. */
.result-card-countpill { display: inline-block; margin: .25rem .35rem 0 0; }
.es2-badge-hidden   { display: none; }

/* ── Expanded body ────────────────────────────────────────────────────────── */
.es2-body { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--color-border, #e0e0e0); }
.es2-desc { margin: .25rem 0 .75rem; color: var(--color-text, #1a1f2e); white-space: pre-wrap; }
.es2-line { font-size: var(--font-size-sm, .875rem); color: var(--color-text, #1a1f2e); margin-bottom: .4rem; }
.es2-line-label { color: var(--color-text-muted, #6c757d); font-weight: var(--font-weight-medium, 500); }
/* Last-updated freshness line — quiet metadata, sits just above the actions row. */
.es2-updated { color: var(--color-text-muted, #6c757d); font-size: var(--font-size-xs, .8125rem); margin-top: .35rem; }
.es2-updated .es2-line-label { color: inherit; }

/* Interest segmented control — pills; active level is color-coded. */
.es2-interest { display: flex; flex-wrap: wrap; gap: .4rem; margin: .25rem 0 .85rem; }
.es2-int-btn { cursor: pointer; }
.es2-int-btn[disabled] { opacity: .6; cursor: default; }
.es2-int-btn.active[data-level="Y"] { background: #00FF00;                       border-color: #00FF00;                       color: #003300; }
.es2-int-btn.active[data-level="M"] { background: #008000;                       border-color: #008000;                       color: #fff; }
.es2-int-btn.active[data-level="N"] { background: var(--color-danger, #c62828);  border-color: var(--color-danger, #c62828);  color: #fff; }
.es2-int-btn.active[data-level="Q"] { background: var(--color-accent, #00B0F0);  border-color: var(--color-accent, #00B0F0);  color: #fff; }

/* Match GroupSearch's .result-card-actions spacing so the View Details / Map /
   Share buttons don't butt up against each other. */
.es2-actions { margin-top: .5rem; display: flex; gap: .5rem; flex-wrap: wrap; }

/* ── Pager / footer ───────────────────────────────────────────────────────── */
.es2-showmore { text-align: center; margin: 1rem 0; }
.es2-showmore .note { display: block; margin-bottom: .5rem; }
.es2-footer-actions { margin-top: 1rem; }

/* Card removal animation when a card no longer matches the active filter. */
.es2-removing {
    opacity: 0;
    transform: translateX(-12px);
    transition: opacity .25s var(--ease-in-out, ease), transform .25s var(--ease-in-out, ease);
}
@media (prefers-reduced-motion: reduce) { .es2-removing { transition: none; } }

/* ══════════════════════════════════════════════════════════════════════════
   Interests2.aspx — PacklistPRO-styled interest tagging
   Reuses the existing .swatch palette so chips, filter pills, and rating
   buttons all read from one set of level colors:
     Love  #d4edbc / #2d5016 / #84cc16   Like #b9d8a7 / #1b3b0f / #65a30d
     Meh   #cfe2ff / #084298 / #0d6efd   Hide #f8d7da / #842029 / #dc3545
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Intro / progress ─────────────────────────────────────────────────────── */
.interest-intro .interest-progress {
    display: block;
    font-size: 0.95rem;
    color: var(--color-text, #1a1f2e);
    margin: 0.25rem 0 0.25rem;
}
.interest-howto { margin-top: 0.5rem; }
.interest-howto > summary {
    cursor: pointer;
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-accent, #00B0F0);
    font-size: 0.9rem;
    padding: 0.25rem 0;
    list-style: revert;
}
.interest-howto > summary:hover { text-decoration: underline; }
.interest-howto-body { margin-top: 0.5rem; }
.interest-legend { list-style: none; padding: 0; margin: 0.5rem 0; }
.interest-legend li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
    font-size: 0.9rem;
    line-height: 1.4;
}
.interest-legend .swatch { flex: 0 0 auto; }

/* ── Filter pills (asp:CheckBox renders span.class > input + label) ────────── */
.interest-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.25rem 0 0.85rem;
}
.interest-filter-pill { display: inline-flex; position: relative; }
.interest-filter-pill > input[type="checkbox"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.interest-filter-pill > label {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    border: 1.5px solid var(--color-border, #e0e0e0);
    background: var(--color-bg-card, #fff);
    color: var(--color-text-muted, #6c757d);
    font-size: 0.85rem;
    font-weight: var(--font-weight-medium, 500);
    cursor: pointer;
    user-select: none;
    transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.interest-filter-pill > input:hover + label { border-color: var(--color-accent, #00B0F0); }
.interest-filter-pill > input:focus-visible + label {
    outline: 2px solid var(--color-accent, #00B0F0);
    outline-offset: 2px;
}
.interest-filter-pill.is-top > input:checked + label { background: #d4edbc; color: #2d5016; border-color: #84cc16; }
.interest-filter-pill.is-yes > input:checked + label { background: #b9d8a7; color: #1b3b0f; border-color: #65a30d; }
.interest-filter-pill.is-meh > input:checked + label { background: #cfe2ff; color: #084298; border-color: #0d6efd; }
.interest-filter-pill.is-no  > input:checked + label { background: #f8d7da; color: #842029; border-color: #dc3545; }

/* ── Your-interest chips, grouped by level ────────────────────────────────── */
.interest-tag-group { margin: 0.35rem 0 0.65rem; }
.interest-tag-group-head {
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, #6c757d);
    margin: 0.35rem 0 0.35rem;
}
.interest-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.3rem 0.2rem 0.6rem;
    margin: 0.2rem 0.25rem 0.2rem 0;
    border-radius: 999px;
    border: 1px solid var(--color-border, #e0e0e0);
    background: var(--color-bg-card, #fff);
    font-size: 0.9rem;
    vertical-align: middle;
}
.interest-tag-name { font-weight: var(--font-weight-medium, 500); }
.interest-tag-do,
.interest-tag-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    border: none;
    background: transparent;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}
.interest-tag-do { font-size: 0.95rem; }
.interest-tag-remove { font-size: 1.3rem; opacity: 0.6; }
.interest-tag-do:hover,
.interest-tag-remove:hover {
    background: rgba(0, 0, 0, 0.1);
    text-decoration: none;
    opacity: 1;
}
.interest-tag.is-top { background: #00ff00; color: #14310a; border-color: #14a814; }
.interest-tag.is-yes { background: #99ff99; color: #1b3b0f; border-color: #3fbf3f; }
.interest-tag.is-meh { background: #cfe2ff; color: #084298; border-color: #0d6efd; }
.interest-tag.is-no  { background: #f8d7da; color: #842029; border-color: #dc3545; }

/* ── Browse & rate rows ───────────────────────────────────────────────────── */
.interest-rate-list { margin-top: 0.25rem; }
.interest-rate-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    padding: 0.6rem 0.15rem;
    border-bottom: 1px solid var(--color-border, #e0e0e0);
}
.interest-rate-row:last-child { border-bottom: none; }
.interest-rate-link {
    flex: 1 1 11rem;
    min-width: 0;
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text, #1a1f2e);
    text-decoration: none;
}
.interest-rate-link:hover { color: var(--color-accent, #00B0F0); text-decoration: none; }
.interest-rate-search { opacity: 0.45; font-size: 0.85em; }
.interest-rate-buttons { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.rate-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 2.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1.5px solid var(--color-border, #e0e0e0);
    background: var(--color-bg-card, #fff);
    color: var(--color-text, #1a1f2e);
    font-size: 0.85rem;
    font-weight: var(--font-weight-medium, 500);
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.rate-btn:hover { text-decoration: none; }
.rate-btn:focus-visible { outline: 2px solid var(--color-accent, #00B0F0); outline-offset: 2px; }
.rate-emoji { font-size: 1.1rem; line-height: 1; }
.rate-btn-sm { min-height: 2.1rem; padding: 0.25rem 0.6rem; font-size: 0.8rem; }

/* Level-tinted borders; fill on hover/focus so the choice is obvious. */
.rate-top { border-color: #84cc16; }
.rate-top:hover, .rate-top:focus-visible { background: #d4edbc; color: #2d5016; border-color: #84cc16; }
.rate-yes { border-color: #65a30d; }
.rate-yes:hover, .rate-yes:focus-visible { background: #b9d8a7; color: #1b3b0f; border-color: #65a30d; }
.rate-meh { border-color: #0d6efd; }
.rate-meh:hover, .rate-meh:focus-visible { background: #cfe2ff; color: #084298; border-color: #0d6efd; }
.rate-no { border-color: #dc3545; }
.rate-no:hover, .rate-no:focus-visible { background: #f8d7da; color: #842029; border-color: #dc3545; }
.rate-btn.is-neutral { border-color: var(--color-border, #e0e0e0); }
.rate-btn.is-neutral:hover { background: var(--color-bg, #f5f7fa); border-color: var(--color-accent, #00B0F0); }

.interest-rate-grp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: var(--color-bg, #f5f7fa);
    border: 1px solid var(--color-border, #e0e0e0);
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text-muted, #6c757d);
}

/* ── Pager ────────────────────────────────────────────────────────────────── */
.interest-pager {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.85rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--color-border, #e0e0e0);
}
.interest-pager-label {
    flex: 1 1 6rem;
    text-align: center;
    color: var(--color-text-muted, #6c757d);
    font-size: 0.85rem;
}
.interest-pager-size { display: inline-flex; align-items: center; gap: 0.4rem; }
.interest-pager-size .input-label { margin: 0; }
.interest-pager-size .dropdown { width: auto; min-width: 4rem; }

/* ── Admin tools card ─────────────────────────────────────────────────────── */
.interest-admin > summary.card-title { cursor: pointer; }
.interest-admin[open] > summary.card-title { margin-bottom: 0.75rem; }

/* ══════════════════════════════════════════════════════════════════════════
   MANAGE EVENT TAGS 2 (ManageEventTags2.aspx) — PLP-look tag chips.
   Event tags render as chips; each carries a vote-summary badge so the
   organizer can see at a glance what members want to do. Generic chrome
   (cards, search row, buttons, empty-state) uses the shared component classes;
   only the chips + stat strip are page-specific, and all colors come from the
   shared tokens that adapt to dark mode (no light-only hexes on adaptive text).
   ══════════════════════════════════════════════════════════════════════════ */

/* Hero card */
.met-hero .met-event-name {
    font-size: var(--font-size-xl, 1.375rem);
    font-weight: var(--font-weight-bold, 600);
    line-height: 1.25;
    margin: 0 0 0.35rem;
    color: var(--color-text, #1a1f2e);
}
.met-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.9rem;
    margin-top: 0.7rem;
    font-size: 0.9rem;
    color: var(--color-text-muted, #6c757d);
}
.met-stat { display: inline-flex; align-items: center; gap: 0.3rem; }
.met-stat b { color: var(--color-text, #1a1f2e); font-weight: var(--font-weight-bold, 600); }
.met-stat-dim { font-style: italic; }
.met-stat-link {
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-link, #00B0F0);
    text-decoration: none;
    white-space: nowrap;
}
.met-stat-link:hover { text-decoration: underline; }

/* Chip container — shared by current tags, search results, and popular */
.met-tags { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.25rem; }

/* A tag currently on the event (accent border + adaptive info tint = "on") */
.met-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 100%;
    padding: 0.28rem 0.3rem 0.28rem 0.7rem;
    border-radius: 999px;
    border: 1.5px solid var(--color-accent, #00B0F0);
    background: var(--color-info-bg, #e1f5fe);
    color: var(--color-text, #1a1f2e);
    font-size: 0.92rem;
}
.met-tag-name {
    font-weight: var(--font-weight-medium, 500);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Vote-summary badge inside a tag chip */
.met-votes {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.08rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--color-border, #e0e0e0);
    background: var(--color-bg-card, #fff);
    color: var(--color-text-muted, #6c757d);
    font-size: 0.76rem;
    font-weight: var(--font-weight-bold, 600);
    line-height: 1.4;
    white-space: nowrap;
}
.met-votes.is-keen {
    border-color: var(--color-success-border, #a5d6a7);
    background: var(--color-success-bg, #e8f5e9);
    color: var(--color-success, #2e7d32);
}

/* × remove control on a tag chip */
.met-tag-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 auto;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font-size: 1.25rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    opacity: 0.6;
    transition: background-color 0.15s, opacity 0.15s;
}
.met-tag-remove:hover,
.met-tag-remove:focus-visible {
    background: rgba(127, 127, 127, 0.25);
    opacity: 1;
    text-decoration: none;
    outline: none;
}

/* "＋ Tag" add chips (search results + popular quick-add) */
.met-add {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    border: 1.5px solid var(--color-border, #e0e0e0);
    background: var(--color-bg-card, #fff);
    color: var(--color-text, #1a1f2e);
    font-size: 0.9rem;
    font-weight: var(--font-weight-medium, 500);
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.met-add::before {
    content: "＋";
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-save-btn, #32cd32);
}
.met-add:hover,
.met-add:focus-visible {
    border-color: var(--color-save-btn, #32cd32);
    background: var(--color-success-bg, #e8f5e9);
    color: var(--color-text, #1a1f2e);
    text-decoration: none;
    outline: none;
}

/* Sub-label above the popular-tags row */
.met-sub {
    margin: 0.95rem 0 0.4rem;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, #6c757d);
}

/* ══════════════════════════════════════════════════════════════════════════
   INTEREST TRACKER 2 (InterestTracker2.aspx) — PLP-look cards.
   The Status value drives both the card's left border (.it-card.is-*) and the
   chip (.it-badge.is-*); they share one palette so a card reads at a glance.
   Fixed status hues mirror the existing .interest-tag / .swatch families.
   ══════════════════════════════════════════════════════════════════════════ */

/* At-a-glance count strip */
.it-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.25rem 0 0.75rem;
}
.it-stat {
    flex: 1 1 6rem;
    min-width: 0;
    text-align: center;
    padding: 0.55rem 0.5rem;
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: var(--border-radius, 10px);
    background: var(--color-bg, #f5f7fa);
}
.it-stat-num {
    display: block;
    font-size: 1.5rem;
    font-weight: var(--font-weight-bold, 600);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.it-stat-label {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: var(--color-text-muted, #6c757d);
}
.it-stat.is-soon  { border-top: 3px solid #0d6efd; }
.it-stat.is-often { border-top: 3px solid #2e9e5b; }
.it-stat.is-again { border-top: 3px solid #0f9d8a; }
.it-stat.is-unset { border-top: 3px solid #adb5bd; }

/* How-to / legend (collapsed by default) */
.it-howto { margin-top: 0.5rem; }
.it-howto > summary {
    cursor: pointer;
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-accent, #00B0F0);
}
.it-howto > summary:hover { text-decoration: underline; }
.it-howto-body { margin-top: 0.5rem; }
.it-legend { list-style: none; padding: 0; margin: 0.25rem 0; }
.it-legend li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.3rem;
    font-size: 0.9rem;
    color: var(--color-text-muted, #6c757d);
}
.it-legend .it-badge { flex: 0 0 auto; }

/* List + card */
.it-list { display: flex; flex-direction: column; gap: 0.6rem; }
.it-card {
    background: var(--color-bg-card, #fff);
    border: 1px solid var(--color-border, #e0e0e0);
    border-left: 6px solid var(--color-border, #e0e0e0);
    border-radius: var(--border-radius, 10px);
    box-shadow: var(--shadow-sm);
    padding: 0.7rem 0.85rem;
}
.it-card-head {
    display: flex;
    align-items: center;
    gap: 0.5rem 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.55rem;
}
.it-card-name {
    font-size: 1.1rem;
    font-weight: var(--font-weight-bold, 600);
    line-height: 1.2;
    margin-right: auto;          /* push the status chip to the right */
    word-break: break-word;
}
.it-card-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem 0.85rem;
}
.it-field { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.it-field .input-label { margin: 0; }
.it-field .dropdown { width: 100%; }

/* Flags row — hidden until the user turns on "do / follow / competitive".
   Always in the DOM so the checkbox values round-trip on Save. */
.it-card-flags { display: none; }
.it-show-flags .it-card-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.1rem;
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--color-border, #e0e0e0);
}

/* Status chip */
.it-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.6rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: var(--font-weight-bold, 600);
    white-space: nowrap;
    border: 1px solid transparent;
}

/* Shared status palette — left border + chip (light mode) */
.it-card.is-unset   { border-left-color: #ced4da; }
.it-card.is-soon    { border-left-color: #0d6efd; }
.it-card.is-someday { border-left-color: #6c757d; }
.it-card.is-often   { border-left-color: #2e9e5b; }
.it-card.is-again   { border-left-color: #0f9d8a; }
.it-card.is-crossed { border-left-color: #adb5bd; }
.it-card.is-remove  { border-left-color: #dc3545; }

.it-badge.is-unset   { background: #f1f3f5; color: #495057; border-color: #dee2e6; }
.it-badge.is-soon    { background: #cfe2ff; color: #084298; border-color: #9ec5fe; }
.it-badge.is-someday { background: #e9ecef; color: #343a40; border-color: #ced4da; }
.it-badge.is-often   { background: #d4edbc; color: #2d5016; border-color: #a3d977; }
.it-badge.is-again   { background: #c7f0e4; color: #0b5345; border-color: #8fdcc8; }
.it-badge.is-crossed { background: #e2e3e5; color: #41464b; border-color: #cfd2d6; }
.it-badge.is-remove  { background: #f8d7da; color: #842029; border-color: #f1aeb5; }

/* Dark mode — soften the chip fills, keep borders legible */
[data-theme="dark"] .it-stat { background: rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .it-badge.is-unset   { background: #2a2f36; color: #ced4da; border-color: #3a4048; }
[data-theme="dark"] .it-badge.is-soon    { background: #0b2a52; color: #aecbfa; border-color: #16407d; }
[data-theme="dark"] .it-badge.is-someday { background: #2a2f36; color: #ced4da; border-color: #3a4048; }
[data-theme="dark"] .it-badge.is-often   { background: #14361a; color: #bfe6a6; border-color: #245a2c; }
[data-theme="dark"] .it-badge.is-again   { background: #0e3a32; color: #a6e6d4; border-color: #1c5e52; }
[data-theme="dark"] .it-badge.is-crossed { background: #2a2d30; color: #c4c8cc; border-color: #3a3f44; }
[data-theme="dark"] .it-badge.is-remove  { background: #4a1418; color: #f1aeb5; border-color: #7a2730; }

/* Single column on narrow screens */
@media (max-width: 575px) {
    .it-card-controls { grid-template-columns: 1fr; }
    .it-stat-num { font-size: 1.3rem; }
}

/* ════════════════════════════════════════════════════════════════════════
   ManageEventMembers2 — member roster (PacklistPRO-look redesign)
   Layout glue only, built on the shared tokens + .result-card / .status-badge
   / .pill. Colors come from theme variables so dark mode follows for free.
   ════════════════════════════════════════════════════════════════════════ */

/* Hero — event name + at-a-glance count chips */
.mem2-hero-name {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    line-height: 1.2;
    margin-bottom: 0.6rem;
    overflow-wrap: anywhere;
}
.mem2-stats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.mem2-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.mem2-stat-ico { align-self: center; }
.mem2-stat-n { font-weight: var(--font-weight-bold); font-size: var(--font-size-base); color: var(--color-text); }

/* Member card — reuses .result-card; the left border encodes role/state while
   the card body stays on the theme surface so every badge/button is legible.
   (Comes after the .result-card / .result-card--* rules above, so these
   border-left-color overrides win the cascade.) */
.mem2-card { cursor: default; }                 /* reset .result-card whole-card pointer */
.mem2-card--organizer { border-left-color: var(--color-success, #2e7d32); }
.mem2-card--banned    { border-left-color: var(--color-danger, #c62828); opacity: 0.82; }
.mem2-card--normal    { border-left-color: var(--color-border); }

.mem2-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.5rem; }
.mem2-name { font-size: 1.05rem; font-weight: var(--font-weight-bold); }
.mem2-name:hover { text-decoration: underline; }
.mem2-you { font-style: italic; }
.mem2-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem; }
.mem2-sep { color: var(--color-text-light); }

/* Collapsible RSVP details */
.mem2-details { margin-top: 0.5rem; }
.mem2-details > summary {
    cursor: pointer;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
}
.mem2-details > summary:hover { color: var(--color-accent); }
.mem2-details[open] > summary { margin-bottom: 0.35rem; }
.mem2-dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 0.1rem 0.6rem; }
.mem2-dl dt { font-weight: var(--font-weight-bold); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.mem2-dl dd { margin: 0; font-size: var(--font-size-sm); overflow-wrap: anywhere; }

/* Action row + status filter pills */
.mem2-actions { margin-top: 0.6rem; }
.mem2-filter-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.6rem; }

@media (max-width: 575px) {
    .mem2-dl { grid-template-columns: 1fr; gap: 0; }
    .mem2-dl dt { margin-top: 0.3rem; }
    .mem2-actions .button { flex: 1 1 auto; text-align: center; }
}

/* ════════════════════════════════════════════════════════════════════════
   Users2 — admin user roster (PacklistPRO-look redesign of Users.aspx)
   Layout glue only, built on the shared tokens + .result-card / .status-badge
   / .pill. Colors come from theme variables so dark mode follows for free.
   ════════════════════════════════════════════════════════════════════════ */

/* Hero — lead line + at-a-glance count chips */
.u2-hero-lead { margin: 0 0 0.6rem; color: var(--color-text-muted); }
.u2-stats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.u2-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.u2-stat-ico { align-self: center; }
.u2-stat-n { font-weight: var(--font-weight-bold); font-size: var(--font-size-base); color: var(--color-text); }

/* Account card — reuses .result-card; the left border encodes Active vs
   Deactivated while the body stays on the theme surface so every badge/button
   is legible. (Comes after the .result-card / .result-card--* rules above, so
   these border-left-color overrides win the cascade.) */
.u2-card { cursor: default; }                 /* reset .result-card whole-card pointer */
.u2-card--active      { border-left-color: var(--color-border); }
.u2-card--deactivated { border-left-color: var(--color-danger, #c62828); opacity: 0.82; }

.u2-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.5rem; }
.u2-name { font-size: 1.05rem; font-weight: var(--font-weight-bold); }
.u2-name:hover { text-decoration: underline; }
.u2-you { font-style: italic; }
.u2-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem; }
.u2-sep { color: var(--color-text-light); }

/* Admin badge — accent-filled variant of .status-badge */
.u2-badge-admin { background-color: var(--color-accent); color: #fff; }

/* Collapsible login / device details */
.u2-details { margin-top: 0.5rem; }
.u2-details > summary {
    cursor: pointer;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
}
.u2-details > summary:hover { color: var(--color-accent); }
.u2-details[open] > summary { margin-bottom: 0.35rem; }
.u2-dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 0.1rem 0.6rem; }
.u2-dl dt { font-weight: var(--font-weight-bold); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.u2-dl dd { margin: 0; font-size: var(--font-size-sm); overflow-wrap: anywhere; }

/* Action row + status filter pills */
.u2-actions { margin-top: 0.6rem; }
.u2-filter-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.6rem; }

@media (max-width: 575px) {
    .u2-dl { grid-template-columns: 1fr; gap: 0; }
    .u2-dl dt { margin-top: 0.3rem; }
    .u2-actions .button { flex: 1 1 auto; text-align: center; }
}

/* ============================================================
   Debug2 — admin diagnostics page (dbg-*)
   PLP-look redesign of Debug.aspx. Built on shared .card /
   .card-section-* / .about-hero / .td-quicknav tokens; only the
   key/value grid + count chips live here. Theme-driven, so dark
   mode follows for free.
   ============================================================ */
.dbg-lead { margin: 0 0 0.6rem; font-size: var(--font-size-base); }
.dbg-role { color: var(--color-accent); font-weight: var(--font-weight-bold); }

/* Hero at-a-glance count chips (same shape as Users2's .u2-stat) */
.dbg-stats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dbg-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.dbg-stat-ico { align-self: center; }
.dbg-stat-n { font-weight: var(--font-weight-bold); font-size: var(--font-size-base); color: var(--color-text); font-variant-numeric: tabular-nums; }

/* Tools row (filter + copy/download) keeps its controls vertically centered */
.dbg-tools { align-items: center; }

/* Count badge appended to a section heading */
.dbg-count {
    display: inline-block;
    margin-left: 0.45rem;
    padding: 0.05rem 0.5rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
    font-variant-numeric: tabular-nums;
    vertical-align: middle;
}

/* Per-card copy button sits top-right of the body */
.dbg-card-tools { display: flex; justify-content: flex-end; margin-bottom: 0.5rem; }

/* Anchor offset so quick-nav jumps clear the sticky nav (req §6.1) */
.dbg-section { scroll-margin-top: calc(var(--nav-height) + 1rem); }

/* Sub-heading inside a section (Query string / Form / Server …) */
.dbg-subhead {
    margin: 0.9rem 0 0.35rem;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.dbg-subhead:first-child { margin-top: 0; }
.dbg-none { margin: 0.2rem 0 0; }

/* Key/value list — one .dbg-row per field so the global filter can hide rows
   individually and the per-card Copy can read them back out. */
.dbg-dl { display: flex; flex-direction: column; margin: 0; }
.dbg-row {
    display: grid;
    grid-template-columns: 13rem 1fr;
    gap: 0.15rem 0.9rem;
    padding: 0.3rem 0;
    border-bottom: 1px dashed var(--color-border);
}
.dbg-row:last-child { border-bottom: 0; }
.dbg-k {
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    overflow-wrap: anywhere;
}
.dbg-v {
    font-size: var(--font-size-sm);
    overflow-wrap: anywhere;
    white-space: pre-wrap;
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
}
.dbg-empty { color: var(--color-text-light); font-style: italic; font-family: var(--font-family); }
.dbg-redacted { color: var(--color-warning); font-style: italic; font-family: var(--font-family); }

@media (max-width: 575px) {
    .dbg-row { grid-template-columns: 1fr; gap: 0; padding: 0.4rem 0; }
    .dbg-k { margin-bottom: 0.1rem; }
    .dbg-tools .button { flex: 1 1 auto; text-align: center; }
}

/* ============================================================
   MemberMatch2 — PLP-look member-match page (mm2-*)
   Builds on shared .result-card / .match-bar / .status-badge;
   only the page-specific layout lives here.
   ============================================================ */
.mm2-intro { color: var(--color-text-muted); margin: 0 0 0.65rem; }

/* Hero at-a-glance stat strip */
.mm2-stats { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: baseline; }
.mm2-stat { display: inline-flex; align-items: baseline; gap: 0.3rem; }
.mm2-stat-ico { align-self: center; font-size: 1.05rem; }
.mm2-stat-n { font-weight: var(--font-weight-bold); font-size: var(--font-size-lg); color: var(--color-text); font-variant-numeric: tabular-nums; }
.mm2-stat-l { color: var(--color-text-muted); font-size: var(--font-size-sm); }

/* Best-Matches strength pills */
.mm2-filter-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.6rem; }

/* Match card — extends .result-card; left edge encodes match strength.
   The base .result-card hardcodes --result-bg:#fff and expects a
   .result-card--state variant to set the surface tokens; our strength
   classes only set the accent, so set the surface here too — otherwise the
   card stays white in dark mode and the light text is unreadable (same fix
   as .pr-card / .result-card--normal). Theme tokens keep light mode correct. */
.mm2-card {
    cursor: default;
    --result-bg: var(--color-bg-card);
    --result-fg: var(--color-text);
}
.mm2-card--strong { --result-accent: var(--color-success, #2e7d32); }
.mm2-card--good   { --result-accent: var(--color-accent, #00B0F0); }
.mm2-card--light  { --result-accent: var(--color-border); }

.mm2-card-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.5rem; }
.mm2-name { font-size: 1.05rem; font-weight: var(--font-weight-bold); }
.mm2-loc { color: var(--color-text-muted); font-size: var(--font-size-sm); }

.mm2-shared { margin: 0.4rem 0 0.2rem; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.mm2-shared b { color: var(--color-text); font-size: var(--font-size-base); font-weight: var(--font-weight-bold); }

.mm2-bars { display: flex; flex-direction: column; gap: 0.25rem; }

.mm2-incontacts { align-self: center; color: var(--color-success, #2e7d32); font-weight: var(--font-weight-bold); font-size: var(--font-size-sm); }

/* Add/Remove-Contact toggle + "✓ Contact" badge: only one button shows at a time
   (the other carries the `hidden` attribute, flipped by the page script). .button and
   .status-badge both set `display`, which beats the UA [hidden] rule — so force it. */
.ms2-add[hidden],
.ms2-remove[hidden],
.mm2-contact-badge[hidden] { display: none !important; }

/* Matches-by-interest groups */
.mm2-int { margin-bottom: 0.85rem; }
.mm2-int-people { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.25rem; }

@media (max-width: 575px) {
    .mm2-card .result-card-actions .button { flex: 1 1 auto; text-align: center; }
}

/* ============================================================
   MemberSearch2 — PLP-look "Find Members" search (ms2-*).
   Reuses the .mm2-* cards/hero, .result-card and .status-badge;
   only the search-specific layout glue lives here.
   ============================================================ */
.ms2-intro { color: var(--color-text-muted); margin: 0 0 0.65rem; }

/* "to" separator inside the age range row (neutralise .input-label block margin) */
.member-age-to { margin: 0; align-self: center; color: var(--color-text-muted); }

/* Recency checkboxes grouped as a subtle sub-section under the core filters */
.ms2-recency { margin-top: 0.85rem; padding-top: 0.85rem; border-top: 1px dashed var(--color-border); }
.ms2-recency .form-group { margin-bottom: 0.4rem; }
.ms2-recency .form-group:last-child { margin-bottom: 0; }

/* Interest picker — revealed by JS only for "Specified Below" */
.ms2-picker { margin-top: 0.75rem; padding-top: 0.85rem; border-top: 1px dashed var(--color-border); }
.ms2-picker .form-group:last-child { margin-bottom: 0; }
.ms2-picker .toolbar-row { align-items: flex-start; }
.ms2-picked-box { min-height: 5.5rem; }

/* Primary search CTA — centred, prominent */
.ms2-search-row { display: flex; justify-content: center; margin: 0.5rem 0 1.5rem; }
.ms2-search-row .button { min-width: 220px; font-size: var(--font-size-lg); padding: 0.7rem 1.75rem; }

.ms2-results-head { display: block; margin: 1.25rem 0 0.5rem; }

@media (max-width: 575px) {
    .ms2-search-row .button { width: 100%; }
}

/* ════════════════════════════════════════════════════════════════════════
   PopularInterests2.aspx — PacklistPRO-look ranked leaderboard.
   Built entirely on the shared design tokens so light/dark "just work".
   (The original .popular-interests-table styles above are kept for the
   legacy PopularInterests.aspx, which still uses them.)
   ════════════════════════════════════════════════════════════════════════ */
.pi-intro { margin: 0 0 0.85rem; }

/* Hero stat chips */
.pi-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.pi-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    white-space: nowrap;
    text-decoration: none;
}
.pi-stat b { color: var(--color-text); font-weight: var(--font-weight-bold); }
.pi-stat-mine {
    background: color-mix(in srgb, var(--color-accent) 12%, var(--color-bg-card));
    border-color: color-mix(in srgb, var(--color-accent) 40%, var(--color-border));
    color: var(--color-text);
}
.pi-stat-link { cursor: pointer; transition: border-color var(--transition-fast), color var(--transition-fast); }
.pi-stat-link:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }

/* Filter row */
.pi-filter { margin-bottom: 0.9rem; }
.pi-filter .input-clearable { max-width: 30rem; }
.pi-filter-count { display: block; margin-top: 0.3rem; }
.pi-nomatch { margin-top: 0.6rem; text-align: center; }

/* Ranked list */
.pi-list { display: flex; flex-direction: column; gap: 0.4rem; }

.pi-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.8rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-left: 3px solid transparent;
    border-radius: var(--border-radius-sm);
    color: var(--color-text);
    text-decoration: none;
    transition: border-color var(--transition-fast),
                box-shadow var(--transition-fast),
                background-color var(--transition-fast);
}
.pi-item:hover,
.pi-item:focus-visible {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-sm);
    text-decoration: none;
}
.pi-item:hover .pi-rank-name { color: var(--color-accent-dark); }
.pi-item:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 1px; }

/* Rank badge (medal or number) */
.pi-rank-num {
    flex: 0 0 auto;
    min-width: 2.1rem;
    text-align: center;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-light);
    font-variant-numeric: tabular-nums;
}
.pi-rank1 .pi-rank-num,
.pi-rank2 .pi-rank-num,
.pi-rank3 .pi-rank-num { font-size: 1.3rem; }
.pi-item.pi-rank1 { border-left-color: #f5b301; }  /* gold   */
.pi-item.pi-rank2 { border-left-color: #b6bcc4; }  /* silver */
.pi-item.pi-rank3 { border-left-color: #cd7f32; }  /* bronze */

/* Name + popularity bar stack */
.pi-rank-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.pi-rank-name {
    font-weight: var(--font-weight-medium);
    line-height: 1.25;
    transition: color var(--transition-fast);
}
.pi-bar {
    display: block;
    height: 6px;
    width: 100%;
    background: var(--color-border);
    border-radius: 999px;
    overflow: hidden;
}
.pi-bar-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--color-accent), var(--color-accent-dark));
}

/* Member count */
.pi-rank-count {
    flex: 0 0 auto;
    min-width: 3.4rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.1;
}
.pi-rank-count b { font-size: var(--font-size-base); font-variant-numeric: tabular-nums; }
.pi-rank-count-lbl { font-size: var(--font-size-xs); color: var(--color-text-muted); }

/* "Yours" — interests the current user loves/likes */
.pi-item.is-yours { background: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg-card)); }
.pi-yours {
    display: inline-flex;
    align-items: center;
    margin-left: 0.45rem;
    padding: 0.05rem 0.45rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
    color: var(--color-accent-dark);
    background: var(--color-accent-light);
    border: 1px solid color-mix(in srgb, var(--color-accent) 35%, transparent);
    border-radius: 999px;
    vertical-align: middle;
}

@media (max-width: 420px) {
    .pi-item { gap: 0.55rem; padding: 0.5rem 0.6rem; }
    .pi-rank-num { min-width: 1.7rem; }
    .pi-rank-count { min-width: 3rem; }
}

/* ── MessageSent2 — confirmation hero (PLP-look redesign) ────────────────
   Page-scoped to qMeet. Reuses shared tokens so it's theme-aware; the only
   bespoke piece is the success-tinted check badge. The shared .ms-detail-text
   carries the muted follow-up paragraph (constrained for readable line length
   when centered). --------------------------------------------------------- */
.ms2-hero { padding-top: var(--card-padding-lg); padding-bottom: var(--card-padding-lg); }

.ms2-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
    font-size: 2.1rem;
    line-height: 1;
    box-shadow: var(--shadow-sm);
    animation: ms2CheckPop 0.28s var(--ease-out-back, ease-out) both;
}

.ms2-headline { margin: 0 0 0.5rem; }

/* Keep the centered follow-up paragraph to a comfortable measure. */
.ms2-hero .ms-detail-text {
    max-width: 46ch;
    margin-left: auto;
    margin-right: auto;
}

@keyframes ms2CheckPop {
    from { opacity: 0; transform: scale(0.6); }
    to   { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .ms2-check { animation: none; }
}

/* ════════════════════════════════════════════════════════════════════════
   ProductRatings2 — colour-coded rating cards + chips, collapsed filter grid.
   Builds on the shared .result-card system (qMeet-local, above). The same
   .pr-q-* quality band is applied to the card (left border) and to each score
   chip (fill); compound selectors keep those two uses from colliding.
   ════════════════════════════════════════════════════════════════════════ */

/* Each result is an <a class="result-card pr-card pr-q-…">. Inherit the
   result-card shell; just add a hover lift and tidy the inner spacing.
   The base .result-card hardcodes --result-bg:#fff and expects a
   .result-card--state variant to override it for dark mode; our quality
   classes only set the accent, so we set the surface tokens here — otherwise
   the card stays white in dark mode and the light text is unreadable. */
.pr-card {
    --result-bg: var(--color-bg-card);
    --result-fg: var(--color-text);
    /* Rendered as an <a>, which defaults to display:inline — that collapses the
       card box to the title's line height so the border only spans the title and
       the meta/chips overflow below. The original .result-card is a <div>. */
    display: block;
    text-decoration: none;
    transition: transform var(--transition-fast, .15s) var(--ease-out-quint, ease), box-shadow var(--transition-fast, .15s) ease;
}
.pr-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
.pr-card:hover .result-card-title { text-decoration: underline; }
.pr-card .result-card-title { display: inline; }
.pr-card .result-card-meta { color: var(--color-text-muted); }

/* Card left-border accent by overall quality. */
.pr-card.pr-q-great { --result-accent: var(--color-save-btn, #32cd32); }
.pr-card.pr-q-good  { --result-accent: var(--color-success, #2e7d32); }
.pr-card.pr-q-ok    { --result-accent: var(--color-warning, #e65100); }
.pr-card.pr-q-poor  { --result-accent: var(--color-danger,  #c62828); }

/* "Yours" badge — sits just after the product title. */
.pr-yours {
    display: inline-block;
    margin-left: 0.45rem;
    padding: 0.02rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: 0.02em;
    vertical-align: middle;
    background: var(--color-accent-light, #e0f6fe);
    color: var(--color-accent-deeper, #005a80);
    border: 1px solid var(--color-accent, #00B0F0);
}

/* Row of taste / value / overall score chips under the meta line. */
.pr-ratings {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.45rem;
}
.pr-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-medium, 500);
    line-height: 1.4;
    background: var(--color-bg, #f5f7fa);
    border: 1px solid var(--color-border, #e0e0e0);
    color: var(--color-text-muted, #6c757d);
    white-space: nowrap;
}
.pr-chip.pr-q-great,
.pr-chip.pr-q-good { background: var(--color-success-bg, #e8f5e9); border-color: var(--color-success-border, #a5d6a7); color: var(--color-success, #2e7d32); }
.pr-chip.pr-q-ok   { background: var(--color-warning-bg, #fff3e0); border-color: var(--color-warning-border, #ffcc80); color: var(--color-warning, #e65100); }
.pr-chip.pr-q-poor { background: var(--color-danger-bg,  #ffebee); border-color: var(--color-danger-border,  #ef9a9a); color: var(--color-danger,  #c62828); }
.pr-chip--overall { font-weight: var(--font-weight-bold, 700); }

/* Result-count line above the cards. */
.pr-result-count {
    display: block;
    margin: 0.25rem 0 0.6rem;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted, #6c757d);
    font-weight: var(--font-weight-medium, 500);
}

/* Collapsed "Filters & Sort" disclosure — keeps the pile of selects out of the
   way until wanted (the whole point of the redesign). */
.pr-filters { margin: 0.5rem 0 0.25rem; }
.pr-filters > summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.2rem;
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text, #1a1f2e);
    list-style: none;
    user-select: none;
}
.pr-filters > summary::-webkit-details-marker { display: none; }
.pr-filters > summary::before {
    content: "▸";
    font-size: 0.8rem;
    color: var(--color-text-muted, #6c757d);
    transition: transform var(--transition-fast, .15s) ease;
}
.pr-filters[open] > summary::before { transform: rotate(90deg); }
.pr-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.5rem 0.9rem;
    margin-top: 0.5rem;
}
.pr-filter-grid .form-group { margin-bottom: 0; }

/* Delete + its confirm checkbox travel together (shown only in edit mode). */
.pr-delete-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}
/* Push the destructive control to the far end of the actions row when there's
   room, so it isn't sitting right beside Save. */
@media (min-width: 640px) {
    .form-actions .pr-delete-wrap { margin-left: auto; }
}

/* ════════════════════════════════════════════════════════════════════════
   EmailTest2 — outbound email / carrier email-to-SMS test tool (PLP-look).
   Layout glue only; all colors are shared theme tokens so dark mode follows
   for free. Reuses .main-card / .card-accent / .check-row / .form-group.
   ════════════════════════════════════════════════════════════════════════ */

/* Hero — lead + "SMTP config in use" fact chips */
.et2-hero-lead { margin: 0 0 0.85rem; }
.et2-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.et2-fact {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    max-width: 100%;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
}
.et2-fact-k {
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
}
.et2-fact-v {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    overflow-wrap: anywhere;
}

/* Recipient checklist — checkbox + the address it targets */
.et2-recip-list {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin: 0.35rem 0 0.6rem;
}
.et2-recip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem 0.6rem;
}
.et2-recip .check-row { min-height: 38px; }      /* denser than the 44px default in this list */
.et2-recip .check-row label { font-weight: var(--font-weight-medium); }
.et2-custom { margin-top: 0.25rem; }

/* Addresses (rendered as <code>) read as plain muted monospace, not chips, so
   they stay quiet inside the dense list and on the colored result rows. */
.et2-addr,
.et2-result-addr {
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    overflow-wrap: anywhere;
}

/* Results — summary line + one row per channel */
.et2-summary {
    margin: 0 0 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.1rem;
}
.et2-sum { font-weight: var(--font-weight-bold); }
.et2-sum-ok { color: var(--color-success); }
.et2-sum-fail { color: var(--color-danger); }
.et2-sum-sep { color: var(--color-text-light); }

.et2-result-list { display: flex; flex-direction: column; gap: 0.5rem; }
.et2-result {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 0.6rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--color-border);
    border-left-width: 4px;
    border-radius: var(--border-radius-sm);
    background: var(--color-bg-card);
}
.et2-result--ok   { border-left-color: var(--color-success); background: var(--color-success-bg); }
.et2-result--fail { border-left-color: var(--color-danger);  background: var(--color-danger-bg); }
.et2-result-ico { font-size: 1.05rem; line-height: 1; font-weight: var(--font-weight-bold); }
.et2-result--ok   .et2-result-ico { color: var(--color-success); }
.et2-result--fail .et2-result-ico { color: var(--color-danger); }
.et2-result-label { font-weight: var(--font-weight-bold); }
.et2-result-status {
    margin-left: auto;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
}
.et2-result-err {
    flex-basis: 100%;
    margin-top: 0.15rem;
    font-size: var(--font-size-sm);
    color: var(--color-danger);
    overflow-wrap: anywhere;
}
@media (max-width: 575px) {
    .et2-result-status { margin-left: 0; }
}

/* ════════════════════════════════════════════════════════════════════════
   SimilarEvents2.aspx — PacklistPRO-look "check before you create" finder.
   Layout glue only; builds on the shared .result-card / .match-bar /
   .status-badge / .empty-state so light/dark "just work". (se2-*)
   ════════════════════════════════════════════════════════════════════════ */
.se2-intro { color: var(--color-text-muted); margin: 0 0 0.9rem; }

/* Prominent proposed-name field — this is the page's single focal input */
.se2-name-group { margin-bottom: 0.85rem; }
.se2-name-input { font-size: var(--font-size-lg); }

.se2-options { margin-bottom: 0.25rem; }
.se2-upcoming-group .checkbox-nowrap { display: inline-flex; align-items: center; gap: 0.4rem; }

/* Centred, prominent primary CTA (mirrors MemberSearch2's search row) */
.se2-search-row { display: flex; justify-content: center; margin-top: 0.5rem; }
.se2-search-row .button { min-width: 240px; font-size: var(--font-size-lg); padding: 0.7rem 1.75rem; }

/* Pre-search "how it helps" steps */
.se2-steps { list-style: none; counter-reset: se2; margin: 0.25rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.se2-steps > li { display: flex; align-items: flex-start; gap: 0.7rem; }
.se2-step-ico { flex: 0 0 auto; font-size: 1.4rem; line-height: 1.4; width: 2.2rem; text-align: center; }
.se2-steps > li > div { padding-top: 0.1rem; }

/* Results region */
.se2-results { margin-top: 0.25rem; }
.se2-results-head { margin: 0.25rem 0 0.6rem; }
.se2-summary { display: block; font-size: var(--font-size-base); }
.se2-filter-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.6rem; }

/* Match card — extends .result-card; left edge encodes match strength.
   (Comes after the .result-card / .result-card--* rules above, so these win.) */
.se2-card--strong { --result-accent: var(--color-success, #2e7d32); }
.se2-card--good   { --result-accent: var(--color-accent, #00B0F0); }
.se2-card--weak   { --result-accent: var(--color-border); }

.se2-card-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.5rem; }
.se2-card-head .result-card-title { flex: 1 1 auto; }

/* Keyword-overlap headline + meter */
.se2-shared { margin: 0.4rem 0 0.3rem; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.se2-shared b { color: var(--color-text); font-size: var(--font-size-base); font-weight: var(--font-weight-bold); }
.se2-meter { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.35rem; max-width: 22rem; }
.se2-meter .match-bar { flex: 1 1 auto; }
.se2-meter-pct { flex: 0 0 auto; font-size: var(--font-size-sm); font-weight: var(--font-weight-bold); color: var(--color-text); font-variant-numeric: tabular-nums; min-width: 2.6rem; text-align: right; }
.se2-timing { color: var(--color-text-muted); }

/* Create-it-anyway CTA */
.se2-cta { border-left: 6px solid var(--color-save-btn, #32cd32); }
.se2-cta-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.se2-cta-text { flex: 1 1 16rem; }
.se2-cta-head { margin: 0 0 0.2rem; }
.se2-cta-sub { margin: 0; }
.se2-cta-btn { flex: 0 0 auto; }

@media (max-width: 575px) {
    .se2-search-row .button { width: 100%; }
    .se2-cta-btn { width: 100%; text-align: center; }
}

/* ════════════════════════════════════════════════════════════════════════
   RemoveDuplicateEvents — admin duplicate-event cleanup (PacklistPRO-look, rde-*)
   Layout glue only; every color is a shared theme token so dark mode follows for
   free. Reuses .main-card / .card-accent / .table-responsive / .modal-* / .pill.
   ════════════════════════════════════════════════════════════════════════ */

/* Hero — lead + at-a-glance count chips (same chip shape as Users2's .u2-stat) */
.rde-hero-lead { margin: 0 0 0.7rem; color: var(--color-text-muted); }
.rde-stats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rde-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.rde-stat-ico { align-self: center; }
.rde-stat-n { font-weight: var(--font-weight-bold); font-size: var(--font-size-base); color: var(--color-text); }

/* Scan card */
.rde-scan-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; }
.rde-scan-note { margin: 0; flex: 1 1 16rem; }

/* Results toolbar — only-diff toggle + group filter + select-all/clear */
.rde-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 0.9rem;
    margin-bottom: 0.6rem;
}
.rde-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    font-size: var(--font-size-sm);
    white-space: nowrap;
}
.rde-search { flex: 1 1 14rem; min-width: 0; }
.rde-toolbar-actions { display: flex; gap: 0.4rem; margin-left: auto; }

/* Sections */
.rde-section { margin-top: 1.25rem; }
.rde-section:first-child { margin-top: 0; }
.rde-section-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid var(--color-border);
    margin: 0 0 0.5rem;
}
.rde-section-ico { width: 0.85rem; height: 0.85rem; border-radius: 50%; display: inline-block; }
.rde-section-ico--definite { background: var(--color-danger, #c62828); }
.rde-section-ico--possible { background: var(--color-warning, #e65100); }
.rde-section-count {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    padding: 0.05rem 0.55rem;
    border-radius: 999px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}
.rde-section-help { margin: 0 0 0.7rem; }

/* All-clear note for an empty section */
.rde-none {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 0.9rem;
    border-radius: var(--border-radius);
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
    font-weight: var(--font-weight-medium);
}
.rde-none-ico { font-weight: var(--font-weight-bold); }

/* Group card — colored header bar encodes definite (red) vs possible (orange) */
.rde-group {
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    overflow: hidden;
    margin-bottom: 0.9rem;
    box-shadow: var(--shadow-sm);
}
.rde-group-hdr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    color: #fff;
    font-size: var(--font-size-sm);
}
.rde-group--definite > .rde-group-hdr { background: var(--color-danger, #c62828); }
.rde-group--possible > .rde-group-hdr { background: var(--color-warning, #e65100); }
.rde-group-kind {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.25);
}
.rde-group-id { font-weight: var(--font-weight-bold); overflow-wrap: anywhere; }
.rde-group-count { margin-left: auto; white-space: nowrap; opacity: 0.92; }
.rde-group-body { padding: 0.6rem 0.75rem; }
.rde-group-trim { margin: 0 0 0.6rem; }

/* Comparison table — transposed: fields down the left, one column per event */
.rde-cmp { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); }
.rde-cmp th,
.rde-cmp td {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--color-border);
    vertical-align: top;
    text-align: left;
}
.rde-field-head { width: 9rem; background: var(--color-bg); }
.rde-field {
    width: 9rem;
    background: var(--color-bg);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-bold);
    white-space: nowrap;
}
.rde-evcol { background: var(--color-bg); min-width: 11rem; }
.rde-evhead { display: flex; flex-direction: column; gap: 0.25rem; }
.rde-evctrls { display: flex; flex-wrap: wrap; gap: 0.3rem 0.75rem; }
.rde-ctrl {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    cursor: pointer;
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}
.rde-del-ctrl { color: var(--color-danger); }
.rde-evid { font-weight: var(--font-weight-bold); color: var(--color-text); font-variant-numeric: tabular-nums; }
.rde-evadded { color: var(--color-text-muted); font-size: var(--font-size-xs); }

/* Keeper column highlight — green top edge + tinted header */
.rde-evcol.rde-keeping {
    background: var(--color-success-bg);
    box-shadow: inset 0 3px 0 var(--color-save-btn, #32cd32);
}

/* Value cells */
.rde-val { overflow-wrap: anywhere; }
.rde-diffcell { background: var(--color-warning-bg); }
.rde-empty { color: var(--color-text-light); }

/* Identical-group note row (always visible, even under "only differences") */
.rde-identical-cell {
    text-align: center;
    color: var(--color-success);
    background: var(--color-success-bg);
    font-weight: var(--font-weight-medium);
}

/* Delete bar */
.rde-delete-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 1rem;
    margin-top: 1rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--color-border);
}

/* Confirm modal — keep the message's blank lines */
.rde-confirm-msg { margin-top: 0.5rem; line-height: 1.6; white-space: pre-line; }

/* Dark mode tweaks */
[data-theme="dark"] .rde-group { border-color: #444; }
[data-theme="dark"] .rde-evcol.rde-keeping { box-shadow: inset 0 3px 0 var(--color-success, #2e7d32); }

@media (max-width: 575px) {
    .rde-toolbar-actions { margin-left: 0; }
    .rde-field-head,
    .rde-field { width: auto; white-space: normal; }
    .rde-delete-bar .button { flex: 1 1 auto; text-align: center; }
}

/* ============================================================
   Word of the Day  (Word2.aspx)  —  .wd-*
   PacklistPRO-look dictionary tool. Design tokens only, so light
   and dark mode both work without per-rule dark overrides.
   ============================================================ */

.wd-hero { position: relative; }

/* Centered "feature" header — eyebrow, big word, phonetic, actions. */
.wd-hero-head { text-align: center; }

.wd-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-accent);
}
.wd-eyebrow-date {
    display: block;
    margin-top: 0.15rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    letter-spacing: 0;
    text-transform: none;
    color: var(--color-text-muted);
}

.wd-headword {
    margin: 0.5rem 0 0;
    font-size: clamp(2.1rem, 7vw, 3.1rem);
    line-height: 1.1;
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    text-transform: capitalize;
    word-break: break-word;
}

.wd-phonetic {
    margin-top: 0.4rem;
    font-size: var(--font-size-lg);
    color: var(--color-text-muted);
}

.wd-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

/* Definitions, grouped by part of speech, below a divider. */
.wd-meanings {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
    text-align: left;
}
.wd-pos-group + .wd-pos-group {
    margin-top: 1.2rem;
    padding-top: 1.2rem;
    border-top: 1px dashed var(--color-border);
}
.wd-pos {
    display: block;
    margin: 0 0 0.5rem;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    text-transform: capitalize;
    letter-spacing: 0.01em;
    color: var(--color-text);
}
.wd-deflist {
    margin: 0;
    padding-left: 1.4rem;
}
.wd-def {
    margin-bottom: 0.7rem;
    line-height: 1.55;
    color: var(--color-text);
}
.wd-def:last-child { margin-bottom: 0; }
.wd-example {
    display: block;
    margin-top: 0.3rem;
    padding-left: 0.7rem;
    border-left: 3px solid color-mix(in srgb, var(--color-accent) 45%, var(--color-border));
    font-style: italic;
    color: var(--color-text-muted);
}

/* Synonyms — clickable chips that look the related word up next. */
.wd-syn-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.7rem;
}
.wd-syn-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-right: 0.1rem;
}
.wd-syn {
    font: inherit;
    cursor: pointer;
    padding: 0.14rem 0.65rem;
    font-size: var(--font-size-sm);
    color: var(--color-link, var(--color-accent));
    background: color-mix(in srgb, var(--color-accent) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-accent) 24%, transparent);
    border-radius: 999px;
    transition: background-color var(--transition-fast, 0.15s ease),
                border-color var(--transition-fast, 0.15s ease);
}
.wd-syn:hover,
.wd-syn:focus-visible {
    background: color-mix(in srgb, var(--color-accent) 22%, transparent);
    border-color: var(--color-accent);
    text-decoration: none;
    outline: none;
}

/* Loading state inside the hero. */
.wd-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 2.5rem 1rem;
    color: var(--color-text-muted);
}

/* Explore / look-up card. */
.wd-search-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: stretch;
}
.wd-search-row .input-clearable { flex: 1 1 14rem; min-width: 0; }
.wd-explore-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

@media (max-width: 575px) {
    .wd-search-row .button,
    .wd-explore-actions .button { flex: 1 1 auto; text-align: center; }
}

/* ════════════════════════════════════════════════════════════════════════
   SessionTest2.aspx — PacklistPRO-look "Session Persistence Test" (st-*).
   A live session-variable probe: status banner + stat tiles + a capped
   activity console. Built on the shared tokens so light/dark "just work".
   The classic SessionTest.aspx is untouched.
   ════════════════════════════════════════════════════════════════════════ */
.mono { font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; }

.st-lead { margin: 0 0 1rem; color: var(--color-text); }

/* Status banner — data-state drives the colour from semantic tokens (dark-aware) */
.st-status {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1.1rem;
    border: 1px solid var(--color-border);
    border-left-width: 5px;
    border-radius: var(--border-radius);
    background: var(--color-bg);
    margin-bottom: 1rem;
    transition: background var(--transition-mid, .25s) ease, border-color var(--transition-mid, .25s) ease;
}
.st-status-ico { font-size: 1.6rem; line-height: 1; flex: 0 0 auto; }
.st-status-body { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.st-status-main { font-size: var(--font-size-lg); font-weight: var(--font-weight-bold); color: var(--color-text); }
.st-status-sub { font-size: var(--font-size-sm); color: var(--color-text-muted); }

.st-status[data-state="holding"] { background: var(--color-success-bg); border-color: var(--color-success-border); }
.st-status[data-state="holding"] .st-status-main { color: var(--color-success); }
.st-status[data-state="lost"],
.st-status[data-state="error"] { background: var(--color-danger-bg); border-color: var(--color-danger-border); }
.st-status[data-state="lost"] .st-status-main,
.st-status[data-state="error"] .st-status-main { color: var(--color-danger); }
.st-status[data-state="changed"] { background: var(--color-warning-bg); border-color: var(--color-warning-border); }
.st-status[data-state="changed"] .st-status-main { color: var(--color-warning); }
.st-status[data-state="lost"] .st-status-ico,
.st-status[data-state="error"] .st-status-ico { animation: countdownPulse 1.4s ease-in-out infinite; }

/* Fact chips under the banner */
.st-facts { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; }
.st-fact {
    display: inline-flex; flex-direction: column; gap: 0.05rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--color-border); border-radius: var(--border-radius-sm);
    background: var(--color-bg-card);
}
.st-fact-k { font-size: var(--font-size-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.st-fact-v { font-size: var(--font-size-sm); color: var(--color-text); font-weight: var(--font-weight-medium); overflow-wrap: anywhere; }

/* Controls row */
.st-controls { align-items: flex-end; margin-bottom: 1rem; }
.st-interval { flex: 0 0 auto; }
.st-interval .input-label { margin-bottom: 0.25rem; }
.st-interval-row { display: flex; align-items: center; gap: 0.4rem; }
.st-interval .textbox { width: 5rem; }
.st-interval-unit { color: var(--color-text-muted); font-size: var(--font-size-sm); }
.st-control-actions { flex-wrap: wrap; }

/* Stat tiles */
.st-stats { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.st-stat {
    flex: 1 1 8rem; min-width: 7rem;
    display: flex; flex-direction: column; gap: 0.1rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--color-border); border-radius: var(--border-radius);
    background: var(--color-bg);
}
.st-stat-n { font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); color: var(--color-text); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.st-stat-l { font-size: var(--font-size-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.st-stat.is-bad { background: var(--color-danger-bg); border-color: var(--color-danger-border); }
.st-stat.is-bad .st-stat-n { color: var(--color-danger); }
.st-stat.is-warn { background: var(--color-warning-bg); border-color: var(--color-warning-border); }
.st-stat.is-warn .st-stat-n { color: var(--color-warning); }

.st-insight { margin: 0.9rem 0 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }

/* Activity log console */
.st-log-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.st-log-tools { display: flex; gap: 0.35rem; flex-wrap: wrap; }
.st-log-legend { margin: 0.25rem 0 0.6rem; }
.st-dot { display: inline-block; width: 0.6rem; height: 0.6rem; border-radius: 50%; vertical-align: middle; background: var(--color-border); }
.st-dot.is-loss { background: var(--color-danger); }

.st-log {
    max-height: 24rem; overflow-y: auto;
    border: 1px solid var(--color-border); border-radius: var(--border-radius);
    background: var(--color-bg);
    font-size: var(--font-size-sm);
}
.st-log:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.st-log-empty { padding: 1.25rem; text-align: center; color: var(--color-text-light); font-style: italic; }
.st-log-row {
    display: grid;
    grid-template-columns: 7.5rem 6rem 4rem 1fr;
    gap: 0.5rem;
    padding: 0.4rem 0.7rem;
    border-bottom: 1px solid var(--color-border);
    border-left: 4px solid transparent;
    align-items: baseline;
}
.st-log-row:last-of-type { border-bottom: 0; }
.st-log-time { color: var(--color-text-muted); white-space: nowrap; }
.st-log-sess { color: var(--color-text-muted); white-space: nowrap; }
.st-log-val { font-weight: var(--font-weight-bold); color: var(--color-text); white-space: nowrap; }
.st-log-note { color: var(--color-text); overflow-wrap: anywhere; }

.st-log-row.is-ok      { border-left-color: var(--color-success, #2e7d32); }
.st-log-row.is-loss    { border-left-color: var(--color-danger); background: var(--color-danger-bg); }
.st-log-row.is-loss .st-log-val,
.st-log-row.is-loss .st-log-note { color: var(--color-danger); }
.st-log-row.is-changed { border-left-color: var(--color-warning); background: var(--color-warning-bg); }
.st-log-row.is-changed .st-log-note { color: var(--color-warning); }
.st-log-row.is-session { border-left-color: var(--color-accent); background: var(--color-accent-light); }
.st-log-row.is-info    { border-left-color: var(--color-accent); }
.st-log-row.is-error   { border-left-color: var(--color-danger); background: var(--color-danger-bg); }
.st-log-row.is-error .st-log-note { color: var(--color-danger); }
.st-log-row.is-idle    { border-left-color: var(--color-border); }

@media (max-width: 575px) {
    .st-control-actions { width: 100%; }
    .st-control-actions .button { flex: 1 1 auto; text-align: center; }
    .st-log-row { grid-template-columns: 1fr auto; gap: 0.15rem 0.5rem; }
    .st-log-val { grid-column: 2; text-align: right; }
    .st-log-note { grid-column: 1 / -1; }
}

/* ════════════════════════════════════════════════════════════════
   CHAT UC2 STYLES — PacklistPRO-look reskin of the chat control
   (ChatUC2.ascx, hosted by Chat2.aspx). Everything is scoped under
   .chat2 so the original ChatUC is left completely untouched. The
   message bubbles (.msg-*), the options drawer, image lightbox,
   toast and the tag / message-action modals keep their existing
   classes (styled earlier in this file); only the composer,
   toolbar, view filter, status chips and pagers are re-skinned to
   the shared design system here.
   ════════════════════════════════════════════════════════════════ */
.chat2 { display: flex; flex-direction: column; gap: 0.85rem; }

/* ── Composer card ─────────────────────────────────────────────── */
.chat2-composer {
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    padding: var(--card-padding);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Recipient picker row — the visible dropdown flex-grows to fill it. */
.chat2-recipient-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.chat2-recipient-row .chat-recipient-select { flex: 1 1 14rem; min-width: 10rem; font-weight: var(--font-weight-bold); }
/* Collapse the row when no recipient dropdown is rendered (e.g. embedded chat). */
.chat2-recipient-row:not(:has(select)) { display: none; }

/* Message box */
.chat2-input { position: relative; }
.chat2 .chat-compose,
.chat2 .chat-msg-textbox {
    width: 100%;
    min-height: 4.25rem;
    border-radius: var(--border-radius-sm);
    padding: var(--input-padding);
    box-sizing: border-box;
    resize: vertical;
}

/* Compose action bar: attach controls left, Post on the right. */
.chat2-compose-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.chat2-attach-group,
.chat2-send-group { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.chat2-send-group { margin-left: auto; }
/* btnPost is colour-coded by the code-behind (.button.main/.magenta/… — never .small),
   so :not(.small) targets only the primary Post button for the prominent treatment. */
.chat2-send-group .button:not(.small) { min-width: 5.5rem; font-weight: var(--font-weight-bold); }
.chat2-attach-group .indicators-bar { margin: 0; display: inline-flex; gap: 0.4rem; align-items: center; }

/* ── Toolbar (what's shown + tools) ────────────────────────────── */
.chat2-toolbar {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 0.5rem 0.75rem;
}
.chat2-view { display: flex; align-items: center; gap: 0.4rem; min-width: 0; }
.chat2-view > label { font-size: var(--font-size-sm); color: var(--color-text-muted); font-weight: var(--font-weight-medium); white-space: nowrap; }
.chat2-view .dropdown { min-width: 11rem; }
.chat2-tools { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.chat2-tools .checkbox.toolbar { margin: 0; }

/* ── Active view-state chips (Archive / -Pins / +Hidden / -Low / Search) ── */
.chat2-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.chat2-pills:not(:has(a)) { display: none; }

/* ── Message list ──────────────────────────────────────────────── */
.chat2-messages { display: flex; flex-direction: column; padding-top: 0.15rem; }

/* ── Pagers ────────────────────────────────────────────────────── */
.chat2-pager { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.chat2-pager .ms-auto { margin-left: auto; }
.chat2-pager.view-bar { margin: 0; }
.chat2-pager-bottom { justify-content: space-between; margin-top: 0.35rem; }

/* ── Simplified (non-member) chat: strip the chrome down to recipient +
      message box + Post + list + Show More — parity with ChatUC. ── */
.chat2.chat-recipient-only .chat2-toolbar,
.chat2.chat-recipient-only .chat2-pills,
.chat2.chat-recipient-only .chat2-pager,
.chat2.chat-recipient-only .chat2-attach-group,
.chat2.chat-recipient-only [id$="btnPostLowPriority"],
.chat2.chat-recipient-only [id$="btnClearMessage"],
.chat2.chat-recipient-only .upload-progress-wrap { display: none !important; }

/* ── Narrow screens ────────────────────────────────────────────── */
@media (max-width: 640px) {
    .chat2-send-group { margin-left: 0; width: 100%; }
    .chat2-send-group .button:not(.small) { flex: 1 1 auto; }
    .chat2-toolbar { flex-direction: column; align-items: stretch; }
    .chat2-view .dropdown { flex: 1 1 auto; }
}

/* ====================================================================
   CHAT UC3 STYLES - a calmer, friendlier PacklistPRO-look redesign of
   the chat control (ChatUC3.ascx, hosted by Chat3.aspx). Scoped under
   .chat3 (the in-UpdatePanel surface) and .chat3-drawer (the options
   drawer, which renders OUTSIDE .chat3 at the page root). The proven
   code-behind + inline scripts are reused unchanged; this section only
   restyles the shell, modernises the message bubbles, and turns the
   options drawer into a tidy accordion. Built entirely on the shared
   design tokens, so Light / Dark track automatically. ChatUC and
   ChatUC2 carry neither .chat3 nor .chat3-drawer and are untouched.
   ==================================================================== */

/* ---- Surface root ------------------------------------------------- */
.chat3 { display: flex; flex-direction: column; gap: 0.9rem; }

/* ---- Composer card ------------------------------------------------ */
.chat3-composer {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    padding: var(--card-padding);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Recipient picker row: a "To" chip + the active recipient dropdown.
   Only the dropdown matching the current chat type is rendered, so the
   row (and the To chip) hides itself when none is - e.g. embedded chat
   inside Event / Group detail pages. */
.chat3-recipient-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.chat3-recipient-row:not(:has(select)) { display: none; }
.chat3-to-label {
    flex: 0 0 auto;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: var(--color-primary-light);
    border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);
    border-radius: 999px;
    padding: 0.2rem 0.6rem;
}
.chat3-recipient-row .chat-recipient-select {
    flex: 1 1 14rem; min-width: 10rem; font-weight: var(--font-weight-bold);
}

/* Message input - drop the heavy inset shadows + hard black border of the
   shared textarea.chat-compose for a clean single-border field. The
   recipient-colour confirmation border (textarea.chat-compose[style*=
   "--recip-color"], !important, in CHAT UC STYLES) still wins when set. */
.chat3-input { position: relative; }
.chat3 textarea.chat-compose,
.chat3 .chat-msg-textbox {
    width: 100%;
    box-sizing: border-box;
    min-height: 4.5rem;
    resize: vertical;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: 0.65rem 0.75rem;
    line-height: 1.45;
    background: var(--color-bg-input);
    color: var(--color-text);
    box-shadow: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.chat3 textarea.chat-compose:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: var(--shadow-focus-ring, 0 0 0 3px rgba(0, 176, 240, 0.25));
}

/* Compose action bar: subtle attach controls on the left, the prominent
   primary Post on the right. */
.chat3-compose-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.chat3-attach-group,
.chat3-send-group { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.chat3-send-group { margin-left: auto; }
.chat3-send-group .button:not(.small) { min-width: 6rem; font-weight: var(--font-weight-bold); }
.chat3-attach-group .indicators-bar {
    margin: 0; display: inline-flex; gap: 0.4rem; align-items: center; font-size: var(--font-size-sm);
}

/* ---- Control bar (Showing filter + tools) ------------------------- */
.chat3-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    padding: 0.45rem 0.7rem;
}
.chat3-view { display: flex; align-items: center; gap: 0.45rem; min-width: 0; }
.chat3-view > label {
    font-size: var(--font-size-sm); color: var(--color-text-muted);
    font-weight: var(--font-weight-medium); white-space: nowrap;
}
.chat3-view .dropdown { min-width: 11rem; }
.chat3-tools { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.chat3-tools .checkbox.toolbar { margin: 0; }

/* ---- Active view-state chips (Archive / -Pins / +Hidden / etc.) ---- */
.chat3-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.chat3-pills:not(:has(a)) { display: none; }

/* ---- Pagers ------------------------------------------------------- */
.chat3-pager { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.chat3-pager .ms-auto { margin-left: auto; }
.chat3-pager.view-bar { margin: 0; }
.chat3-pager-bottom { justify-content: space-between; margin-top: 0.35rem; }

/* ---- Message list + empty state ----------------------------------- */
.chat3-messages { display: flex; flex-direction: column; gap: 0.1rem; padding-top: 0.1rem; }
.chat3-messages .empty-state {
    background: var(--color-bg-card);
    border: 1px dashed var(--color-border);
    border-radius: var(--border-radius);
    margin-top: 0.25rem;
}

/* ---- Message bubbles ---------------------------------------------- */
/* Bubble background + text colours are set inline by the renderer (per
   message / per contact / per palette), so we deliberately leave colour
   alone and only modernise the SHAPE: drop the hard black top / bottom
   borders + heavy drop shadow for soft rounded cards with a chat "tail"
   corner, roomier padding, and a clear action footer. */
.chat3 .msg-card {
    border: none;
    border-top: none;
    border-bottom: none;
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 1px 1px rgba(0, 0, 0, 0.05);
    padding: 0.5rem 0.85rem 0.45rem;
    margin: 0 0 0.7rem;
    max-width: 84%;
    line-height: 1.4;
}
.chat3 .msg-card.from-me   { margin-left: auto;  margin-right: 0; border-bottom-right-radius: 5px; }
.chat3 .msg-card.from-them { margin-right: auto; margin-left: 0;  border-bottom-left-radius: 5px; }
/* White / "plain" received bubbles need a hairline to read as cards on
   the light page background. */
.chat3 .msg-card.msg-bg-plain { border: 1px solid var(--color-border); box-shadow: var(--shadow-sm); }
[data-theme="dark"] .chat3 .msg-card { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.55); }

.chat3 .msg-header { line-height: 1.35; margin-bottom: 0.15rem; }
.chat3 .msg-sender { font-weight: var(--font-weight-bold); text-decoration: none; }
.chat3 .msg-sender:hover { text-decoration: underline; }
.chat3 .msg-time { opacity: 0.75; }
.chat3 .msg-body { margin: 0.3rem 0 0.15rem; line-height: 1.45; }
.chat3 .msg-history {
    border-left: 3px solid color-mix(in srgb, currentColor 30%, transparent);
    opacity: 0.8; padding-left: 0.6rem; margin: 0.4rem 0 0.3rem; font-style: italic;
}

/* Badges -> clean rounded pills (keep their semantic colours from CHAT UC
   STYLES; just lose the heavy border + inset highlight). */
.chat3 .msg-badge {
    border: none;
    box-shadow: none;
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
    font-weight: var(--font-weight-bold);
}

/* Action row -> a tidy footer separated by a hairline, evenly spaced. */
.chat3 .msg-actions {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem;
    margin-top: 0.4rem; padding-top: 0.35rem;
    border-top: 1px solid rgba(127, 127, 127, 0.2);
}
.chat3 .msg-actions .button,
.chat3 .msg-actions .msg-menu-wrap { margin: 0; }
.chat3 .msg-actions .button.small { font-size: var(--font-size-xs); padding: 0.2rem 0.55rem; }

/* ---- Unified Feed conversation cards ------------------------------ */
.chat3 .qmeet-thread {
    border-radius: var(--border-radius);
    border-color: var(--color-border);
    box-shadow: var(--shadow-sm);
    margin: 0.45rem 0;
    background: var(--color-bg-card);
}
/* Honor the per-contact color outline (set inline as --cc) in the chat3 skin too. */
.chat3 .qmeet-thread[style*="--cc"] {
    border-color: var(--cc);
}

/* ---- Simplified (non-member) chat: strip the chrome down to recipient
        + message box + Post + list, matching ChatUC / ChatUC2. -------- */
.chat3.chat-recipient-only .chat3-toolbar,
.chat3.chat-recipient-only .chat3-pills,
.chat3.chat-recipient-only .chat3-pager,
.chat3.chat-recipient-only .chat3-attach-group,
.chat3.chat-recipient-only [id$="btnPostLowPriority"],
.chat3.chat-recipient-only [id$="btnClearMessage"],
.chat3.chat-recipient-only .upload-progress-wrap { display: none !important; }

/* ====================================================================
   Options drawer - reskinned as a tidy accordion. Scoped to
   .chat3-drawer so ChatUC / ChatUC2 drawers keep their flat layout.
   Each section header (h5.chat3-optsummary) collapses its body via
   aria-expanded; only Send Options is open by default, so the long list
   of colour / size pickers no longer overwhelms the moment it opens.
   ==================================================================== */
.chat3-drawer { max-width: 90vw; }

/* Scroll layout: pin the header, let the option groups scroll. Previously the whole
   drawer was one scroll container, which on tall content (several accordion sections
   expanded) left the lower options unreachable. The drawer is a flex column (from
   .chat-options-drawer.open) — give the head a fixed size and the body the remaining
   space with its own scroll. 100dvh tracks the *visible* viewport so the bottom of the
   list isn't hidden under mobile browser chrome; min-height:0 is what actually lets the
   flex body scroll instead of growing past the drawer. */
.chat3-drawer { height: 100dvh; overflow: hidden; }
.chat3-drawer .opt-drawer-head { flex: 0 0 auto; }
.chat3-drawer .opt-drawer-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.chat3-drawer .opt-drawer-head {
    display: flex; align-items: center; gap: 0.5rem;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.55rem; margin-bottom: 0.7rem;
}
.chat3-drawer .opt-drawer-title { font-size: var(--font-size-base); font-weight: var(--font-weight-bold); letter-spacing: 0; color: var(--color-text); }
.chat3-drawer .opt-drawer-note { font-size: var(--font-size-xs); color: var(--color-text-muted); }
.chat3-drawer .opt-drawer-close { margin-left: auto; }

/* Each section is a bordered, collapsible group. */
.chat3-drawer .options-section {
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    background: var(--color-bg-card);
    margin-bottom: 0.55rem;
    padding: 0;
    overflow: hidden;
}
.chat3-drawer .options-section > .chat3-optsummary {
    margin: 0;
    padding: 0.6rem 0.7rem;
    display: flex; align-items: center; justify-content: space-between;
    font-size: var(--font-size-sm); font-weight: var(--font-weight-bold);
    color: var(--color-text);
    background: color-mix(in srgb, var(--color-accent) 7%, var(--color-bg-card));
    cursor: pointer; user-select: none;
}
.chat3-drawer .options-section > .chat3-optsummary:hover { color: var(--color-accent); }
.chat3-drawer .options-section > .chat3-optsummary:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.chat3-drawer .options-section > .chat3-optsummary::after {
    content: ""; flex: 0 0 auto; width: 0.5rem; height: 0.5rem; margin-left: 0.5rem;
    border-right: 2px solid var(--color-text-muted);
    border-bottom: 2px solid var(--color-text-muted);
    transform: rotate(-45deg); transition: transform 0.18s ease;
}
.chat3-drawer .options-section > .chat3-optsummary[aria-expanded="true"]::after { transform: rotate(45deg); }
.chat3-drawer .options-section > .chat3-optsummary:hover::after { border-color: var(--color-accent); }
/* Collapse: hide every sibling after a collapsed header. */
.chat3-drawer .options-section > .chat3-optsummary[aria-expanded="false"] ~ * { display: none !important; }
/* Pad the body of an expanded section. */
.chat3-drawer .options-section > .chat3-optsummary ~ * { padding-left: 0.7rem; padding-right: 0.7rem; }
.chat3-drawer .options-section > .chat3-optsummary[aria-expanded="true"] + * { padding-top: 0.6rem; }
.chat3-drawer .options-section > .chat3-optsummary[aria-expanded="true"] ~ *:last-child { padding-bottom: 0.6rem; }
/* The admin "Danger Zone" group hides entirely for non-admins (both
   buttons render Visible=False, so the section has no .button to show). */
.chat3-drawer .chat3-admin-section:not(:has(.button)) { display: none; }

[data-theme="dark"] .chat3-drawer .options-section > .chat3-optsummary {
    background: color-mix(in srgb, var(--color-accent) 14%, var(--color-bg-card));
}

/* ---- Narrow screens ----------------------------------------------- */
@media (max-width: 640px) {
    .chat3-send-group { margin-left: 0; width: 100%; }
    .chat3-send-group .button:not(.small) { flex: 1 1 auto; }
    .chat3-view { flex: 1 1 auto; }
    .chat3-view .dropdown { flex: 1 1 auto; }
    .chat3 .msg-card { max-width: 92%; }
}

/* ── Home "Invitations" cards (events/groups you've been invited to) ──
   One row per invite: details on the left, actions (interest pills for events,
   View/Dismiss for groups) on the right; stacks on narrow screens. */
.home-invite-card { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap;
    padding: 10px 0; border-top: 1px solid rgba(127,127,127,0.22); }
.home-invite-card:first-child { border-top: 0; }
.home-invite-main { flex: 1 1 240px; min-width: 0; }
.home-invite-title { font-weight: 700; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.home-invite-kind { flex: 0 0 auto; opacity: .85; }
.home-invite-meta { color: var(--color-text, #444); opacity: .75; font-size: 13px; margin-top: 2px; }
.home-invite-inviter { color: var(--color-text, #666); opacity: .6; font-size: 12px; margin-top: 2px; }
.home-invite-respond, .home-invite-actions { display: flex; align-items: center; gap: 6px;
    flex: 0 0 auto; flex-wrap: wrap; }
@media (max-width: 640px) {
    .home-invite-respond, .home-invite-actions { width: 100%; }
}

/* ── Home "On Your Radar" cards (upcoming events you're interested in / attending) ──
   One clickable row per event: status pill + title/meta; the whole row links to details. */
.home-radar-list { display: flex; flex-direction: column; }
.home-radar-card { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit;
    padding: 10px 6px; border-top: 1px solid rgba(127,127,127,0.22); border-radius: 8px; }
.home-radar-card:first-child { border-top: 0; }
.home-radar-card:hover, .home-radar-card:focus { background: rgba(127,127,127,0.08); text-decoration: none; }
.home-radar-status { flex: 0 0 auto; align-self: flex-start; cursor: inherit; }
.home-radar-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.home-radar-title { font-weight: 700; }
.home-radar-meta { color: var(--color-text, #444); opacity: .75; font-size: 13px; margin-top: 2px; }
.home-radar-go { flex: 0 0 auto; font-size: 22px; line-height: 1; opacity: .4; }
/* Doubled modifier class (0,2,0) so these beat qMeet's .pill.pill transparent
   override above — same trick that rule documents. Source order breaks the tie. */
.home-radar-status--going.home-radar-status--going { background: var(--color-success, #2e7d32); color: #fff; border-color: var(--color-success, #2e7d32); }
.home-radar-status--maybe.home-radar-status--maybe { background: var(--color-warning, #e65100); color: #fff; border-color: var(--color-warning, #e65100); }
.home-radar-status--interested.home-radar-status--interested { background: var(--color-accent, #00B0F0); color: #fff; border-color: var(--color-accent, #00B0F0); }
/* keep the colored status pill from picking up .pill:hover's border swap inside the link */
.home-radar-card:hover .home-radar-status--going.home-radar-status--going { border-color: var(--color-success, #2e7d32); }
.home-radar-card:hover .home-radar-status--maybe.home-radar-status--maybe { border-color: var(--color-warning, #e65100); }
.home-radar-card:hover .home-radar-status--interested.home-radar-status--interested { border-color: var(--color-accent, #00B0F0); }
/* Neutral "You haven't RSVP'd" pill (Dashboard Events) — muted, no commitment colour. */
.home-radar-status--none.home-radar-status--none { background: rgba(127,127,127,0.18); color: var(--color-text, #444); border-color: rgba(127,127,127,0.35); }
.home-radar-card:hover .home-radar-status--none.home-radar-status--none { border-color: rgba(127,127,127,0.35); }
/* Dashboard Events — per-event grouped list of contacts (interested / attending). */
.dash2-event-contacts { display: flex; flex-direction: column; gap: 1px; margin-top: 5px; font-size: 13px; color: var(--color-text, #444); opacity: .85; }
.dash2-event-contacts .dash2-cg b { font-weight: 600; }
/* Dashboard Unread Messages — channel chips + message preview line on each radar card. */
.dash2-chip-event.dash2-chip-event { background: var(--color-accent, #00B0F0); color: #fff; border-color: var(--color-accent, #00B0F0); }
.dash2-chip-group.dash2-chip-group { background: var(--color-success, #2e7d32); color: #fff; border-color: var(--color-success, #2e7d32); }
.dash2-chip-direct.dash2-chip-direct { background: rgba(127,127,127,0.18); color: var(--color-text, #444); border-color: rgba(127,127,127,0.35); }
.home-radar-card:hover .dash2-chip-event.dash2-chip-event { border-color: var(--color-accent, #00B0F0); }
.home-radar-card:hover .dash2-chip-group.dash2-chip-group { border-color: var(--color-success, #2e7d32); }
.home-radar-card:hover .dash2-chip-direct.dash2-chip-direct { border-color: rgba(127,127,127,0.35); }
.dash2-chat-preview { font-size: 13px; opacity: .85; margin-top: 3px; }
/* Dashboard Groups / Events / Active-Contacts — inline "💬 Chat" button on each radar
   card. The card itself is the link; this is a span role="button" (nested anchors are
   invalid) that stops the click from also triggering the card's link. flex:0 0 auto so it
   keeps its size between the main content and the › chevron. */
.dash2-chat-btn { flex: 0 0 auto; align-self: center; cursor: pointer; white-space: nowrap; }
.dash2-chat-btn:focus-visible { outline: 2px solid var(--color-accent, #00B0F0); outline-offset: 2px; }
/* Dashboard Interests card — chips for Love/Like interests are links into their
   shared interest chat. Reuse the read-only .interest-tag chip look, just make the
   anchor behave (no underline, pointer, inherit color) and hint interactivity. */
.interest-tag-link { text-decoration: none; cursor: pointer; }
.interest-tag-link:hover, .interest-tag-link:focus { text-decoration: none; filter: brightness(1.05); }
.interest-tag-link:focus-visible { outline: 2px solid var(--color-accent, #00B0F0); outline-offset: 2px; }
.dash2-interests-showmore { display: inline-block; margin-top: 8px; }

/* ── Preferences.aspx — privacy sub-groups ──────────────────────────────────
   The Privacy card's "who can see this" dropdowns are split into a few labeled
   clusters (Your name / Personal details / Memberships & activity / Finding you
   in search). Each cluster gets a subtle dashed divider + an uppercase muted
   heading so the long list scans as themed sections. Tokens only, so it adapts
   to light/dark. Mirrors the .ms2-recency sub-section pattern above. */
.prefs-subgroup { margin-top: 1.1rem; padding-top: 0.85rem; border-top: 1px dashed var(--color-border); }
.prefs-subgroup:first-of-type { margin-top: 0.35rem; }
.prefs-subgroup-title {
    margin: 0 0 0.75rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}
.prefs-subgroup .form-group:last-child { margin-bottom: 0; }

/* ───────────────────────── My Check-Ins (MyCheckins.aspx) ─────────────────────────
   Check-in history as native <details> rows. The <summary> is a clickable grid
   (date · place · city,state · map); the body reveals a definition-list of the
   full snapshot plus a Delete button. JS-free expand/collapse. */
.checkin-list { display: flex; flex-direction: column; gap: 8px; }

.checkin-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg-card);
    overflow: hidden;
}
.checkin-card[open] { border-color: var(--color-primary); }

.checkin-summary {
    list-style: none;                 /* hide default disclosure triangle (we add our own ▸) */
    cursor: pointer;
    display: grid;
    grid-template-columns: 7.5rem 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    font-size: var(--font-size-sm);
}
.checkin-summary::-webkit-details-marker { display: none; }
.checkin-summary::before {
    content: "▸";
    color: var(--color-text-muted);
    font-size: 0.85em;
    transition: transform 0.15s ease;
}
.checkin-card[open] .checkin-summary::before { transform: rotate(90deg); }
.checkin-summary:hover { background: var(--color-primary-light); }

.checkin-summary .ci-date  { font-weight: 600; white-space: nowrap; }
.checkin-summary .ci-place { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.checkin-summary .ci-loc   { color: var(--color-text-muted); white-space: nowrap; }
.checkin-summary .ci-map   { white-space: nowrap; text-align: right; }

.ci-approx { color: var(--color-warning, #b8860b); font-size: 0.85em; white-space: nowrap; }

.checkin-detail {
    padding: 12px 16px 14px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg);
}
.ci-detail-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 14px;
    margin: 0;
}
.ci-detail-grid dt { color: var(--color-text-muted); font-weight: 600; }
.ci-detail-grid dd { margin: 0; }

/* On narrow screens drop the grid to a stacked layout so nothing clips. */
@media (max-width: 560px) {
    .checkin-summary {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "place map"
            "date  loc";
        row-gap: 2px;
    }
    .checkin-summary::before { display: none; }
    .checkin-summary .ci-place { grid-area: place; }
    .checkin-summary .ci-map   { grid-area: map; }
    .checkin-summary .ci-date  { grid-area: date; }
    .checkin-summary .ci-loc   { grid-area: loc; text-align: left; }
    .ci-detail-grid { grid-template-columns: 1fr; gap: 2px; }
    .ci-detail-grid dt { margin-top: 6px; }
}

/* My Check-Ins — stats summary, filter box, and month group separators. */
.checkin-stats { margin: 0 0 10px; color: var(--color-text); font-size: var(--font-size-sm); }
.checkin-filter { margin-bottom: 14px; max-width: 26rem; }

.checkin-group {
    margin: 14px 0 4px;
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}
.checkin-list > .checkin-group:first-child,
.checkin-group:first-child { margin-top: 0; }

/* ─────────────────────────────────────────────────────────────────────────
   ChatUCSimple.ascx — lean group / event / interest chat (embedded card).
   Theme-aware (design tokens); message bubble colors are set inline by the JS
   (per-poster palette / the user's Sent Color) with black/white text chosen
   for contrast, so bubbles read in BOTH light and dark mode.
   ───────────────────────────────────────────────────────────────────────── */
.cucs-root {
    --cucs-font: 16px;
    display: flex; flex-direction: column;
    border: 1px solid var(--color-border); border-radius: 12px;
    background: var(--color-bg-card); overflow: hidden;
    max-width: 760px;
}
.cucs-bar {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 10px; border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-card);
}
.cucs-bar-title { font-weight: 600; color: var(--color-text); }
.cucs-bar-spacer { flex: 1; }
.cucs-bar-btn {
    background: var(--color-bg-input); color: var(--color-text);
    border: 1px solid var(--color-border); border-radius: 8px;
    padding: 5px 10px; font-size: .8rem; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.cucs-bar-btn:active { transform: scale(.97); }

.cucs-options { display: none; padding: 10px 12px; border-bottom: 1px solid var(--color-border); background: var(--color-bg-card); }
.cucs-options.open { display: block; }
.cucs-opt-row { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; color: var(--color-text); font-size: .9rem; }
.cucs-opt-row input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; flex: 0 0 auto; }
/* Disabled option row (e.g. "Push notifications — coming soon"): muted + not-allowed. */
.cucs-opt-disabled { opacity: .55; }
.cucs-opt-disabled input[type="checkbox"] { cursor: not-allowed; }
.cucs-opt-disabled em { font-style: italic; opacity: .85; }
.cucs-roster-name a { color: inherit; text-decoration: none; }
.cucs-roster-name a:hover, .cucs-roster-name a:focus { text-decoration: underline; }
.cucs-opt-lbl { font-weight: 600; min-width: 130px; }
.cucs-opt-sel {
    border: 1px solid var(--color-border); border-radius: 8px;
    background: var(--color-bg-input); color: var(--color-text); padding: 4px 8px; font-size: .85rem;
}
.cucs-opt-link {
    background: var(--color-bg-input); color: var(--color-text);
    border: 1px solid var(--color-border); border-radius: 8px;
    padding: 5px 10px; font-size: .82rem; cursor: pointer;
}
.cucs-opt-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }

.cucs-compose { display: flex; align-items: flex-end; gap: 6px; padding: 8px; border-bottom: 1px solid var(--color-border); }
.cucs-input {
    flex: 1; resize: none; border: 1px solid var(--color-border); border-radius: 16px;
    padding: 8px 14px; font-size: var(--cucs-font); font-family: inherit; line-height: 1.35;
    min-height: 38px; background: var(--color-bg-input); color: var(--color-text); overflow-y: hidden;
}
.cucs-send, .cucs-read {
    border: none; border-radius: 16px; cursor: pointer; font-weight: 600; white-space: nowrap;
    height: 38px; flex: 0 0 auto; align-self: flex-end;
    box-shadow: 4px 4px 8px rgba(0,0,0,.25);
}
.cucs-send { background: var(--color-accent); color: #fff; padding: 0 18px; font-size: 1.05rem; line-height: 1; }
.cucs-read { background: var(--color-success); color: #fff; padding: 0 14px; font-size: 1.05rem; }
[data-theme="dark"] .cucs-send, [data-theme="dark"] .cucs-read { color: #000; }

.cucs-status { min-height: 16px; padding: 2px 12px; font-size: .78rem; text-align: center; color: var(--color-text-muted); }
.cucs-status.err { color: var(--color-danger); font-weight: 600; }
.cucs-status.ok { color: var(--color-success); }

.cucs-thread {
    display: flex; flex-direction: column; gap: 10px;
    padding: 12px; max-height: 58vh; overflow-y: auto;
    background: var(--color-bg);
    -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
.cucs-empty { margin: 1.5rem auto; color: var(--color-text-muted); font-size: .9rem; text-align: center; }

.cucs-msg { display: flex; flex-direction: column; align-items: flex-start; }
.cucs-msg-head { font-size: .78rem; line-height: 1.2; margin-bottom: 2px; }
.cucs-msg-name { font-weight: 700; color: var(--color-text); }
.cucs-msg-meta { color: var(--color-text-muted); }
.cucs-bubble {
    max-width: 92%; padding: 8px 12px; border-radius: 14px; border-top-left-radius: 4px;
    white-space: pre-wrap; word-wrap: break-word; overflow-wrap: anywhere;
    line-height: 1.35; font-size: var(--cucs-font); cursor: pointer;
    background: var(--color-bg-input); color: var(--color-text);
    box-shadow: 2px 2px 6px rgba(0,0,0,.22);
}
/* My own messages (no Sent Color chosen) default to the theme accent. */
.cucs-mine .cucs-bubble { background: var(--color-accent); color: #fff; }
[data-theme="dark"] .cucs-mine .cucs-bubble { color: #000; }
.cucs-bubble a { color: inherit; text-decoration: underline; }
.cucs-urgent .cucs-bubble { box-shadow: 0 0 0 2px #ff00ff, 0 0 10px #ff00ff; font-weight: 700; }
.cucs-unread .cucs-msg-name::after { content: " ●"; color: var(--color-accent); font-size: .7em; vertical-align: middle; }
.cucs-unread .cucs-bubble { font-weight: 600; }
.cucs-msg-when { font-size: .7rem; color: var(--color-text-muted); margin-top: 3px; }

.cucs-older {
    align-self: center; margin: 4px auto 10px; padding: 6px 16px; font-size: .82rem; cursor: pointer;
    background: var(--color-bg-input); color: var(--color-text);
    border: 1px solid var(--color-border); border-radius: 999px;
}

/* Popovers (member actions / roster / color picker). */
.cucs-pop {
    display: none; position: fixed; inset: 0; z-index: 9999;
    background: rgba(0,0,0,.55); align-items: center; justify-content: center; padding: 16px;
}
.cucs-pop.open { display: flex; }
.cucs-pop-box {
    position: relative; width: 100%; max-width: 420px; max-height: 80vh; overflow-y: auto; padding: 18px;
    background: var(--color-bg-card); color: var(--color-text);
    border: 1px solid var(--color-border); border-radius: 14px; box-shadow: var(--shadow-card-hover);
}
.cucs-pop-x { position: absolute; top: 8px; right: 10px; background: none; border: none; font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--color-text-muted); }
.cucs-pop-title { font-weight: 700; font-size: 1.05rem; margin-bottom: 10px; }
.cucs-pop-name { font-weight: 700; font-size: 1.1rem; }
.cucs-pop-meta { color: var(--color-text-muted); font-size: .85rem; margin: 2px 0 14px; }
.cucs-pop-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.cucs-roster { display: flex; flex-direction: column; gap: 4px; }
.cucs-roster-row { display: flex; align-items: center; gap: 10px; padding: 7px 6px; border-radius: 8px; }
.cucs-roster-row:hover { background: var(--color-bg-input); }
.cucs-roster-dot { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; box-shadow: inset 0 0 0 1px rgba(0,0,0,.2); }
.cucs-roster-info { min-width: 0; }
.cucs-roster-name { font-weight: 600; }
.cucs-roster-meta { font-size: .8rem; color: var(--color-text-muted); }

.cucs-swatches { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; margin-bottom: 12px; }
.cucs-swatch { width: 100%; aspect-ratio: 1/1; min-height: 28px; border: 1px solid rgba(0,0,0,.25); border-radius: 8px; cursor: pointer; padding: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.cucs-swatch:hover { transform: scale(1.1); }

/* "Chat" entry points added to the interest list pages. */
.it-chat-link { margin-left: auto; white-space: nowrap; font-size: .85rem; }
.interest-tag-chat { margin: 0 2px; text-decoration: none; cursor: pointer; }

/* ============================================================
   Shared styles - canonical rules for qFIT, PacklistPRO, qMEET.
   ONE rule per element type. SINGLE SOURCE OF TRUTH for every
   design token (colors, spacing, typography, shadows, etc.).
   Per-site Content/styles.css should NOT redefine these variables.
   Sizes use rem so the html.font-* preference scales everything.
   ============================================================ */

/* ── CSS Variables - Light Mode (canonical values, used by all 3 sites) ── */
:root {
    /* Native form controls (checkbox / radio / scrollbar / date picker) follow
       the SITE theme, not the OS. Each master ships
       `<meta name="color-scheme" content="light dark">`, which on its own makes
       the browser render native checkboxes DARK whenever the OS is in dark mode
       — even while the user has the site in Light Mode (the reported "dark
       checkbox in light mode" bug). Pinning color-scheme to the theme here
       (light) and under [data-theme="dark"] (dark) overrides that meta default
       so a Light-Mode checkbox gets a white background and a Dark-Mode checkbox
       a dark one. */
    color-scheme: light;

    /* Brand / accent */
    --color-accent:        #00B0F0;
    --color-accent-dark:   #0090C8;
    --color-accent-deeper: #005a80;
    --color-accent-light:  #e0f6fe;
    --color-primary:       var(--color-accent);
    --color-primary-dark:  var(--color-accent-dark);
    --color-primary-light: #e0f6fe;

    /* Semantic */
    --color-success:          #2e7d32;
    --color-success-bg:       #e8f5e9;
    --color-success-border:   #a5d6a7;
    --color-save-btn:         #32cd32;
    --color-save-btn-hover:   #28a828;
    --color-danger:           #c62828;
    --color-danger-bg:        #ffebee;
    --color-danger-border:    #ef9a9a;
    --color-delete-btn:       #d32f2f;
    --color-delete-btn-hover: #b71c1c;
    --color-warning:          #e65100;
    --color-warning-bg:       #fff3e0;
    --color-warning-border:   #ffcc80;
    --color-info:             #0277bd;
    --color-info-bg:          #e1f5fe;
    --color-info-border:      #81d4fa;

    /* Text */
    --color-text:       #1a1f2e;
    --color-text-muted: #6c757d;
    --color-text-light: #9aa0a8;
    --color-link:       var(--color-accent);
    --color-link-hover: var(--color-accent-dark);

    /* Backgrounds */
    --color-bg:       #dbe4ed;   /* page: cool blue-grey so white cards lift off it (high contrast) */
    --color-bg-card:  #ffffff;
    --color-bg-input: #e2f1fb;   /* inputs: faint brand-cyan tint → recessed wells, on-brand with accent */
    --color-bg-nav:   #1a1a2e;

    /* Borders */
    --color-border:       #b6cede;   /* soft blue-grey so card/input outlines are clearly visible */
    --color-border-focus: var(--color-accent);

    /* Radii */
    --border-radius:    10px;
    --border-radius-sm: 6px;
    --border-radius-lg: 14px;

    /* Shadows (layered for modern depth) */
    --shadow-sm:          0 1px 2px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.10);
    --shadow-md:          0 4px 6px -2px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.10);
    --shadow-lg:          0 12px 24px -8px rgba(15, 23, 42, 0.15), 0 4px 10px -4px rgba(15, 23, 42, 0.12);
    --shadow-xl:          0 20px 40px -12px rgba(15, 23, 42, 0.25);
    --shadow-focus:       0 0 0 3px rgba(0, 176, 240, 0.22);
    --shadow-focus-ring:  0 0 0 3px rgba(0, 176, 240, 0.35);
    --shadow-btn:         0 1px 2px rgba(15, 23, 42, 0.15), 0 1px 3px rgba(15, 23, 42, 0.10);
    --shadow-btn-hover:   0 4px 8px -2px rgba(15, 23, 42, 0.18), 0 2px 4px -2px rgba(15, 23, 42, 0.12);
    --shadow-btn-active:  inset 0 2px 4px rgba(0, 0, 0, 0.10);
    --shadow-card-hover:  0 8px 16px -6px rgba(15, 23, 42, 0.14), 0 4px 8px -4px rgba(15, 23, 42, 0.10);
    --shadow-card:        0 2px 4px rgba(15, 23, 42, 0.10), 0 6px 14px -3px rgba(15, 23, 42, 0.16);  /* card resting shadow — stronger depth so cards lift off the page */
    --text-shadow-heading: 0 1px 1px rgba(0,0,0,0.10);

    /* Spacing */
    --card-padding:    1rem;
    --card-padding-lg: 1.5rem;
    --section-gap:     1.5rem;

    /* Typography */
    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-size-xs:   0.75rem;
    --font-size-sm:   0.875rem;
    --font-size-base: 1.125rem;
    --font-size-lg:   1.125rem;
    --font-size-xl:   1.375rem;
    --font-size-xxl:  1.75rem;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-bold:   600;
    --line-height: 1.5;

    /* Input sizing */
    --input-height:  2.5rem;
    --input-padding: 0.5rem 0.75rem;

    /* Buttons */
    --btn-padding:     0.5rem 1.25rem;
    --btn-padding-sm:  0.375rem 0.875rem;
    --btn-font-size:   0.9375rem;
    --btn-font-weight: 500;
    --btn-radius:      6px;
    --btn-transition:  background-color 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;

    /* Nav structural */
    --nav-height: 56px;
    --nav-z:      1000;
    --color-bg-nav-dropdown: color-mix(in srgb, var(--color-bg-nav) 85%, #ffffff 15%);

    /* Transitions / easing */
    --ease-out-quint:  cubic-bezier(0.22, 1, 0.36, 1);
    --ease-out-back:   cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-in-out:     cubic-bezier(0.4, 0, 0.2, 1);
    --transition-fast: 0.15s var(--ease-out-quint);
    --transition-mid:  0.25s var(--ease-out-quint);
    --transition-slow: 0.4s  var(--ease-out-quint);

    /* Text selection (brand-tinted) */
    --selection-bg:    rgba(0, 176, 240, 0.22);
    --selection-color: var(--color-text);
}

/* ── CSS Variables - Dark Mode Overrides ──────────────────── */
[data-theme="dark"] {
    color-scheme: dark;          /* native checkbox/scrollbar/picker → dark */
    --color-text:       #e8eaed;
    --color-text-muted: #b1b5bb;
    --color-text-light: #7c8088;

    --color-bg:       #000000;   /* page pure black → cards/inputs float (high contrast: dark #8) */
    --color-bg-card:  #333333;
    --color-bg-input: #555555;   /* inputs lighter than card → clearly recessed wells */
    --color-bg-nav:   #0d0d0f;

    --color-border:        #555555;
    --color-primary-light: #082a3d;

    --color-success-bg:     #1b3a1e;
    --color-success-border: #2e7d32;
    --color-danger-bg:      #3b1212;
    --color-danger-border:  #c62828;
    --color-warning-bg:     #3a2a10;
    --color-warning-border: #e65100;
    --color-info-bg:        #082a3d;
    --color-info-border:    #0277bd;

    --shadow-sm:         0 1px 2px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.30);
    --shadow-md:         0 4px 8px -2px rgba(0, 0, 0, 0.45), 0 2px 4px -2px rgba(0, 0, 0, 0.30);
    --shadow-lg:         0 12px 24px -8px rgba(0, 0, 0, 0.55), 0 4px 10px -4px rgba(0, 0, 0, 0.40);
    --shadow-xl:         0 20px 40px -12px rgba(0, 0, 0, 0.65);
    --shadow-focus:      0 0 0 3px rgba(0, 176, 240, 0.35);
    --shadow-focus-ring: 0 0 0 3px rgba(0, 176, 240, 0.45);
    --shadow-btn:        0 1px 2px rgba(0, 0, 0, 0.50);
    --shadow-btn-hover:  0 4px 8px -2px rgba(0, 0, 0, 0.55);
    --shadow-card-hover: 0 8px 16px -6px rgba(0, 0, 0, 0.55);
    --shadow-card:       0 2px 6px rgba(0, 0, 0, 0.45), 0 6px 16px -4px rgba(0, 0, 0, 0.40);  /* card resting shadow — stronger depth so cards lift off the page */

    --selection-bg: rgba(0, 176, 240, 0.45);

    --color-bg-nav-dropdown: color-mix(in srgb, var(--color-bg-nav) 85%, #ffffff 15%);
}

/* ── Site background palette (Preferences → Site Background) ────────────────────
   Per-user PAGE-background tint, applied via data-bg on <html> by the early head
   script (no flash) + site.js applyPreferences. Only --color-bg (the body
   background) changes — cards/nav/inputs keep their own --color-bg-* vars, so
   content contrast is untouched. Each token is theme-aware: a soft tint in light
   mode, a deep tint in dark mode (the [data-theme="dark"] rules below win by
   specificity). The token is a server-whitelisted value (Preferences.aspx.vb),
   never raw user input. Lives in the SHARED sheet so all sites get the palette. */
/* Light-mode shades — dark text sits on these, so they stay light; the "darker"
   choices (graphite especially) are medium grays that still read fine under the
   large page-title text. */
[data-bg="gray"]     { --color-bg: #e7e9ec; }
[data-bg="slate"]    { --color-bg: #d6dce5; }
[data-bg="stone"]    { --color-bg: #e3ddd4; }
[data-bg="graphite"] { --color-bg: #c4c9d1; }
[data-bg="ocean"]    { --color-bg: #d6e4f5; }
[data-bg="sky"]      { --color-bg: #d8e9fb; }
[data-bg="teal"]     { --color-bg: #d3ebeb; }
[data-bg="sage"]     { --color-bg: #daeadd; }
[data-bg="forest"]   { --color-bg: #cfe2d3; }
[data-bg="sand"]     { --color-bg: #efe6d2; }
[data-bg="rose"]     { --color-bg: #f3e0e6; }
[data-bg="plum"]     { --color-bg: #e7dbec; }
[data-bg="lavender"] { --color-bg: #e4ddf3; }

/* Dark-mode shades — light text sits on these, so they stay dark, but are now
   CLEARLY hued/varied (the previous values were within a few RGB points of the
   default #121418, so the tint was invisible). Includes lifted + darker neutral
   grays so "Gray / Slate / Warm Gray / Graphite" are distinguishable in dark mode. */
[data-theme="dark"][data-bg="gray"]     { --color-bg: #1e2024; }
[data-theme="dark"][data-bg="slate"]    { --color-bg: #141a23; }
[data-theme="dark"][data-bg="stone"]    { --color-bg: #1c1813; }
[data-theme="dark"][data-bg="graphite"] { --color-bg: #0a0b0d; }
[data-theme="dark"][data-bg="ocean"]    { --color-bg: #0b1726; }
[data-theme="dark"][data-bg="sky"]      { --color-bg: #0d1f34; }
[data-theme="dark"][data-bg="teal"]     { --color-bg: #08201f; }
[data-theme="dark"][data-bg="sage"]     { --color-bg: #0e1a13; }
[data-theme="dark"][data-bg="forest"]   { --color-bg: #0a1710; }
[data-theme="dark"][data-bg="sand"]     { --color-bg: #1d180f; }
[data-theme="dark"][data-bg="rose"]     { --color-bg: #20141a; }
[data-theme="dark"][data-bg="plum"]     { --color-bg: #190f20; }
[data-theme="dark"][data-bg="lavender"] { --color-bg: #15101f; }

/* ── Expanded spectrum palette (PacklistPRO) — LIGHT-mode shades ────────────────
   60 options = 12 hues × 5 levels (50/40/30/20/10%). Token = "{hue}-{level}";
   whitelisted in PacklistPRO BasePage.BackgroundThemeTokens + exposed in its
   Preferences → Site Background dropdown. PLP-only: the other sites keep the
   neutral-tint palette above (their tokens are untouched). Only --color-bg (the
   page background) changes; cards/nav/inputs keep their own vars. LIGHT shades are
   each pure hue blended toward white (50% = halfway, 10% = near-white pastel). The
   100% (pure) level was removed. The 10% level is LIGHT-only — in dark mode the
   *-10 tokens fall back to the default dark bg (pinned in the dark block below). The
   DARK shades below win in dark mode by specificity (0,2,0 vs 0,1,0). Owner's spec. */
[data-bg="red-50"]          { --color-bg: #ff8080; }
[data-bg="red-40"]          { --color-bg: #ff9999; }
[data-bg="red-30"]          { --color-bg: #ffb3b3; }
[data-bg="red-20"]          { --color-bg: #ffcccc; }
[data-bg="red-10"]          { --color-bg: #ffe6e6; }

[data-bg="red-magenta-50"]  { --color-bg: #ff80bf; }
[data-bg="red-magenta-40"]  { --color-bg: #ff99cc; }
[data-bg="red-magenta-30"]  { --color-bg: #ffb3d9; }
[data-bg="red-magenta-20"]  { --color-bg: #ffcce5; }
[data-bg="red-magenta-10"]  { --color-bg: #ffe6f2; }

[data-bg="magenta-50"]      { --color-bg: #ff80ff; }
[data-bg="magenta-40"]      { --color-bg: #ff99ff; }
[data-bg="magenta-30"]      { --color-bg: #ffb3ff; }
[data-bg="magenta-20"]      { --color-bg: #ffccff; }
[data-bg="magenta-10"]      { --color-bg: #ffe6ff; }

[data-bg="purple-50"]       { --color-bg: #bf80ff; }
[data-bg="purple-40"]       { --color-bg: #cc99ff; }
[data-bg="purple-30"]       { --color-bg: #d9b3ff; }
[data-bg="purple-20"]       { --color-bg: #e5ccff; }
[data-bg="purple-10"]       { --color-bg: #f2e6ff; }

[data-bg="blue-50"]         { --color-bg: #8080ff; }
[data-bg="blue-40"]         { --color-bg: #9999ff; }
[data-bg="blue-30"]         { --color-bg: #b3b3ff; }
[data-bg="blue-20"]         { --color-bg: #ccccff; }
[data-bg="blue-10"]         { --color-bg: #e6e6ff; }

[data-bg="blue-cyan-50"]    { --color-bg: #80bfff; }
[data-bg="blue-cyan-40"]    { --color-bg: #99ccff; }
[data-bg="blue-cyan-30"]    { --color-bg: #b3d9ff; }
[data-bg="blue-cyan-20"]    { --color-bg: #cce5ff; }
[data-bg="blue-cyan-10"]    { --color-bg: #e6f2ff; }

[data-bg="cyan-50"]         { --color-bg: #80ffff; }
[data-bg="cyan-40"]         { --color-bg: #99ffff; }
[data-bg="cyan-30"]         { --color-bg: #b3ffff; }
[data-bg="cyan-20"]         { --color-bg: #ccffff; }
[data-bg="cyan-10"]         { --color-bg: #e6ffff; }

[data-bg="cyan-lime-50"]    { --color-bg: #80ffbf; }
[data-bg="cyan-lime-40"]    { --color-bg: #99ffcc; }
[data-bg="cyan-lime-30"]    { --color-bg: #b3ffd9; }
[data-bg="cyan-lime-20"]    { --color-bg: #ccffe5; }
[data-bg="cyan-lime-10"]    { --color-bg: #e6fff2; }

[data-bg="lime-50"]         { --color-bg: #80ff80; }
[data-bg="lime-40"]         { --color-bg: #99ff99; }
[data-bg="lime-30"]         { --color-bg: #b3ffb3; }
[data-bg="lime-20"]         { --color-bg: #ccffcc; }
[data-bg="lime-10"]         { --color-bg: #e6ffe6; }

[data-bg="lime-yellow-50"]  { --color-bg: #bfff80; }
[data-bg="lime-yellow-40"]  { --color-bg: #ccff99; }
[data-bg="lime-yellow-30"]  { --color-bg: #d9ffb3; }
[data-bg="lime-yellow-20"]  { --color-bg: #e5ffcc; }
[data-bg="lime-yellow-10"]  { --color-bg: #f2ffe6; }

[data-bg="yellow-50"]       { --color-bg: #ffff80; }
[data-bg="yellow-40"]       { --color-bg: #ffff99; }
[data-bg="yellow-30"]       { --color-bg: #ffffb3; }
[data-bg="yellow-20"]       { --color-bg: #ffffcc; }
[data-bg="yellow-10"]       { --color-bg: #ffffe6; }

[data-bg="orange-50"]       { --color-bg: #ffbf80; }
[data-bg="orange-40"]       { --color-bg: #ffcc99; }
[data-bg="orange-30"]       { --color-bg: #ffd9b3; }
[data-bg="orange-20"]       { --color-bg: #ffe5cc; }
[data-bg="orange-10"]       { --color-bg: #fff2e6; }

/* ── Expanded spectrum palette (PacklistPRO) — DARK-mode shades ─────────────────
   48 tinted levels (50/40/30/20% × 12 hues); each pure hue darkened toward black.
   Wins over the light [data-bg] rules above by specificity in dark mode. The 100%
   (pure) level was removed. The 10% level is LIGHT-only — the *-10 tokens are pinned
   to the default dark bg below so the near-white light pastel can't bleed into dark
   mode. Hex values are the owner's exact spec. */
[data-theme="dark"][data-bg="red-50"]          { --color-bg: #800000; }
[data-theme="dark"][data-bg="red-40"]          { --color-bg: #660000; }
[data-theme="dark"][data-bg="red-30"]          { --color-bg: #4d0000; }
[data-theme="dark"][data-bg="red-20"]          { --color-bg: #330000; }

[data-theme="dark"][data-bg="red-magenta-50"]  { --color-bg: #800040; }
[data-theme="dark"][data-bg="red-magenta-40"]  { --color-bg: #660033; }
[data-theme="dark"][data-bg="red-magenta-30"]  { --color-bg: #4d0026; }
[data-theme="dark"][data-bg="red-magenta-20"]  { --color-bg: #330019; }

[data-theme="dark"][data-bg="magenta-50"]      { --color-bg: #800080; }
[data-theme="dark"][data-bg="magenta-40"]      { --color-bg: #660066; }
[data-theme="dark"][data-bg="magenta-30"]      { --color-bg: #4d004d; }
[data-theme="dark"][data-bg="magenta-20"]      { --color-bg: #330033; }

[data-theme="dark"][data-bg="purple-50"]       { --color-bg: #400080; }
[data-theme="dark"][data-bg="purple-40"]       { --color-bg: #330066; }
[data-theme="dark"][data-bg="purple-30"]       { --color-bg: #26004d; }
[data-theme="dark"][data-bg="purple-20"]       { --color-bg: #1a0033; }

[data-theme="dark"][data-bg="blue-50"]         { --color-bg: #000080; }
[data-theme="dark"][data-bg="blue-40"]         { --color-bg: #000066; }
[data-theme="dark"][data-bg="blue-30"]         { --color-bg: #00004d; }
[data-theme="dark"][data-bg="blue-20"]         { --color-bg: #000033; }

[data-theme="dark"][data-bg="blue-cyan-50"]    { --color-bg: #004080; }
[data-theme="dark"][data-bg="blue-cyan-40"]    { --color-bg: #003366; }
[data-theme="dark"][data-bg="blue-cyan-30"]    { --color-bg: #00264d; }
[data-theme="dark"][data-bg="blue-cyan-20"]    { --color-bg: #001a33; }

[data-theme="dark"][data-bg="cyan-50"]         { --color-bg: #008080; }
[data-theme="dark"][data-bg="cyan-40"]         { --color-bg: #006666; }
[data-theme="dark"][data-bg="cyan-30"]         { --color-bg: #004d4d; }
[data-theme="dark"][data-bg="cyan-20"]         { --color-bg: #003333; }

[data-theme="dark"][data-bg="cyan-lime-50"]    { --color-bg: #008040; }
[data-theme="dark"][data-bg="cyan-lime-40"]    { --color-bg: #006633; }
[data-theme="dark"][data-bg="cyan-lime-30"]    { --color-bg: #004d26; }
[data-theme="dark"][data-bg="cyan-lime-20"]    { --color-bg: #00331a; }

[data-theme="dark"][data-bg="lime-50"]         { --color-bg: #008000; }
[data-theme="dark"][data-bg="lime-40"]         { --color-bg: #006600; }
[data-theme="dark"][data-bg="lime-30"]         { --color-bg: #004d00; }
[data-theme="dark"][data-bg="lime-20"]         { --color-bg: #003300; }

[data-theme="dark"][data-bg="lime-yellow-50"]  { --color-bg: #408000; }
[data-theme="dark"][data-bg="lime-yellow-40"]  { --color-bg: #336600; }
[data-theme="dark"][data-bg="lime-yellow-30"]  { --color-bg: #264d00; }
[data-theme="dark"][data-bg="lime-yellow-20"]  { --color-bg: #1a3300; }

[data-theme="dark"][data-bg="yellow-50"]       { --color-bg: #808000; }
[data-theme="dark"][data-bg="yellow-40"]       { --color-bg: #666600; }
[data-theme="dark"][data-bg="yellow-30"]       { --color-bg: #4d4d00; }
[data-theme="dark"][data-bg="yellow-20"]       { --color-bg: #333300; }

[data-theme="dark"][data-bg="orange-50"]       { --color-bg: #804000; }
[data-theme="dark"][data-bg="orange-40"]       { --color-bg: #663300; }
[data-theme="dark"][data-bg="orange-30"]       { --color-bg: #4d2600; }
[data-theme="dark"][data-bg="orange-20"]       { --color-bg: #331900; }

/* 10% is LIGHT-only: pin the *-10 tokens to the default dark bg (#121418, same as
   the [data-theme="dark"] base) so the near-white light pastel above doesn't bleed
   into dark mode — equal specificity would otherwise let the light rule win on
   source order. Keep this color in sync with [data-theme="dark"] { --color-bg }. */
[data-theme="dark"][data-bg="red-10"],
[data-theme="dark"][data-bg="red-magenta-10"],
[data-theme="dark"][data-bg="magenta-10"],
[data-theme="dark"][data-bg="purple-10"],
[data-theme="dark"][data-bg="blue-10"],
[data-theme="dark"][data-bg="blue-cyan-10"],
[data-theme="dark"][data-bg="cyan-10"],
[data-theme="dark"][data-bg="cyan-lime-10"],
[data-theme="dark"][data-bg="lime-10"],
[data-theme="dark"][data-bg="lime-yellow-10"],
[data-theme="dark"][data-bg="yellow-10"],
[data-theme="dark"][data-bg="orange-10"] { --color-bg: #121418; }

/* ── Grayscale ramp ─────────────────────────────────────────────
   Neutral page-background ramp, theme-split (Preferences shows only the half
   that fits the active theme): White→Gray 50% are the LIGHT-mode options,
   Gray 50%→Black the DARK-mode options; gray-50 (#808080) is the shared
   midpoint shown in both. Token number = lightness % (100 = white, 0 = black).
   Like the spectrum above, only --color-bg changes — cards/nav/inputs keep
   their own vars. */
[data-bg="gray-100"] { --color-bg: #ffffff; }
[data-bg="gray-90"]  { --color-bg: #e5e5e5; }
[data-bg="gray-80"]  { --color-bg: #cccccc; }
[data-bg="gray-70"]  { --color-bg: #b3b3b3; }
[data-bg="gray-60"]  { --color-bg: #999999; }
[data-bg="gray-50"]  { --color-bg: #808080; }

[data-theme="dark"][data-bg="gray-50"] { --color-bg: #808080; }
[data-theme="dark"][data-bg="gray-40"] { --color-bg: #666666; }
[data-theme="dark"][data-bg="gray-30"] { --color-bg: #4d4d4d; }
[data-theme="dark"][data-bg="gray-20"] { --color-bg: #333333; }
[data-theme="dark"][data-bg="gray-10"] { --color-bg: #1a1a1a; }
[data-theme="dark"][data-bg="gray-0"]  { --color-bg: #000000; }

/* The light-half tokens (gray-100…gray-60) carry a light --color-bg that would
   bleed into dark mode (equal specificity, source order) if a user picked one
   and later switched to Dark. Pin them to the default dark bg so a stale
   "White" never paints a dark page white. Keep in sync with
   [data-theme="dark"] { --color-bg }. gray-50 is deliberately NOT pinned —
   #808080 is its value in both themes. */
[data-theme="dark"][data-bg="gray-100"],
[data-theme="dark"][data-bg="gray-90"],
[data-theme="dark"][data-bg="gray-80"],
[data-theme="dark"][data-bg="gray-70"],
[data-theme="dark"][data-bg="gray-60"] { --color-bg: #121418; }

/* ── Dark-mode semantic TEXT contrast ──────────────────────────
   The saturated light-mode semantic colors (danger/info/warning/success)
   stay as-is so badge/button FILLS keep enough contrast for their white text.
   But used as FOREGROUND text on the dark card / banner / *-bg surfaces they
   fall below WCAG AA (e.g. #c62828 danger text on the #3b1212 danger-bg is
   ~1.9:1; the required-star and inline-tip measured 2.9 / 3.1 on dark cards).
   Lighten the text-only uses to AA-passing tints. Benefits all 3 sites. */
[data-theme="dark"] .required-star,
[data-theme="dark"] .error-message,
[data-theme="dark"] .field-validation-error,
[data-theme="dark"] .banner-offline,
[data-theme="dark"] .exp-badge-unsettled { color: #ef5350; }

[data-theme="dark"] .inline-tip { color: #4fc3f7; }

[data-theme="dark"] .banner-demo,
[data-theme="dark"] .caps-lock-warning,
[data-theme="dark"] .note-date-badge,
[data-theme="dark"] .drf-warn-icon,
[data-theme="dark"] .exp-badge-est { color: #ffa726; }

[data-theme="dark"] .exp-badge-settled { color: #66bb6a; }

[data-theme="dark"] .exp-badge-shared { color: #4fc3f7; }

/* Dark-mode TEXT lightening for the semantic text utilities + itinerary status
   pills (they still sit on dark surfaces). Toasts (.site-toast.*) and inline
   message panels (.alert-panel.*) are now SOLID, theme-independent colors with
   fixed near-black text (see the cross-site message palette below), so they are
   deliberately no longer listed here — a success/error/etc. message looks
   identical in light and dark mode. */
[data-theme="dark"] .itin-status-confirmed,
[data-theme="dark"] .itin-status-completed,
[data-theme="dark"] .text-success { color: #66bb6a; }

[data-theme="dark"] .text-danger { color: #ef5350; }

::selection      { background: var(--selection-bg); color: var(--selection-color); }
::-moz-selection { background: var(--selection-bg); color: var(--selection-color); }

/* ── 1. User font-size preference (scales all rem-based sizes) ── */
html              { font-size: 16px; }   /* default: 1rem = 16px */
html.font-small   { font-size: 14px; }
html.font-medium  { font-size: 16px; }
html.font-large   { font-size: 18px; }

/* ── 2. Document base ──────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    /* Anchor-link offset so the sticky nav (56px tall) doesn't obscure jump-targets */
    scroll-padding-top: calc(var(--nav-height, 56px) + 0.5rem);
}
body {
    margin: 0;
    padding: 0;
    font-family: var(--font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
    font-size: var(--font-size-base, 1rem);
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-bg, #f5f7fa);
    line-height: var(--line-height, 1.5);
    -webkit-font-smoothing: antialiased;
    overflow-wrap: break-word;
}

/* ── 2a. Scrollbar tinting ────────────────────────────────── */
* {
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--color-text-muted) 40%, transparent) transparent;
}
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--color-text-muted) 35%, transparent);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
}
*::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--color-text-muted) 55%, transparent);
    background-clip: padding-box;
}

/* ── 2b. Inline code / kbd / pre ─────────────────────────── */
code, kbd, samp, tt {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.875em;
}
:not(pre) > code {
    padding: 0.12em 0.4em;
    background: color-mix(in srgb, var(--color-primary-light) 70%, transparent);
    color: var(--color-text);
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
    white-space: nowrap;
}
[data-theme="dark"] :not(pre) > code {
    background: color-mix(in srgb, var(--color-primary) 16%, var(--color-bg-input));
}
pre {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.85em;
    line-height: 1.5;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: 0.75rem 0.9rem;
    overflow-x: auto;
}

/* Responsive media defaults */
img, svg { max-width: 100%; height: auto; }

/* ── 3. Page title ─────────────────────────────────────────── */
.page-title {
    font-size: var(--font-size-xxl, 1.75rem);
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text, #1a1f2e);
    margin: 0 0 0.5rem 0;
    line-height: 1.2;
    letter-spacing: -0.01em;
    text-align: left;   /* left-justify titles on all 3 sites; .text-center (a utility defined later) still overrides where a page opts in */
}
.page-title-flush { margin-bottom: 0; }

/* ── 4. Typography ─────────────────────────────────────────── */
.normal-text-bold { font-weight: var(--font-weight-bold, 600); }

.small-dim-text {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted, #6c757d);
}

/* Same color as normal body text, just smaller. Use for fine-print, captions,
   metadata, etc. where the content is still primary, not a side-note. */
.small-text {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text, #1a1f2e);
}

.inline-tip {
    display: inline-block;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-info, #0277bd);
    background-color: var(--color-info-bg, #e1f5fe);
    border-left: 3px solid var(--color-info-border, #81d4fa);
    padding: 0.4rem 0.7rem;
    border-radius: var(--border-radius-sm, 4px);
    margin: 0.4rem 0;
}

.note {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text-muted, #6c757d);
    font-style: italic;
    margin: 0.25rem 0;
}

.input-label {
    display: inline-block;
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-text, #1a1f2e);
    margin-bottom: 0.25rem;
}

.link,
a.link {
    color: var(--color-link, var(--color-primary, #0090C8));
    text-decoration: none;
    font-weight: var(--font-weight-bold, 600);
    cursor: pointer;
    transition: color var(--transition-fast, 0.15s ease);
}
.link:hover,
a.link:hover {
    color: var(--color-link-hover, var(--color-primary-dark, #005a80));
    text-decoration: underline;
}
/* When .link is applied to a <button> (e.g. a "Hide Overview" toggle that must
   POST/run JS rather than navigate), strip the native button chrome so it reads
   as an inline text link. Without this the button keeps the UA ButtonFace
   background (#f0f0f0) — which never themes to dark, so the bold cyan link text
   sat on a light-gray pill in dark mode (~2.2:1). */
button.link {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    font-weight: var(--font-weight-bold, 600);
    line-height: inherit;
    -webkit-appearance: none;
    appearance: none;
}

/* ── 5. Lists - accent-colored bullets/numbers by default ──
   Applies to every <ul> and <ol> on the site. The named classes
   .bullet-list and .numbered-list are optional explicit aliases. */
ul li::marker { color: var(--color-primary, #0090C8); }
ol li::marker { color: var(--color-primary, #0090C8); font-weight: var(--font-weight-bold, 600); }
.bullet-list   { list-style-type: disc; }
.numbered-list { list-style-type: decimal; }

/* Home-page "what you get" benefit list — accent check (✓) bullets.
   Used by the marketing/welcome cards on all four sites' Home.aspx. The
   ::before check replaces the native marker, so list-style is removed. */
.home-checklist { list-style: none; margin: 0 0 .25rem; padding: 0; }
.home-checklist li {
    position: relative;
    padding-left: 1.7em;
    margin: 0 0 .45em;
    line-height: 1.45;
}
.home-checklist li::before {
    content: "\2713"; /* ✓ */
    position: absolute;
    left: 0;
    top: 0;
    color: var(--color-accent, #00B0F0);
    font-weight: 700;
}

/* ── 6. Cards ──────────────────────────────────────────────── */
.main-card {
    background-color: var(--color-bg-card, #ffffff);
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: var(--border-radius, 8px);
    padding: var(--card-padding, 1rem);
    margin-bottom: 1rem;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.08));
}

/* Corner-× close for "Options & Filters" controls cards. A top-right × that
   collapses the card and (where the card has one) triggers its existing
   Save/Apply/Close action — a more reachable alternative to a footer button.
   The host card carries .card-options-host so it becomes the positioning anchor
   (a plain class, not :has(), so the bundler's CSS minifier can't drop it).
   Promoted from PLP ShoppingList's original .sl-options-topbar so all four
   sites share one look. The .card-options-topbar div is placed as a child of
   the (open) options panel. */
.card-options-host { position: relative; }
.card-options-topbar {
    position: absolute;
    top: var(--card-padding, 1rem);
    right: var(--card-padding, 1rem);
    margin: 0;
    z-index: 1;
}
/* Make the × read as a real button (filled primary, white glyph) rather than a
   faint icon. Scoped to the topbar so other .tip-icon-button uses (tips close,
   file-remove) stay transparent. */
.card-options-topbar .tip-icon-button {
    min-width: 2.5rem;
    min-height: 2.5rem;
    color: #fff;
    background-color: var(--color-primary, #0090C8);
    border-radius: var(--btn-radius, 6px);
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.15));
    font-weight: 700;
}
.card-options-topbar .tip-icon-button:hover {
    color: #fff;
    background-color: var(--color-primary-dark, #005a80);
}
.card-options-topbar .tip-icon-button:active {
    box-shadow: var(--shadow-btn-active, inset 0 2px 4px rgba(0, 0, 0, 0.10));
}

.tip-card {
    background-color: var(--color-info-bg, #e1f5fe);
    border: 1px solid var(--color-info-border, #81d4fa);
    border-radius: var(--border-radius, 8px);
    padding: var(--card-padding, 1rem);
    margin-bottom: 1rem;
    position: relative;
    /* Hidden by default so the card doesn't flash on pages where the user
       previously closed it. initTips() adds .tip-visible to show it. */
    display: none;
}
.tip-card.tip-visible { display: block; }

/* Always-visible tip card — used on Tips.aspx to display read-only copies of
   each page's own tips (no ⓘ trigger, no × close, never collapsed). initTips()
   leaves these alone because they don't carry the .tip-card class, so the page
   header's single ⓘ trigger can't toggle them. */
.tip-card-static {
    background-color: var(--color-info-bg, #e1f5fe);
    border: 1px solid var(--color-info-border, #81d4fa);
    border-radius: var(--border-radius, 8px);
    padding: var(--card-padding, 1rem);
    margin: 0 0 0.85rem 0;
    position: relative;
}
.tip-card-static:last-child { margin-bottom: 0; }
.tip-card-static .tip-card-heading { margin-right: 0; }

/* ── 6a. Generic card ─────────────────────────────────────── */
.card {
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-card);
    padding: var(--card-padding);
    margin-bottom: var(--section-gap);
    transition: box-shadow var(--transition-mid), border-color var(--transition-mid);
}
.card-lg { padding: var(--card-padding-lg); }
.card-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    margin: 0 0 0.75rem 0;
    color: var(--color-text);
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Read-only "Account activity" card list (UserProfile across all 4 sites).
   A simple key/value list — label in normal weight, value bold via <strong>.
   The host .main-card supplies the box; this just spaces the rows. */
.account-activity-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.account-activity-list li {
    padding: 0.2rem 0;
    color: var(--color-text);
}
.account-activity-list li + li {
    border-top: 1px solid var(--color-border);
}

summary { cursor: pointer; }
/* Disclosure chevron for <details> cards whose <summary> is the card title.
   .card-title is display:flex, which suppresses the native ::marker triangle —
   without this the heading gives no visual hint it can expand (e.g. the
   Trip Dashboard retrospectives card). Mirrors the .itin-details-summary ▸/▾. */
summary.card-title { list-style: none; }
summary.card-title::-webkit-details-marker { display: none; }
summary.card-title::before {
    content: "▸";
    color: var(--color-text-muted);
    flex: 0 0 auto;
}
details[open] > summary.card-title::before { content: "▾"; }
.card-interactive { cursor: pointer; }
.card-interactive:hover,
.card:hover.card-interactive {
    box-shadow: var(--shadow-card-hover);
    border-color: color-mix(in srgb, var(--color-accent) 25%, var(--color-border));
}
.card-accent {
    border-top: 3px solid var(--color-accent);
    border-radius: var(--border-radius);
}

/* Card list styling — branded bullets for unclassed <ul>/<ol> inside cards */
.card > ul:not([class]),
.card > ul.small,
.card > ol:not([class]),
.card > ol.small {
    padding-left: 1.15rem;
    margin: 0.5rem 0;
}
.card > ul:not([class]) > li,
.card > ul.small > li,
.card > ol:not([class]) > li,
.card > ol.small > li {
    margin-bottom: 0.55rem;
    line-height: 1.55;
}
.card > ul:not([class]) > li:last-child,
.card > ul.small > li:last-child,
.card > ol:not([class]) > li:last-child,
.card > ol.small > li:last-child { margin-bottom: 0; }
.card > ul:not([class]),
.card > ul.small {
    list-style: none;
    padding-left: 1.25rem;
}
.card > ul:not([class]) > li,
.card > ul.small > li {
    position: relative;
    padding-left: 0.6rem;
}
.card > ul:not([class]) > li::before,
.card > ul.small > li::before {
    content: "";
    position: absolute;
    left: -0.55rem;
    top: 0.7em;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: var(--color-accent);
    transform: translateY(-50%);
}
.card > ol:not([class]) > li::marker,
.card > ol.small > li::marker { color: var(--color-accent); font-weight: 700; }

.tip-card-heading {
    font-size: var(--font-size-lg, 1.125rem);
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text, #1a1f2e);
    margin: 0 1.5rem 0.5rem 0;
    line-height: 1.3;
}

.tip-card-text {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--color-text, #1a1f2e);
    margin: 0;
    line-height: 1.5;
}

/* ── Tip card "show more" (progressive disclosure) ─────────────
   Long tip cards (many <li>) collapse to the first few items with a
   "Show N more" toggle so the card stays compact. Activated entirely by
   site.js initTips(): it adds .tips-collapsible to the card, .tip-extra to
   the overflow items, and toggles .tips-expanded. This block is inert until
   that JS runs, so it is safe to ship to every site ahead of the per-site
   JS rollout (short cards never get .tips-collapsible). */
.tip-card.tips-collapsible:not(.tips-expanded) .tip-extra { display: none; }
.tips-more {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.5rem;
    padding: 0.25rem 0;
    border: none;
    background: transparent;
    color: var(--color-accent, #0277bd);
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-bold, 600);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.tips-more:hover { text-decoration: none; }
.tips-more:focus-visible {
    outline: 2px solid var(--color-accent, #0277bd);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── 7. Form inputs ────────────────────────────────────────── */
.textbox,
input.textbox,
textarea.textbox,
select.textbox,
.textarea,
.dropdown,
.date-picker,
.file-picker {
    display: block;
    width: 100%;
    max-width: 100%;
    height: var(--input-height, 2.5rem);
    padding: var(--input-padding, 0.5rem 0.75rem);
    font-family: inherit;
    font-size: max(16px, var(--font-size-base, 1rem));  /* 16px floor prevents iOS auto-zoom */
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-bg-input, #ffffff);
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: var(--border-radius-sm, 6px);
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--transition-fast, 0.15s ease),
                box-shadow var(--transition-fast, 0.15s ease),
                background-color var(--transition-fast, 0.15s ease);
}
.textarea,
textarea.textbox {
    height: auto;
    min-height: calc(var(--input-height, 2.5rem) * 2.5);
    resize: vertical;
    line-height: 1.5;
}
.dropdown,
select.textbox {
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5 L6 6.5 L11 1.5' stroke='%23808080' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 0.75rem;
}
[data-theme="dark"] .dropdown,
[data-theme="dark"] select.textbox {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5 L6 6.5 L11 1.5' stroke='%239aa0a6' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.textbox:hover:not(:focus):not(:disabled),
input.textbox:hover:not(:focus):not(:disabled),
textarea.textbox:hover:not(:focus):not(:disabled),
select.textbox:hover:not(:focus):not(:disabled),
.textarea:hover:not(:focus):not(:disabled),
.dropdown:hover:not(:focus):not(:disabled),
.date-picker:hover:not(:focus):not(:disabled),
.file-picker:hover:not(:focus):not(:disabled) {
    border-color: color-mix(in srgb, var(--color-text-muted, #6c757d) 35%, var(--color-border, #e0e0e0));
}
.textbox:focus,
input.textbox:focus,
textarea.textbox:focus,
select.textbox:focus,
.textarea:focus,
.dropdown:focus,
.date-picker:focus,
.file-picker:focus {
    outline: none;
    border-color: var(--color-border-focus, var(--color-primary, #0090C8));
    box-shadow: var(--shadow-focus, 0 0 0 3px rgba(0, 176, 240, 0.22));
}

.textbox:disabled,
input.textbox:disabled,
textarea.textbox:disabled,
select.textbox:disabled,
.textarea:disabled,
.dropdown:disabled,
.date-picker:disabled,
.file-picker:disabled {
    opacity: 0.6;
    background-color: var(--color-bg, #f5f7fa);
    cursor: not-allowed;
}

/* Invalid-state input styling (aria-invalid from ASP.NET validators, or .input-invalid
   from client-side JS). Mirrors the focus ring in danger color. */
.textbox[aria-invalid="true"],
.textbox.input-invalid {
    border-color: var(--color-danger);
}
.textbox[aria-invalid="true"]:focus,
.textbox.input-invalid:focus {
    box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.18);
}
.textbox.input-error,
input.input-error,
select.input-error,
textarea.input-error {
    border-color: var(--color-danger);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-danger) 18%, transparent);
}

/* Native placeholder text inside textbox/textarea.
   Sized to the design system's normal UI text (--font-size-sm), deliberately SMALLER
   than the host input's reading size (--font-size-base, ~18px) so the placeholder hint
   doesn't dominate the field. (Was `inherit` = same size as typed text, which read too
   large.) Color is mid-gray #808080 per design req. One rule for all 4 sites — the shared
   sheet loads last, and no per-site CSS overrides placeholder font-size. */
input::placeholder,
textarea::placeholder,
.textbox::placeholder,
.textarea::placeholder {
    color: #808080;
    font-size: var(--font-size-sm, 0.875rem);
    opacity: 1;  /* Firefox lowers it by default */
}

.checkbox,
input[type="checkbox"].checkbox,
.checkbox > input[type="checkbox"] {
    width: 1.125rem;
    height: 1.125rem;
    min-width: 1.125rem;
    cursor: pointer;
    accent-color: var(--color-primary, #0090C8);
    vertical-align: middle;
    margin-right: 0.375rem;
}
.checkbox:disabled,
.checkbox > input[type="checkbox"]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
span.checkbox {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    min-width: 0;
    margin-right: 0;
}
.checkbox-nowrap { white-space: nowrap; }
/* Large checkbox variant — add `checkbox-lg` alongside `checkbox` for big, tap-
   friendly boxes (e.g. the per-day completion tally on TargetDetails/MethodDetails).
   An ASP.NET CheckBox renders <span class="checkbox checkbox-lg"><input type=checkbox></span>,
   so the actual control is the INPUT *child* of the span — size that (plus a bare
   input.checkbox-lg for non-server markup). 1.6875rem = 150% of the 1.125rem default;
   matches the base rule's specificity and wins by load order. */
.checkbox-lg > input[type="checkbox"],
input[type="checkbox"].checkbox-lg {
    width: 1.6875rem;
    height: 1.6875rem;
    min-width: 1.6875rem;
}
/* Stacked reminder/notification channel checkboxes — a flex column so every checkbox's left
   edge lines up perfectly (replaces per-item .form-group wrappers, which didn't align cleanly). */
.reminder-channels { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.check-row {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    cursor: pointer;
}
.radio-button,
input[type="radio"].radio-button,
.radio-button > input[type="radio"] {
    width: 1.125rem;
    height: 1.125rem;
    min-width: 1.125rem;
    vertical-align: middle;
    accent-color: var(--color-primary, #0090C8);
    cursor: pointer;
    margin: 0 0.375rem 0 0;
}
span.radio-button {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    min-width: 0;
    margin-right: 0;
}
/* asp:RadioButtonList renders bare <input type="radio"> with NO .radio-button class, so
   the rule above never applies and the dot sits flush against its <label> (e.g. qFIT
   Join3 gender). Give un-classed radios the same gap + alignment so every plain
   RadioButtonList across the four sites reads consistently. :not(.radio-button) avoids
   double-spacing the design-system radios that already set this margin. */
input[type="radio"]:not(.radio-button) {
    vertical-align: middle;
    margin: 0 0.375rem 0 0;
}

/* ── 8. Buttons ────────────────────────────────────────────── */
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    gap: 0.375rem;
    padding: var(--btn-padding, 0.5rem 1.25rem);
    font-family: inherit;
    font-size: var(--btn-font-size, 0.9375rem);
    font-weight: var(--btn-font-weight, 500);
    line-height: 1;
    text-align: center;
    text-decoration: none;
    color: #ffffff;
    background-color: var(--color-primary, #0090C8);
    border: none;
    border-radius: var(--btn-radius, 6px);
    cursor: pointer;
    transition: background-color var(--transition-fast, 0.15s ease),
                color var(--transition-fast, 0.15s ease),
                box-shadow var(--transition-fast, 0.15s ease),
                opacity var(--transition-fast, 0.15s ease);
    white-space: nowrap;
    box-shadow: var(--shadow-btn, 0 1px 2px rgba(0,0,0,0.15));
    min-height: 44px;             /* iOS touch-target accessibility */
    min-width: 44px;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}
.button:hover {
    background-color: var(--color-primary-dark, #005a80);
    color: #ffffff;
    text-decoration: none;
}
.button:focus-visible {
    outline: none;
    box-shadow: var(--shadow-btn, 0 1px 2px rgba(0,0,0,0.15)),
                var(--shadow-focus-ring, 0 0 0 3px rgba(0, 176, 240, 0.35));
}
.button:active {
    opacity: 0.92;
    box-shadow: var(--shadow-btn-active, inset 0 2px 4px rgba(0, 0, 0, 0.10));
}
.button:disabled,
.button[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

/* Save (lime green) - .button.save */
.button.save {
    background-color: var(--color-save-btn, #32cd32);
    border-color: var(--color-save-btn, #32cd32);
    color: #ffffff;
}
.button.save:hover {
    background-color: var(--color-save-btn-hover, #28a828);
    border-color: var(--color-save-btn-hover, #28a828);
}

/* Danger (red) - .button.danger - Delete, Clear, Cancel */
.button.danger {
    background-color: var(--color-delete-btn, #d32f2f);
    border-color: var(--color-delete-btn, #d32f2f);
    color: #ffffff;
}
.button.danger:hover {
    background-color: var(--color-delete-btn-hover, #b71c1c);
    border-color: var(--color-delete-btn-hover, #b71c1c);
}

/* Transparent (outline only) - .button.transparent */
.button.transparent {
    background-color: transparent;
    color: var(--color-primary, #0090C8);
    border: 1px solid var(--color-primary, #0090C8);
    box-shadow: none;
}
.button.transparent:hover {
    background-color: var(--color-primary-light, #e0f6fe);
    color: var(--color-primary-dark, #005a80);
    border-color: var(--color-primary-dark, #005a80);
}

/* Warning (orange) - .button.warning - Caution/alert action */
.button.warning {
    background-color: var(--color-warning, #e65100);
    border-color: var(--color-warning, #e65100);
    color: #ffffff;
}
.button.warning:hover {
    background-color: #d97706;
    border-color: #d97706;
}

/* Focus rings for colored button variants */
.button.save:focus-visible {
    box-shadow: var(--shadow-btn), 0 0 0 3px rgba(50, 205, 50, 0.35);
}
.button.danger:focus-visible {
    box-shadow: var(--shadow-btn), 0 0 0 3px rgba(211, 47, 47, 0.35);
}

/* Small modifier - .button.small */
.button.small {
    padding: var(--btn-padding-sm, 0.375rem 0.875rem);
    font-size: 0.875rem;
}

/* Save-state feedback (set by site.js setSaving / setSaved / setSaveError). */
.button.saving { opacity: 0.75; cursor: wait; }
.button.saved { background-color: var(--color-success, #2e7d32); color: #fff; }
.button.save-error {
    background-color: var(--color-delete-btn, #d32f2f);
    color: #fff;
    animation: flashError 0.6s ease forwards;
}
@keyframes flashError {
    0%   { background-color: var(--color-delete-btn, #d32f2f); }
    100% { background-color: var(--color-primary, #0090C8); }
}

/* Icon-only button (e.g. the ⓘ Tips trigger, × close). */
.tip-icon-button,
.tips-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.25rem;
    border: none;
    background: transparent;
    color: var(--color-text-muted, #6c757d);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    border-radius: var(--border-radius-sm, 6px);
    transition: color var(--transition-fast, 0.15s ease),
                background-color var(--transition-fast, 0.15s ease);
}
.tip-icon-button:hover,
.tips-close:hover {
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-primary-light, #e0f6fe);
}
.tip-icon-button:focus-visible,
.tips-close:focus-visible {
    outline: 2px solid var(--color-border-focus, var(--color-primary, #0090C8));
    outline-offset: 2px;
}
/* Make the (i) glyph itself bold — the U+24D8 ⓘ default weight reads as a
   thin outline at this font-size and gets visually lost in the header row.
   Scoped to [aria-expanded] so only the tip-opener triggers go bold; other
   uses of .tip-icon-button (× close, × file-remove) never set aria-expanded
   and keep their original weight. */
.tip-icon-button[aria-expanded] {
    font-weight: bold;
}

/* The trigger is the way to OPEN the Tips card. Once the card is open the
   trigger is redundant (and the card has its own × close button), so hide
   it; it reappears when the user closes the card and aria-expanded flips
   back to "false". Tips-toggle JS is the only thing that sets aria-expanded
   on .tip-icon-button, so other tip-icon-button uses (file-remove buttons,
   inline closers) which never get aria-expanded are unaffected. */
.tip-icon-button[aria-expanded="true"] {
    display: none;
}

/* ── 9. Pills ──────────────────────────────────────────────── */
.pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-bg-card, #ffffff);
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: 999px;
    cursor: pointer;
    user-select: none;
    text-decoration: none;
    transition: background-color var(--transition-fast, 0.15s ease),
                border-color var(--transition-fast, 0.15s ease),
                color var(--transition-fast, 0.15s ease);
}
.pill:hover, .pill:focus { text-decoration: none; }
.pill:hover { border-color: var(--color-primary, #0090C8); }
.pill.active,
.pill[aria-pressed="true"] {
    background-color: var(--color-primary, #0090C8);
    color: #ffffff;
    border-color: var(--color-primary, #0090C8);
}
.pill.small {
    padding: 0.15rem 0.55rem;
    font-size: var(--font-size-xs, 0.75rem);
}

/* ── 10. Alert / inline message panels ─────────────────────── */
.alert-panel {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem 1rem 0.75rem 0.85rem;
    margin: 0.5rem 0 1rem;
    border: 1px solid transparent;
    border-left-width: 4px;          /* solid accent stripe on the left */
    border-radius: var(--border-radius, 10px);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.45;
}
.alert-panel a {
    color: inherit;
    font-weight: var(--font-weight-medium, 500);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.alert-panel a:hover { text-decoration-thickness: 2px; }
.alert-panel[data-icon]::before {
    content: attr(data-icon);
    flex-shrink: 0;
    font-size: 1.05em;
    line-height: 1.4;
}
/* Solid, saturated message colors — the SINGLE cross-site standard for BOTH
   inline message panels (.alert-panel) and floating toasts (.site-toast, far
   below, which reuse the exact same values). Fixed hex (NOT theme tokens) so a
   success / error / warning / info message looks IDENTICAL on every site and in
   light AND dark mode. Text is near-black (#111) on lime/orange/cyan (white is
   unreadable there) and WHITE on the red error variant (conventional error
   styling, per request). Set 2026-06-10 per the cross-site message unification. */
.alert-panel.success {
    color: #111;
    background-color: #00ff00;   /* pure lime */
    border-color: rgba(0,0,0,0.22);
    border-left-color: rgba(0,0,0,0.45);
}
.alert-panel.error {
    color: #fff;
    background-color: #ff0000;   /* pure red */
    border-color: rgba(0,0,0,0.22);
    border-left-color: rgba(0,0,0,0.45);
}
.alert-panel.warning {
    color: #111;
    background-color: #ff9600;   /* pure orange */
    border-color: rgba(0,0,0,0.22);
    border-left-color: rgba(0,0,0,0.45);
}
.alert-panel.info {
    color: #111;
    background-color: #00B0F0;   /* accent blue */
    border-color: rgba(0,0,0,0.22);
    border-left-color: rgba(0,0,0,0.45);
}

/* Welcome banner — a PERSISTENT, dismissible variant of .alert-panel used for the
   one-time post-signup message (see BasePage.ShowWelcomeBanner on each site). It
   carries onboarding tips, so unlike a normal success panel it does NOT auto-dismiss;
   the × button (.welcome-banner-close) hides it client-side. Colour comes from the
   success class the host site applies (.success or .alert-success). */
.welcome-banner {
    position: relative;
    padding-right: 2.5rem;
}
.welcome-banner-close {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 50%;
    font-size: 1.4rem;
    line-height: 1;
    color: inherit;
    opacity: 0.7;
    cursor: pointer;
}
.welcome-banner-close:hover { opacity: 1; }

/* ── 11. Section headings ─────────────────────────────────── */
.largeheading {
    font-size: var(--font-size-xl, 1.375rem);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 0.5rem 0;
    line-height: 1.25;
    letter-spacing: -0.005em;
}
.heading {
    font-size: var(--font-size-lg, 1.125rem);
    font-weight: var(--font-weight-bold, 600);
    color: var(--color-text);
    margin: 0 0 0.4rem 0;
    line-height: 1.3;
}

/* ── 12. Horizontal rule ──────────────────────────────────── */
.hr,
hr.hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--section-gap, 1.5rem) 0;
}

/* ── 13. Required-field indicator ─────────────────────────── */
.required-star {
    color: var(--color-danger);
    margin-left: 0.1em;
}

/* ── 14. Loading spinner ──────────────────────────────────── */
.spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    border: 2px solid rgba(255, 255, 255, 0.28);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin 0.65s linear infinite;
    vertical-align: middle;
    will-change: transform;
}
.spinner-dark {
    border-color: rgba(0, 0, 0, 0.2);
    border-top-color: var(--color-primary);
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── 14a. Character counter (below textareas with max length) ── */
.char-counter {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-align: right;
    margin-top: 0.2rem;
    transition: color 0.2s, font-weight 0.2s;
    font-variant-numeric: tabular-nums;
}
.char-counter.near-limit { color: var(--color-warning); font-weight: var(--font-weight-medium); }
.char-counter.at-limit   { color: var(--color-danger);  font-weight: var(--font-weight-bold);   }

/* ── 15. Back button ──────────────────────────────────────── */
.back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-decoration: none;
    padding: 0.375rem 0.55rem;
    margin-left: -0.55rem;
    min-height: 44px;
    border-radius: var(--border-radius-sm);
    transition: color var(--transition-fast),
                background-color var(--transition-fast);
}
.back-btn:hover {
    color: var(--color-text);
    text-decoration: none;
    background-color: var(--color-primary-light);
}
.back-btn:focus-visible {
    outline: none;
    box-shadow: var(--shadow-focus);
    color: var(--color-text);
}

/* ── 16. Utility classes ──────────────────────────────────── */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}
.text-muted   { color: var(--color-text-muted); }
.text-danger  { color: var(--color-danger); }
.text-success { color: var(--color-success); }
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-left    { text-align: left; }
.d-none       { display: none !important; }
.d-flex       { display: flex; }
.d-block      { display: block; }
.flex-wrap    { flex-wrap: wrap; }
.gap-1        { gap: 0.25rem; }
.gap-2        { gap: 0.5rem; }
.gap-3        { gap: 0.75rem; }
.gap-4        { gap: 1rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.w-100 { width: 100%; }
.cursor-pointer { cursor: pointer; }
.nowrap { white-space: nowrap; }
.select-auto { width: auto; }
.col-w-date { width: 8rem; white-space: nowrap; }
.col-w-chk  { width: 2.5rem; }
.detail-card-hidden { display: none; }

/* ── 16a. Toolbar row helpers ────────────────────────────── */
.toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-end;
}
.toolbar-row-spaced {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-end;
    margin-top: 0.75rem;
}
.toolbar-actions {
    display: flex;
    gap: 0.5rem;
    padding-bottom: 0.25rem;
}
.toolbar-search-grow {
    flex: 1;
    min-width: 200px;
    margin-bottom: 0;
}

/* ── 16b. Responsive hide/show ───────────────────────────── */
@media (max-width: 575px) { .hide-xs { display: none !important; } }
@media (max-width: 767px) { .hide-sm { display: none !important; } }
@media (min-width: 768px) { .show-xs-only { display: none !important; } }

/* ── 17. Focus visible (accessibility) ────────────────────── */
:focus-visible {
    outline: 3px solid var(--color-border-focus);
    outline-offset: 2px;
}

/* ── 18. Modals ───────────────────────────────────────────── */
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    -webkit-backdrop-filter: blur(4px) saturate(140%);
    backdrop-filter:         blur(4px) saturate(140%);
    z-index: 2000;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    animation: modalFade 0.18s var(--ease-out-quint);
}
.modal-overlay.open { display: flex; }

.modal-box {
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-xl);
    max-width: 480px;
    width: 100%;
    padding: 1.5rem;
    position: relative;
    animation: modalPop 0.22s var(--ease-out-back);
}
@keyframes modalFade {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes modalPop {
    from { opacity: 0; transform: translateY(8px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1); }
}

.modal-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    margin: 0 0 0.75rem 0;
}

.modal-footer {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* ── 19. Breadcrumbs ──────────────────────────────────────── */
.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    list-style: none;
    padding: 0;
    margin: 0 0 0.75rem 0;
}
.breadcrumb-item + .breadcrumb-item::before {
    content: "›";
    margin-right: 0.3rem;
    color: var(--color-text-light);
    font-size: 1.05em;
    line-height: 1;
}
.breadcrumb-item a { color: var(--color-link); text-decoration: none; }
.breadcrumb-item a:hover { text-decoration: underline; text-underline-offset: 2px; }
.breadcrumb-item.active { color: var(--color-text); font-weight: var(--font-weight-medium); }

/* ── 20. Tip-card structural helpers ──────────────────────── */
/* Used alongside .tip-card to position the × close button, hold the ⓘ trigger,
   and clear the float. The .tip-card itself is position:relative so .tips-close
   can be absolutely positioned inside. */
.tips-close {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
}

/* TipsPanel.ascx renders the Ⓘ trigger BEFORE the page header on most pages.
   A plain float:right left the icon on its own line above the title. Anchor
   the trigger absolutely to the upper-right of <main class="page-wrapper">
   so it always sits in the upper-right corner of the title row. */
main.page-wrapper { position: relative; }
.tips-trigger-wrap {
    float: none;
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    margin: 0;
}
@media (min-width: 768px) {
    .tips-trigger-wrap { top: 1.5rem; right: 1.5rem; }
}
@media (min-width: 1200px) {
    .tips-trigger-wrap { top: 2rem; right: 1.5rem; }
}
.tips-clear { display: none; }

/* Reserve right-side space so a long page title can't visually overlap the
   absolutely-positioned Ⓘ trigger. Applies to .page-title (single-element
   title) as well as the .page-header pattern used elsewhere. */
.tips-trigger-wrap ~ .page-title,
.tips-trigger-wrap ~ .page-header,
.tips-trigger-wrap ~ * .page-title,
.tips-trigger-wrap ~ * .page-header {
    padding-right: 3rem;
}

/* ── 21. Form layout helpers ──────────────────────────────── */
.form-group {
    margin-bottom: 1rem;
}
.form-group-flush { margin-bottom: 0; }
.form-group .input-label,
.form-group .label { margin-bottom: 0.25rem; }
.form-group .textbox { width: 100%; }
@media (min-width: 768px) {
    .form-group .textbox { max-width: 480px; }
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: 0.5rem;
    margin-bottom: 1rem;
}
.form-row .form-group {
    flex: 1 1 100%;
    margin-bottom: 0;
}
@media (min-width: 640px) {
    .form-row .form-group { flex: 1 1 calc(50% - 0.5rem); }
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
    align-items: center;
}
.form-actions-centered { justify-content: center; }

/* ── Quiet Hours window (DoNotDisturb.ascx) ────────────────────
   Keep the From + Until label/dropdown pairs together on one line — two short
   half-hour dropdowns always fit. Wraps the second pair below only on a very
   narrow viewport. Shared across PacklistPRO / qMeet / qFIT. */
.dnd-window-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 1.25rem;
    row-gap: 0.5rem;
    margin-bottom: 1rem;
}
.dnd-window-row .dnd-window-field {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.dnd-window-row .input-label {
    margin-bottom: 0;       /* override the stacked-label bottom margin for inline use */
    white-space: nowrap;
}
.dnd-window-row .dropdown {
    width: 9rem;            /* fits "12:00 AM" + chevron; stable width as the value changes */
}

/* ── Donate page ───────────────────────────────────────────────
   Payment-method row: a round method icon on the left, a wrappable
   name + URL in the middle, and the action buttons (Donate + Copy
   link) on the right. Stacks vertically on narrow screens so the
   buttons stay full-width and tappable. Shared across PacklistPRO /
   qMeet / qFIT Donate pages. The icon / name / url / actions /
   support-list sub-parts were promoted here from PacklistPRO so every
   site renders the same donate layout from the shared design system. */
.donate-method {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.5rem 0;
}
.donate-method + .donate-method {
    border-top: 1px solid var(--color-border);
    margin-top: 0.75rem;
    padding-top: 1rem;
}
.donate-method-icon {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-accent-bg, var(--color-info-bg));
    color: var(--color-accent);
    font-size: 1.25rem;
    line-height: 1;
    font-weight: var(--font-weight-medium, 500);
}
.donate-method-body { flex: 1 1 14rem; min-width: 0; word-break: break-word; }
.donate-method-name { margin: 0; font-weight: var(--font-weight-medium, 500); }
.donate-method-url {
    display: block;
    margin-top: 0.15rem;
    word-break: break-all;
    overflow-wrap: anywhere;
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}
.donate-method-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-left: auto;
}
.donate-method-actions .button { white-space: nowrap; }
.donate-method .button { flex: 0 0 auto; }
.donate-support-list { margin: 0.5rem 0 0 1.25rem; padding: 0; }
.donate-support-list li { margin: 0.15rem 0; }
@media (max-width: 575px) {
    .donate-method-actions { width: 100%; margin-left: 0; }
    .donate-method-actions .button { flex: 1 1 auto; }
}
@media (max-width: 480px) {
    .donate-method { gap: 0.5rem; }
    .donate-method-body { flex: 1 1 100%; }
}

/* Suggested-amount picker (Donate pages) — shared so all sites match.
   THEME-AWARE: pills read --color-bg / --color-text / --color-border so they
   stay readable in dark mode. (An earlier qFIT-local version used a token that
   doesn't exist — var(--color-surface-2,…) — and fell back to a hard-coded
   near-white #f3f4f6, giving light text on a white pill in dark mode.)
   Selected pill = accent fill + white text. */
.donate-amounts-card .donate-amount-fieldset { border: 0; padding: 0; margin: 0; }
.donate-amount-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: stretch;
    margin-top: 0.4rem;
}
.donate-amount-pill {
    appearance: none;
    -webkit-appearance: none;
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 0.5rem 1.1rem;
    font-size: 1rem;
    font-weight: var(--font-weight-bold, 600);
    cursor: pointer;
    min-width: 64px;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .05s ease;
}
.donate-amount-pill:hover { border-color: var(--color-accent); }
.donate-amount-pill:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.donate-amount-pill:active { transform: translateY(1px); }
.donate-amount-pill.selected,
.donate-amount-pill[aria-checked="true"] {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}
.donate-amount-custom-label {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 0.1rem 0.6rem 0.1rem 0.85rem;
    background: var(--color-bg);
    color: var(--color-text);
    font-weight: var(--font-weight-bold, 600);
}
.donate-amount-custom {
    width: 5.5rem;
    border: 0;
    background: transparent;
    color: var(--color-text);
    padding: 0.35rem 0.25rem;
    font-size: 1rem;
    font-weight: var(--font-weight-bold, 600);
    text-align: right;
    -moz-appearance: textfield;       /* hide spinner arrows on a donation field */
}
.donate-amount-custom::-webkit-outer-spin-button,
.donate-amount-custom::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.donate-amount-custom::placeholder { color: var(--color-text-muted); font-weight: var(--font-weight-normal, 400); }
.donate-amount-custom:focus { outline: none; }
.donate-amount-custom-label:focus-within { outline: 2px solid var(--color-accent); outline-offset: 2px; }
/* Amount-aware "Donate via" CTA sits in .donate-method-actions next to Copy link. */
.donate-cta { min-width: 12.5rem; }
@media (max-width: 575px) {
    .donate-amount-pill { flex: 1 1 calc(50% - 0.5rem); min-width: 0; }
    .donate-amount-custom-label { flex: 1 1 100%; justify-content: center; }
    .donate-cta { min-width: 0; }
}

/* Compact horizontal pager row: [‹ Prev]  page X of Y  [Next ›].
   Stays a single line at every breakpoint and ships tighter button
   padding than .button.small so the pager doesn't dominate the page. */
.pager-inline {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
.pager-inline > .button {
    padding: 0.15rem 0.55rem;
    font-size: 0.8rem;
    line-height: 1.2;
}

/* ── 22. Responsive table wrapper ─────────────────────────── */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── 23. Banners (full-width strip below the nav) ─────────── */
.banner-demo {
    background-color: var(--color-warning-bg);
    border-bottom: 1px solid var(--color-warning-border);
    color: var(--color-warning);
    padding: 0.55rem 1rem;
    font-size: var(--font-size-sm);
    text-align: center;
    font-weight: var(--font-weight-medium);
}
.banner-demo a {
    font-weight: var(--font-weight-bold);
    text-decoration: underline;
    text-underline-offset: 2px;
}
/* Optional leading icon kept smaller than text so it acts as a quiet marker. */
.banner-demo-icon {
    font-size: 1.05em;
    margin-right: 0.15rem;
    vertical-align: -1px;
}

.banner-offline {
    background-color: var(--color-danger-bg);
    border-bottom: 1px solid var(--color-danger-border);
    color: var(--color-danger);
    padding: 0.55rem 1rem;
    font-size: var(--font-size-sm);
    text-align: center;
    font-weight: var(--font-weight-medium);
    display: none;
    animation: bannerSlideIn 0.22s var(--ease-out-quint);
}
body.offline .banner-offline { display: block; }
@keyframes bannerSlideIn {
    from { transform: translateY(-100%); }
    to   { transform: translateY(0); }
}

/* ── 24. ASP.NET validator / inline field error ───────────── */
/* A small red "!" bullet precedes the message so it reads as an error even on
   calm pages. inline-flex keeps the bullet aligned with the wrapped message. */
.field-validation-error,
.error-message {
    color: var(--color-danger);
    font-size: var(--font-size-sm);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
}
.field-validation-error::before,
.error-message::before {
    content: "!";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05em;
    height: 1.05em;
    flex-shrink: 0;
    background: var(--color-danger);
    color: #ffffff;
    border-radius: 50%;
    font-size: 0.7em;
    font-weight: 700;
    line-height: 1;
}

/* ── Clearable search input ────────────────────────────────────────
   Wrapper + clear button for search/filter fields. */
.input-clearable {
    position: relative;
    display: flex;
    align-items: center;
}
.input-clearable .textbox { padding-right: 2rem; }
.input-clearable .textbox::-webkit-search-cancel-button,
.input-clearable .textbox::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}
.input-clear-btn {
    position: absolute;
    right: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-text-light, #9aa0a8);
    font-size: 1.1rem;
    line-height: 1;
    padding: 0.25rem;
    border-radius: var(--border-radius-sm, 6px);
    transition: color var(--transition-fast, 0.15s ease),
                background-color var(--transition-fast, 0.15s ease);
    display: none;
}
.input-clear-btn:hover {
    color: var(--color-text, #1a1f2e);
    background-color: var(--color-primary-light, #e0f6fe);
}
.input-clear-btn:focus {
    outline: 2px solid var(--color-border-focus, var(--color-primary, #0090C8));
    outline-offset: 2px;
}
.input-clearable .textbox:not(:placeholder-shown) ~ .input-clear-btn,
.input-clear-btn.is-visible {
    display: block;
}

/* ── Skip-to-content link (WCAG 2.4.1) ────────────────────── */
.skip-link {
    position: absolute;
    top: -100px;
    left: 0.5rem;
    background-color: var(--color-accent, #00B0F0);
    color: #fff;
    padding: 0.5rem 0.875rem;
    border-radius: var(--border-radius-sm, 6px);
    text-decoration: none;
    font-weight: var(--font-weight-bold, 600);
    z-index: calc(var(--nav-z) + 100);
    transition: top 0.15s ease;
}
.skip-link:focus,
.skip-link:focus-visible {
    top: 0.5rem;
    outline: 3px solid #fff;
    outline-offset: 2px;
    color: #fff;
}

/* ── Card enter animation ─────────────────────────────────── */
html[data-page-enter] .card {
    animation: cardEnter 280ms var(--ease-out-quint, cubic-bezier(0.22, 1, 0.36, 1)) both;
}
html[data-page-enter] .card:nth-child(2) { animation-delay: 40ms; }
html[data-page-enter] .card:nth-child(3) { animation-delay: 80ms; }
html[data-page-enter] .card:nth-child(4) { animation-delay: 120ms; }
html[data-page-enter] .card:nth-child(n+5) { animation-delay: 160ms; }
@keyframes cardEnter {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    html[data-page-enter] .card { animation: none; }
}

/* ── Data table ───────────────────────────────────────────── */
.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm, 0.875rem);
}
.data-table th {
    text-align: left;
    padding: 0.65rem 0.75rem;
    border-bottom: 2px solid var(--color-border, #e0e0e0);
    color: var(--color-text-muted, #6c757d);
    font-weight: var(--font-weight-medium, 500);
    white-space: nowrap;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}
.data-table td {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--color-border, #e0e0e0);
    vertical-align: middle;
    transition: background-color var(--transition-fast);
}
.data-table tr:last-child td { border-bottom: none; }
.data-table tbody tr:nth-child(even) td { background-color: color-mix(in srgb, var(--color-bg) 50%, transparent); }
.data-table tr:hover td { background-color: var(--color-primary-light, #e0f6fe); }
.data-table-sticky thead th {
    position: sticky;
    top: var(--nav-height, 56px);
    z-index: 2;
    background: var(--color-bg-card);
}

/* ── Footer ───────────────────────────────────────────────── */
.site-footer {
    background-color: var(--color-bg-nav, #1a1a2e);
    color: rgba(255,255,255,0.6);
    font-size: var(--font-size-sm, 0.875rem);
    text-align: center;
    padding: 1.5rem 1rem;
    margin-top: 3rem;
}
.site-footer a { color: rgba(255,255,255,0.8); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer p { margin: 0.25rem 0; }
.site-footer-links {
    text-align: center;
    line-height: 1.8;
    margin: 0 auto 0.4rem;
}
.site-footer-sep { color: rgba(255,255,255,0.35); }
.site-footer-copy { color: rgba(255,255,255,0.5); font-size: var(--font-size-xs, 0.75rem); }
.site-footer-copy a { color: rgba(255,255,255,0.65); }

/* .linklike-btn: a <button> that should visually present as an inline link
   (footer "Press ? for shortcuts" / "Back to top" on all 3 sites). Keeps
   semantic HTML (button = action, link = navigation) while preserving the
   inline-text appearance the surrounding paragraph expects. Single-class
   selector (0,1,0) so a co-applied .link class still controls color +
   text-decoration for buttons authored as class="link linklike-btn".
   (Migrated here from PacklistPRO Content/styles.css 2026-06-07.) */
.linklike-btn {
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    cursor: pointer;
    text-align: inherit;
    display: inline;
    line-height: inherit;
}

/* ── Page layout ──────────────────────────────────────────── */
.page-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
}
@media (min-width: 768px)  { .page-wrapper { padding: 1.5rem; } }
@media (min-width: 1200px) { .page-wrapper { padding: 2rem 1.5rem; } }
.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
}
.page-header-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}
.page-header-title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ── Empty state ──────────────────────────────────────────── */
.empty-state {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--color-text-muted, #6c757d);
}
.empty-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin-bottom: 0.75rem;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: 50%;
    font-size: 1.75rem;
    border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
}
.empty-state-title {
    color: var(--color-text);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    margin: 0 0 0.4rem;
}
.empty-state-text { margin-top: 0.5rem; }
.empty-state-sub {
    color: var(--color-text-muted);
    margin: 0 0 1rem;
    max-width: 32rem;
    margin-left: auto;
    margin-right: auto;
}
.empty-state-actions {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}
.empty-state .button { margin-top: 0.75rem; }

/* ── Session expired modal ────────────────────────────────── */
#session-expired-modal .modal-box {
    text-align: center;
    padding-top: 2rem;
}
#session-expired-modal .modal-box::before {
    content: "\23F1";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.75rem;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: 50%;
    font-size: 1.5rem;
    border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
}
#session-expired-modal .modal-footer {
    justify-content: center;
}

/* ── Bootstrap dark-mode fix ─────────────────────────────── */
[data-theme="dark"] .modal-content {
    background-color: var(--color-bg-card);
    color: var(--color-text);
    border-color: var(--color-border);
}
[data-theme="dark"] .modal-header {
    border-bottom-color: var(--color-border);
}
[data-theme="dark"] .modal-footer {
    border-top-color: var(--color-border);
}
[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* ── Password wrapper ────────────────────────────────────── */
.password-wrapper              { position: relative; display: flex; align-items: center; }
.password-wrapper .textbox     { flex: 1; padding-right: 2.5rem; }
.password-toggle {
    position: absolute;
    right: 0.4rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-text-muted);
    font-size: 1.1rem;
    padding: 0.3rem 0.45rem;
    line-height: 1;
    min-height: 0;
    min-width: 0;
    border-radius: var(--border-radius-sm);
    transition: color var(--transition-fast), background-color var(--transition-fast);
}
.password-toggle:hover  { color: var(--color-text); background: var(--color-primary-light); }
.password-toggle:focus-visible { outline: none; box-shadow: var(--shadow-focus); color: var(--color-text); }

/* ── Caps-lock warning (shown by site.js initCapsLockWarning on password fields) ── */
.caps-lock-warning {
    display: block;
    margin-top: 0.25rem;
    font-size: var(--font-size-sm);
    color: var(--color-warning);
    font-weight: var(--font-weight-medium);
}
.caps-lock-warning[hidden] { display: none; }

/* ── Textarea sizing variants ────────────────────────────── */
.textbox-ml-xs   { min-height: 60px; }
.textbox-ml-sm   { min-height: 75px; }
.textbox-ml      { min-height: 100px; }
.textbox-ml-md   { min-height: 150px; }
.textbox-ml-lg   { min-height: 200px; }
.textbox-ml-xl   { min-height: 300px; }

/* ── Print ────────────────────────────────────────────────── */
@media print {
    .site-nav, .site-footer, .skip-link, .banner-offline, .banner-demo,
    .tips-trigger-wrap, .tips-panel, .tips-trigger,
    .tip-card, .tip-icon-button,
    .back-to-top, .pwa-install-btn, .shortcuts-overlay, .scroll-progress-bar,
    .site-toast, .toc-btn, .toc-overlay,
    .modal-overlay, .form-actions, .toolbar-actions,
    .page-header-actions { display: none !important; }
    body { background: #fff !important; color: #000 !important; }
    .card, .main-card { box-shadow: none !important; border: 1px solid #ccc !important; break-inside: avoid; }
    .page-wrapper { max-width: none; padding: 0; }
    a[href]:not([href^="#"])::after {
        content: " (" attr(href) ")";
        font-size: 0.85em;
        color: #555;
    }
    .progress-track { border: 1px solid #999; }
    .progress-fill  { background: #555 !important; }
    .exp-typebar-seg { filter: grayscale(0.25) !important; }
}

/* ── Print: page numbering ─────────────────────────────────────────
   Adds "Page X of Y" to the bottom-right of every printed page so a
   multi-page packlist / event detail / fitness report can be reassembled
   if pages get separated. counter(page) and counter(pages) are CSS
   built-ins kept by the print engine. Browsers that don't yet support
   @page margin boxes (older Safari, older Firefox) will silently ignore
   this; the rest of the print layout is unaffected. Users on those
   browsers can still enable the built-in "Headers and footers" option
   in the browser's print dialog as a fallback.

   @top-* boxes are intentionally left empty so the layout doesn't
   conflict with whatever the user has set as the browser's print header.
   Margins are also left untouched here — each site's @media print block
   handles per-page chrome (hiding nav, footer, etc.). */
@page {
    @bottom-right {
        content: "Page " counter(page) " of " counter(pages);
        font-size: 9pt;
        color: #666;
        font-family: var(--font-family, sans-serif);
    }
}

/* ── 25. Dirty-form save indicator ────────────────────────────── */
[data-dirty-watch].is-dirty .button.save:not(.saving):not(.saved) {
    position: relative;
    box-shadow: var(--shadow-btn), 0 0 0 2px color-mix(in srgb, var(--color-save-btn) 40%, transparent);
}
[data-dirty-watch].is-dirty .button.save:not(.saving):not(.saved)::before {
    content: "";
    position: absolute;
    top: 4px;
    right: 4px;
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--color-save-btn);
    animation: saveDotPulse 1.5s var(--ease-in-out) infinite;
}
@keyframes saveDotPulse {
    0%, 100% { transform: scale(1);   opacity: 0.95; }
    50%      { transform: scale(1.2); opacity: 0.7; }
}
@media (prefers-reduced-motion: reduce) {
    [data-dirty-watch].is-dirty .button.save::before { animation: none; }
}

/* ── Contact Us form layout helpers ──────────────────────────── */
.cu-site-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
}
.cu-site-group { margin-bottom: 0; }
.cu-site-select { width: auto; }
.cu-page-group {
    margin-bottom: 0;
    flex: 1;
    min-width: 160px;
}
/* form-group with extra top margin when stacked below another form-group */
.cu-group-spaced { margin-top: 0.5rem; }
/* Char counter under multiline text — left-aligned override */
.cu-char-counter { text-align: left; }
/* Attachments file picker row */
.cu-file-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.35rem;
}
.cu-file-picker-label {
    cursor: pointer;
    margin: 0;
}
/* Drop-zone wrapper around the file picker — gets the dashed border and overlay
   on dragover. Picker continues to work for click-to-upload too. */
.cu-file-drop {
    position: relative;
    border: 1px dashed transparent;
    border-radius: var(--border-radius-sm);
    padding: 0.35rem;
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}
.cu-file-drop-hint {
    color: var(--color-text-muted);
    font-style: italic;
}
@media (hover: none) and (pointer: coarse) {
    /* Hide the drag hint on touch devices — drag-and-drop isn't a natural mobile gesture. */
    .cu-file-drop-hint { display: none; }
}
.cu-file-drop.cu-file-dragover {
    border-color: var(--color-accent);
    background: var(--color-primary-light);
}
.cu-file-drop-overlay {
    position: absolute;
    inset: 0.35rem;
    display: none;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--color-primary-light) 90%, transparent);
    color: var(--color-primary-dark);
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    pointer-events: none;
    text-align: center;
}
.cu-file-drop.cu-file-dragover .cu-file-drop-overlay { display: flex; }
/* File-error alert — hidden when there are no messages to show.
   Uses :empty so the panel auto-hides whenever JS clears innerHTML to '' and
   reappears as soon as JS writes any text. :empty has higher specificity than
   the shared .alert-panel { display: flex } so we win the cascade without
   needing !important. The .has-error class is kept as a styling hook (e.g.
   for any future "shake" animation) but no longer drives display. */
.cu-file-error {
    margin-top: 0.5rem;
    font-size: var(--font-size-sm);
}
.cu-file-error:empty { display: none; }
/* Narrow auto-width selects (Urgency/Importance/Expecting a Reply) */
.cu-select-auto { width: auto; }

/* Submit row spacing */
.cu-submit-row {
    margin-top: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* File upload list (Contact Us attachments) */
.cu-file-list {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
}
.cu-file-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
}
.cu-file-item:last-child { border-bottom: none; }
.cu-file-name  { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cu-file-size  { color: var(--color-text-muted); flex-shrink: 0; }
.cu-file-remove { color: var(--color-danger); flex-shrink: 0; }

/* About-page hero — slightly tinted background + a soft "spotlight" radial gradient. */
.about-hero {
    background-image:
        radial-gradient(circle at top right,
            color-mix(in srgb, var(--color-accent) 8%, transparent) 0%,
            transparent 55%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}
[data-theme="dark"] .about-hero {
    background-image:
        radial-gradient(circle at top right,
            color-mix(in srgb, var(--color-accent) 18%, transparent) 0%,
            transparent 55%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}

/* ── 13. Navigation ──────────────────────────────────────────── */

.site-nav {
    position: sticky;
    top: 0;
    z-index: var(--nav-z);
    background-color: var(--color-bg-nav);
    /* Subtle gradient sheen instead of flat color — adds depth without distraction.
       Falls back to flat bg if linear-gradient unsupported (none modern). */
    background-image: linear-gradient(to bottom,
                       color-mix(in srgb, var(--color-bg-nav) 88%, #ffffff 12%) 0%,
                       var(--color-bg-nav) 100%);
    height: var(--nav-height);
    display: flex;
    align-items: center;
    box-shadow: var(--shadow-md);
    /* Hairline accent under the bar, separating nav from page content */
    border-bottom: 1px solid rgba(0, 0, 0, 0.25);
}
.site-nav .nav-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.nav-brand {
    font-size: 1.3rem;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    letter-spacing: 0.005em;
    transition: opacity var(--transition-fast);
}
.nav-brand:hover { color: #fff; text-decoration: none; opacity: 0.92; }
.nav-brand-accent { color: var(--color-accent); }
/* Hamburger toggle */
.nav-toggle {
    display: block;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    min-height: 44px;
    min-width: 44px;
}
@media (min-width: 992px) { .nav-toggle { display: none; } }

/* Nav menu */
.nav-menu {
    display: none;
    flex-direction: column;
    position: fixed;
    top: var(--nav-height);
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-bg-nav);
    overflow-y: auto;
    z-index: calc(var(--nav-z) - 1);
    padding: 0.5rem 0 2rem;
    /* Strip the default UL bullet — without this, <li class="nav-item"> rows
       (Home, My Trips, Quicklist, etc.) render with a disc, while role-gated
       <asp:Panel> items (Setup, Admin, My Account, Login — rendered as <div>)
       don't, so the menu looks inconsistent. The dot has no semantic purpose. */
    list-style: none;
    margin: 0;
}
.nav-menu.open { display: flex; }

@media (min-width: 992px) {
    .nav-menu {
        display: flex;
        flex-direction: row;
        position: static;
        background: none;
        overflow: visible;
        padding: 0;
        align-items: center;
        gap: 0.25rem;
    }
}

/* Nav items */
.nav-item { position: relative; }

.nav-link {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 1.25rem;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast), background-color var(--transition-fast);
    white-space: nowrap;
    position: relative;
}
.nav-link:visited { color: rgba(255,255,255,0.85); }
.nav-link:hover {
    color: #fff;
    background-color: var(--color-accent);
    border-radius: var(--border-radius-sm);
    text-decoration: none;
}
.nav-link.active {
    color: #fff;
    background-color: var(--color-accent);
    border-radius: var(--border-radius-sm);
    text-decoration: none;
    font-weight: var(--font-weight-bold);
}

/* Logout link — red text so the destructive sign-out action is unmistakable.
   The ancestor selector (.nav-menu) raises specificity above .nav-dropdown
   .nav-link's mobile override so the red color sticks on every viewport. */
.nav-menu .nav-link.nav-link-logout,
.nav-menu .nav-link.nav-link-logout:visited {
    color: #ef5350;
}
.nav-menu .nav-link.nav-link-logout:hover {
    color: #ff8a80;
    background-color: rgba(239, 83, 80, 0.12);
}
/* Underline accent on hover for root-level desktop links — appears beneath the link
   bar without shifting layout. Hidden by default; expands from center on hover/active. */
@media (min-width: 992px) {
    .nav-menu > .nav-item > .nav-link::after {
        content: "";
        position: absolute;
        bottom: 4px;
        left: 50%;
        width: 0;
        height: 2px;
        background: var(--color-accent);
        transition: width var(--transition-fast), left var(--transition-fast);
        border-radius: 1px;
    }
    .nav-menu > .nav-item > .nav-link.active::after,
    .nav-menu > .nav-item:hover > .nav-link::after {
        width: calc(100% - 2.5rem);
        left: 1.25rem;
    }
    /* Don't double-decorate when the active state already applies a full background. */
    .nav-menu > .nav-item > .nav-link.active::after { display: none; }
}

/* Root-level nav links: slightly larger than dropdown links */
.nav-menu > .nav-item > .nav-link {
    font-size: var(--font-size-base); /* 1rem vs --font-size-sm (0.875rem) for dropdowns */
}

/* Dropdown arrow */
.nav-link-has-dropdown::after {
    content: "▾";
    font-size: 0.75rem;
    margin-left: 0.25rem;
}

/* Dropdown menu */
.nav-dropdown {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
}
/* Dropdown links slightly larger than the old sm default */
.nav-dropdown .nav-link { font-size: 1.0625rem; }

/* "(soon)" suffix on nav links that go to "Coming Soon" stub pages. Smaller
   and dimmer than the main label so users understand the link works but the
   feature isn't built yet. Subtle dotted underline reinforces "in progress". */
.nav-soon {
    font-size: 0.7em;
    color: rgba(255,255,255,0.5);
    font-style: italic;
    margin-left: 0.3rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.07);
    letter-spacing: 0.02em;
}
/* Same treatment when the (soon) label appears on light content surfaces
   (Admin page bullets reference stub pages with `<span class="nav-soon">`). */
.card .nav-soon {
    color: var(--color-text-muted);
    background: var(--color-bg);
    border: 1px dashed var(--color-border);
}
/* "New since last visit" badge — small accent-colored dot next to a nav link
   (currently used on Changes / New Features). The dot pulses gently to draw
   the eye without being obnoxious. Visit the destination page → server-side
   clears the cookie → badge disappears on next render. */
.nav-badge-new {
    display: inline-block;
    margin-left: 0.3rem;
    font-size: 0.7em;
    color: var(--color-accent);
    line-height: 1;
    vertical-align: middle;
    animation: navBadgePulse 2s var(--ease-in-out) infinite;
}
@keyframes navBadgePulse {
    0%, 100% { opacity: 1;   transform: scale(1); }
    50%      { opacity: 0.55; transform: scale(0.85); }
}
@media (prefers-reduced-motion: reduce) {
    .nav-badge-new { animation: none; }
}

@media (max-width: 991px) {
    .nav-dropdown { padding-left: 1rem; background-color: var(--color-bg-nav-dropdown); }
    .nav-dropdown.open { display: block; }
    .nav-dropdown .nav-link {
        padding: 0.5rem 1.25rem;
        color: rgba(255,255,255,0.7);
    }
    .nav-dropdown .nav-link.active {
        background-color: var(--color-accent);
        color: #fff;
        font-weight: var(--font-weight-bold);
    }
}
@media (min-width: 992px) {
    .nav-item:hover .nav-dropdown,
    .nav-item:focus-within .nav-dropdown {
        display: block;
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 220px;
        background-color: var(--color-bg-nav-dropdown);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border: 1px solid rgba(255,255,255,0.10);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow-lg);
        z-index: 999;
        padding: 0.35rem 0;
        margin-top: 0.25rem;
        /* Subtle slide-down + fade for dropdown reveal */
        animation: navDropFade 0.18s var(--ease-out-quint);
        transform-origin: top center;
    }
    /* Invisible bridge so the cursor stays in hover when crossing from
       the trigger to the dropdown — the dropdown has margin-top: 0.25rem
       which creates a dead zone where neither the nav-item nor the
       dropdown is hovered, so it vanishes mid-traversal. */
    .nav-item:hover .nav-dropdown::before,
    .nav-item:focus-within .nav-dropdown::before {
        content: "";
        position: absolute;
        top: -10px;
        left: 0;
        right: 0;
        height: 10px;
        background: transparent;
    }

    /* Right-aligned dropdown for trailing nav items (e.g. the My Account
       menu on the far right of the navbar). Without this, left:0 anchors
       the panel to the trigger's left edge and the panel overflows the
       viewport on the right. Opt in by adding .nav-item-end on the parent
       .nav-item. */
    .nav-item.nav-item-end:hover .nav-dropdown,
    .nav-item.nav-item-end:focus-within .nav-dropdown {
        left: auto;
        right: 0;
    }
    .nav-dropdown .nav-link {
        padding: 0.5rem 1rem;
        border-radius: 0;
    }
    .nav-dropdown .nav-link:hover {
        background-color: var(--color-accent);
        color: #fff;
    }
    .nav-dropdown .nav-link.active {
        background-color: var(--color-accent);
        color: #fff;
        font-weight: var(--font-weight-bold);
    }
}
@keyframes navDropFade {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Section label + divider inside long dropdowns. */
.nav-section-label {
    list-style: none;
    padding: 0.5rem 1rem 0.25rem;
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #808080;
    font-weight: var(--font-weight-bold);
    pointer-events: none;
}
.nav-divider {
    list-style: none;
    margin: 0.25rem 0;
    border-top: 1px solid rgba(255,255,255,0.12);
    height: 0;
}
@media (max-width: 991px) {
    .nav-section-label {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

/* Nav right section (auth links) */
.nav-right {
    display: flex;
    flex-direction: column;
}
@media (min-width: 992px) {
    .nav-right {
        flex-direction: row;
        align-items: center;
        gap: 0.25rem;
        margin-left: auto;
    }
}

.footer-kbd {
    display: inline-block;
    min-width: 1.4em;
    padding: 0 0.35em;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.85em;
    line-height: 1.4;
    color: rgba(255,255,255,0.9);
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.2);
    border-bottom-width: 2px;
    border-radius: 3px;
    text-align: center;
}
/* Hide the inline shortcut hint on touch devices — there's no keyboard. */
@media (hover: none) and (pointer: coarse) {
    #site-footer-shortcuts,
    #site-footer-shortcuts + .site-footer-sep { display: none; }
}

/* ── 22. Checklist items (Packlist / Tasklist) ───────────────── */

.checklist-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--color-border);
}
.checklist-item:last-child { border-bottom: none; }
.checklist-item.checked > .item-label { text-decoration: line-through; color: var(--color-text-muted); }

.item-label {
    flex: 1;
    font-size: var(--font-size-base);
    cursor: pointer;
}

/* Options panel Save & Close row — sits below the Email / Print row so the
   close affordance is unambiguous. Top border separates it visually from the
   secondary actions above; centered so it reads as a primary "I'm done" action. */
.options-close-row {
    border-top: 1px solid var(--color-border);
    padding-top: 0.75rem;
    margin-top: 0.5rem;
}

/* ── Post-login Install + Push modal (site.js initPostLoginPrompts) ───────
   Shown on the first authenticated page load after a successful login.
   Two stacked cards (Install PWA, Enable push) inside one modal — each
   independently hideable; modal auto-closes when both are dismissed. The
   markup lives in each site's Site.Master (server-rendered, gated on the
   one-shot post-login cookie). Styling is shared across all 3 sister
   sites; per-site copy/strings live in the markup, not here. */
.post-login-box {
    max-width: 540px;
    width: 100%;
    position: relative;
}
.post-login-intro {
    margin: 0 0 1rem;
}
.post-login-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 2rem;
    height: 2rem;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--color-text-muted);
    padding: 0;
}
.post-login-close:hover { color: var(--color-text); }
.post-login-close:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
    border-radius: var(--border-radius-sm);
}
.post-login-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    background: var(--color-info-bg, rgba(0, 176, 240, 0.06));
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    margin-bottom: 0.75rem;
}
.post-login-card:last-of-type { margin-bottom: 0; }
.post-login-card[hidden] { display: none; }
.post-login-card-icon {
    flex: 0 0 auto;
    font-size: 1.75rem;
    line-height: 1;
}
.post-login-card-body { flex: 1 1 auto; min-width: 0; }
.post-login-card-title {
    margin: 0 0 0.25rem;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
}
.post-login-card-desc {
    margin: 0 0 0.5rem;
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    line-height: 1.45;
}
.post-login-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
.post-login-never {
    background: transparent;
    border: 0;
    padding: 0.25rem 0.5rem;
    color: var(--color-text-light);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    cursor: pointer;
    text-decoration: underline;
}
.post-login-never:hover { color: var(--color-text); }
.post-login-never:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
    border-radius: var(--border-radius-sm);
}
.post-login-instructions {
    margin: 0.5rem 0 0;
    padding: 0.5rem 0.75rem;
    background-color: var(--color-bg-card);
    border: 1px dashed var(--color-border);
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text);
}
.post-login-instructions[hidden] { display: none; }
.post-login-instructions-list {
    margin: 0;
    padding-left: 1.1rem;
    line-height: 1.55;
}
.post-login-instructions-list li { margin: 0.15rem 0; }
.post-login-footer-note {
    margin: 0.75rem 0 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
    text-align: center;
}
@media (max-width: 560px) {
    .post-login-card { flex-wrap: wrap; gap: 0.6rem; }
    .post-login-card-icon { font-size: 1.4rem; }
}
/* ── Changes (changelog) page ─────────────────────────────────────────── */
.changes-pager-row     { margin-bottom: 0.75rem; }
.changes-app-divider   { margin: 1.5rem 0; }
.changes-app-heading {
    margin: 0 0 0.25rem;
    font-size: var(--font-size-xl);
}
.changes-type-heading  { margin: 1rem 0 0.5rem; }

/* Hamburger ⇄ close-X icon swap (cross-site). Two glyph spans share the nav
   toggle button; CSS picks the visible one from the button's aria-expanded
   state so the icon always matches what tapping will do next — no JS DOM write
   per toggle. (site.js only flips aria-expanded.) */
.nav-toggle .nav-toggle-icon { display: inline-block; line-height: 1; }
.nav-toggle[aria-expanded="false"] .nav-toggle-icon-close,
.nav-toggle[aria-expanded="true"]  .nav-toggle-icon-open { display: none; }

/* Client-side filter row above the changelog rows (WhatsNew / Changes). */
.changes-filter-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem 0;
}
.changes-filter-row #changesFilter {
    flex: 1 1 18rem;
    min-width: 0;
}

/* ── ContactUs Viewer / Duplicate Record Finder shared row spacing ───── */
.cuv-summary-line   { margin-bottom: 0.5rem; }
.drf-note-spacing   { margin-top: 0.75rem; }

/* ── MessageSent thank-you detail paragraph ─────────────────────────── */
.ms-detail-text {
    color: var(--color-text-muted);
    margin: 0;
}

/* MessageSent confirmation hero — celebratory success-check badge + a readable
   centered measure for the follow-up paragraph. Pairs with .ms-detail-text
   (above) and .ms-message-banner / .ms-action-row so every site's MessageSent
   confirmation looks identical. Additive and page-agnostic — safe for any site. */
.ms-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
    font-size: 2.1rem;
    line-height: 1;
    box-shadow: var(--shadow-sm);
    animation: msCheckPop 0.28s var(--ease-out-back, ease-out) both;
}
/* Keep the centered follow-up paragraph to a comfortable reading measure. */
.ms-hero .ms-detail-text {
    max-width: 48ch;
    margin-left: auto;
    margin-right: auto;
}
@keyframes msCheckPop {
    from { opacity: 0; transform: scale(0.6); }
    to   { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .ms-check { animation: none; }
}

/* ── Subscribe1 (push notification preferences) ───────────────────────────
   Replaces ~30 inline style attributes that previously lived in markup. */
.subscribe-page {
    max-width: 480px;
    margin: 2.5rem auto;
    padding: 0 1rem;
    text-align: center;
    font-family: var(--font-family);
}
/* The page-level text-align:center above is for the subscribe states
   (icon + headline + button stack). Tips cards inside live by the same
   left-aligned convention used everywhere else, so opt them back out. */
.subscribe-page .tip-card,
.subscribe-page .tip-card-text,
.subscribe-page .tip-card-heading { text-align: left; }
.subscribe-intro   { color: var(--color-text-muted); margin-bottom: 1.75rem; }

.subscribe-state-loading { color: var(--color-text-light); }

.subscribe-state-icon {
    font-size: 2.25rem;
    font-weight: var(--font-weight-bold);
}
.subscribe-state-icon-ok  { color: var(--color-success); }
.subscribe-state-icon-bad { color: var(--color-danger); }

.subscribe-state-headline {
    font-weight: var(--font-weight-bold);
    margin: 0.75rem 0 0.375rem;
}
.subscribe-state-headline-ok  { color: var(--color-success); }
.subscribe-state-headline-bad { color: var(--color-danger); }

.subscribe-state-sub {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}
.subscribe-state-sub-spaced { margin-bottom: 1rem; }

.subscribe-state-prompt    { color: var(--color-text); margin: 0.75rem 0 1.25rem; }
.subscribe-prompt-btn      { min-width: 180px; }
.subscribe-prompt-msg      { margin-top: 0.875rem; color: var(--color-text-muted); font-size: var(--font-size-sm); }

.subscribe-details-card {
    margin: 1.25rem 0 1.125rem;
    text-align: left;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: 0.875rem 1rem;
    font-size: var(--font-size-sm);
}
.subscribe-details-title {
    display: block;
    margin-bottom: 0.625rem;
    color: var(--color-text);
}
.subscribe-details-table {
    border-collapse: collapse;
    width: 100%;
}
.subscribe-details-label {
    color: var(--color-text-muted);
    padding: 0.25rem 0;
    width: 7.5rem;
    vertical-align: top;
}
.subscribe-details-value {
    color: var(--color-text);
    padding: 0.25rem 0;
}
.subscribe-details-value-id {
    color: var(--color-text-light);
    word-break: break-all;
    font-size: var(--font-size-xs);
}
.subscribe-details-value-ok  { color: var(--color-success); }
.subscribe-details-value-bad { color: var(--color-danger); }

.subscribe-action-btn   { min-width: 200px; }
.subscribe-result-line  {
    display: block;
    margin-top: 0.75rem;
    font-size: var(--font-size-sm);
    min-height: 1.125rem;
}

.subscribe-help-list {
    text-align: left;
    color: var(--color-text);
    font-size: var(--font-size-sm);
    margin: 0 auto 1.25rem;
    max-width: 360px;
    line-height: 1.8;
}

.progress-track {
    height: 10px;
    background: color-mix(in srgb, var(--color-border) 70%, transparent);
    border-radius: 999px;
    margin-top: 0.375rem;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
}
/* Progress fill starts at 0% and is animated to data-width by JS on load.
   Default width here means we can drop the inline style="width:0%" attribute
   from the markup — last remaining inline style on user-facing pages. */
.progress-fill {
    width: 0%;
    height: 100%;
    border-radius: 999px;
    background-color: var(--color-save-btn);
    /* Subtle diagonal stripe pattern that gently animates — communicates "still active"
       even when the percentage isn't changing. */
    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: 16px 16px;
    transition: width 0.5s var(--ease-out-quint), background-color 0.3s;
    animation: progressStripes 1.4s linear infinite;
}
@keyframes progressStripes {
    from { background-position: 0 0; }
    to   { background-position: 16px 0; }
}
/* When the progress bar reaches 100%, dial up the saturation slightly and stop
   the stripes — communicates "done!" without needing a separate badge. The
   data-width attribute is the source of truth; site.js applies the
   .progress-complete class after animating to width if the value is 100%. */
.progress-fill.progress-complete {
    animation: none;
    background-image: linear-gradient(
        90deg,
        var(--color-save-btn),
        color-mix(in srgb, var(--color-save-btn) 80%, #fff)
    );
    background-size: auto;
    box-shadow: 0 0 6px color-mix(in srgb, var(--color-save-btn) 50%, transparent);
}
@media (prefers-reduced-motion: reduce) {
    .progress-fill { animation: none; background-image: none; }
}

/* ── 30. Notes page ──────────────────────────────────────────── */

.notes-layout {
    display: flex;
    flex-direction: column;
    gap: var(--section-gap);
}
@media (min-width: 768px) {
    .notes-layout     { flex-direction: row; align-items: flex-start; }
    .notes-list-col   { flex: 0 0 38%; min-width: 0; }
    .notes-edit-col   { flex: 1; min-width: 0; }
}

.note-item {
    padding: .625rem .75rem;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    transition: background-color var(--transition-fast), padding-left var(--transition-fast);
    border-radius: var(--border-radius-sm);
    position: relative;
}
.note-item:last-child  { border-bottom: none; }
.note-item:hover       { background-color: var(--color-primary-light); padding-left: .9rem; }
.note-item:focus       { outline: 2px solid var(--color-border-focus); outline-offset: -2px; }
.note-item.selected {
    background-color: var(--color-primary-light);
    border-left: 3px solid var(--color-primary);
    padding-left: calc(.75rem - 3px);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 25%, transparent);
}
.note-item-title {
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
}
.note-item-meta {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-top: .2rem;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    align-items: center;
}

.note-badge {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    padding: .15rem .55rem;
    border-radius: 999px;
    line-height: 1.5;
    white-space: nowrap;
    letter-spacing: 0.01em;
}
.note-badge-private {
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
}
.note-badge-shared {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
}

/* Notes list header row: title + action buttons on one line */
.notes-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.notes-list-title { margin: 0; }
.notes-list-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
/* Filter row above the notes list — JS-revealed only when there are 5+ notes
   so a short list doesn't waste vertical space on a redundant filter. */
.notes-search-row {
    margin: 0.5rem 0 0.65rem;
}
.notes-search-input { width: 100%; }
.notes-search-results {
    margin: 0.35rem 0 0;
    min-height: 1.2em;
}

/* Note Title row: input + "Proper-Case" link side-by-side */
.notes-title-row {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}
.notes-title-input {
    flex: 1;
    min-width: 0;
}

/* Date input is narrow — don't stretch full-width */
.notes-date-input { max-width: 200px; }

/* "Shared (view/edit)" label sits beside the checkbox without inheriting label margin */
.notes-shared-label {
    margin: 0;
    cursor: pointer;
}

.note-date-badge {
    display: inline-block;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    background-color: var(--color-warning-bg);
    color: var(--color-warning);
    border: 1px solid var(--color-warning-border);
    border-radius: var(--border-radius-sm);
    padding: .1rem .4rem;
    white-space: nowrap;
}

/* ── 31. Login page & Logo ───────────────────────────────── */

.login-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 1rem 3rem;
}
.login-container {
    width: 100%;
    max-width: 420px;
    /* A bit more elevation than a standard card so the login form feels like the page focus */
    box-shadow: var(--shadow-lg) !important;
    padding: 1.75rem !important;
    border-radius: var(--border-radius-lg) !important;
}

/* Tips area sits ABOVE the login card; matches its width so the right-aligned
   ⓘ trigger lines up with the card's right edge. */
.login-tips-area {
    width: 100%;
    max-width: 420px;
}
.login-tips-trigger-row {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.25rem;
}
.login-tips-trigger-row .tips-trigger {
    font-size: 1.25rem;
}

/* CSS text logo (Logo.ascx) */
.site-logo        { text-align: center; margin-bottom: 1.5rem; }
.logo-link        {
    font-size: 1.75rem;
    font-weight: var(--font-weight-bold);
    text-decoration: none;
    color: var(--color-text);
    letter-spacing: 0.02em;
}
.logo-link:hover                { color: var(--color-text); text-decoration: none; }
.logo-accent                    { color: var(--color-primary); font-weight: 700; }
.logo-link:hover .logo-accent   { color: var(--color-primary-dark); }

/* ── 32. Home page ───────────────────────────────────────────── */

/* Flex-wrap grid for the shortcut action buttons */
.home-actions {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.55rem;
    margin-top: 0.85rem;
}

.home-actions .button,
.home-actions a.button,
.home-actions span.button {
    width: 100%;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    /* Slightly taller than default — gives the home tiles a more tap-friendly target
       and matches the feel of an app launcher. */
    min-height: 3rem;
    font-weight: var(--font-weight-medium);
    /* Override the global .button { white-space: nowrap } so longer labels like
       "✓ Getting Started Checklist" wrap to 2 lines instead of overflowing the 140px
       (or 110px on mobile) grid cell. line-height bumps so wrapped text doesn't
       collide; word-break/overflow-wrap protect against unhyphenable long words. */
    white-space: normal;
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* .home-btn-walkthrough: no special sizing — same grid cell as every other button. */

/* Spacing above the shortcut button grid */
.home-trip-context {
    margin-bottom: 0.75rem;
}

/* Disabled shortcut buttons — no trip selected */
.action-btn-disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
    user-select: none;
}

/* Recent-trips compact list on Home (authenticated only). Each row is a single
   tappable link with name + countdown badge + dates on one line, wrapping on
   narrow viewports. */
.home-recent-trips {
    list-style: none;
    margin: 0;
    padding: 0;
}
.home-recent-trip + .home-recent-trip {
    border-top: 1px solid var(--color-border);
}
.home-recent-trip-link {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.25rem;
    color: var(--color-text);
    text-decoration: none;
    transition: background-color var(--transition-fast), padding-left var(--transition-fast);
    border-radius: var(--border-radius-sm);
    min-height: 44px;
}
.home-recent-trip-link:hover,
.home-recent-trip-link:focus-visible {
    background: var(--color-primary-light);
    color: var(--color-text);
    text-decoration: none;
    padding-left: 0.6rem;
}
.home-recent-trip-link:focus-visible {
    outline: 2px solid var(--color-border-focus);
    outline-offset: 1px;
}
.home-recent-trip-name {
    font-weight: var(--font-weight-medium);
    flex: 1 1 auto;
    min-width: 0;
}
.home-recent-trip-dates {
    flex: 0 0 auto;
}

/* ── 33. Quicklist page ──────────────────────────────────── */

.ql-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}
.ql-filter-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}
.ql-filter-divider {
    display: inline-block;
    width: 1px;
    height: 1.25rem;
    background: var(--color-border);
    margin: 0 0.25rem;
    align-self: center;
}
.ql-check-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
    font-size: var(--font-size-sm);
}

/* Detail-level dropdown sits in the filter row without bottom margin */
.ql-detail-group  { margin-bottom: 0; }
.ql-detail-select { width: auto; }

/* "Show Quicklist" button row spacing; flex so the selected-tag count sits beside the button */
.ql-show-row      { margin-top: 0.75rem; display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }

/* Trip Tags heading above the tag accordion */
.ql-tag-heading   { margin-bottom: 0.5rem; }

/* Two-column layout */
.ql-layout        { display: flex; gap: 1.5rem; align-items: flex-start; margin-top: 0; }
/* Fixed-width sidebar (NOT max-content — that let the column grow to fit all tag
   pills on one line, so .tag-group-body never wrapped on desktop and ran off the
   screen). A constrained basis forces the pills to wrap within the column. */
.ql-filter-col    { flex: 0 0 340px; min-width: 0; }
.ql-results-col   { flex: 1; min-width: 0; }
/* Before any results are shown, the tag card spans the full page width (and the
   empty results column is hidden); it shrinks to the sidebar once items/tasks render. */
.ql-layout-full .ql-filter-col  { flex: 1 1 auto; }
.ql-layout-full .ql-results-col { display: none; }
@media (max-width: 768px) {
    .ql-layout     { flex-direction: column; }
    .ql-filter-col { width: 100%; flex: none; }
}

/* Results */
.ql-section-header      { font-size: var(--font-size-lg); font-weight: var(--font-weight-bold);
                           padding: 0.75rem 0 0.4rem; margin: 0.5rem 0 0.25rem;
                           border-bottom: 3px solid var(--color-accent); color: var(--color-accent); }
.ql-section-header:first-child { margin-top: 0; }
.ql-tag-header          { font-weight: var(--font-weight-bold); padding: 0.6rem 0 0.3rem;
                           border-bottom: 2px solid var(--color-border); margin-bottom: 0.25rem; }
.ql-item-list           { margin-bottom: 1rem; }
.ql-item                { padding: 0.35rem 0 0.35rem 0.5rem; border-bottom: 1px solid var(--color-border); }
.ql-item:last-child     { border-bottom: none; }
/* Item/task name at normal reading size; Uses/Notes drop to the small size below. */
.ql-item-row            { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; font-size: var(--font-size-base); }
.ql-field-label         { font-weight: var(--font-weight-medium); }
.ql-item-uses,
.ql-item-notes          { font-size: var(--font-size-sm); color: var(--color-text-muted); margin-top: 0.1rem; }

/* ── 35. Contact Us Viewer ───────────────────────────────────── */

/* Results table */
.cuv-table tbody tr.cuv-row { cursor: pointer; }
.cuv-table tbody tr.cuv-row:hover td { background: var(--color-primary-light); }
.cuv-table tbody tr.cuv-row.cuv-selected td { background: var(--color-primary-light); font-weight: var(--font-weight-medium); }
.cuv-table tbody tr.cuv-unviewed td:first-child { font-weight: var(--font-weight-bold); }

/* Status badges */
.cuv-badge { display:inline-block; padding:0.18rem 0.55rem; border-radius:999px;
             font-size:0.7rem; font-weight:700; white-space:nowrap;
             text-transform:uppercase; letter-spacing:0.04em; line-height:1.5; }
.cuv-badge-new        { background:#f5f5f5; color:#616161; border:1px solid #e0e0e0; }
.cuv-badge-queued     { background:var(--color-info-bg); color:var(--color-info); }
.cuv-badge-future     { background:#f3e5f5; color:#7b1fa2; }
.cuv-badge-resolved   { background:var(--color-success-bg); color:var(--color-success); }
.cuv-badge-partial    { background:var(--color-warning-bg); color:var(--color-warning); }
.cuv-badge-unresolved { background:#fafafa; color:#9e9e9e; border:1px solid #e0e0e0; }
.cuv-badge-rejected   { background:var(--color-danger-bg); color:var(--color-danger); }

/* Dark-mode overrides for badges that aren't keyed to a CSS variable.
   The neutral (new/unresolved) and purple (future) swatches don't have
   palette tokens, so they get explicit dark equivalents here. */
[data-theme="dark"] .cuv-badge-new        { background:#2a2a2a; color:#bdbdbd; border-color:#444; }
[data-theme="dark"] .cuv-badge-future     { background:#2d1f3a; color:#ce93d8; }
[data-theme="dark"] .cuv-badge-unresolved { background:#1e1e1e; color:#9e9e9e; border-color:#444; }

/* Importance/urgency number chips */
.cuv-num { font-weight:var(--font-weight-medium); }
.cuv-imp-1, .cuv-urg-1 { color:var(--color-text-muted); }
.cuv-imp-2, .cuv-urg-2 { color:var(--color-text); }
.cuv-imp-3, .cuv-urg-3 { color:var(--color-warning); font-weight:var(--font-weight-bold); }
.cuv-imp-4, .cuv-urg-4 { color:var(--color-danger);  font-weight:var(--font-weight-bold); }

/* ContactUsViewer edit/files card layout */
.cuv-page-edit { /* see toolbar-search-grow; this is the marker for the "Page" field */ }
.cuv-group-top { margin-top: 0.75rem; }
.cuv-group-spaced { margin-top: 0.5rem; }
/* The edit-feedback message slot stays hidden until JS adds .is-visible */
.cuv-edit-msg {
    display: none;
    margin-top: 0.5rem;
}
.cuv-edit-msg.is-visible { display: flex; }

/* Edit card read-only info bar */
.cuv-readonly-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--color-bg);
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-sm);
    margin-bottom: 0.25rem;
}
.cuv-info-item { white-space: nowrap; }

/* Attachments grid */
.cuv-files-grid { display:flex; flex-wrap:wrap; gap:1rem; }
.cuv-file-card  { width:140px; display:flex; flex-direction:column; gap:0.25rem;
                  padding:0.5rem; border:1px solid var(--color-border);
                  border-radius:var(--border-radius-sm); }
.cuv-file-thumb { width:100%; height:100px; object-fit:cover;
                  border-radius:var(--border-radius-sm); display:block; }
.cuv-file-icon  { font-size:2.5rem; text-align:center; line-height:100px; }

/* ── 36. Log Viewer ──────────────────────────────────────────── */

/* Row severity tints. critical / security have no dedicated palette token so they
   carry explicit dark-mode overrides below. */
.log-row-error    { background-color: var(--color-danger-bg); }
.log-row-critical { background-color: #fce4e4; }
.log-row-warn     { background-color: var(--color-warning-bg); }
.log-row-security { background-color: #fff3e0; }
.log-row-audit    { background-color: var(--color-info-bg); }

[data-theme="dark"] .log-row-critical { background-color: #3b1212; }
[data-theme="dark"] .log-row-security { background-color: #3b2400; }

/* Hover darkens the tint slightly */
.log-row { cursor: pointer; }
.log-row:hover td { filter: brightness(0.96); }

/* AI response header: heading + cache status badge on one line */
.ai-response-header {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}
.ai-response-header .heading { margin: 0; }
.ai-response-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

/* AI metadata two-column grid */
.ai-meta-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.4rem 1.25rem;
    font-size: var(--font-size-sm);
    align-items: baseline;
}
.ai-meta-label {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    white-space: nowrap;
}
.ai-meta-sep {
    grid-column: span 2;
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 0.25rem 0;
}
.ai-meta-code {
    font-family: monospace;
    font-size: var(--font-size-xs);
    word-break: break-all;
    background: var(--color-bg-card);
    padding: 0.1rem 0.3rem;
    border-radius: var(--border-radius-sm);
}
.ai-meta-prompt {
    white-space: pre-wrap;
    word-break: break-word;
}

/* Level badge pill — uppercase, tracking, tabular numerics for legibility in dense tables */
.log-badge {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.5;
}
/* INFO badge uses the success palette by design — INFO is a "good" signal here.
   critical / security stay hardcoded because their high-contrast appearance is
   intentional and works in both light and dark modes (strong red / strong orange). */
.log-badge-info     { background: var(--color-success-bg); color: var(--color-success); }
.log-badge-warn     { background: var(--color-warning-bg); color: var(--color-warning); }
.log-badge-error    { background: var(--color-danger-bg);  color: var(--color-danger); }
.log-badge-critical { background: #f44336; color: #fff; }
.log-badge-security { background: #e65100; color: #fff; }
.log-badge-audit    { background: var(--color-info-bg);    color: var(--color-info); }

/* Message cell truncates on long lines */
.log-msg {
    max-width: 40vw;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Detail row — hidden by default, toggled by JS */
.log-detail-row { background-color: var(--color-bg); }
.log-detail-row td { padding: 1rem 1.25rem; }
.log-detail-row--hidden { display: none; }

/* Key/value fields inside the detail row */
.log-detail-grid {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: var(--font-size-sm);
}
.log-detail-item {
    line-height: 1.4;
}
.log-detail-stack {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.25rem;
}
.log-detail-label {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    white-space: nowrap;
    margin-right: 0.25rem;
}
.log-detail-grid pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-all;
    font-family: monospace;
    font-size: var(--font-size-xs);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    padding: 0.5rem 0.625rem;
    max-height: 12rem;
    overflow-y: auto;
}

/* LogViewer purge-days select sits inline next to the Delete button */
.lv-purge-select {
    width: auto;
    display: inline-block;
}

/* Pager controls (used by LogViewer + ContactUsViewer — both display
   screen-width tables with no other content beside the pager row). */
.log-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    font-size: var(--font-size-sm);
}

.log-table { min-width: 640px; }

.login-links {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 0.3rem;
    font-size: var(--font-size-sm);
}

/* IP address display under password — small muted note */
.login-ip-display {
    font-size: 0.7rem;
    text-align: center;
    margin: 0.25rem 0 0;
    color: var(--color-text-light);
}

/* ── Sign in with Google row (Login.aspx) ──────────────────────────
   The Login button sits full-width on its own line; the GIS button sits
   on the next line, centered. Google's button renders inside a sandboxed
   iframe at its own intrinsic width (we can't restyle its surface), so we
   just centre the iframe under the full-width Login button. Shared by all
   4 sites. */
.login-google-row {
    display: flex;
    justify-content: center;
}

/* ── Sign in with Google "shell" (Login.aspx) ──────────────────────
   We can't make the sandboxed GIS iframe stretch full-width or take the
   Login button's 6px corners. Instead we wrap it in a shell that DOES
   take those — a full-width, white, rounded, bordered box matching the
   Login button's height — and centre the Google widget inside it. The
   shell border uses Google's own outline grey (#dadce0) so the widget's
   inner border blends, and the whole thing reads as one full-width
   "Sign in with Google" button aligned with the Login button above. */
.login-google-shell {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;                 /* match .button touch-target height */
    padding: 0.25rem 0.5rem;
    background-color: #ffffff;
    border: 1px solid #dadce0;        /* Google GIS outline grey */
    border-radius: var(--btn-radius, 6px);
    box-shadow: var(--shadow-btn, 0 1px 2px rgba(0,0,0,0.15));
    box-sizing: border-box;
}
/* The GIS widget keeps a faint white inner surface; against the white
   shell it disappears, leaving the shell as the visible button frame. */
.login-google-shell > div { max-width: 100%; }
/* In dark mode keep the shell white so the Google widget (which always
   renders on white) sits on a matching surface rather than a dark seam. */
[data-theme="dark"] .login-google-shell {
    background-color: #ffffff;
    border-color: #dadce0;
}

/* ── 34. Trips page ──────────────────────────────────────────── */

/* Trip selection list */
.trip-list {
    list-style: none;
    margin: 0 0 0.5rem 0;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    overflow: hidden;
}
/* Belt-and-suspenders: suppress UA list styling on li directly */
.trip-list li {
    list-style: none;
    padding-left: 0;
}

.trip-list-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 1rem;
    cursor: pointer;
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition-fast), padding-left var(--transition-fast);
    user-select: none;
    min-height: 52px;
    -webkit-tap-highlight-color: transparent;
    position: relative;
}
.trip-list-item:last-child { border-bottom: none; }
.trip-list-item:hover       { background-color: var(--color-primary-light); padding-left: 1.15rem; }
.trip-list-item:active      { background-color: var(--color-primary-light); }
.trip-list-item:focus       { outline: 2px solid var(--color-border-focus); outline-offset: -2px; }

/* Text content stacks vertically inside the flex row */
.trip-item-text {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    flex: 1;
    min-width: 0;
}

/* CSS-drawn chevron — doesn't look like a list bullet on any mobile font */
.trip-list-item::after {
    content: '';
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--color-text-light);
    border-top: 2px solid var(--color-text-light);
    transform: rotate(45deg);
    flex-shrink: 0;
    transition: border-color var(--transition-fast);
}
.trip-list-item:hover::after { border-color: var(--color-primary); }

/* Selected trip highlight */
.trip-list-item.trip-selected {
    background-color: var(--color-primary-light);
    border-left: 3px solid var(--color-primary);
    padding-left: calc(1rem - 3px);
}
.trip-list-item.trip-selected::after {
    border-color: var(--color-primary);
}

.trip-item-name {
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    font-size: var(--font-size-base);
}
.trip-item-dates {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}
.trip-item-counts {
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
}

/* Tag group accordion */
.tag-group {
    border-bottom: 1px solid var(--color-border);
}
.tag-group:last-child { border-bottom: none; }

.tag-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.625rem 0.25rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    user-select: none;
}
.tag-group-header:hover { color: var(--color-primary); }
.tag-group-header:focus { outline: 2px solid var(--color-border-focus); outline-offset: 2px; }

.tag-group-label { flex: 1; }

/* Subdued suffix of a tag-group label (the " - subtype" portion after " - "). */
.tag-group-label-subdued {
    font-weight: 300;
    opacity: 0.55;
}

.tag-group-count {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    font-weight: normal;
    margin-right: 0.5rem;
    flex-shrink: 0;
}

.tag-group-arrow {
    font-size: 0.6rem;
    color: var(--color-text-muted);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
}

.tag-group-body {
    display: none;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem 0.25rem 0.75rem;
}
.tag-group-body.open { display: flex; }

/* Tag pill — replaces checkbox+label; gray unselected, lime green selected */
.tag-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.9rem;
    min-height: 36px;
    border-radius: 999px;
    border: 1.5px solid var(--color-border);
    background-color: var(--color-bg);
    color: var(--color-text-muted);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: background-color var(--transition-fast),
                border-color    var(--transition-fast),
                color           var(--transition-fast),
                transform       var(--transition-fast),
                box-shadow      var(--transition-fast);
    -webkit-tap-highlight-color: transparent;
}
.tag-pill:hover {
    border-color: var(--color-save-btn);
    color: var(--color-text);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}
.tag-pill:active { transform: translateY(0); }
.tag-pill.selected {
    background-color: var(--color-save-btn);
    border-color:     var(--color-save-btn);
    color: #fff;
    font-weight: var(--font-weight-medium);
    box-shadow: 0 2px 6px -2px color-mix(in srgb, var(--color-save-btn) 60%, transparent);
}
.tag-pill.selected:hover {
    background-color: var(--color-save-btn-hover);
    border-color:     var(--color-save-btn-hover);
}
.tag-pill:focus-visible {
    outline: none;
    box-shadow: var(--shadow-focus-ring);
}

/* Inline message near save buttons */
.trip-section-msg {
    display: none;
    font-size: var(--font-size-sm);
    margin-top: 0.5rem;
}

/* Trip Link Code share row: read-only code field + Copy button.
   Read-only state gets a "code-y" treatment (monospace, slightly tinted bg) so the
   value reads as a token to copy rather than an editable field. */
.share-link-row {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
    max-width: 480px;
}
.share-link-input {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: var(--font-size-sm);
    letter-spacing: 0.04em;
    background: var(--color-primary-light);
    border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
    cursor: text;
    /* Disable the muted/grey "disabled" look — read-only is intentional, not disabled */
    opacity: 1 !important;
    color: var(--color-text);
    flex: 1;
    min-width: 0;
}
.share-link-input:read-only {
    background: var(--color-primary-light);
    color: var(--color-text);
}
[data-theme="dark"] .share-link-input {
    background: color-mix(in srgb, var(--color-primary) 18%, var(--color-bg-input));
}
.share-link-copy {
    flex-shrink: 0;
    align-self: stretch;
    /* Match the input height precisely so they align */
    min-height: var(--input-height);
}

/* Circled-i info toggle button — uses CSS to avoid Unicode font issues */
.btn-info-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    border: 1.5px solid var(--color-text-muted);
    background: none;
    cursor: pointer;
    font-size: 0.75rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    color: var(--color-text-muted);
    padding: 0;
    flex-shrink: 0;
    transition: color var(--transition-fast), border-color var(--transition-fast);
    vertical-align: middle;
}
.btn-info-toggle:hover { color: var(--color-primary); border-color: var(--color-primary); }
.btn-info-toggle:focus { outline: 2px solid var(--color-border-focus); outline-offset: 2px; }

/* Trip list pager */
.trip-pager-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}
/* Row of action + quick-jump buttons under the Trips card */
.trip-quick-nav {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 0.75rem;
}

/* Trips card fills available viewport height so the list isn't sitting in
   a tiny card with empty space below. Offset is approximate — leaves room
   for the site nav, page header, tips toggle, and the bottom button row. */
.trips-card-fill {
    min-height: calc(100vh - 18rem);
}

/* Trips search row: textbox + emoji button on the same line */
.trips-search-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}
.trips-search-input {
    flex: 1;
    min-width: 180px;
}
.trips-search-results {
    display: none;
    margin: 0 0 0.5rem;
}
.trips-search-results.has-results { display: block; }

/* Page title with no bottom margin (when sitting next to a right-aligned
   action button — collapses the gap below for a tighter header). */

/* Inside collapsible card-section toggles, the heading span should be
   flush with the toggle arrow — clear its default margin. */
.card-section-toggle .heading { margin: 0; }
.trip-pager-info {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    white-space: nowrap;
}
@media (max-width: 575px) {
    .trip-pager-nav { flex-basis: 100%; }
}


/* ── 37. Duplicate Record Finder ─────────────────────────────── */

.drf-section { margin-bottom: 1.5rem; }

.drf-section-title {
    padding-bottom: 0.375rem;
    border-bottom: 2px solid var(--color-border);
    margin: 0 0 0.75rem 0;
}

.drf-group {
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    overflow: hidden;
    margin-bottom: 0.875rem;
}

/* Results table */
.drf-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}
.drf-table th {
    padding: 0.4rem 0.75rem;
    background: var(--color-bg);
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap;
    font-weight: var(--font-weight-medium);
}
.drf-table td {
    padding: 0.45rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}
.drf-table tbody tr:last-child td { border-bottom: none; }
.drf-table tbody tr:hover td { background: var(--color-bg); }

.drf-th-check    { width: 2rem; }
.drf-th-children { width: 5.5rem; text-align: center; }
.drf-td-children { text-align: center; }

/* Duplicate Record Finder results header row */
.drf-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.drf-results-heading { margin: 0; }
.drf-delete-actions {
    margin-top: 1rem;
    flex-wrap: wrap;
}
.drf-confirm-msg {
    margin-top: 0.5rem;
    line-height: 1.6;
}

/* Warning icon for rows with children */
.drf-warn-icon {
    color: var(--color-warning);
    font-size: 0.9rem;
}

/* Dark mode adjustments */
[data-theme="dark"] .drf-group    { border-color: #444; }
[data-theme="dark"] .drf-table th { background: #1e1e1e; }

/* ── Collapsible card sections (Trips page) ──────────────────────────────── */

/* Heading wrapper around .card-section-toggle — gives screen readers a proper
   heading landmark for each accordion section (WAI-ARIA accordion pattern) while
   keeping the button itself as the interactive control. Resets the browser's
   default h2 margins/font so the visible layout is identical to the bare button. */
.card-section-heading {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.card-section-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    padding: 0.15rem 0;
    cursor: pointer;
    text-align: left;
    margin: -0.15rem 0;
    border-radius: var(--border-radius-sm);
    transition: color var(--transition-fast);
}
.card-section-toggle:hover .heading,
.card-section-toggle:hover .card-section-arrow { color: var(--color-accent); }
.card-section-toggle:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

/* Selected-count summary beside a card-section heading (e.g. Trip Tags "3 selected").
   margin-right:auto hugs the count to the heading and pushes the arrow to the far
   right, overriding the toggle's space-between for this three-child case. */
.card-section-count {
    margin-left: 0.5rem;
    margin-right: auto;
    font-size: var(--font-size-xs);
    font-weight: normal;
    color: var(--color-text-muted);
}

.card-section-body {
    display: none;
    padding-top: 0.85rem;
    /* Smooth reveal — opacity transitions from 0 to 1 as the body opens. The display
       toggle still snaps (CSS can't animate display:none), but the fade softens the
       transition for the user. */
    animation: cardSectionFade 0.22s var(--ease-out-quint);
}
.card-section-body.open { display: block; }
@keyframes cardSectionFade {
    from { opacity: 0; transform: translateY(-2px); }
    to   { opacity: 1; transform: translateY(0); }
}

.card-section-arrow {
    /* Unicode chevron replaced with a CSS-drawn arrow so it tints with currentColor
       (matches heading hover color) without a font fallback gamble. */
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    flex-shrink: 0;
    margin-left: 0.6rem;
    border-right: 2px solid var(--color-text-muted);
    border-bottom: 2px solid var(--color-text-muted);
    transform: rotate(-135deg); /* collapsed: pointing up */
    transition: transform var(--transition-mid), border-color var(--transition-fast);
}
.card-section-arrow::before { content: ""; }
.card-section-toggle[aria-expanded="true"] .card-section-arrow {
    transform: rotate(45deg);  /* expanded: pointing down */
}
.card-section-toggle:hover .card-section-arrow { border-color: var(--color-accent); }

[data-theme="dark"] .card-section-toggle:hover .heading { color: var(--color-accent); }

/* ── Trip Dashboard page ─────────────────────────────────────────────────── */

/* Card heading link — inherits size/weight, subtle dashed underline */
.card-title-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dashed var(--color-accent);
}
.card-title-link:hover {
    color: var(--color-accent);
    border-bottom-color: transparent;
}

/* Disabled card heading (e.g. Expenses placeholder) */
.card-title-disabled {
    color: var(--color-text-muted);
    cursor: default;
}

/* Notes summary list */
.tripdashboard-notes-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
}
.tripdashboard-note-item {
    display: flex;
    flex-direction: column;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--color-border);
}
.tripdashboard-note-item:last-child {
    border-bottom: none;
}
.tripdashboard-note-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
}
.tripdashboard-note-date {
    color: var(--color-text-muted);
    margin-top: 0.1rem;
}

/* TripDashboard trip name header — heading line is flush, dates sit immediately below */
.tripdashboard-trip-heading { margin: 0; }
.tripdashboard-trip-subline { margin: 0.1rem 0 0; }

/* Previous trip sub-cards */
.prev-trip-item {
    border-left: 3px solid var(--color-accent);
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    background: #f8f9fa;
    border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
}
.prev-trip-item:last-child {
    margin-bottom: 0;
}

[data-theme="dark"] .prev-trip-item {
    background: #1e1e1e;
}

/* Help page step list — extra breathing room between steps + brand-tinted numbers */
.help-steps { padding-left: 1.5rem; }
.help-steps li { margin-bottom: 0.95rem; line-height: 1.55; }
.help-steps li:last-child { margin-bottom: 0; }
.help-steps li::marker { color: var(--color-accent); font-weight: 700; }

/* ── MessageSent confirmation hero (cross-site) ──────────────────────────────
   Shared so every site's post-ContactUs "Message Sent" page renders the same
   celebratory hero. Reuses shared tokens so it's theme-aware; the only bespoke
   piece is the success-tinted check badge. .ms-detail-text carries the muted
   follow-up paragraph (constrained for readable line length when centered). */
.ms2-hero { padding-top: var(--card-padding-lg); padding-bottom: var(--card-padding-lg); }
.ms2-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
    font-size: 2.1rem;
    line-height: 1;
    box-shadow: var(--shadow-sm);
    animation: ms2CheckPop 0.28s var(--ease-out-back, ease-out) both;
}
.ms2-headline { margin: 0 0 0.5rem; }
.ms2-hero .ms-detail-text { max-width: 46ch; margin-left: auto; margin-right: auto; }
@keyframes ms2CheckPop {
    from { opacity: 0; transform: scale(0.6); }
    to   { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .ms2-check { animation: none; }
}

/* Error.aspx layout */
.error-card {
    max-width: 640px;
    margin: 2rem auto;
}
.error-detail-pre {
    background: #f5f5f5;
    padding: 1rem;
    border-radius: 4px;
    overflow-x: auto;
    font-size: 0.8rem;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 400px;
    overflow-y: auto;
}
[data-theme="dark"] .error-detail-pre { background: #1e1e1e; }
.error-cid {
    font-size: 1rem;
    user-select: all;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    background: var(--color-bg);
    padding: 0.125rem 0.375rem;
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--color-border);
}

/* Message Sent confirmation page */
.ms-message-banner { margin-bottom: 1.25rem; }
.ms-action-row { margin-top: 1.5rem; }

/* ContactUsStatus detail panel */
.cus-detail-header {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}
.cus-section { margin-top: 0.75rem; }
.cus-section-thin { margin-top: 0.25rem; }
.cus-block {
    margin-top: 0.25rem;
    padding: 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    max-height: 300px;
    overflow-y: auto;
}
.cus-pre { white-space: pre-wrap; }
.cus-pre-inline { white-space: pre-wrap; }
.cus-reply { margin-top: 0.25rem; }

/* ── Toast (PLP.showToast) ─────────────────────────────────────
   Slides down + fades in on appearance, then fades out before removal (handled
   in site.js by setting opacity=0). The toast shares the SAME solid color palette
   as .alert-panel.* (success/error/warning/info) but gets a brighter shadow
   because it floats above all chrome. */
/* Toast stack container — fixed-position column that holds 1..N toasts.
   Each toast inside is normal flow, so simultaneous toasts stack vertically
   instead of stacking visually at the same coordinates. pointer-events: none
   on the container lets clicks pass through the empty space; toasts themselves
   re-enable interactivity. */
.site-toast-stack {
    position: fixed;
    top: calc(var(--nav-height, 56px) + 14px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: min(92vw, 560px);
    width: max-content;
    pointer-events: none;
}
.site-toast {
    position: relative;
    min-width: 280px;
    max-width: min(92vw, 560px);
    padding: 0.75rem 2.25rem 0.75rem 1.25rem;
    border-radius: var(--border-radius);
    font-size: var(--font-size-sm);
    box-shadow: var(--shadow-lg);
    transition: opacity 0.4s, transform 0.4s;
    animation: toastIn 0.28s var(--ease-out-quint);
    pointer-events: auto;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    text-align: center;
}
/* Solid toast palette — the SAME fixed colors as .alert-panel.* above, so an
   inline message and its floating-toast twin are identical. Theme-independent
   (light = dark); #111 text on lime/orange/cyan, WHITE on the red error/danger. */
.site-toast.toast-success { background: #00ff00; color: #111; border: 1px solid rgba(0,0,0,0.28); }
.site-toast.toast-error,
.site-toast.toast-danger  { background: #ff0000; color: #fff; border: 1px solid rgba(0,0,0,0.28); }
.site-toast.toast-warning { background: #ff9600; color: #111; border: 1px solid rgba(0,0,0,0.28); }
.site-toast.toast-info    { background: #00B0F0; color: #111; border: 1px solid rgba(0,0,0,0.28); }
/* Canonical dismiss animation — shared by all 3 sites' showToast() so the exit
   motion is identical. JS adds .site-toast-dismissing; the .site-toast transition
   above animates the fade + slide-up. */
.site-toast.site-toast-dismissing { opacity: 0; transform: translateY(-8px); }
.site-toast-msg  { flex: 1; min-width: 0; }
.site-toast-close {
    position: absolute;
    top: 0.35rem;
    right: 0.45rem;
    width: 1.5rem;
    height: 1.5rem;
    border: none;
    background: transparent;
    color: currentColor;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.55;
    border-radius: 50%;
    padding: 0;
    transition: opacity var(--transition-fast), background-color var(--transition-fast);
}
.site-toast-close:hover  { opacity: 1; background: rgba(0,0,0,0.08); }
.site-toast-close:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 1px;
}
@keyframes toastIn {
    from { opacity: 0; transform: translateY(-14px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* Phones only (portrait, below the tablet breakpoint): toasts span the
   available width instead of being content-sized. The stack stays centred
   (left:50% + translateX(-50%)), so widening it to 92vw yields a symmetric
   4vw gutter on each side by construction; the toasts stretch to fill it. */
@media (max-width: 575px) {
    .site-toast-stack { width: 92vw; max-width: 92vw; }
    .site-toast       { max-width: none; min-width: 0; }
}

/* ── Back-to-top floating button ─────────────────────────────── */
.back-to-top {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 50%;
    border: none;
    background: var(--color-accent);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-lg);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px) scale(0.9);
    transition:
        opacity 0.25s var(--ease-out-quint),
        transform 0.25s var(--ease-out-quint),
        background-color 0.15s,
        box-shadow 0.15s;
    z-index: 9998;
}
.back-to-top.visible {
    opacity: 0.92;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.back-to-top:hover {
    opacity: 1;
    background: var(--color-accent-dark);
    box-shadow: var(--shadow-xl);
    transform: translateY(-2px) scale(1);
}
.back-to-top:focus-visible {
    opacity: 1;
    outline: none;
    box-shadow: var(--shadow-lg), var(--shadow-focus-ring);
}

/* ── Scroll progress indicator ────────────────────────────────
   Thin accent-colored bar pinned to the top of the viewport that fills
   left-to-right as the user scrolls. Driven by site.js initScrollProgress();
   CSS only handles the visual. Auto-hidden on very short pages where it
   would always sit at 100% (handled in JS by removing .visible). */
.scroll-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0;
    background: linear-gradient(90deg, var(--color-accent), var(--color-accent-dark));
    z-index: 10001;          /* above nav so it's never overlapped */
    pointer-events: none;
    transition: width 0.06s linear, opacity 0.2s ease;
    opacity: 0;
    border-bottom-right-radius: 2px;
}
.scroll-progress-bar.visible { opacity: 1; }

/* ── DataEditor admin grid (extracted from DataEditor.aspx) ──── */
.de-toolbar { display:flex; flex-wrap:wrap; gap:.5rem; align-items:flex-end; }
.de-toolbar .form-group { margin-bottom:0; }
.de-chips { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.5rem; min-height:1.5rem; }
.de-chip { display:inline-flex; align-items:center; gap:.3rem; background:var(--color-primary-light); color:var(--color-text); border:1px solid var(--color-border); border-radius:1rem; padding:.15rem .6rem; font-size:.85rem; }
.de-chip-remove { background:none; border:none; cursor:pointer; color:var(--color-text-muted); font-size:1rem; line-height:1; padding:0 .1rem; }
.de-chip-remove:hover { color:var(--color-delete-btn); }
.de-paging { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.de-table-wrap { overflow-x:auto; margin-top:.75rem; }
.de-table { border-collapse:collapse; width:100%; line-height:1; }
.de-table th { background:var(--color-bg-card); padding:1px 3px; border:1px solid var(--color-border); white-space:nowrap; text-align:left; font-weight:600; line-height:1.3; }
.de-table td { padding:0; margin:0; border:1px solid var(--color-border); vertical-align:middle; height:1.35rem; }
.de-table tr:hover td { background:var(--color-bg); }
.de-table .pk-cell { color:var(--color-text-muted); white-space:nowrap; padding:0 2px; }
.de-table .de-cell { width:100%; min-width:60px; box-sizing:border-box; padding:0 2px; margin:0; font-size:inherit; height:1.35rem; border:none; background:transparent; color:inherit; }
.de-table td:first-child { width:2rem; text-align:center; padding:0; }
.de-table thead th:first-child { border:none; background:transparent; }
.de-table input[type=checkbox] { margin:0; display:block; }
/* Spacious mode — toggled by the "Compact Rows" checkbox unchecking. Adds
   breathing room to every cell so the grid is easier to read and interact with. */
.de-spacious .de-table th  { padding: 0.45rem 0.6rem; }
.de-spacious .de-table td  { padding: 0.3rem 0.1rem; height: auto; }
.de-spacious .de-table .de-cell { padding: 0.3rem 0.5rem; height: auto; min-height: 2rem; font-size: var(--font-size-sm); }
.de-spacious .de-table .pk-cell { padding: 0.3rem 0.5rem; }
.de-spacious .de-table td:first-child { padding: 0.3rem; }
.de-save-bar { position:sticky; bottom:0; background:var(--color-bg-card); border-top:2px solid var(--color-border); padding:.6rem 1rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; z-index:100; box-shadow:0 -2px 6px rgba(0,0,0,.08); }
.de-preview-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; overflow-y:auto; }
.de-preview-overlay.is-open { display: block; }
.de-button-row { padding-top: 1.4rem; }
.de-toolbar-spaced { margin-top: 0.75rem; }
.de-filter-input { width: 200px; }
.de-paging-spaced { margin-top: 0.5rem; }
.de-preview-toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    margin: 0;
}
.de-preview-label { margin: 0; }
.de-preview-scroll { overflow-x: auto; }
.de-modal-actions { margin-top: 1rem; }
.de-preview-old { color: var(--color-danger); }
.de-preview-new { color: var(--color-success); }
.de-preview-box { background:var(--color-bg-card); margin:2rem auto; max-width:800px; border-radius:6px; padding:1.5rem; }
.de-preview-table { border-collapse:collapse; width:100%; font-size:.875rem; }
.de-preview-table th, .de-preview-table td { border:1px solid var(--color-border); padding:.3rem .5rem; }
.de-preview-table th { background:var(--color-bg-card); }
.de-changed { background:var(--color-warning-bg) !important; }
[data-theme="dark"] .de-chip { background:#2a3a5e; }

/* ── 38. Expenses page ─────────────────────────────────────────────────────
   List rows mirror .note-item, but each row also carries a chip-style "type"
   badge plus 1-2 status badges (Estimate / Split — Settled / Split — Owed).
   The form reuses .notes-edit-col and shared .form-row / .check-row layout. */

.exp-summary-card {
    margin-bottom: 1rem;
    /* Subtle gradient surface so the totals card visually anchors the page */
    background-image:
        radial-gradient(circle at top left,
            color-mix(in srgb, var(--color-accent) 6%, transparent) 0%,
            transparent 60%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}
[data-theme="dark"] .exp-summary-card {
    background-image:
        radial-gradient(circle at top left,
            color-mix(in srgb, var(--color-accent) 16%, transparent) 0%,
            transparent 60%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}
.exp-summary-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: 0.75rem 1.5rem;
    align-items: stretch;
}
.exp-summary-cell {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.65rem 0.9rem;
    background: color-mix(in srgb, var(--color-bg) 60%, transparent);
    border-radius: var(--border-radius-sm);
    border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
}
.exp-summary-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: var(--font-weight-medium);
}
.exp-summary-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-text);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

/* ── Spend-by-type breakdown bar (Expenses summary) ──────────────────────
   Stacked horizontal bar above an inline legend. Each segment is one expense
   type; widths come from server-rendered inline `width:%` styles. The 6 colors
   cycle to support up to 6 distinct types in the bar (the legend below shows
   all types regardless). */
.exp-typebar {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent);
}
.exp-typebar-track {
    display: flex;
    width: 100%;
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: color-mix(in srgb, var(--color-border) 30%, transparent);
}
.exp-typebar-seg {
    display: block;
    height: 100%;
    transition: filter var(--transition-fast);
}
.exp-typebar-seg:hover { filter: brightness(1.08); }
/* 6-color palette tuned to be distinct without clashing — keeps the accent hue
   for the top spender and steps through cool→warm. */
.exp-typebar-seg-1 { background: var(--color-accent); }
.exp-typebar-seg-2 { background: #7c3aed; }   /* violet */
.exp-typebar-seg-3 { background: #f59e0b; }   /* amber */
.exp-typebar-seg-4 { background: #10b981; }   /* emerald */
.exp-typebar-seg-5 { background: #ef4444; }   /* red */
.exp-typebar-seg-6 { background: #64748b; }   /* slate */

.exp-typebar-legend {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.35rem 1rem;
}
.exp-typebar-legend li {
    display: grid;
    grid-template-columns: 0.75rem 1fr auto;
    grid-template-areas: "swatch name pct" "swatch amt pct";
    column-gap: 0.45rem;
    align-items: center;
    font-size: var(--font-size-sm);
}
.exp-typebar-swatch {
    grid-area: swatch;
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 3px;
    align-self: center;
}
.exp-typebar-name { grid-area: name; color: var(--color-text); font-weight: var(--font-weight-medium); }
.exp-typebar-amt  { grid-area: amt;  color: var(--color-text-muted); font-size: var(--font-size-xs); font-variant-numeric: tabular-nums; }
.exp-typebar-pct  { grid-area: pct;  color: var(--color-text-muted); font-size: var(--font-size-xs); font-variant-numeric: tabular-nums; }

.exp-item {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    border-radius: var(--border-radius-sm);
}
.exp-item:last-child { border-bottom: none; }
.exp-item:hover     { background-color: var(--color-primary-light); }
.exp-item:focus     { outline: 2px solid var(--color-border-focus); outline-offset: -2px; }
.exp-item.selected {
    background-color: var(--color-primary-light);
    border-left: 3px solid var(--color-primary);
    padding-left: calc(0.75rem - 3px);
}
.exp-item-row {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.exp-item-date {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    white-space: nowrap;
    min-width: 6.5rem;
}
.exp-item-summary {
    flex: 1;
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    word-break: break-word;
}
.exp-item-amount-value {
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.exp-item-amount-value.exp-item-est {
    color: var(--color-text-muted);
    font-style: italic;
}
.exp-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
    margin-top: 0.2rem;
    align-items: center;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}
.exp-type-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    background: var(--color-primary-light);
    color: var(--color-primary);
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.5;
}
.exp-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.5;
}
.exp-badge-est {
    background: var(--color-warning-bg);
    color: var(--color-warning);
    border: 1px solid var(--color-warning-border);
}
.exp-badge-unsettled {
    background: var(--color-danger-bg);
    color: var(--color-danger);
    border: 1px solid var(--color-danger-border);
}
.exp-badge-settled {
    background: var(--color-success-bg);
    color: var(--color-success);
    border: 1px solid var(--color-success-border);
}
/* Group-shared expense (lives on the board, editable by every active member). */
.exp-badge-shared {
    background: var(--color-info-bg);
    color: var(--color-info);
    border: 1px solid var(--color-info-border);
    text-transform: none;
    letter-spacing: 0;
}
/* Per-row "Share" / "Make private" action + the add-form "Add to group" toggle. */
.exp-share-btn { padding: 0.1rem 0.55rem; font-size: 0.72rem; line-height: 1.4; }
.exp-share-toggle { margin: 0.25rem 0 0.75rem; }
.exp-item-loc { color: var(--color-text-muted); white-space: nowrap; }

/* Form helpers — narrower inputs for date / amount / ratings so they don't
   stretch full-width inside a .form-row when they only need a few characters. */
.exp-date-input    { max-width: 200px; }
.exp-amount-input  { max-width: 200px; }
.exp-rating-input  { max-width: 110px; }

.exp-ratings-details {
    margin: 0.25rem 0 1rem;
}
.exp-ratings-summary {
    cursor: pointer;
    color: var(--color-link);
    font-weight: var(--font-weight-medium);
    font-size: var(--font-size-sm);
    padding: 0.25rem 0;
}
.exp-ratings-summary:hover { color: var(--color-link-hover); }
.exp-ratings-row { margin-top: 0.5rem; }

/* ── 38a. Join wizard (Join.aspx through Join7.aspx) ────────────
   The wizard reuses .card + .form-group but needs its own narrower card width and
   per-step typography. The "Step X of 7" pill, the big question prompt, the
   collapsible "Why?" disclosure, and the multi-column rows all live here. */

.join-card {
    max-width: 540px;
    margin: 0 auto 1.5rem;
    padding: 1.75rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
}
@media (max-width: 575px) {
    .join-card { padding: 1.25rem; border-radius: var(--border-radius); }
}

/* "Step X of 7" pill above the page title. The :where wrapper isolates from .label
   margin defaults so it sits flush above the H1. */
.join-progress {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 0.35rem;
    padding: 0.2rem 0.7rem;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: 999px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.join-progress::before {
    content: "";
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: var(--color-primary);
    /* Soft pulse so users see the wizard is "live", not a static page */
    animation: joinDotPulse 1.8s var(--ease-in-out) infinite;
}
@keyframes joinDotPulse {
    0%, 100% { opacity: 1;   transform: scale(1); }
    50%      { opacity: 0.45; transform: scale(0.8); }
}
@media (prefers-reduced-motion: reduce) {
    .join-progress::before { animation: none; }
}

/* Step prompt — slightly larger than .heading, slightly tighter than .page-title */
.join-question {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 0.4rem;
    line-height: 1.25;
    letter-spacing: -0.005em;
}

/* "Why?" disclosure row — small link sitting just under the prompt, with the
   info text expanding inline when clicked. ASP.NET toggles Visible on lblInfo. */
.join-why {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
    font-size: var(--font-size-sm);
}
.join-why .link {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    /* tiny question-mark prefix so the link reads as "help" */
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.join-why .link::before {
    content: "?";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1em;
    height: 1.1em;
    border-radius: 50%;
    background: var(--color-primary-light);
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.75em;
    line-height: 1;
}
.join-why-info {
    color: var(--color-text-muted);
    font-style: italic;
    font-size: var(--font-size-sm);
    padding: 0.4rem 0.65rem;
    background: var(--color-bg);
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
    width: 100%;
    /* gentle slide-in when revealed */
    animation: joinInfoIn 0.22s var(--ease-out-quint);
}
@keyframes joinInfoIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Per-field "Why?" help toggle ─────────────────────────────────────
   A quieter, multi-field cousin of .join-why for forms like UserProfile,
   where many fields each want an optional "why is this useful?" hint. The
   label and a small "Why?" link share one baseline row; clicking the link
   reveals an italic explanation just below the field. Pure client-side
   (site.js initFieldWhy toggles the [hidden] attribute) — no postback. */
.input-label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}
.input-label-row .input-label { margin-bottom: 0; }
.field-why {
    /* a real <button> styled as a quiet link (keyboard- & screen-reader-friendly) */
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-link, var(--color-primary, #0090C8));
    line-height: 1.2;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: color var(--transition-fast, 0.15s ease);
}
.field-why:hover,
.field-why:focus-visible { color: var(--color-link-hover, var(--color-primary-dark, #005a80)); }
/* underline only the word on hover, never the round badge */
.field-why:hover .field-why-label,
.field-why:focus-visible .field-why-label { text-decoration: underline; }
.field-why::before {
    content: "?";
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1em;
    height: 1.1em;
    border-radius: 50%;
    background: var(--color-primary-light);
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.75em;
    line-height: 1;
}
.field-why-info {
    margin: 0.4rem 0 0;
    color: var(--color-text-muted);
    font-style: italic;
    font-size: var(--font-size-sm);
    padding: 0.4rem 0.65rem;
    background: var(--color-bg);
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
    animation: joinInfoIn 0.22s var(--ease-out-quint);
}

/* Two-column row (first/last name). Stacks on mobile, splits at 540px+. */
.join-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin-bottom: 0.5rem;
}
@media (min-width: 540px) {
    .join-row             { grid-template-columns: 1fr 1fr; }
    .join-row.three       { grid-template-columns: 1fr 1fr 1fr; }
}
.join-row .form-group { margin-bottom: 0; }
.join-row .textbox    { max-width: none; }

/* Trailing "Already have an account?" link below the wizard card */
.join-already {
    text-align: center;
    margin: 1rem 0 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.join-already .link { font-weight: var(--font-weight-medium); }

/* The "All steps take about a minute..." reassurance line sits between page header
   and join card; .text-center already covers alignment, but it can look orphaned
   without breathing room. */
.note.text-center { margin: 0.5rem auto 1.25rem; max-width: 540px; }

/* Step-progress dot strip (decorative; visualizes the 7 steps).
   Pages don't render it yet — add `<ol class="join-stepper" data-step="2">...</ol>`
   to surface it once the markup is updated. Defined here so the styling is ready. */
.join-stepper {
    list-style: none;
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    padding: 0;
    margin: 0 auto 1.25rem;
    max-width: 540px;
}
.join-stepper li {
    flex: 1;
    height: 4px;
    background: var(--color-border);
    border-radius: 999px;
    transition: background-color var(--transition-mid);
}
.join-stepper li.done    { background: var(--color-primary); }
.join-stepper li.current { background: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 25%, transparent); }


/* ── 38a. Increased-contrast accessibility ────────────────────────
   Honor the OS-level "increase contrast" or "high contrast" setting (Windows
   High Contrast on supporting builds, macOS Increased Contrast, Android Color
   Correction → high-contrast text). Strengthens borders, removes subtle muted
   colors, and ensures focus rings remain visible. Override only the design
   tokens — components inherit because they're built on the variables. */
@media (prefers-contrast: more) {

    /* Pure-white-on-pale interactive surfaces (info/success/warning pills)
       can wash out under increased contrast — strengthen their borders. */
    .alert-panel,
    .trip-badge,
    .trip-countdown,
    .trip-filter-chip,
    .td-quicknav-chip { border-width: 2px; }
    /* Subtle muted text becomes too quiet — bump up. */
    .note, .small.text-muted { color: var(--color-text); opacity: 0.85; }
}

/* ── 39. Reduced motion (accessibility) ──────────────────────────
   Users with vestibular disorders, motion sensitivity, or a low-end device may
   prefer minimal animation. Honor the OS-level setting by collapsing transitions
   and animations to a tick. Targeted selectors below preserve essential motion
   (toast fade, spinner) — without an explicit override the spinner would freeze. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    /* The progress bar still needs to animate to its target width, but the
       0.01ms above effectively turns it into a snap which is fine. */
    .back-to-top { transition: opacity 0.01ms; }
    /* Spinner: keep spinning so users know work is happening. */
    .spinner { animation: spin 0.6s linear infinite !important; }
}

/* ── 40. PWA install button (capture beforeinstallprompt) ──────── */
.pwa-install-btn {
    position: fixed;
    right: 1rem;
    bottom: 4.25rem; /* sits just above .back-to-top */
    z-index: 9998;
    display: none; /* shown by JS when beforeinstallprompt fires */
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    background: var(--color-accent);
    color: #fff;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    border: none;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    cursor: pointer;
}
.pwa-install-btn.visible { display: inline-flex; }
.pwa-install-btn:hover, .pwa-install-btn:focus { background: var(--color-accent-dark); outline: none; }
.pwa-install-btn::before { content: "⤓"; font-size: 1rem; line-height: 1; }

/* ── 41. Keyboard-shortcuts help overlay ──────────────────────── */
.shortcuts-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.shortcuts-overlay.open { display: flex; }
.shortcuts-box {
    background: var(--color-bg-card);
    color: var(--color-text);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    max-width: 460px;
    width: 100%;
    padding: 1.25rem 1.5rem;
}
.shortcuts-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-bold); margin: 0 0 0.75rem; }
.shortcuts-list { list-style: none; margin: 0; padding: 0; }
.shortcuts-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--color-border);
}
.shortcuts-list li:last-child { border-bottom: none; }
.shortcuts-list .shortcut-keys { display: inline-flex; gap: 0.25rem; }
.kbd {
    display: inline-block;
    min-width: 1.5em;
    padding: 0.1em 0.4em;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-bottom-width: 2px;
    border-radius: 4px;
    text-align: center;
}
.shortcuts-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.75rem;
}

/* ── 42. Auto-resize textarea — disable vertical resize handle when JS-managed ── */
textarea.textbox[data-autoresize] {
    overflow: hidden;
    resize: none;
}

/* ── 43. Copy-to-clipboard helper ────────────────────────────────
   Small inline button that pairs with [data-clipboard-target]. After a copy
   the button briefly flips to .copied (green check) before reverting. */
.copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}
.copy-btn:hover  { background: var(--color-primary-light); }
.copy-btn:focus  { outline: 2px solid var(--color-border-focus); outline-offset: 2px; }
.copy-btn.copied { background: var(--color-success-bg); color: var(--color-success); border-color: var(--color-success-border); }
.copy-btn.copied::before { content: "✓"; }

/* ── 43b. "Coming Soon" stub-page treatment ───────────────────────
   Walkthroughs, Debug, ManageItems/Tags etc. all use a "Coming soon" card.
   Give those stubs a more deliberate visual so users immediately understand
   the page is intentionally unbuilt — not broken. */
.stub-card {
    text-align: center;
    padding: 2.5rem 1.5rem;
}
.stub-card::before {
    content: "🚧";
    display: block;
    font-size: 2.75rem;
    line-height: 1;
    margin-bottom: 0.85rem;
    /* very subtle bob to communicate "in progress" */
    animation: stubBob 4s var(--ease-in-out) infinite;
}
@media (prefers-reduced-motion: reduce) {
    .stub-card::before { animation: none; }
}
@keyframes stubBob {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-4px); }
}

/* ── 43a0. Trip Dashboard 2-up card grid ─────────────────────────
   On wide screens, pair Packlist + Tasklist and Notes + Expenses side-by-side.
   Cards keep their own margin-bottom, so we zero the bottom margin inside the
   grid and let `gap` provide consistent spacing. Stacks to one column under
   768px so phones don't squish two narrow cards next to each other. */
.td-card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--section-gap);
    margin-bottom: var(--section-gap);
}
.td-card-grid > .card { margin-bottom: 0; }
@media (min-width: 768px) {
    .td-card-grid { grid-template-columns: 1fr 1fr; }
}
/* The trip-name heading inside this grid would otherwise inherit the grid's
   centering. Leave it alone — already controlled by .tripdashboard-trip-heading. */

/* ── 43a1. Trip Dashboard readiness card ─────────────────────────
   Big percentage on the left, headline + per-list breakdown on the right.
   Progress bar underneath fills with the same percentage. Visually anchors
   the page — gives users a "how prepared am I overall?" snapshot. */
.td-readiness {
    background-image:
        radial-gradient(circle at top right,
            color-mix(in srgb, var(--color-accent) 7%, transparent) 0%,
            transparent 60%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}
[data-theme="dark"] .td-readiness {
    background-image:
        radial-gradient(circle at top right,
            color-mix(in srgb, var(--color-accent) 18%, transparent) 0%,
            transparent 60%),
        linear-gradient(180deg, var(--color-bg-card), var(--color-bg-card));
}
.td-readiness-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.td-readiness-pct {
    flex: 0 0 auto;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-accent);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.td-readiness-pct-sym {
    font-size: 0.5em;
    color: var(--color-text-muted);
    margin-left: 0.1em;
    font-weight: 500;
}
.td-readiness-body {
    flex: 1 1 16rem;
    min-width: 0;
}
.td-readiness-headline {
    margin: 0;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-lg);
    color: var(--color-text);
}
.td-readiness-flavor { margin: 0.1rem 0 0.45rem; color: var(--color-text-muted); }
.td-readiness-breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    font-size: var(--font-size-sm);
    color: var(--color-text);
}
.td-readiness-breakdown strong { font-variant-numeric: tabular-nums; }
.td-readiness-track {
    margin-top: 0.75rem;
}

/* ── 43b0. Trip Dashboard quick-nav chips ──────────────────────────
   One-tap jump targets for Packlist / Tasklist / Notes / Expenses, sitting
   immediately under the trip-name heading. Wraps on narrow screens; tappable
   targets are at least 44px tall to honor mobile touch guidelines. */
.td-quicknav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 1rem;
}
.td-quicknav-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem;
    background: var(--color-bg-card);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    min-height: 38px;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
.td-quicknav-chip:hover {
    background: var(--color-primary-light);
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
    text-decoration: none;
    transform: translateY(-1px);
}
.td-quicknav-chip:active { transform: translateY(0); }
.td-quicknav-chip:focus-visible {
    outline: 2px solid var(--color-border-focus);
    outline-offset: 2px;
}
.td-quicknav-icon { font-size: 1em; line-height: 1; }
@media (prefers-reduced-motion: reduce) {
    .td-quicknav-chip:hover { transform: none; }
}

/* ── 43a2. Stat strip ──────────────────────────────────────────────
   A responsive row of metric tiles (big value + small label) for
   surfacing a record's key numbers near the top of a detail/dashboard
   page (e.g. totals, streaks, "this week", last-done). Generic and
   cross-site; theme tokens make it dark-mode-correct automatically.
   Tiles flex-grow to share the row and wrap on narrow screens. */
.stat-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0 0 1.25rem;
}
.stat-tile {
    flex: 1 1 7rem;
    min-width: 6rem;
    text-align: center;
    padding: 0.7rem 0.85rem;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
}
.stat-tile-value {
    display: block;
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    line-height: 1.15;
    color: var(--color-text);
}
.stat-tile-label {
    display: block;
    margin-top: 0.15rem;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
/* Accent variant — highlight the one tile that matters most (e.g. progress). */
.stat-tile.accent { border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-border)); }
.stat-tile.accent .stat-tile-value { color: var(--color-accent); }

/* ── 43b1. Trip filter chips (Trips.aspx) ──────────────────────────
   Compact pill row above the trip list. Active chip uses accent fill.
   Hidden by JS when the user has fewer than 2 trips. */
.trip-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.4rem 0 0.6rem;
}
.trip-filter-chips[hidden] { display: none; }
.trip-filter-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.7rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-bg-card);
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    font-family: var(--font-family);
}
.trip-filter-chip:hover {
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
}
.trip-filter-chip:focus-visible {
    outline: 2px solid var(--color-border-focus);
    outline-offset: 2px;
}
.trip-filter-chip.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.trip-filter-chip-count {
    margin-left: 0.35rem;
    font-size: var(--font-size-xs);
    opacity: 0.85;
}
/* When a chip filter is hiding a list item, the search-results <p> still
   shows the count for the visible subset. */
.trip-hidden-by-filter { display: none !important; }

/* ── 43c0. On-this-page TOC ─────────────────────────────────────────
   Floating "☰" launcher button bottom-right (left of back-to-top) that opens
   a centered overlay listing all section headings on the page. Driven by
   site.js initPageTOC when a parent element has data-page-toc. */
.toc-btn {
    position: fixed;
    right: 4.2rem;            /* tucks left of .back-to-top (1rem + 2.85rem + 0.35rem) */
    bottom: 1rem;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 50%;
    border: none;
    background: var(--color-bg-card);
    color: var(--color-text);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px) scale(0.9);
    transition:
        opacity 0.25s var(--ease-out-quint),
        transform 0.25s var(--ease-out-quint),
        background-color 0.15s;
    z-index: 9997;
}
.toc-btn.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.toc-btn:hover { background: var(--color-primary-light); border-color: var(--color-primary); }
.toc-btn:focus-visible { outline: 2px solid var(--color-border-focus); outline-offset: 2px; }

.toc-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.toc-overlay.open { display: flex; }
.toc-panel {
    background: var(--color-bg-card);
    color: var(--color-text);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    max-width: 460px;
    width: 100%;
    max-height: 80vh;
    overflow: auto;
    padding: 1.25rem 1.5rem;
}
.toc-title {
    margin: 0 0 0.75rem;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
}
.toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.toc-list li + li { margin-top: 0.1rem; }
.toc-link {
    display: block;
    padding: 0.5rem 0.65rem;
    border-radius: var(--border-radius-sm);
    color: var(--color-text);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}
.toc-link:hover,
.toc-link:focus-visible {
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
    text-decoration: none;
}
.toc-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.75rem;
}
@media print { .toc-btn, .toc-overlay { display: none !important; } }

/* ── 43d. Trip countdown badge (Trips.aspx list) ───────────────────
   Small inline pill rendered next to the trip name on the Trips list when
   a trip is within ~30 days. Three flavors: upcoming, today, in-progress.
   Populated by JS in Trips.aspx using the trip's data-start/data-end attrs. */
.trip-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.05rem 0.5rem;
    margin-left: 0.5rem;
    border-radius: 999px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    white-space: nowrap;
    vertical-align: 1px;
}
.trip-badge-upcoming   { background: var(--color-info-bg);    color: var(--color-info);    border: 1px solid var(--color-info-border); }
.trip-badge-today      { background: var(--color-warning-bg); color: var(--color-warning); border: 1px solid var(--color-warning-border); }
.trip-badge-active     { background: var(--color-success-bg); color: var(--color-success); border: 1px solid var(--color-success-border); }
.trip-badge-past       { background: var(--color-bg);         color: var(--color-text-muted); border: 1px solid var(--color-border); }
.trip-badge::before    { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* ── 43e. Trip Dashboard countdown banner ──────────────────────────
   Prominent card shown at the top of TripDashboard when a trip leaves in
   the near future or is currently in progress. Renders inline in the trip
   subline so it appears immediately under the trip name. */
.trip-countdown {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.7rem;
    margin-left: 0.5rem;
    border-radius: 999px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1.3;
    border: 1px solid;
}
.trip-countdown-upcoming { color: var(--color-info);    background: var(--color-info-bg);    border-color: var(--color-info-border); }
.trip-countdown-today    { color: var(--color-warning); background: var(--color-warning-bg); border-color: var(--color-warning-border); animation: countdownPulse 2s var(--ease-in-out) infinite; }
.trip-countdown-active   { color: var(--color-success); background: var(--color-success-bg); border-color: var(--color-success-border); }
.trip-countdown-past     { color: var(--color-text-muted); background: var(--color-bg); border-color: var(--color-border); }
.trip-countdown-icon     { font-size: 0.95em; line-height: 1; }
@keyframes countdownPulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-warning) 35%, transparent); }
    50%      { box-shadow: 0 0 0 6px transparent; }
}
@media (prefers-reduced-motion: reduce) {
    .trip-countdown-today { animation: none; }
}

/* ── 43f. Mobile responsiveness ──────────────────────────────────────
   Targeted overrides for narrow screens. The desktop layout is the
   default in the shared stylesheet; these rules stack, simplify, and
   enlarge touch targets so every page works on a phone.
   Breakpoints: 767px (tablet portrait & below), 575px (phone). */

@media (max-width: 767px) {

    /* ── Forms: stack .form-row children vertically ─────────────
       The shared .form-row is display:flex with wrap. On narrow
       screens we force column direction so 5-8 dropdowns don't
       squeeze into a tiny row. */
    .form-row {
        flex-direction: column;
    }
    .form-row > .form-group {
        width: 100%;
        min-width: 0;
        flex: none;
    }

    /* ── Buttons: stack in .form-actions ────────────────────── */
    .form-actions {
        flex-direction: column;
    }
    .form-actions > .button,
    .form-actions > [class*="button"] {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    /* ── Tables: tighter cells for horizontal space ────────── */
    .data-table th,
    .data-table td {
        padding: 0.4rem 0.5rem;
        font-size: var(--font-size-xs);
    }
    .data-table th {
        font-size: 0.65rem;
    }

    /* Log message column: relax the max-width on mobile so it
       doesn't truncate to a few words. The table is inside a
       table-responsive wrapper so horizontal scroll handles
       overflow. */
    .log-msg {
        max-width: 60vw;
    }
    .log-table {
        min-width: 520px;
    }

    /* ── Toolbar rows: children already wrap, but ensure
       the search field doesn't demand too much space ───────── */
    .toolbar-search-grow {
        min-width: 140px;
        flex-basis: 100%;
    }

    /* ── DataEditor: stack toolbar fields ───────────────────── */
    .de-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .de-filter-input {
        width: 100%;
    }
    .de-button-row {
        padding-top: 0;
    }
    .de-save-bar {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.5rem 0.65rem;
    }
    .de-save-bar .button {
        flex: 1 1 auto;
        min-height: 44px;
        text-align: center;
        justify-content: center;
    }
    .de-preview-box {
        margin: 1rem 0.5rem;
        max-width: none;
        padding: 1rem;
    }
    .de-paging {
        gap: 0.4rem;
    }
    .de-table .de-cell {
        min-width: 80px;
        min-height: 44px;
        height: auto;
        padding: 0.25rem 4px;
    }
    .de-table td {
        height: auto;
    }
    .de-table td:first-child {
        min-width: 44px;
        min-height: 44px;
    }

    /* ── Expenses: summary grid adapts to narrow screens ───── */
    .exp-summary-row {
        grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    }
    .exp-summary-value {
        font-size: 1.15rem;
    }

    /* ── Share link row (EditTrip): stack code + button ─────── */
    .share-link-row {
        flex-direction: column;
        max-width: none;
    }

    /* ── Quicklist filters: tighter gap ─────────────────────── */
    .ql-filters {
        gap: 0.5rem;
    }
    .ql-filter-divider {
        display: none;
    }

    /* ── Subscribe page: details table labels ──────────────── */
    .subscribe-details-label {
        width: auto;
        white-space: normal;
    }

    /* ── ContactUsViewer / DuplicateRecordFinder tables ─────── */
    .drf-table th,
    .drf-table td {
        padding: 0.35rem 0.5rem;
    }
    .drf-th-children {
        width: auto;
    }

    /* ── AI metadata grid: single column on mobile ─────────── */
    .ai-meta-grid {
        grid-template-columns: 1fr;
    }
    .ai-meta-label {
        white-space: normal;
    }

    /* ── Page header: tighter gap ──────────────────────────── */
    .page-header {
        gap: 0.5rem;
    }

    /* ── Contact Us form: stack site/page row ───────────────── */
    .cu-site-row {
        flex-direction: column;
    }
    .cu-site-select {
        width: 100%;
    }
}

@media (max-width: 575px) {

    /* ── Page wrapper: reduce padding on phones ────────────── */
    .page-wrapper {
        padding: 0.65rem;
    }

    /* ── Cards: slightly less padding ──────────────────────── */
    .card {
        padding: 0.75rem;
    }
    .card-lg {
        padding: 1rem;
    }

    /* ── Expenses form: let narrow inputs stretch full-width ── */
    .exp-date-input,
    .exp-amount-input,
    .exp-rating-input {
        max-width: none;
    }

    /* ── Notes date input: also stretch ─────────────────────── */
    .notes-date-input {
        max-width: none;
    }

    /* ── Home page: force exactly 2 columns on phones ──────── */
    .home-actions {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.4rem;
    }

    /* ── Trip readiness: scale down percentage ─────────────── */
    .td-readiness-pct {
        font-size: 2.25rem;
    }

    /* ── Modals / overlays: tighter padding on phones ──────── */
    .shortcuts-box,
    .toc-panel {
        padding: 0.85rem 1rem;
    }
    #session-expired-modal .modal-box {
        padding: 1.25rem;
    }

    /* ── Footer: tighter on phones ─────────────────────────── */
    .site-footer {
        padding: 1rem 0.75rem;
    }
    .site-footer-links {
        line-height: 2;
    }

    /* ── Expenses type-bar legend: narrower min ─────────────── */
    .exp-typebar-legend {
        grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    }

    /* ── Buttons in .form-actions: ensure tappable height ──── */
    .form-actions > .button {
        min-height: 44px;
    }

    /* ── Toolbar actions: stack and stretch ─────────────────── */
    .toolbar-actions {
        flex-direction: column;
        width: 100%;
    }
    .toolbar-actions > .button {
        width: 100%;
        text-align: center;
        justify-content: center;
    }

    /* ── LogViewer / ContactUsViewer: pager wraps tighter ──── */
    .log-pager {
        gap: 0.4rem;
        flex-wrap: wrap;
    }

    /* ── Quicklist: section/tag headers smaller ─────────────── */
    .ql-section-header {
        font-size: var(--font-size-base);
    }

    /* ── Duplicate Record Finder: results groups tighter ───── */
    .drf-group {
        margin-bottom: 0.5rem;
    }
    .drf-results-header {
        flex-direction: column;
        align-items: flex-start;
    }

    /* ── ContactUs viewer: read-only info bar stacks ───────── */
    .cuv-readonly-info {
        flex-direction: column;
        gap: 0.25rem;
    }

    /* ── DataEditor: phone-specific tightening ─────────────── */
    .de-save-bar .button {
        font-size: var(--font-size-sm);
        padding: 0.4rem 0.5rem;
    }
    .de-chips {
        gap: 0.3rem;
    }
    .de-chip {
        font-size: 0.8rem;
        padding: 0.2rem 0.5rem;
    }
    .de-preview-box {
        margin: 0.5rem;
        padding: 0.75rem;
    }
    .de-preview-table {
        font-size: 0.8rem;
    }
    .de-preview-table th,
    .de-preview-table td {
        padding: 0.2rem 0.35rem;
    }
}

/* Card title with top separator — marks a second logical section within
   a single card (e.g. "Site behavior" below "Display" on Preferences). */
.card-title-spaced {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

/* About page: responsive feature grids. Stacks on mobile, splits at md. */
.about-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 768px) {
    .about-grid { grid-template-columns: repeat(2, 1fr); }
}
.about-grid-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 768px) {
    .about-grid-3 { grid-template-columns: repeat(3, 1fr); }
}

/* ── 44. Itinerary page ──────────────────────────────────────────── */

/* Day navigation header */
.itin-day-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.itin-day-title {
    flex: 1;
    text-align: center;
    margin: 0;
}

/* Item rows */
.itin-item {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    transition: background-color var(--transition-fast);
}
.itin-item:last-child { border-bottom: none; }
.itin-item:hover { background-color: var(--color-primary-light); }
.itin-item:focus-visible { outline: 2px solid var(--color-border-focus); outline-offset: -2px; }
.itin-item.selected {
    background-color: var(--color-primary-light);
    border-left: 3px solid var(--color-accent);
}

.itin-item-row {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.itin-item-time {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    min-width: 5.5rem;
    flex-shrink: 0;
}
.itin-item-title {
    font-weight: var(--font-weight-medium);
    flex: 1;
    min-width: 0;
    word-break: break-word;
}
.itin-item-meta {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 0.125rem;
}

/* Day headers in full itinerary */
.itin-day-header {
    padding: 0.5rem 0.75rem;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    position: sticky;
    top: 0;
    z-index: 1;
}
[data-theme="dark"] .itin-day-header { background: var(--color-bg-card); }

/* Status badge variants */
.itin-status-confirmed { background: var(--color-success-bg); color: var(--color-success); }
.itin-status-cancelled { text-decoration: line-through; opacity: 0.65; }
.itin-status-completed { background: var(--color-success-bg); color: var(--color-success); opacity: 0.7; }

/* Collapsible details sections */
.itin-details { border: 1px solid var(--color-border); border-radius: var(--border-radius-sm); }
.itin-details-summary {
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    font-weight: var(--font-weight-medium);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    list-style: none;
}
.itin-details-summary::before { content: "▸ "; }
.itin-details[open] > .itin-details-summary::before { content: "▾ "; }
.itin-details-summary::-webkit-details-marker { display: none; }
.itin-details-body { padding: 0 0.75rem 0.75rem; }

/* Date + Time pairs (Start Date/Time, End Date/Time): keep the two fields on
   one line at every width. The general .form-row stacks to a column below
   768px so a dense row of dropdowns doesn't squeeze, but a date input plus a
   short time dropdown comfortably fit two-up — so this row opts out of that
   stacking. Declared after the max-width:767px .form-row override above, so it
   wins on equal specificity. */
.itin-datetime-row {
    flex-direction: row;
    flex-wrap: nowrap;
    column-gap: 0.5rem;
}
.itin-datetime-row > .form-group {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
}

/* Responsive: time column narrower on phones */
@media (max-width: 575px) {
    .itin-item-time { min-width: auto; }
}

/* ── Suggested activities panel (Itinerary.aspx) ─────────────────────
   Additive only — reuses .main-card / .checkbox / .pill / .link. Each
   suggestion is a <label> row so the whole row toggles its checkbox,
   mirroring the Setup Checklist rows below. */
.itin-suggest-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.itin-suggest-toolbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0.75rem 0 0.25rem;
}
.itin-suggest-toolbar .small-dim-text { margin-right: auto; }
.itin-suggest-item {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.6rem 0.25rem;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
}
.itin-suggest-item:last-child { border-bottom: none; }
.itin-suggest-item:hover { background-color: var(--color-primary-light); }
.itin-suggest-cb { margin-top: 0.2rem; flex: 0 0 auto; }
.itin-suggest-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}
.itin-suggest-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
}
.itin-suggest-when {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    white-space: nowrap;
}
.itin-suggest-title { font-weight: 600; }
.itin-suggest-metarow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}
.itin-suggest-desc { display: block; }
.itin-suggest-links { display: block; font-size: 0.9rem; }
.itin-suggest-loc { white-space: nowrap; }

/* ── 45. Setup Checklist page ────────────────────────────────────────
   Big tappable checkbox rows. Each row is a <label> so the whole row is
   the click target. Auto-checked items show a green check + disabled
   styling so users can tell which items the server already credited them
   for vs. which ones they checked themselves. */
.setup-progress-card { padding: 0.75rem 1rem; }
.setup-progress-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}
.setup-progress-text {
    font-weight: 600;
    color: var(--color-text, inherit);
}
.setup-progress-bar {
    width: 100%;
    height: 8px;
    background: var(--color-border, #e0e0e0);
    border-radius: 999px;
    overflow: hidden;
}
.setup-progress-fill {
    height: 100%;
    width: 0%;
    background: var(--color-save-btn, #32cd32);
    transition: width 0.25s ease;
}

.setup-checklist {
    list-style: none;
    padding: 0;
    margin: 0;
}
.setup-item {
    border-bottom: 1px solid var(--color-border, #e0e0e0);
}
.setup-item:last-child { border-bottom: none; }

.setup-row {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding: 0.75rem 0;
    cursor: pointer;
    margin: 0;             /* override Bootstrap label margin */
}

/* Giant checkbox — overrides the default .checkbox sizing for this page */
.setup-check {
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    margin: 0.125rem 0 0 0 !important;
    flex-shrink: 0;
    accent-color: var(--color-primary, #0090C8);
    cursor: pointer;
}
.setup-item-auto .setup-check {
    accent-color: var(--color-save-btn, #32cd32);
    cursor: default;
}

.setup-body { flex: 1; min-width: 0; }
.setup-title {
    font-size: 1.0625rem;
    line-height: 1.35;
    margin-bottom: 0.125rem;
}
.setup-desc {
    color: var(--color-text-muted, #555);
    font-size: var(--font-size-sm, 0.9375rem);
    line-height: 1.4;
}
.setup-desc .button {
    margin-left: 0.5rem;
    vertical-align: baseline;
}
.setup-desc-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-left: 0.25rem;
}
.setup-desc-actions .button { margin-left: 0; }

/* Checked items get a slight strikethrough so the next thing to do
   stands out. Auto-checked items are slightly dimmed to match. */
.setup-item-checked .setup-title,
.setup-item-auto .setup-title {
    text-decoration: line-through;
    text-decoration-color: var(--color-text-muted, #999);
    opacity: 0.7;
}
.setup-item-auto .setup-desc { opacity: 0.85; }

@media (max-width: 575px) {
    .setup-check {
        width: 1.75rem !important;
        height: 1.75rem !important;
        min-width: 1.75rem !important;
    }
    .setup-title { font-size: 1rem; }
    .setup-desc .button { display: inline-block; margin-top: 0.375rem; }
}

/* ── Page header: ← Back button + left-justified titles (cross-site) ────────
   Shared by PacklistPRO, qMeet, and qFIT. The title left-justify lives on the
   base .page-title rule above (so the .text-center utility can still override
   it on the few pages that opt in — e.g. Login / Message-Sent). These rules
   pin the header's right-hand cluster (tip ⓘ / .page-header-actions) to the
   far right so the title group stays flush-left even on 3-item headers, and
   keep the ← glued to the title.

   The ← itself is injected / normalized by each site's site.js initBackButton()
   and rendered statically on each Error.aspx. */
.page-header > .tip-icon-button,
.page-header > .page-header-actions { margin-left: auto; }

/* Keep the ← on the same line as the title and let a long title wrap within
   its own column instead of orphaning the icon on a line above it.
   flex-basis 0% (not auto): the row's base size must never exceed the flex
   line, or a long title pushes the ⓘ trigger / actions cluster onto the next
   line on phones — instead the title shrinks and wraps inside its column. */
.page-header > .page-header-title-row {
    flex: 1 1 0%;
    min-width: 0;
    flex-wrap: nowrap;
}
.page-header-title-row > :not(.back-btn) {
    flex: 1 1 auto;
    min-width: 0;
}

/* ← Back button icon. Two-class selector (.back-btn.back-btn-icon) so it wins
   over the base single-class .back-btn rules above. */
.back-btn.back-btn-icon {
    font-size: 1.6rem;
    line-height: 1;
    padding: 0.1rem 0 0.1rem 0.35rem;  /* no right padding — sit flush against the title */
    margin: 0 -0.5rem 0 -0.35rem;      /* R: cancel the title-row's 0.5rem flex gap; L: flush-left */
    min-height: 0;
    color: inherit;
    text-decoration: none;
    flex: 0 0 auto;
    align-self: center;                /* vertically center against the title */
}
.back-btn.back-btn-icon:hover,
.back-btn.back-btn-icon:focus-visible {
    background-color: transparent;
    opacity: 0.65;
    box-shadow: none;
}
@media print {
    .back-btn.back-btn-icon { display: none !important; }
}

/* ── 46. Color-picker grid (§4.3) ─────────────────────────────────────
   A client-side grid of color swatches for choosing a record color
   (categories, tags, etc.). Markup:
     <div class="color-picker-preview" …></div>
     <div class="color-picker-grid" role="group" aria-label="…">
        <button type="button" class="cp-swatch" data-color="#xxxxxx"
                aria-label="Color #xxxxxx" style="background-color:#xxxxxx"></button>
        …
     </div>
   Page JS wires clicks to a hidden field + the preview; no postbacks. */
.color-picker-preview {
    width: 100%;
    height: 2.25rem;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-sm);
    margin: 0.25rem 0 0.5rem;
}
.color-picker-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(28px, 1fr));
    gap: 4px;
    max-width: 380px;
    margin-bottom: 0.75rem;
}
.cp-swatch {
    height: 28px;
    min-height: 28px;
    border: 1px solid rgba(0, 0, 0, 0.25);
    border-radius: 4px;
    cursor: pointer;
    padding: 0;
    font-size: 0.7rem;
    line-height: 1;
    transition: transform var(--transition-fast, 0.15s);
}
@media (pointer: coarse) {
    .cp-swatch { height: 32px; min-height: 32px; }
}
.cp-swatch:hover { transform: scale(1.08); }
.cp-swatch:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
}
.cp-swatch.selected {
    box-shadow: 0 0 0 2px var(--color-bg-card), 0 0 0 3px var(--color-accent);
}
[data-theme="dark"] .cp-swatch { border-color: rgba(255, 255, 255, 0.25); }

/* ============================================================
   47. Cross-site visual-system extensions (additive, June 2026)
   Purely additive design tokens + utility classes that round out
   the existing system. Touches no existing rule. Safe for all
   three sites because every rule introduces NEW class names or
   NEW custom-property names that did not previously resolve. The
   token block also adds bigger-ring focus shadows for the danger
   and warning button variants so red/orange buttons no longer
   pick up the cyan default. Section header pattern matches the
   sections above so future audits can find the boundary.
   ============================================================ */

/* ── 47.1 Additional design tokens ────────────────────────────
   Light-mode values live in :root, dark overrides in [data-theme="dark"].
   The spacing / z-index scales formalize values that were repeated as
   magic numbers throughout the file; existing rules keep their literal
   values until they are migrated piecemeal. */
:root {
    /* Spacing scale — matches the existing utility ladder
       (gap-1=0.25, gap-2=0.5, gap-3=0.75, gap-4=1, plus 1.5, 2). */
    --space-0: 0;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;

    /* Touch target floor (iOS HIG 44px). Pre-existing min-height: 44px
       literals scattered through .button / .nav-toggle / .back-btn / etc. */
    --touch-target: 44px;

    /* Page container max-width — matches .page-wrapper / .site-nav .nav-inner. */
    --container-max: 1200px;

    /* Z-index scale — standardizes layer naming so future stacking-context
       additions don't fight existing numbers (nav 1000, modal 2000, toast 9999). */
    --z-base:     1;
    --z-sticky:   10;
    --z-dropdown: 100;
    --z-nav:      var(--nav-z, 1000);
    --z-overlay:  1500;
    --z-modal:    2000;
    --z-popover:  3000;
    --z-toast:    9999;

    /* Variant-tinted focus rings — pair with the matching button colors so
       the focus indicator is hue-consistent with the action it surrounds.
       Existing --shadow-focus-ring (cyan) remains the default. */
    --shadow-focus-danger:  0 0 0 3px rgba(211,  47,  47, 0.32);
    --shadow-focus-success: 0 0 0 3px rgba( 50, 205,  50, 0.32);
    --shadow-focus-warning: 0 0 0 3px rgba(230,  81,   0, 0.32);
    --shadow-focus-info:    0 0 0 3px rgba(  2, 119, 189, 0.32);
}
[data-theme="dark"] {
    --shadow-focus-danger:  0 0 0 3px rgba(239,  83,  80, 0.45);
    --shadow-focus-success: 0 0 0 3px rgba(102, 187, 106, 0.45);
    --shadow-focus-warning: 0 0 0 3px rgba(255, 167,  38, 0.45);
    --shadow-focus-info:    0 0 0 3px rgba( 79, 195, 247, 0.45);
}

/* ── 47.2 Missing focus rings for colored button variants ─────
   The base .button:focus-visible always paints the cyan accent ring,
   which clashes with red/orange/transparent buttons. Variant-matched
   rings keep the indicator hue-consistent without changing layout. */
.button.warning:focus-visible {
    box-shadow: var(--shadow-btn, 0 1px 2px rgba(0,0,0,0.15)),
                var(--shadow-focus-warning, 0 0 0 3px rgba(230, 81, 0, 0.32));
}
.button.transparent:focus-visible {
    box-shadow: 0 0 0 3px var(--color-primary-light),
                0 0 0 5px var(--color-primary);
}

/* ── 47.3 Layout / display utilities ─────────────────────────
   Round out the .d-* + .flex-* set. All additive — none of these
   class names appeared anywhere in the shared file as of audit. */
.d-inline       { display: inline; }
.d-inline-block { display: inline-block; }
.d-inline-flex  { display: inline-flex; }
.d-grid         { display: grid; }

.flex-column    { flex-direction: column; }
.flex-row       { flex-direction: row; }
.flex-row-reverse    { flex-direction: row-reverse; }
.flex-column-reverse { flex-direction: column-reverse; }
.flex-nowrap    { flex-wrap: nowrap; }
.flex-1         { flex: 1 1 0%; }
.flex-auto      { flex: 0 0 auto; }
.flex-grow-1    { flex-grow: 1; }
.flex-shrink-0  { flex-shrink: 0; }

.justify-start    { justify-content: flex-start; }
.justify-center   { justify-content: center; }
.justify-end      { justify-content: flex-end; }
.justify-between  { justify-content: space-between; }
.justify-around   { justify-content: space-around; }

.align-start    { align-items: flex-start; }
.align-center   { align-items: center; }
.align-end      { align-items: flex-end; }
.align-baseline { align-items: baseline; }
.align-stretch  { align-items: stretch; }

/* ── 47.4 Spacing utilities — round out existing mt-*/mb-* set ── */
.m-0  { margin: 0; }
.mt-0 { margin-top: 0; }
.mr-0 { margin-right: 0; }
.mb-0 { margin-bottom: 0; }
.ml-0 { margin-left: 0; }
.mt-5 { margin-top: 1.5rem; }
.mb-5 { margin-bottom: 1.5rem; }
.mt-6 { margin-top: 2rem; }
.mb-6 { margin-bottom: 2rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.ms-auto { margin-left: auto; }
.me-auto { margin-right: auto; }
.my-auto { margin-top: auto; margin-bottom: auto; }

.p-0  { padding: 0; }
.p-1  { padding: 0.25rem; }
.p-2  { padding: 0.5rem; }
.p-3  { padding: 0.75rem; }
.p-4  { padding: 1rem; }
.p-5  { padding: 1.5rem; }
.pt-0 { padding-top: 0; }
.pb-0 { padding-bottom: 0; }
.pt-1 { padding-top: 0.25rem; }
.pt-2 { padding-top: 0.5rem; }
.pt-3 { padding-top: 0.75rem; }
.pt-4 { padding-top: 1rem; }
.pb-1 { padding-bottom: 0.25rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-3 { padding-bottom: 0.75rem; }
.pb-4 { padding-bottom: 1rem; }
.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-2 { padding-left: 0.5rem;  padding-right: 0.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem;    padding-right: 1rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-2 { padding-top: 0.5rem;  padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem;    padding-bottom: 1rem; }

.gap-0 { gap: 0; }
.gap-5 { gap: 1.5rem; }

.w-auto { width: auto; }
.h-100  { height: 100%; }
.h-auto { height: auto; }
.mw-100 { max-width: 100%; }

/* ── 47.5 Typography utilities ──────────────────────────────── */
.fw-normal { font-weight: var(--font-weight-normal); }
.fw-medium { font-weight: var(--font-weight-medium); }
.fw-bold   { font-weight: var(--font-weight-bold); }

.fs-xs   { font-size: var(--font-size-xs); }
.fs-sm   { font-size: var(--font-size-sm); }
.fs-base { font-size: var(--font-size-base); }
.fs-lg   { font-size: var(--font-size-lg); }
.fs-xl   { font-size: var(--font-size-xl); }
.fs-xxl  { font-size: var(--font-size-xxl); }

/* Tabular numerals — keeps columns of numbers (counters, prices, time
   remaining) from jittering across digit changes. Already used inline in
   .char-counter and .pager; standardize the helper class. */
.tabular-nums { font-variant-numeric: tabular-nums; }

/* Text color tokens to complete the .text-muted/.text-danger/.text-success
   triad with the remaining semantic colors. */
.text-info    { color: var(--color-info); }
.text-warning { color: var(--color-warning); }

/* Long-text overflow helpers. */
.text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.text-break  { overflow-wrap: anywhere; word-break: break-word; }
.text-nowrap { white-space: nowrap; }
.text-wrap   { white-space: normal; }

/* ── 47.6 Border / shape helpers ────────────────────────────── */
.rounded     { border-radius: var(--border-radius); }
.rounded-sm  { border-radius: var(--border-radius-sm); }
.rounded-lg  { border-radius: var(--border-radius-lg); }
.rounded-pill { border-radius: 999px; }
.rounded-circle { border-radius: 50%; }
.border       { border: 1px solid var(--color-border); }
.border-top   { border-top: 1px solid var(--color-border); }
.border-bottom{ border-bottom: 1px solid var(--color-border); }
.border-0     { border: 0 !important; }
.shadow-sm    { box-shadow: var(--shadow-sm); }
.shadow-md    { box-shadow: var(--shadow-md); }
.shadow-lg    { box-shadow: var(--shadow-lg); }

/* ── 47.7 Responsive show/hide — extend the existing helpers ──
   Existing helpers:
     .hide-xs        (max-width: 575px)
     .hide-sm        (max-width: 767px)
     .show-xs-only   (hidden at min-width: 768px)
   Filling in the gap so the same idiom works at md and lg breakpoints. */
@media (max-width: 991px)  { .hide-md      { display: none !important; } }
@media (max-width: 1199px) { .hide-lg      { display: none !important; } }
@media (max-width: 575px)  { .show-sm-up   { display: none !important; } }
@media (max-width: 767px)  { .show-md-up   { display: none !important; } }
@media (max-width: 991px)  { .show-lg-up   { display: none !important; } }
@media (max-width: 1199px) { .show-xl-up   { display: none !important; } }

/* ── 47.8 Skip-link target marker ─────────────────────────────
   Pair with the existing .skip-link. Pages that wrap their main content in
   <main id="main"> already work; this gives a fallback target marker for
   pages that label the wrapper with .main-content instead. */
[id="main"]:focus,
.main-content:focus { outline: none; }

/* ── 47.9 prefers-reduced-transparency (a11y) ─────────────────
   Honor the OS setting (macOS Reduce Transparency, Windows Transparency
   effects off). Solidify backdrop-filtered surfaces so motion-sensitive or
   low-contrast users don't get hard-to-read blurred chrome. */
@media (prefers-reduced-transparency: reduce) {
    .modal-overlay {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        background: rgba(15, 23, 42, 0.85);
    }
    .nav-item:hover .nav-dropdown,
    .nav-item:focus-within .nav-dropdown {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background-color: var(--color-bg-nav);
    }
}

/* ── 47.10 Forced-colors mode (Windows High Contrast) ─────────
   Tabs/buttons/forms must continue to read in WHCM. Outlines replace
   color cues, and the explicit `forced-color-adjust: auto` keeps the
   system theme in charge of decoration on interactive elements. */
@media (forced-colors: active) {
    .button,
    .pill,
    .nav-link,
    .alert-panel,
    .card,
    .main-card,
    .data-table th,
    .data-table td { forced-color-adjust: auto; }
    .button { border: 1px solid ButtonText; }
    :focus-visible { outline-color: Highlight; }
}

/* ── 47.11 Data-table density variant ─────────────────────────
   .data-table-compact tightens row padding for log viewers / admin
   grids that prioritize density over breathing room. Stripe / hover /
   sticky behaviors continue to come from the base .data-table rules. */
.data-table-compact th,
.data-table-compact td {
    padding: 0.35rem 0.5rem;
}
.data-table-compact th { font-size: 0.68rem; }

/* ── 47.12 Image-rendering helpers ─────────────────────────────
   Some sites embed pixel-art icons (8-bit progress badges) that look
   blurred under the default smooth scaling. */
.img-crisp { image-rendering: pixelated; }
.img-cover { object-fit: cover; }

/* ── 47.13 Cursor + interaction helpers ──────────────────────── */
.cursor-not-allowed { cursor: not-allowed; }
.cursor-grab        { cursor: grab; }
.user-select-none   { user-select: none; }
.user-select-all    { user-select: all; }

/* ── 47.14 Aspect-ratio helpers ─────────────────────────────── */
.ratio-1x1  { aspect-ratio: 1 / 1; }
.ratio-4x3  { aspect-ratio: 4 / 3; }
.ratio-16x9 { aspect-ratio: 16 / 9; }

/* ── 48. Profile hero, avatar & detail-list (cross-site) ───────────────────
   Reusable building blocks for member/public-profile pages: a hero band with a
   circular avatar (photo or colored monogram fallback) + name + an at-a-glance
   status/location line, plus a two-column key/value "detail list" for use inside
   cards. Introduced for qMeet's PublicProfile2 (card-based redesign) but named
   generically so any site's profile page can adopt them. Theme-aware via tokens. */

.profile-hero {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.profile-hero-body { min-width: 0; flex: 1 1 auto; }
.profile-hero-name { margin: 0 0 0.35rem 0; }

/* Online/recent/idle status dot beside the "Active …" line. */
.profile-hero-status {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.profile-hero-loc {
    margin-top: 0.25rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}
.profile-online-dot {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-text-light);   /* idle / unknown */
}
.profile-online-dot.is-online {
    background: #22c55e;
    box-shadow: 0 0 0 3px color-mix(in srgb, #22c55e 25%, transparent);
}
.profile-online-dot.is-recent { background: var(--color-warning); }

/* Circular avatar — fixed square, image cover-cropped; monogram modifier paints
   an accent disc with a centered initial when the member has no photo. */
.profile-avatar {
    display: block;
    width: 84px;
    height: 84px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid var(--color-border);
}
.profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.profile-avatar-mono {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent);
    color: #fff;
    font-size: 2rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    text-transform: uppercase;
    border-color: transparent;
}
@media (max-width: 480px) {
    .profile-avatar { width: 64px; height: 64px; }
    .profile-avatar-mono { font-size: 1.5rem; }
}

/* Title text inside a collapsible card's toggle (icon + label on one baseline). */
.profile-card-title {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

/* Two-column key/value list (label | value), e.g. profile "Details" card. */
.detail-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.4rem 1rem;
    margin: 0;
}
.detail-list dt,
.detail-label {
    margin: 0;
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
}
.detail-list dd,
.detail-value {
    margin: 0;
    color: var(--color-text);
    min-width: 0;
}

/* ── Site-wide announcement banner ─────────────────────────────────────────
   Rendered after the nav on every page by Site.Master when an active
   announcement exists for the site (see Shared\SiteAnnouncements.vb). Mirrors
   the qMeet ChatUC ".reply-quote" panel: bordered card + absolute close button.
   Dark-mode colors come automatically from the host site's [data-theme] vars. */
.site-announce {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.75rem auto;
    max-width: 1100px;
    padding: 0.7rem 2.4rem 0.7rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-left: 4px solid rgba(255, 255, 255, 0.55);
    border-radius: 8px;
    background: #0000ff;          /* info: blue */
    color: #ffffff;
    font-size: var(--font-size-sm, 0.95rem);
    line-height: 1.4;
}
.site-announce--warn {
    background: #ff8000;          /* warning: orange */
    color: #1a1a1a;               /* dark text — white is unreadable on bright orange */
}
/* Warn variant flips the white text/links/close (set above for the blue info banner) to
   dark so they stay legible on the orange background. More specific than the base rules,
   so it wins regardless of source order. */
.site-announce--warn .site-announce-text a { color: #1a1a1a; }
.site-announce--warn .site-announce-close { color: rgba(0, 0, 0, 0.6); }
.site-announce--warn .site-announce-close:hover { color: #000000; }
.site-announce-body { flex: 1 1 auto; min-width: 0; word-wrap: break-word; overflow-wrap: anywhere; }
.site-announce-title { font-weight: var(--font-weight-bold, 700); }
.site-announce-text a { color: #ffffff; text-decoration: underline; }
.site-announce-close {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1;
    padding: 0 0.25rem;
}
.site-announce-close:hover { color: #ffffff; }

/* ── Collapsible Home cards ─────────────────────────────────────────────────
   The per-site Home page enhances each .main-card: everything after the card's
   first .heading is wrapped in .home-card-body and the heading becomes a toggle
   (adds .home-collapsible; clicking toggles .home-collapsed to hide the body).
   A chevron on the heading shows the state. */
.home-collapsible > .heading {
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.home-collapsible > .heading::after {
    content: "";
    flex: 0 0 auto;
    margin-left: auto;
    width: 0.5em;
    height: 0.5em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);            /* chevron points down = expanded */
    transition: transform 0.15s ease;
    opacity: 0.55;
}
.home-collapsible.home-collapsed > .heading::after {
    transform: rotate(225deg);           /* chevron points up = collapsed */
}
.home-collapsible.home-collapsed > .home-card-body {
    display: none;
}


/* ── Share panel (EventSearch / GroupSearch "🔗 Share" float panel) ──────────────
   Reuses the .modal-overlay/.modal-box centered-dialog shell; these rules style the
   inner sections. Injected once into <body> by Scripts/share-panel.js. */
.share-box { max-width: 30rem; text-align: left; }
.share-subtitle { margin: 0.15rem 0 0.75rem; font-weight: 600; }
.share-section { margin-bottom: 0.9rem; }
.share-section .input-label { display: block; margin-bottom: 0.3rem; }
.share-link-row,
.share-email-row { display: flex; gap: 0.4rem; align-items: stretch; }
.share-link-row .textbox,
.share-email-row .textbox { flex: 1 1 auto; min-width: 0; }
.share-link-row .button,
.share-email-row .button { flex: 0 0 auto; white-space: nowrap; }

.share-contact-list {
    max-height: 11rem;
    overflow-y: auto;
    border: 1px solid var(--color-border, rgba(127, 127, 127, 0.3));
    border-radius: 8px;
    padding: 0.25rem;
    margin-top: 0.35rem;
}
.share-contact-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 0.5rem;
    border-radius: 6px;
    cursor: pointer;
}
.share-contact-row:hover { background: var(--color-bg-hover, rgba(127, 127, 127, 0.12)); }
.share-contact-row .checkbox { flex: 0 0 auto; margin: 0; }
.share-contact-name { flex: 1 1 auto; }

/* Contacts already invited / already on the event or group: dimmed, not selectable,
   with a small status badge so the picker indicates who's already been invited. */
.share-contact-row.is-done { cursor: default; opacity: 0.72; }
.share-contact-row.is-done:hover { background: transparent; }
.share-contact-row.is-done .share-contact-name { color: var(--color-text-muted, #6b7280); }
.share-contact-badge {
    flex: 0 0 auto;
    font-size: 0.72rem;
    line-height: 1;
    font-weight: 600;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    white-space: nowrap;
}
.share-contact-badge.invited {
    color: #166534;
    background: rgba(34, 197, 94, 0.16);
    border: 1px solid rgba(34, 197, 94, 0.4);
}
.share-contact-badge.member {
    color: var(--color-text-muted, #6b7280);
    background: rgba(127, 127, 127, 0.14);
    border: 1px solid rgba(127, 127, 127, 0.32);
}

.share-domain-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.45rem; }
.share-domain { cursor: pointer; }

.share-email-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.5rem; }
.share-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.3rem 0.2rem 0.6rem;
    border-radius: 999px;
    background: var(--color-bg-hover, rgba(127, 127, 127, 0.16));
    font-size: 0.9em;
}
.share-tag-x {
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 1.1em;
    line-height: 1;
    padding: 0 0.2rem;
    opacity: 0.7;
}
.share-tag-x:hover { opacity: 1; }

.share-actions { justify-content: space-between; margin-top: 0.5rem; }
.share-login-nudge { margin: 0.25rem 0 0.5rem; }
.share-result { margin-top: 0.5rem; min-height: 1.2em; font-weight: 600; }

