/* Коммерческая дирекция · кабинет. Светлая тёплая палитра, прогрессивное раскрытие. */
:root{
  --bg:#f6f3ee;--paper:#ffffff;--soft:#f0ece5;--line:#e4dfd6;--fg:#1b1a19;--muted:#675f56;
  --accent:#2352d8;--accent-bg:#e8edfb;--good:#14683c;--good-bg:#e3f3ea;--warn:#8a4f00;--warn-bg:#fdf1dc;--bad:#b02424;--bad-bg:#fbe6e6;
  --shadow:0 1px 2px rgba(27,26,25,.05),0 10px 30px -18px rgba(27,26,25,.25);
  --mono:"JetBrains Mono",ui-monospace,monospace;--display:"Unbounded","Golos Text",sans-serif;
  --ease-out:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 "Golos Text",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
body{background:radial-gradient(1200px 600px at 100% -10%,#fbe9e0 0%,transparent 60%),radial-gradient(900px 500px at -10% 110%,#e3ecfb 0%,transparent 60%),var(--bg);min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent)}
:is(button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3,h4{margin:0;font-weight:700}
h2{font-family:var(--display);font-size:24px;letter-spacing:-.01em}
h2.plain{font-family:inherit}
h3{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
h4{font-size:14px}
.small{font-size:12.5px}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12.5px}.num{text-align:right;font-variant-numeric:tabular-nums}
.hidden{display:none!important}

/* shell */
.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.shell>*{min-width:0}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:18px 14px;background:color-mix(in srgb,var(--paper) 70%,transparent);backdrop-filter:blur(16px);border-right:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 16px}
.brand h1{font-size:13.5px;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:11.5px}
.logo{width:30px;height:30px;border-radius:9px;background:conic-gradient(from 200deg,#1b1a19,#2352d8 60%,#1b1a19);display:inline-block;flex:none;position:relative}
.logo::after{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}
.nav{display:grid;gap:2px}
.nav button,.nav a{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:10px;color:var(--fg);text-decoration:none;font-weight:500}
.nav button:hover,.nav a:hover{background:var(--soft)}
.nav [aria-current="page"]{background:var(--accent-bg);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}
.nav .badge{margin-left:auto}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;line-height:20px;text-align:center;font-weight:700}
.side-foot{margin-top:auto;display:grid;gap:10px}
.hint{font-size:11.5px;color:var(--muted);line-height:1.45;padding:0 8px}
.kbd{font-family:var(--mono);font-size:10px;border:1px solid var(--line);border-radius:4px;padding:0 4px;background:var(--paper)}
.me{display:grid;gap:4px;padding:10px;border-radius:12px;background:var(--soft);font-size:12.5px}
.me b{font-size:13px}
.me .actions{margin-top:4px}
.main{padding:28px 32px 60px;max-width:1360px}
.topbar,.bottom,.fab{display:none}

/* text */
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.head .sub{color:var(--muted);margin-top:4px;max-width:720px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 12%,transparent)}
.pill.go{background:var(--good-bg);color:var(--good)}.pill.cond,.pill.yellow{background:var(--warn-bg);color:var(--warn)}.pill.nogo,.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.off{background:var(--soft);color:var(--muted)}.pill.acc{background:var(--accent-bg);color:var(--accent)}
.kind{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--soft);color:var(--muted);font-weight:600;white-space:nowrap}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper);padding:8px 14px;border-radius:11px;font-weight:600;font-size:13.5px;transition:transform .16s var(--ease-out),background .18s,box-shadow .18s}
.btn:hover{background:var(--soft)}.btn:active{transform:scale(.97)}
.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.primary:hover{background:#000}
.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--fg);background:var(--soft)}
.btn.danger{color:var(--bad)}.btn.sm{padding:6px 10px;font-size:12.5px;border-radius:9px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.ib{border:1px solid var(--line);background:var(--paper);border-radius:8px;width:30px;height:30px;font-size:14px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}
.ib:hover{color:var(--fg);background:var(--soft)}.ib.rec{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--paper);color:var(--muted);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500;transition:background .18s,color .18s,transform .16s var(--ease-out)}
.chip:hover{color:var(--fg)}.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg);box-shadow:0 6px 14px -8px rgba(27,26,25,.6)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* cards */
.card{background:var(--paper);border-radius:18px;box-shadow:var(--shadow);padding:18px 20px}
.card.pad-sm{padding:14px 16px}
.lh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 0 10px;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:14px 20px;padding:18px 24px;background:var(--paper);border-radius:18px;box-shadow:var(--shadow)}
.strip>div{min-width:0}.strip small{display:block;color:var(--muted);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.strip b{display:block;font-family:var(--display);font-size:22px;font-weight:600;margin:2px 0;font-variant-numeric:tabular-nums}
.strip i{font-style:normal;font-size:12px;color:var(--muted)}
.empty{color:var(--muted);font-size:13px;padding:18px;border:1px dashed var(--line);border-radius:14px;text-align:center}
.tw{overflow:auto;max-width:100%}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--soft)}
.tbl th.num{text-align:right}
.tbl input,.tbl select{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:4px 6px;font-size:13px;min-width:0}
.tbl input[type=number]{width:90px;text-align:right}

/* forms */
.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.fields label,.form label{display:grid;gap:4px;font-size:12.5px;color:var(--muted);font-weight:500}
.fields .full{grid-column:1/-1}
.fields input:not([type=checkbox]):not([type=radio]),.fields select,.fields textarea,.form input:not([type=checkbox]),.form select,.form textarea,input.in,select.in,textarea.in{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 10px;width:100%;min-width:0;font-size:13.5px;color:var(--fg)}
.fields label.row{display:flex;align-items:center;gap:8px;color:var(--fg)}
.form{display:grid;gap:12px}
textarea{resize:vertical;min-height:64px}
.arow{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--soft);font-size:13px;cursor:pointer}
.arow input{margin-top:3px}

/* disclosure */
.disc .more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--ease-out)}
.disc .more>*{overflow:hidden;min-height:0}
.disc.open .more{grid-template-rows:1fr}
.dx{border:0;background:transparent;color:var(--muted);font-size:14px;width:26px;height:26px;border-radius:7px;transition:transform .25s var(--ease-out)}
.disc.open .dx{transform:rotate(180deg)}
.dx:hover{background:var(--soft);color:var(--fg)}

/* kanban */
.kan{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:10px;overflow-x:auto;padding-bottom:10px;align-items:start;scroll-snap-type:x proximity}
.kcol{background:var(--soft);border-radius:14px;padding:10px;display:grid;gap:6px;align-content:start;min-height:120px;scroll-snap-align:start}
.kcol.won{background:var(--good-bg)}.kcol.lost{background:var(--bad-bg)}
.kh{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;gap:6px;padding:0 2px 4px}
.kh b{font-weight:700}
.kc{background:var(--paper);border-radius:11px;padding:9px 11px;display:grid;gap:3px;cursor:pointer;box-shadow:0 1px 2px rgba(27,26,25,.06);transition:box-shadow .18s,transform .18s var(--ease-out)}
.kc b{font-size:12.5px;display:flex;justify-content:space-between;gap:6px}.kc span{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kc:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.kc .meta{display:flex;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.kc.late b{color:var(--bad)}

/* deal card */
.sec{padding:14px 16px;border-radius:14px;background:var(--paper);box-shadow:var(--shadow);display:grid;gap:8px}
.sec .sh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sec .sh h4{font-size:14px}
.sec .kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:4px 12px;font-size:13.5px}
.sec .kv dt{color:var(--muted)}.sec .kv dd{margin:0}
.sec.locked{opacity:.85}
.sec .lock{font-size:11px;color:var(--muted)}
.q{margin:0 0 8px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--accent-bg);border-radius:0 10px 10px 0;font-size:13px}
mark.cm{background:#fff2b3;border-radius:3px;cursor:pointer}
.cm-item{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--paper);display:grid;gap:6px;font-size:13.5px}
.cm-item.resolved{opacity:.6}
.cm-item .who{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.cm-item .who b{color:var(--fg);font-size:13px}
.cm-item .reply{margin-left:18px;padding-left:10px;border-left:2px solid var(--line);display:grid;gap:4px}
.cm-item .rform{display:flex;gap:6px}.cm-item .rform input{flex:1}
.selbtn{position:absolute;z-index:40;background:var(--fg);color:var(--bg);border:0;padding:7px 12px;border-radius:999px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow)}
.timeline{display:grid;gap:0}
.timeline .st{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:4px 0}
.timeline .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--paper);margin-top:2px}
.timeline .done .dot{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.timeline .cur .dot{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}
.timeline .skip{opacity:.4}
.timeline .st small{display:block;color:var(--muted)}
.chk{display:grid;gap:6px}
.chk .it{display:flex;gap:8px;align-items:flex-start;font-size:13.5px}
.chk .it i{font-style:normal;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex:none;margin-top:2px;background:var(--bad-bg);color:var(--bad)}
.chk .it.ok i{background:var(--good-bg);color:var(--good)}
.verdict{display:flex;gap:16px;align-items:center;padding:16px 20px;border-radius:18px;box-shadow:var(--shadow);background:var(--paper)}
.verdict .v{font-family:var(--display);font-size:26px;font-weight:700}
.verdict.go{background:linear-gradient(120deg,var(--good-bg),var(--paper))}.verdict.yellow{background:linear-gradient(120deg,var(--warn-bg),var(--paper))}.verdict.nogo{background:linear-gradient(120deg,var(--bad-bg),var(--paper))}
.rkr{display:grid;grid-template-columns:minmax(0,1.6fr) 120px 120px auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--paper)}
.rkr.na{opacity:.55}.rkr.stop{border-color:var(--bad)}
.rkr input[type=range]{width:100%}
.rkr .pv{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* inbox / tg */
.nt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 12px;border-radius:12px;background:var(--paper);border:1px solid var(--line);cursor:pointer}
.nt.new{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-bg)}
.nt b{font-weight:600;font-size:13.5px}
.tp{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;background:var(--soft);color:var(--muted);white-space:nowrap}
.tp.move{background:var(--accent-bg);color:var(--accent)}.tp.decision,.tp.outcome,.tp.review{background:var(--good-bg);color:var(--good)}
.tp.comment,.tp.reply,.tp.tg,.tp.note,.tp.voice{background:#e3f1f8;color:#0b6c9c}
.tp.edit,.tp.coef,.tp.risk,.tp.deadline{background:var(--warn-bg);color:var(--warn)}.tp.ui,.tp.admin{background:#fde8ef;color:#c0275a}
.tp.api{background:#ede7fb;color:#5b3bb5}
.jl{display:grid;gap:6px}
.jl .e{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:8px 10px;border-radius:10px;background:var(--paper);border:1px solid var(--line);font-size:13px}
.jl .e .t{color:var(--muted);font-size:12px;white-space:nowrap}
.code{font-family:var(--mono);font-size:20px;letter-spacing:.12em;font-weight:700;padding:10px 14px;background:var(--soft);border-radius:12px;text-align:center;margin-top:8px}

/* lists */
.lists .item{padding:10px 12px;border-radius:12px;cursor:pointer;display:grid;gap:3px;border:1px solid transparent}
.lists .item:hover{background:var(--soft)}.lists .item.sel{background:var(--accent-bg);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.lists .item b{font-size:13.5px;font-weight:600}.lists .item .src{font-size:12px;color:var(--muted)}
.litems{display:grid;gap:4px}
.lit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:8px 10px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.lit input[type=checkbox]{margin-top:3px}.lit.done .ltxt{text-decoration:line-through;color:var(--muted)}.ltxt{font-size:13.5px}
.lmv{display:flex;gap:4px}.lmv .ib{width:26px;height:26px;font-size:12px}.lmv .ib:disabled{opacity:.3}
.ladd{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.ladd input[type=text]{flex:1 1 200px}.ladd input[type=date]{width:150px}

/* admin */
.tbl.rights td.c{text-align:center;cursor:pointer;user-select:none}.tbl.rights td.c:hover{background:var(--soft)}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid var(--fg);vertical-align:-1px;box-sizing:border-box}
.dot.all{background:var(--fg)}.dot.own{background:linear-gradient(90deg,var(--fg) 50%,transparent 50%)}.dot.none{border-color:var(--line)}

/* dashboard bars */
.bars{display:grid;gap:6px}
.bar{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,2fr) auto;gap:10px;align-items:center;font-size:13px;cursor:default}
.bar[data-go]{cursor:pointer}
.bar .bl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.card{min-width:0}
.bar .bt{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}
.bar .bt i{display:block;height:100%;background:var(--accent);border-radius:999px;min-width:2px}
.bar .bv{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px;white-space:nowrap}
.cols{display:flex;align-items:flex-end;gap:4px;height:120px}
.cols .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.cols .col i{display:block;width:100%;max-width:26px;background:var(--accent);border-radius:6px 6px 2px 2px;opacity:.85}
.cols .col span{font-size:10.5px;color:var(--muted)}

/* modal / toast */
.modal{position:fixed;inset:0;background:rgba(27,26,25,.35);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:0}
.sheet{background:var(--paper);border-radius:22px 22px 0 0;width:min(640px,100%);max-height:92vh;overflow:auto;padding:18px 20px 28px;display:grid;gap:12px;animation:up .28s var(--ease-out)}
@keyframes up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.sh-head{display:flex;justify-content:space-between;align-items:center}.sh-head .x{border:0;background:var(--soft);width:30px;height:30px;border-radius:50%;font-size:16px}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:all .25s var(--ease-out);z-index:70;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth .box{width:min(420px,100%);background:var(--paper);border-radius:22px;box-shadow:var(--shadow);padding:28px}
.auth h2{margin-bottom:4px}
.err{color:var(--bad);font-size:13px}

/* enter animation */
#view.in>*{animation:rise .5s var(--ease-out) both}
#view.in>*:nth-child(2){animation-delay:.05s}#view.in>*:nth-child(3){animation-delay:.1s}#view.in>*:nth-child(4){animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* mobile */
@media (max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}.side{display:none}
  .side.open{display:flex;position:fixed;inset:0;z-index:50;height:100vh;width:min(320px,86vw);background:var(--paper)}
  .main{padding:16px max(16px,env(safe-area-inset-right,0px)) 100px max(16px,env(safe-area-inset-left,0px))}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px);padding:10px 16px;border-bottom:1px solid var(--line)}
  .topbar .brand{padding:0}.top-title{font-weight:700;font-size:14px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bottom{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:20;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:0 8px env(safe-area-inset-bottom,0px)}
  .bottom button{border:0;background:transparent;color:var(--muted);padding:9px 2px 8px;font-size:11px;font-weight:600;display:grid;justify-items:center;gap:3px}
  .bottom button[aria-current="page"]{color:var(--accent)}
  .bottom button i{width:20px;height:20px;border-radius:6px;border:2px solid currentColor;display:block}
  .bottom button[aria-current="page"] i{background:currentColor}
  .fab{display:flex;position:fixed;right:16px;bottom:76px;width:44px;height:44px;border-radius:50%;border:0;background:var(--fg);color:var(--bg);font-size:18px;align-items:center;justify-content:center;box-shadow:var(--shadow);z-index:21}
  .fields{grid-template-columns:1fr}.strip{grid-template-columns:repeat(2,1fr)}
  .rkr{grid-template-columns:1fr 1fr;}
  .rkr>:first-child{grid-column:1/-1}
  .sec .kv{grid-template-columns:1fr}
  .lists{grid-template-columns:minmax(0,1fr)!important}
  .xgrid{grid-template-columns:minmax(0,1fr)!important}
  h2{font-size:20px}
  #cardgrid>div:last-child{order:-1}
}
/* аудит 23.10: таблицы в разделах, поля только для чтения в режиме правки, допущения, стоп-вопросы */
.tbl.mini{font-size:12.5px}.tbl.mini td,.tbl.mini th{padding:4px 6px}.tbl.mini .in{padding:4px 6px;font-size:12.5px;min-width:70px}
.fields .ro{display:grid;gap:2px;padding:4px 0}.fields .full{grid-column:1/-1}
.asm{margin-top:2px;font-weight:400}.asm input{width:auto}
.checks{display:grid;gap:4px}.checks select{width:auto;padding:3px 6px}
.chk .it.opt i{background:var(--soft);color:var(--muted)}
.kv dt[title]{cursor:help}
.ycols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;align-items:end;height:140px}
.ycols .yc{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;height:100%;position:relative}
.ycols .yc i{display:block;border-radius:4px 4px 0 0;min-height:2px}.ycols .yc .p{background:var(--soft);box-shadow:inset 0 0 0 1px var(--line)}.ycols .yc .f{background:var(--accent)}.ycols .yc .fc{background:color-mix(in srgb,var(--accent) 35%,transparent)}
.ycols .yc span{font-size:10.5px;color:var(--muted);text-align:center}
.kanban4{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:10px;overflow-x:auto}
@media (max-width:700px){.kanban4{grid-template-columns:repeat(4,minmax(78vw,1fr))}}
/* телефон: длинные значения переносятся, а не растягивают страницу */
.kv dd,.kv dt{min-width:0;overflow-wrap:anywhere}
.jl .e > div{min-width:0;overflow-wrap:anywhere}
.verdict .pill{white-space:normal;text-align:left}
.cm-item,.nt > div,.lit > div{min-width:0;overflow-wrap:anywhere}
.tbl td{overflow-wrap:anywhere}
#tab .grid,.grid.g2 > *{min-width:0}
.verdict{flex-wrap:wrap}.verdict > div{min-width:0}

/* ---- подсказчик ---- */
#assist{position:fixed;right:18px;bottom:76px;z-index:60}
#assist-btn{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-family:var(--display);font-size:18px;font-weight:700;box-shadow:0 8px 24px rgba(35,82,216,.35);cursor:pointer;position:relative}
#assist-btn b{position:absolute;top:-4px;right:-4px;background:var(--bad);color:#fff;font-size:11px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}
#assist-panel{position:absolute;right:0;bottom:54px;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;background:var(--paper);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.18);padding:12px 14px;display:grid;gap:6px}
#assist-panel .ah{display:flex;align-items:center;gap:8px}#assist-panel .ah b{font-size:14px}#assist-panel .ah .ib{margin-left:auto}
#assist-panel .at{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:6px}
#assist-panel .ai{font-size:13px;line-height:1.4;padding:4px 0;border-bottom:1px solid var(--line)}#assist-panel .ai:last-child{border-bottom:0}
#assist-panel .af{margin-top:4px}
@media (min-width:900px){#assist{bottom:22px}}
/* ---- демо-режим ---- */
.demo-wrap{width:min(1100px,100%);background:var(--paper);border-radius:22px;box-shadow:var(--shadow);padding:28px}
.demo-head h1{font-size:24px;margin:10px 0 6px}
.demo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:16px}
.demo-role{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:6px;align-content:start}
.demo-role h3{font-size:15px;text-transform:none;letter-spacing:0}.demo-role .btn{justify-self:start;margin-top:4px}
/* ---- предпросмотр файлов ---- */
.docprev{padding:24px 32px;max-width:900px;margin:auto;line-height:1.5;font-size:14px}.docprev h1,.docprev h2,.docprev h3{margin:14px 0 6px}.docprev p{margin:6px 0}.docprev table{border-collapse:collapse;margin:8px 0}.docprev td,.docprev th{border:1px solid var(--line);padding:4px 8px}
.sheetprev{padding:8px}.sheetprev table{border-collapse:collapse;font-size:12.5px}.sheetprev td{border:1px solid var(--line);padding:3px 6px;white-space:nowrap}

/* ---------- «Моя работа»: задачи роли и предметные панели ---------- */
.bad{color:var(--bad)}.warn{color:var(--warn)}.good{color:var(--good)}
.tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:12px}
.task{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:6px;box-shadow:var(--shadow)}
.task.urgent{border-left:4px solid var(--bad)}
.task .th{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.task .th .small{margin-left:auto}
.task h4{font-size:13.5px;line-height:1.35}.task .what{font-weight:600;font-size:13px}
.dl{color:inherit;text-decoration:none}.dl:hover b{color:var(--accent)}
.chk-list{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:12.5px}
.chk-list li{display:flex;gap:7px;align-items:flex-start}.chk-list li i{flex:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--line);margin-top:2px}
.chk-list li.ok{color:var(--muted)}.chk-list li.ok i{background:var(--good);border-color:var(--good)}
.prog{display:inline-block;vertical-align:middle;width:70px;height:6px;border-radius:3px;background:var(--soft);overflow:hidden;margin:0 4px}.prog i{display:block;height:100%;background:var(--good)}
.kitrow{padding:8px 0;border-bottom:1px solid var(--line)}.kitrow:last-child{border-bottom:0}
.acts{margin:0;padding-left:18px;display:grid;gap:5px;font-size:13px}
.strip.mini{box-shadow:none;background:var(--soft);padding:10px 12px;margin-bottom:8px}.strip.mini b{font-size:18px}
.chips.mini{gap:4px;margin-top:4px}.chips.mini .pill{font-size:11px;padding:2px 8px}
.grid.work>.wide{grid-column:1/-1}
.card h5{margin:10px 0 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
tr.late td{background:var(--bad-bg)}
.cols.cal .col b{font-variant-numeric:tabular-nums}
details.card summary{cursor:pointer}
/* карточка сделки под роль: своя часть, нужное от других, остальное свёрнуто */
.focus{border-left:4px solid var(--accent);background:var(--accent-bg);border-radius:14px;padding:12px 14px;display:grid;gap:6px}
.sec.mine{box-shadow:inset 3px 0 0 var(--accent)}
.sec.fold .kv,.sec.fold .lead{display:none}.sec.fold{opacity:.85}.sec.fold .sh{cursor:pointer}
.ready-grid{display:grid;gap:6px}.ready-grid .rr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;font-size:12.5px}
@media (max-width:900px){.grid.work{grid-template-columns:minmax(0,1fr)!important}}
.tbl td:has(> .dl)+td,.tbl td.dt{white-space:nowrap}
.tbl td.num{white-space:nowrap}.grid.work{align-items:start}
.btn{white-space:nowrap}
h3.secgrp{margin:10px 0 0}
.docbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
