:root{
  color-scheme: light;
  --bg:#F2F4F1; --surface:#FFFFFF; --surface2:#EBEFEB; --surface3:#E1E7E2;
  --ink:#151515; --ink2:#3C433E; --muted:#66706A; --line:#D8DED9; --line2:#C7CFC9;
  --brand:#004527; --brand-2:#005C34; --brand-ink:#FFFFFF;
  --hi:#00673B; --hi-soft:#DCEDE2;
  --rail:#151515; --rail-ink:#E9ECEA; --rail-muted:#8E9791; --rail-hover:#232524;
  --good:#12784A; --good-soft:#DDF0E4;
  --warn:#9A6400; --warn-soft:#FBEFD3;
  --crit:#C23434; --crit-soft:#FBE3E1;
  --info:#2F66B8; --info-soft:#E1EBF8;
  --viz-a:#A9BDB0; --viz-b:#004527; --viz-c:#2A78D6; --grid:#E3E8E4;
  --shadow:0 1px 2px rgba(10,20,14,.06),0 4px 16px rgba(10,20,14,.06);
  --r:10px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --bg:#151515; --surface:#1C1E1D; --surface2:#232625; --surface3:#2B2F2D;
    --ink:#F1F3F1; --ink2:#CDD3CF; --muted:#9BA49E; --line:#2D312F; --line2:#3A3F3C;
    --brand:#004527; --brand-2:#005C34; --brand-ink:#FFFFFF;
    --hi:#3DBB7C; --hi-soft:#12301F;
    --rail:#0E0F0F; --rail-ink:#E9ECEA; --rail-muted:#88918B; --rail-hover:#1B1D1C;
    --good:#43C283; --good-soft:#123122;
    --warn:#E0A63A; --warn-soft:#352914;
    --crit:#F07070; --crit-soft:#3A1B1B;
    --info:#6EA2F0; --info-soft:#18263B;
    --viz-a:#4E6457; --viz-b:#3DBB7C; --viz-c:#3987E5; --grid:#2A2E2C;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.3);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#151515; --surface:#1C1E1D; --surface2:#232625; --surface3:#2B2F2D;
  --ink:#F1F3F1; --ink2:#CDD3CF; --muted:#9BA49E; --line:#2D312F; --line2:#3A3F3C;
  --brand:#004527; --brand-2:#005C34; --brand-ink:#FFFFFF;
  --hi:#3DBB7C; --hi-soft:#12301F;
  --rail:#0E0F0F; --rail-ink:#E9ECEA; --rail-muted:#88918B; --rail-hover:#1B1D1C;
  --good:#43C283; --good-soft:#123122;
  --warn:#E0A63A; --warn-soft:#352914;
  --crit:#F07070; --crit-soft:#3A1B1B;
  --info:#6EA2F0; --info-soft:#18263B;
  --viz-a:#4E6457; --viz-b:#3DBB7C; --viz-c:#3987E5; --grid:#2A2E2C;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.3);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Roboto,"Segoe UI",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--hi)}
.num,td.n,.tile b,.tab-n{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--hi);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ---------- logo ---------- */
.logo{display:block;background:currentColor;-webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat}

/* ---------- login ---------- */
.login{min-height:100%;background:#151515;color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.login-l{padding:48px 0 48px;display:flex;flex-direction:column;gap:28px;justify-content:center}
.login-l .logo{width:92px;height:96px;color:#fff;margin-left:48px}
.login-band{background:var(--brand);padding:18px 48px 18px 48px;margin-right:12%}
.login-band h1{margin:0;font-weight:900;letter-spacing:.01em;text-transform:uppercase;font-size:clamp(26px,3.6vw,44px);line-height:1.05;text-wrap:balance}
.login-l p{margin:0 48px;color:#C9CFCB;max-width:46ch;font-size:15px}
.login-l .rule{height:1px;background:#3A3D3B;margin:0 48px}
.login-l small{margin:0 48px;color:#8E9791}
.login-r{background:#1C1E1D;padding:40px clamp(16px,4vw,48px);overflow:auto}
.login-r h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#8E9791;margin:0 0 18px;font-weight:700}
.who-grp{margin-bottom:22px}
.who-grp h3{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#6FCB9B;font-weight:700}
.who{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.who button{display:flex;gap:10px;align-items:center;text-align:left;background:#232625;border:1px solid #2F3331;border-radius:8px;padding:10px 12px;color:#F1F3F1;cursor:pointer}
.who button:hover{border-color:#3DBB7C;background:#26302A}
.who small{display:block;color:#8E9791;font-size:12px}
.av{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--brand);color:#fff;letter-spacing:.02em}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}
.rail{background:var(--rail);color:var(--rail-ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:18px 12px;gap:4px;overflow:auto}
.rail .brandrow{display:flex;align-items:center;gap:12px;padding:4px 8px 16px;border-bottom:1px solid #2A2D2B;margin-bottom:10px}
.rail .brandrow .logo{width:38px;height:40px;color:#fff}
.rail .brandrow b{font-weight:900;letter-spacing:.06em;font-size:13px;text-transform:uppercase;line-height:1.1}
.rail .brandrow span{display:block;color:var(--rail-muted);font-size:11px;letter-spacing:.04em;font-weight:500;text-transform:none}
.nav{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:7px;color:var(--rail-ink);text-decoration:none;cursor:pointer;background:none;border:0;width:100%;text-align:left;font-weight:500}
.nav svg{width:19px;height:19px;flex:none;color:var(--rail-muted)}
.nav:hover{background:var(--rail-hover)}
.nav.on{background:var(--brand);color:#fff}
.nav.on svg{color:#fff}
.nav .cnt{margin-left:auto;background:#2C302E;color:#E9ECEA;border-radius:10px;padding:0 7px;font-size:11px;font-weight:700}
.nav.on .cnt{background:rgba(255,255,255,.18)}
.rail .me{margin-top:auto;border-top:1px solid #2A2D2B;padding:12px 8px 0;display:flex;gap:10px;align-items:center}
.rail .me small{display:block;color:var(--rail-muted);font-size:11.5px}
.rail .me b{font-weight:500;font-size:13px}

.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;background:var(--bg);display:flex;align-items:center;gap:12px;padding:14px 28px 12px 0;border-bottom:1px solid var(--line)}
.ptitle{background:var(--brand);color:#fff;padding:9px 22px 9px 28px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;font-size:18px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.top .sp{flex:1}
.chip-time{display:flex;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:20px;padding:5px 12px 5px 9px;font-size:13px;background:var(--surface);white-space:nowrap}
.chip-time i{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}
.chip-time.idle i{background:var(--muted);box-shadow:none}
.iconbtn{width:36px;height:36px;border-radius:8px;border:1px solid var(--line2);background:var(--surface);display:grid;place-items:center;cursor:pointer;flex:none;color:var(--ink2)}
.iconbtn svg{width:18px;height:18px}
.iconbtn:hover{border-color:var(--hi);color:var(--hi)}
.content{padding:22px 28px 60px;display:flex;flex-direction:column;gap:18px;min-width:0}
.mob-top{display:none}
.bnav{display:none}

/* ---------- blocks ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}
.card>.hd{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;flex-wrap:wrap}
.card>.hd h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--ink2)}
.card>.hd .sp{flex:1}
.card>.bd{padding:0 16px 16px}
.card>.bd.flush{padding:0}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 13px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tile span{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}
.tile b{font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile small{color:var(--muted);font-size:12px}
.tile.hero{background:var(--brand);border-color:var(--brand);color:#fff}
.tile.hero span,.tile.hero small{color:#BFD8C9}
.tile .d-up{color:var(--good)} .tile .d-dn{color:var(--crit)}
.tile.hero .d-up{color:#8FE3B5}

.pill{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:2px 9px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--surface2);color:var(--ink2)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.pill.nodot::before{display:none}
.p-good{background:var(--good-soft);color:var(--good)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-crit{background:var(--crit-soft);color:var(--crit)}
.p-info{background:var(--info-soft);color:var(--info)}
.p-brand{background:var(--hi-soft);color:var(--hi)}
.tag{font-size:11px;border:1px dashed var(--line2);color:var(--muted);border-radius:4px;padding:0 5px;text-transform:uppercase;letter-spacing:.05em}

.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
td.n,th.n{text-align:right;white-space:nowrap}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--surface2)}
tr.sel td{background:var(--hi-soft)}
tr.tot td{font-weight:700;background:var(--surface2)}
tbody tr:last-child td{border-bottom:0}
.sub{color:var(--muted);font-size:12.5px}
.muted{color:var(--muted)}
.strong{font-weight:700}
.nowrap{white-space:nowrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;border:1px solid var(--line2);background:var(--surface);padding:8px 14px;font-weight:500;cursor:pointer;white-space:nowrap;min-height:36px}
.btn svg{width:16px;height:16px}
.btn:hover{border-color:var(--hi);color:var(--hi)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.pri:hover{background:var(--brand-2);color:#fff}
.btn.danger{color:var(--crit)}
.btn.danger:hover{border-color:var(--crit)}
.btn.sm{padding:4px 10px;min-height:30px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row.end{justify-content:flex-end}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;background:var(--surface);flex-wrap:wrap}
.seg button{border:0;background:none;padding:7px 12px;cursor:pointer;font-weight:500;color:var(--ink2);white-space:nowrap}
.seg button+button{border-left:1px solid var(--line2)}
.seg button.on{background:var(--brand);color:#fff}

.f{display:flex;flex-direction:column;gap:5px;min-width:0}
.f label{font-size:12px;color:var(--muted);font-weight:500}
input[type=text],input[type=url],input[type=email],input[type=tel],input[type=month],input[type=number],input[type=date],input[type=search],select,textarea{background:var(--surface);border:1px solid var(--line2);border-radius:7px;padding:8px 10px;min-height:36px;width:100%;min-width:0}
textarea{min-height:70px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--hi);outline-offset:-1px;border-color:transparent}
input.cell{padding:5px 7px;min-height:30px;text-align:right;width:84px}
input.cell.w{width:100%;text-align:left}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.search{position:relative;flex:1;min-width:180px;max-width:360px}
.search input{padding-left:34px}
.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted)}

.note{border-left:3px solid var(--hi);background:var(--hi-soft);padding:10px 14px;border-radius:0 8px 8px 0;color:var(--ink2);font-size:13px}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.bar{height:8px;border-radius:4px;background:var(--surface3);overflow:hidden}
.bar>i{display:block;height:100%;background:var(--hi);border-radius:4px}
.bar.warn>i{background:var(--warn)}
.list{display:flex;flex-direction:column}
.li{display:flex;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
.li:first-child{border-top:0}
.li .grow{flex:1;min-width:0}
.li .t{font-weight:500;overflow:hidden;text-overflow:ellipsis}
.datebox{flex:none;width:46px;text-align:center;border-radius:8px;background:var(--surface2);padding:5px 0;line-height:1.05}
.datebox b{display:block;font-size:18px}
.datebox small{font-size:10.5px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}
.datebox.today{background:var(--brand);color:#fff}
.datebox.today small{color:#BFD8C9}

.sec-h{display:flex;align-items:center;gap:10px;margin:4px 0 -4px}
.sec-h h2{margin:0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink2)}
.sec-h .sp{flex:1}

/* chart */
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto}
.chart text{fill:var(--muted);font-size:11px}
.legend{display:flex;gap:16px;font-size:12.5px;color:var(--ink2);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);padding:7px 10px;border-radius:6px;font-size:12px;white-space:nowrap;transform:translate(-50%,-110%);box-shadow:var(--shadow);z-index:5}
.tip b{display:block}
.spark{display:block}

/* estimate editor */
.est-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.lines td{padding:6px 8px}
.lines .nm{min-width:220px}
.lines .sech td{background:var(--surface2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);padding:7px 10px}
.totals{position:sticky;top:78px}
.totals .ln{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line)}
.totals .ln:last-child{border-bottom:0}
.totals .big{font-size:22px;font-weight:900}
.av-ok{color:var(--good);font-size:12px;white-space:nowrap}
.av-no{color:var(--crit);font-size:12px;font-weight:700;white-space:nowrap}
.addline{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);flex-wrap:wrap}
.addline input{flex:1;min-width:200px}

/* picking */
.pick-hd{display:flex;flex-direction:column;gap:6px}
.pick-list{display:flex;flex-direction:column;gap:8px}
.pick{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pick.done{border-color:var(--good);background:var(--good-soft)}
.pick.short{border-color:var(--warn)}
.pick .grow{flex:1;min-width:0}
.pick .nm{font-weight:500;line-height:1.3}
.pick .meta{font-size:12px;color:var(--muted);margin-top:2px}
.ctr{display:flex;align-items:center;gap:0;border:1px solid var(--line2);border-radius:10px;overflow:hidden;flex:none;background:var(--surface)}
.ctr button{width:44px;height:44px;border:0;background:var(--surface2);font-size:22px;font-weight:500;cursor:pointer;color:var(--ink)}
.ctr button:active{background:var(--surface3)}
.ctr output{min-width:64px;text-align:center;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.ctr output small{font-weight:400;color:var(--muted);font-size:13px}
.allbtn{width:44px;height:44px;border-radius:10px;border:1px solid var(--line2);background:var(--surface);cursor:pointer;display:grid;place-items:center;flex:none;color:var(--muted)}
.pick.done .allbtn{background:var(--good);border-color:var(--good);color:#fff}
.allbtn svg{width:20px;height:20px}
.pick-foot{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:12px;align-items:center;flex-wrap:wrap;z-index:5}
.pick-foot .grow{flex:1;min-width:160px}
.qcard{display:flex;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);cursor:pointer}
.qcard:first-child{border-top:0}
.qcard:hover{background:var(--surface2)}
.qcard .grow{flex:1;min-width:0}

/* sched */
.day{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.day.today{background:var(--hi-soft)}
.day .items{display:flex;flex-direction:column;gap:5px}
.ev{display:flex;gap:8px;align-items:baseline;font-size:13.5px}
.ev .k{flex:none;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;padding:1px 6px;border-radius:4px}
.k-w{background:var(--hi-soft);color:var(--hi)}
.k-l{background:var(--surface3);color:var(--ink2)}
.k-e{background:var(--info-soft);color:var(--info)}

.wk td,.wk th{text-align:center;padding:6px 4px;font-size:12px}
.wk td:first-child,.wk th:first-child{text-align:left;padding-left:12px;white-space:nowrap}
.wk .off{background:var(--brand);color:#fff;border-radius:4px;font-weight:700}

.matrix td,.matrix th{text-align:center}
.matrix td:first-child,.matrix th:first-child{text-align:left}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}

.confirm{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--warn-soft);color:var(--ink);border:1px solid var(--warn);border-radius:8px;padding:10px 12px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;z-index:100;box-shadow:var(--shadow);font-weight:500;max-width:calc(100% - 32px)}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-radius:16px 16px 0 0;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));z-index:61;max-height:80vh;overflow:auto}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line2);margin:0 auto 12px}
.sheet .nav{color:var(--ink);padding:12px}
.sheet .nav svg{color:var(--muted)}
.sheet .nav.on{color:#fff}
.sheet .nav.on svg{color:#fff}
.sheet .nav:hover{background:var(--surface2)}
.sheet .nav.on:hover{background:var(--brand)}
.detail{background:var(--surface2);padding:14px 16px;border-bottom:1px solid var(--line)}
.stars{display:inline-flex;gap:2px}
.stars button{border:1px solid var(--line2);background:var(--surface);width:30px;height:30px;border-radius:6px;cursor:pointer;font-weight:700}
.stars button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.mcards{display:none}

@media (max-width: 1100px){
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .est-grid{grid-template-columns:minmax(0,1fr)}
  .totals{position:static}
}
@media (max-width: 820px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{display:none}
  .top{display:none}
  .mob-top{display:flex;position:sticky;top:0;z-index:20;background:#151515;color:#fff;align-items:center;gap:10px;padding:10px 16px}
  .mob-top .logo{width:26px;height:28px;color:#fff;flex:none}
  .mob-top b{font-weight:900;text-transform:uppercase;letter-spacing:.03em;font-size:15px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mob-top .chip-time{background:#232625;border-color:#333836;color:#fff;padding:4px 10px 4px 8px;font-size:12px}
  .mob-top .iconbtn{background:#232625;border-color:#333836;color:#fff;width:34px;height:34px}
  .content{padding:14px 16px calc(90px + env(safe-area-inset-bottom,0px));gap:14px}
  .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .bnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:6px 2px;font-size:11px;color:var(--muted);cursor:pointer;min-width:0}
  .bnav button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .bnav svg{width:22px;height:22px}
  .bnav button.on{color:var(--hi);font-weight:700}
  .g2,.g3,.g-main{grid-template-columns:minmax(0,1fr)}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile b{font-size:19px}
  .login{grid-template-columns:minmax(0,1fr)}
  .login-l{padding:32px 0 24px}
  .login-l .logo{margin-left:16px;width:64px;height:68px}
  .login-band{padding:14px 16px;margin-right:16px}
  .login-l p,.login-l .rule,.login-l small{margin-left:16px;margin-right:16px}
  .dtable{display:none}
  .mcards{display:flex;flex-direction:column}
  .pick-foot{bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .ctr button{width:48px;height:48px}
}
.confirm svg{width:20px;height:20px;flex:none}
.pick .meta{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pick .nm{overflow-wrap:anywhere}
@media (max-width: 820px){
  .pick{flex-wrap:wrap}
  .pick .grow{flex:1 1 calc(100% - 60px)}
  .pick .ctr{margin-left:auto}
}
.tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.totals .ln b{white-space:nowrap}
@media (max-width: 820px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile b{font-size:17px}}
.content>.seg{align-self:flex-start}

:root{--y26:#008300;--y25:#2a78d6;--y24:#eb6834;--y23:#4a3aa7}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--y26:#1baf7a;--y25:#3987e5;--y24:#d95926;--y23:#9085e9}}
:root[data-theme="dark"]{--y26:#1baf7a;--y25:#3987e5;--y24:#d95926;--y23:#9085e9}
/* login */
.login2{min-height:100vh;background:#151515;display:grid;place-items:center;padding:24px 16px}
.lg-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;color:#fff}
.lg-card .f label{color:#A9B2AC}
.lg-card input{background:#1F2221;border-color:#343936;color:#fff;min-height:44px}
.lg-logo{width:120px;height:126px;color:#fff;margin:0 auto 6px}
.lg-band{background:var(--brand);color:#fff;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:18px;margin:0 -16px 6px}
.lg-btn{min-height:46px;font-size:16px;margin-top:4px}
.lg-err{color:#F07070;font-size:13px}
.modal .lg-err{color:var(--crit)}
.lg-note{color:#6F7872;text-align:center}
/* hello */
.hello{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);background:#151515;color:#fff;border-radius:var(--r);overflow:hidden}
.hello-l{padding:22px 24px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.hello-l h1{margin:0;font-size:clamp(24px,3vw,34px);font-weight:900;letter-spacing:-.01em}
.hello-l p{margin:0;color:#A9B2AC}
.hello-k{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#8FE3B5;font-weight:700}
.hello-c{background:var(--brand);padding:20px 24px;display:flex;flex-direction:column;gap:6px;justify-content:center}
.counter{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.counter span{font-size:clamp(40px,6vw,64px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.counter small{font-size:18px;font-weight:700;color:#CFE6D8}
.hello-s{display:flex;gap:18px;flex-wrap:wrap;color:#CFE6D8;font-size:13px}
.hello-s b{color:#fff}
/* period */
.perbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.msel{width:auto;min-height:34px;padding:5px 8px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:0}
.d-up{color:var(--good);font-weight:700} .d-dn{color:var(--crit);font-weight:700}
.tile.hero .d-up{color:#8FE3B5} .tile.hero .d-dn{color:#FFB4B4}
.tile.hero .sub{color:#BFD8C9}
/* tables compact */
table.tight th{padding:6px 8px;font-size:11px}
table.tight td{padding:6px 8px}
.heat{background:color-mix(in srgb,var(--hi) calc(var(--h)*28%),transparent)}
table.stock{font-size:13px}
table.stock th{padding:6px 8px;font-size:11px;position:sticky;top:0;z-index:1}
table.stock td{padding:2px 8px;border-bottom:1px solid var(--line)}
table.stock tr.cat td{background:var(--brand);color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;padding:6px 8px}
table.stock tr.cat .sub{color:#BFD8C9}
table.stock tr.neg td{background:var(--crit-soft)}
table.stock .nm{max-width:460px}
table.stock .t1{display:block;line-height:1.25}
table.stock .t2{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:440px}
input.cell.s{min-height:22px;height:24px;padding:1px 6px;width:60px;font-size:12.5px;border-color:transparent;background:transparent}
table.stock tr:hover input.cell.s,input.cell.s:focus{border-color:var(--line2);background:var(--surface)}
.cell-s{min-height:22px;height:24px;padding:0 4px;font-size:12px;width:auto}
.btn.xs{padding:2px 8px;min-height:24px;font-size:11.5px;border-radius:6px}
.av-warn{color:var(--warn)}
.whbar{position:sticky;top:64px;z-index:6;background:var(--bg);padding:6px 0}
.linkbtn{background:none;border:0;padding:4px 0;color:var(--hi);cursor:pointer;display:inline-flex;gap:6px;align-items:center;font-size:12.5px;text-align:left}
.linkbtn svg{width:15px;height:15px}
.linkbtn.warn{color:var(--warn)}
.iconbtn.dk{background:#232625;border-color:#333836;color:#E9ECEA;width:32px;height:32px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chipc{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line2);border-radius:20px;padding:4px 10px;font-size:13px;cursor:pointer}
.chipq{border:1px solid var(--line2);background:var(--surface);border-radius:16px;padding:5px 10px;font-size:12.5px;cursor:pointer;text-align:left}
.chipq:hover{border-color:var(--hi);color:var(--hi)}
.salgrid{display:grid;grid-template-columns:repeat(12,minmax(64px,1fr));gap:6px}
.salgrid input{width:100%}
.clhead h2{margin:0;font-size:22px;font-weight:900}
details summary{cursor:pointer}
/* modal */
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,calc(100% - 32px));max-height:calc(100% - 48px);overflow:auto;background:var(--surface);border-radius:12px;z-index:70;box-shadow:var(--shadow)}
.modal-hd{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}
.modal-hd h3{margin:0;font-size:15px;flex:1}
.modal-bd{padding:16px 18px 18px}
.sheet-bg{z-index:65}
.sheet{z-index:66}
/* schedule */
.schedgrid{display:grid;grid-template-columns:repeat(var(--n),minmax(250px,1fr));gap:0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);scroll-snap-type:x proximity}
.sd{border-left:1px solid var(--line);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column}
.sd:first-child{border-left:0}
.sd-h{display:flex;gap:8px;align-items:baseline;padding:8px 10px;background:var(--surface2);border-bottom:1px solid var(--line);position:sticky;top:0}
.sd-h b{font-size:16px;font-variant-numeric:tabular-nums}.sd-h span{color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.05em}
.sd-h em{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--brand);padding:1px 7px;border-radius:10px}
.sd.we .sd-h{background:var(--surface3)}
.sd.today .sd-h{background:var(--brand);color:#fff}.sd.today .sd-h span{color:#BFD8C9}.sd.today .sd-h em{background:#fff;color:var(--brand)}
.sd-sub{display:grid;grid-template-columns:1fr 1fr;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line)}
.sd-sub span{padding:4px 8px}.sd-sub span+span{border-left:1px dashed var(--line)}
.sd-b{display:grid;grid-template-columns:1fr 1fr;flex:1}
.sd-w,.sd-l{padding:6px;display:flex;flex-direction:column;gap:6px;min-width:0}
.sd-l{border-left:1px dashed var(--line);background:color-mix(in srgb,var(--surface2) 50%,transparent)}
.sd-empty{color:var(--muted);font-size:12px;padding:4px}
.blk{border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:var(--surface);font-size:12px;line-height:1.3}
.blk-t{font-weight:700;margin-bottom:2px;overflow-wrap:anywhere}
.blk-r{display:flex;gap:6px;justify-content:space-between}.blk-r span{color:var(--muted)}.blk-r b{font-weight:500;text-align:right}
.blk-p{color:var(--ink2)}
.blk.mn{border-left:3px solid var(--hi)}.blk.dm{border-left:3px solid var(--warn)}.blk.dl{border-left:3px solid var(--info);background:var(--info-soft)}
.blk.crm{border-color:var(--info);background:var(--info-soft);cursor:pointer}
.xdel{border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
/* assistant */
.fab{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;align-items:center;gap:8px;background:var(--brand);color:#fff;border:0;border-radius:28px;padding:12px 18px 12px 14px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.fab svg{width:22px;height:22px}
.fab:hover{background:var(--brand-2)}
.chat{position:fixed;right:20px;bottom:84px;z-index:55;width:min(420px,calc(100% - 32px));height:min(560px,calc(100% - 120px));background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.chat-h{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#151515;color:#fff;flex-wrap:wrap}
.chat-h b{flex:none}.chat-h .sub{color:#8E9791;flex:1;min-width:0;font-size:11.5px}
.chat-h .iconbtn{background:#232625;border-color:#333836;color:#fff;width:32px;height:32px}
.chat-b{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:88%;padding:8px 11px;border-radius:12px;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.msg.assistant{align-self:flex-start;background:var(--surface2);border-bottom-left-radius:4px}
.msg.typing{color:var(--muted);font-style:italic}
.chat-hello{color:var(--muted);font-size:13.5px}
.chat-f{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.chat-f textarea{min-height:44px;flex:1}
/* pdf doc */
.edoc-host{position:fixed;left:-10000px;top:0;width:718px;background:#fff}
.edoc{width:718px;padding:18px 20px;box-sizing:border-box;background:#fff;color:#151515;font:12px/1.4 Roboto,Arial,sans-serif}
.edoc-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #004527;padding-bottom:12px}
.edoc-logo{width:64px;height:auto}
.edoc-contacts{text-align:right;color:#444;font-size:11px}
.edoc-title{margin-top:16px;background:#004527;color:#fff;font-weight:900;font-size:18px;padding:8px 12px;display:inline-block;letter-spacing:.03em}
.edoc-sub{color:#555;margin:6px 0 12px}
.edoc-meta{border-collapse:collapse;margin-bottom:12px}.edoc-meta td{padding:2px 12px 2px 0}.edoc-meta td:first-child{color:#666;width:150px}
.edoc-t{width:100%;border-collapse:collapse}.edoc-t th{background:#151515;color:#fff;padding:6px;font-size:11px;text-align:left}.edoc-t td{padding:5px 6px;border-bottom:1px solid #ddd}
.edoc-t .r{text-align:right;white-space:nowrap}.edoc-sec td{background:#E3EFE7;font-weight:700;color:#004527}
.edoc-tot{margin-left:auto;margin-top:10px;border-collapse:collapse;width:340px}.edoc-tot td{padding:4px 8px}.edoc-tot td:last-child{text-align:right;white-space:nowrap}.edoc-tot tr.b td{font-weight:900;font-size:15px;border-top:2px solid #004527}
.edoc-foot{margin-top:18px;color:#666;font-size:10.5px}
.xh{position:absolute;top:14px;bottom:30px;width:1px;background:var(--line2);pointer-events:none}
.chart{position:relative}
.tip i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
@media (max-width: 820px){
  .hello{grid-template-columns:minmax(0,1fr)}
  .fab{right:14px;bottom:calc(76px + env(safe-area-inset-bottom,0px));padding:12px}
  .fab span{display:none}
  .pick-foot{padding-right:64px}
  .chat{right:8px;left:8px;width:auto;bottom:calc(140px + env(safe-area-inset-bottom,0px));height:calc(100% - 210px)}
  .schedgrid{grid-template-columns:repeat(var(--n),86vw)}
  .salgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .whbar{top:0}
  table.stock .t2{max-width:220px}
}

.pbtn{opacity:.0}
table.stock tr:hover .pbtn,table.stock tr.neg .pbtn,table.stock tr.zero .pbtn,.pbtn:focus-visible{opacity:1}
@media (hover:none){.pbtn{opacity:1}}
.content{padding-bottom:96px}
.rail .me b{font-size:12.5px}
.rail .me .iconbtn.dk{width:28px;height:28px}
.rail .me .iconbtn.dk svg{width:15px;height:15px}
table.stock .t1{font-size:13px}
table.stock td.nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:560px}
table.stock .t1{display:inline;font-size:13px}
table.stock .t2{display:inline;margin-left:8px;max-width:none}
table.stock .cell-s{border-color:transparent;background:transparent}
table.stock tr:hover .cell-s,table.stock .cell-s:focus{border-color:var(--line2);background:var(--surface)}
table.stock td{height:28px}
@media (max-width: 820px){table.stock td.nm{max-width:220px}}


/* ===== v3 ===== */
.editsw{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line2);background:var(--surface);color:var(--ink2);border-radius:18px;padding:6px 12px;cursor:pointer;font-size:13px;font-weight:500}
.editsw svg{width:16px;height:16px}.editsw.on{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.editbar{background:var(--warn-soft);color:var(--warn);font-size:13px;padding:7px 24px;border-bottom:1px solid var(--line)}
.bell{position:relative}.bdot{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:9px;background:var(--crit);color:#fff;font-size:10.5px;font-style:normal;font-weight:700;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface)}
.npanel{position:fixed;top:64px;right:16px;width:min(380px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);z-index:70}
.np-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}
.np-i{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 14px;cursor:pointer;color:var(--ink);font:inherit;font-size:13.5px}
.np-i small{color:var(--muted);font-size:11.5px}.np-i.unread{background:var(--hi-soft)}.np-i:hover{background:var(--surface2)}
/* home strip animation */
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative}
.strip .st{background:var(--surface);padding:14px 16px;display:flex;flex-direction:column;gap:2px;animation:stIn .6s both}
.strip .st:nth-child(2){animation-delay:.08s}.strip .st:nth-child(3){animation-delay:.16s}.strip .st:nth-child(4){animation-delay:.24s}.strip .st:nth-child(5){animation-delay:.32s}
.strip .st b{font-size:28px;font-weight:900;color:var(--hi);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.strip .st span{font-size:12px;color:var(--muted)}
.st-note{position:absolute;right:10px;top:6px;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
@keyframes stIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.share{font-style:normal;font-size:15px;font-weight:700;background:#8FE3B5;color:#0c2a1a;border-radius:14px;padding:2px 10px;margin-left:8px;align-self:center}
#flip{transition:opacity .25s}#flip.fade{opacity:.15}
@media (prefers-reduced-motion:reduce){.strip .st{animation:none}#flip{transition:none}}
/* goals */
.goal{padding:12px 0;border-bottom:1px solid var(--line)}.goal:last-child{border-bottom:0}
.goal-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.goal-h .sp{flex:1}
.goal-b{display:flex;flex-direction:column;gap:6px}
.bar.big{height:14px;border-radius:7px;position:relative;overflow:visible}.bar.big i{border-radius:7px}
.bar.big em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);border-radius:1px}
.bar.warn i{background:var(--warn)}
/* cost summary + engineer strip */
.cost-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cost-sum>div{background:var(--surface);padding:9px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cost-sum span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;line-height:1.25}
.cost-sum b{font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-sum .hi{background:var(--hi-soft)}.cost-sum .hi b{color:var(--hi)}
.eng14{grid-template-columns:repeat(7,minmax(0,1fr))}
@media (max-width:900px){.eng14{grid-template-columns:repeat(3,minmax(0,1fr))}}
table.cost20 td,table.cost20 th{font-size:12.5px}td.ex{max-width:200px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;margin:6px 0}.kv span{color:var(--muted)}
/* engineer report header (як «ЗВІТ ІНЖЕНЕРА NEW») */
.rephead{background:var(--brand);color:#fff;border-radius:var(--r);padding:14px 18px;display:flex;flex-direction:column;gap:10px}
.rh-t{font-weight:900;letter-spacing:.06em;font-size:15px}
.rh-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.rh-g>div{display:flex;flex-direction:column;gap:3px}.rh-g span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#BFD8C9}.rh-g b{font-size:15px}
.rh-g .msel{background:#fff;color:#151515;max-width:220px}
.ratebox summary{padding:12px 16px;cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.ratebox .bd{padding:0 16px 14px}
.f.wide{grid-column:1/-1}textarea.big-ta{min-height:96px;font-size:15px;line-height:1.45}
table.engtab td,table.engtab th{font-size:12px;vertical-align:top}table.engtab td.desc{min-width:220px;max-width:340px;white-space:normal}
tr.we td{background:color-mix(in srgb,var(--surface2) 60%,transparent)}
tr.arch td{opacity:.6}
.stacts{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
.iconbtn.sm{width:26px;height:26px;border-radius:6px}.iconbtn.sm svg{width:14px;height:14px}
table.state input.cell.fut{opacity:.55}
table.state td,table.state th{font-size:12px}
/* schedule */
.schedgrid.nolog .sd-b,.schedgrid.nolog .sd-sub{grid-template-columns:1fr}
.schedgrid.nolog{grid-template-columns:repeat(var(--n),minmax(190px,1fr))}
.blk-t[data-pickest],.blk-t[data-open-est]{cursor:pointer;text-decoration:underline dotted}
button.blk-r.slot{width:100%;background:none;border:0;padding:1px 0;font:inherit;color:inherit;cursor:pointer;text-align:left;border-radius:4px}
button.blk-r.slot:hover{background:var(--surface2)}button.blk-r.slot.free b{color:var(--warn);font-weight:700}
.slotadd{border:1px dashed var(--line2);background:none;border-radius:5px;color:var(--muted);font-size:11px;padding:2px 6px;cursor:pointer;align-self:flex-start;margin-top:3px}
.slotadd:hover{color:var(--hi);border-color:var(--hi)}
.cmonth{display:flex;flex-direction:column;gap:4px}
.cm-h,.cm-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cm-h span{font-size:11px;text-transform:uppercase;color:var(--muted);text-align:center;font-weight:700}
.cm-c{min-height:88px;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:5px;display:flex;flex-direction:column;gap:3px;text-align:left;font:inherit;color:inherit;min-width:0}
button.cm-c{cursor:pointer}button.cm-c:hover{border-color:var(--hi)}
.cm-c.void{border:0;background:none}.cm-c.today{border-color:var(--hi);box-shadow:inset 0 0 0 1px var(--hi)}.cm-c.busy{background:var(--warn-soft)}
.cm-c b{font-size:12px}.cm-c small{font-size:10.5px;color:var(--muted)}
.cm-i{font-size:10.5px;line-height:1.25;padding:1px 4px;border-radius:3px;background:var(--surface2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-i.k-w{background:var(--hi-soft)}.cm-i.k-l{background:var(--info-soft)}.cm-i.k-e{background:var(--warn-soft)}.cm-i em{font-style:normal;color:var(--warn);font-weight:700}
@media (max-width:700px){.cm-c{min-height:54px}.cm-i{display:none}.cm-c.busy b,.cm-c:has(.cm-i) b{color:var(--hi)}}
iframe.gcal{width:100%;height:620px;border:0;display:block;border-radius:var(--r)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:8px}
.pcard.sel{border-color:var(--hi);box-shadow:inset 0 0 0 1px var(--hi)}
.pc-h{display:flex;gap:10px;align-items:center}.pc-h .grow{min-width:0}
.pc-c{font-size:13px}.pc-c a{color:var(--hi)}
.pc-b{display:flex;gap:5px;flex-wrap:wrap}
.pre{white-space:pre-line}
.chipq{border:1px solid var(--line2);background:var(--surface);border-radius:14px;padding:3px 9px;font-size:12px;cursor:pointer;margin:2px}
table.engtab td:nth-child(3),table.engtab td:nth-child(14){min-width:170px;max-width:260px;white-space:normal}
.rephead .pill{background:#fff;color:#0c2a1a}
.cm-n{display:none;font-style:normal;font-size:11px;font-weight:700;color:var(--hi)}
@media (max-width:700px){.cm-c small{display:none}.cm-n{display:block}}
/* ===== v4: таблиці як у Google Sheets ===== */
.xsheet{background:#fff;color:#151515;border:1px solid #cfd6d1;border-radius:6px;overflow:hidden;--xg:#2e6b4a;--xgd:#1d4a33;--xn:#1f3b5c;--xt:#1d6f7a;--xlb:#e8f1f8;--xly:#fffbea}
.xs-title{background:var(--xn);color:#fff;font-weight:900;font-size:17px;padding:8px 12px;letter-spacing:.02em}
.xs-info{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 12px;background:#eef3ef;font-size:13px;border-bottom:1px solid #cfd6d1}
.xs-info>span{font-weight:700;color:#2b3a30}.xs-info .msel{background:#fff;color:#151515;min-height:28px}
.xs-kpi{display:grid;grid-template-columns:repeat(14,minmax(88px,1fr));border-bottom:1px solid #cfd6d1;overflow-x:auto}
.xs-kpi>div{display:flex;flex-direction:column;border-right:1px solid #dfe5e0;min-width:0}
.xs-kpi span{font-size:11px;font-weight:700;text-align:center;padding:6px 4px;min-height:38px;display:grid;place-items:center;line-height:1.2}
.xs-kpi b{font-size:16px;text-align:center;padding:8px 4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.xs-kpi .g span{background:var(--xg);color:#fff}.xs-kpi .g b{color:#0a8a2e}
.xs-kpi .nv span{background:var(--xn);color:#fff}.xs-kpi .nv b{background:var(--xlb);color:var(--xn)}
.xs-kpi .pl span{color:#333}.xs-kpi .pl b{color:#151515}
@media (max-width:900px){.xs-kpi{grid-template-columns:repeat(7,minmax(88px,1fr))}}
.xs-tw{border:0;border-radius:0}
table.xs-t{border-collapse:collapse;width:100%;font-size:12px;background:#fff;color:#151515}
.xs-t th{background:var(--xg);color:#fff;font-weight:700;font-size:11px;padding:6px 5px;border:1px solid #fff3;text-align:center;line-height:1.2;position:sticky;top:0;z-index:1}
.xs-t th small{font-weight:400;opacity:.85}.xs-t th.tl{background:var(--xt)}
.xs-t td{border:1px solid #dfe5e0;padding:4px 6px;vertical-align:top;height:24px}
.xs-t td.dt{color:#0a8a2e;white-space:nowrap}.xs-t td.bl{color:#1a4fd6}.xs-t td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.xs-t td.desc{min-width:240px;max-width:380px}.xs-t td.cmx{min-width:140px;max-width:220px}
.xs-t td.mg{background:var(--xlb);white-space:nowrap}.xs-t td.yl{background:var(--xly)}
.xs-t td.rt5{background:#63be7b;color:#08361a;font-weight:700}.xs-t td.rt4{background:#ffd666}.xs-t td.rtl{background:#f8696b;color:#fff;font-weight:700}
.xs-t tr.we td{background:#f0f2f1}.xs-t tr.we td.mg{background:#e3ebf2}.xs-t tr.we td.yl{background:#f6f2de}
.xs-t tr.fillme{cursor:pointer}.xs-t tr.fillme:hover td{background:#e6f4ea}
.xs-t tr.sel td{background:#dcefe2}.xs-t tr.click{cursor:pointer}.xs-t td.nb{border-left:0;width:20px}
.xs-t tfoot td{background:var(--xgd);color:#fff;font-weight:700;border-color:#ffffff22}
.xs-under{padding:10px 12px 12px}
table.xs-p{border-collapse:collapse;font-size:12.5px;min-width:520px;color:#151515}.xs-p th{background:var(--xg);color:#fff;padding:5px 10px;text-align:left}.xs-p td{border:1px solid #dfe5e0;padding:4px 10px}.xs-p td.n{text-align:right;color:#0a8a2e;font-weight:700}
.xs-sum td.dt{font-weight:700}
/* COST 2.0 */
.c20-tw{background:#fff;border:1px solid #cfd6d1;border-radius:6px}
table.c20{border-collapse:collapse;font-size:12px;color:#151515;min-width:100%;--cg:#2e6b4a;--cb:#2c5d80}
.c20 th,.c20 td{border:1px solid #d9e0da;padding:4px 6px;vertical-align:middle}
.c20 tr.sumbar td{background:#17442f;color:#fff;font-weight:700;white-space:nowrap}
.c20 tr.hd1 th{background:var(--cg);color:#fff;font-size:11px;font-weight:700;text-align:center;line-height:1.2;min-width:70px}
.c20 tr.hd1 th.h2{background:var(--cb)}
.c20 tr.bg1>td{background:#e1eaf6}.c20 tr.bg2>td{background:#e9f3ec}.c20 tr>td.r2{background:#eef5fb}
.c20 tr.first>td{border-top:3px solid #fff}
.c20 td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.c20 td.ex{min-width:230px;max-width:280px;white-space:pre-line}
.c20 td.l{min-width:140px}.c20 .c2{border:1px solid #b9c4bc;background:#fff;color:#151515;border-radius:3px;padding:2px 4px;font-size:12px;min-height:24px;font-family:inherit}
.c20 textarea.c2{width:100%;min-width:170px;resize:vertical}
.c20 .ok2{color:#0a8a2e}.c20 .linkbtn{font-size:11.5px;padding:0}.c20 tfoot td{font-weight:700}
.c20 tr.click{cursor:pointer}.c20 tr.click:hover>td{filter:brightness(.97)}
.warnc{color:var(--crit)!important;font-weight:700}
.ks-t td{white-space:nowrap}.ks-t td:first-child{white-space:normal;min-width:160px}
.ks-pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:#cfd6d1;border:1px solid #cfd6d1;border-radius:6px;overflow:hidden}
.ks-pay>div{background:#fff;color:#151515;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.ks-pay span{font-size:11px;color:#5b635e;text-transform:uppercase;letter-spacing:.04em}.ks-pay b{font-size:16px}.ks-pay .hi{background:#e3efe7}.ks-pay .hi b{color:#004527}
/* attention */
.att .att-i{padding:10px 16px;gap:12px}.cnt2{min-width:30px;height:30px;border-radius:15px;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--surface2)}
.cnt2.crit{background:var(--crit-soft);color:var(--crit)}.cnt2.warn{background:var(--warn-soft);color:var(--warn)}.cnt2.info{background:var(--info-soft);color:var(--info)}
.confirm.okc{background:var(--good-soft);border-color:var(--good)}.confirm .grow{flex:1;min-width:0}
.li.ck{cursor:pointer;gap:10px}.li.ck.ok{opacity:.85}.fnd.dec{opacity:.6}
/* ===== v5 ===== */
.stagebar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;background:#f6f8f6;border-bottom:1px solid #cfd6d1;color:#151515;font-size:12.5px}
.stagebar i{color:#98a29b;font-style:normal}.stg{padding:2px 8px;border-radius:12px;background:#e8ece9;color:#5b635e}.stg.on{background:#004527;color:#fff;font-weight:700}
.stp{display:flex;flex-wrap:wrap;gap:3px;margin:6px 0 4px}.stp .pill{font-size:10.5px;padding:1px 6px}
.mtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.mtile{display:flex;flex-direction:column;gap:3px;text-align:left;background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--ink);font:inherit}
.mtile:hover{border-color:var(--hi)}.mtile span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.mtile b{font-size:18px}.mtile small{font-size:11.5px;color:var(--muted)}
button.blk-r.slot.sl-p b{color:var(--info)}button.blk-r.slot.sl-ok b{color:var(--good)}button.blk-r.slot.sl-no b{color:var(--crit);text-decoration:line-through}
table.stock tfoot td{font-weight:700;border-top:2px solid var(--line2)}
/* v6 staff occupancy table */
.st-wrap{overflow:auto;max-height:72vh;border:1px solid var(--line);border-radius:12px}
table.st-t{border-collapse:separate;border-spacing:0;font-size:12px;min-width:max-content}
table.st-t th,table.st-t td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0}
table.st-t thead th{position:sticky;top:0;background:var(--surface);z-index:2}
table.st-t .st-name{position:sticky;left:0;background:var(--surface);z-index:1;min-width:250px;max-width:280px;text-align:left;padding:6px 8px}
table.st-t thead .st-name{z-index:3}
.st-nm{display:flex;gap:6px;align-items:center}.st-nm .grow{min-width:0}.st-nm .sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.st-nm select{font-size:11px;padding:2px 4px;width:100px;margin-left:auto;flex:none}
.st-nm .mv{display:flex;flex-direction:column;gap:1px}
.xs-mv{border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:9px;line-height:1;width:20px;height:14px;padding:0;border-radius:4px;cursor:pointer}
.xs-mv:disabled{opacity:.3;cursor:default}
.st-d{width:26px;min-width:26px;text-align:center;padding:3px 0!important;font-weight:500}
.st-d b{display:block;font-size:12px}.st-d small{display:block;font-size:9px;color:var(--muted)}
.st-d.we,td.st-c.we{background:color-mix(in srgb,var(--muted) 9%,transparent)}
.st-d.td{background:color-mix(in srgb,var(--hi) 22%,transparent)!important}
td.st-c{width:26px;min-width:26px;height:30px;cursor:pointer}
td.st-c:hover{outline:2px solid var(--hi);outline-offset:-2px}
td.st-c.bb,.lg.bb{background:var(--hi)!important}
td.st-c.bp,.lg.bp{background:var(--info)!important}
td.st-c.bi,.lg.bi{background:var(--warn)!important}
.lg{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px;border:1px solid var(--line)}
.lg.mk-off{background:#9aa0a6}.lg.mk-bad{background:var(--crit)}
.st-grp td{background:var(--bg);font-weight:600;font-size:12px;padding:6px 8px!important;position:sticky;left:0}
tr.mk-off td.st-name{background:color-mix(in srgb,#9aa0a6 25%,var(--surface))}
tr.mk-off td.st-name b{text-decoration:line-through;color:var(--muted)}
tr.mk-off td.st-c:not(.bb):not(.bp):not(.bi){background:repeating-linear-gradient(45deg,transparent 0 4px,color-mix(in srgb,#9aa0a6 25%,transparent) 4px 6px)}
tr.mk-bad td.st-name{background:color-mix(in srgb,var(--crit) 18%,var(--surface));box-shadow:inset 3px 0 var(--crit)}
tr.mk-good td.st-name{box-shadow:inset 3px 0 var(--hi)}
.legend{display:flex;flex-wrap:wrap;gap:12px}
/* tender statuses */
.ts-new{--tc:#9aa0a6}.ts-run{--tc:var(--warn)}.ts-sub{--tc:var(--info)}.ts-won{--tc:var(--good)}.ts-lost{--tc:var(--crit)}.ts-skip{--tc:#6b7280}
.tchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer}
.tchip i{width:9px;height:9px;border-radius:50%;background:var(--tc)}
.tchip b{font-weight:600;color:var(--muted)}
.tchip.on{border-color:var(--tc,var(--ink));background:color-mix(in srgb,var(--tc,var(--ink)) 14%,var(--surface));box-shadow:inset 0 0 0 1px var(--tc,var(--ink))}
.tchip.on b{color:var(--ink)}
tr.tsr td:first-child{box-shadow:inset 4px 0 var(--tc)}
tr.tsr.ts-won td{background:color-mix(in srgb,var(--good) 7%,transparent)}
tr.tsr.ts-lost td{background:color-mix(in srgb,var(--crit) 5%,transparent)}
tr.tsr.ts-skip td{color:var(--muted)}
select.ts-sel{background:color-mix(in srgb,var(--tc) 16%,var(--surface));border-color:color-mix(in srgb,var(--tc) 55%,var(--line));font-weight:500}
.tsp{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500;background:color-mix(in srgb,var(--tc) 16%,transparent);color:var(--ink);border:1px solid color-mix(in srgb,var(--tc) 50%,transparent)}
tr.clk{cursor:pointer}tr.clk:hover td{background:var(--hi-soft)}
.armed{outline:2px solid var(--crit)!important;color:var(--crit)!important}
/* відбір: чіткі галочки */
.pick .allbtn{width:56px;height:52px;flex-direction:column;gap:1px;border:2px solid var(--line2);color:transparent}
.pick .allbtn small{font-size:10px;color:var(--muted);line-height:1}
.pick .allbtn svg{width:22px;height:22px;color:var(--line2)}
.pick.part .allbtn{border-color:var(--warn);background:var(--warn-soft)}
.pick.part .allbtn svg{color:var(--warn)}
.pick.done .allbtn svg,.pick.done .allbtn small{color:#fff}
.pick.done{border-color:var(--good);background:var(--good-soft)}
.pick-hint{margin:4px 0 8px}
.fin-top{margin-bottom:14px}.fin-top .seg button{font-weight:600}
tr.pay-sp td:first-child{box-shadow:inset 3px 0 var(--hi)}
.pay-t td{vertical-align:middle}
/* кращі в команді */
.best-hero{display:grid;grid-template-columns:1fr 1fr .8fr;gap:12px;margin:14px 0}
@media(max-width:900px){.best-hero{grid-template-columns:1fr}}
.bh-card{background:linear-gradient(135deg,var(--brand),#0b2a1b);color:#fff;border-radius:14px;padding:16px 18px}
.bh-card.sm{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.bh-card.sm p{margin:8px 0 0}
.bh-k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.8;font-weight:600}
.bh-row{display:flex;gap:14px;align-items:center;margin-top:10px}.bh-row b{font-size:20px;display:block}.bh-row small{opacity:.8}
.bh-card .bring .bg{stroke:rgba(255,255,255,.18)}.bh-card .bring .fg{stroke:#7be0a6}.bh-card .bring text{fill:#fff}
.bring{width:64px;height:64px;flex:none}.bring circle{fill:none;stroke-width:7}.bring .bg{stroke:var(--line)}.bring .fg{stroke:var(--hi);stroke-linecap:round}.bring text{font-size:17px;font-weight:700;fill:var(--ink)}
.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:end}
.pod{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px 10px;cursor:pointer;font:inherit;color:var(--ink);position:relative}
.pod.p1{order:2;padding-top:22px;border-color:var(--hi);box-shadow:0 6px 18px -10px var(--hi)}.pod.p2{order:1}.pod.p3{order:3}
.pod small{color:var(--muted);font-size:11px;line-height:1.35}
.medal{position:absolute;top:-10px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:#9aa0a6}
.p1 .medal{background:#d4a017}.p3 .medal{background:#b87333}
.sbar{display:inline-flex;width:120px;height:9px;border-radius:5px;overflow:hidden;background:var(--line);vertical-align:middle;margin-right:8px}
.sbar i{display:block;height:100%}
.c0{background:var(--hi)}.c1{background:var(--viz-a)}.c2{background:var(--info)}.c3{background:var(--warn)}.c4{background:#8e6cc0}.c5{background:#3aa39a}.c6{background:#c0588e}
.lg.c0,.lg.c1,.lg.c2,.lg.c3,.lg.c4,.lg.c5,.lg.c6{border:0}
table.best-t tr.sel td{background:var(--hi-soft)}


/* ================= v8: м’який «workspace» стиль — шавлієві зелені, багато повітря, заокруглені картки ================= */
:root{
  --bg:#F5F7F6; --surface:#FFFFFF; --surface2:#F3F6F4; --surface3:#EAF0EC;
  --ink:#1F2A25; --ink2:#46534C; --muted:#75817A; --line:#E6EBE8; --line2:#D9E0DC;
  --hi:#3E7D5C; --hi-soft:#EAF4EE; --brand:#4F8A6A; --brand-2:#3E7D5C; --sage:#C7DFD0; --sage2:#7BAA8C;
  --good:#3E7D5C; --good-soft:#E6F2EA; --warn:#A06A1B; --warn-soft:#FBF1E0; --crit:#B8483F; --crit-soft:#FBEAE7; --info:#4A74A8; --info-soft:#E8EFF8;
  --viz-a:#C7DFD0; --viz-b:#6FA283; --viz-c:#5C87B8; --grid:#EDF1EE;
  --rail:#FFFFFF; --rail-ink:#3A4640; --rail-muted:#6F7C75; --rail-hover:#F2F6F3;
  --r:16px; --shadow:0 1px 2px rgba(31,42,37,.04);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#141816;--surface:#1B201D;--surface2:#212723;--surface3:#28302B;--ink:#E9EEEA;--ink2:#C5CEC8;--muted:#8E9A93;--line:#2A312D;--line2:#343C37;--hi:#7FC39B;--hi-soft:#1E2E25;--brand:#5E9C79;--brand-2:#6FAE8A;--sage:#2F4A3B;--sage2:#5E9C79;--good:#7FC39B;--good-soft:#1C2D23;--warn:#E0B060;--warn-soft:#352B18;--crit:#EC8A80;--crit-soft:#3A2220;--viz-a:#34503F;--viz-b:#7FC39B;--viz-c:#7FA6D6;--grid:#252C28;--rail:#1B201D;--rail-ink:#D4DCD7;--rail-muted:#8E9A93;--rail-hover:#222925}}
:root[data-theme="dark"]{--bg:#141816;--surface:#1B201D;--surface2:#212723;--surface3:#28302B;--ink:#E9EEEA;--ink2:#C5CEC8;--muted:#8E9A93;--line:#2A312D;--line2:#343C37;--hi:#7FC39B;--hi-soft:#1E2E25;--brand:#5E9C79;--brand-2:#6FAE8A;--sage:#2F4A3B;--sage2:#5E9C79;--good:#7FC39B;--good-soft:#1C2D23;--warn:#E0B060;--warn-soft:#352B18;--crit:#EC8A80;--crit-soft:#3A2220;--viz-a:#34503F;--viz-b:#7FC39B;--viz-c:#7FA6D6;--grid:#252C28;--rail:#1B201D;--rail-ink:#D4DCD7;--rail-muted:#8E9A93;--rail-hover:#222925}
body{font-size:14.5px;letter-spacing:.005em}

/* --- меню --- */
.app{grid-template-columns:256px minmax(0,1fr)}
.rail{background:var(--rail);border-right:1px solid var(--line);padding:26px 18px 18px;gap:2px}
.rail .brandrow{border:0;padding:0 8px 18px;margin:0;gap:10px}
.rail .brandrow .logo{width:30px;height:32px;color:var(--brand)}
.rail .brandrow b{color:var(--brand);font-size:22px;font-weight:700;letter-spacing:-.02em;text-transform:none}
.rail .brandrow span{color:var(--muted);font-size:10.5px;letter-spacing:.2em;font-weight:700;margin-top:3px}
.navgrp{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:16px 10px 6px}
.nav{padding:9px 12px;border-radius:12px;border:0;color:var(--rail-ink);font-size:14.5px;font-weight:500;letter-spacing:0;text-transform:none;gap:12px}
.nav svg{width:20px;height:20px;color:var(--rail-muted);stroke-width:1.6}
.nav:hover{background:var(--rail-hover);color:var(--ink)}
.nav.on{background:var(--hi-soft);color:var(--hi);font-weight:600}
.nav.on svg{color:var(--hi)}
.nav .cnt{background:var(--sage);color:var(--hi);font-weight:700}
.nav.on .cnt{background:var(--sage)}
.rail .me{border-top:1px solid var(--line);padding:16px 8px 0;margin-top:auto}
.rail .me b{color:var(--ink)}.rail .me small{color:var(--muted)}
.rail .me .av{background:var(--hi-soft);color:var(--hi)}
.iconbtn.dk{background:none;border-color:transparent;color:var(--muted)}
.iconbtn.dk:hover{color:var(--hi);background:var(--hi-soft)}

/* --- верх: «хлібні крихти» + великий заголовок у сторінці --- */
.top{background:var(--surface);padding:14px 36px;min-height:72px;border-bottom:1px solid var(--line)}
.ptitle{background:none;color:var(--ink2);padding:0;font-size:15px;font-weight:500;text-transform:none;letter-spacing:0}
.ptitle .crumb{color:var(--muted);font-weight:400}
.pg-head{display:flex;flex-direction:column;gap:6px;margin-bottom:2px}
.pg-k{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.pg-h{margin:0;font-size:32px;line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.iconbtn{border:0;background:none;color:var(--ink2);width:40px;height:40px;border-radius:12px}
.iconbtn svg{width:20px;height:20px}
.iconbtn:hover{background:var(--hi-soft);color:var(--hi)}
.chip-time,.editsw{border-color:var(--line)!important;border-radius:12px!important;background:var(--surface)}
.content{padding:30px 40px 72px;gap:22px}

/* --- вкладки: м’які «таблетки» в сірій підкладці --- */
.seg{background:var(--surface2);border:0;border-radius:14px;padding:4px;gap:2px;flex-wrap:wrap;overflow:visible}
.seg button{border:0!important;border-radius:10px;padding:8px 16px;color:var(--ink2);font-weight:500;font-size:14px;text-transform:none;letter-spacing:0;background:none}
.seg button+button{border-left:0!important}
.seg button:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.seg button.on{background:var(--surface);color:var(--hi);font-weight:600;box-shadow:0 1px 3px rgba(31,42,37,.10)}
/* фільтри й періоди — легші, окремими кнопками */
.perbar .seg,.row .seg,.card .seg{background:none;padding:0;gap:6px}
.perbar .seg button,.row .seg button,.card .seg button{border:1px solid var(--line2)!important;border-radius:20px;padding:6px 14px;font-size:13px;background:var(--surface)}
.perbar .seg button.on,.row .seg button.on,.card .seg button.on{background:var(--hi-soft);border-color:var(--sage2)!important;color:var(--hi);box-shadow:none}
.fin-top .seg{background:var(--surface2)!important;padding:4px!important;gap:2px!important}
.fin-top .seg button{border:0!important;border-radius:10px!important;padding:9px 18px!important;font-size:14px!important;background:none!important}
.fin-top .seg button.on{background:var(--surface)!important;color:var(--hi)!important;box-shadow:0 1px 3px rgba(31,42,37,.10)!important}

/* --- картки --- */
.card{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card>.hd{padding:22px 26px 14px}
.card>.hd h3{font-size:18px;letter-spacing:-.01em;text-transform:none;color:var(--ink);font-weight:600}
.card>.bd{padding:0 26px 24px}
.card>.bd.flush{padding:0}
.card>.bd.flush .tw{border-radius:0 0 var(--r) var(--r)}

/* --- таблиці: світла шапка, м’які лінії --- */
th{font-size:13px;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface2)}
td{padding:14px 16px;border-bottom:1px solid var(--line)}
table.tight td,table.tight th{padding:11px 14px}
tr.click:hover td,tr.clk:hover td{background:var(--surface2)}
tr.sel td{background:var(--hi-soft)}

/* --- плитки --- */
.tiles{gap:16px}
.tile{padding:20px 22px;border:1px solid var(--line);border-radius:var(--r);gap:6px}
.tile span{font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink2);font-weight:500}
.tile b{font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin-top:6px}
.tile small{font-size:12.5px;color:var(--muted)}
.tile.hero{background:var(--hi-soft);border-color:var(--sage);color:var(--ink);box-shadow:none}
.tile.hero b{color:var(--ink)}
.tile.hero span{color:var(--ink2)}.tile.hero small{color:var(--hi)}
.tile .d-up,.tile.hero .d-up{color:var(--good)!important}.tile .d-dn,.tile.hero .d-dn{color:var(--crit)!important}

/* --- кнопки й поля --- */
.btn{border-radius:12px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);min-height:40px;padding:8px 18px;font-weight:500}
.btn:hover{border-color:var(--sage2);color:var(--hi);background:var(--hi-soft)}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.pri:hover{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.btn.sm,.btn.xs{min-height:32px;border-radius:10px;padding:4px 12px}
.btn.danger{color:var(--crit)}.btn.danger:hover{background:var(--crit-soft);border-color:var(--crit);color:var(--crit)}
.linkbtn{color:var(--hi);font-weight:500}
input[type=text],input[type=url],input[type=email],input[type=tel],input[type=month],input[type=number],input[type=date],input[type=search],input[type=password],select,textarea{border:1px solid var(--line2);border-radius:12px;min-height:42px;background:var(--surface)}
input.cell,select.cell-s{border-radius:8px}
input:focus,select:focus,textarea:focus{border-color:var(--sage2);outline:none;box-shadow:0 0 0 4px var(--hi-soft)}

/* --- позначки, примітки --- */
.pill{border-radius:10px;padding:3px 10px;font-weight:500}
.pill.p-good{background:var(--good-soft);color:var(--good)}
.pill.p-warn{background:var(--warn-soft);color:var(--warn)}
.pill.p-crit{background:var(--crit-soft);color:var(--crit)}
.pill.p-info{background:var(--info-soft);color:var(--info)}
.note{border:0;border-radius:14px;background:var(--hi-soft);padding:14px 18px;color:var(--ink2)}
.note.warn{background:var(--warn-soft)}
.tag{border-radius:8px}

/* --- головна --- */
.hello{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r)}
.hello-l{padding:28px 30px}
.hello-l h1{font-weight:700;letter-spacing:-.02em}
.hello-l p{color:var(--muted)}
.hello-k{color:var(--muted);letter-spacing:.14em;font-weight:500}
.hello-c{background:var(--hi-soft);color:var(--ink)}
.hello-c .hello-k{color:var(--hi)}
.hello-c .counter,.hello-c .counter span{color:var(--ink)}
.hello-s{color:var(--ink2)}.hello-s b{color:var(--ink)}
.hello-c small,.hello-c em{color:var(--ink2)}
.bh-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:none}
.bh-card:first-child{background:var(--hi-soft);border-color:var(--sage)}
.bh-card .bring .bg{stroke:var(--line)}.bh-card .bring .fg{stroke:var(--sage2)}.bh-card .bring text{fill:var(--ink)}
.bh-k{color:var(--muted)}.bh-row small{color:var(--muted);opacity:1}
.bring .fg{stroke:var(--sage2)}
.pod{border-radius:14px}.pod.p1{border-color:var(--sage2);box-shadow:none}

/* --- дрібниці, які лишаються --- */
td .d-up,.detail .d-up{color:var(--good)}td .d-dn,.detail .d-dn{color:var(--crit)}
.sl-t input.cell{min-height:32px;padding:4px 8px}
tr.u-off td{background:color-mix(in srgb,var(--crit) 4%,transparent)}tr.u-off td b{color:var(--muted)}
.armed{outline:2px solid var(--crit)!important;color:var(--crit)!important}

@media (max-width:900px){.content{padding:18px 16px 96px}.pg-h{font-size:24px}.top{padding:12px 16px}}
.dev-f{display:flex;flex-direction:column;gap:18px}.dev-q{display:flex;flex-direction:column;gap:8px}.dev-q textarea{width:100%}
.dev-sc{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dev-dot{position:relative;cursor:pointer}.dev-dot input{position:absolute;opacity:0;pointer-events:none}
.dev-dot span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--line2);background:var(--surface);font-weight:600;color:var(--ink2)}
.dev-dot:hover span{border-color:var(--sage2)}.dev-dot.on span{background:var(--brand);border-color:var(--brand);color:#fff}
.dev-block{padding:12px 0;border-bottom:1px solid var(--line)}.dev-block:last-child{border-bottom:0}.dev-a{padding:4px 0 2px 12px;border-left:3px solid var(--sage);margin:6px 0}
/* вхід: світлий, поля читабельні */
.login2{background:var(--bg)!important}
.lg-card{background:var(--surface);color:var(--ink)!important;border:1px solid var(--line);border-radius:20px;padding:32px 30px;box-shadow:0 8px 30px rgba(31,42,37,.06)}
.lg-card .lg-logo{color:var(--brand)!important}
.lg-card .lg-band{background:none!important;color:var(--ink)!important;text-align:center;margin:0!important;font-size:24px;font-weight:700;padding:0!important;text-transform:none!important;letter-spacing:-.01em}
.lg-card .f label{color:var(--ink2)!important}
.lg-card input{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line2)!important}
.lg-card input:focus{border-color:var(--sage2)!important;box-shadow:0 0 0 4px var(--hi-soft)}
.lg-card .btn{min-height:46px}
.lg-card a,.lg-card small,.lg-card p{color:var(--muted)}
.ks-ed input.cell,.ks-ed select.cell-s,.ks-ed textarea.cell{min-height:34px;padding:4px 8px;font-size:13px;border-radius:8px}
.ks-ed input.cell.n{text-align:right}.ks-ed td.calc{background:var(--surface2);color:var(--ink2)}
.ks-pay small{display:block;font-size:11px;color:var(--muted)}
.cl-save{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);position:sticky;top:84px;z-index:6}
.cl-save.dirty{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.cl-save #clsavetxt{font-weight:500;color:var(--ink2)}
[data-dirty="1"]{border-color:var(--warn)!important;background:var(--warn-soft)!important}
.evchk{margin-top:6px}.evchk .pill{font-size:11.5px}
.tk-files{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inv-req{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.inv-req .pre{white-space:pre-wrap;line-height:1.5}
.inv-files{background:var(--hi-soft);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.inv-more{margin:4px 0}.inv-more summary{cursor:pointer;margin-bottom:8px}
td.docs-c{min-width:120px}
.bday-hero{display:flex;gap:16px;align-items:center;padding:18px 22px;border-radius:var(--r);background:linear-gradient(120deg,var(--hi-soft),color-mix(in srgb,var(--warn-soft) 70%,var(--surface)));border:1px solid var(--sage)}
.bday-hero .bh-emoji{font-size:34px;line-height:1}.bday-hero .bh-t{font-size:20px;font-weight:700;letter-spacing:-.01em}.bday-hero .bh-s{color:var(--ink2);margin-top:2px}
.sl-t input.cell{text-align:left}
tr.mk-mid td.st-name{box-shadow:inset 3px 0 var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface))}
tr.mk-good td.st-name{background:color-mix(in srgb,var(--good) 7%,var(--surface))}
.lg.mk-good{background:var(--good)}.lg.mk-mid{background:var(--warn)}
select.mk-sel{min-height:34px;font-size:13px;font-weight:600}
select.mk-sel.mk-good{background:var(--good-soft);color:var(--good);border-color:var(--good)}select.mk-sel.mk-mid{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}
select.mk-sel.mk-bad{background:var(--crit-soft);color:var(--crit);border-color:var(--crit)}select.mk-sel.mk-off{background:var(--surface2);color:var(--muted)}
.pill.mk-p.mk-good{background:var(--good-soft);color:var(--good)}.pill.mk-p.mk-mid{background:var(--warn-soft);color:var(--warn)}.pill.mk-p.mk-bad{background:var(--crit-soft);color:var(--crit)}.pill.mk-p.mk-off{background:var(--surface2);color:var(--muted)}
.sl-acts .iconbtn.sm{width:32px;height:32px}
tr.arch td{opacity:.65}
.sl-t td.sl-acts{white-space:nowrap;min-width:240px}.sl-acts .iconbtn{display:inline-grid;vertical-align:middle;margin-right:2px}.sl-acts .btn{vertical-align:middle}
/* графік: ширші колонки, доставка всередині логістики */
.schedgrid{grid-template-columns:repeat(var(--n),minmax(360px,1fr))}
.schedgrid.nolog{grid-template-columns:repeat(var(--n),minmax(240px,1fr))}
.sd-w,.sd-l{padding:8px;gap:8px}
.blk{padding:8px 10px;font-size:13px;border-radius:10px}
.blk-dl{margin-top:6px;padding:6px 8px;border-radius:8px;background:var(--info-soft);font-size:12.5px}
.blk-dl span{font-weight:600}
.pname{display:block;background:none;border:0;padding:1px 0;color:var(--ink2);text-align:left;cursor:pointer;font:inherit}
.pname:hover{color:var(--hi);text-decoration:underline}
.blk-r .pname{display:inline;font-weight:700;color:var(--ink)}
.pc-big{display:flex;gap:12px;align-items:center}.pc-big .av{width:48px;height:48px;font-size:16px}
/* таблиця зайнятості: менші й світліші квадрати */
td.st-c{width:20px;min-width:20px;height:22px;border-color:var(--line)!important}
.st-d{width:22px;min-width:22px}
td.st-c.bb{background:color-mix(in srgb,var(--hi) 42%,var(--surface))!important}
td.st-c.bp{background:color-mix(in srgb,var(--info) 40%,var(--surface))!important}
td.st-c.bi{background:color-mix(in srgb,var(--warn) 40%,var(--surface))!important}
.lg.bb{background:color-mix(in srgb,var(--hi) 42%,var(--surface))!important}
table.st-t td,table.st-t th{padding:0}
table.st-t .st-name{padding:4px 8px}
.mksel.mk-sel{width:140px}
/* меню темно-зелене у світлій темі */
:root:not([data-theme="dark"]) .rail{--rail:#1E4B35;--rail-ink:#E6F0EA;--rail-muted:#A9C7B5;--rail-hover:rgba(255,255,255,.08);border-right:0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .rail{--rail:#18201B;--rail-ink:#D4DCD7;--rail-muted:#8E9A93}}
:root:not([data-theme="dark"]) .rail .brandrow b,:root:not([data-theme="dark"]) .rail .brandrow .logo{color:#fff}
:root:not([data-theme="dark"]) .rail .brandrow span{color:#A9C7B5}
:root:not([data-theme="dark"]) .rail .navgrp{color:#8FB39E}
:root:not([data-theme="dark"]) .rail .nav.on{background:rgba(255,255,255,.14);color:#fff}
:root:not([data-theme="dark"]) .rail .nav.on svg{color:#fff}
:root:not([data-theme="dark"]) .rail .nav:hover{color:#fff}
:root:not([data-theme="dark"]) .rail .nav .cnt{background:#E6F0EA;color:#1E4B35}
:root:not([data-theme="dark"]) .rail .me{border-top-color:rgba(255,255,255,.12)}
:root:not([data-theme="dark"]) .rail .me b{color:#fff}:root:not([data-theme="dark"]) .rail .me small{color:#A9C7B5}
:root:not([data-theme="dark"]) .rail .me .av{background:rgba(255,255,255,.14);color:#fff}
:root:not([data-theme="dark"]) .rail .iconbtn.dk{color:#CFE2D6}
.railtg{margin-left:auto;background:rgba(255,255,255,.1);border:0;color:inherit;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:var(--rail-ink)}
.railtg:hover{background:rgba(255,255,255,.2)}
/* згорнуте меню */
.app.rail-min{grid-template-columns:76px minmax(0,1fr)}
.app.rail-min .rail{padding:22px 10px}
.app.rail-min .brandrow b,.app.rail-min .navgrp,.app.rail-min .nav span,.app.rail-min .nav .cnt,.app.rail-min .rail .me>div,.app.rail-min .rail .me .iconbtn{display:none}
.app.rail-min .brandrow{flex-direction:column;gap:10px;padding:0 0 14px}
.app.rail-min .railtg{margin:0}
.app.rail-min .nav{justify-content:center;padding:11px 0}
.app.rail-min .navgrp+.nav{margin-top:10px}
.app.rail-min .rail .me{justify-content:center;padding:14px 0 0}
/* ціль на головній */
.goalbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 22px;cursor:pointer}
.goalbar:hover{border-color:var(--sage2)}
.gb-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.gb-k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.gb-top b{font-size:22px;letter-spacing:-.02em}.gb-p{margin-left:auto;font-weight:700;color:var(--hi);font-size:20px}
.gb-bar{position:relative;height:12px;border-radius:8px;background:var(--surface2);margin:10px 0 8px;overflow:visible}
.gb-bar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--sage2),var(--brand))}
.gb-bar em{position:absolute;top:-4px;width:2px;height:20px;background:var(--ink2);border-radius:2px}
.gb-s{font-size:13px;color:var(--ink2)}
/* ===== v9 ===== */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:12px}
.kpis .kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.kpis .kpi span{font-size:12px;color:var(--muted)}.kpis .kpi b{font-size:20px;font-weight:700}.kpis .kpi small{font-size:11.5px;color:var(--muted)}
@media(max-width:800px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.row-crit td{background:color-mix(in srgb,var(--crit) 8%,transparent)}
.crit{color:var(--crit)}input.late{border-color:var(--crit)!important;color:var(--crit)}
.car-s{display:block;margin-top:4px;width:90px;font-size:11.5px}
.agree-row{display:flex;align-items:center;gap:12px;margin:10px 0 4px;flex-wrap:wrap}
.btn.agree{background:var(--good);color:#fff;border-color:transparent;font-size:17px;font-weight:700;padding:12px 28px;border-radius:14px;box-shadow:0 4px 14px rgba(46,125,79,.25)}
.btn.agree:hover{filter:brightness(1.07)}
.agree-row.done{padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}
.cf-bars{display:flex;gap:8px;align-items:flex-end;margin-bottom:12px;overflow-x:auto}
.cf-w{flex:1;min-width:60px;background:none;border:1px solid transparent;border-radius:10px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;font:inherit;color:inherit}
.cf-w.on,.cf-w:hover{border-color:var(--line);background:var(--surface2)}
.cf-bb{height:90px;width:100%;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.cf-bb i{display:block;width:40%;max-width:18px;border-radius:4px 4px 0 0;min-height:2px}.cf-bb i.in{background:var(--good)}.cf-bb i.out{background:#E0A84E}
.cf-w b{font-size:12px}.cf-w b.crit{color:var(--crit)}.cf-w span{font-size:11px;color:var(--muted)}
.hr-card .bd{display:flex;flex-direction:column}
.tipi{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--surface3);color:var(--muted);font:700 10.5px/1 system-ui;font-style:normal;cursor:help;position:relative;vertical-align:middle;margin-left:4px;text-transform:none;letter-spacing:0}
[data-tip]:hover::after,[data-tip]:focus::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:max-content;max-width:280px;background:#1E2B24;color:#fff;font:400 12.5px/1.4 Roboto,system-ui;padding:8px 10px;border-radius:8px;z-index:60;white-space:normal;box-shadow:0 6px 18px rgba(0,0,0,.2);text-align:left}
.news-card{border-left:4px solid var(--brand)}.news-i{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}.news-i:last-child{border:0}
.dir-g{margin:18px 0 8px;font-size:15px}
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.dir-c{display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;min-width:0}
.dir-ph{position:relative;flex:0 0 64px;height:64px;border-radius:50%;overflow:hidden;background:var(--hi-soft);display:grid;place-items:center;color:var(--brand);font-weight:700;font-size:20px}
.dir-ph img{width:100%;height:100%;object-fit:cover}
.dir-up{position:absolute;inset:auto 0 0 0;background:rgba(0,0,0,.55);color:#fff;text-align:center;font-size:13px;cursor:pointer;padding:2px 0}
.dir-b{min-width:0;flex:1}.dir-spec{font-size:12.5px;margin-top:4px;color:var(--ink2)}
.dir-f{grid-template-columns:1fr!important;gap:6px!important;margin:8px 0}
.ev-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
@media(max-width:700px){.ck-grid{grid-template-columns:1fr}}
.ck-col{background:var(--surface2);border-radius:12px;padding:10px}.ck-col>b{display:block;margin-bottom:6px}
.ck-i{display:flex;gap:6px;align-items:flex-start;font-size:13px;padding:3px 0}.ck-i small{margin-left:auto;color:var(--muted)}
.ev-files{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.ev-f{position:relative;display:flex;flex-direction:column;gap:2px;font-size:12px}.ev-f img{width:96px;height:72px;object-fit:cover;border-radius:8px}.ev-f .xdel{position:absolute;top:0;right:0}
.md-hello{font-size:18px;margin:0 0 12px}.md-hello .sub{font-size:13px}
.md-grid{align-items:start}
.np-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}.np-row .np-i{flex:1;border-bottom:0}
.np-snz{display:none;flex-direction:column;gap:4px;justify-content:center;padding:4px 8px}.np-row:hover .np-snz,.np-row:focus-within .np-snz{display:flex}
.favst{background:none;border:0;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;margin-left:10px;vertical-align:middle}.favst.on{color:#E0A84E}
.gsearch{position:relative;flex:0 1 380px;margin-left:16px}.gsearch input{width:100%;height:38px;border-radius:12px}
.gs-res{position:absolute;top:44px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.14);max-height:420px;overflow:auto;z-index:70;padding:4px}
.gs-i{display:grid;grid-template-columns:92px 1fr;gap:0 8px;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit;color:inherit}.gs-i:hover,.gs-i:focus{background:var(--surface2)}
.gs-i small{grid-row:span 2;color:var(--muted);font-size:11px;padding-top:2px}.gs-i b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-i .sub{font-size:12px}
@media(max-width:900px){.gsearch{display:none}}
.draft-n{display:flex;align-items:center;gap:8px;margin-bottom:10px}
a.btn{text-decoration:none}.editsw span{white-space:nowrap}.gsearch{flex:0 1 330px}
@media(max-width:1300px){.editsw span{display:none}}
.blk-ed{border:0;background:var(--surface);color:var(--brand);border-radius:6px;width:22px;height:22px;line-height:20px;font-size:13px;cursor:pointer;float:right;margin-left:4px;box-shadow:0 0 0 1px var(--line)}
.blk-ed:hover{background:var(--brand);color:#fff}
.blk-tm{font-weight:500;color:var(--ink2);font-size:12px}.blk-pl{font-weight:400;font-size:12px;color:var(--muted);margin-top:2px}
.se-h{margin:16px 0 8px;font-size:14px}.se-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.se-row{display:flex;gap:6px;align-items:center}.se-row input{flex:1;min-width:0}
@media(max-width:600px){.se-row.se-dl{flex-wrap:wrap}}
.sl-t{font-size:13px}.sl-t th,.sl-t td{padding-left:8px;padding-right:8px}
.sl-t input.cell{min-height:30px;font-size:13px}.sl-t .mk-sel{font-size:12px;max-width:150px}
.sl-t td.sl-acts{min-width:0}
.sl-t .st-name b{font-size:13.5px}
table.sl-t th,table.sl-t td{padding:6px 6px!important}
table.sl-t .mk-sel{max-width:128px;padding-right:22px}
table.sl-t td.st-name{min-width:150px!important}
table.sl-t td.st-name{min-width:130px!important}table.sl-t .mk-sel{max-width:118px}
table.sl-t .sl-acts .iconbtn.sm{width:26px;height:26px}table.sl-t .sl-acts .btn.xs{padding:4px 8px}
.modal .cm-c{min-height:40px;padding:3px}.modal .cm-i{font-size:10px}
.modal .cm-c{min-height:40px;padding:3px}.modal .cm-i{font-size:10px}.dir-c .btn.danger{margin-left:auto}
.dir-ph img[data-photozoom]{cursor:zoom-in}
.ph-zoom{position:fixed;inset:0;z-index:200;background:rgba(10,20,15,.82);display:grid;place-items:center;cursor:zoom-out;animation:phz .15s ease-out}
.ph-zoom figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px}
.ph-zoom img{max-width:min(86vw,560px);max-height:78vh;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.45);object-fit:contain;background:#fff}
.ph-zoom figcaption{color:#fff;font-weight:600;font-size:16px}
.ph-x{position:absolute;top:16px;right:20px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:26px;cursor:pointer}
@keyframes phz{from{opacity:0}to{opacity:1}}
/* шапка меню завжди видима при прокрутці */
.rail .brandrow{position:sticky;top:-26px;z-index:3;background:var(--rail);margin:-26px -18px 0;padding:26px 26px 18px}
.app.rail-min .rail .brandrow{top:-22px;margin:-22px -10px 0;padding:22px 10px 14px}
td.nowrap>.iconbtn{display:inline-grid;vertical-align:middle;margin-right:2px}.buy-ed input,.buy-ed select{min-height:32px;padding:4px 8px}
/* плитки: число зменшується під ширину, без обрізання */
.tile{container-type:inline-size;min-width:0}
.tile b{font-size:clamp(16px,14cqi,30px)}
.ks-ch-ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
:root{--c1:#2a78d6;--c2:#eb6834;--c3:#1baf7a;--c4:#eda100;--c5:#e87ba4;--c6:#008300;--c7:#4a3aa7;--cOther:#9a9a94}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--cOther:#6f6f69}}
:root[data-theme="dark"]{--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--cOther:#6f6f69}
.donut{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.donut svg{flex:0 0 auto;max-width:220px}
.donut svg path{cursor:default;transition:opacity .15s}.donut svg path:hover{opacity:.82}
.donut .dl{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.donut .dl div{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center}
.donut .dl i{width:12px;height:12px;border-radius:3px}.donut .dl b{font-variant-numeric:tabular-nums}.donut .dl span.sub{min-width:44px;text-align:right}
.donut .dc-v{font:700 16px Roboto,system-ui;fill:var(--ink)}.donut .dc-l{font:12px Roboto,system-ui;fill:var(--muted)}
.ch-ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.car-card .bd{display:flex;flex-direction:column;gap:12px}
.car-h{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.car-h h3{margin:0;font-size:17px}
.car-rem{display:flex;gap:6px;flex-wrap:wrap}
.car-sec{border-top:1px solid var(--line);padding-top:12px}.car-sec h4{margin:14px 0 8px;font-size:13.5px;color:var(--ink2)}.car-sec h4:first-child{margin-top:0}
.cm-c.car-busy{background:color-mix(in srgb,var(--good) 16%,var(--surface))}.cm-c.car-rep{background:color-mix(in srgb,var(--crit) 16%,var(--surface))}.cm-c.car-idle{background:var(--surface2)}.cm-c.car-fut{opacity:.55}
i.lg.car-busy{background:color-mix(in srgb,var(--good) 40%,var(--surface))}i.lg.car-rep{background:color-mix(in srgb,var(--crit) 40%,var(--surface))}i.lg.car-idle{background:var(--surface3)}
.legend i.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}
.hrv-head,.hrv-row{display:grid;grid-template-columns:1.6fr 1fr .6fr 1fr repeat(4,.8fr) 24px;gap:6px;align-items:center}
.hrv-head{font-size:11px;color:var(--muted);margin-bottom:4px}.hrv-row{margin-bottom:6px}.hrv-row input{min-width:0;padding:6px 8px}
.hrv-list{display:flex;flex-direction:column;gap:8px}.hrv-i{border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.hrv-p{display:flex;gap:12px;flex-wrap:wrap}.hrv-p span{display:flex;flex-direction:column}.hrv-p small{font-size:11px;color:var(--muted)}
@media(max-width:800px){.hrv-head{display:none}.hrv-row{grid-template-columns:1fr 1fr;padding:8px;border:1px solid var(--line);border-radius:10px}}
.modal:has(#hrv){width:min(1000px,calc(100vw - 32px))}
textarea.grow-ta,.modal textarea,.f textarea{field-sizing:content;min-height:4.2em;max-height:40vh;resize:vertical;line-height:1.45}
tr.fresh>td{box-shadow:inset 0 0 0 9999px color-mix(in srgb,var(--warn) 10%,transparent)}
.map-links{display:inline-flex;gap:6px;flex-wrap:wrap;vertical-align:middle}.map-links a.btn{text-decoration:none}
.map-under{margin-top:6px}.map-bar{display:flex;flex-direction:column;gap:6px}
.map-embed{margin-top:8px;width:100%}.map-embed iframe{width:100%;height:280px;border:0;border-radius:12px;background:var(--surface2)}
.map-under .map-links{flex-direction:row}
.est-bottom{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 16px;box-shadow:0 8px 24px rgba(0,0,0,.08);margin:0 0 16px}
.est-bottom b{font-size:18px}
.pdf-prev{max-height:70vh;overflow:auto;background:var(--surface2);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;align-items:center}
.pdf-prev img{width:100%;max-width:640px;box-shadow:0 4px 16px rgba(0,0,0,.15);background:#fff}
.modal:has(#pdfprev){width:min(760px,calc(100vw - 32px))}
.est-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 12px}
.est-steps em{flex:0 0 18px;height:2px;background:var(--line)}
.est-step{display:flex;gap:10px;align-items:center;background:none;border:0;border-radius:12px;padding:6px 10px;cursor:pointer;font:inherit;color:inherit;text-align:left;flex:1;min-width:170px}
.est-step:hover{background:var(--surface2)}
.est-step i{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;background:var(--surface3);color:var(--ink2)}
.est-step span{display:flex;flex-direction:column;min-width:0}.est-step small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.est-step.done i{background:var(--good);color:#fff}.est-step.next i{background:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--hi-soft)}.est-step.opt i{background:var(--surface2);border:1px dashed var(--line2)}
.addline.quick{flex-wrap:wrap;gap:6px;border-top:0;padding-top:0}
.addhint{display:flex;flex-direction:column;gap:4px;padding:0 16px}.addhint:empty{display:none}
.hint-i{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;text-align:left;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer;font:inherit;color:inherit}
.hint-i:hover{border-color:var(--brand)}.hint-i .av-no{color:var(--crit)}.hint-i .av-ok{color:var(--good)}
.est-more{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 16px}.est-more summary{cursor:pointer;font-weight:600;color:var(--ink2)}
.est-more[open] summary{margin-bottom:12px}
.flash{animation:flash 1.6s}@keyframes flash{0%,60%{box-shadow:0 0 0 4px color-mix(in srgb,var(--warn) 45%,transparent)}100%{box-shadow:none}}
.est-done .bd{display:flex;flex-direction:column;gap:16px;padding:22px 24px}
.ed-top{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.ed-top h2{margin:2px 0 4px;font-size:22px}
.ed-ok{flex:0 0 56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--good-soft);color:var(--good);font-size:26px;font-weight:700}
.ed-sum{display:flex;flex-direction:column;align-items:flex-end}.ed-sum b{font-size:28px;letter-spacing:-.02em}
.ed-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ed-steps em{flex:1;min-width:16px;height:2px;background:var(--line)}
.ed-s{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.ed-s i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;background:var(--surface3)}
.ed-s.done{color:var(--ink2)}.ed-s.done i{background:var(--good);color:#fff}.ed-s.cur{color:var(--ink);font-weight:600}.ed-s.cur i{background:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--hi-soft)}
.ed-acts{display:flex;gap:10px;flex-wrap:wrap}.btn.big{padding:12px 20px;font-size:15px;border-radius:14px}
.ed-lines summary{cursor:pointer;color:var(--ink2);font-weight:600}.ed-lines[open]{width:100%}
.chart.chz{position:relative}.chart.chz svg{max-height:calc(40vh * var(--chz,1));margin:0 auto}
.chz-b{position:absolute;top:-6px;right:0;display:flex;gap:2px;opacity:.55;transition:opacity .15s;z-index:2}.chart.chz:hover .chz-b{opacity:1}
.chz-b button{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);cursor:pointer;font:600 14px/1 system-ui}
.chz-b button:hover{border-color:var(--brand);color:var(--brand)}
td.detail .chart svg{max-width:calc(100vw - 400px)}
.per-m select{max-width:170px}
.chips-sel{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.chipq.on{background:var(--hi-soft);border-color:var(--brand);color:var(--brand)}
.good-t{color:var(--good)}
.mailbtn{position:relative;font-size:18px}
.mail-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:16px;align-items:start}@media(max-width:900px){.mail-grid{grid-template-columns:1fr}}
.mail-list .bd{max-height:65vh;overflow:auto}
.mail-i{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 16px;cursor:pointer;font:inherit;color:inherit}
.mail-i span{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-i small{font-size:11.5px;color:var(--muted)}
.mail-i.unread{background:var(--hi-soft)}.mail-i.unread b::before{content:'● ';color:var(--brand)}.mail-i.on{box-shadow:inset 3px 0 0 var(--brand)}
.mail-view .bd{padding:20px 24px}.mailbtn{font-size:13px;gap:6px}.mailbtn .bdot{position:absolute;top:-6px;right:-6px}
/* повні суми: таблиці не переносять числа, дрібніший шрифт у щільних таблицях */
td.n,th.n{white-space:nowrap}
.tw table.tight td.n{font-size:12.5px}
.strip .st b{font-size:clamp(18px,2.2vw,30px);white-space:nowrap}
.tw table.tight td:first-child{white-space:nowrap}
.tw table.tight:has(th:nth-child(12)) th,.tw table.tight:has(th:nth-child(12)) td{font-size:11.5px;padding-left:5px;padding-right:5px}
table.stock{font-size:13px}table.stock td.nm{max-width:280px;overflow:hidden}table.stock td.nm .t1{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.stock td.nm>span:not(.t1){display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.stock th,table.stock td{padding-left:6px;padding-right:6px}
.nm-ed{border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 4px;opacity:.5}tr:hover .nm-ed{opacity:1}.nm-ed:hover{color:var(--brand)}
table.stock td.nm .t1{cursor:pointer;display:inline-block;max-width:calc(100% - 44px);vertical-align:middle}
table.stock td.nm.nm-open{max-width:none}table.stock td.nm.nm-open .t1{white-space:normal;overflow:visible;max-width:420px;user-select:all}
.nm-tools{display:inline-flex;vertical-align:middle}.nm-tools .nm-ed{padding:0 3px}
.cf-acc td{vertical-align:middle}.cf-acc input.cell{text-align:right}
.cf-w b{font-size:10.5px;white-space:nowrap}
/* ===== v10: смуга показників, бухгалтерські таблиці, компактна база клієнтів ===== */
.kstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);margin:0 0 12px}
.kstrip>div{padding:9px 12px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.kstrip>div:last-child{border-right:0}
.kstrip span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kstrip b{font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.kstrip small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kstrip .warn b{color:var(--warn)}
.acct-w{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:auto}
table.acct{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
table.acct th,table.acct td{padding:5px 8px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap}
table.acct th:last-child,table.acct td:last-child{border-right:0}
table.acct thead th{background:var(--surface2);font-weight:600;color:var(--ink2);font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;position:sticky;top:0;z-index:1}
table.acct td.n,table.acct th.n{text-align:right}
table.acct td.b{font-weight:700}
table.acct tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface2) 40%,transparent)}
table.acct tbody tr:hover td{background:var(--surface3)}
table.acct tfoot td{background:var(--surface2);font-weight:700;border-top:2px solid var(--line2)}
table.acct td:first-child,table.acct th:first-child{position:sticky;left:0;background:var(--surface);z-index:1}
table.acct thead th:first-child{background:var(--surface2);z-index:2}
table.acct tfoot td:first-child{background:var(--surface2)}
table.acct tr.grp td{background:var(--surface3)!important;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2)}
table.acct tr.sub-t td{background:var(--surface2)!important;font-weight:600;font-style:italic}
table.acct td.fut{background:repeating-linear-gradient(135deg,transparent 0 4px,var(--surface2) 4px 5px)!important}
table.acct td.c-up{background:var(--warn-soft)!important;color:var(--warn);font-weight:700}
table.acct td.c-dn{background:var(--crit-soft)!important;color:var(--crit);font-weight:700}
table.acct tr.up td:first-child{box-shadow:inset 3px 0 var(--warn)}table.acct tr.dn td:first-child{box-shadow:inset 3px 0 var(--crit)}
table.acct tr.arch td{opacity:.6}
table.acct .linkbtn{font-size:inherit}
.c-up.lg{color:var(--warn);font-weight:700}.c-dn.lg{color:var(--crit);font-weight:700}
.warn-t{color:var(--warn)}
.ledger{max-height:640px}
/* база клієнтів як таблиця */
.cl-sheet-w{max-height:calc(100vh - 260px);overflow:auto}
table.cl-sheet{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:auto}
table.cl-sheet th{position:sticky;top:0;z-index:2;background:var(--surface2);text-align:left;font-size:11.5px;font-weight:600;color:var(--ink2);padding:6px 8px;border-bottom:1px solid var(--line2);border-right:1px solid var(--line);cursor:pointer;user-select:none;white-space:nowrap}
table.cl-sheet th i{font-style:normal;color:var(--muted);margin-left:4px;font-size:10px}
table.cl-sheet th.on{color:var(--brand)}table.cl-sheet th.on i{color:var(--brand)}
table.cl-sheet th:hover{background:var(--surface3)}
table.cl-sheet td{padding:4px 8px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;line-height:1.35;vertical-align:middle}
table.cl-sheet td.n{text-align:right;max-width:60px}
table.cl-sheet td.c{text-align:center}
table.cl-sheet td.nm{max-width:260px}
table.cl-sheet td.note{max-width:320px;color:var(--ink2)}
table.cl-sheet td.reason{max-width:180px;color:var(--muted)}
table.cl-sheet td.phones{max-width:190px}
table.cl-sheet tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface2) 35%,transparent)}
table.cl-sheet tbody tr:hover td{background:var(--hi-soft,var(--surface3))}
table.cl-sheet a.cl-link{color:var(--brand);text-decoration:none}table.cl-sheet a.cl-link:hover{text-decoration:underline}
.st-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--info,#3b6fb6)}
.st-dot.g{background:var(--good)}.st-dot.o{background:var(--muted)}
b.pot-a{color:var(--brand)}
.cl-filt{margin:0 0 10px}
/* документи і коментар */
.doc-li{align-items:flex-start;gap:10px;padding:8px 0!important}
.doc-files{display:flex;flex-direction:column;gap:3px;margin:4px 0 0 24px}
.doc-f{font-size:12.5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.doc-f a{color:var(--brand);font-weight:600;text-decoration:none;word-break:break-all}
.doc-li .btn.xs{flex:none}
.cl-note textarea.note-ta{font-size:13.5px;line-height:1.5;min-height:110px;resize:vertical;width:100%}
.note-det{margin-top:8px}.note-det summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
.note-log{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-height:320px;overflow:auto}
.ne{border-left:3px solid var(--line2);padding:4px 10px;background:var(--surface2);border-radius:0 6px 6px 0}
.ne-h{display:flex;gap:8px;align-items:baseline;font-size:12px}.ne-h span{color:var(--muted)}
.ne-t{white-space:pre-wrap;font-size:13px;margin-top:2px}
.acct.cost .d-up{color:var(--crit)!important}.acct.cost .d-dn{color:var(--good)!important}
.cp-list{display:flex;flex-direction:column;gap:8px}
.cp-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface)}
.cp-item.ed{background:var(--surface2);border-color:var(--line2)}
.cp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cp-h .iconbtn.sm{width:28px;height:28px}
.cp-links{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:13px}
.cp-links a{color:var(--ink2);text-decoration:none;white-space:nowrap}.cp-links a:hover{color:var(--brand);text-decoration:underline}
.cp-bd{font-size:12.5px;color:var(--muted);white-space:nowrap}.cp-bd.soon{color:var(--warn);font-weight:700}
.cp-phones{display:flex;flex-direction:column;gap:6px}
table.cl-sheet th.sel,table.cl-sheet td.sel{width:34px;max-width:34px;text-align:center;padding:4px 6px;cursor:pointer}
table.cl-sheet th.sel{cursor:default}table.cl-sheet td.sel input,table.cl-sheet th.sel input{width:16px;height:16px;cursor:pointer;accent-color:var(--brand)}
table.cl-sheet tr.selr td{background:var(--hi-soft,var(--brand-soft,#e3efe7))!important}
.cl-bulk{position:sticky;top:64px;z-index:15;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin:0 0 10px;background:var(--ink);color:var(--surface);border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.cl-bulk .btn{background:var(--surface);color:var(--ink);border-color:transparent}.cl-bulk .btn.danger{background:var(--crit);color:#fff}
.cl-bulk .btn.armed{outline:2px solid #fff}.cl-bulk select{background:var(--surface);color:var(--ink)}
table.cl-sheet td.nx{white-space:nowrap;font-variant-numeric:tabular-nums}
table.cl-sheet td.nx.late{color:var(--crit);font-weight:700;background:var(--crit-soft)!important}
table.cl-sheet td.nx.today{color:var(--warn);font-weight:700;background:var(--warn-soft)!important}
.nx-a{font-style:normal;font-size:10px;color:var(--muted);border:1px solid var(--line2);border-radius:4px;padding:0 3px;margin-left:5px;vertical-align:1px}
input.nx-in.late{border-color:var(--crit)!important;color:var(--crit)}input.nx-in.today{border-color:var(--warn)!important}
/* компактна шапка «Клієнтів» */
.content:has(table.cl-sheet) .pg-head{flex-direction:row;align-items:baseline;gap:14px;margin:0 0 6px}
.content:has(table.cl-sheet) .pg-h{font-size:24px}
.content:has(table.cl-sheet) .pg-k{order:2;font-size:10.5px}
.content:has(table.cl-sheet)>.seg{margin:0 0 8px;padding:3px}.content:has(table.cl-sheet)>.seg button{padding:5px 12px;font-size:13px}
.cl-card{margin-top:0}
.cl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px 6px}
.cl-top h3{margin:0 6px 0 0;font-size:17px;white-space:nowrap}.cl-top h3 .sub{font-size:12px;font-weight:400}
.cl-top .search{flex:1 1 220px;max-width:340px;min-height:34px}.cl-top .search input{padding-top:6px;padding-bottom:6px}
.cl-top select.msel{height:34px;padding-top:4px;padding-bottom:4px;font-size:13px;max-width:230px}
.cl-top .seg button{padding:5px 10px;font-size:12.5px}
.cl-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:0 12px 8px}
.clchip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--ink2);cursor:pointer}
.clchip b{font-variant-numeric:tabular-nums;margin-left:2px}.clchip:hover{border-color:var(--line2)}
.clchip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.clchip.warn b{color:var(--warn)}.clchip.warn.on b{color:#ffd27a}
.cl-card .cl-bulk{margin:0 12px 8px;top:60px}
.cl-card .cl-sheet-w{max-height:calc(100vh - 190px)}
/* вітрина показників */
.hc-rot{position:relative;overflow:hidden;min-height:176px;justify-content:flex-start}
.hc-view{position:relative;flex:1;min-height:132px}
.hc-s{position:absolute;inset:0;display:flex;flex-direction:column;gap:6px;justify-content:center;opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease;pointer-events:none}
.hc-s.on{opacity:1;transform:none;pointer-events:auto}
.hc-s.out{opacity:0;transform:translateY(-18px)}
.hc-name{font-size:22px;font-weight:800;color:var(--ink);line-height:1.1;letter-spacing:-.01em}
.hc-s .counter span{font-size:clamp(34px,5vw,58px)}
.hc-s .hello-s{display:block;font-size:13.5px;color:var(--ink2)}.hc-s .hello-s b{color:var(--ink)}
.hc-dots{display:flex;gap:6px;margin-top:8px}
.hc-dots button{flex:1;max-width:46px;height:4px;border:0;padding:0;border-radius:3px;background:color-mix(in srgb,var(--hi) 22%,transparent);cursor:pointer;overflow:hidden;position:relative}
.hc-dots button i{position:absolute;inset:0;width:0;background:var(--hi);border-radius:3px}
.hc-dots button.on i{animation:hcbar 4.5s linear forwards}
.hc-rot.paused .hc-dots button.on i{animation-play-state:paused}
@keyframes hcbar{to{width:100%}}
@media (prefers-reduced-motion: reduce){.hc-s{transition:none;transform:none!important}.hc-dots button.on i{animation:none;width:100%}}
.blk-pk{display:inline-block;font-size:10.5px;font-weight:700;border-radius:4px;padding:1px 5px;margin-right:4px;vertical-align:1px;white-space:nowrap}
.blk-pk.ok{background:var(--good-soft);color:var(--good)}.blk-pk.part{background:var(--warn-soft);color:var(--warn)}
.pk-st{font-size:12px;font-weight:600;margin-right:10px;white-space:nowrap}.pk-st.ok{color:var(--good)}.pk-st.part{color:var(--warn)}.pk-st:not(.ok):not(.part){color:var(--muted)}
table.cl-sheet td.con{white-space:nowrap;font-size:12px;font-weight:600}
table.cl-sheet td.con.ok{color:var(--good)}table.cl-sheet td.con.part{color:var(--warn)}table.cl-sheet td.con.no{color:var(--muted);font-weight:400}table.cl-sheet td.con.exp{color:var(--crit)}
.con-pill{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;margin:0 6px 6px 0}
.con-pill.ok{background:var(--good-soft);color:var(--good)}.con-pill.part{background:var(--warn-soft);color:var(--warn)}.con-pill.no{background:var(--surface2);color:var(--muted)}.con-pill.exp{background:var(--crit-soft);color:var(--crit)}.con-pill.info{background:var(--surface2);color:var(--ink2)}
.doc-b{font-weight:600;white-space:nowrap}
/* ===== віртуальний офіс ===== */
:root{--vo-floor:#F3F1EA;--vo-floor2:#E7E4DA;--vo-wood:#D9C6A5;--vo-wall:#2B3A32;--vo-conc:#D5DAD4;--vo-conc2:#C7CDC6;--vo-brand:#3E7D5C;--vo-hivis:#E9B10A;--vo-rack:#8A6A3F;--vo-case:#2E3136;--vo-glass:#CFE3EA;--vo-line:#CBD3CD;--vo-label:#FFFFFF;--vo-label-ink:#17201B;--vo-sel:#E0572F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--vo-floor:#2A2D29;--vo-floor2:#242723;--vo-wood:#5A4B35;--vo-wall:#0B0F0D;--vo-conc:#30352F;--vo-conc2:#282D28;--vo-brand:#6DBB8F;--vo-rack:#7A5C35;--vo-case:#0F1113;--vo-glass:#2A3C44;--vo-line:#3A433D;--vo-label:#1A201D;--vo-label-ink:#EEF2EF;--vo-sel:#FF7A52}}
:root[data-theme="dark"]{--vo-floor:#2A2D29;--vo-floor2:#242723;--vo-wood:#5A4B35;--vo-wall:#0B0F0D;--vo-conc:#30352F;--vo-conc2:#282D28;--vo-brand:#6DBB8F;--vo-rack:#7A5C35;--vo-case:#0F1113;--vo-glass:#2A3C44;--vo-line:#3A433D;--vo-label:#1A201D;--vo-label-ink:#EEF2EF;--vo-sel:#FF7A52}
.vo-wrap{display:flex;flex-direction:column;gap:10px}
.vo-bar{gap:8px;align-items:center}
.vo-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
@media (max-width:1100px){.vo-main{grid-template-columns:1fr}}
.vo-stage{padding:0;overflow:hidden}.vo-stage>.bd{padding:0}
#voscene{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none}
.vo-zl{font:600 13px Roboto,system-ui,sans-serif;fill:var(--ink2)}
.vo-zs{font:500 10px Roboto,system-ui,sans-serif;fill:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.vo-rl{font:700 9.5px Roboto,system-ui,sans-serif;fill:#fff;letter-spacing:.06em;text-transform:uppercase}
.vo-score{font:700 11px Roboto,system-ui,sans-serif;fill:var(--ink);font-variant-numeric:tabular-nums}
.vo-board{cursor:pointer}
.vo-p{cursor:pointer;outline:none}
.vo-p .nm rect{fill:var(--vo-label);stroke:var(--vo-line)}.vo-p .nm text{font:600 9px Roboto,system-ui,sans-serif;fill:var(--vo-label-ink)}
.vo-p.sel .nm rect{fill:var(--vo-sel);stroke:var(--vo-sel)}.vo-p.sel .nm text{fill:#fff}
.vo-p .ring{fill:none;stroke:var(--vo-sel);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.vo-p.sel .ring{opacity:1;animation:vopulse 1.4s ease-in-out infinite}
.vo-p:focus-visible .ring{opacity:1}
@keyframes vopulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.vo-p .legL,.vo-p .legR,.vo-p .armL,.vo-p .armR{transform-box:fill-box;transform-origin:50% 0}
.vo-p.walk .legL,.vo-p.walk .armR{animation:voA .5s ease-in-out infinite}.vo-p.walk .legR,.vo-p.walk .armL{animation:voB .5s ease-in-out infinite}
.vo-p.walk .bob{animation:vobob .25s ease-in-out infinite alternate}
.vo-p .paddle{display:none}.vo-p.play .paddle{display:inline}
.vo-p.play .armR{animation:voswing .42s ease-in-out infinite}
@keyframes voA{0%,100%{transform:rotate(18deg)}50%{transform:rotate(-18deg)}}@keyframes voB{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}
@keyframes voswing{0%,100%{transform:rotate(-40deg)}50%{transform:rotate(25deg)}}
@keyframes vobob{from{transform:translateY(0)}to{transform:translateY(-1.6px)}}
.vo-p .face{transition:opacity .2s}.vo-p.back .face{opacity:0}.vo-p.back .backhair{opacity:1}
.vo-p .bub{opacity:0;transition:opacity .3s}.vo-p.talk .bub{opacity:1}
.vo-p .bub rect{fill:var(--vo-label);stroke:var(--vo-line)}.vo-p .bub text{font:500 8.5px Roboto,system-ui,sans-serif;fill:var(--ink2)}
#voscene.vo-nolabels .vo-p:not(.sel) .nm{display:none}
.vo-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink2);padding:8px 12px;border-top:1px solid var(--line)}
.vo-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.vo-side{display:flex;flex-direction:column;gap:14px}.vo-side .card{margin:0}
.vo-pc{display:flex;gap:12px;align-items:center}.vo-av{width:68px;height:90px;flex:none;background:var(--hi-soft,var(--surface2));border-radius:12px;display:grid;place-items:center}
.vo-name{font-size:16px;line-height:1.25;display:block}
.vo-now{margin:12px 0;padding:8px 10px;background:var(--surface2);border-radius:10px;font-size:13.5px}.vo-now .sub{display:block;font-size:11.5px}
.vo-kv{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13px;margin-top:4px}.vo-kv span{color:var(--muted)}
.vo-list{display:flex;flex-direction:column;gap:2px;max-height:380px;overflow:auto;margin-top:8px}
.vo-li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;border:0;background:none;color:inherit;font:inherit;font-size:13px;text-align:left;width:100%;cursor:pointer}
.vo-li:hover,.vo-li.on{background:var(--surface2)}.vo-li i{width:8px;height:8px;border-radius:50%;flex:none}.vo-li .vo-w{margin-left:auto;white-space:nowrap}
.vo-tour-now{font-size:14px}.vo-tour-now .live{color:var(--crit);font-weight:700;font-size:12px;animation:vobl 1.2s ease-in-out infinite}
@keyframes vobl{50%{opacity:.35}}
table.acct tr.vo-top td{font-weight:600}
@media (prefers-reduced-motion:reduce){.vo-p.walk .legL,.vo-p.walk .legR,.vo-p.walk .armL,.vo-p.walk .armR,.vo-p.walk .bob,.vo-p.play .armR,.vo-p.sel .ring,.vo-tour-now .live{animation:none}}
.vo-col{display:flex;flex-direction:column;gap:14px;min-width:0}.vo-col .card{margin:0}
.vo-nums{display:grid;gap:8px;margin:0 0 10px}.vo-nums div{background:var(--surface2);border-radius:10px;padding:8px}.vo-nums b{display:block;font-size:20px;font-variant-numeric:tabular-nums}.vo-nums span{font-size:11px;color:var(--muted);line-height:1.2;display:block}
.vo-coin{font-size:15px;background:var(--surface2);border-radius:999px;padding:3px 12px}
.vo-betm{margin:10px 0;padding:10px 12px;border:1px dashed var(--line2);border-radius:12px;display:flex;flex-direction:column;gap:8px}
.vo-vs{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.vo-vs .btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:180px;padding:8px 12px}.vo-x{font-weight:800;color:var(--muted)}
.vo-bt{display:inline-block;border-radius:6px;padding:1px 6px;margin:2px 2px 0 0;background:var(--surface2)}.vo-bt.won{background:var(--good-soft);color:var(--good)}.vo-bt.lost{background:var(--crit-soft);color:var(--crit)}
#vogame{display:block;width:100%;height:auto;max-width:900px;margin:0 auto;border-radius:12px;cursor:none;touch-action:none;outline:none}
#vogame:focus-visible{box-shadow:0 0 0 3px var(--vo-sel)}
/* ===== віртуальний офіс 2.0 ===== */
:root{--vo-yard:#CFD5CF;--vo-road:#8E958F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--vo-yard:#2A2F2B;--vo-road:#3A3F3B}}
:root[data-theme="dark"]{--vo-yard:#2A2F2B;--vo-road:#3A3F3B}
.vo-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vo-sep{width:1px;height:22px;background:var(--line);margin:0 4px}
.vo-mode{font-size:13px;font-weight:700;color:#B35A00;background:#FFF1DC;border:1px solid #F1C98C;border-radius:999px;padding:3px 10px}.vo-mode .sub{font-weight:400}
.vo-src{display:inline-block;font-size:12.5px;border-radius:999px;padding:2px 10px;font-weight:600}.vo-src.crm{background:var(--good-soft);color:var(--good)}.vo-src.demo{background:var(--surface2);color:var(--ink2)}
.vo-simtag{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#B35A00;background:#FFF1DC;border-radius:4px;padding:1px 5px;margin-right:4px}
.vo-crmh{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--good);margin:10px 0 6px}
.vo-main{grid-template-columns:minmax(0,1fr) 340px}.vo-main.noside{grid-template-columns:1fr}.vo-main.noside .vo-side{display:none}
.vo-stagebox{position:relative;overflow:hidden;background:var(--vo-wall);touch-action:none}
#voscene{display:block;width:100%;height:auto;aspect-ratio:1440/830;cursor:grab}#voscene:active{cursor:grabbing}
.vo-stage.vo-fs,.vo-stage:fullscreen{position:fixed;inset:0;z-index:200;border-radius:0;margin:0;display:flex;flex-direction:column;background:var(--vo-wall)}
.vo-stage:fullscreen .vo-stagebox,.vo-stage.vo-fs .vo-stagebox{flex:1;display:flex;align-items:center}.vo-stage:fullscreen #voscene,.vo-stage.vo-fs #voscene{height:100%;width:100%}
.vo-tip{position:absolute;z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:12.5px;display:flex;flex-direction:column;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.12)}.vo-tip span{color:var(--muted);font-size:11.5px}
.vo-menu{position:absolute;z-index:8;width:200px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px;display:flex;flex-direction:column}
.vo-menu-h{padding:4px 8px 6px;display:flex;flex-direction:column;border-bottom:1px solid var(--line);margin-bottom:4px}.vo-menu-h span{font-size:11.5px;color:var(--muted)}
.vo-menu button{border:0;background:none;text-align:left;padding:6px 8px;border-radius:7px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.vo-menu button:hover{background:var(--surface2)}
.vo-menu-n{font-size:10.5px;color:var(--muted);padding:4px 8px 2px;border-top:1px solid var(--line);margin-top:4px}
.vo-buscard{position:absolute;z-index:8;width:290px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:6px}
.vo-ind{position:absolute;z-index:5;transform:translate(-50%,-100%);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12px;display:flex;flex-direction:column;gap:3px;min-width:220px;box-shadow:0 6px 18px rgba(0,0,0,.15);pointer-events:none}
.vo-ind i{display:block;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--good) var(--p),var(--surface2) var(--p))}.vo-ind span{color:var(--muted);font-size:11px}
.vo-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:-4px -4px 10px;padding-bottom:6px;flex-wrap:wrap}.vo-tabs button{border:0;background:none;font:inherit;font-size:13px;padding:5px 9px;border-radius:7px;cursor:pointer;color:var(--ink2)}.vo-tabs button.on{background:var(--ink);color:var(--surface)}
.vo-side{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto}
.vo-feed{display:flex;flex-direction:column;gap:2px;max-height:520px;overflow:auto}.vo-fi{display:grid;grid-template-columns:40px 20px 1fr;gap:6px;text-align:left;border:0;background:none;padding:5px 6px;border-radius:7px;font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer}.vo-fi:hover{background:var(--surface2)}.vo-fi .t{color:var(--muted);font-variant-numeric:tabular-nums}
.vo-items{display:flex;flex-direction:column;gap:3px;margin-top:10px}.vo-it{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:4px 8px;border-radius:6px;background:var(--surface2)}.vo-it em{font-style:normal;font-size:11.5px;white-space:nowrap}
.vo-it.bus em{color:var(--good);font-weight:700}.vo-it.carried em{color:#B35A00;font-weight:700}.vo-it.staging em{color:#3B6EA8;font-weight:600}.vo-it.rack em{color:var(--muted)}
.vo-form{display:flex;flex-direction:column;gap:8px;font-size:13px}.vo-form label{display:flex;flex-direction:column;gap:4px;color:var(--ink2)}.vo-sw{display:flex;gap:5px;flex-wrap:wrap}.vo-sw button{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer}.vo-sw button.on{box-shadow:0 0 0 2px var(--ink)}
.vo-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.vo-dd{position:relative}.vo-ddm{position:absolute;right:0;top:calc(100% + 4px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px;display:flex;flex-direction:column;min-width:280px}
.vo-ddm button{border:0;background:none;text-align:left;padding:6px 9px;border-radius:7px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.vo-ddm button:hover{background:var(--surface2)}
/* SVG */
.vo-rl.dark{fill:var(--ink2)}.vo-zs.yard{fill:#F3F3F0;opacity:.85}.vo-busbrand{font:800 13px Roboto,system-ui,sans-serif;fill:#fff;letter-spacing:.08em}
.vo-shadow{filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}
.vo-p .shd{transition:opacity .2s}
.vo-p .nm rect{fill:var(--vo-label);stroke:var(--vo-line)}.vo-p .nm text{font:600 8.5px Roboto,system-ui,sans-serif;fill:var(--vo-label-ink)}
.vo-p.nolbl .nm{display:none}.vo-p.npc .nm rect{fill:#FFF1DC}
.vo-p .bub rect{fill:var(--vo-label);stroke:var(--vo-line)}.vo-p .bub text{font:500 8.5px Roboto,system-ui,sans-serif;fill:var(--ink)}
.vo-p.sit .legs{display:none}.vo-p.sit .bob{transform:translateY(7px)}.vo-p.sit .shd{opacity:0}
.vo-p.carry .armL,.vo-p.carry .armR{transform:rotate(-150deg)}.vo-p.pull .armR{transform:rotate(-55deg)}
.vo-p.fx-wave .armR{animation:vowave .35s ease-in-out infinite alternate}@keyframes vowave{from{transform:rotate(-150deg)}to{transform:rotate(-185deg)}}
.vo-p.fx-hi5 .armR{transform:rotate(-175deg)}.vo-p.fx-tap .armR{animation:voA .25s infinite}
.vo-p.fx-cheer .bob{animation:vojump .35s ease-in-out infinite alternate}.vo-p.fx-cheer .armL,.vo-p.fx-cheer .armR{transform:rotate(-165deg)}@keyframes vojump{from{transform:translateY(0)}to{transform:translateY(-7px)}}
.vo-p.fx-spin .fig{animation:vospin .6s linear infinite}@keyframes vospin{0%{transform:scaleX(1)}50%{transform:scaleX(-1)}100%{transform:scaleX(1)}}
.vo-p.fx-pocket .armL{transform:rotate(20deg)}
.vo-p .fxh{display:none}.vo-p.fx-love .fxh{display:inline}.vo-p .heart{font-size:8px;fill:#E0572F;animation:voheart 1s ease-out infinite}@keyframes voheart{from{transform:translateY(0);opacity:1}to{transform:translateY(-14px);opacity:0}}
.vo-p.follow .ring{opacity:1;stroke:#3B6EA8}
.vo-item .whl{transform-box:fill-box;transform-origin:center}.vo-item.roll .whl{animation:vowheel .4s linear infinite}@keyframes vowheel{to{transform:rotate(360deg)}}
.vo-led{animation:voblink 1.8s ease-in-out infinite}.blink{animation:voblink .5s steps(2) infinite}@keyframes voblink{50%{opacity:.25}}
.ledpx{animation:voblink 2.4s ease-in-out infinite}
.vo-mon{transition:fill .4s}.vo-mon.on{fill:#9FD3F0;filter:drop-shadow(0 0 4px #9FD3F0)}
.vo-steam circle{animation:vosteam 1.4s ease-out infinite;opacity:0}@keyframes vosteam{0%{transform:translateY(0);opacity:.8}100%{transform:translateY(-16px);opacity:0}}
.vo-balloon{animation:vobal 2s ease-in-out infinite alternate}@keyframes vobal{to{transform:translateY(-4px)}}
.vo-leaf{font-size:11px;animation:vofall 7s linear infinite}.vo-snow{animation:vofall 6s linear infinite}@keyframes vofall{from{transform:translateY(-40px)}to{transform:translateY(80px)}}
.vo-bus{cursor:pointer}.vo-bus .roof{transition:opacity .3s}
#voscene.lite *{animation:none!important}#voscene.lite .vo-steam{display:none}
/* мініігри */
.vo-mgl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.vo-mgc{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.vo-modal{position:fixed;inset:0;z-index:300;background:rgba(10,14,12,.55);display:grid;place-items:center;padding:16px}.vo-mbox{background:var(--surface);border-radius:16px;padding:16px;width:min(760px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.vo-timer{font-weight:700;font-variant-numeric:tabular-nums}
.vo-mgpick{display:grid;grid-template-columns:220px 1fr;gap:12px;margin-top:10px}@media (max-width:640px){.vo-mgpick{grid-template-columns:1fr}}
.vo-list-need{font-size:13px;display:flex;flex-direction:column;gap:4px}.vo-list-need .ok{color:var(--good);text-decoration:line-through}
.vo-grid12{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.vo-eq{border:1px solid var(--line);background:var(--surface2);border-radius:8px;padding:8px;font:inherit;font-size:12px;text-align:left;cursor:pointer;min-height:48px;color:var(--ink)}.vo-eq:hover{border-color:var(--ink2)}.vo-eq.ok{background:var(--good-soft);border-color:var(--good)}.vo-eq.bad{animation:voshake .35s;background:var(--crit-soft)}
@keyframes voshake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.vo-busgrid{display:grid;gap:2px;background:#8E958F;padding:6px;border-radius:10px;border-left:8px solid #F4F6F5}.vo-bc{aspect-ratio:1;background:#C9CFCB;border-radius:3px;position:relative;overflow:hidden;cursor:pointer}.vo-bc span{position:absolute;left:3px;top:2px;font-size:10px;color:#fff;white-space:nowrap}
.vo-bc.gh{background:#9FD3A8}.vo-bc.ghx{background:#E8A9A0}
.vo-findsvg{width:100%;height:auto;border-radius:10px;cursor:crosshair}.vo-target{cursor:crosshair}
.vo-mgend{text-align:center;padding:24px 0}
.vo-ddm[hidden],.vo-tip[hidden],.vo-ind[hidden]{display:none!important}


/* ================= Візуалізатор залу ================= */
.vz-ed{display:flex;flex-direction:column;gap:8px;height:calc(100vh - 230px);min-height:640px}
.vz-ed.fs{position:fixed;inset:0;z-index:80;background:var(--bg);padding:10px;height:auto}
.vz-top,.vz-tools{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.vz-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vz-row2{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.vz-row .grow,.vz-tools .grow,.vz-status .grow{flex:1}
.vz-name{font-weight:700;font-size:15px;min-width:260px;max-width:420px;flex:1;border:1px solid transparent;background:transparent;padding:4px 8px;border-radius:8px}
.vz-name:hover:not(:disabled),.vz-name:focus{border-color:var(--line2);background:var(--surface)}
.vz-lb{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.vz-lb select,.vz-lb input{max-width:230px;font-size:13px;padding:4px 6px;min-height:30px}
.vz-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px}
.vz-sep{width:1px;height:22px;background:var(--line2);margin:0 2px}
.vz-dd{position:relative;display:inline-block}
.vz-ddm{position:absolute;right:0;top:calc(100% + 4px);z-index:30;background:var(--surface);border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow);min-width:220px;padding:4px;display:flex;flex-direction:column}
.vz-ddm[hidden],#vzdlg[hidden],.vz-empty[hidden]{display:none!important}
.vz-ddm button{text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--ink)}
.vz-ddm button:hover{background:var(--surface2)}
.vz-tools .vz-ddm{left:0;right:auto}
#vzban{display:flex;flex-direction:column;gap:6px}
#vzban:empty{display:none}
.vz-ban{background:var(--info-soft);color:var(--ink);border-radius:10px;padding:7px 12px;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vz-ban.warn{background:var(--warn-soft)}
.vz-ban.pv{background:#E7F3EC;border:1px dashed #1B7F4B}
.vz-body{flex:1;display:grid;grid-template-columns:300px 1fr 330px;gap:8px;min-height:0}
.vz-ed.client .vz-body{grid-template-columns:230px 1fr 280px}
.vz-left,.vz-right{background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.vz-pad{padding:10px;overflow:auto;flex:1;min-height:0}
.vz-tabs{display:flex;border-bottom:1px solid var(--line);padding:4px 4px 0;gap:2px;flex-wrap:wrap}
.vz-tabs button{border:0;background:none;padding:8px 10px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}
.vz-tabs button.on{color:var(--ink);border-bottom-color:var(--brand)}
.vz-tabs .cnt{background:var(--crit);color:#fff;border-radius:10px;padding:0 6px;font-size:11px}
.vz-canvas{position:relative;background:#EEF1F3;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:0}
.vz-canvas svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;cursor:default}
.vz-canvas[data-tool=pan] svg,.vz-canvas svg.panning{cursor:grab}
.vz-canvas[data-tool=measure] svg,.vz-canvas[data-tool=cable] svg,.vz-canvas[data-tool=calib] svg,.vz-canvas[data-tool=place] svg{cursor:crosshair}
.vz-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;color:var(--muted)}
.vz-empty b{font-size:18px;color:var(--ink)}
.vz-it{cursor:move}
.vz-it.sel rect,.vz-it.sel circle{filter:drop-shadow(0 0 0.04px #1B7F4B)}
.vz-it.pv-new{opacity:.95}
.vz-it.pv-new>rect,.vz-it.pv-new>circle{stroke:#1B7F4B!important;stroke-dasharray:4 2}
.vz-it.pv-mv>rect,.vz-it.pv-mv>circle{stroke:#2F6FB0!important}
.pv-del{opacity:.35}
.pv-del rect,.pv-del circle{stroke:#D14343!important}
.vz-h{fill:#fff;stroke:#1B7F4B;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer}
.vz-vx{fill:#fff;stroke:#8E44AD;stroke-width:2;vector-effect:non-scaling-stroke;cursor:move}
.vz-fx.ed{cursor:move}
.vz-fx.sel rect,.vz-fx.sel circle{stroke:#1B7F4B!important;stroke-width:3}
.vz-dimt{paint-order:stroke;stroke:#fff;stroke-linejoin:round}
.vz-num,.vz-lab{paint-order:stroke;stroke:#fff;stroke-width:.05;pointer-events:none}
.vz-status{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px 12px;font-size:12.5px;flex-wrap:wrap}
.vz-stchk{border:0;border-radius:14px;padding:3px 10px;font-size:12px;background:var(--good-soft);color:var(--good)}
.vz-stchk.warn{background:var(--warn-soft);color:var(--warn)}.vz-stchk.err{background:var(--crit-soft);color:var(--crit)}
.vz-gh{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:12px 0 6px}
.vz-gh:first-child{margin-top:0}
.vz-li{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--line);font-size:13px}
.vz-li[draggable=true]{cursor:grab}
.vz-li.done .vz-nm{color:var(--muted)}
.vz-li.mut{opacity:.8}
.vz-li .grow{flex:1;min-width:0}
.vz-nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.vz-cnt{font-size:11.5px;color:var(--muted)}
.vz-cnt b.l{color:var(--warn)}.vz-cnt .x{color:var(--crit);font-weight:700}
.vz-ico{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:14px;background:var(--surface2)}
.vz-mini{font-size:11.5px;padding:2px 4px;min-height:28px;max-width:150px}
.vz-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);margin-bottom:6px}
.vz-f input,.vz-f select,.vz-f textarea{font-size:13px;color:var(--ink)}
.vz-f1 input{width:100%;font-weight:700}
.vz-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
.vz-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 8px}
.vz-algrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.vz-kv{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:12.5px;margin:6px 0}
.vz-kv span{color:var(--muted)}
.vz-tag{background:var(--surface2);border-radius:8px;padding:6px 8px;font-size:12px;margin-bottom:8px}
.vz-tag.x{background:var(--crit-soft);color:var(--crit);font-weight:600}
.vz-seats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.vz-seats div{background:var(--surface2);border-radius:10px;padding:8px;display:flex;flex-direction:column}
.vz-seats b{font-size:20px}.vz-seats span{font-size:11px;color:var(--muted)}
.vz-leg{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.vz-leg div{display:flex;align-items:center;gap:6px}
.vz-leg .vz-ico{width:20px;height:20px;font-size:12px}
.vz-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.vz-disc{font-size:11.5px;background:var(--surface2);border-radius:8px;padding:6px 8px;margin-top:10px}
.vz-chk{display:block;width:100%;text-align:left;border:0;background:var(--surface2);border-radius:8px;padding:6px 8px;margin-bottom:4px;font-size:12.5px;color:var(--ink)}
.vz-chk.err{background:var(--crit-soft)}.vz-chk.warn{background:var(--warn-soft)}
.vz-ainote{font-size:12px;background:var(--info-soft);border-radius:8px;padding:6px 8px;margin-bottom:8px}
.vz-ainote.warn{background:var(--warn-soft)}
.vz-chat{max-height:38vh;overflow:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.vz-msg{font-size:12.5px;border-radius:10px;padding:7px 9px;white-space:pre-wrap;background:var(--surface2)}
.vz-msg.user{background:#E7F3EC;align-self:flex-end;max-width:92%}
.vz-msg ul{margin:6px 0 0;padding-left:16px}.vz-msg li.bad{color:var(--crit)}
.vz-mhd{font-size:10.5px;color:var(--muted);margin-bottom:2px;font-weight:600}
.vz-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.vz-chip{border:1px solid var(--line2);background:var(--surface);border-radius:14px;padding:3px 8px;font-size:11.5px;color:var(--ink2);text-align:left}
.vz-chip:hover{border-color:var(--brand)}
.vz-right textarea{width:100%}
.vz-pvbox{border:1px dashed #1B7F4B;border-radius:10px;padding:8px;margin-bottom:8px;background:#F3FAF6}
.vz-spin{display:inline-block;width:10px;height:10px;border:2px solid var(--line2);border-top-color:var(--brand);border-radius:50%;animation:vzsp 0.8s linear infinite;vertical-align:-1px}
@keyframes vzsp{to{transform:rotate(360deg)}}
#vzdlg{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center}
.vz-dlgbg{position:absolute;inset:0;background:rgba(10,20,15,.35)}
.vz-dlg{position:relative;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);width:min(720px,94vw);max-height:88vh;display:flex;flex-direction:column}
.vz-dlghd{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
.vz-dlgbd{padding:14px 16px;overflow:auto}
.vz-hlist{display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto}
.vz-hrow{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;color:var(--ink)}
button.vz-hrow:hover{border-color:var(--brand)}
.vz-seg{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}
.vz-seg button{border:1px solid var(--line2);background:var(--surface);border-radius:16px;padding:5px 12px;font-size:13px}
.vz-seg button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.vz-seatn{margin:10px 0;font-size:14px}
.vz-chkrow{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
.vz-hcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.vz-hcard{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.vz-hcard.arch{opacity:.55}
.vz-hthumb{background:#EEF1F3;height:150px;padding:6px}
.vz-hthumb svg{width:100%;height:100%}
.vz-hbody{padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.vz-prov{border:1px solid var(--line);border-radius:10px;padding:10px;margin:10px 0}
.vz-fxgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}
.vz-fxgrid .btn{justify-content:flex-start;font-size:12px;gap:6px}
.vz-fxgrid i{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.vz-vx input{width:70px;font-size:12px;padding:3px 5px;min-height:28px}
.vz-vx .row{margin-bottom:3px}
.vz-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px}
.vz-ph{position:relative}.vz-ph img{width:100%;height:64px;object-fit:cover;border-radius:6px;display:block}
.vz-ph .iconbtn{position:absolute;top:2px;right:2px;background:rgba(255,255,255,.85);width:22px;height:22px;min-height:0}
.vz-estlink{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.vz-pdf{width:1060px;padding:10px;font-family:Roboto,Arial,sans-serif;color:#151515;background:#fff;font-size:12px}
.vz-pdfh{display:flex;justify-content:space-between;border-bottom:3px solid #004527;padding-bottom:6px}
.vz-pdfh h1{margin:0 0 4px;font-size:20px;color:#004527}.vz-pdfh .r{text-align:right}
.vz-pdf h2{font-size:14px;margin:12px 0 6px;color:#004527;page-break-after:avoid}
.vz-pdf table{width:100%;border-collapse:collapse;font-size:10.5px}
.vz-pdf th,.vz-pdf td{border:1px solid #D0D5D1;padding:3px 5px;text-align:left;vertical-align:top}
.vz-pdf tr{page-break-inside:avoid}
.vz-pdf th{background:#E3EFE7}
.vz-pdfl{font-size:11px;color:#333}
.vz-pdfd{font-size:10.5px;color:#5b635e;border-top:1px solid #D0D5D1;padding-top:6px;margin-top:10px}
tr.clk{cursor:pointer}tr.clk:hover td{background:var(--surface2)}
@media (max-width:1200px){.vz-body{grid-template-columns:240px 1fr 280px}}
@media (max-width:900px){.vz-ed{height:auto}.vz-body{grid-template-columns:1fr}.vz-canvas{height:60vh}.vz-left,.vz-right{max-height:50vh}}
.vz-lictl{display:flex;gap:4px;align-items:center;margin-top:3px}
.vz-li.est{align-items:flex-start}
.vz-fxgrid .btn{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex}
/* ================= Фінанси · P&L і фінмодель ================= */
.fm-pnl td,.fm-pnl th{white-space:nowrap}
.fm-pnl td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;min-width:230px}
.fm-pnl tr.fm-b td{font-weight:700}
.fm-pnl tr.fm-hi td{background:var(--hi-soft)}
.fm-pnl tr.fm-hi td:first-child{background:var(--hi-soft)}
.fm-pnl tr.fm-m td{color:var(--muted)}
.fm-ind{display:inline-block;width:14px}
td.neg,.neg{color:var(--crit)}td.pos{color:var(--good)}
.fm-note{margin-top:8px}
.fm-src{font-size:11px;color:var(--info);text-decoration:underline dotted;margin-left:2px}
.fm-grid{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:16px;align-items:start}
@media (max-width:1000px){.fm-grid{grid-template-columns:1fr}}
.fm-sl{display:grid;grid-template-columns:1fr 84px 28px;gap:2px 6px;align-items:center;margin-bottom:8px;font-size:13px}
.fm-sl span{grid-column:1/4;color:var(--ink2)}
.fm-sl input[type=range]{width:100%;accent-color:var(--brand)}
.fm-sl input[type=number]{width:84px;font-size:13px;padding:3px 6px;min-height:28px}
.fm-sl i{font-style:normal;font-size:12px;color:var(--muted)}
.fm-res td,.fm-res th{white-space:nowrap}
.fm-call{background:var(--good-soft);border-radius:10px;padding:8px 12px;margin:10px 0;font-size:13px}
.fm-tor{display:flex;flex-direction:column;gap:6px}
.fm-trow{display:grid;grid-template-columns:170px 1fr 130px;gap:8px;align-items:center;font-size:13px}
.fm-trow b{text-align:right}
.fm-tbar{background:var(--surface2);border-radius:6px;height:14px;overflow:hidden}
.fm-tbar i{display:block;height:100%;background:var(--brand);border-radius:6px}
.fm-tbar i.neg{background:var(--crit)}
.fm-recs{display:flex;flex-direction:column;gap:8px}
.fm-rec{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.fm-rec .grow{flex:1;min-width:0}.fm-rec .sub{margin-top:4px}
.fm-rec.risk{background:var(--warn-soft);border-color:transparent}
.fm-rnum{width:28px;height:28px;border-radius:50%;background:var(--hi-soft);color:var(--hi);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.fm-reff{font-size:18px;font-weight:700;color:var(--good);text-align:right;white-space:nowrap;display:flex;flex-direction:column}
.fm-reff small{font-size:11px;color:var(--muted);font-weight:400}.fm-reff.neg{color:var(--crit)}
/* ================= Транспорт · GPS-карта ================= */
.gps-wrap{display:grid;grid-template-columns:1fr 320px;gap:12px;align-items:start}
@media (max-width:1000px){.gps-wrap{grid-template-columns:1fr}}
.gps-map{height:62vh;min-height:420px;border-radius:0 0 12px 12px;background:#E8ECEF}
.gps-side .bd{display:flex;flex-direction:column;gap:6px;max-height:62vh;overflow:auto}
.gps-u{display:flex;gap:8px;align-items:flex-start;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;color:var(--ink)}
.gps-u:hover{border-color:var(--brand)}.gps-u .grow{flex:1;min-width:0}
.gps-ic{background:none;border:0}
.gps-pin{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid #2F6FB0;color:#2F6FB0;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.gps-pin.mv{background:#1B7F4B;border-color:#1B7F4B;color:#fff}
.gps-tt{font-weight:700;font-size:11px}
.gps-set{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.gps-set summary{cursor:pointer;font-weight:600}
.gps-frame{position:relative;height:65vh;min-height:420px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.gps-frame iframe{width:100%;height:100%;border:0}
.crew-sum{margin-top:8px;font-size:13px;background:var(--surface2);border-radius:8px;padding:6px 10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* план розвитку */
.nav .devst{margin-left:auto;min-width:20px;height:20px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:0 6px}
.nav .devst.warn{background:#E0A100;color:#1d1d1d}
.nav .devst.ok{background:rgba(255,255,255,.18);color:#9FE0B5}
.rail-min .nav .devst{position:absolute;right:6px;top:4px;min-width:14px;height:14px;font-size:9px;padding:0 3px}
.dev-thanks{display:flex;gap:14px;align-items:flex-start;background:var(--good-soft);border-radius:12px;padding:14px 16px}
.dev-thanks p{margin:4px 0}
.dev-ok{width:40px;height:40px;border-radius:50%;background:var(--good);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex:none}
.dev-my{margin-top:12px}.dev-my summary{cursor:pointer;font-weight:600}
.dev-hist{background:var(--info-soft);border-radius:8px;padding:8px 10px;margin:6px 0;font-size:13px}
.dev-hist details{margin-top:4px}.dev-hist summary{cursor:pointer}
.mr-sum{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mr-sum span{background:var(--surface);border-radius:8px;padding:4px 10px;display:flex;flex-direction:column;min-width:86px}
.mr-sum i{font-style:normal;font-size:11px;color:var(--muted)}.mr-sum b{font-size:15px}
/* Довідник · Матеріали */
.mat-top{display:flex;gap:8px;align-items:center;margin:10px 0}.mat-top input{max-width:380px;flex:1}.mat-top .grow{flex:1}
.mat-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.mat-it{display:flex;gap:12px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}
.mat-it:last-child{border-bottom:0}.mat-it .grow{flex:1;min-width:0}.mat-it.pin{background:var(--hi-soft);border-radius:10px;padding:12px 10px}
.mat-ic{width:40px;height:40px;border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.mat-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;max-width:320px}
.mat-vers{width:100%;text-align:right}.mat-vers .linkbtn{display:block;margin-left:auto}
.mat-aud{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}.mat-aud label{display:flex;gap:4px;align-items:center;color:var(--ink)}
.mat-body{margin:0 0 10px 52px;background:var(--surface2);border-radius:12px;padding:12px 16px;font-size:14px;line-height:1.5}
.mat-body h4{margin:12px 0 6px;font-size:14px;color:var(--brand)}.mat-body h4:first-child{margin-top:0}
.mat-body ul{margin:4px 0 8px;padding-left:20px}.mat-body ul.mat-ck{list-style:none;padding-left:0}
.mat-ck li label{display:flex;gap:8px;align-items:flex-start;padding:3px 0;cursor:pointer}.mat-ck input{margin-top:3px}
.mat-body p{margin:4px 0}
.lnk-t td{vertical-align:middle}.lnk-g td{background:var(--surface2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.lnk-f input,.lnk-f select{width:100%;min-width:120px}
.trips{display:flex;flex-direction:column;gap:3px;margin-top:4px;align-items:flex-start}
.trip{display:flex;gap:4px;align-items:center;font-size:11.5px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 4px;white-space:nowrap}
.trip-leg{color:var(--muted);font-size:10.5px}
.trip-f{display:flex;flex-direction:column;gap:3px}.trip-f select{max-width:150px}
tr.rep-h td{font-size:11.5px;color:var(--muted);background:var(--surface2);padding-top:2px}
.req{color:var(--crit)}
/* продажі */
.sl-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
.sl-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.sl-f.grow{flex:1;min-width:240px}.sl-f textarea{min-height:34px;font-size:13px}.sl-f label{display:flex;gap:6px;align-items:center}
.sl-ups{background:var(--warn-soft);border-radius:12px;padding:8px 12px;margin-bottom:10px;font-size:13px}.sl-up{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:3px 0}.sl-up span{flex:1}
.sl-why{background:var(--info-soft);border-radius:8px;padding:6px 10px;margin-bottom:8px;font-size:13px}
.sl-msg{margin:6px 0}.sl-msg textarea{width:100%;font-size:13px}
.sl-rules{margin:0;padding-left:18px;font-size:13px;line-height:1.6}
.sl-fb{border-left:3px solid var(--good);padding:4px 10px;margin-bottom:6px;font-size:13px}.sl-fb.neg{border-color:var(--crit)}
.sl-prefs{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:13px;margin:0 0 14px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px}

/* ===== Компактна картка клієнта ===== */
.content.clc{gap:10px}
.clc>.row{gap:8px;align-items:center}
.clc .clc-name{margin:0 4px;font-size:20px;line-height:1.2}
.clc>.row .sub{font-size:12px}
.clc .cl-save{padding:6px 10px}
.clc .cl-save .btn{padding:4px 10px;min-height:0}
.clc>.tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.clc>.tiles .tile{padding:8px 12px;min-height:0}
.clc>.tiles .tile b,.clc>.tiles .tile .v{font-size:18px;line-height:1.2}
.clc>.tiles .tile small,.clc>.tiles .tile .s{font-size:11px}
.clc-main{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:10px;align-items:start}
.clc-main.two{grid-template-columns:1.2fr 1fr}
.clc-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.clc .card>.hd{padding:8px 12px 4px}
.clc .card>.hd h3,.clc .card>.hd{font-size:13px}
.clc .card>.hd h3{font-size:11.5px}
.clc .card>.bd{padding:0 12px 10px}
.clc .fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}
.clc .f{gap:2px}
.clc .f label{font-size:10.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin:0 0 2px}
.clc .f input,.clc .f select{height:30px;min-height:30px;padding:3px 8px;font-size:13px}
.clc .f textarea{min-height:0;padding:5px 8px;font-size:13px}
.clc .f .sub,.clc .f small{font-size:10.5px;line-height:1.25}
.clc .btn{padding:5px 10px;min-height:0;font-size:12.5px}
.clc h4{margin:6px 0 2px;font-size:12px}
.clc .kpis{gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.clc .kpis>*{padding:6px 10px;min-height:0}
.clc .kpis b,.clc .kpis .v{font-size:15px}
.clc .kpis small,.clc .kpis .s,.clc .kpis label{font-size:10.5px}
.clc .card .grid.g2{grid-template-columns:1fr;gap:6px}
.clc .sl-prefs{padding:8px 12px;flex-wrap:wrap;gap:6px}
.clc .sl-prefs select{height:30px}
.clc .sl-prefs label{font-size:11.5px}
.clc-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.clc-det>summary{cursor:pointer;padding:9px 12px;display:flex;gap:10px;align-items:baseline;list-style:none}
.clc-det>summary::-webkit-details-marker{display:none}
.clc-det>summary:before{content:'▸';color:var(--ink3,#888);width:10px}
.clc-det[open]>summary:before{content:'▾'}
.clc-det>summary b{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.clc-det>summary .sub{font-size:11.5px;margin-left:auto}
.clc .doc-li{padding:4px 0;min-height:0}
.clc .list .li{padding-top:5px;padding-bottom:5px}
@media (max-width:1250px){.clc-main{grid-template-columns:1fr 1fr}.clc-main .clc-col:nth-child(3){grid-column:1/-1}}
@media (max-width:820px){.clc-main,.clc-main.two,.clc-more{grid-template-columns:1fr}}
.clc>.tiles .tile{padding:6px 12px!important;gap:1px!important;flex-direction:row!important;flex-wrap:wrap;align-items:baseline;column-gap:10px!important}
.clc>.tiles .tile span{font-size:10.5px!important;width:100%}
.clc>.tiles .tile b{font-size:17px!important}
.clc>.tiles .tile small{font-size:10.5px!important}
.clc input:not([type=checkbox]):not([type=radio]),.clc select{height:30px;min-height:30px;padding-top:3px;padding-bottom:3px;font-size:13px}
.clc textarea{font-size:13px;padding:5px 8px}
.clc .empty{padding:10px 8px;font-size:12.5px}
.clc .card h4,.clc .card .bd>b{font-size:12px;margin:6px 0 2px}
.clc .card .bd .sub{font-size:11.5px}
.clc .sl-prefs .chk,.clc .sl-prefs label:has(input[type=checkbox]){display:flex;gap:6px;align-items:flex-start}

/* ===== Графік відпусток ===== */
.vac-top{gap:10px;flex-wrap:wrap;align-items:center}
.vac-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.vac-leg span{display:inline-flex;align-items:center;gap:5px}.vac-leg i{width:12px;height:8px;border-radius:3px;display:inline-block}
.vac-now{font-size:13px;padding:8px 12px;border-radius:10px;background:var(--brand-soft,#e8f3ec)}
.vac-cal{padding:6px 12px 10px;overflow-x:auto}
.vac-r{display:grid;grid-template-columns:210px minmax(700px,1fr);align-items:center;border-bottom:1px solid var(--line)}
.vac-r:last-child{border-bottom:0}
.vac-h{position:sticky;top:0;background:var(--surface);z-index:2}
.vac-n{display:flex;flex-direction:column;padding:4px 10px 4px 0;min-width:0}
.vac-n b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-n .sub{font-size:10.5px}
.vac-tr{position:relative;height:30px}
.vac-r:not(.vac-h) .vac-tr[data-vacadd]{cursor:copy}
.vac-r:not(.vac-h):hover{background:var(--surface2,rgba(0,0,0,.02))}
.vac-h .vac-tr{height:24px}
.vac-m{position:absolute;top:4px;font-size:11px;color:var(--muted);text-align:center;border-left:1px solid var(--line)}
.vac-mb{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}
.vac-mb.odd{background:rgba(127,127,127,.05)}
.vac-today{position:absolute;top:0;bottom:0;width:2px;background:#d9534f;opacity:.7;z-index:1}
.vac-b{position:absolute;top:7px;height:16px;border-radius:5px;z-index:1;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.vac-b:hover{filter:brightness(1.1);transform:scaleY(1.15)}
.vac-g{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;padding:10px 0 4px;border-bottom:1px solid var(--line)}
.vac-n{flex-direction:row;align-items:baseline;gap:6px;justify-content:space-between;padding:2px 10px 2px 0}
.vac-n .sub{flex:none}
.vac-tr{height:24px}.vac-b{top:5px;height:14px}
.vac-cal{overflow:visible}
.vac-h{top:0}
.vac-r{grid-template-columns:260px minmax(700px,1fr)}

/* ===== Тарифи транспорту ===== */
.car-tar{margin-top:2px;color:var(--brand,#3f7a5a)!important;font-weight:500}
.trip-p{display:block;width:100%;font-size:11px;color:var(--muted);margin:1px 0 2px 2px}
.trip-p b{color:var(--ink)}
.trip-sum{font-size:11px;margin-top:2px}
.trip-nums{gap:4px;flex-wrap:nowrap}.trip-nums input{min-width:0;flex:1}
.trip-f input.c2{width:100%}
.trip{flex-wrap:wrap}.trip-p{flex-basis:100%;white-space:normal}
.trip-nums{flex-wrap:wrap}.trip-nums input{flex:1 1 70px}
.car-tar.cost{color:var(--ink2)!important}

/* ===== Аналітика ===== */
.rail .nav.nav-sub{padding-left:40px;min-height:34px;font-size:13.5px;opacity:.92}
.rail .nav.nav-sub svg{width:16px;height:16px}
.rail-min .rail .nav.nav-sub{padding-left:0}
.rail .nav.on-grp{background:rgba(255,255,255,.06)}
.an-nav{display:flex;gap:4px;flex-wrap:wrap;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);align-self:flex-start;margin-bottom:4px}
.an-nav button{border:0;background:transparent;padding:7px 14px;border-radius:9px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer}
.an-nav button.on{background:var(--brand,#2f6b4f);color:#fff}
tr.mx-an0 td:first-child b{font-size:14px}
tr.mx-an0{background:rgba(47,107,79,.06)}
tr.mx-an1 td:first-child{padding-left:18px}
tr.mx-an2 td:first-child{padding-left:34px}tr.mx-an2 td:first-child b{font-weight:500;font-size:12.5px}
.rail .nav.nav-sub{padding-left:34px}.rail .nav.nav-sub span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== Групи меню, що згортаються ===== */
.rail .navgrp{cursor:pointer;display:flex;align-items:center;gap:6px;user-select:none;border-radius:8px;transition:color .15s}
.rail .navgrp:hover{color:#fff}
.rail .navgrp:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}
.rail .navgrp .ng-chev{margin-left:auto;font-size:11px;transition:transform .2s;opacity:.7}
.rail .navgrp.closed .ng-chev{transform:rotate(-90deg)}
.rail .navgrp .ng-cnt:not(:empty){background:#e0b341;color:#1d3b2c;border-radius:9px;font-size:10px;padding:0 6px;letter-spacing:0;font-weight:700}
.rail .nav.ng-hide{display:none}
.rail-min .rail .nav.ng-hide{display:flex}

/* ===== Цілі ===== */
.gl{padding:12px 0;border-bottom:1px solid var(--line)}.gl:last-child{border-bottom:0}
.gl-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gl-h b{font-size:15px}
.gl-why{margin:2px 0 0}
.gl-bar{position:relative;height:14px;border-radius:8px;background:var(--surface2,rgba(127,127,127,.12));overflow:hidden;margin:10px 0 6px}
.gl-bar.sm{height:8px;margin:6px 0 2px}
.gl-bar i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:8px;background:linear-gradient(90deg,#3f8f6b,#63b98a);transition:width 1.4s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.gl-bar i:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.35) 50%,transparent 80%);transform:translateX(-100%);animation:glShine 2.6s 1.5s ease-in-out infinite}
@keyframes glShine{to{transform:translateX(100%)}}
.gl.behind .gl-bar i{background:linear-gradient(90deg,#d08a2c,#e7b04f)}
.gl.done .gl-bar i{background:linear-gradient(90deg,#2f8f5b,#4cc27f,#9be0a0)}
.gl-bar em{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink,#222);opacity:.55;z-index:1}
.gl-f{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.gl-num{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.gl-pct{font-size:14px;font-variant-numeric:tabular-nums;color:var(--brand,#2f6b4f)}
.gl-rw{font-size:12px;background:#fff4d6;color:#7a5a12;border-radius:8px;padding:2px 8px}
.gl-win{font-weight:700;color:#2f8f5b;animation:glPop 1.2s ease-in-out infinite alternate}
@keyframes glPop{from{transform:scale(1)}to{transform:scale(1.08)}}
.gl-upd{gap:6px;margin-top:8px}.gl-upd input{max-width:130px;height:30px}
.gl-card{border-color:rgba(63,143,107,.35)}
.gl-card>.hd h3{color:var(--brand,#2f6b4f)}
.gl-mini{margin-bottom:10px}
.gl-old>summary{padding:12px 16px;cursor:pointer;font-weight:600}
@media (prefers-reduced-motion:reduce){.gl-bar i{transition:none}.gl-bar i:after,.gl-win{animation:none}}
.favst{font-size:0;width:22px;height:22px;padding:4px;margin-left:8px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}
.favst svg{width:14px;height:14px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linejoin:round;transition:fill .2s,stroke .2s,transform .2s}
.favst:hover svg{stroke:#D4A017;transform:scale(1.15)}
.favst.on svg{fill:#F2B705;stroke:#D4A017;animation:favPop .35s ease-out}
@keyframes favPop{0%{transform:scale(.6)}60%{transform:scale(1.3)}100%{transform:scale(1)}}

/* ===== Плавне згортання меню ===== */
.rail .ng-box{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .42s cubic-bezier(.33,1,.68,1),opacity .32s ease;flex:none}
.rail .ng-box.closed{grid-template-rows:0fr;opacity:0}
.rail .ng-in{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:2px}
.rail .ng-box.closed .ng-in{visibility:hidden;transition:visibility 0s .42s}
.rail .ng-in .nav{transition:transform .42s cubic-bezier(.33,1,.68,1)}
.rail .ng-box.closed .ng-in .nav{transform:translateY(-6px)}
.rail .navgrp .ng-chev,.rail .nav.ng-parent .ng-chev{transition:transform .35s cubic-bezier(.33,1,.68,1)}
.rail .nav.ng-parent .ng-chev{margin-left:auto;font-size:11px;opacity:.7;padding-left:6px}
.rail .nav.ng-parent.closed .ng-chev{transform:rotate(-90deg)}
.rail .navgrp.closed.has-on,.rail .nav.ng-parent.closed.has-on{color:#fff}
.rail .nav.ng-parent.closed.has-on{background:rgba(255,255,255,.1)}
.rail-min .rail .ng-box{grid-template-rows:1fr!important;opacity:1!important}.rail-min .rail .ng-box .ng-in{visibility:visible!important}.rail-min .rail .ng-in .nav{transform:none!important}
@media (prefers-reduced-motion:reduce){.rail .ng-box,.rail .ng-in .nav,.rail .ng-chev{transition:none!important}}
.rail .navgrp .ng-chev,.rail .nav.ng-parent .ng-chev{font-size:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;opacity:.85}
.rail .navgrp .ng-chev:before,.rail .nav.ng-parent .ng-chev:before{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.rail .nav.ng-parent .ng-chev{margin-left:auto}

/* ===== Масові дії із задачами ===== */
.tk-bulk select.msel{max-width:170px;height:32px}
.tk-bulk .tk-dl{gap:6px;font-size:13px}.tk-bulk .tk-dl input{height:32px;max-width:150px}
table.tight td.sel,table.tight th.sel{width:34px;text-align:center}
table.tight tr.selr td{background:var(--hi-soft,var(--brand-soft,#e3efe7))!important}
tr.tk-new td:nth-child(3) b:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#2f7de1;margin-right:6px;vertical-align:middle}
.tk-bulk{gap:8px;padding:8px 12px}
.tk-bulk .tk-dl{display:inline-flex;align-items:center;flex-direction:row;color:inherit;font-size:12.5px;margin:0;text-transform:none;letter-spacing:0}
.tk-bulk .tk-dl input{height:32px;padding:3px 8px;width:140px}
.tk-bulk select.msel{height:32px;padding:3px 8px;font-size:13px}
.tk-bulk .btn{height:32px;padding:4px 10px}
.content table.tight tr[data-row] td:nth-child(3){min-width:260px}
.an-nav{padding:5px;gap:4px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.an-nav button{padding:9px 18px;font-size:14px}
.an-nav button:hover:not(.on){background:var(--surface2,rgba(127,127,127,.08));color:var(--ink)}

/* ===== Кабелярка ===== */
.fc-lane{position:relative;height:50px;margin:0 0 -12px;pointer-events:none;z-index:2}
.fc{position:absolute;left:0;bottom:0;width:62px;height:50px;padding:0;border:0;background:none;cursor:pointer;pointer-events:auto;will-change:transform;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}
.fc svg{width:100%;height:100%;display:block;overflow:visible}
.fc.hop svg{animation:fcHop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes fcHop{0%{transform:translateY(0)}40%{transform:translateY(-12px) rotate(-4deg)}100%{transform:translateY(0)}}
.fc-bulb{animation:fcBlink 1.4s ease-in-out infinite alternate}
@keyframes fcBlink{from{opacity:1}to{opacity:.25}}
.fc-flag{animation:fcWave 1.6s ease-in-out infinite alternate}
@keyframes fcWave{from{transform:skewY(0deg) scaleX(1)}to{transform:skewY(-6deg) scaleX(.92)}}
section.fc-under{position:relative}
@media (prefers-reduced-motion:reduce){.fc-bulb,.fc-flag{animation:none}}
.fc-lane{height:68px;margin-bottom:-19px}
.fc{width:86px;height:69px}

/* ===== Закріплена панель виборок ===== */
.stickybar{position:sticky;top:var(--hdr-h,72px);z-index:14;background:var(--bg);display:flex;flex-direction:column;gap:10px;margin:-6px -8px 0;padding:6px 8px 8px;border-radius:0 0 14px 14px;transition:box-shadow .2s}
.stickybar.stuck{box-shadow:0 8px 18px -10px rgba(0,0,0,.25);border-bottom:1px solid var(--line)}
.stickybar .whbar{position:static}
section.card>.hd.stickybar{margin:0;border-radius:var(--r) var(--r) 0 0;background:var(--surface);padding-top:10px}
.cl-bulk{top:var(--sb-bottom,64px)!important}
.cl-save{top:calc(var(--hdr-h,72px) + 8px)!important}
/* COST: менеджер */
.mgr-chip{display:inline-block;color:#fff;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px;margin:0 0 4px;white-space:nowrap}
td.mgr-l{vertical-align:middle}
.mgr-leg{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.mgr-lg{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font:inherit;font-size:12.5px;cursor:pointer}
.mgr-lg i{width:10px;height:10px;border-radius:3px}.mgr-lg b{color:var(--muted);font-weight:600}
.mgr-lg:hover{border-color:var(--brand,#2f6b4f)}
.stickybar.sb-card{top:var(--sb-top2,72px);margin:0;padding:0;border-radius:var(--r) var(--r) 0 0;background:var(--surface);gap:0;z-index:13}
.fc-lane{height:48px;margin-top:-30px;margin-bottom:-18px}
.fc{width:60px;height:48px}
.fc-lane{margin-bottom:-26px}
.fc-lane{margin-bottom:-22px}

/* ===== Перегляд як інший ===== */
.va-btn{font-size:15px}
.va-btn.on{background:#e0b341;color:#1d3b2c}
.va-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 28px;background:#fff4d6;color:#5a4410;border-bottom:1px solid #ecd9a0;font-size:13.5px}
.va-banner .sub{color:#8a6d1f}
.va-roles{display:flex;gap:6px;flex-wrap:wrap}
.va-list{max-height:48vh;overflow:auto;display:flex;flex-direction:column;gap:10px}
.va-gh{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;margin-bottom:4px}
.va-u{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 10px;margin-bottom:4px;cursor:pointer;font:inherit;text-align:left}
.va-u:hover{border-color:var(--brand,#2f6b4f);background:var(--brand-soft,#e8f3ec)}
.va-u .av{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface2,#eee);font-size:11px;font-weight:700}
.va-u .sub{margin-left:auto}
.va-u .av{color:var(--ink);background:var(--brand-soft,#e3efe7)}

/* ===== Графік вихідних ===== */
.wk-bar{gap:6px;align-items:center;flex-wrap:wrap}.wk-bar .msel{max-width:190px}
table.wk2 td.wk-c{text-align:center;min-width:78px;height:38px}
table.wk2 td.wk-c.ed{cursor:pointer}
table.wk2 td.wk-c.ed:hover{background:var(--brand-soft,#e3efe7)}
table.wk2 td.wk-c.on{background:rgba(63,143,107,.08)}
table.wk2 th.now,table.wk2 td.now{box-shadow:inset 0 -3px 0 #d9534f}
table.wk2 tr.wk-me td{background:#fff9e8}
table.wk2 td.wk-n{white-space:nowrap}

