/* Центр управления — визуальная система в духе Apple: системный шрифт, воздух, карточки без рамок,
   полупрозрачная шапка, кнопки-«таблетки», сдержанная палитра (синий акцент + статусные цвета). */
:root{
  --bg:#F5F5F7; --surface:#FFFFFF; --surface-2:#F5F5F7; --surface-3:#EDEDF0;
  --ink:#1D1D1F; --ink-2:#424245; --muted:#86868B;
  --line:rgba(0,0,0,.10); --line-2:rgba(0,0,0,.06);
  --accent:#0071E3; --accent-ink:#FFFFFF; --accent-soft:rgba(0,113,227,.09); --accent-hover:#0077ED;
  --good:#248A3D; --good-soft:rgba(52,199,89,.14); --warn:#B25000; --warn-soft:rgba(255,149,0,.14);
  --bad:#D70015; --bad-soft:rgba(255,59,48,.11);
  --shadow:0 1px 1px rgba(0,0,0,.02),0 2px 10px rgba(0,0,0,.05);
  --shadow-hover:0 2px 4px rgba(0,0,0,.04),0 10px 30px rgba(0,0,0,.08);
  --glass:rgba(255,255,255,.72);
  --r:18px; --r-sm:12px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme=light]){
    color-scheme:dark;
    --bg:#000000; --surface:#1C1C1E; --surface-2:#2C2C2E; --surface-3:#3A3A3C;
    --ink:#F5F5F7; --ink-2:#D1D1D6; --muted:#98989D;
    --line:rgba(255,255,255,.14); --line-2:rgba(255,255,255,.08);
    --accent:#2997FF; --accent-ink:#FFFFFF; --accent-soft:rgba(41,151,255,.16); --accent-hover:#47A6FF;
    --good:#30D158; --good-soft:rgba(48,209,88,.16); --warn:#FF9F0A; --warn-soft:rgba(255,159,10,.16);
    --bad:#FF453A; --bad-soft:rgba(255,69,58,.16);
    --shadow:0 0 0 1px rgba(255,255,255,.06); --shadow-hover:0 0 0 1px rgba(255,255,255,.12);
    --glass:rgba(22,22,24,.72);
  }
}
:root[data-theme=light]{color-scheme:light}
:root[data-theme=dark]{
    color-scheme:dark;
    --bg:#000000; --surface:#1C1C1E; --surface-2:#2C2C2E; --surface-3:#3A3A3C;
    --ink:#F5F5F7; --ink-2:#D1D1D6; --muted:#98989D;
    --line:rgba(255,255,255,.14); --line-2:rgba(255,255,255,.08);
    --accent:#2997FF; --accent-ink:#FFFFFF; --accent-soft:rgba(41,151,255,.16); --accent-hover:#47A6FF;
    --good:#30D158; --good-soft:rgba(48,209,88,.16); --warn:#FF9F0A; --warn-soft:rgba(255,159,10,.16);
    --bad:#FF453A; --bad-soft:rgba(255,69,58,.16);
    --shadow:0 0 0 1px rgba(255,255,255,.06); --shadow-hover:0 0 0 1px rgba(255,255,255,.12);
    --glass:rgba(22,22,24,.72);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.47;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- боковая панель (как в приложениях Apple): группы разделов, линейные иконки, сворачивается */
:root{--side:236px}
.app{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s ease}
.side-mini{--side:68px}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 12px;gap:6px;
  background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  border-right:1px solid var(--line-2);z-index:30;overflow:hidden}
.side-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 10px}
.side-brand img{height:36px;width:auto;display:block}
.side-btn{width:32px;height:32px;border-radius:9px;border:0;background:transparent;color:var(--muted);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0}
.side-btn:hover{background:var(--line-2);color:var(--ink);text-decoration:none}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.side-nav{display:flex;flex-direction:column;gap:1px;flex:1;overflow-y:auto;scrollbar-width:none}
.side-nav::-webkit-scrollbar{display:none}
.side .grp{font-size:11.5px;font-weight:600;color:var(--muted);padding:14px 10px 5px;white-space:nowrap}
.side-nav .grp:first-child{padding-top:4px}
.side a:not(.side-btn):not(.side-brand){display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:9px;color:var(--ink-2);
  font-size:14px;font-weight:500;white-space:nowrap;text-decoration:none;transition:background .12s,color .12s}
.side a:not(.side-btn):not(.side-brand):hover{background:var(--line-2);color:var(--ink)}
.side a.on{background:var(--accent);color:#fff}
.side a.on:hover{background:var(--accent-hover)!important;color:#fff!important}
.side-bottom{border-top:1px solid var(--line-2);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.me{display:flex;align-items:center;gap:8px;padding:6px 4px 0}
.me .ava,.who .ava{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#5AC8FA,#0071E3);color:#fff;font-weight:600;font-size:12px;
  display:inline-flex;align-items:center;justify-content:center;flex:none;letter-spacing:0}
.me-t{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}
.me-t b{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-t span{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-mini .side{padding:14px 10px}
.side-mini .side .grp,.side-mini .side a span,.side-mini .me-t,.side-mini .side-brand{display:none}
.side-mini .side-top{justify-content:center}
.side-mini .side a:not(.side-btn):not(.side-brand){justify-content:center;padding:9px}
.side-mini .side-nav{gap:4px}
.side-mini .me{flex-direction:column}
.mob,.side-shade{display:none}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;width:260px;transform:translateX(-100%);transition:transform .2s ease;background:var(--surface)}
  .side-open .side{transform:none}
  .side-open .side-shade{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:25}
  .mob{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20;padding:8px 14px;background:var(--glass);
    -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line-2)}
  .mob img{height:30px}
  #sideToggle{display:none}
}
.login-logo{text-align:center;margin:0 0 18px}
.login-logo img{max-width:200px;height:auto}

/* ---------- типографика и раскладка */
.wrap{width:100%;max-width:1480px;margin:0 auto;padding:30px 32px 72px;min-width:0}
h1{font-size:34px;font-weight:700;letter-spacing:-.025em;line-height:1.12;margin:0 0 6px}
h2{font-size:21px;font-weight:600;letter-spacing:-.02em;margin:32px 0 12px}
h3{font-weight:600;letter-spacing:-.01em}
.sub{color:var(--muted);margin:0 0 22px;font-size:15px}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 24px}
.bar .sp{flex:1}
.muted{color:var(--muted)}
.small{font-size:13px}
.tiny{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0}
.owner{color:var(--muted);font-size:12.5px}
.lo{color:var(--bad)} .hi{color:var(--good)}
.p{font-weight:600}
.p.ok{color:var(--good)} .p.mid{color:var(--warn)} .p.low{color:var(--bad)}
.grid2{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:1000px){.grid2{grid-template-columns:1fr}}

/* ---------- кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--surface-3);color:var(--ink);
  padding:7px 15px;border-radius:999px;font:inherit;font-weight:500;font-size:13.5px;cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background .15s,transform .05s}
.btn:hover{background:var(--line);text-decoration:none}
.btn:active{transform:scale(.98)}
.btn.pri{background:var(--accent);color:var(--accent-ink)}
.btn.pri:hover{background:var(--accent-hover)}
.btn.good{background:var(--good);color:#fff}
.btn.bad{background:var(--bad-soft);color:var(--bad)}
.btn.sm{padding:4px 11px;font-size:12.5px}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.ghost:hover{background:var(--accent-soft)}
/* сегментированный переключатель */
.seg-switch{display:inline-flex;gap:2px;padding:2px;background:var(--surface-3);border-radius:10px}
.seg-switch .btn{border-radius:8px;background:transparent;padding:5px 13px;color:var(--ink-2)}
.seg-switch .btn:hover{background:transparent;color:var(--ink)}
.seg-switch .btn.pri{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04)}

/* ---------- карточки, плашки, статусы */
.card{background:var(--surface);border:0;border-radius:var(--r);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}
.card>summary{cursor:pointer;list-style:none}
.card>summary::-webkit-details-marker{display:none}
.card>summary::before{content:'›';display:inline-block;margin-right:8px;color:var(--muted);transition:transform .15s}
details[open].card>summary::before{transform:rotate(90deg)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:0}
.pill.draft{background:var(--surface-3);color:var(--muted)}
.pill.submitted{background:var(--warn-soft);color:var(--warn)}
.pill.accepted,.pill.done{background:var(--good-soft);color:var(--good)}
.pill.returned,.pill.not_done{background:var(--bad-soft);color:var(--bad)}
.pill.planned{background:var(--accent-soft);color:var(--accent)}
.pill.moved{background:var(--surface-3);color:var(--ink-2)}
.note{padding:12px 16px;border-radius:var(--r-sm);background:var(--accent-soft);margin:0 0 18px;font-size:14px}
.note.warn{background:var(--warn-soft)}
.note.bad{background:var(--bad-soft)}
.note.good{background:var(--good-soft)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px}
.kpi{background:var(--surface);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}
.kpi b{display:block;font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1.1}
.kpi span{font-size:13px;color:var(--muted)}

/* ---------- таблицы */
.tw{overflow-x:auto;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 14px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}
th{font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted);background:transparent;font-weight:500;white-space:nowrap;
  border-bottom:1px solid var(--line)}
td.n,th.n{text-align:right;white-space:nowrap}
tbody tr{transition:background .1s}
.tw tbody tr:hover td{background:var(--surface-2)}
tr.sec td{background:var(--surface-2);font-weight:600;color:var(--ink-2);font-size:12.5px;letter-spacing:0;padding:8px 14px}
tr:last-child td{border-bottom:0}
.sn{max-width:360px}
.sn a{color:var(--ink);text-decoration:none}
.sn a:hover{color:var(--accent)}
.nf{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.nf .f{font-weight:600}
.nf .no{font-size:11.5px;color:var(--muted)}
.dsep{border-left:1px solid var(--line)}
a.cell{display:block;color:inherit;text-decoration:none;border-radius:6px}
a.cell:hover{background:var(--accent-soft)}
th a{color:inherit;text-decoration:none}
th a:hover{color:var(--accent)}

/* ---------- формы */
input:not([type]),input[type=text],input[type=number],input[type=date],input[type=password],input[type=search],input[type=tel],input[type=email],input[type=url],select,textarea{
  font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:7px 11px;min-width:0;
  transition:border-color .15s,box-shadow .15s}
select{padding-right:28px;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2386868B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
input.num{width:110px;text-align:right}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
input.reason{display:block;margin:6px 0 0 auto;width:190px;font-size:12.5px}
input.reason[hidden]{display:none}

/* ---------- списки действий, группы плана */
.items{list-style:none;margin:0;padding:0}
.item{border-top:1px solid var(--line-2);padding:12px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
.item:first-child{border-top:0}
.item .t{font-weight:500}
.item .meta{font-size:13px;color:var(--muted)}
.item .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.item details{grid-column:1/-1}
.item details summary{cursor:pointer;color:var(--muted);font-size:13px}
.item.st-done .t{color:var(--good)}
.item.st-not_done .t,.item.st-moved .t{color:var(--muted);text-decoration:line-through}
.group{background:var(--surface);border-radius:var(--r);margin-bottom:16px;overflow:hidden;box-shadow:var(--shadow)}
.group-h{display:flex;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.group-h .gname{font-weight:600;flex:1;min-width:220px}
.cover{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2)}
.meter{width:120px;height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.meter i{display:block;height:100%;background:var(--good);border-radius:3px}
.meter.low i{background:var(--warn)}
.group table td{border-bottom:1px solid var(--line-2)}
.group .addrow td{background:var(--surface-2)}
.empty{color:var(--muted);padding:12px 18px}

/* ---------- вход, справочник, графики */
.login{max-width:380px;margin:14vh auto;background:var(--surface);border-radius:22px;padding:32px;box-shadow:var(--shadow-hover)}
.login h1{font-size:24px;text-align:center}
.login label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
.login input{width:100%;padding:10px 12px}
.login .btn{width:100%;padding:10px;margin-top:18px;font-size:15px}
.def{font-size:14px;color:var(--ink-2);max-width:80ch;white-space:pre-line}
.chart-box{background:var(--surface);border-radius:var(--r);padding:18px;margin-bottom:18px;box-shadow:var(--shadow)}
.chart-box canvas{max-height:300px}
@media (max-width:640px){.wrap{padding:20px 16px 56px}
  h1{font-size:28px}input.num{width:90px}}

/* ---------- таблица статистик (как «Статистика 2026»: Норма | Факт по дням, итоги недели и месяца) */
.sheet{position:relative;overflow:auto;max-height:calc(100vh - 170px);background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow)}
table.st{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}
table.st th,table.st td{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:6px 8px;white-space:nowrap}
table.st thead th{position:sticky;top:0;z-index:3;background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:600;text-align:center;line-height:1.25}
table.st thead tr.sub2 th{top:44px;font-size:11px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--line)}
table.st thead tr:first-child th{height:44px;box-sizing:border-box}
table.st thead th a{color:inherit;text-decoration:none} table.st thead th a:hover{color:var(--accent)}
table.st .stick{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line)}
table.st thead .stick{z-index:4;text-align:left}
table.st td.name{text-align:left;min-width:260px;max-width:330px;white-space:normal;line-height:1.3}
table.st td.name a{color:var(--ink);text-decoration:none;font-weight:500} table.st td.name a:hover{color:var(--accent)}
table.st tr.dep td{background:var(--surface-2);color:var(--ink);font-weight:600;font-size:13px;padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}
table.st tr.dep td span{position:sticky;left:12px}
table.st td{text-align:right}
table.st .first{border-left:1px solid var(--line)}
table.st th.today{color:var(--accent)}
table.st th.today a::after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin:3px auto 0}
table.st td.nc{background:var(--surface-2);color:var(--muted)}
table.st td.nc.calc,table.st td.calc{font-style:italic;color:var(--muted)}
table.st td.fc{font-weight:600}
table.st td.fc a{color:inherit;text-decoration:none;display:block}
table.st td.fc.hi{color:var(--good)} table.st td.fc.lo{color:var(--bad)}
table.st .wk{background:var(--accent-soft)}
table.st .mo{background:var(--warn-soft)}
table.st td.fv{font-weight:600} table.st td.fv.hi{color:var(--good)} table.st td.fv.lo{color:var(--bad)}
table.st tbody tr:hover td{box-shadow:inset 0 0 0 9999px rgba(0,113,227,.04)}
/* таблица плана месяца */
.sheet table.grid th,.sheet table.grid td,table.grid th,table.grid td{border-right:1px solid var(--line-2)}
table.grid .stick{position:sticky;left:0;background:var(--surface);z-index:1}
table.grid td.sn{min-width:240px;max-width:320px;white-space:normal}

/* ---------- панель управления (графики) */
.pn-sec{margin:8px 0 36px}
.pn-h{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:600;color:var(--ink);margin:0 0 14px;letter-spacing:-.02em}
.pn-h .badge{background:var(--ink);color:var(--bg);font-weight:600;font-size:13px;width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}
.pn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:18px}
@media (max-width:560px){.pn-grid{grid-template-columns:1fr}}
.pn-card{background:var(--surface);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow);transition:box-shadow .2s}
.pn-card:hover{box-shadow:var(--shadow-hover)}
.pn-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.pn-top h3{margin:0;font-size:14px;font-weight:600;color:var(--ink-2);max-width:60%}
.pn-top h3 a{color:inherit;text-decoration:none} .pn-top h3 a:hover{color:var(--accent)}
.pn-kpi{text-align:right;display:flex;flex-direction:column;line-height:1.3;font-size:12.5px;color:var(--muted);white-space:nowrap}
.pn-kpi b{font-size:24px;font-weight:600;color:var(--ink);letter-spacing:-.025em}
.pn-canvas{position:relative;height:230px}

/* одинаковая ширина столбцов: цифры стоят ровно друг под другом */
table.st{table-layout:fixed}
table.st col.c-d{width:86px}
table.st col.c-wk{width:96px} table.st col.c-pct{width:58px}
table.st col.c-mo{width:104px}
table.st td,table.st th{overflow:hidden;text-overflow:ellipsis}
table.st tr.dep td{overflow:visible}
table.st td.name{min-width:0;max-width:none}
/* в тёмной теме логотип — белым, без подложки */
@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .side-brand img,:root:not([data-theme=light]) .mob img,:root:not([data-theme=light]) .login-logo img{filter:brightness(0) invert(1)}}
:root[data-theme=dark] .side-brand img,:root[data-theme=dark] .mob img,:root[data-theme=dark] .login-logo img{filter:brightness(0) invert(1)}
/* рамка столбца дня под курсором */
.colframe{position:absolute;z-index:5;pointer-events:none;border:2px solid var(--accent);border-radius:10px;
  box-shadow:0 0 0 4px var(--accent-soft);transition:left .08s ease,width .08s ease}
table.st thead th.gh{background:var(--accent-soft);color:var(--accent)}
.theme-btn{width:32px;height:32px;border-radius:9px;flex:none;border:0;background:var(--surface-3);color:var(--ink-2);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0}
.theme-btn:hover{background:var(--line);color:var(--ink)}
.theme-btn svg{width:16px;height:16px}

/* ---------- сводка «Мой день»: кольца прогресса */
.sum-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:0 0 26px}
.sum-card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px;display:flex;align-items:center;gap:14px}
.sum-card b{display:block;font-size:24px;font-weight:600;letter-spacing:-.025em;line-height:1.1}
.sum-card span{display:block;font-size:12.5px;color:var(--muted);line-height:1.3;margin-top:2px}
.sum-card em{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:2px}
.ring{width:52px;height:52px;flex:none;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:5;stroke-linecap:round}
.ring .trk{stroke:var(--surface-3)}
.ring.ok .val{stroke:var(--good)} .ring.mid .val{stroke:var(--warn)} .ring.low .val{stroke:var(--bad)}
/* ---------- статистики карточкой: название, вчера, норма сегодня, полоса недели */
.statlist{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:6px 0 0;overflow:hidden}
.sl-dep{font-size:12px;font-weight:600;color:var(--muted);padding:12px 20px 4px}
.sl-row{display:grid;grid-template-columns:minmax(0,1fr) 190px 46px;gap:16px;align-items:center;padding:11px 20px;border-bottom:1px solid var(--line-2)}
.sl-row:hover{background:var(--surface-2)}
.sl-name a{color:var(--ink);font-weight:500;font-size:14px}
.sl-name span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.sl-name b{font-weight:600;color:var(--ink-2)} .sl-name b.hi{color:var(--good)} .sl-name b.lo{color:var(--bad)}
.sl-prog span{display:block;font-size:12px;color:var(--ink-2);margin-top:5px;text-align:right}
.sl-prog em{font-style:normal;color:var(--muted)}
.bar-t{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.bar-t i{display:block;height:100%;border-radius:3px;transition:width .4s ease}
.bar-t i.ok{background:var(--good)} .bar-t i.mid{background:var(--warn)} .bar-t i.low{background:var(--bad)}
.sl-pct{font-size:13px;font-weight:600;text-align:right;color:var(--ink-2)}
.sl-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 20px}
@media (max-width:640px){.sl-row{grid-template-columns:1fr 60px}.sl-prog{grid-column:1/-1;order:3}}
.mini{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.mini .bar-t{width:110px}
.mini span{font-size:12.5px}
.person{display:flex;align-items:center;gap:10px}
.person .ava{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#5AC8FA,#0071E3);color:#fff;font-weight:600;font-size:12px;
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.pn-bar{width:130px;margin:6px 0 0 auto}
.meter-w{width:140px}
@media (max-width:640px){.sum-row{grid-template-columns:1fr 1fr;gap:10px}.sum-card{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
  .sum-card b{font-size:20px}.ring{width:40px;height:40px}}
/* мини-график тренда у названия статистики */
table.st col.c-name{width:330px}
.spark{float:right;width:64px;height:20px;margin:1px 0 0 8px;overflow:visible}
.spark polyline{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--muted)}
.spark.up polyline{stroke:var(--good)} .spark.up circle{fill:var(--good)}
.spark.down polyline{stroke:var(--bad)} .spark.down circle{fill:var(--bad)}
/* светофор в приёмке планов */
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;background:var(--muted)}
.dot.red{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)} .dot.orange{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.dot.green{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.lights{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 14px;font-size:13px;color:var(--ink-2)}
.lights span{display:inline-flex;align-items:center;gap:8px}
.warn-t{color:var(--warn)}
/* всплывающие подтверждения */
.toasts{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;gap:10px;z-index:100;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);padding:11px 16px 11px 13px;border-radius:14px;
  font-size:14px;font-weight:500;box-shadow:0 10px 30px rgba(0,0,0,.18);animation:toastin .25s ease;max-width:380px}
.toast svg{width:20px;height:20px;flex:none;fill:var(--good);stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.toast svg circle{stroke:none}
.toast.out{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
@keyframes toastin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* компактное предупреждение с раскрытием */
.note.compact summary{cursor:pointer;list-style:none}
.note.compact summary::-webkit-details-marker{display:none}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:12.5px;text-decoration:none}
.chip:hover{color:var(--accent);text-decoration:none}
/* быстрый поиск ⌘K */
.side-search{display:flex;align-items:center;gap:10px;margin:0 0 6px;padding:7px 10px;border:0;border-radius:9px;background:var(--surface-3);
  color:var(--muted);font:inherit;font-size:13.5px;cursor:pointer;text-align:left}
.side-search:hover{color:var(--ink)}
.side-search span{flex:1}
kbd{font:inherit;font-size:11px;padding:1px 6px;border-radius:5px;background:var(--surface);color:var(--muted);border:1px solid var(--line-2)}
.side-mini .side-search{justify-content:center;padding:9px}
.side-mini .side-search span,.side-mini .side-search kbd{display:none}
.cmdk{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.25);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.cmdk[hidden]{display:none}
.cmdk-box{width:min(640px,92vw);background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);
  border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.25),0 0 0 1px var(--line-2);overflow:hidden;animation:toastin .15s ease}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.cmdk-in .ic{color:var(--muted)}
.cmdk-in input{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;font-size:18px;padding:4px 0}
.cmdk-list{max-height:52vh;overflow-y:auto;padding:6px}
.cmdk-grp{font-size:11.5px;font-weight:600;color:var(--muted);padding:10px 12px 4px}
.cmdk-it{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;color:var(--ink);text-decoration:none!important}
.cmdk-it .ic{color:var(--muted)}
.cmdk-it span{display:flex;flex-direction:column;min-width:0}
.cmdk-it b{font-weight:500;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-it em{font-style:normal;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-it.on{background:var(--accent);color:#fff} .cmdk-it.on .ic,.cmdk-it.on em{color:rgba(255,255,255,.85)}
.cmdk-empty{padding:22px;text-align:center;color:var(--muted);font-size:14px}
.cmdk-foot{display:flex;gap:16px;padding:9px 16px;border-top:1px solid var(--line-2);font-size:12px;color:var(--muted)}
.cmdk-foot kbd{margin-right:3px}
/* ---------- блоки рабочего плана */
.blk-map{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.blk-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:13px;text-decoration:none!important;
  background:var(--surface);box-shadow:var(--shadow);color:var(--ink-2)}
.blk-pill b{font-weight:600;color:var(--ink)}
.blk-pill.empty{background:var(--bad-soft);color:var(--bad);box-shadow:none} .blk-pill.empty b{color:var(--bad)}
.blk-pill.ideas{color:var(--muted)}
.blk{scroll-margin-top:16px}
.blk .group-h{align-items:flex-start}
.blk .gname{font-size:16px}
.blk.is-empty{box-shadow:0 0 0 1.5px var(--bad-soft),var(--shadow)}
.blk.is-empty .gname::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bad);margin:0 8px 2px 0}
.blk.is-ideas{opacity:.85}
.blk-empty{padding:12px 18px;color:var(--bad);font-size:13.5px;background:var(--bad-soft)}
.blk-stats{display:flex;flex-direction:column;gap:8px;min-width:280px;max-width:420px}
.blk-stat{display:grid;grid-template-columns:1fr;gap:3px;color:var(--ink-2);text-decoration:none!important;font-size:12.5px}
.blk-stat .nm{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blk-stat .v{color:var(--muted)}
.blk-stat:hover .nm{color:var(--accent)}
.items .blk-h{list-style:none;font-size:12px;font-weight:600;color:var(--accent);padding:14px 0 2px;border-top:0}
.items .blk-h:first-child{padding-top:0}
.items .blk-h + .item{border-top:0}
.blk-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:10px;align-items:start}
@media (max-width:900px){.blk-edit-row{grid-template-columns:1fr}}
.pick summary{cursor:pointer;color:var(--accent);font-size:13.5px}
.pick-list{max-height:260px;overflow:auto;margin-top:8px;padding:8px 10px;background:var(--surface-2);border-radius:10px;font-size:13px}
.pick-list label{display:block;padding:2px 0}
.pick-dep{font-weight:600;color:var(--muted);font-size:11.5px;margin:8px 0 2px}
.dep-pick{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:13px}
.howto{font-size:13.5px;color:var(--ink-2);background:var(--accent-soft);border-radius:var(--r-sm);padding:10px 14px;margin:0 0 14px}
.recs-fold{margin:0 0 16px}
.recs-fold>summary{cursor:pointer;list-style:none;display:inline-flex;gap:6px;align-items:center;padding:8px 14px;border-radius:999px;
  background:var(--surface);box-shadow:var(--shadow);font-size:13.5px}
.recs-fold>summary::-webkit-details-marker{display:none}
.recs-fold[open]>summary{margin-bottom:10px}
.recs-fold[open]>summary .muted{display:none}
/* сторож */
.badge-n{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;min-width:20px;height:20px;padding:0 6px;border-radius:10px;
  background:var(--bad);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.side a.on .badge-n{background:#fff;color:var(--accent)}
.side-mini .badge-n{position:absolute;margin:-18px 0 0 18px;min-width:16px;height:16px;font-size:10px}
.dg{list-style:none;margin:0;padding:0;font-size:13.5px}
.dg li{padding:4px 0 4px 18px;position:relative;line-height:1.4}
.dg .dot{position:absolute;left:0;top:10px}
.my-alerts{box-shadow:0 0 0 1.5px var(--bad-soft),var(--shadow)}
.as-staff{pointer-events:none;opacity:.55}
.as-staff input,.as-staff select,.as-staff button{cursor:not-allowed}
/* карта партнёра и реквизиты */
.req-card>summary{list-style:none}
.card-drop{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px;border:1.5px dashed var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.card-drop .btn{cursor:pointer}
.card-msg{margin:10px 0 0;font-size:13.5px}
.card-msg:empty{display:none}
.card-msg.good{padding:10px 14px;border-radius:10px;background:var(--good-soft)}
.card-msg.bad{padding:10px 14px;border-radius:10px;background:var(--bad-soft)}
.card-msg ul{margin:6px 0 0;padding-left:18px}
.req-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;margin-top:14px}
.req-grid label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.req-grid label.wide{grid-column:span 2} .req-grid label.full{grid-column:1/-1}
.req-grid input,.req-grid select{width:100%}
@media (max-width:900px){.req-grid{grid-template-columns:1fr 1fr}}
input.filled,select.filled{box-shadow:0 0 0 4px var(--good-soft);border-color:var(--good)}
/* ---------- линия управления */
.lu-list tr.unread td b{font-weight:700}
.lu-list tr.unread td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.lu-parts,.lu-route{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.chip.approved{background:var(--good-soft);color:var(--good)} .chip.pending{background:var(--warn-soft);color:var(--warn)} .chip.returned{background:var(--bad-soft);color:var(--bad)}
.lu-letters{display:flex;flex-direction:column;gap:14px;max-width:820px;margin:0 0 18px}
.letter{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);padding:16px 20px;font-size:14.5px}
.letter .lh{display:flex;justify-content:space-between;color:var(--ink-2);font-style:italic}
.letter .lt{font-style:italic;color:var(--ink-2);margin:4px 0 10px}
.letter .lr{font-weight:700;letter-spacing:.02em;margin:0 0 6px}
.letter .lr.done{color:var(--good)} .letter .lr.partial{color:var(--warn)} .letter .lr.need_info{color:var(--bad)}
.letter .lb{white-space:pre-wrap;line-height:1.55}
.letter .lf{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.letter .ls{text-align:right;font-style:italic;color:var(--ink-2);margin-top:10px}
.letter.confirm,.letter.approve{background:var(--surface-2)}
.lu-act{max-width:820px}
.lu-form textarea{width:100%}
.route-steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.wk-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.wk-step{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 16px;color:var(--ink);text-decoration:none!important}
.wk-step b{display:block} .wk-step span{font-size:12.5px;color:var(--bad)}
.wk-step.ok span{color:var(--good)}
@media (max-width:760px){.wk-steps{grid-template-columns:1fr}}
.req-grid .dep-pick label{flex-direction:row;align-items:center;gap:6px;color:var(--ink-2);font-size:13px}
.req-grid .dep-pick input{width:auto}
#autocc{margin-top:6px;color:var(--accent)}
/* ---------- аналитическая записка */
.an-form{max-width:980px}
.an-q{display:flex;flex-direction:column;gap:4px;margin:0 0 14px}
.an-q>span{font-size:12.5px;color:var(--muted)}
.an-q textarea,.an-k textarea{width:100%}
.an-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 16px}
.an-week div{background:var(--surface-2);border-radius:12px;padding:12px 14px}
.an-week span{display:block;font-size:12.5px;color:var(--muted)} .an-week b{font-size:22px;font-weight:600} .an-week em{font-style:normal;font-size:12px;color:var(--muted);margin-left:6px}
.an-key{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:0 0 16px}
.an-k{display:flex;flex-direction:column;gap:3px;background:var(--surface-2);border-radius:12px;padding:10px 12px}
.an-k span{font-size:13px;font-weight:600}
.an-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
@media (max-width:760px){.an-areas,.an-week{grid-template-columns:1fr}}
.an-note summary{cursor:pointer;list-style:none;display:flex;gap:10px;align-items:center}
.an-a{margin-top:12px} .an-a b{font-size:13px;color:var(--ink-2)} .an-t{white-space:pre-wrap;margin-top:4px}
/* ---------- обращения к разработчику */
.side-fb{display:flex;align-items:center;gap:11px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:var(--accent);
  font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-align:left;white-space:nowrap}
.side-fb:hover{background:var(--accent-soft)}
.side-mini .side-fb{justify-content:center;padding:9px} .side-mini .side-fb span{display:none}
.fb-dlg{border:0;border-radius:20px;padding:22px 24px;width:min(560px,94vw);background:var(--surface);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.3)}
.fb-dlg::backdrop{background:rgba(0,0,0,.3)}
.fb-kinds{display:flex;gap:6px;flex-wrap:wrap}
.fb-kinds label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--surface-3);font-size:13.5px;cursor:pointer}
.fb-kinds input{margin:0}
.fb-l{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:13px;color:var(--muted)}
.fb-l textarea{width:100%}
.fb-card{max-width:900px}
.fb-t{white-space:pre-wrap;margin-top:4px}
.fb-dec{margin-top:12px} .fb-dec textarea{width:100%}
.side-fb span{white-space:normal;line-height:1.25}

/* ---------- инструкция */
.help-toc{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.help{max-width:820px;line-height:1.55}
.help h2{margin:34px 0 10px;scroll-margin-top:16px}
.help h3{margin:20px 0 6px;font-size:16px}
.help p,.help li{font-size:14.5px}
.help ol,.help ul{padding-left:22px;margin:6px 0 12px}
.help li{margin:4px 0}
.help .tw{margin:8px 0 14px}

/* ---------- ввод факта в таблице статистик */
table.st td.fc.ed{cursor:text;position:relative}
table.st td.fc.ed:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}
table.st td.fc.ed:hover::after{content:'✎';position:absolute;top:1px;right:3px;font-size:9px;color:var(--accent)}
table.st td.fc.saved{background:var(--good-soft, rgba(52,199,89,.18))}
table.st input.cell-in{width:100%;min-width:56px;padding:2px 4px;font:inherit;text-align:right;border:1.5px solid var(--accent);border-radius:4px;background:var(--bg);color:var(--ink)}
.toast.bad{background:var(--bad)}

/* ---------- норма снижена с согласия руководителя */
table.st td.cut{position:relative;color:var(--warn, #c46a00);font-weight:600}
table.st td.cut::before{content:'';position:absolute;top:0;right:0;border-style:solid;border-width:0 7px 7px 0;border-color:transparent #ff9500 transparent transparent}
.cut-tag{display:inline-block;font-size:11px;font-weight:600;color:#b35c00;background:rgba(255,149,0,.14);border-radius:6px;padding:1px 6px;margin-left:4px;cursor:help}
