:root{
  --crimson:#960404; --dkcrimson:#320101; --teal:#039594; --dkteal:#013131;
  --bg:#faf6f5; --surface:#ffffff; --surface2:#f4eeee; --raised:#ffffff;
  --text:#2b2322; --muted:#8c7e7d; --line:#e9dede; --line2:#ddd0cf;
  --crit-bg:#fbe3e3; --crit-line:#efb9b9;
  --good:#0a8a89; --good-bg:#e2f2f2; --bad:#960404; --bad-bg:#fbe3e3; --na:#9a908f; --na-bg:#efeae9;
  --input-bg:#fffdf3; --accent:var(--crimson);
  --shadow:0 1px 2px rgba(50,1,1,.06), 0 8px 24px rgba(50,1,1,.05);
  --radius:12px; --radius-sm:8px;
  --font:'Aileron','Archivo',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#171110; --surface:#211917; --surface2:#2a201e; --raised:#251c1a;
    --text:#f1e9e7; --muted:#a89a98; --line:#392c2a; --line2:#4a3a37;
    --crimson:#e56b64; --teal:#3bb9b7; --dkcrimson:#f0b3af; --dkteal:#8fdad9;
    --crit-bg:#3a1d1c; --crit-line:#6b2f2c;
    --good:#3bb9b7; --good-bg:#153230; --bad:#e56b64; --bad-bg:#3a1d1c; --na:#8a7d7b; --na-bg:#2a201e;
    --input-bg:#2c2320; --accent:var(--crimson);
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 30px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --bg:#171110; --surface:#211917; --surface2:#2a201e; --raised:#251c1a;
  --text:#f1e9e7; --muted:#a89a98; --line:#392c2a; --line2:#4a3a37;
  --crimson:#e56b64; --teal:#3bb9b7; --dkcrimson:#f0b3af; --dkteal:#8fdad9;
  --crit-bg:#3a1d1c; --crit-line:#6b2f2c;
  --good:#3bb9b7; --good-bg:#153230; --bad:#e56b64; --bad-bg:#3a1d1c; --na:#8a7d7b; --na-bg:#2a201e;
  --input-bg:#2c2320; --accent:var(--crimson);
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-text-size-adjust:100%}
img{max-width:100%}
[hidden]{display:none!important}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit;font-size:14px}
h1,h2,h3{text-wrap:balance;margin:0}
::selection{background:rgba(150,4,4,.15)}

/* ============ ЛЕЙАУТ ============ */
.app{display:grid;grid-template-columns:280px 1fr;height:100%}
@media (max-width:860px){ .app{grid-template-columns:1fr} }

/* ---- Архивен панел ---- */
.rail{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.brand{padding:18px 18px 14px;border-bottom:1px solid var(--line);padding-top:calc(18px + env(safe-area-inset-top,0px))}
.brand .wm{font-weight:800;letter-spacing:.14em;font-size:15px;color:var(--crimson);line-height:1.1}
.brand .wm b{font-weight:800}
.brand .tag{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);margin-top:3px;font-weight:600}
.brand .prod{font-size:12px;color:var(--muted);margin-top:8px}
.rail-actions{padding:12px 14px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line)}
.newbtn{background:var(--crimson);color:#fff;border:none;border-radius:var(--radius-sm);padding:11px 12px;font-weight:700;font-size:13.5px;display:flex;align-items:center;justify-content:center;gap:8px}
.newbtn:hover{background:#7d0303}
:root[data-theme="dark"] .newbtn,:root:not([data-theme="light"]) .newbtn{color:#1a1110}
.rail-list{overflow:auto;flex:1;min-height:0;padding:8px}
.rail-empty{color:var(--muted);font-size:12.5px;padding:16px;text-align:center;line-height:1.6}
.acard{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 11px;margin-bottom:8px;background:var(--raised);cursor:pointer;transition:border-color .15s}
.acard:hover{border-color:var(--line2)}
.acard.sel{border-color:var(--crimson);box-shadow:inset 3px 0 0 var(--crimson)}
.acard .h{font-weight:700;font-size:13.5px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.acard .score{font-variant-numeric:tabular-nums;font-weight:800;font-size:13px}
.acard .meta{color:var(--muted);font-size:11.5px;margin-top:3px;display:flex;justify-content:space-between;gap:6px}
.rail-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px}
.storepill{font-size:10.5px;letter-spacing:.04em;padding:3px 8px;border-radius:20px;border:1px solid var(--line2);color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.storepill .dot{width:7px;height:7px;border-radius:50%;background:var(--na)}
.storepill.cloud .dot{background:var(--good)}
.storepill.cloud{color:var(--good);border-color:var(--good)}

/* ---- Работна зона ---- */
.main{overflow:auto;min-height:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 20px;padding-top:calc(10px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.topbar .live{display:flex;align-items:center;gap:14px;flex:1;min-width:180px}
.bignum{font-variant-numeric:tabular-nums;font-weight:800;font-size:26px;line-height:1}
.bignum small{font-size:13px;font-weight:600;color:var(--muted);margin-left:2px}
.band{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap}
.tb-actions{display:flex;gap:7px;flex-wrap:wrap}
.btn{background:var(--surface);border:1px solid var(--line2);color:var(--text);border-radius:var(--radius-sm);padding:8px 12px;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--crimson);color:var(--crimson)}
.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.primary:hover{background:#027d7c;color:#fff}
:root[data-theme="dark"] .btn.primary,:root:not([data-theme="light"]) .btn.primary{color:#12201f}
.btn.ghost{border-color:transparent;background:transparent}
.iconbtn{background:transparent;border:1px solid var(--line2);border-radius:var(--radius-sm);width:36px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px}
.iconbtn:hover{color:var(--crimson);border-color:var(--crimson)}

.wrap{max-width:1000px;width:100%;margin:0 auto;padding:20px;padding-block:20px}
@media (max-width:520px){ .wrap{padding-left:16px;padding-right:16px} .topbar{padding-left:16px;padding-right:16px} }

.welcome{max-width:640px;margin:8vh auto;padding:0 20px;text-align:center}
.welcome h1{font-size:26px;color:var(--crimson);margin-bottom:8px}
.welcome p{color:var(--muted);line-height:1.7;margin:12px 0}

/* ---- Секция карти ---- */
.section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden}
.sec-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}
.sec-head:hover{background:var(--surface2)}
.sec-title{flex:1;min-width:0}
.sec-title .t{font-weight:700;font-size:15px}
.sec-title .s{color:var(--muted);font-size:11.5px;margin-top:2px}
.sec-pct{font-variant-numeric:tabular-nums;font-weight:800;font-size:16px;min-width:52px;text-align:right}
.sec-w{font-size:10.5px;color:var(--muted);border:1px solid var(--line2);padding:2px 7px;border-radius:20px;white-space:nowrap}
.chev{color:var(--muted);transition:transform .2s;font-size:12px}
.section.open .chev{transform:rotate(90deg)}
.sec-body{display:none;border-top:1px solid var(--line)}
.section.open .sec-body{display:block}

.grp{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);background:var(--surface2);padding:9px 16px;border-bottom:1px solid var(--line)}
.item{padding:12px 16px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:26px 1fr auto;gap:10px 12px;align-items:start}
.item:last-child{border-bottom:none}
.item.crit{background:var(--crit-bg)}
.item .num{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;font-weight:600;padding-top:3px}
.item.crit .num{color:var(--crimson)}
.item .std{font-size:13.5px;line-height:1.5}
.item.crit .std{font-weight:600}
.critflag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:#fff;background:var(--crimson);padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}
:root[data-theme="dark"] .critflag,:root:not([data-theme="light"]) .critflag{color:#1a1110}
.controls{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.scoreset{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden}
.scoreset.rooms{display:grid}
.roomrow{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.roomrow .rl{font-size:11px;color:var(--muted);min-width:46px;text-align:right}
.sbtn{border:none;background:var(--surface);color:var(--muted);width:40px;height:34px;font-weight:800;font-size:14px;border-right:1px solid var(--line2)}
.sbtn:last-child{border-right:none}
.sbtn:hover{background:var(--surface2)}
.sbtn.on.yes{background:var(--good);color:#fff}
.sbtn.on.no{background:var(--bad);color:#fff}
.sbtn.on.na{background:var(--na);color:#fff}
:root[data-theme="dark"] .sbtn.on.yes,:root:not([data-theme="light"]) .sbtn.on.yes{color:#12201f}
:root[data-theme="dark"] .sbtn.on.no,:root:not([data-theme="light"]) .sbtn.on.no{color:#1a1110}
.cmt{grid-column:2 / -1}
.cmt textarea{width:100%;border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:8px 10px;resize:vertical;min-height:0;height:36px;line-height:1.4}
.cmt textarea:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:var(--teal)}
.cmt.need textarea{border-color:var(--bad);background:var(--bad-bg)}
.cmt .lbl{font-size:11px;color:var(--muted);margin-bottom:4px}
.cmt.need .lbl{color:var(--bad);font-weight:700}
.emo{padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface2)}
.emo .lbl{font-size:12.5px;font-weight:700;color:var(--dkteal)}
.emoset{display:inline-flex;gap:6px}
.ebtn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line2);background:var(--surface);font-weight:800;color:var(--muted)}
.ebtn.on{background:var(--teal);color:#fff;border-color:var(--teal)}
:root[data-theme="dark"] .ebtn.on,:root:not([data-theme="light"]) .ebtn.on{color:#12201f}
.emo .hint{font-size:11px;color:var(--muted);flex:1;min-width:120px}

/* ---- Мета / данни за одита ---- */
.metacard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}
.metacard h2{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--crimson);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.mgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:600px){ .mgrid{grid-template-columns:1fr} }
.field label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:4px}
.field input,.field select{width:100%;border:1px solid var(--line2);border-radius:8px;padding:9px 10px;background:var(--input-bg);color:var(--text)}
.field input:focus,.field select:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:var(--teal)}

/* ---- Резюме ---- */
.summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}
.sum-head{background:var(--crimson);color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
:root[data-theme="dark"] .sum-head,:root:not([data-theme="light"]) .sum-head{background:var(--dkcrimson);color:#1a1110}
.sum-head .t{font-size:15px;font-weight:800;letter-spacing:.02em}
.sum-head .o{font-variant-numeric:tabular-nums;font-weight:800;font-size:30px;line-height:1}
.sum-body{padding:16px 18px}
.sumtable{width:100%;border-collapse:collapse;font-size:13px}
.sumtable th,.sumtable td{text-align:left;padding:8px 8px;border-bottom:1px solid var(--line)}
.sumtable th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.sumtable td.n,.sumtable th.n{text-align:right;font-variant-numeric:tabular-nums}
.bar{height:8px;border-radius:6px;background:var(--surface2);overflow:hidden;min-width:70px}
.bar>i{display:block;height:100%;background:var(--teal);border-radius:6px}
.scale{margin-top:16px;display:grid;gap:6px}
.scale .row{display:flex;gap:10px;align-items:center;font-size:12.5px;padding:7px 10px;border-radius:8px;border:1px solid var(--line)}
.scale .row.active{border-color:var(--crimson);background:var(--crit-bg);font-weight:700}
.scale .k{font-weight:800;min-width:74px;font-variant-numeric:tabular-nums}
.trend{margin-top:14px;font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.trend .chip{padding:4px 10px;border-radius:20px;font-weight:700;font-variant-numeric:tabular-nums}
.trend .up{background:var(--good-bg);color:var(--good)}
.trend .down{background:var(--bad-bg);color:var(--bad)}
.narr{margin-top:18px;display:grid;gap:14px}
.narr h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--crimson)}
.narr .three{display:grid;gap:8px;margin-top:8px}
.narr textarea{width:100%;border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:8px 10px;resize:vertical;height:38px;line-height:1.4}
.narr textarea:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:var(--teal)}

/* ---- Governance / waivers ---- */
.gov{margin-top:6px}
.wtable{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.wtable th,.wtable td{border:1px solid var(--line2);padding:0}
.wtable th{background:var(--teal);color:#fff;padding:7px 9px;font-size:11px;text-align:left}
:root[data-theme="dark"] .wtable th,:root:not([data-theme="light"]) .wtable th{color:#12201f}
.wtable input{width:100%;border:none;background:var(--input-bg);padding:8px 9px;color:var(--text)}
.wtable input:focus{outline:2px solid var(--teal);outline-offset:-2px}
.signline{margin-top:16px;font-size:13px;color:var(--muted);display:flex;gap:24px;flex-wrap:wrap}

/* ---- Модал ---- */
.modal{position:fixed;inset:0;background:rgba(20,8,8,.5);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal .box{background:var(--surface);border-radius:var(--radius);max-width:640px;width:100%;max-height:86vh;overflow:auto;box-shadow:var(--shadow);border:1px solid var(--line)}
.modal .mh{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.modal .mh h2{font-size:16px;color:var(--crimson)}
.modal .mb{padding:20px}
.modal .mb h3{font-size:13px;color:var(--dkteal);margin:16px 0 6px}
.modal .mb p,.modal .mb li{font-size:13px;line-height:1.6;color:var(--text)}
.modal .mb ol,.modal .mb ul{padding-left:20px;margin:6px 0}
.modal .mb code{background:var(--surface2);padding:1px 6px;border-radius:5px;font-size:12px}
.cfgbox{background:var(--surface2);border:1px solid var(--line2);border-radius:8px;padding:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;white-space:pre-wrap;margin:8px 0}
.drawer-toggle{display:none}
@media (max-width:860px){
  .rail{position:fixed;z-index:40;width:280px;left:-300px;top:0;bottom:0;transition:left .22s;box-shadow:var(--shadow)}
  .rail.open{left:0}
  .drawer-toggle{display:inline-flex}
  .scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35}
}

/* ============ ПЕЧАТ ============ */
@media print{
  @page{margin:14mm}
  body{background:#fff;color:#000;font-size:11px}
  .app{display:block;height:auto}
  .rail,.topbar,.no-print{display:none!important}
  .main{overflow:visible}
  .wrap{max-width:none;padding:0}
  .section{box-shadow:none;border:1px solid #ccc;break-inside:avoid;margin-bottom:10px}
  .section .sec-body{display:block!important}
  .section .chev{display:none}
  .sec-head{cursor:default}
  .summary,.metacard{box-shadow:none;break-inside:avoid}
  .sbtn{border-color:#bbb!important}
  .sbtn:not(.on){opacity:.28}
  .ebtn:not(.on){opacity:.25}
  .item.crit{background:#faeaea!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sum-head{background:#960404!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-head{display:flex!important}
  .print-foot{display:flex!important;position:fixed;bottom:0;left:0;right:0;justify-content:space-between;font-size:8.5px;color:#666;border-top:1px solid #ccc;padding-top:4px;background:#fff}
  @page{margin:14mm 14mm 18mm}
  .logo-ctl{display:none}
  .sum-head,.wtable th,.grp{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .grp{color:#039594!important}
  .sec-title .t,.summary h3,.narr h3,.metacard h2{color:#960404!important}
  .cmt textarea,.narr textarea,.field input,.wtable input{border:none;background:transparent;color:#000}
  a[href]:after{content:""}
}
.print-head{display:none;padding:0 0 10px;border-bottom:2px solid #960404;margin-bottom:14px;align-items:center;justify-content:space-between;gap:16px}
.print-head .ph-l{display:flex;align-items:center;gap:12px}
.print-head .ph-l img{height:15mm;width:auto}
.print-head .pt{letter-spacing:.2em;text-transform:uppercase;color:#039594;font-size:9px;font-weight:700}
.print-head .pk{font-size:12px;font-weight:800;color:#320101;margin-top:2px}
.print-head .clientlogo{max-height:15mm;max-width:45mm;width:auto;object-fit:contain}
.print-foot{display:none}
.logo-ctl{grid-column:1/-1;margin-top:4px}
.logo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.logo-prev{max-height:48px;max-width:160px;object-fit:contain;border:1px solid var(--line2);border-radius:6px;padding:4px;background:#fff}
.logo-empty{font-size:12px;color:var(--muted);border:1px dashed var(--line2);border-radius:6px;padding:8px 12px}

/* ============ ДОБАВКИ ЗА PRODUCTION (вход, табло, админ) ============ */
.splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:60}
.spin{width:34px;height:34px;border:3px solid var(--line2);border-top-color:var(--crimson);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.muted{color:var(--muted);font-size:12px}

/* ---- Вход ---- */
.authwrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.authcard{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.authcard .brand{border-bottom:1px solid var(--line)}
.authbody{padding:22px 20px}
.authbody h1{font-size:18px;color:var(--crimson);margin-bottom:4px}
.authbody p.lead{color:var(--muted);font-size:13px;margin:0 0 16px;line-height:1.6}
.authbody .field{margin-bottom:12px}
.authbody .field input{font-size:15px;padding:11px 12px}
.authbody .submit{width:100%;margin-top:6px;padding:12px;font-size:14.5px}
.authbody .links{margin-top:14px;font-size:12.5px;display:flex;justify-content:space-between;gap:10px}
.authbody .links a,.linkbtn{color:var(--teal);background:none;border:none;padding:0;font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:none}
.authbody .links a:hover,.linkbtn:hover{text-decoration:underline}
.authfoot{padding:12px 20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);margin:0;line-height:1.5}
.err{background:var(--bad-bg);color:var(--bad);border:1px solid var(--crit-line);border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}
.ok{background:var(--good-bg);color:var(--good);border:1px solid var(--good);border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}
.pwrules{list-style:none;padding:0;margin:6px 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;font-size:11.5px;color:var(--muted)}
.pwrules li::before{content:"○ ";color:var(--muted)}
.pwrules li.ok{background:none;border:none;padding:0;margin:0;color:var(--good)}
.pwrules li.ok::before{content:"● ";color:var(--good)}
.otp{letter-spacing:.35em;font-size:22px!important;text-align:center;font-variant-numeric:tabular-nums}
.qr{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:10px 0}
.qr img{width:168px;height:168px;border:1px solid var(--line2);border-radius:8px;background:#fff;padding:6px}
.secret{font-family:ui-monospace,Menlo,monospace;font-size:12px;word-break:break-all;background:var(--surface2);padding:8px 10px;border-radius:8px}

/* ---- Рейл ---- */
.row2{display:flex;gap:6px;flex-wrap:wrap}
.row2>*{flex:1}
.btn.sm{font-size:11.5px;padding:5px 8px}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.danger:hover{background:var(--bad-bg)}
.btn:disabled,.iconbtn:disabled{opacity:.45;cursor:not-allowed}
.rail-foot{flex-direction:column;gap:8px}
.userpill{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--line2);border-radius:var(--radius-sm);padding:7px 9px;width:100%;text-align:left;color:var(--text)}
.userpill:hover{border-color:var(--crimson)}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.uname{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uname small{display:block;font-weight:500;color:var(--muted);font-size:10.5px}
.acard .st{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;background:var(--na-bg);color:var(--na)}
.acard .st.final{background:var(--good-bg);color:var(--good)}

/* ---- Табло ---- */
.dash-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.dash-head h1{font-size:22px;color:var(--crimson);flex:1}
.search{border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:9px 12px;min-width:220px}
.search:focus{outline:2px solid var(--teal);outline-offset:-1px}
.dtable{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.dtable th,.dtable td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.dtable th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface2)}
.dtable tr.r{cursor:pointer}
.dtable tr.r:hover td{background:var(--surface2)}
.dtable td.n{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}
.dtable .h{font-weight:700}
.dwrap{overflow-x:auto;border-radius:var(--radius)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}
.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.stat .v{font-size:22px;font-weight:800;margin-top:3px;font-variant-numeric:tabular-nums}
.empty{padding:40px 20px;text-align:center;color:var(--muted);line-height:1.7}

/* ---- Редактор: състояния ---- */
.savestate{font-size:11px;color:var(--muted);white-space:nowrap}
.savestate.saving::before{content:"● ";color:#b9791a}
.savestate.saved::before{content:"● ";color:var(--good)}
.savestate.error{color:var(--bad)}
.statuschip{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:20px;background:var(--na-bg);color:var(--na);align-self:center}
.statuschip.final{background:var(--good-bg);color:var(--good)}
.editor.ro .sbtn,.editor.ro .ebtn{pointer-events:none}
.editor.ro .cmt textarea,.editor.ro .narr textarea,.editor.ro .field input,.editor.ro .field select,.editor.ro .wtable input{background:var(--surface2);pointer-events:none}
.robanner{background:var(--good-bg);color:var(--good);border:1px solid var(--good);border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:14px}
.roomctl{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface2);align-items:center;font-size:12px;color:var(--muted)}
.byline{font-size:11.5px;color:var(--muted);margin:-8px 0 14px}

/* ---- Модални форми ---- */
.modal .box.wide{max-width:900px}
.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.modal .field{margin-bottom:12px}
.modal .mb p{margin:6px 0}
.utable{width:100%;border-collapse:collapse;font-size:12.5px}
.utable th,.utable td{padding:8px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.utable th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.utable select{border:1px solid var(--line2);border-radius:6px;padding:4px 6px;background:var(--input-bg);color:var(--text);font-size:12px}
.utable .off td{opacity:.55}
.tag2{font-size:10px;font-weight:800;padding:1px 6px;border-radius:4px;background:var(--surface2);color:var(--muted);white-space:nowrap}
.tag2.on{background:var(--good-bg);color:var(--good)}
.settingrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.settingrow:last-child{border-bottom:none}
.settingrow .d{font-size:12px;color:var(--muted);margin-top:2px}
.logtable{font-size:11.5px;width:100%;border-collapse:collapse}
.logtable td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.logtable td:first-child{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}

/* ---- Toast ---- */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dkcrimson);color:#fff;padding:10px 16px;border-radius:10px;z-index:99;font-size:13px;box-shadow:var(--shadow);max-width:90vw;opacity:0;transition:.25s;pointer-events:none}
:root[data-theme="dark"] .toast,:root:not([data-theme="light"]) .toast{color:#1a1110}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--bad);color:#fff}
.toast.good{background:var(--good);color:#fff}

@media print{
  .authwrap,.splash,.toast,.robanner,.roomctl,#dashboard,.byline .np{display:none!important}
  .editor{display:block!important}
}

/* ============ АНАЛИЗИ / KPI ============ */
.kpi-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.kpi-head h1{font-size:22px;color:var(--crimson);flex:1}
.kpi-head select,.kpi-head label{font-size:12.5px}
.kpi-head select{border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:8px 10px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow)}
.card h2{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--crimson);margin-bottom:12px}
.card .sub{font-size:12px;color:var(--muted);margin:-8px 0 12px}
.chart{width:100%;height:auto;display:block}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.bars{display:grid;gap:8px}
.brow{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:10px;align-items:center;font-size:12.5px}
.blabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bbars{display:grid;gap:3px}
.bbar{display:flex;align-items:center;gap:8px;height:14px}
.bbar i{display:block;height:100%;border-radius:4px;min-width:2px;transition:width .3s}
.bbar span{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:34px}
.chip{padding:2px 8px;border-radius:20px;font-weight:700;font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.chip.up{background:var(--good-bg);color:var(--good)}
.chip.down{background:var(--bad-bg);color:var(--bad)}
.chip.flat,.chip.na{background:var(--surface2);color:var(--muted)}
.stat .v.up{color:var(--good)}.stat .v.down{color:var(--bad)}
.stat .d{font-size:11px;color:var(--muted);margin-top:2px}
.cmp{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.cmp th,.cmp td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
.cmp th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cmp td.n,.cmp th.n{text-align:right;font-variant-numeric:tabular-nums}
.cmp td.n b{font-weight:800}
.heat td.h{font-variant-numeric:tabular-nums;text-align:center;font-weight:700;border-radius:4px}
.heat td.h.g{background:var(--good-bg);color:var(--good)}.heat td.h.w{background:#f6ecd9;color:#9a6410}.heat td.h.b{background:var(--bad-bg);color:var(--bad)}
.clientbanner{background:var(--good-bg);border:1px solid var(--good);color:var(--dkteal);border-radius:8px;padding:10px 14px;font-size:12.5px;margin-bottom:14px}
.hotelchips{display:flex;gap:5px;flex-wrap:wrap}
.hotelchips .tag2{cursor:default}
.field .hint{font-size:11px;color:var(--muted);margin-top:3px}

/* ---- Печат: пълен / кратък (само пропуски) ---- */
.print-meta{display:none}
@media print{
  .print-meta{display:block;font-size:11px;color:#444;margin:-8px 0 12px}
  .cmt textarea:placeholder-shown{display:none}
  body.print-short .item:not(.zero){display:none!important}
  body.print-short .section:not(.haszero){display:none!important}
  body.print-short .emo,body.print-short .grp:not(.haszero){display:none!important}
  body.print-short .narr textarea:placeholder-shown{display:none}
  body.print-short .item.zero{background:#faeaea!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.print-short .sbtn.on.yes,body.print-short .sbtn.na{display:none}
  .card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  #kpi .kpi-head select,#kpi .kpi-head label,#kpi .kpi-head button{display:none}
  .legend{color:#444}
}

/* ============ ХОТЕЛИ: карти, страница с табове, сравнение ============ */
.hcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.hcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);cursor:pointer;display:grid;gap:10px;transition:border-color .15s}
.hcard:hover{border-color:var(--crimson)}
.hc-top{display:flex;gap:10px;align-items:center}
.hc-top img{height:34px;max-width:90px;object-fit:contain}
.hc-ph{width:34px;height:34px;border-radius:8px;background:var(--surface2);color:var(--crimson);font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.hc-name b{font-size:14px}
.hc-score{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}
.hc-score small{font-size:11px;font-weight:600;color:var(--muted);margin-left:8px}
.hc-foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tag2.over{background:var(--bad-bg);color:var(--bad)}
.hhead{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.hhead img{height:44px;max-width:120px;object-fit:contain}
.hh-main{flex:1;min-width:200px}
.hh-main h1{font-size:22px;color:var(--crimson)}
.hh-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px;font-size:12.5px}
.hh-plan select{border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:7px 10px;display:block;margin-top:3px}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;margin-bottom:12px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.tab{flex:none;border:1px solid var(--line2);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 11px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:92px;font-family:inherit}
.tab .td{font-size:11.5px;color:var(--muted);font-weight:600}
.tab .ts{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.tab.sel{border-color:var(--crimson);box-shadow:inset 0 -3px 0 var(--crimson);background:var(--surface2)}
.tab.draft{border-style:dashed}
.tab.fixed{justify-content:center;font-weight:700;font-size:12.5px;min-width:auto}
.tabsep{width:1px;background:var(--line2);margin:2px 4px;flex:none}
.review .rv-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:12px}
.rv-score{font-size:28px;font-weight:800;margin:4px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rv-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.rv-cols h3,.review h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--crimson);margin-bottom:6px}
.rv-cols ol{padding-left:18px;margin:0;font-size:13px}
.zlist{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:12.5px}
.zlist li{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.zlist li.crit{background:var(--crit-bg);border-color:var(--crit-line)}
.zlist.ok li{background:var(--good-bg);border-color:var(--good)}
.zlist .zc{font-size:11.5px;color:var(--muted);margin-top:3px}
.cmp-pick{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.cmp-pick .field{flex:1;min-width:180px;margin:0}
.cmp-pick select{width:100%;border:1px solid var(--line2);border-radius:8px;background:var(--input-bg);color:var(--text);padding:9px 10px}
.cmp-pick .vs{color:var(--muted);font-size:12px;padding-bottom:12px}
@media print{ .tabs,.hh-plan,.cmp-pick,#hotel .actions{display:none!important} .hcard{break-inside:avoid} }
