/* Единые поверхности, доступные состояния и эффекты без зависимости от hover. */
:root{--glass:rgba(255,255,255,.77);--glass-line:rgba(255,255,255,.7);--glass-shadow:0 4px 14px rgba(29,40,67,.06);--duration:200ms}
:root[data-theme="dark"]{--glass:rgba(39,51,70,.78);--glass-line:rgba(255,255,255,.16);--glass-shadow:0 4px 16px rgba(0,0,0,.18)}
body{line-height:1.5}
#background-effects{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
#connection-confetti{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:none}
/* Экран входа — это #login-screen.landing: класса .login-screen в разметке
   нет, и правило для него никогда не срабатывало. Без подъёма над слоем фона
   градиент накрывал заголовок и приглушал его. */
.app-shell,#login-screen,.boot{position:relative;z-index:1}.app-shell{background:transparent}.main{background:transparent}
.panel,.stat-card{background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--border)}
:is(button,button.button,button.icon-button,button.nav-item,button.panel-control,button.account-name,button.dialog-item),.file-label{position:relative;isolation:isolate;background:var(--glass);border:1px solid var(--glass-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.32),var(--glass-shadow);border-radius:10px;transition:background var(--duration),border-color var(--duration),box-shadow var(--duration),transform 150ms,opacity var(--duration);touch-action:manipulation}
button::before,.file-label::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 45%,rgba(255,255,255,.035));pointer-events:none}
@supports ((backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px))){button,.file-label{backdrop-filter:blur(12px) saturate(125%);-webkit-backdrop-filter:blur(12px) saturate(125%)}}
@supports not (backdrop-filter:blur(10px)){:is(button,button.button,button.icon-button,button.nav-item,button.panel-control,button.account-name,button.dialog-item),.file-label{background:var(--surface-soft);border-color:var(--border)}}
button.primary{background:color-mix(in srgb,var(--accent) 94%,transparent);color:var(--primary-ink);border-color:color-mix(in srgb,var(--accent) 60%,white);box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 5px 15px color-mix(in srgb,var(--accent) 14%,transparent)}
button.secondary,button.text-button,button.account-name{color:var(--ink)}button.danger{background:var(--bad-bg);color:var(--bad-ink);border-color:color-mix(in srgb,var(--bad-ink) 30%,transparent)}button.danger-text{color:var(--bad-ink)}
.sidebar button{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.09);color:#d5deec}.sidebar button.selected{background:rgba(255,255,255,.1);color:#fff}.sidebar button::before{opacity:.25}.sidebar .icon-button{color:#c8d5e8}
button.account-name{padding:3px 7px;margin-left:-7px;background:var(--glass);box-shadow:inset 0 1px 0 rgba(255,255,255,.16)}
@media(hover:hover){button:hover:not(:disabled){box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 6px 18px rgba(27,42,70,.12);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}button.primary:hover:not(:disabled){background:var(--accent-hover)}}
button:active:not(:disabled){box-shadow:inset 0 2px 4px rgba(0,0,0,.08)}button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.48;cursor:not-allowed;transform:none}
button[aria-busy="true"]{cursor:progress}button[aria-busy="true"]::after{content:"";border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;margin-left:7px}
.account-table td{transition:background 180ms}.account-table .row-actions{gap:5px}.check-note{display:block;font-size:11px;color:var(--muted);margin-top:5px;max-width:240px}.status-pill{white-space:normal}
.modal::backdrop{background:rgba(10,17,29,.42);backdrop-filter:blur(3px)}
@keyframes view-enter{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes panel-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes panel-exit{to{opacity:0;transform:translateY(8px)}}@keyframes toast-enter{from{opacity:0;transform:translateY(8px)}}@keyframes spin{to{transform:rotate(360deg)}}
.settings-search{display:flex;gap:6px;margin-bottom:14px}.settings-search input{flex:1;min-width:0}.settings-category{border:1px solid var(--border);border-radius:12px;margin:10px 0;background:var(--surface);overflow:clip}.settings-category>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:16px;color:var(--ink);font-weight:650;cursor:pointer}.settings-category>summary::-webkit-details-marker{display:none}.settings-category>summary::after{content:"＋";color:var(--accent-ink);font-size:20px;font-weight:400}.settings-category[open]>summary::after{content:"−"}.category-body{display:flex;flex-direction:column}.settings-match{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:3px;background:var(--accent-soft);border-radius:6px}.settings-category[hidden]{display:none}.settings-empty{padding:20px;text-align:center}
.rule-editor{margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);padding:12px}.rule-editor h4{margin:0;font-size:13px}.rule-editor .switch-row{padding:9px;margin-bottom:12px}.rule-description,.variables{font-size:11px;color:var(--muted);margin:7px 0}.variables code{color:var(--accent-ink);padding:2px 4px;background:var(--surface);border-radius:4px}.rule-editor textarea{margin-top:5px}.rule-repeat-fields{margin:12px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.rule-repeat-fields label{font-size:11px}.keyword-condition{border:1px solid var(--border);padding:10px;border-radius:9px;margin:9px 0}.keyword-condition>.form-row{margin-bottom:8px}.history-entry{padding:10px 0;border-bottom:1px solid var(--border);font-size:12px}.history-entry p{margin:4px 0;white-space:pre-wrap}.history-status{font-size:11px;color:var(--muted)}.history-status.failed,.history-status.unknown{color:var(--bad-ink)}
.chat-layout{display:grid;overflow:hidden}.chat-sidebar{border-right:1px solid var(--border)}.dialog-item{display:flex;align-items:center;width:calc(100% - 16px);text-align:left;color:var(--ink);border-color:transparent}.dialog-item.selected{border-color:var(--accent)}.dialog-copy{min-width:0;flex:1}.dialog-copy strong{display:block}.dialog-copy p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:3px 0;color:var(--muted)}.dialog-copy time{font-size:11px;color:var(--muted)}.dialog-item .avatar{flex-shrink:0}.unread-chip{border-radius:12px;background:var(--accent);color:var(--primary-ink)}.chat-thread{position:relative;display:flex;flex-direction:column;overflow:hidden}.chat-thread>header{border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.chat-thread>header small{display:block;color:var(--muted)}.chat-thread>header .mobile-back{display:none}.message-list{flex:1;overflow:auto;display:flex;flex-direction:column;scroll-behavior:auto;overscroll-behavior:contain}.message-bubble{align-self:flex-start}.message-bubble.own{align-self:flex-end}.message-bubble.system{align-self:center;border:0}.message-bubble p{margin:0}.message-bubble time{text-align:right;margin-top:5px}.message-bubble img{display:block;max-width:100%;max-height:240px;border-radius:8px}.chat-thread form{border-top:1px solid var(--border);padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;background:var(--surface)}.chat-thread textarea{resize:vertical;min-height:54px;max-height:150px}.chat-thread form p{grid-column:1/-1;margin:0;font-size:10px}.new-messages{position:absolute}.older-messages{align-self:center;margin-top:8px}.message-list .empty-state{margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
/* Геометрия статистики задана в layout.css; здесь остаётся только оформление. */
.statistics-toolbar label{font-size:11px}
.financial-grid{display:grid}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.chart-axis{stroke:var(--border)}.chart-line{stroke:var(--accent);stroke-width:2.5;fill:none}
.chart-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.chart-dot:hover{r:5}
.chart-text{font-family:inherit;font-size:11px;fill:var(--muted)}
.formula{font-size:11px;color:var(--muted);padding:9px 0}
.financial-notes{display:block}.financial-notes p{font-size:11px}
#finance-fields{display:flex;flex-direction:column;gap:15px}
#adopt-orders{max-height:300px;overflow:auto}#adopt-orders label{margin:9px 0}
.settings-drawer .modal-body{padding:20px}.automation-modal{width:min(700px,calc(100vw - 24px))}
.financial-grid [data-incomplete="true"] strong,.metric-extra [data-incomplete="true"] strong{color:var(--muted)}
:root[data-corners="square"] button,:root[data-corners="square"] .settings-category,:root[data-corners="square"] .rule-editor{border-radius:4px}
@media(max-width:1050px){.chat-layout{grid-template-columns:230px minmax(0,1fr)}.main{padding:25px}.financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.main{padding:17px 13px}.page-header{gap:16px}.chat-sidebar{border-right:0}.chat-thread>header .mobile-back{display:inline-flex}.chart-grid{grid-template-columns:1fr}.financial-grid .stat-card{padding:12px}.financial-grid strong{font-size:20px}.statistics-toolbar>label{flex:1;min-width:125px}.rule-repeat-fields{grid-template-columns:1fr}.rule-repeat-fields input{width:100%}.row-actions .icon-button{width:36px;height:36px}.chat-thread form{padding:9px;gap:6px}.settings-search{position:sticky;top:0;background:var(--surface);z-index:2;padding:6px 0}.toolbar.notification-caption{flex-wrap:wrap}.navigation{overflow:auto}.notification-rule{grid-template-columns:1fr}.settings-drawer{inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}#background-effects,#connection-confetti{display:none}}
:root[data-animations="off"] *, :root[data-animations="off"] *::before,:root[data-animations="off"] *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}

:root[data-accent="violet"]{--accent:#7144cf;--accent-hover:#7547cd}:root[data-accent="blue"]{--accent:#195bbc;--accent-hover:#2162c2}:root[data-accent="green"]{--accent:#137254;--accent-hover:#15795a}:root[data-accent="rose"]{--accent:#b02c67;--accent-hover:#b72f6b}:root[data-accent="cyan"]{--accent:#086d83;--accent-hover:#08738a}

.quick-row{align-items:center;margin:4px 0}
.quick-row .text-button{flex:1;text-align:left;}
