/* Правки — доска ревью. Дизайн-язык общий с реестром (reestr.369ai.ru): те же токены,
   левый rail с проектами, светлая/тёмная тема. */

:root{
  --bg:#EEF0F3; --panel:#FFFFFF; --surface:#FFFFFF; --surface-2:#F3F5F8; --surface-3:#E9ECF1;
  --ink:#191C22; --ink-soft:#565D6A; --ink-faint:#868D9B; --ink-ghost:#B6BCC7;
  --line:#E4E7EC; --line-soft:#EEF0F4;
  --dark:#16181D; --dark-ink:#FFFFFF;
  --gold:#DC8A2C; --gold-soft:#F6E5C6;
  --ok:#1F7A3D; --bad:#C0392B; --warn:#B8791B; --neutral:#7A8290;
  --shadow:0 1px 2px rgba(20,24,40,.04), 0 4px 16px rgba(20,24,40,.06);
  --shadow-lift:0 4px 12px rgba(20,24,40,.08), 0 18px 40px rgba(20,24,40,.14);
  --fs-1:11px; --fs-2:12px; --fs-3:13px; --fs-4:15px; --fs-5:17px; --fs-6:20px; --fs-7:26px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --r-1:6px; --r-2:8px; --r-3:12px; --r-4:18px; --r-pill:999px;
  --h-1:28px; --h-2:32px; --h-3:38px; --h-4:46px;
  --rail-w:246px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0B0D11; --panel:#111318; --surface:#15181E; --surface-2:#1B1F27; --surface-3:#232833;
  --ink:#ECEEF3; --ink-soft:#9BA2B1; --ink-faint:#6A7181; --ink-ghost:#434A58;
  --line:#242A34; --line-soft:#1C212A;
  --dark:#ECEEF3; --dark-ink:#15181E; --gold:#EEAA4D; --gold-soft:#392B12;
  --ok:#4CAF6E; --bad:#E8705A; --warn:#E0A94A; --neutral:#8B93A2;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 20px rgba(0,0,0,.45);
  --shadow-lift:0 4px 12px rgba(0,0,0,.5), 0 22px 52px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  --bg:#0B0D11; --panel:#111318; --surface:#15181E; --surface-2:#1B1F27; --surface-3:#232833;
  --ink:#ECEEF3; --ink-soft:#9BA2B1; --ink-faint:#6A7181; --ink-ghost:#434A58;
  --line:#242A34; --line-soft:#1C212A;
  --dark:#ECEEF3; --dark-ink:#15181E; --gold:#EEAA4D; --gold-soft:#392B12;
  --ok:#4CAF6E; --bad:#E8705A; --warn:#E0A94A; --neutral:#8B93A2;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 20px rgba(0,0,0,.45);
  --shadow-lift:0 4px 12px rgba(0,0,0,.5), 0 22px 52px rgba(0,0,0,.6);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; background:var(--bg); color:var(--ink);
  font:var(--fs-4)/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font-family:inherit}
.muted{color:var(--ink-faint)}
.app{display:flex; flex-direction:column; min-height:100vh}

/* ───────── верхняя панель ───────── */
.topbar{display:flex; align-items:center; gap:12px; padding:11px 22px; background:var(--panel);
  border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; flex:0 0 auto}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:-.01em; font-size:16px}
.brand .mark{width:27px; height:27px; border-radius:var(--r-2); flex:0 0 auto; background:var(--dark);
  color:var(--dark-ink); display:grid; place-items:center; font-size:14px}
.brand .bt{display:flex; flex-direction:column; line-height:1.15}
.brand small{color:var(--ink-faint); font-weight:500; font-size:var(--fs-2)}
.tbsp{flex:1 1 auto}
.iconbtn{width:var(--h-3); height:var(--h-3); border-radius:var(--r-2); border:1px solid var(--line);
  background:var(--surface-2); color:var(--ink-soft); cursor:pointer; display:grid; place-items:center;
  transition:.15s; flex:0 0 auto; font-size:15px}
.iconbtn:hover{color:var(--ink); border-color:var(--ink-faint)}
.burger{display:none}
.waitpill{display:inline-flex; align-items:center; gap:8px; height:var(--h-3); padding:0 14px;
  border-radius:var(--r-pill); background:var(--gold-soft); border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);
  color:var(--gold); font-size:var(--fs-3); font-weight:700}
.waitpill b{background:var(--gold); color:#fff; border-radius:var(--r-pill); padding:1px 8px; font-size:var(--fs-2)}
.waitpill .wp-dot{width:7px; height:7px; border-radius:50%; background:var(--gold); animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 55%,transparent)}50%{box-shadow:0 0 0 6px transparent}}

/* ───────── каркас: боковая панель + контент ───────── */
.main{display:flex; flex:1 1 auto; min-height:0; position:relative}
.scrim{position:fixed; inset:0; background:rgba(10,12,18,.45); z-index:44; opacity:0; pointer-events:none; transition:.18s}
.scrim.show{opacity:1; pointer-events:auto}

.rail{width:var(--rail-w); flex:0 0 auto; background:var(--panel); border-right:1px solid var(--line);
  padding:14px 12px 20px; display:flex; flex-direction:column; gap:2px; z-index:45;
  position:sticky; top:57px; height:calc(100vh - 57px); overflow-y:auto}
.rail .ws{display:flex; align-items:center; gap:11px; padding:6px 10px 13px; margin-bottom:6px;
  border-bottom:1px solid var(--line-soft)}
.rail .ws .ava{width:36px; height:36px; border-radius:var(--r-3); flex:0 0 auto; display:grid; place-items:center;
  background:var(--dark); color:var(--dark-ink); font-size:16px}
.rail .ws .wt{font-weight:700; font-size:14px}
.rail .ws .wsub{font-size:var(--fs-2); color:var(--ink-faint); margin-top:1px}
.rail h4{margin:13px 10px 6px; font-size:var(--fs-1); text-transform:uppercase; letter-spacing:.08em;
  color:var(--ink-faint); font-weight:700}
.navitem,.projitem,.railtag{display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  border:0; background:transparent; color:var(--ink-soft); cursor:pointer; transition:.12s; position:relative}
.navitem{padding:9px 10px; border-radius:var(--r-2); font-size:14px; font-weight:500}
.navitem:hover{background:var(--surface-2); color:var(--ink)}
.navitem.on{background:var(--surface-2); color:var(--ink); font-weight:600}
.navitem .ic{width:16px; text-align:center; flex:0 0 auto; color:var(--ink-faint)}
.navitem.on .ic{color:var(--gold)}
.navitem.act .ic{color:var(--gold)}
.projitem{padding:9px 10px; border-radius:var(--r-2); font-size:14px; font-weight:600}
.projitem:hover,.projitem.on{background:var(--surface-2); color:var(--ink)}
.projitem.on::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px;
  border-radius:var(--r-1); background:var(--pc,var(--gold))}
.projitem .swatch{width:11px; height:11px; border-radius:50%; flex:0 0 auto; background:var(--pc,var(--gold))}
.projitem .pn{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.navitem .n,.projitem .n,.railtag .n{margin-left:auto; font-size:var(--fs-2); color:var(--ink-faint);
  font-variant-numeric:tabular-nums; flex:0 0 auto}
.n.hot{background:color-mix(in srgb,var(--bad) 14%,transparent); color:var(--bad); font-weight:700;
  border-radius:var(--r-pill); padding:1px 8px}
.n.zero{opacity:.5}
.railtag{padding:7px 10px; border-radius:var(--r-2); font-size:var(--fs-3); font-weight:500}
.railtag:hover{background:var(--surface-2); color:var(--ink)}
.railtag.on{font-weight:700}
.railtag.done.on{background:color-mix(in srgb,var(--ok) 12%,transparent); color:var(--ok)}
.railtag.not_done.on{background:color-mix(in srgb,var(--bad) 12%,transparent); color:var(--bad)}
.railtag.unclear.on{background:var(--surface-3); color:var(--ink)}
.railtag .hash{opacity:.85; font-size:12px}
.railfoot{margin-top:auto; padding:14px 10px 0; font-size:var(--fs-1); color:var(--ink-ghost); line-height:1.4}

.center{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; padding:18px 26px 40px; max-width:1180px}

/* ───────── шапка контента ───────── */
.cbar{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px}
.crumb{display:flex; align-items:center; gap:9px; font-size:var(--fs-6); font-weight:700; letter-spacing:-.015em}
.crumb .cdot{width:11px; height:11px; border-radius:50%; flex:0 0 auto; background:var(--pc,var(--gold))}
.cmeta{color:var(--ink-faint); font-size:var(--fs-3); font-variant-numeric:tabular-nums}

.searchrow{display:flex; gap:8px; align-items:center; margin-bottom:12px}
.searchbox{flex:1 1 auto; position:relative; display:flex; align-items:center; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r-3); transition:.14s}
.searchbox:focus-within{border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft)}
.searchbox .si{position:absolute; left:14px; color:var(--ink-faint); font-size:14px}
.searchbox input{flex:1 1 auto; border:0; background:transparent; outline:none; font-size:var(--fs-4);
  color:var(--ink); padding:11px 12px 11px 40px; min-width:0}
.searchbox input::placeholder{color:var(--ink-faint)}
.searchclear{color:var(--ink-faint); font-size:var(--fs-3); padding:0 6px}
.searchclear:hover{color:var(--ink)}

/* фильтр по состоянию (дубль rail — для быстрого клика в контенте) */
.catbar{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px}
.catbar .cf{display:inline-flex; align-items:center; gap:7px; height:var(--h-2); padding:0 13px;
  border-radius:var(--r-2); font-size:var(--fs-3); font-weight:600; background:var(--surface);
  border:1px solid var(--line); color:var(--ink-soft); transition:.13s}
.catbar .cf:hover{color:var(--ink); border-color:var(--ink-faint)}
.catbar .cf .cnt{font-size:var(--fs-1); border-radius:var(--r-pill); padding:1px 7px; min-width:18px;
  text-align:center; background:var(--surface-2); color:var(--ink-faint); font-variant-numeric:tabular-nums}
.catbar .cf.active{color:var(--ink); border-color:var(--ink-faint); box-shadow:var(--shadow)}
.catbar .cf.done.active{color:var(--ok); border-color:color-mix(in srgb,var(--ok) 45%,var(--line));
  background:color-mix(in srgb,var(--ok) 8%,var(--surface))}
.catbar .cf.notdone.active{color:var(--bad); border-color:color-mix(in srgb,var(--bad) 45%,var(--line));
  background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
.catbar .cf.unclear.active{color:var(--ink); background:var(--surface-3)}

/* ───────── список правок ───────── */
.cat-section{margin:22px 0 10px; display:flex; align-items:center; gap:9px}
.cat-section h2{margin:0; font-size:var(--fs-3); font-weight:700; color:var(--ink); text-transform:uppercase; letter-spacing:.05em}
.cat-section .cnt{font-size:var(--fs-1); color:var(--ink-faint); background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-pill); padding:1px 8px; font-variant-numeric:tabular-nums}
.cat-section .rule{flex:1; height:1px; background:var(--line)}

.cards{display:flex; flex-direction:column; gap:10px}
.card{display:flex; gap:16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-3);
  padding:14px; box-shadow:var(--shadow); position:relative; overflow:hidden;
  transition:transform .14s, box-shadow .14s, border-color .14s}
.card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--neutral)}
.card:hover{transform:translateY(-2px); box-shadow:var(--shadow-lift); border-color:var(--ink-ghost)}
.card.cat-done::before{background:var(--ok)}
.card.cat-notdone::before{background:var(--bad)}
.card.cat-unclear::before{background:var(--ink-ghost)}
.card .body{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:6px}

/* мини «было → стало» */
.ba-mini{display:flex; gap:7px; flex-shrink:0; align-items:center; padding-left:4px}
.ba-mini figure{margin:0; width:104px}
.ba-mini img,.ba-mini .noshot{width:104px; height:66px; border-radius:var(--r-2); object-fit:cover;
  border:1px solid var(--line); background:var(--surface-2); display:flex; align-items:center;
  justify-content:center; color:var(--ink-ghost); font-size:20px}
.ba-mini figcaption{font-size:9.5px; font-weight:700; letter-spacing:.06em; color:var(--ink-ghost);
  margin-top:4px; text-align:center}
.ba-mini .arrow{color:var(--ink-ghost); font-size:14px}

.line1{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.badge{--pa:var(--gold); font-size:var(--fs-1); font-weight:700; color:#fff; background:var(--pa);
  border-radius:var(--r-1); padding:2px 8px; letter-spacing:.01em}
.num{font-size:var(--fs-2); color:var(--ink-ghost); font-variant-numeric:tabular-nums}
.comment{font-size:var(--fs-4); color:var(--ink); line-height:1.4; overflow:hidden; text-overflow:ellipsis;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical}
.line2{font-size:var(--fs-2); color:var(--ink-faint); display:flex; gap:7px; flex-wrap:wrap; align-items:center}
.dot{opacity:.5}
.empty{color:var(--ink-faint); text-align:center; padding:56px 20px; background:var(--surface);
  border:1px dashed var(--line); border-radius:var(--r-3); line-height:1.6}

/* категория приёмки */
.cat{display:inline-flex; align-items:center; gap:5px; font-size:var(--fs-1); font-weight:700;
  border-radius:var(--r-1); padding:2px 9px; border:1px solid transparent}
.cat .ic{font-size:11px; line-height:1}
.cat-done.cat,.cat.cat-done{background:color-mix(in srgb,var(--ok) 12%,transparent);
  border-color:color-mix(in srgb,var(--ok) 30%,transparent); color:var(--ok)}
.cat.cat-notdone{background:color-mix(in srgb,var(--bad) 12%,transparent);
  border-color:color-mix(in srgb,var(--bad) 30%,transparent); color:var(--bad)}
.cat.cat-unclear{background:var(--surface-2); border-color:var(--line); color:var(--ink-soft)}

/* строка вердикта бота */
.verdict{font-size:var(--fs-2); color:var(--ink-faint); display:flex; align-items:center; gap:9px; flex-wrap:wrap}
.conf{display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-1); color:var(--ink-faint);
  font-variant-numeric:tabular-nums}
.conf-bar{width:52px; height:5px; border-radius:3px; background:var(--surface-3); overflow:hidden}
.conf-bar>i{display:block; height:100%; border-radius:3px; background:var(--neutral)}
.cat-done .conf-bar>i{background:var(--ok)}
.cat-notdone .conf-bar>i{background:var(--bad)}

/* состояние в конвейере */
.work{display:inline-flex; align-items:center; gap:5px; font-size:var(--fs-1); font-weight:600;
  padding:3px 9px; border-radius:var(--r-pill); background:var(--surface-2); border:1px solid var(--line);
  color:var(--ink-soft)}
.work-act{background:var(--gold-soft); border-color:color-mix(in srgb,var(--gold) 35%,transparent);
  color:var(--gold); animation:pulse 2.2s ease-in-out infinite}
.act-btn{display:inline-flex; align-items:center; height:var(--h-2); padding:0 14px; border-radius:var(--r-2);
  background:var(--ok); color:#fff; font-weight:700; font-size:var(--fs-3); align-self:flex-start}
.act-btn:hover{filter:brightness(1.08)}
.disputed-flag{background:var(--gold-soft); border:1px solid color-mix(in srgb,var(--gold) 30%,transparent);
  color:var(--gold); border-radius:var(--r-1); font-size:var(--fs-1); font-weight:700; padding:2px 8px;
  display:inline-flex; gap:5px; align-items:center}

/* ───────── страница правки / задачи ───────── */
.back{display:inline-block; margin-bottom:14px; color:var(--ink-faint); font-size:var(--fs-3)}
.back:hover{color:var(--ink)}
.detail{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-3); padding:24px;
  box-shadow:var(--shadow); max-width:900px}
.detail-head{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:12px}
.comment-big{font-size:var(--fs-7); line-height:1.3; letter-spacing:-.015em; color:var(--ink); margin:4px 0 10px}
.who{font-size:var(--fs-3); color:var(--ink-faint); margin-bottom:16px}
.detail-shot{max-width:100%; border:1px solid var(--line); border-radius:var(--r-3); margin-bottom:14px; display:block}
.section-title{font-size:var(--fs-1); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-faint);
  font-weight:700; margin:22px 0 9px}
.meta-grid{display:flex; flex-direction:column; gap:7px; font-size:var(--fs-3); margin-bottom:14px; color:var(--ink-soft)}
.meta-grid .k{display:inline-block; min-width:130px; color:var(--ink-faint)}
.meta-grid a{color:var(--gold); text-decoration:underline; text-underline-offset:2px}
.meta-grid code,.html-block pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:var(--fs-2)}
.html-block{margin-bottom:16px}
.html-block summary{cursor:pointer; color:var(--ink-faint); font-size:var(--fs-3)}
.html-block pre{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-2); padding:10px;
  overflow:auto; max-height:220px; white-space:pre-wrap; word-break:break-all; color:var(--ink-soft)}

.chip{font-size:var(--fs-1); border-radius:var(--r-1); padding:2px 8px; border:1px solid var(--line);
  background:var(--surface-2); color:var(--ink-soft); font-weight:600}
.chip.new{background:color-mix(in srgb,#3B82F6 12%,transparent); border-color:color-mix(in srgb,#3B82F6 28%,transparent); color:#3B82F6}
.chip.work{background:var(--gold-soft); border-color:color-mix(in srgb,var(--gold) 28%,transparent); color:var(--gold)}
.chip.q{background:color-mix(in srgb,#8B5CF6 12%,transparent); border-color:color-mix(in srgb,#8B5CF6 28%,transparent); color:#8B5CF6}
.chip.done{background:color-mix(in srgb,var(--ok) 12%,transparent); border-color:color-mix(in srgb,var(--ok) 28%,transparent); color:var(--ok)}
.chip.reject{background:color-mix(in srgb,var(--bad) 12%,transparent); border-color:color-mix(in srgb,var(--bad) 28%,transparent); color:var(--bad)}

.status-row{display:flex; flex-wrap:wrap; gap:8px}
.st-btn{cursor:pointer; font-size:var(--fs-3); font-weight:600; border-radius:var(--r-2); height:var(--h-3);
  padding:0 14px; border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); transition:.13s}
.st-btn:hover{color:var(--ink); border-color:var(--ink-faint)}
.st-btn.cur{border-color:var(--ink); color:var(--ink); font-weight:700; box-shadow:var(--shadow)}
.st-btn.new{color:#3B82F6} .st-btn.work{color:var(--gold)} .st-btn.q{color:#8B5CF6}
.st-btn.done{color:var(--ok); border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}
.st-btn.reject{color:var(--bad); border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.st-btn[disabled]{opacity:.45; cursor:not-allowed}

.verdict-panel{border:1px solid var(--line); border-radius:var(--r-3); padding:14px 16px; background:var(--surface-2)}
.verdict-panel.cat-done{background:color-mix(in srgb,var(--ok) 7%,var(--surface)); border-color:color-mix(in srgb,var(--ok) 25%,var(--line))}
.verdict-panel.cat-notdone{background:color-mix(in srgb,var(--bad) 7%,var(--surface)); border-color:color-mix(in srgb,var(--bad) 25%,var(--line))}
.verdict-panel.cat-unclear{background:var(--surface-2)}
.verdict-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}

.thread{display:flex; flex-direction:column; gap:9px; margin-bottom:14px}
.msg{border:1px solid var(--line); border-radius:var(--r-3); padding:10px 13px; background:var(--surface-2)}
.msg.reviewer{background:var(--gold-soft); border-color:color-mix(in srgb,var(--gold) 25%,transparent)}
.msg.author{background:color-mix(in srgb,#3B82F6 9%,var(--surface)); border-color:color-mix(in srgb,#3B82F6 22%,var(--line))}
.msg.ai{background:color-mix(in srgb,#8B5CF6 9%,var(--surface)); border-color:color-mix(in srgb,#8B5CF6 22%,var(--line))}
.msg-head{font-size:var(--fs-2); font-weight:700; margin-bottom:3px; color:var(--ink)}
.msg-body{font-size:var(--fs-3); white-space:pre-wrap; color:var(--ink-soft)}
.ask{display:flex; flex-direction:column; gap:9px}
.ask textarea{width:100%; min-height:76px; padding:11px 13px; border:1px solid var(--line); border-radius:var(--r-3);
  font:inherit; font-size:var(--fs-3); background:var(--surface); color:var(--ink); resize:vertical; outline:none}
.ask textarea:focus{border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft)}
.ask button,.login-card button{align-self:flex-start; height:var(--h-3); padding:0 18px; border:0;
  border-radius:var(--r-2); background:var(--dark); color:var(--dark-ink); font-size:var(--fs-3);
  font-weight:700; cursor:pointer}
.ask button:hover,.login-card button:hover{opacity:.9}

.plan-box{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-3); padding:13px 15px;
  font:var(--fs-3)/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word;
  max-height:380px; overflow:auto; margin:0; color:var(--ink-soft)}
.ba-grid{display:grid; grid-template-columns:1fr; gap:14px}
@media(min-width:760px){.ba-grid{grid-template-columns:1fr 1fr}}
.ba-grid .detail-shot{width:100%; height:300px; object-fit:contain; background:var(--surface-2); margin:0}
.ba-cap{font-size:var(--fs-1); font-weight:700; letter-spacing:.06em; margin-bottom:7px}
.ba-cap.was{color:var(--ink-faint)} .ba-cap.now{color:var(--ok)}
.diff-box{background:#0F1218; color:#D6D3CC; border:1px solid var(--line); border-radius:var(--r-3); padding:13px;
  font:var(--fs-2)/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word;
  max-height:380px; overflow:auto; margin:0}

/* ───────── логин ───────── */
.login-wrap{flex:1 1 auto; min-height:calc(100vh - 160px); display:flex; align-items:center; justify-content:center}
.login-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-4); padding:30px;
  width:min(370px,92vw); display:flex; flex-direction:column; gap:13px; box-shadow:var(--shadow-lift)}
.login-card h1{margin:0; font-size:var(--fs-6); letter-spacing:-.02em}
.login-card input{height:var(--h-4); padding:0 14px; border:1px solid var(--line); border-radius:var(--r-2);
  font-size:var(--fs-4); background:var(--surface); color:var(--ink); outline:none}
.login-card input:focus{border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft)}
.login-card button{align-self:stretch; text-align:center}
.err{background:color-mix(in srgb,var(--bad) 12%,transparent); border:1px solid color-mix(in srgb,var(--bad) 30%,transparent);
  color:var(--bad); padding:9px 11px; border-radius:var(--r-2); font-size:var(--fs-3)}

/* алиасы старых имён (страница «было→стало» из Telegram) */
:root{--card:var(--surface); --fg:var(--ink); --muted:var(--ink-faint); --accent:var(--gold); --radius:var(--r-3)}

/* ───────── адаптив ───────── */
@media (max-width:980px){
  .center{padding:16px 18px 32px}
  .rail{position:fixed; left:0; top:57px; bottom:0; height:auto; transform:translateX(-102%);
    transition:transform .2s ease; box-shadow:var(--shadow-lift)}
  .rail.open{transform:none}
  .burger{display:grid}
}
@media (max-width:640px){
  .topbar{padding:10px 14px; gap:9px}
  .brand small{display:none}
  .waitpill{padding:0 10px; gap:6px}
  .waitpill .wp-txt{display:none}
  .center{padding:14px 14px 28px}
  .card{flex-direction:column; gap:12px}
  .ba-mini{padding-left:0}
  .ba-mini figure,.ba-mini img,.ba-mini .noshot{width:calc(50vw - 46px)}
  .comment{-webkit-line-clamp:4}
  .comment-big{font-size:var(--fs-6)}
  .detail{padding:18px}
}
