/* Layout: toolbar + findings strip, one Gantt with sticky name column (team absences, weekly load, streams → projects → tasks), then slip and undated panels. Editors as a right-hand sheet. */
:root{
  --bg:#f5f7f8; --panel:#ffffff; --fg:#17212b; --muted:#5d6b78; --line:#dde3e8; --line-strong:#c3ccd4;
  --ink:#1f5fbf; --warn:#c2410c; --warn-bg:#fdebe1; --good:#0f7a55; --shade:rgba(15,25,35,.38);
  --urlop:#8a96a3; --l4:#d6455d; --zdalna:#2f7fd1;
  --f-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --f-body:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){ :root{
  --bg:#10161c; --panel:#161e26; --fg:#e4eaf0; --muted:#94a3b1; --line:#26313b; --line-strong:#364350;
  --ink:#7aa7ec; --warn:#fb8a52; --warn-bg:#3a2217; --good:#3fcf98; --shade:rgba(0,0,0,.6);
  --urlop:#7d8a96; --l4:#f0687e; --zdalna:#5fa5ec; color-scheme:dark } }

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.5}
.wrap{max-width:1400px;margin:0 auto;padding-inline:20px;padding-block:22px 56px;display:flex;flex-direction:column;gap:16px}
header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
h1{font-family:var(--f-display);font-weight:700;font-size:clamp(22px,4vw,30px);line-height:1.1;margin:0;letter-spacing:-.01em;text-wrap:balance}
.sub{color:var(--muted);margin:4px 0 0;font-size:13px;max-width:70ch}
.who{font-size:13px;color:var(--muted)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
button,select,input,textarea{font:inherit;color:inherit}
.btn{font:500 13px var(--f-body);border:1px solid var(--line-strong);background:var(--panel);color:var(--fg);border-radius:8px;padding:6px 12px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn.danger{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.btn.danger.armed{background:var(--warn);color:#fff;border-color:var(--warn)}
.btn.small{padding:3px 8px;font-size:12px}
.btn:disabled{opacity:.5;cursor:default}
:is(.btn,.chip,select,input,textarea,.name,.bar,.absbar,.caret):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.inline-form{display:inline;margin:0}
.toolbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:var(--panel)}
.seg button{border:0;background:none;padding:6px 12px;cursor:pointer;font-size:13px}
.seg button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.nav{display:inline-flex;align-items:center;gap:6px}
.nav .lbl{font:600 15px var(--f-display);min-width:140px;text-align:center}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:500 12.5px var(--f-body);border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;padding:4px 10px 4px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.chip i{width:8px;height:8px;border-radius:2px;background:var(--c)}
.chip[aria-pressed="false"]{opacity:.45}
select,input[type=text],input[type=password],input[type=date],input[type=month],input:not([type]),textarea{background:var(--panel);border:1px solid var(--line-strong);border-radius:8px;padding:6px 8px;font-size:13px;min-width:0;width:100%}
input[type=color]{width:44px;height:32px;padding:2px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel)}
.toolbar select{width:auto}
label.inline,label.check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.spacer{flex:1}

.findings{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.finding{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.finding .k{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.finding.risk{border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}
.finding.risk .k{color:var(--warn)}
.finding b{font-family:var(--f-display);font-size:16px;font-weight:600;line-height:1.25}
.finding p{margin:0;color:var(--muted);font-size:12.5px}

.legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--muted);align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:18px;height:10px;border-radius:3px;display:inline-block}
.sw.firm{background:var(--muted)}
.sw.derived{background:color-mix(in srgb,var(--muted) 35%,transparent);border:1.5px solid var(--muted)}
.sw.est{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--muted) 40%,transparent) 0 2px,transparent 2px 5px);border:1px dashed var(--muted)}
.sw.base{height:3px;background:var(--fg);opacity:.5}
.sw.urlop,.absbar.urlop{background:repeating-linear-gradient(45deg,var(--urlop) 0 1.5px,transparent 1.5px 5px);border:1px solid var(--urlop)}
.sw.l4,.absbar.l4{background:repeating-linear-gradient(45deg,var(--l4) 0 1.5px,transparent 1.5px 5px);border:1px solid var(--l4)}
.sw.zdalna,.absbar.zdalna{background:radial-gradient(var(--zdalna) 1px,transparent 1.3px) 0 0/5px 5px;border:1px solid var(--zdalna)}
.sw.today{width:3px;height:14px;background:var(--ink)}

.gantt-scroll{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.gantt{--name:300px;position:relative;min-width:1060px}
.row{display:grid;grid-template-columns:var(--name) 1fr;min-height:34px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.name{position:sticky;left:0;z-index:4;background:var(--panel);padding:5px 10px 5px 12px;border-right:1px solid var(--line);font-size:13px;line-height:1.3;display:flex;align-items:center;gap:7px;min-width:0}
.clickable .name{cursor:pointer}
.clickable .name:hover .t{text-decoration:underline;text-decoration-color:var(--line-strong)}
.name .t{min-width:0;flex:1}
.name .dot{width:8px;height:8px;border-radius:2px;flex:none}
.name small{display:block;color:var(--muted);font:11px var(--f-mono)}
.task .name{padding-left:34px;font-size:12.5px}
.task .name::before{content:"";width:8px;height:1px;background:var(--line-strong);flex:none;margin-left:-14px}
.proj .name .t{font-weight:600}
.caret{border:0;background:none;padding:0;width:16px;height:16px;cursor:pointer;color:var(--muted);flex:none;display:grid;place-items:center;font-size:10px;transition:transform .15s}
.caret[aria-expanded="false"]{transform:rotate(-90deg)}
.caret.none{visibility:hidden}
.count{font:500 10.5px var(--f-mono);color:var(--muted);flex:none}
.badge{font:600 10.5px var(--f-mono);border-radius:5px;padding:1px 5px;flex:none;white-space:nowrap}
.badge.slip{background:var(--warn-bg);color:var(--warn)}
.badge.gain{color:var(--good);border:1px solid color-mix(in srgb,var(--good) 40%,transparent)}
.badge.late{background:var(--warn);color:#fff}
.badge.done{color:var(--good)}
.badge.absw{color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent)}
.lane{position:relative}
.group{min-height:26px}
.group .name,.group .lane{background:var(--bg)}
.group .name{font:600 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.head .name{font:500 11px var(--f-mono);color:var(--muted)}
.hrow{position:relative;height:26px}
.hrow+.hrow{border-top:1px solid var(--line)}
.m,.w{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding-left:5px;white-space:nowrap;overflow:hidden}
.m{font:600 13px var(--f-display);border-left:1px solid var(--line-strong)}
.w{font:10.5px var(--f-mono);color:var(--muted);border-left:1px solid var(--line)}
.w.we{background:color-mix(in srgb,var(--line) 45%,transparent)}
.grid-bg{position:absolute;inset:0;pointer-events:none}
.gl{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.gl.mo{background:var(--line-strong)}
.offband{position:absolute;top:0;bottom:0}
.offband.urlop{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--urlop) 22%,transparent) 0 1px,transparent 1px 6px)}
.offband.l4{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--l4) 22%,transparent) 0 1px,transparent 1px 6px)}
.todayline{position:absolute;top:0;bottom:0;width:2px;background:var(--ink);z-index:3}

.bar{position:absolute;top:7px;bottom:7px;border-radius:5px;display:flex;align-items:center;padding:0 7px;font:500 10.5px var(--f-mono);color:#fff;white-space:nowrap;overflow:hidden;z-index:2;min-width:6px;cursor:pointer;user-select:none;background:var(--c)}
.task .bar{top:9px;bottom:9px;font-size:10px}
.bar.edit{cursor:grab}
.bar.edit::before,.bar.edit::after{content:"";position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize}
.bar.edit::before{left:0}.bar.edit::after{right:0}
.bar.dragging{cursor:grabbing;box-shadow:0 2px 10px var(--shade);z-index:5}
.bar.est{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 30%,transparent) 0 3px,transparent 3px 7px);border:1.5px dashed var(--c);color:var(--fg)}
.bar.derived{background:color-mix(in srgb,var(--c) 22%,transparent);border:1.5px solid var(--c);color:var(--fg)}
.bar.done{opacity:.45}
.bar.hold{background:repeating-linear-gradient(90deg,var(--c) 0 6px,color-mix(in srgb,var(--c) 55%,transparent) 6px 12px)}
.bar.pt{padding:0;width:14px!important;transform:translateX(-4px) rotate(45deg) scale(.72);border-radius:3px}
.bar.late{outline:2px solid var(--warn);outline-offset:1px}
.bline{position:absolute;bottom:2px;height:3px;border-radius:2px;background:var(--fg);opacity:.45;z-index:1}
.absbar{position:absolute;top:8px;bottom:8px;border-radius:4px;font:10.5px var(--f-mono);display:flex;align-items:center;padding:0 5px;white-space:nowrap;overflow:hidden;cursor:pointer;z-index:2}
.absbar.zdalna{top:11px;bottom:11px}
.load{min-height:50px}
.lcell{position:absolute;top:4px;bottom:4px;display:flex;align-items:flex-end;justify-content:center;font:600 11px var(--f-mono);padding-bottom:2px}
.lcell i{position:absolute;left:3px;right:3px;bottom:0;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.lcell.hot i{background:color-mix(in srgb,var(--warn) 45%,transparent)}
.lcell span{position:relative}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--fg);font:600 17px var(--f-display);margin-bottom:4px}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.panel h2{font:600 16px var(--f-display);margin:0 0 4px}
.panel .note{font-size:12.5px;color:var(--muted);margin:0 0 10px}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.list li{display:flex;gap:10px;align-items:baseline;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);font-size:13px;cursor:pointer}
.list li:first-child{border-top:0}
.list li:hover .n{text-decoration:underline;text-decoration-color:var(--line-strong)}
.list li .n{min-width:0}
.list li .v{font:500 12px var(--f-mono);color:var(--muted);white-space:nowrap}
.list li .v.warn{color:var(--warn)}
.list .none{cursor:default;color:var(--muted)}

.sheet-bg{position:fixed;inset:0;background:var(--shade);z-index:50;display:flex;justify-content:flex-end}
.sheet{background:var(--panel);width:min(480px,100%);height:100%;overflow-y:auto;padding:20px 20px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;box-shadow:-8px 0 30px var(--shade)}
.sheet h2{font:600 19px var(--f-display);margin:0}
.sheet h3{font:600 14px var(--f-display);margin:6px 0 0}
.field{display:flex;flex-direction:column;gap:4px}
.field>span{font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.two>*{min-width:0}
.hint{font-size:12px;color:var(--muted);margin:0}
.box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.hist{margin:0;padding:0;list-style:none;font:11.5px var(--f-mono);color:var(--muted);display:flex;flex-direction:column;gap:2px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.mini li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.mini li:first-child{border-top:0}
.mini li .v{font:11.5px var(--f-mono);color:var(--muted);white-space:nowrap}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:8px 14px;border-radius:8px;font-size:13px;z-index:60;max-width:calc(100% - 32px)}
.ro{font-size:12.5px;color:var(--warn);margin:0}

/* auth pages */
body.auth{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;width:min(400px,100%);display:flex;flex-direction:column;gap:14px}
.auth-card h1{font-size:24px}
.error{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:8px 10px;margin:0;font-size:13px}

@media (max-width:640px){ .gantt{--name:170px} .nav .lbl{min-width:110px} .task .name{padding-left:22px} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- app shell ---------- */
.appbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;justify-content:space-between}
.brand{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.brand h1{font-size:clamp(20px,3.4vw,26px)}
.tabsnav{display:flex;gap:4px;flex-wrap:wrap}
.tabsnav a{font:500 14px var(--f-body);color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:8px;display:inline-flex;align-items:center;gap:6px}
.tabsnav a:hover{color:var(--fg);background:color-mix(in srgb,var(--line) 60%,transparent)}
.tabsnav a[aria-current="page"]{color:var(--fg);background:var(--panel);box-shadow:inset 0 0 0 1px var(--line-strong)}
.pill{font:600 11px var(--f-mono);background:var(--warn);color:#fff;border-radius:999px;padding:0 6px;min-width:18px;text-align:center;line-height:18px}
.pill.muted{background:var(--line-strong);color:var(--fg)}
.bell{position:relative}
.bell .pill{position:absolute;top:-6px;right:-6px}
.rolechip{font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line-strong);border-radius:999px;padding:1px 8px}

/* ---------- dashboard ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0;font:inherit;color:inherit}
.tile .k{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;gap:6px}
.tile .k i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.tile b{font:700 28px var(--f-display);line-height:1.1;font-variant-numeric:tabular-nums}
.tile small{color:var(--muted);font-size:12px}
.tile[aria-pressed="true"]{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}
.tile.late b{color:var(--warn)}
:root{--q-queue:#8a96a3;--q-new:#0891b2;--q-active:#2563eb;--q-late:#c2410c;--q-hold:#a16207;--q-done:#0f7a55}
.st{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--f-body);white-space:nowrap}
.st i{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
.ptable-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.ptable{width:100%;border-collapse:collapse;min-width:760px}
.ptable th{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ptable td{padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}
.ptable tr:last-child td{border-bottom:0}
.ptable tr.clickable{cursor:pointer}
.ptable tr.clickable:hover td{background:color-mix(in srgb,var(--line) 35%,transparent)}
.ptable .pname{font-weight:600;display:flex;align-items:center;gap:8px}
.ptable .pname .dot{width:8px;height:8px;border-radius:2px;flex:none}
.ptable .mono{font-size:12px}
.prog{display:flex;align-items:center;gap:8px;min-width:120px}
.prog .track{flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.prog .fill{height:100%;background:var(--good);border-radius:3px}
.prog span{font:11px var(--f-mono);color:var(--muted);white-space:nowrap}
.delta{font:600 11.5px var(--f-mono);white-space:nowrap}
.delta.bad{color:var(--warn)} .delta.good{color:var(--good)} .delta.zero{color:var(--muted);font-weight:400}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:8px}
.card h2{font:600 16px var(--f-display);margin:0;display:flex;align-items:center;gap:8px;justify-content:space-between}
.card .note{font-size:12.5px;color:var(--muted);margin:0}
.tlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tlist li{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.tlist li:first-child{border-top:0}
.tlist li.clickable{cursor:pointer}
.tlist li.clickable:hover .n{text-decoration:underline;text-decoration-color:var(--line-strong)}
.tlist .n{min-width:0}
.tlist .n small{display:block;color:var(--muted);font:11px var(--f-mono)}
.tlist .v{font:500 11.5px var(--f-mono);color:var(--muted);white-space:nowrap}
.tlist .v.warn{color:var(--warn)}
.tlist .empty-li{color:var(--muted);cursor:default}
.sectionhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sectionhead h2{font:600 18px var(--f-display);margin:0}

/* ---------- compare & pending on timeline ---------- */
.bar.plan{background:transparent!important;border:1.5px solid var(--fg);opacity:.5;color:var(--fg);top:5px;bottom:auto;height:10px;padding:0;z-index:1}
.compare .bar.act{top:17px;bottom:5px}
.compare .task .bar.act{top:17px;bottom:6px}
.compare .row{min-height:38px}
.bar.ghost{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ink) 18%,transparent) 0 3px,transparent 3px 7px)!important;border:1.5px dashed var(--ink);color:var(--fg);z-index:3;cursor:pointer}
.badge.pend{color:var(--ink);border:1px dashed var(--ink)}
.row.proposal .name{font-style:italic;color:var(--muted)}
.sw.plan{background:transparent;border:1.5px solid var(--fg);opacity:.6}
.sw.ghost{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ink) 25%,transparent) 0 2px,transparent 2px 5px);border:1px dashed var(--ink)}

/* ---------- sheets: wide + tabs ---------- */
.sheet.wide{width:min(820px,100%)}
.stabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;flex:none}
.stabs button{border:0;background:none;padding:8px 12px;font:500 13px var(--f-body);color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.stabs button[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--fg)}
.tabpanel{display:flex;flex-direction:column;gap:14px}
.log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.log li{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.log li:first-child{border-top:0}
.log time{font:11px var(--f-mono);color:var(--muted);padding-top:2px}
.log .who{font-weight:600;color:var(--fg);font-size:inherit}
.log .sub{color:var(--muted);font-size:12px}
.log .ico{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--c,var(--muted))}
.diff{width:100%;border-collapse:collapse;font-size:13px}
.diff td{padding:4px 0;vertical-align:top;border-top:1px solid var(--line)}
.diff tr:first-child td{border-top:0}
.diff td:first-child{color:var(--muted);width:30%;font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.05em;padding-top:6px}
.diff del{color:var(--muted)}
.diff ins{text-decoration:none;font-weight:600}
.pvr{position:relative;overflow-x:auto}
.pvr-grid{min-width:560px;display:flex;flex-direction:column;gap:2px}
.pvr-row{display:grid;grid-template-columns:200px 1fr 64px;gap:10px;align-items:center;min-height:30px;font-size:12.5px}
.pvr-row .lbl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pvr-row .lbl small{color:var(--muted);font:10.5px var(--f-mono);margin-left:4px}
.pvr-row.head .lbl,.pvr-row.head .d{font:500 10.5px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pvr-lane{position:relative;height:24px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.pvr-lane .wk{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.pvr-lane .p{position:absolute;top:2px;height:8px;border:1.5px solid var(--fg);opacity:.5;border-radius:3px}
.pvr-lane .a{position:absolute;top:12px;height:10px;border-radius:3px;background:var(--c)}
.pvr-lane .a.open{background:repeating-linear-gradient(90deg,var(--c) 0 6px,color-mix(in srgb,var(--c) 50%,transparent) 6px 10px)}
.pvr-lane .now{position:absolute;top:0;bottom:0;width:2px;background:var(--ink)}
.pvr-row .d{text-align:right}
.pvr-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pvr-sum div{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.pvr-sum > div > span{display:block;font:500 10.5px var(--f-mono);text-transform:uppercase;color:var(--muted);letter-spacing:.06em}
.pvr-sum b{font:600 15px var(--f-display)}

/* ---------- comments ---------- */
.comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.comments li{display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.comments .meta{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}
.comments .meta b{color:var(--fg)}
.comments .body{white-space:pre-wrap;overflow-wrap:anywhere}
.mention{color:var(--ink);font-weight:600}
.composer{position:relative;display:flex;flex-direction:column;gap:6px}
.mlist{position:absolute;left:0;right:0;top:100%;margin-top:2px;background:var(--panel);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 6px 20px var(--shade);z-index:10;list-style:none;padding:4px;max-height:220px;overflow-y:auto}
.mlist li{padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;display:flex;justify-content:space-between;gap:8px}
.mlist li small{color:var(--muted);font-family:var(--f-mono)}
.mlist li[aria-selected="true"]{background:color-mix(in srgb,var(--ink) 15%,transparent)}
.linkbtn{border:0;background:none;padding:0;color:var(--muted);cursor:pointer;font-size:12px;text-decoration:underline}

/* ---------- approvals ---------- */
.reqs{display:flex;flex-direction:column;gap:12px}
.req{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.req header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.req header b{font:600 15px var(--f-display)}
.req header small{color:var(--muted);font:11.5px var(--f-mono)}
.req .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.req .acts input{flex:1;min-width:180px;width:auto}
.kind{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:5px;padding:2px 6px;background:color-mix(in srgb,var(--ink) 14%,transparent);color:var(--ink)}
.kind.del{background:var(--warn-bg);color:var(--warn)}
.warnline{color:var(--warn);font-size:12.5px;margin:0}
.notif{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.notif li{padding:9px 0;border-top:1px solid var(--line);font-size:13px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.notif li:first-child{border-top:0}
.notif li.unread .t{font-weight:600}
.notif li.unread .t::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ink);margin-right:7px;vertical-align:1px}
.notif small{color:var(--muted);font:11px var(--f-mono)}
@media (max-width:640px){ .pvr-row{grid-template-columns:120px 1fr 52px} .log li{grid-template-columns:1fr} }
.view{display:flex;flex-direction:column;gap:16px;min-width:0;width:100%}

/* ---------- team status ---------- */
:root{--st-office:#0f7a55;--st-remote:var(--zdalna);--st-l4:var(--l4);--st-leave:var(--urlop);--st-weekend:#8a96a3}
.statusbtn{display:inline-flex;align-items:center;gap:7px}
.statusbtn i,.tstat i{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.team{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px}
.team li{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;min-width:0}
.team li.me{border-color:var(--line-strong);box-shadow:inset 0 0 0 1px var(--line-strong)}
.team .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tstat{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--f-body);white-space:nowrap}
.tstat small{color:var(--muted);font:11px var(--f-mono)}
.card.wide{grid-column:1/-1}
