/* Темы меняют оформление существующих поверхностей, сохраняя структуру интерфейса. */
:root{--glass-alpha:.59;--card-alpha:.413;--column-alpha:.59;--glass-blur:1px;--matrix-brightness:1}
:root[data-theme="forest"]{color-scheme:dark;--bg:#020c07;--ink:#edf7f0;--muted:#a7bfb0;--line:rgba(153,219,180,.18);--purple:#80d9a5;--purplebg:rgba(76,175,117,.15);--green:#83d6b0;--red:#f493a3;--orange:#e6bd7f;--paper:rgba(4,19,12,var(--glass-alpha));--surface:rgba(6,23,15,.5);--input-surface:rgba(5,18,12,.76);--card-surface:rgba(5,22,13,var(--card-alpha));--column-surface:rgba(3,20,12,var(--column-alpha));--hover-surface:rgba(86,156,112,.16);--overlay:rgba(0,9,5,.30);--popup:#0e2118;--primary-ink:#071b0e;--border:var(--line)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#14151b;--ink:#f0eff6;--muted:#b6b4c7;--line:rgba(201,196,228,.18);--purple:#b6a8f2;--purplebg:rgba(156,136,222,.15);--green:#88d0b4;--red:#f396a6;--orange:#e5bd85;--paper:rgba(29,30,40,var(--glass-alpha));--surface:rgba(39,40,53,.64);--input-surface:rgba(24,25,34,.90);--card-surface:rgba(38,39,52,var(--card-alpha));--column-surface:rgba(29,30,40,var(--column-alpha));--hover-surface:rgba(170,153,224,.12);--overlay:rgba(7,7,12,.48);--popup:#242430;--primary-ink:#191327;--border:var(--line)}
body{isolation:isolate}
#matrixBackground{position:fixed;inset:0;width:100%;height:100dvh;z-index:-1;pointer-events:none;opacity:var(--matrix-brightness)}
#matrixBackground[hidden]{display:none}
html[data-theme="forest"] body{background:radial-gradient(ellipse at 65% 45%,#103322 0%,#020c07 65%);background-attachment:fixed}
html[data-theme="dark"] body{background:radial-gradient(ellipse at 70% 15%,#23232f,#14151b 70%);background-attachment:fixed}
html[data-theme]:not([data-theme="light"]) :is(button,input,select,textarea){background-color:var(--input-surface);color:var(--ink);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) button:hover{background:var(--hover-surface);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) button.primary{background:var(--purple);color:var(--primary-ink);border-color:var(--purple)}
html[data-theme]:not([data-theme="light"]) button.primary:hover{filter:brightness(1.08)}
html[data-theme]:not([data-theme="light"]) input::placeholder,html[data-theme]:not([data-theme="light"]) textarea::placeholder{color:var(--muted);opacity:.8}
html[data-theme]:not([data-theme="light"]) :is(.sidebar,.topbar,.metric,.login){background:var(--paper);border-color:var(--line);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}
html[data-theme]:not([data-theme="light"]) :is(.brandmark,.chatUnreadBadge){background:var(--purple);color:var(--primary-ink)}
html[data-theme]:not([data-theme="light"]) .brandmark span{color:var(--primary-ink);opacity:.65}
html[data-theme]:not([data-theme="light"]) :is(.avatar,.nav b,.columnhead .count,.segmented,.tag,.step,.check,.priorityBadge,.priorityBadge.planned,.priorityBadge.unknown){background:var(--surface);color:var(--muted)}
html[data-theme]:not([data-theme="light"]) :is(.nav,.navlabel,.topbar strong,.columnhead,.cardtop,.cardstage,.emptyColumn,.footnote,label,.decision p,.event pre,.notificationItem small,.cardnote,.b24Day,.b24SystemMessage time,.columnhead .extra){color:var(--muted)}
html[data-theme]:not([data-theme="light"]) .nav.active{background:var(--purplebg);color:var(--purple);box-shadow:none}
html[data-theme]:not([data-theme="light"]) :is(.segmented .selected,.status-pill,.tag.review,.tokenStatus,.step.current,.step.past){background:var(--purplebg);color:var(--purple)}
html[data-theme]:not([data-theme="light"]) .column{background:var(--column-surface);border:1px solid var(--line);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}
html[data-theme]:not([data-theme="light"]) .columnhead{background:transparent}
html[data-theme]:not([data-theme="light"]) .card{background:var(--card-surface);border-color:var(--line);box-shadow:inset 0 1px rgba(217,255,229,.035),0 3px 12px rgba(0,0,0,.10);text-shadow:0 1px 4px #0006}
html[data-theme]:not([data-theme="light"]) .card:hover{border-color:var(--line);background:var(--paper)}
html[data-theme]:not([data-theme="light"]) .cardstage{border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) .card.executing{box-shadow:inset 2px 0 var(--purple),0 3px 12px #0002}
html[data-theme]:not([data-theme="light"]) .metric.attention{background:var(--purplebg);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) :is(.notice,.stageReportRemaining,.testCounts .unknown){background:rgba(135,100,38,.18);color:#e5c58f;border-color:rgba(205,164,92,.25)}
html[data-theme]:not([data-theme="light"]) :is(.tag.bug,.priorityBadge.critical,.stageReportCounts .failed,.testCounts .failed){background:rgba(182,62,89,.20);color:#ffadba}
html[data-theme]:not([data-theme="light"]) :is(.priorityBadge.urgent,.priorityBadge.high){background:rgba(159,109,37,.20);color:#efd096}
html[data-theme]:not([data-theme="light"]) :is(.tag.analysis,.priorityBadge.medium){background:rgba(83,119,174,.20);color:#a9cdf8}
html[data-theme]:not([data-theme="light"]) :is(.priorityBadge.low,.priorityBadge.minor,.stageReportCounts .passed,.testCounts .passed){background:rgba(56,138,101,.20);color:#9bdbba}
html[data-theme]:not([data-theme="light"]) .backdrop{background:var(--overlay);backdrop-filter:blur(var(--glass-blur))}
html[data-theme]:not([data-theme="light"]) :is(.drawer,dialog){color:var(--ink);background:var(--paper);border-color:var(--line);box-shadow:0 20px 80px #0005;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}
html[data-theme]:not([data-theme="light"]) dialog::backdrop{background:var(--overlay);backdrop-filter:blur(var(--glass-blur))}
html[data-theme]:not([data-theme="light"]) :is(.taskHeader,.taskWorkflow,.drawer .tabs,.drawerfoot,.dialoghead){background:var(--surface);box-shadow:none}
html[data-theme]:not([data-theme="light"]) :is(.tabs button,.quiet,.stageModelGear){background:transparent}
html[data-theme]:not([data-theme="light"]) :is(.detailContent:has(#chatMessages),.detailContent:has(#b24Messages)){background:transparent}
html[data-theme]:not([data-theme="light"]) :is(.detailContent .message.assistant,.detailContent #chatForm,.detailContent #b24Form,.detailContent #jiraForm,.sourceBlock,.sourceDescription,.stageModelSubblock,#confirmDetails){background:var(--card-surface);border-color:var(--line);box-shadow:none}
html[data-theme]:not([data-theme="light"]) :is(.message.user,.message.system,.notificationItem.unread){background:var(--purplebg);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) :is(.message.system .author,.b24SystemMessage strong){color:var(--purple)}
html[data-theme]:not([data-theme="light"]) .taskWorkflow .decision{background:transparent;border-color:var(--purple)}
html[data-theme]:not([data-theme="light"]) .detailContent .composer textarea{background:var(--input-surface);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) :is(.taskMoreMenu,.b24EmojiPicker,.b24FormatPicker){background:var(--popup);border-color:var(--line);box-shadow:0 10px 35px #0005}
html[data-theme]:not([data-theme="light"]) :is(.b24Day span,.b24Avatar,.b24SystemMessage){background:var(--surface);color:var(--muted)}
html[data-theme]:not([data-theme="light"]) :is(.markdown pre,#jiraMessages .b24Body pre){background:var(--input-surface);color:var(--ink)}
html[data-theme]:not([data-theme="light"]) .markdown :not(pre)>code{background:var(--purplebg);color:var(--ink)}
html[data-theme]:not([data-theme="light"]) :is(.copyCode,.markdown th,.b24Description th,.tasktable th){background:var(--surface);color:var(--ink)}
html[data-theme]:not([data-theme="light"]) .tasktable{background:var(--paper)}
html[data-theme]:not([data-theme="light"]) .tasktable tbody tr:hover{background:var(--hover-surface)}
html[data-theme]:not([data-theme="light"]) #boardScrollDock{background:var(--popup);border-color:var(--line)}
html[data-theme]:not([data-theme="light"]) .toast{background:var(--popup);border:1px solid var(--line);color:var(--ink)}
html[data-theme]:not([data-theme="light"]) .loginArt{background:var(--purplebg)}
html[data-theme]:not([data-theme="light"]) .loginArt::before{border-color:var(--purplebg)}
html[data-theme]:not([data-theme="light"]) .loginArt span{color:var(--purple)}
html[data-theme]:not([data-theme="light"]) .loginArt small{color:var(--muted)}
html[data-theme]:not([data-theme="light"]) *{scrollbar-color:color-mix(in srgb,var(--muted) 40%,transparent) transparent}
.topbar>div{display:flex;align-items:center;gap:8px}
#quickTheme{width:auto;max-width:190px;font-size:11px;padding:6px 22px 6px 9px;border-radius:7px}
.appearanceRanges{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin-top:16px}
.appearanceRange{margin:6px 0}
.appearanceRange>span{display:flex;justify-content:space-between;gap:12px}
.appearanceRange output{font-variant-numeric:tabular-nums;color:var(--purple)}
.appearanceRange input[type="range"]{width:100%;padding:0;height:24px;accent-color:var(--purple);border:0;background:transparent;cursor:pointer;box-shadow:none}
.appearanceRange:has(input:disabled){opacity:.45}
.appearanceMotion{display:flex;align-items:center;gap:9px;margin:18px 0 10px}
.appearanceMotion input{width:17px;height:17px;margin:0;accent-color:var(--purple)}
#appearanceSaveStatus{margin:0}
/* Дискретные переходы сохраняют штатные showModal/close, Escape и обработчики карточки. */
dialog{opacity:0;transform:translateY(8px) scale(.985);transition:opacity .18s ease,transform .22s ease,display .22s allow-discrete,overlay .22s allow-discrete}
dialog[open]{opacity:1;transform:none}
dialog::backdrop{opacity:0;transition:opacity .18s ease,display .22s allow-discrete,overlay .22s allow-discrete}
dialog[open]::backdrop{opacity:1}
.drawer{opacity:1;transform:none;transition:opacity .18s ease,transform .22s ease,display .22s allow-discrete}
.drawer.hidden{opacity:0;transform:translateX(22px)}
.backdrop{opacity:1;transition:opacity .18s ease,display .22s allow-discrete}
.backdrop.hidden{opacity:0}
@starting-style{dialog[open]{opacity:0;transform:translateY(8px) scale(.985)}dialog[open]::backdrop{opacity:0}.drawer:not(.hidden){opacity:0;transform:translateX(22px)}.backdrop:not(.hidden){opacity:0}}
@media(prefers-reduced-motion:reduce){dialog,dialog::backdrop,.drawer,.backdrop{transition:none;transform:none}}
@media(max-width:760px){.topbar{height:auto;min-height:48px;flex-wrap:wrap;padding-top:7px;padding-bottom:7px;gap:5px}.topbar>div{flex-wrap:wrap;gap:5px}#quickTheme{max-width:180px}.topbarStatus{display:none}}
@media(max-width:520px){.appearanceRanges{grid-template-columns:1fr;gap:8px}}

/* По выбору пользователя фокус не рисует дополнительные рамки и свечение. */
:is(button,input,select,textarea,a,summary,[tabindex]):is(:focus,:focus-visible){outline:none!important;box-shadow:none!important}
:is(input,select,textarea):is(:focus,:focus-visible){border-color:var(--line)!important}
html[data-theme]:not([data-theme="light"]) #settingsDialog>.dialoghead{background:var(--paper)}

:is(button,input,select,textarea,a,summary,[tabindex],[role="button"]):is(:focus,:focus-visible,:active,[aria-selected="true"],[aria-pressed="true"]),button.selected,button.active,.tabs .selected,.nav.active{outline:none!important;box-shadow:none!important}
.tabs .selected{border-bottom-color:transparent!important}

/* Внутренний отступ сохраняет нативную стрелку списка без замены значка. */
.selectInset{display:inline-flex;align-items:center;vertical-align:middle;width:100%;min-width:0;padding-right:10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.selectInset>select{display:block;flex:1 1 auto;width:100%;min-width:0;max-width:100%;margin:0;border:0!important;border-radius:7px}
label .selectInset{margin-top:6px}
.topbar .selectInset{width:auto;border-radius:7px}
.filters .selectInset{width:160px;flex-shrink:0}
html[data-theme]:not([data-theme="light"]) .selectInset{background:var(--input-surface)}
@media(max-width:760px){.filters .selectInset{width:135px}}

/* Выбранная вкладка различима по фону и цвету без обводок фокуса. */
html:is([data-theme="forest"],[data-theme="dark"]) #drawer .tabs{padding-top:12px;border-bottom:0;background-image:linear-gradient(var(--line),var(--line));background-size:100% 1px;background-position:left bottom;background-repeat:no-repeat}
html:is([data-theme="forest"],[data-theme="dark"]) #drawer .tabs button{padding-inline:10px;border-radius:6px 6px 0 0;color:var(--muted)}
html:is([data-theme="forest"],[data-theme="dark"]) #drawer .tabs button.selected{background:var(--purplebg);color:var(--purple);font-weight:600;position:relative;border-bottom-width:0}

/* Прерывание нижней линии ограничено шириной выбранной вкладки. */
html:is([data-theme="forest"],[data-theme="dark"]) #drawer .tabs button.selected::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--bg);pointer-events:none}
