:root{--bg: #0b0f13;--panel: #161b21;--panel-2: #1a2027;--panel-3: #12161b;--line: #262d35;--line-soft: #1f252c;--text: #e6edf3;--muted: #8b949e;--faint: #6b7480;--ok: #4ade80;--ok-soft: rgba(74, 222, 128, .12);--teal: #34d3a6;--warn: #facc15;--warn-soft: rgba(250, 204, 21, .1);--bad: #f87171;--bad-soft: rgba(248, 113, 113, .12);--blue: #60a5fa;--accent: #fb923c;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 500px at -10% -20%,rgba(34,197,94,.13),transparent 60%),var(--bg);color:var(--text);font:14px/1.4 var(--sans);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}.app{height:100%;display:flex;flex-direction:column;min-height:0}.topbar{display:flex;align-items:center;gap:20px;padding:12px 24px;border-bottom:1px solid var(--line-soft);background:#0b0f13b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;gap:12px;align-items:center;min-width:240px}.brand-mark{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--accent),#5eead4)}.brand-title{font-weight:700;letter-spacing:.01em}.brand-sub{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.conn{width:7px;height:7px;border-radius:50%;display:inline-block}.conn--ok{background:var(--ok);box-shadow:0 0 8px var(--ok)}.conn--bad{background:var(--bad)}.toolbar{display:flex;gap:10px;align-items:center;flex:1}.toolbar--right{flex:0 0 auto}.search{flex:0 1 320px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 12px;outline:none}.search:focus{border-color:#3b4652}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{background:transparent;border:0;padding:7px 12px;color:var(--muted);cursor:pointer}.seg button.on{background:var(--panel-2);color:var(--text)}.user{background:transparent;border:1px dashed var(--line);color:var(--muted);border-radius:8px;padding:6px 10px;cursor:pointer}.btn{border-radius:8px;padding:7px 14px;cursor:pointer;border:1px solid var(--line);background:var(--panel);white-space:nowrap}.btn:hover:not(:disabled){border-color:#3b4652}.btn:disabled{opacity:.5;cursor:default}.btn--ghost{background:transparent}.btn--primary{background:var(--ok);color:#06210f;border-color:var(--ok);font-weight:600}.btn--primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--ok)}.btn--sm{padding:4px 10px;font-size:13px}.icon-btn{background:transparent;border:0;color:var(--muted);cursor:pointer;width:24px;height:24px;border-radius:6px;font-size:16px;line-height:1}.icon-btn:hover{background:var(--line);color:var(--text)}.board{flex:1;min-height:0;display:flex;gap:24px;padding:16px 24px 96px;overflow-x:auto}.col{flex:0 0 560px;display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .12s,box-shadow .12s}.col--inbox{flex-basis:440px;background:var(--panel-3);border-style:dashed}.col.is-over{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.col-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px 10px}.kicker{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.col-num{font:700 38px/1.1 var(--mono);letter-spacing:.02em}.col--inbox .col-num{font-size:26px;padding-top:6px}.col-actions{display:flex;gap:6px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px 20px;border-top:1px solid var(--line);background:var(--panel-3)}.kpi{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 12px 10px}.kpi-label{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-value{font:600 20px/1.3 var(--mono)}.kpi-value--ok{color:var(--ok)}.kpi-value--warn{color:var(--warn)}.bar{height:4px;border-radius:2px;background:#2a313a;margin-top:6px;overflow:hidden}.bar-fill{height:100%;border-radius:2px;transition:width .3s}.bar-fill--ok{background:var(--teal)}.bar-fill--warn{background:var(--warn)}.bar-fill--bad{background:var(--bad)}.inbox-hint{padding:0 20px 12px;color:var(--muted);font-size:13px}.col-scroll{flex:1;min-height:0;overflow-y:auto;border-top:1px solid var(--line)}.col-scroll--tv{scrollbar-width:none}.col-scroll::-webkit-scrollbar{width:8px}.col-scroll::-webkit-scrollbar-thumb{background:#2b333c;border-radius:4px}.group{border-bottom:1px solid var(--line)}.group.is-over>.group-head{background:#fb923c1f}.group-head{display:flex;align-items:center;gap:10px;padding:9px 16px;background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none}.dot{width:13px;height:13px;border-radius:4px;flex:none}.group-name{font-weight:600;font-size:16px}.chev{color:var(--faint);font-size:11px}.meta{margin-left:auto;color:var(--muted);font:13px var(--mono)}.group-head .icon-btn{margin-left:2px}.plan.is-over{background:#fb923c14;box-shadow:inset 3px 0 0 var(--accent)}.plan-head{display:flex;align-items:center;padding:7px 18px 7px 32px;background:var(--panel-3);border-top:1px solid var(--line-soft);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.plan-head--todo,.plan-head--todo .meta{color:var(--warn)}.row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:9px 18px 9px 32px;border-top:1px solid var(--line-soft);cursor:grab;position:relative;transition:background .1s}.row:hover{background:#ffffff06}.row:active{cursor:grabbing}.app--tv .row{cursor:default}.row--sel{background:#60a5fa1a!important;box-shadow:inset 3px 0 0 var(--blue)}.row--dirty:before{content:"";position:absolute;left:14px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.row--err:before{background:var(--bad);box-shadow:0 0 6px var(--bad)}.row-main{min-width:0}.row-title{font-size:15px;line-height:1.35}.docnum{font-family:var(--mono);color:var(--muted);margin-right:8px}.name{font-weight:600}.row-sub{display:flex;align-items:center;gap:10px;margin-top:5px;flex-wrap:wrap}.code{font:500 13px var(--mono);color:var(--blue)}.due{font:12px var(--mono);color:var(--faint)}.due--late{color:var(--bad)}.badge{font-size:12px;padding:1px 8px;border-radius:5px;border:1px solid var(--line);color:var(--muted);background:#ffffff05}.badge--released{color:var(--ok);border-color:#4ade8073;background:var(--ok-soft)}.badge--closed{color:var(--blue)}.badge--cancelled{color:var(--bad)}.tag{font-size:11px;padding:0 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.tag--dirty{color:var(--accent);background:#fb923c1f}.tag--err{color:var(--bad);background:var(--bad-soft)}.row-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font:600 13px var(--mono);padding:2px 9px;border-radius:6px;border:1px solid var(--line);background:var(--panel-3)}.pill svg{color:var(--muted)}.pill--warn{color:var(--warn);border-color:#facc158c;background:var(--warn-soft)}.pill--warn svg{color:var(--warn)}.pct{font:600 14px var(--mono)}.pct--zero{color:var(--muted)}.pct--ok{color:var(--teal)}.pct--warn{color:var(--warn)}.empty{color:var(--faint);text-align:center;padding:28px 16px;font-size:13px}.empty--sm{padding:10px 16px 12px 32px;text-align:left;border-top:1px dashed var(--line-soft)}.loop-divider{display:flex;align-items:center;gap:16px;padding:22px 20px;color:var(--faint);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.loop-divider:before,.loop-divider:after{content:"";flex:1;height:1px;background:var(--line)}.app--tv .board{padding-bottom:24px}.app--tv .col{flex:1 1 0;min-width:520px}.app--tv .col--inbox{display:none}.pending-bar,.selection-bar{position:fixed;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:12px;background:#1b2128;border:1px solid #333c46;border-radius:12px;padding:10px 12px 10px 14px;box-shadow:0 12px 40px #00000080;width:min(1100px,calc(100vw - 32px))}.pending-bar{bottom:18px}.selection-bar{bottom:82px;flex-wrap:wrap}.pending-bar:only-of-type{bottom:18px}.pending-count{min-width:28px;height:28px;padding:0 8px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:#2a1406;font:700 14px var(--mono)}.pending-count--sel{background:var(--blue);color:#061528}.spacer{flex:1}.sep{width:1px;height:22px;background:var(--line)}.sel{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.sel select,.field select,.field input{background:var(--panel-3);border:1px solid var(--line);border-radius:7px;padding:5px 8px;outline:none}.sel select{max-width:170px}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);z-index:30;background:#141920;border-left:1px solid #333c46;box-shadow:-20px 0 50px #00000073;display:flex;flex-direction:column}.drawer-head{display:flex;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.drawer-title{font-size:17px;font-weight:600;margin:4px 0 2px}.drawer-body{padding:16px 20px 40px;overflow-y:auto}.drawer-body h4{margin:22px 0 10px;color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.kpis--drawer{padding:0;border:0;background:transparent}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.field input,.field select{padding:8px 10px;color:var(--text);font-size:14px}.field input:focus,.field select:focus{border-color:#44505d}.diff{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:13px}.diff td{padding:5px 6px;border-bottom:1px solid var(--line-soft)}.muted{color:var(--muted)}.strong{font-weight:600;color:var(--accent)}.history{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:13px}.history li{padding-left:10px;border-left:2px solid var(--line)}.history li.history--err{border-left-color:var(--bad)}.err-text{color:var(--bad)}.alert{padding:10px 12px;border-radius:8px;font-size:13px;margin-top:12px}.alert--err{background:var(--bad-soft);color:#fecaca;border:1px solid rgba(248,113,113,.4)}.banner{margin:12px 24px 0;display:flex;gap:12px;align-items:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:50}.modal{width:min(420px,calc(100vw - 32px));background:#171c23;border:1px solid #333c46;border-radius:12px;padding:20px;box-shadow:0 20px 60px #0009}.modal h3{margin:0 0 14px}.hint{color:var(--muted);font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.toasts{position:fixed;top:70px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{padding:10px 14px;border-radius:8px;background:#1b2128;border:1px solid #333c46;max-width:380px;font-size:13px;box-shadow:0 8px 24px #0006}.toast--ok{border-color:#4ade8080}.toast--err{border-color:#f8717199;color:#fecaca}@media (max-width: 900px){.topbar{flex-wrap:wrap;padding:10px 16px}.board{padding:12px 16px 120px;gap:14px}.col,.col--inbox{flex-basis:min(92vw,520px)}.form-grid{grid-template-columns:1fr}}a{color:inherit;text-decoration:none}.brand{min-width:0}.main{flex:1;min-height:0;display:flex;flex-direction:column}.main>.board{flex:1}.btn--xs{padding:2px 8px;font-size:12px;border-radius:6px}.btn--on{background:#facc151f;border-color:#facc1580;color:var(--warn)}.btn--on b,.btn b{font-family:var(--mono);margin-left:4px}.small{font-size:12px}.dot--sm{width:9px;height:9px;border-radius:3px;display:inline-block}.page{flex:1;overflow-y:auto;padding:24px 24px 120px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{margin:0;font-size:26px}.page-head p{margin:4px 0 0}.page-head .toolbar{flex:0 1 auto}.zab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:18px}.zab-card{display:flex;flex-direction:column;gap:12px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:border-color .12s,transform .12s;cursor:pointer}.zab-card:hover{border-color:#3b4652;transform:translateY(-1px)}.zab-card--pool{background:var(--panel-3);border:1px dashed rgba(250,204,21,.45)}.zab-card--add{border-style:dashed;background:transparent;color:var(--muted);align-items:center;justify-content:center;min-height:160px;font-size:16px}.zab-card-head{display:flex;justify-content:space-between;align-items:flex-start}.zab-num{font:700 40px/1.05 var(--mono)}.zab-num--pool{font-size:24px;color:var(--warn);padding-top:4px}.zab-dates{font:13px var(--mono);color:var(--muted);display:flex;flex-direction:column;align-items:flex-end;gap:6px}.pool-stats{display:flex;flex-direction:column;gap:4px;margin-top:auto}.pool-stats b{font:700 22px var(--mono);color:var(--warn)}.kpis--card{padding:0;border:0;background:transparent}.zab-locs{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line-soft);padding-top:10px}.zab-loc{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}.zab-loc-name{font-weight:600;font-size:13px;color:var(--muted)}.zab-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 8px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line)}.chip b{font-family:var(--mono);color:var(--muted)}.zab-foot{display:flex;gap:14px;font:12px var(--mono);color:var(--muted)}.zv{flex:1;min-height:0;display:flex;flex-direction:column}.zv-head{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.zv-title{display:flex;flex-direction:column}.zv-num{font:700 30px/1 var(--mono);color:var(--accent)}.zv-kpis{display:flex;gap:8px}.zv-kpi{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 10px;min-width:92px}.zv-kpi span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}.zv-kpi b{font:600 16px var(--mono)}.zv-body{flex:1;min-height:0;display:flex}.tl{flex:1;min-width:0;overflow:auto;position:relative;padding-bottom:90px}.tl-inner{position:relative;min-height:100%}.tl-head{display:flex;position:sticky;top:0;z-index:6;height:52px;background:#10151a;border-bottom:1px solid var(--line)}.tl-corner{position:sticky;left:0;z-index:7;width:400px;flex:none;background:#10151a;border-right:1px solid var(--line);display:flex;align-items:flex-end;padding:0 14px 8px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.tl-scale{position:relative;flex:none}.tl-weeks,.tl-days{position:relative;height:26px}.tl-week{position:absolute;top:0;height:26px;padding:6px 8px;font:600 12px var(--mono);color:var(--text);border-left:1px solid var(--line);white-space:nowrap;overflow:hidden}.tl-day{position:absolute;top:0;height:26px;display:flex;gap:3px;align-items:center;justify-content:center;font:11px var(--mono);color:var(--muted);border-left:1px solid var(--line-soft)}.tl-day b{font-weight:600}.tl-day span,.tl-day.we{color:var(--faint)}.tl-day.today{color:#06210f;background:var(--ok);border-radius:4px}.tl-day.today span{color:#06210f}.tl-bg{position:absolute;top:52px;bottom:0;pointer-events:none;z-index:0}.tl-bg-we{position:absolute;top:0;bottom:0;background:#ffffff06}.tl-today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ok);opacity:.55}.tl-row{display:flex;height:38px;position:relative}.tl-label{position:sticky;left:0;z-index:3;width:400px;flex:none;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--panel);border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft);min-width:0}.tl-track{position:relative;flex:none;border-bottom:1px solid var(--line-soft);z-index:1}.tl-row--loc .tl-label{background:#10151a}.tl-row--loc{height:34px}.tl-row--loc .tl-track{background:#0000002e}.loc-name{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.tl-row--grp .tl-label{background:var(--panel-2);padding-left:14px}.grp-name{font-weight:600;font-size:15px;white-space:nowrap}.chev-btn{background:none;border:0;color:var(--faint);cursor:pointer;padding:0 2px;font-size:11px}.cap{display:inline-flex;align-items:center;gap:3px;font:11px var(--mono);color:var(--faint)}.cap input{width:38px;background:var(--panel-3);border:1px solid var(--line);border-radius:5px;padding:1px 4px;font:11px var(--mono);color:var(--text)}.grp-span{position:absolute;top:15px;height:8px;border-radius:4px;opacity:.35}.tl-hint{position:absolute;left:12px;top:10px;color:var(--faint);font-size:12px;white-space:nowrap;position:sticky}.tl-row.drop-end{box-shadow:inset 0 -2px 0 var(--accent)}.tl-row.drop-end .tl-label{background:#fb923c26}.tl-row.drop-before:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent);z-index:5}.tl-row--ord .tl-label{padding-left:26px;cursor:grab;font-size:13px}.tl-row--ord:hover .tl-label{background:#1a2028}.tl-row--ord.sel .tl-label{background:#60a5fa1f;box-shadow:inset 3px 0 0 var(--blue)}.grip{color:var(--faint);letter-spacing:-2px;font-size:12px}.seq{font:700 12px var(--mono);min-width:22px;height:20px;border-radius:5px;display:grid;place-items:center;background:var(--panel-3);border:1px solid var(--line);color:var(--muted)}.ord-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.mini-h{font:11px var(--mono);color:var(--faint);white-space:nowrap}.mini-h.warn{color:var(--warn)}.dirty-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent);flex:none}.dirty-dot--err{background:var(--bad);box-shadow:0 0 6px var(--bad)}.bar-o{position:absolute;top:6px;height:26px;border-radius:6px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:color-mix(in srgb,var(--c) 30%,#12161b);border:1px solid color-mix(in srgb,var(--c) 75%,transparent);display:flex;align-items:center;min-width:6px}.bar-o:active{cursor:grabbing}.bar-o--planned{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,#12161b) 0,color-mix(in srgb,var(--c) 16%,#12161b) 6px,color-mix(in srgb,var(--c) 8%,#12161b) 6px,color-mix(in srgb,var(--c) 8%,#12161b) 12px);border-style:dashed}.bar-o-fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--c) 55%,transparent);pointer-events:none}.bar-o-text{position:relative;padding:0 8px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.bar-o.sel{outline:2px solid var(--blue);outline-offset:1px}.bar-o.late{box-shadow:inset -3px 0 0 var(--bad)}.bar-o.dirty{box-shadow:0 0 0 1px var(--accent),0 0 10px #fb923c59}.bar-o.err{box-shadow:0 0 0 1px var(--bad)}.handle{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:2}.handle--l{left:0}.handle--r{right:0}.bar-o:hover .handle{background:#ffffff26}.drag-tip{position:absolute;top:-18px;font:600 11px var(--mono);background:#000;color:var(--warn);padding:1px 6px;border-radius:4px;white-space:nowrap;z-index:9;pointer-events:none}.pool{width:340px;flex:none;display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line);background:var(--panel-3);transition:background .12s}.pool--over{background:#facc150f;box-shadow:inset 2px 0 0 var(--warn)}.pool-head{padding:14px 16px 8px}.pool-head .kicker{color:var(--warn)}.search--full{margin:0 16px 10px;flex:none}.pool-list{flex:1;overflow-y:auto;padding-bottom:8px}.pool-item{padding:9px 16px;border-top:1px solid var(--line-soft);cursor:grab}.pool-item:hover{background:#ffffff08}.pool-item.sel{background:#60a5fa1f;box-shadow:inset 3px 0 0 var(--blue)}.pool-item-title{font-size:13px}.pool-item .row-sub{margin-top:4px;gap:8px}.pool-foot{padding:10px 16px 90px;border-top:1px solid var(--line-soft)}.boot{height:100%;display:grid;place-items:center;color:var(--muted)}.nav{display:flex;gap:4px;margin-left:18px}.nav a{padding:6px 12px;border-radius:8px;color:var(--muted);font-weight:500}.nav a:hover{color:var(--text);background:var(--panel)}.nav a.on{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--accent)}.usermenu{text-align:right;line-height:1.2}.usermenu-name{font-weight:600;font-size:13px}.usermenu-role{font-size:11px;color:var(--muted)}.tag--ro{color:var(--blue);background:#60a5fa1f;padding:2px 8px}.tag--today{color:#06210f;background:var(--ok)}.ok-text{color:var(--ok)}.mono{font-family:var(--mono)}.kpi-value--bad,.zv-kpi b.kpi-value--bad{color:var(--bad)}.login{height:100%;display:grid;place-items:center;padding:16px}.login-card{width:min(400px,100%);display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 30px 80px #00000073}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:6px}.brand-mark--lg{width:40px;height:40px;border-radius:10px}.login-title{font-size:20px;font-weight:700}.login-foot{text-align:center}.btn--block{width:100%;padding:10px}.alert--info{background:#60a5fa1a;border:1px solid rgba(96,165,250,.35);color:#cfe3ff;margin:0}.login-card .alert{margin:0}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:18px;align-items:start}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.card h2{margin:0;font-size:17px}.card h3{margin:8px 0 0;font-size:14px;color:var(--muted)}.card>p{margin:-6px 0 0}.chips-row{display:flex;gap:6px;flex-wrap:wrap}.chip-btn{border:1px solid var(--line);background:var(--panel-3);color:var(--muted);border-radius:7px;padding:5px 12px;cursor:pointer}.chip-btn.on{background:#4ade8024;border-color:#4ade8080;color:var(--ok);font-weight:600}.check{display:flex;gap:8px;align-items:center;font-size:14px;cursor:pointer}.holidays-preview{margin-top:-6px;line-height:1.6}.inline-form{display:flex;gap:8px}.inline-form input{flex:1;min-width:0;background:var(--panel-3);border:1px solid var(--line);border-radius:7px;padding:6px 9px;color:var(--text)}.inline-form input[type=date]{flex:0 0 150px}.list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.list li{display:flex;gap:10px;align-items:center;padding:4px 8px;border-radius:6px;background:var(--panel-3)}.list li .icon-btn{margin-left:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line)}.table td{padding:7px 8px;border-bottom:1px solid var(--line-soft)}.table .num{text-align:right}.row-actions{text-align:right;white-space:nowrap}.hours-input{width:80px;text-align:right;background:var(--panel-3);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font:13px var(--mono);color:var(--text)}.field--inline{flex-direction:row;align-items:center;justify-content:space-between}.role{font-size:12px;padding:1px 8px;border-radius:5px;border:1px solid var(--line)}.role--admin{color:var(--accent);border-color:#fb923c80}.role--planista{color:var(--ok);border-color:#4ade8073}.role--podglad{color:var(--blue);border-color:#60a5fa73}.dl{display:grid;grid-template-columns:170px 1fr;gap:6px 12px;margin:0;font-size:13px}.dl dt{color:var(--muted)}.dl dd{margin:0}fieldset.form-grid{border:0;padding:0;margin:0;min-width:0}fieldset:disabled input,fieldset:disabled select{opacity:.6}.tl-day.hol{color:var(--bad)}.tl-bg-hol{background:repeating-linear-gradient(135deg,rgba(248,113,113,.07) 0 6px,transparent 6px 12px)}.load{position:absolute;top:4px;bottom:4px;border-radius:4px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;background:#ffffff08}.load-fill{position:absolute;left:0;right:0;bottom:0;border-radius:3px 3px 0 0}.load span{position:relative;font:600 10px var(--mono);padding-bottom:2px;color:var(--text);text-shadow:0 1px 2px #000}.load--ok .load-fill{background:#34d3a673}.load--warn .load-fill{background:#facc1599}.load--bad .load-fill{background:#f87171bf}.load--bad{box-shadow:inset 0 0 0 1px #f87171b3}.tv-head{display:flex;align-items:center;gap:28px;padding:14px 24px;border-bottom:1px solid var(--line-soft);background:#0b0f13d9}.tv-brand{display:flex;gap:12px;align-items:center}.tv-title{font-size:20px;font-weight:700}.tv-sub{color:var(--muted);font-size:13px}.tv-stats{display:flex;gap:12px;margin-left:auto}.tv-stat{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 14px;min-width:120px}.tv-stat span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}.tv-stat b{font:700 24px var(--mono)}.tv-clock{text-align:right}.tv-time{font:700 40px/1 var(--mono);letter-spacing:.02em}.tv-date{color:var(--muted);font-size:13px;text-transform:capitalize}.tv-sync{font-size:12px;color:var(--muted);padding:4px 10px;border-radius:6px;border:1px solid var(--line)}.tv-sync--bad{color:var(--bad);border-color:#f8717199;background:var(--bad-soft)}.app--tv{flex-direction:column}.app--tv .board{flex:1;min-height:0}.col-flags{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.row--today{box-shadow:inset 3px 0 0 var(--ok);background:#4ade800a}.row--late{box-shadow:inset 3px 0 0 var(--bad)}.seq--tv{display:inline-grid;margin-right:8px;vertical-align:1px}.app--tv .board--tv{gap:12px;padding:12px 14px;overflow:hidden}.app--tv .board--tv .col{flex:0 0 calc((100% - (var(--tv-cols) - 1) * 12px) / var(--tv-cols));min-width:0;border-radius:10px}.app--tv .col-head{padding:9px 12px 6px}.app--tv .kicker{font-size:10px;letter-spacing:.1em}.app--tv .col-num{font-size:24px}.app--tv .kpis{gap:6px;padding:7px 12px}.app--tv .kpi{padding:4px 8px 6px;border-radius:6px}.app--tv .kpi-label{font-size:9.5px;letter-spacing:.06em}.app--tv .kpi-value{font-size:15px}.app--tv .bar{margin-top:4px;height:3px}.app--tv .plan-head{padding:4px 12px;font-size:10px}.app--tv .group-head{padding:5px 10px;gap:7px}.app--tv .group-name{font-size:13px}.app--tv .dot{width:10px;height:10px;border-radius:3px}.app--tv .meta{font-size:11px}.app--tv .row{padding:5px 10px 5px 14px;gap:8px}.app--tv .row-title{font-size:12.5px;line-height:1.3}.app--tv .docnum{margin-right:6px}.app--tv .row-sub{margin-top:3px;gap:6px}.app--tv .badge{font-size:10.5px;padding:0 6px}.app--tv .code,.app--tv .due{font-size:11px}.app--tv .tag{font-size:9.5px}.app--tv .row-side{gap:2px}.app--tv .pill{font-size:11px;padding:1px 6px;gap:4px}.app--tv .pct{font-size:12px}.app--tv .seq--tv{min-width:18px;height:16px;font-size:10px;margin-right:6px}.app--tv .loop-divider{padding:12px;font-size:11px}.app--tv .col-flags{gap:3px}.tv-head{gap:18px;padding:8px 16px}.tv-title{font-size:16px}.tv-sub{font-size:12px}.tv-stat{padding:4px 10px;min-width:100px;border-radius:8px}.tv-stat span{font-size:9.5px}.tv-stat b{font-size:18px}.tv-time{font-size:28px}.tv-date{font-size:12px}.tv-pages{display:flex;gap:6px}.tv-page-dot{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:#3a434e;cursor:pointer}.tv-page-dot.on{background:var(--accent);box-shadow:0 0 6px var(--accent)}.app--tv .row-main{min-width:0}.app--tv .row-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app--tv .row-sub{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
