/* Lumen: слой оформления поверх app.css. Тёмная тема по умолчанию для тёмных ОС, светлая — молочная. Тему можно переключить вручную (data-theme на <html>). */
:root{
  --bg:#f3f4f9; --bg-2:#e9ecf4; --card:linear-gradient(160deg,rgba(255,255,255,.96),rgba(255,255,255,.72) 60%); --ink:#0e1323; --muted:#6b7589; --line:rgba(24,32,60,.1); --soft:rgba(24,32,60,.05);
  --brand:#0e9f62; --brand-d:#0b8750; --brand-l:rgba(14,159,98,.12); --violet:#5b4be0; --accent-ink:#fff; --accent-2:#5b4be0;
  --ok:#0b8750; --warn:#a96a00; --err:#d6334a; --info:#5b4be0;
  --edge:#fff; --glow-a:rgba(14,159,98,.18); --glow-b:rgba(91,75,224,.16);
  --shadow:0 1px 0 rgba(255,255,255,.9) inset,0 24px 50px -28px rgba(52,64,150,.35); --inner:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -10px 20px -14px rgba(60,70,140,.14);
  --surface:rgba(255,255,255,.7); --surface-2:rgba(255,255,255,.95); --field:rgba(255,255,255,.85); --pop:#fff; --on-brand:#fff;
  --ease-out:cubic-bezier(.22,1,.36,1); --spring:cubic-bezier(.34,1.56,.64,1); --r:22px; --t:.16s ease;
  --font-display:Unbounded,Onest,system-ui,sans-serif; --font-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  font-family:Onest,Montserrat,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color-scheme:light;
}
@supports (transition-timing-function:linear(0,1)){:root{--spring:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017 19.4%,1.077 22.6%,1.121 26.5%,1.131 29.6%,1.115 32.9%,1.043 41.5%,1.011 46.5%,.994 52.5%,.992 61.7%,1)}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a0d14; --bg-2:#0f1420; --card:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.04) 55%); --ink:#eef1f7; --muted:#8c96aa; --line:rgba(255,255,255,.09); --soft:rgba(255,255,255,.05);
  --brand:#62e0a0; --brand-d:#4fd08f; --brand-l:rgba(98,224,160,.13); --violet:#8b7cff; --accent-ink:#04140c; --accent-2:#8b7cff;
  --ok:#62e0a0; --warn:#f5b84b; --err:#ff6b7a; --info:#a99dff;
  --edge:rgba(255,255,255,.38); --glow-a:rgba(98,224,160,.28); --glow-b:rgba(139,124,255,.24);
  --shadow:0 28px 60px -28px rgba(0,0,0,.75); --inner:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -12px 24px -16px rgba(0,0,0,.5);
  --surface:rgba(255,255,255,.045); --surface-2:rgba(255,255,255,.08); --field:rgba(255,255,255,.05); --pop:#121826; --on-brand:#04140c; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a0d14; --bg-2:#0f1420; --card:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.04) 55%); --ink:#eef1f7; --muted:#8c96aa; --line:rgba(255,255,255,.09); --soft:rgba(255,255,255,.05);
  --brand:#62e0a0; --brand-d:#4fd08f; --brand-l:rgba(98,224,160,.13); --violet:#8b7cff; --accent-ink:#04140c; --accent-2:#8b7cff;
  --ok:#62e0a0; --warn:#f5b84b; --err:#ff6b7a; --info:#a99dff;
  --edge:rgba(255,255,255,.38); --glow-a:rgba(98,224,160,.28); --glow-b:rgba(139,124,255,.24);
  --shadow:0 28px 60px -28px rgba(0,0,0,.75); --inner:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -12px 24px -16px rgba(0,0,0,.5);
  --surface:rgba(255,255,255,.045); --surface-2:rgba(255,255,255,.08); --field:rgba(255,255,255,.05); --pop:#121826; --on-brand:#04140c; color-scheme:dark}

html,body{background:var(--bg);color:var(--ink)}
body{-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 520px at 12% -8%,var(--glow-a),transparent 62%),radial-gradient(800px 560px at 96% 10%,var(--glow-b),transparent 60%),radial-gradient(700px 500px at 50% 120%,var(--glow-b),transparent 60%)}
h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em;text-wrap:balance} h1{font-size:clamp(22px,3vw,32px);line-height:1.12;font-weight:300} h2{font-size:17px;font-weight:450}
h3{font:500 11px/1.2 var(--font-mono);letter-spacing:.14em;color:var(--muted)}
.kpi b,.big,.dt,.dev .num{font-family:var(--font-display);font-weight:300;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.kpi b{font-size:34px}
td,th,.rx input,.vrx td,.secret{font-variant-numeric:tabular-nums}
.rx input,table.vrx td{font-family:var(--font-mono)}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:8px}
.crumbs a:hover,.tabs a:hover,.tabs .tab:hover,.tabs a.on,.tabs .tab.on{color:var(--ink)}
th.l{color:var(--ink)!important}

/* ---- стеклянная поверхность ---- */
.card,.side,.modal,.dd,.toc{backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4)}
@supports not (backdrop-filter:blur(1px)){.card,.side,.modal,.dd,.toc{background:var(--bg-2)}}
.card{position:relative;isolation:isolate;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--inner),var(--shadow);padding:20px 22px}
.card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;opacity:.5;transition:opacity .3s var(--ease-out);
  background:radial-gradient(260px circle at var(--mx,30%) var(--my,0%),var(--brand),transparent 65%),linear-gradient(145deg,var(--edge),transparent 38%,transparent 72%,var(--edge));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask-composite:exclude}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;opacity:0;transition:opacity .3s var(--ease-out);background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--ink) 8%,transparent),transparent 62%)}
@media (hover:hover) and (pointer:fine){.card:hover::before,.card:hover::after{opacity:1}.card:has(.cardlayout,form){}.tiles>.card,.grid2>.card,.grid3>.card,.bento>.card{transition:transform .5s var(--spring)}.tiles>.card:hover,.bento>.card:hover{transform:translateY(-2px) scale(1.01)}}
.card.flat{box-shadow:none}
.toc a{border-radius:10px;transition:background .16s ease,color .16s ease,transform .35s var(--spring)} .toc a:hover{transform:translateX(2px)} .toc a.on{background:var(--brand-l);color:var(--brand)}
.modal .card::before,.modal .card::after,.cardrow::before,.cardrow::after{display:none}

/* ---- каркас ---- */
.side{background:color-mix(in srgb,var(--bg) 55%,transparent);border-right:1px solid var(--line)}
.brand i{border:0;background:radial-gradient(circle at 35% 30%,#fff,var(--brand) 40%,var(--violet) 130%);box-shadow:0 0 18px var(--glow-a),0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
.brand i:after{display:none}
.brand b{font-family:var(--font-display);font-weight:400;font-size:17px}
.side a.nav{color:var(--muted);border:1px solid transparent;transition:background .16s ease,color .16s ease,transform .35s var(--spring)}
.side a.nav:hover{background:var(--surface-2);color:var(--ink);transform:translateX(2px)}
.side a.nav.on{background:var(--brand-l);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 28%,transparent);box-shadow:0 0 22px -8px var(--glow-a)}
.side .grp{font-family:var(--font-mono);letter-spacing:.16em}
.side .me b{color:var(--ink)}
.search input[type=search]{background:var(--field);border:1px solid var(--line);box-shadow:var(--inner);border-radius:14px}
.search input:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
.search:before{border-color:var(--muted)} .search:after{background:var(--muted)}
.kbdhint{cursor:pointer;position:absolute;right:12px;top:50%;transform:translateY(-50%);font:500 11px/1 var(--font-mono);padding:4px 6px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}
.dd{background:var(--pop);border-color:var(--line);box-shadow:var(--shadow)} .dd a,.dd .it{border-color:var(--soft)}
.scrim{background:rgba(5,8,14,.6)!important;backdrop-filter:blur(6px)}
.shell.menu-open .side{box-shadow:0 0 60px rgba(0,0,0,.5);background:var(--bg-2)}

/* ---- кнопки ---- */
.btn{border-radius:14px;border:1px solid transparent;color:var(--on-brand);font-weight:650;padding:10px 20px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 100%,#fff 14%),var(--brand));
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 6px rgba(0,0,0,.16) inset,0 12px 28px -12px var(--brand),0 2px 5px rgba(0,0,0,.2);
  transition:transform .35s var(--spring),box-shadow .2s ease,background .16s ease,border-color .16s ease}
.btn:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 100%,#fff 22%),var(--brand-d));border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 6px rgba(0,0,0,.16) inset,0 18px 36px -12px var(--brand),0 2px 5px rgba(0,0,0,.2)}
.btn:active{transform:scale(.97);transition-duration:.08s}
.btn.sec{background:var(--surface-2);color:var(--ink);border-color:var(--line);box-shadow:var(--inner)}
.btn.sec:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--ink) 25%,transparent)}
.btn.violet{background:linear-gradient(180deg,color-mix(in srgb,var(--violet) 100%,#fff 14%),var(--violet));color:#fff}
.btn.danger{background:var(--surface);color:var(--err);border-color:color-mix(in srgb,var(--err) 35%,transparent);box-shadow:none}
.btn.danger:hover{background:color-mix(in srgb,var(--err) 14%,transparent)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.4}
.link{color:var(--info)}

/* ---- бейджи ---- */
.chip{background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:12.5px;padding:3px 10px}
.chip.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 28%,transparent)}
.chip.warn{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.chip.err{background:color-mix(in srgb,var(--err) 14%,transparent);color:var(--err);border-color:color-mix(in srgb,var(--err) 30%,transparent)}
.chip.info{background:color-mix(in srgb,var(--violet) 15%,transparent);color:var(--info);border-color:color-mix(in srgb,var(--violet) 30%,transparent)}
.chip.brand{background:var(--brand-l);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 30%,transparent)}
.chip.dark{background:var(--ink);color:var(--bg);border-color:transparent}
.cv{background:var(--brand-l);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 28%,transparent)} .cv:before{box-shadow:0 0 8px var(--brand)}
.alert{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.alert.info{background:color-mix(in srgb,var(--violet) 12%,transparent);border-color:color-mix(in srgb,var(--violet) 30%,transparent)}
.alert.ok{background:var(--brand-l);border-color:color-mix(in srgb,var(--brand) 30%,transparent)} .alert.err{background:color-mix(in srgb,var(--err) 12%,transparent);border-color:color-mix(in srgb,var(--err) 30%,transparent)}
.scopebox{background:var(--brand-l);border-color:color-mix(in srgb,var(--brand) 28%,transparent);border-radius:16px}
.scopebox.warn{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.login .err,.msg-err{background:color-mix(in srgb,var(--err) 14%,transparent);color:var(--err)} .msg-ok{background:var(--brand-l);color:var(--brand)}

/* ---- формы ---- */
.f>span,.rxbox .cap{color:var(--ink);opacity:.82}
input[type=text],input[type=search],input[type=tel],input[type=email],input[type=date],input[type=number],input[type=password],input[type=time],select,textarea{background:var(--field);border:1px solid var(--line);border-radius:12px;color:var(--ink);box-shadow:inset 0 2px 6px rgba(0,0,0,.08)}
select option{background:var(--pop);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 20%,transparent)}
input:disabled,select:disabled,textarea:disabled{background:var(--soft);color:var(--muted)}
input.bad,select.bad{border-color:var(--err);box-shadow:0 0 0 4px color-mix(in srgb,var(--err) 18%,transparent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}
.seg{background:var(--surface);border-color:var(--line);border-radius:12px} .seg button.on{background:var(--brand-l);color:var(--brand)}
.opt span{background:var(--field);border-color:var(--line);color:var(--ink)} .opt:hover span{border-color:var(--brand)}
.opt input:checked+span{background:var(--brand-l);border-color:var(--brand);color:var(--brand);box-shadow:0 0 18px -6px var(--glow-a)}
.f.check input,.matrix input{accent-color:var(--brand)}
.pw button{color:var(--info)}

/* ---- таблицы, списки ---- */
tr.click:hover td,.clickrow:hover td{background:var(--surface-2)}
th{font-family:var(--font-mono);letter-spacing:.12em;font-size:11px} td{border-color:var(--line)} .item{border-color:var(--line)}
.cardrow{background:var(--surface);border-color:var(--line);border-radius:18px;box-shadow:var(--inner);transition:border-color .16s ease,transform .35s var(--spring),background .16s ease}
.cardrow:hover{border-color:color-mix(in srgb,var(--brand) 60%,transparent);background:var(--surface-2);transform:translateY(-1px) scale(1.005);box-shadow:var(--inner),0 16px 30px -18px var(--glow-a)}
table.vrx th{background:var(--soft)} table.vrx th,table.vrx td{border-color:var(--line)} .vrow{border-color:var(--line)}
.bar{background:var(--soft)}
.matrix thead th,.matrix td:first-child,.matrix th:first-child{background:var(--bg-2)} .matrix tr.g td,.matrix tr.g td:first-child{background:var(--soft)} .matrix th.rot{color:var(--ink)}

/* ---- карта: редактор ---- */
.cardhead{background:color-mix(in srgb,var(--bg) 62%,transparent);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border-color:var(--line)}
.toc a{color:var(--muted)} .toc a:hover{background:var(--brand-l);color:var(--ink)}
.rx .eye{font-family:var(--font-display);font-weight:500}
.rx input{border-radius:12px}

/* ---- графики ---- */
.chart text{fill:var(--muted);font-family:var(--font-mono);font-size:10.5px} .chart .gl{stroke:var(--line)} .chart .ax{stroke:var(--line)}

/* ---- модалки и тосты ---- */
.ovl{background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.modal{background:var(--pop);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow),0 0 0 1px rgba(255,255,255,.03);animation:pop .45s var(--spring)}
.modal>header,.modal>footer{border-color:var(--line)} .modal>footer{background:var(--soft);border-radius:0 0 26px 26px}
.x{color:var(--muted)}
@keyframes pop{from{transform:translateY(10px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.toast{background:var(--pop);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);backdrop-filter:blur(16px)} .toast.err{background:color-mix(in srgb,var(--err) 22%,var(--pop));border-color:var(--err)} .toast.ok{background:color-mix(in srgb,var(--ok) 20%,var(--pop));border-color:var(--ok)}
.secret{background:var(--soft);border-color:var(--line)}

/* ---- вход ---- */
.login{position:relative}
.login .card{box-shadow:var(--inner),var(--shadow),0 0 90px -30px var(--glow-a)}

/* ---- каскадное появление ---- */
@keyframes rise{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
#page>*,.tiles>*,.grid2>*,.grid3>*,.cardlist>*,.bento>*{animation:rise .6s var(--ease-out) both}
#page>*:nth-child(2),.tiles>*:nth-child(2),.grid2>*:nth-child(2),.grid3>*:nth-child(2),.cardlist>*:nth-child(2),.bento>*:nth-child(2){animation-delay:65ms}
#page>*:nth-child(3),.tiles>*:nth-child(3),.grid3>*:nth-child(3),.cardlist>*:nth-child(3),.bento>*:nth-child(3){animation-delay:130ms}
#page>*:nth-child(4),.tiles>*:nth-child(4),.cardlist>*:nth-child(4),.bento>*:nth-child(4){animation-delay:195ms}
#page>*:nth-child(5),.tiles>*:nth-child(5),.cardlist>*:nth-child(5),.bento>*:nth-child(5){animation-delay:260ms}
#page>*:nth-child(n+6),.tiles>*:nth-child(n+6),.cardlist>*:nth-child(n+6),.bento>*:nth-child(n+6){animation-delay:325ms}
#page>.cardlayout,.cardlayout,.cardlayout *{animation:none}

/* ---- bento ---- */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);gap:16px;margin-bottom:16px}
.bento>.card{display:flex;flex-direction:column;gap:10px;min-width:0;margin:0!important}
.b22{grid-column:span 2;grid-row:span 2}.b21{grid-column:span 2}
.bento .lbl{font:500 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bento .big{font-size:44px;line-height:1}
.rxmini{display:grid;grid-template-columns:30px repeat(3,1fr);gap:8px;align-items:center}
.rxmini .h{font:500 10px/1 var(--font-mono);letter-spacing:.14em;color:var(--muted);text-align:center}
.rxmini .eye{font:500 13px var(--font-display)}
.rxmini .v{font:400 15px/1 var(--font-mono);text-align:center;padding:10px 0;border-radius:12px;background:var(--soft);border:1px solid var(--line);box-shadow:inset 0 2px 6px rgba(0,0,0,.14)}
.ring{--p:.8;width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--brand) calc(var(--p)*360deg),var(--soft) 0);display:grid;place-items:center;box-shadow:0 0 30px -8px var(--glow-a)}
.ring div{width:66px;height:66px;border-radius:50%;background:var(--bg-2);display:grid;place-items:center;font:300 22px var(--font-display);box-shadow:inset 0 2px 8px rgba(0,0,0,.3)}
@media (max-width:980px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.bento{grid-template-columns:minmax(0,1fr)}.b22,.b21{grid-column:auto}.b22{grid-row:auto}}

/* ---- командная строка ---- */
.cmdovl{position:fixed;inset:0;z-index:120;display:grid;justify-items:center;align-content:start;padding:min(14vh,110px) 14px 14px;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out)}
.cmdovl.on{opacity:1;pointer-events:auto}
.cmdpal{width:min(620px,100%);border-radius:24px;overflow:hidden;background:var(--pop);border:1px solid var(--line);box-shadow:var(--shadow),0 0 80px -30px var(--glow-a);transform:translateY(-12px) scale(.97);transition:transform .5s var(--spring)}
.cmdovl.on .cmdpal{transform:none}
.cmdpal .in{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.cmdpal input{flex:1;min-width:0;background:transparent!important;border:0!important;outline:0;box-shadow:none!important;font-size:17px;padding:0!important;color:var(--ink)}
.cmdpal ul{list-style:none;margin:0;padding:8px;max-height:min(50vh,360px);overflow:auto}
.cmdpal li{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;cursor:pointer}
.cmdpal li small{margin-left:auto;font:400 11.5px var(--font-mono);color:var(--muted);white-space:nowrap}
.cmdpal li[aria-selected="true"]{background:var(--brand-l)}
.cmdpal li svg,.cmdpal .in svg{width:18px;height:18px;flex:none;color:var(--muted)}
.cmdpal .ft{display:flex;gap:16px;padding:11px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.cmdpal .k{font:500 11px/1 var(--font-mono);padding:3px 6px;border-radius:6px;border:1px solid var(--line);background:var(--surface)}

/* ---- плавающий док (телефон) ---- */
.dock{display:none}
@media (max-width:900px){
  .dock{display:flex;position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translate(-50%,0);z-index:50;gap:4px;padding:6px;border-radius:24px;background:color-mix(in srgb,var(--pop) 78%,transparent);border:1px solid var(--line);backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);box-shadow:0 18px 40px -12px rgba(0,0,0,.55),var(--inner);transition:transform .5s var(--spring),opacity .3s}
  .dock.away{transform:translate(-50%,calc(100% + 30px));opacity:0}
  .dock a{display:grid;justify-items:center;gap:3px;min-width:62px;padding:8px 6px 6px;border-radius:18px;text-decoration:none;color:var(--muted);font-size:10.5px;font-weight:500;transition:transform .45s var(--spring),background .2s,color .2s}
  .dock a svg{width:21px;height:21px} .dock a:active{transform:scale(.92)}
  .dock a.on{background:var(--brand-l);color:var(--brand)}
  .main{padding-bottom:110px!important} #toasts{bottom:92px}
}
.themebtn{display:inline-grid;place-items:center;width:32px;height:32px;padding:0!important;border-radius:10px!important}
.themebtn svg{width:16px;height:16px}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}}
@media (prefers-reduced-transparency:reduce){.card,.side,.modal,.dd,.toc,.cardhead,.dock{backdrop-filter:none;-webkit-backdrop-filter:none}.dock{background:var(--pop)}}
.tiles{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

/* ---- оглавление карты: выезжающая панель справа ---- */
.cardlayout{grid-template-columns:minmax(0,1fr)!important}
.tocsel{display:none!important}
.tocfab{position:fixed;right:20px;bottom:28px;z-index:81;width:56px;height:56px;border-radius:19px;display:grid;place-items:center;border:1px solid var(--line);color:var(--brand);
  background:linear-gradient(160deg,var(--surface-2),var(--surface));backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);
  box-shadow:var(--inner),0 18px 40px -14px rgba(0,0,0,.55),0 0 28px -8px var(--glow-a);cursor:pointer;transition:transform .45s var(--spring),box-shadow .2s,background .2s,color .2s}
.tocfab svg{width:26px;height:26px}
.tocfab:hover{transform:translateY(-3px) scale(1.06)} .tocfab:active{transform:scale(.94);transition-duration:.08s}
.tocfab.on{background:var(--brand);color:var(--on-brand);box-shadow:0 18px 40px -14px var(--brand)}
.card.toc{position:fixed;display:flex;flex-direction:column;gap:2px;top:auto;right:20px;bottom:96px;width:min(360px,calc(100vw - 40px));max-height:min(70vh,640px);padding:10px;z-index:80;overflow:auto;
  transform:translateX(calc(100% + 40px)) scale(.96);opacity:0;visibility:hidden;pointer-events:none;transform-origin:100% 100%;
  background:linear-gradient(160deg,var(--surface-2),var(--surface));background-color:var(--pop);
  transition:transform .5s var(--spring),opacity .25s var(--ease-out),visibility 0s linear .5s;animation:none!important}
.card.toc.open{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform .5s var(--spring),opacity .25s var(--ease-out),visibility 0s}
.toc-h{font:500 11px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:8px 10px 10px}
.toc a{display:block;padding:9px 12px}
@media (max-width:900px){.tocfab{bottom:calc(98px + env(safe-area-inset-bottom,0px));right:16px;width:52px;height:52px}.card.toc{bottom:calc(164px + env(safe-area-inset-bottom,0px));right:16px;width:min(360px,calc(100vw - 32px));max-height:calc(100vh - 260px)}}
@media (prefers-reduced-motion:reduce){.card.toc{transition:none!important}}

/* ---- шапка клиента: ряд действий ---- */
.phead{display:grid;grid-template-columns:minmax(0,1fr);gap:16px 24px;align-items:start;margin-bottom:10px}
.phead .ptitle{min-width:0}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.actions .btn{min-height:46px;padding-block:0;border-radius:14px;justify-content:center;font-size:14px}
@media (min-width:1280px){.phead{grid-template-columns:minmax(0,1fr) auto}.actions{flex-wrap:nowrap;justify-content:flex-end;padding-top:4px}}
@media (max-width:700px){.actions{display:grid;grid-template-columns:1fr 1fr}.actions .btn{width:100%;padding-inline:10px}.actions>:last-child:nth-child(odd){grid-column:1/-1}}
