/* 2.59: «Оформление» — base rules for a palette and the picker dialog. Colours of the rest of the app are re-pointed by theme.js. */
html[data-theme]{color-scheme:var(--scheme);background:var(--bg);color:var(--tx);accent-color:var(--ac)}
html[data-theme] body{background:var(--bg);color:var(--tx);font-feature-settings:"cv11","ss01"}
html[data-theme] ::selection{background:color-mix(in srgb,var(--ac) 35%,transparent)}
html[data-theme] :focus-visible{outline:2px solid var(--ac)!important;outline-offset:2px}
html[data-theme] input::placeholder,html[data-theme] textarea::placeholder{color:var(--mu)}
html[data-theme] *{scrollbar-color:var(--bd2) transparent}
html[data-theme] img{background:transparent}
/* 2.83.58: «Оформление» is a tab of Settings, not a window. */
.theme-settings .modules-switch{margin:0 0 14px}
.theme-settings .theme-grid{padding:4px 0 2px;overflow:visible}
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;padding:16px 18px 20px;overflow:auto}
.theme-card{display:flex;flex-direction:column;gap:10px;padding:10px;text-align:left;border:1px solid var(--bd,#e4e9ed);border-radius:12px;background:var(--surf,#fff);color:inherit}
.theme-card:hover{border-color:var(--bd2,#c3d5e4)}
.theme-card[aria-pressed=true]{border-color:var(--ac,#15765e);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac,#15765e) 25%,transparent)}
.theme-card small{color:var(--mu,#73818e)}
.theme-mini{display:flex;height:70px;border-radius:8px;overflow:hidden;border:1px solid #8884}
.theme-mini i{display:block}
.theme-mini .side{flex:0 0 18px}
.theme-mini .body{flex:1;padding:8px;display:flex;flex-direction:column;gap:5px}
.theme-mini .line{height:6px;border-radius:3px}
.theme-mini .tiles{display:flex;gap:4px}
.theme-mini .tiles i{flex:1;height:16px;border-radius:4px;border:1px solid}

/* 2.59.2: themed looks — shape, type and effects on top of the colour tokens */
html[data-theme="cs"] body,html[data-theme="cs"] button,html[data-theme="cs"] input,html[data-theme="cs"] select{font-family:Bahnschrift,"DIN Alternate","Roboto Condensed","Arial Narrow",Inter,system-ui,sans-serif}
html[data-theme="cs"] button,html[data-theme="cs"] .task-card,html[data-theme="cs"] .task-column,html[data-theme="cs"] input,html[data-theme="cs"] select,html[data-theme="cs"] textarea{border-radius:2px!important}
html[data-theme="cs"] header button,html[data-theme="cs"] .task-column h2,html[data-theme="cs"] .task-column h3,html[data-theme="cs"] h1,html[data-theme="cs"] h2{text-transform:uppercase;letter-spacing:.06em}
html[data-theme="cs"] .primary{box-shadow:inset 0 -3px 0 #0005;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
html[data-theme="cs"] .task-card{border-left:3px solid var(--ac)!important}
html[data-theme="cs"] body{background:repeating-linear-gradient(135deg,transparent 0 22px,#ffffff05 22px 23px),var(--bg)}

html[data-theme="dota"] h1,html[data-theme="dota"] h2,html[data-theme="dota"] h3,html[data-theme="dota"] header,html[data-theme="dota"] .task-column h2,html[data-theme="dota"] .task-column h3{font-family:"Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;letter-spacing:.03em}
html[data-theme="dota"] .task-column,html[data-theme="dota"] .task-card,html[data-theme="dota"] dialog{border:1px solid var(--bd2)!important;box-shadow:inset 0 0 0 1px #0008,0 0 0 1px color-mix(in srgb,var(--ac) 25%,transparent)}
html[data-theme="dota"] .primary{background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 85%,#fff),var(--ac) 45%,color-mix(in srgb,var(--ac) 70%,#000))!important;border:1px solid color-mix(in srgb,var(--ac) 60%,#000)!important;text-shadow:0 1px 0 #fff5}
html[data-theme="dota"] body{background:radial-gradient(1200px 600px at 50% -10%,color-mix(in srgb,var(--da) 14%,transparent),transparent 70%),var(--bg)}

html[data-theme="pixel"] body,html[data-theme="pixel"] button,html[data-theme="pixel"] input,html[data-theme="pixel"] select,html[data-theme="pixel"] textarea{font-family:"Lucida Console","Courier New",ui-monospace,monospace}
html[data-theme="pixel"] *{border-radius:0!important}
html[data-theme="pixel"] button,html[data-theme="pixel"] .task-card,html[data-theme="pixel"] .task-column,html[data-theme="pixel"] dialog,html[data-theme="pixel"] input,html[data-theme="pixel"] select{border:2px solid #000!important;box-shadow:4px 4px 0 #000!important}
html[data-theme="pixel"] button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #000!important}
html[data-theme="pixel"] img{image-rendering:pixelated}
html[data-theme="pixel"] h1,html[data-theme="pixel"] h2,html[data-theme="pixel"] h3{text-shadow:2px 2px 0 #000;letter-spacing:.04em}
html[data-theme="pixel"] body{background:conic-gradient(from 90deg at 2px 2px,transparent 25%,#ffffff08 0) 0 0/16px 16px,var(--bg)}

html[data-theme="lamp"] body,html[data-theme="lamp"] button,html[data-theme="lamp"] input,html[data-theme="lamp"] select,html[data-theme="lamp"] textarea{font-family:"Courier New",Consolas,ui-monospace,monospace}
html[data-theme="lamp"] body{text-shadow:0 0 6px color-mix(in srgb,var(--ac) 45%,transparent);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--ac) 7%,var(--bg)),var(--bg) 75%)}
html[data-theme="lamp"] body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2147483000;background:repeating-linear-gradient(0deg,#0000 0 2px,#0000002e 2px 3px);mix-blend-mode:multiply}
html[data-theme="lamp"] .task-card,html[data-theme="lamp"] .task-column,html[data-theme="lamp"] dialog{box-shadow:0 0 14px color-mix(in srgb,var(--ac) 14%,transparent)}
html[data-theme="lamp"] .primary{box-shadow:0 0 12px color-mix(in srgb,var(--ac) 55%,transparent)}
@media (prefers-reduced-motion:reduce){html[data-theme="lamp"] body::after{display:none}}

/* 2.79.5: «Армейский · Хаки» — камуфляж, трафаретные заголовки, латунь и армейские подписи. */
html[data-theme="army"] body{background:radial-gradient(160px 90px at 12% 18%,#2a311f99,transparent 70%),radial-gradient(220px 120px at 78% 12%,#0d100a99,transparent 70%),radial-gradient(200px 140px at 40% 70%,#3a412799,transparent 70%),radial-gradient(180px 110px at 88% 82%,#20261899,transparent 70%),radial-gradient(140px 90px at 25% 95%,#0e110b99,transparent 70%),var(--bg);background-attachment:fixed}
html[data-theme="army"] h1,html[data-theme="army"] h2,html[data-theme="army"] h3,html[data-theme="army"] .task-column-head h3{font-family:Stencil,"Stencil Std","Impact","Arial Black","Roboto Condensed",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.08em}
html[data-theme="army"] button,html[data-theme="army"] .task-card,html[data-theme="army"] .task-column,html[data-theme="army"] input,html[data-theme="army"] select,html[data-theme="army"] textarea,html[data-theme="army"] dialog{border-radius:3px!important}
html[data-theme="army"] .task-card{border-left:4px solid var(--ac)!important;position:relative}
html[data-theme="army"] .primary{background:repeating-linear-gradient(135deg,var(--ac) 0 10px,color-mix(in srgb,var(--ac) 82%,#000) 10px 20px)!important;color:var(--on)!important;font-weight:800;text-transform:uppercase;letter-spacing:.06em;box-shadow:inset 0 -3px 0 #0006}
html[data-theme="army"] .brand::before{content:"★ ";color:var(--ac)}
html[data-theme="army"] #task-new-personal::after{content:" — есть!"}
html[data-theme="army"] #logout::after{content:"в увольнение";margin-left:-.45em}
html[data-theme="army"] .task-column-head h3::after{display:block;margin-top:2px;font:600 10px/1.3 system-ui,sans-serif;letter-spacing:.12em;color:var(--mu);text-transform:uppercase}
html[data-theme="army"] .task-column[data-status="new"] .task-column-head h3::after{content:"Новобранцы · КМБ"}
html[data-theme="army"] .task-column[data-status="active"] .task-column-head h3::after{content:"Копать от забора до обеда"}
html[data-theme="army"] .task-column[data-status="waiting"] .task-column-head h3::after{content:"Солдат спит — служба идёт"}
html[data-theme="army"] .task-column[data-status="done"] .task-column-head h3::after{content:"Так точно, выполнено"}
html[data-theme="army"] .task-column[data-status="cancelled"] .task-column-head h3::after{content:"Отставить!"}
html[data-theme="army"] .task-chip-overdue::after{content:" · залёт"}
html[data-theme="army"] .task-card-done::after{content:"ДЕМБЕЛЬ";display:block!important;top:auto!important;left:auto!important;width:auto!important;background:none!important;position:absolute;right:10px;bottom:8px;padding:1px 6px;border:2px solid var(--ok);border-radius:3px;color:var(--ok);font:800 10px/1.4 system-ui,sans-serif;letter-spacing:.14em;transform:rotate(-8deg);opacity:.75;pointer-events:none}
html[data-theme="army"] .task-card-cancelled::after{content:"ОТСТАВИТЬ";display:block!important;top:auto!important;left:auto!important;width:auto!important;background:none!important;position:absolute;right:10px;bottom:8px;padding:1px 6px;border:2px solid var(--da);border-radius:3px;color:var(--da);font:800 10px/1.4 system-ui,sans-serif;letter-spacing:.14em;transform:rotate(-8deg);opacity:.7;pointer-events:none}
.theme-motto{margin:0 0 12px;padding:10px 14px;border-radius:8px;background:var(--hov,#eef4f9);border-left:4px solid var(--ac,#1769aa);font-weight:600}
.theme-motto[hidden]{display:none}

/* 2.79.5: more army jokes and «Дембельский альбом». */
html[data-theme="army"] #task-view-today::after{content:" · распорядок"}
html[data-theme="army"] #task-view-archive::after{content:" · каптёрка"}
html[data-theme="army"] #task-search-toggle::after{content:" · разведка"}
html[data-theme="army"] #task-calendar-toggle::after{content:" · дни до приказа"}
html[data-theme="army"] #help::after{content:" · штаб";margin-left:-.45em}
.dembel-open{display:none!important}
html[data-theme="army"] #workspace>header #dembel-album-open{display:inline-flex!important;align-items:center;gap:8px;font-weight:700;color:var(--ac)!important}
html[data-theme="army"][data-layout="new"] #workspace>header #dembel-album-open{display:flex!important;width:100%;min-height:38px;padding:8px 12px!important;border:1px dashed color-mix(in srgb,var(--ac) 55%,transparent)!important;border-radius:9px!important;background:color-mix(in srgb,var(--ac) 10%,transparent)!important;text-align:left;justify-content:flex-start;margin:6px 0}
.dembel-album{width:min(560px,94vw);max-height:94dvh;padding:18px 18px 14px;border:3px solid #b99a3b;border-radius:14px;background:#1d2a19;color:#f1e7c4;box-shadow:0 18px 60px #000a}
.dembel-album::backdrop{background:#0b0f08cc}
.dembel-close{float:right;margin:-4px -4px 6px 8px}
.dembel-book{clear:both;min-height:min(70dvh,640px);display:flex}
.dembel-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;border-radius:10px;border:2px solid #b99a3b66;background:radial-gradient(circle at 30% 20%,#2c3d26,#16210f 70%)}
.dembel-page[hidden]{display:none}
.dembel-cover{text-align:center;background:repeating-linear-gradient(45deg,#1f3a1a 0 6px,#1b3317 6px 12px);border:4px double #d4b44a}
.dembel-star{font-size:56px;color:#d4b44a;line-height:1;text-shadow:0 2px 0 #000}
.dembel-dmb{font:900 76px/1 Stencil,Impact,"Arial Black",sans-serif;letter-spacing:.12em;color:#e8c95a;text-shadow:0 3px 0 #000,0 0 18px #e8c95a55}
.dembel-year{font:800 26px/1 Impact,"Arial Black",sans-serif;letter-spacing:.3em;color:#e8c95a}
.dembel-title{margin-top:8px;font:700 22px/1.2 Georgia,serif;font-style:italic;color:#f1e7c4}
.dembel-motto{padding:4px 12px;border:1px solid #d4b44a;border-radius:999px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:#d4b44a}
.dembel-frame{position:relative;margin:0;padding:10px 10px 30px;background:#f4ecd6;box-shadow:0 8px 24px #000a;transform:rotate(-1.5deg);max-width:100%}
.dembel-frame img{display:block;max-width:100%;max-height:56dvh;height:auto}
.dembel-frame figcaption{position:absolute;left:0;right:0;bottom:6px;text-align:center;font:700 15px/1.2 Georgia,serif;font-style:italic;color:#2b3a22}
.dembel-corner{position:absolute;width:26px;height:26px;background:#2b3a22}
.dembel-corner-tl{left:-4px;top:-4px;clip-path:polygon(0 0,100% 0,0 100%)}.dembel-corner-tr{right:-4px;top:-4px;clip-path:polygon(0 0,100% 0,100% 100%)}
.dembel-corner-bl{left:-4px;bottom:-4px;clip-path:polygon(0 0,0 100%,100% 100%)}.dembel-corner-br{right:-4px;bottom:-4px;clip-path:polygon(100% 0,100% 100%,0 100%)}
.dembel-note{margin:6px 0 0;font:italic 600 15px/1.4 Georgia,serif;color:#e8c95a;text-align:center}
.dembel-chord h3{margin:0 0 6px;font:900 24px/1.2 Stencil,Impact,"Arial Black",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#e8c95a}
.dembel-chord ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;width:100%}
.dembel-chord li{padding:8px 12px;border-left:4px solid #d4b44a;background:#0f170c88;border-radius:4px;font-weight:600}
.dembel-chord li::before{content:"★ ";color:#d4b44a}
.dembel-sign{align-self:flex-end;margin:6px 4px 0;font:italic 14px/1.3 Georgia,serif;color:#cfc29a}
.dembel-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.dembel-dots{color:#d4b44a;letter-spacing:.2em}
.dembel-song{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:6px;padding:10px 12px;border:1px dashed #d4b44a;border-radius:8px;width:100%;box-sizing:border-box}
.dembel-song-title{flex-basis:100%;text-align:center;font-weight:700;color:#e8c95a}
.dembel-song-link{padding:6px 12px;border-radius:999px;background:#d4b44a;color:#1a1600;font-weight:800;text-decoration:none}
.dembel-song-link:hover,.dembel-song-link:focus-visible{background:#e8c95a}

/* Chart labels need a surface-coloured halo, never the same colour as their fill. */
html[data-theme] #metrics-board .metrics-value-label,html[data-theme] #metrics-board .metrics-line-label{fill:var(--tx);stroke:var(--surf);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}
html[data-theme] #metrics-board .metrics-value-inside{fill:#fff;stroke:#182a39;stroke-width:2px}
/* The repair report owns its categorical palette; only its surfaces follow the theme. */
html[data-theme] .repair-leads-report{--rm-bg:var(--bg);--rm-panel:var(--surf);--rm-text:var(--tx);--rm-muted:var(--tx2);--rm-line:var(--bd2);--rm-accent:var(--ac);--rm-soft:var(--hov)}
html[data-theme] #metrics-board .metrics-selected-period{fill:color-mix(in srgb,var(--ac) 12%,var(--surf))}
html[data-theme] #metrics-board .metrics-grid{stroke:var(--bd2)}
html[data-theme] #metrics-board .metrics-baseline{stroke:var(--mu)}
