:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--surface-3:#eef0f3;--border:#e3e6eb;--border-strong:#cfd4dc;--text:#171a21;--muted:#5f6878;--faint:#8a93a3;--accent:#2563eb;--accent-weak:#e8efff;--accent-text:#1d4ed8;--green:#16a34a;--green-weak:#e5f6eb;--yellow:#c58405;--yellow-weak:#fdf3d8;--red:#dc2626;--red-weak:#fde7e7;--shadow:0 1px 2px #1018280d,0 1px 3px #10182812;--shadow-lg:0 16px 40px #10182833;--heat-0:#f1f3f6;--heat-1:#dce7ff;--heat-2:#b5cdff;--heat-3:#7fa7f7;--heat-4:#3b74e6;--heat-over:#e25656;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1115;--surface:#171a21;--surface-2:#1b1f27;--surface-3:#232833;--border:#2a303c;--border-strong:#3a4252;--text:#e8ebf1;--muted:#a3acbb;--faint:#7a8494;--accent:#5b8cff;--accent-weak:#1b2a4b;--accent-text:#a3bcff;--green:#3cc46f;--green-weak:#142d1d;--yellow:#e2ab2c;--yellow-weak:#33290e;--red:#f06464;--red-weak:#3a1a1b;--shadow:0 1px 2px #0006;--shadow-lg:0 16px 40px #0000008c;--heat-0:#1e232c;--heat-1:#1d2e50;--heat-2:#244179;--heat-3:#2f5bb0;--heat-4:#4c80f2;--heat-over:#c64848;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1115;--surface:#171a21;--surface-2:#1b1f27;--surface-3:#232833;--border:#2a303c;--border-strong:#3a4252;--text:#e8ebf1;--muted:#a3acbb;--faint:#7a8494;--accent:#5b8cff;--accent-weak:#1b2a4b;--accent-text:#a3bcff;--green:#3cc46f;--green-weak:#142d1d;--yellow:#e2ab2c;--yellow-weak:#33290e;--red:#f06464;--red-weak:#3a1a1b;--shadow:0 1px 2px #0006;--shadow-lg:0 16px 40px #0000008c;--heat-0:#1e232c;--heat-1:#1d2e50;--heat-2:#244179;--heat-3:#2f5bb0;--heat-4:#4c80f2;--heat-over:#c64848;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-text)}h1,h2,h3,h4{margin:0;line-height:1.25}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.hidden{display:none!important}.app-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.header-row{align-items:center;gap:16px;max-width:1600px;margin:0 auto;padding:10px 20px;display:flex}.logo{background:var(--accent);color:#fff;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.brand{white-space:nowrap}.brand h1{font-size:16px}.brand div{color:var(--muted);font-size:12px}.tabs{scrollbar-width:none;gap:2px;margin-left:12px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:8px 12px;font-weight:500}.tab:hover{background:var(--surface-3);color:var(--text)}.tab.active{background:var(--accent-weak);color:var(--accent-text)}.tab .count{background:var(--red);color:#fff;border-radius:10px;margin-left:4px;padding:0 6px;font-size:11px}.header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.icon-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;min-width:34px;height:34px;color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.menu{position:relative}.menu-pop{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:30;border-radius:10px;min-width:220px;padding:6px;position:absolute;top:40px;right:0}.menu-pop button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;width:100%;padding:8px 10px;display:block}.menu-pop button:hover{background:var(--surface-3)}main{max-width:1600px;margin:0 auto;padding:18px 20px 60px}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 12px;font-weight:500}.btn:hover{border-color:var(--border-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.07)}.btn.danger{color:var(--red)}.btn.sm{padding:4px 9px;font-size:12px}.btn[disabled]{opacity:.5;cursor:not-allowed}a.btn.off{opacity:.45;pointer-events:none}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-width:0;padding:7px 10px}.input:focus{outline:2px solid var(--accent-weak);border-color:var(--accent)}textarea.input{resize:vertical;min-height:70px}.seg{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:6px 11px}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent-weak);color:var(--accent-text);font-weight:600}label.chk{cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;padding:10px 14px}.kpi:hover{border-color:var(--border-strong)}.kpi .v{font-size:24px;font-weight:650;line-height:1.1}.kpi .l{color:var(--muted);font-size:12px}.kpi.warn .v{color:var(--yellow)}.kpi.bad .v{color:var(--red)}.kpi.ok .v{color:var(--green)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.toolbar .input{width:auto;max-width:100%}.toolbar .search{flex:220px;min-width:180px}.toolbar .spacer{flex:1}.chip-filter{background:var(--accent-weak);color:var(--accent-text);border-radius:20px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12px;display:inline-flex}.chip-filter button{cursor:pointer;color:inherit;background:0 0;border:0;font-size:14px;line-height:1}.card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--block,var(--accent));border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:12px 14px;transition:border-color .15s,transform .15s;display:flex}.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.card-top{align-items:center;gap:8px;min-width:0;display:flex}.card-top .abbr{text-overflow:ellipsis;min-width:0;overflow:hidden}.card-top .stage{flex:none}.abbr{letter-spacing:.2px;color:var(--block,var(--accent));background:color-mix(in srgb,var(--block,var(--accent)) 12%,transparent);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:38px;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.card-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.status-line{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:36px;margin:0;font-size:12.5px;display:-webkit-box;overflow:hidden}.card-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.card-foot .flows{margin-left:auto}.flows{flex-wrap:wrap;justify-content:flex-end;gap:6px;min-width:0;display:inline-flex}.flows a{white-space:nowrap;border:1px solid var(--border);border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:600;text-decoration:none}.flows a:hover{border-color:var(--border-strong)}.flows a.prod{color:var(--green)}.flows a.dev{color:var(--yellow)}.flows a.rm{color:var(--accent-text)}.flows a.tg{color:#1d9bd1}.health{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.h-green{background:var(--green)}.h-yellow{background:var(--yellow)}.h-red{background:var(--red)}.stage{background:var(--surface-3);color:var(--muted);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11.5px;font-weight:500}.stage.s0{background:#94a3b81f}.stage.s1{color:#0284c7;background:#0ea5e91f}.stage.s2{color:#7c3aed;background:#8b5cf61f}.stage.s3{color:#b45309;background:#f59e0b24}.stage.s4{color:#15803d;background:#22c55e1f}.stage.s5{background:#64748b1f}.stage.s6{color:var(--faint);background:#64748b14}:root[data-theme=dark] .stage.s1{color:#5cc3f2}:root[data-theme=dark] .stage.s2{color:#b49bfb}:root[data-theme=dark] .stage.s3{color:#f2b65a}:root[data-theme=dark] .stage.s4{color:#58d68a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stage.s1{color:#5cc3f2}:root:not([data-theme=light]) .stage.s2{color:#b49bfb}:root:not([data-theme=light]) .stage.s3{color:#f2b65a}:root:not([data-theme=light]) .stage.s4{color:#58d68a}}.dl{flex-direction:column;gap:4px;font-size:12px;display:flex}.dl-row{justify-content:space-between;gap:8px;display:flex}.dl-bar{background:var(--surface-3);border-radius:4px;height:4px;overflow:hidden}.dl-bar i{background:var(--accent);border-radius:4px;height:100%;display:block}.dl.soon .dl-left{color:var(--yellow);font-weight:600}.dl.soon .dl-bar i{background:var(--yellow)}.dl.late .dl-left{color:var(--red);font-weight:600}.dl.late .dl-bar i{background:var(--red)}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--surface-3);color:var(--muted);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:11px}.badge.bad{background:var(--red-weak);color:var(--red)}.badge.warn{background:var(--yellow-weak);color:var(--yellow)}.badge.ok{background:var(--green-weak);color:var(--green)}.avatars{display:flex}.av{color:#fff;border:2px solid var(--surface);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:10.5px;font-weight:700;display:grid}.avatars .av+.av{margin-left:-7px}.av.lg{width:36px;height:36px;font-size:13px}.av.av-empty{background:var(--surface-3);color:var(--faint);border-style:dashed;border-color:var(--border-strong)}.carousel-wrap{position:relative}.carousel{scroll-snap-type:x mandatory;scrollbar-width:thin;gap:12px;padding:2px 2px 10px;display:flex;overflow-x:auto}.carousel .card{scroll-snap-align:start;flex:0 0 300px}.car-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;box-shadow:var(--shadow-lg);cursor:pointer;z-index:2;color:var(--muted);border-radius:50%;font-size:18px;position:absolute;top:50%;transform:translateY(-50%)}.car-btn.l{left:-12px}.car-btn.r{right:-12px}.carousel-group{margin-bottom:22px}.carousel-group h3{color:var(--muted);align-items:center;gap:8px;margin:0 0 8px;font-size:13px;font-weight:600;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px;display:grid}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table.t{border-collapse:collapse;width:100%;font-size:13px}.t th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:9px 10px;font-size:12px;font-weight:600}.t td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 10px}.t tr:last-child td{border-bottom:0}.t tbody tr{cursor:pointer}.t tbody tr:hover td{background:var(--surface-2)}.t .name{min-width:220px;font-weight:600}.t th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.t th.sortable:hover{color:var(--text)}.t th.on{color:var(--accent-text)}.t th .arr{opacity:.3;font-size:9px}.t th.on .arr{opacity:1}.t tbody tr.grp-row{cursor:default}.t tr.grp-row td,.t tbody tr.grp-row:hover td{background:var(--surface-3);color:var(--muted);padding:6px 10px;font-size:12px;font-weight:600}.grid-group{color:var(--muted);margin:20px 0 8px;font-size:13px;font-weight:600}.grid-group:first-child{margin-top:0}.kanban{align-items:flex-start;gap:10px;padding-bottom:10px;display:flex;overflow-x:auto}.kcol{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex:1 0 250px;min-height:200px;padding:8px}.kcol.collapsed{cursor:pointer;flex:0 0 46px;padding:8px 4px}.kcol.collapsed:hover{border-color:var(--border-strong)}.kcol.collapsed .kcol-h{writing-mode:vertical-rl;justify-content:flex-start;gap:8px;margin:0 auto;padding:2px 0}.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible:hover{color:var(--text)}.chev{width:14px;color:var(--faint);flex:none;font-size:12px;display:inline-block}.kcol-h .chev{margin-right:2px}.kcol.drop{outline:2px dashed var(--accent);outline-offset:-4px}.kcol-h{align-items:center;gap:4px;padding:4px 4px 8px;font-size:13px;font-weight:600;display:flex}.kcol .card{gap:6px;margin-bottom:8px;padding:10px 12px}.kcol .card-title{min-height:0;font-size:13.5px}.kcol .status-line{display:none}.kcol-note{color:var(--faint);padding:0 4px 6px;font-size:11px}.overlay{z-index:40;background:#0a0e1661;position:fixed;inset:0}.drawer{background:var(--surface);z-index:41;width:min(720px,100vw);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px 20px 12px;display:flex}.drawer-head .title-input{background:0 0;border:1px solid #0000;border-radius:6px;width:100%;margin-left:-6px;padding:3px 6px;font-size:18px;font-weight:650}.drawer-head .title-input:hover{border-color:var(--border)}.drawer-head .title-input:focus{border-color:var(--accent);background:var(--surface);outline:0}.drawer-body{flex:1;padding:4px 20px 30px;overflow-y:auto}.sec{border-bottom:1px solid var(--border);padding:16px 0}.sec:last-child{border-bottom:0}.sec-h{align-items:center;gap:8px;margin-bottom:10px;display:flex}.sec-h h4{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:13px;font-weight:650}.sec-h .right{gap:6px;margin-left:auto;display:flex}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.field label{color:var(--muted);margin-bottom:3px;font-size:12px;display:block}.field.full{grid-column:1/-1}.field .with-btn{gap:6px;display:flex}.read{padding:7px 0;font-size:13.5px}.row-item{border-bottom:1px dashed var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.row-item:last-child{border-bottom:0}.row-item .grow{flex:1;min-width:0}.row-item select.input{width:auto}.x{cursor:pointer;color:var(--faint);background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:18px;line-height:1}.x:hover{color:var(--red);background:var(--red-weak)}.add-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.add-row .input{flex:160px;width:auto}.ctx{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;margin-top:10px;padding:10px 12px}.ctx-h{color:var(--muted);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.ctx-h .x{margin-left:auto}.ctx-text{white-space:pre-wrap;font-size:13.5px;line-height:1.45}.ctx-text.clamped{max-height:5.8em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - 1.5em),#0000);mask-image:linear-gradient(#000 calc(100% - 1.5em),#0000)}.ctx-toggle{color:var(--accent-text);cursor:pointer;background:0 0;border:0;padding:6px 0 0;font-size:12.5px;font-weight:600}.ctx-toggle:hover{text-decoration:underline}.ctx-feed{overscroll-behavior:contain;border-top:1px solid var(--border);max-height:min(560px,60vh);margin-top:12px;padding-right:6px;overflow-y:auto}.ctx-feed .ctx:last-child{margin-bottom:2px}.feed-h{color:var(--muted);align-items:center;gap:8px;margin-top:14px;font-size:12px;display:flex}.feed-h .right{gap:4px;margin-left:auto;display:flex}.type{background:var(--accent-weak);color:var(--accent-text);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.type.t1{background:var(--surface-3);color:var(--muted)}.type.t2{background:var(--green-weak);color:var(--green)}.agr{border-bottom:1px dashed var(--border);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.agr:last-child{border-bottom:0}.agr input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:none;margin-top:3px}.agr .grow{flex:1;min-width:0}.agr-feed{overscroll-behavior:contain;padding-right:6px;position:relative;overflow-y:auto}.agr .x.edit{font-size:15px}.agr .x.edit:hover{color:var(--accent-text);background:var(--accent-weak)}.agr-edit textarea{resize:vertical;min-height:52px}.agr-edit .add-row{margin-top:6px}.agr.editing input[type=checkbox]{visibility:hidden}.agr.done .agr-text{color:var(--faint);text-decoration:line-through}.agr-meta{color:var(--muted);flex-wrap:wrap;gap:8px;margin-top:2px;font-size:12px;display:flex}.ai-note{color:var(--faint);align-items:center;gap:6px;font-size:12px;display:flex}.file{border-bottom:1px dashed var(--border);align-items:center;gap:10px;padding:7px 0;display:flex}.file .ext{background:var(--surface-3);width:34px;height:34px;color:var(--muted);text-transform:uppercase;border-radius:7px;flex:none;place-items:center;font-size:10px;font-weight:700;display:grid}.drop-zone{border:1.5px dashed var(--border-strong);text-align:center;color:var(--muted);cursor:pointer;border-radius:9px;margin-top:10px;padding:14px;font-size:13px;display:block}.drop-zone:hover,.drop-zone.over{border-color:var(--accent);color:var(--accent-text);background:var(--accent-weak)}.struct{align-items:flex-start;gap:14px;display:flex}.struct-col{flex-direction:column;flex:1 1 0;gap:14px;min-width:0;display:flex}.blk{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--block);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);padding:14px}.blk-h{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.blk-h h3{font-size:16px}.node{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.node .role{color:var(--faint);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.branch{border-left:2px solid var(--border);margin-left:16px;padding-left:12px}.leaf{cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.leaf:hover{background:var(--surface-3)}.leaf .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.leaf .abbr{padding:1px 6px;font-size:10.5px}.hcounts{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.hcounts span{align-items:center;gap:4px;display:inline-flex}.team-sum{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.group{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:12px 14px 14px}.group.closed{padding-bottom:12px}.group-h{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.group.closed .group-h{margin-bottom:0}.group-h h3{font-size:16px}.people{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:10px;display:grid}.person{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);cursor:pointer;flex-direction:column;gap:9px;padding:12px 14px;transition:border-color .15s;display:flex}.person:hover{border-color:var(--border-strong)}.proj-link{color:var(--text);font-weight:600;text-decoration:none}.proj-link:hover{color:var(--accent-text);text-decoration:underline}.proj-link .abbr{margin-right:2px;padding:1px 6px;font-size:11px}.back-btn{margin-bottom:8px}.heat td.nm[data-person]{cursor:pointer}.heat td.nm[data-person]:hover{color:var(--accent-text)}.person.over{border-color:color-mix(in srgb,var(--red) 50%,var(--border))}.p-top{align-items:center;gap:10px;display:flex}.p-top .grow{flex:1;min-width:0}.p-name{font-weight:600}.lead-badge{color:var(--accent-text);background:var(--accent-weak);vertical-align:1px;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:700}.p-load{text-align:right;font-size:20px;font-weight:700;line-height:1}.p-load small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:500;display:block}.load-low{color:var(--green)}.load-mid{color:var(--text)}.load-high{color:var(--yellow)}.load-over{color:var(--red)}.lbar{background:var(--surface-3);border-radius:6px;height:8px;position:relative}.lbar i{background:var(--green);border-radius:6px;position:absolute;top:0;bottom:0;left:0}.lbar i.mid{background:var(--accent)}.lbar i.high{background:var(--yellow)}.lbar i.over{background:var(--red)}.lbar .mark{background:var(--text);opacity:.55;border-radius:2px;width:2px;position:absolute;top:-3px;bottom:-3px}.tags{flex-wrap:wrap;gap:5px;display:flex}.tag{background:var(--surface-3);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:1px solid #0000;border-radius:6px;max-width:100%;padding:2px 8px;font-size:11.5px;overflow:hidden}.tag:hover{border-color:var(--border-strong)}.tag b{color:var(--block);margin-right:4px;font-weight:700}.tag.support{opacity:.6;border-style:dashed;border-color:var(--border-strong)}.p-dates{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.p-dates b{color:var(--text);font-weight:600}.combo{flex:240px;min-width:0;position:relative}.combo .input{width:100%}.combo-list{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:5;border-radius:9px;max-height:300px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combo-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.combo-item .abbr{flex:none;padding:1px 6px;font-size:11px}.combo-item .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.combo-item.on,.combo-item:hover{background:var(--accent-weak)}.combo-empty{color:var(--faint);padding:10px;font-size:13px}mark{background:color-mix(in srgb,var(--yellow) 35%,transparent);color:inherit;border-radius:2px;padding:0 1px}.lcols{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));align-items:start;gap:12px;display:grid}.lcol{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.lcol-h{background:var(--surface-3);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.lcol-h h3{font-size:14px}.lcol-b{flex-direction:column;display:flex}.lrow{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:8px 14px;display:flex}.lrow:last-child{border-bottom:0}.lrow:hover{background:var(--surface-2)}.lrow-main{flex:1;min-width:0}.lrow-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.lrow-load{text-align:right;min-width:44px;font-size:15px;font-weight:700}.lbar.sm{height:5px;margin-top:5px}.lbar.sm .mark{top:-2px;bottom:-2px}.heat-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table.heat{border-collapse:separate;border-spacing:3px;width:100%;padding:6px;font-size:12px}.heat th{color:var(--muted);white-space:nowrap;text-align:center;padding:4px 6px;font-weight:600}.heat th.cur{color:var(--accent-text)}.heat td.nm{white-space:nowrap;padding:4px 10px 4px 4px;font-weight:500}.heat td.grp{color:var(--text);text-transform:uppercase;letter-spacing:.4px;background:var(--surface-3);white-space:nowrap;border-radius:6px 0 0 6px;padding:8px 10px;font-size:12px;font-weight:700}.heat td.grp .grp-meta{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:500}.heat td.grp-avg{background:var(--surface-3);text-align:center;color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600}.heat td.grp-avg:last-child{border-radius:0 6px 6px 0}.heat tr.grp-head td{border-top:8px solid var(--surface)}.heat tr.grp-head:first-child td{border-top:0}.heat tr.grp-head:hover td{background:var(--border)}.heat td.nm{padding-left:28px}.heat td.c{text-align:center;border-radius:5px;min-width:58px;height:28px;font-weight:600}.c0{background:var(--heat-0);color:var(--faint)}.c1{background:var(--heat-1)}.c2{background:var(--heat-2)}.c3{background:var(--heat-3);color:#fff}.c4{background:var(--heat-4);color:#fff}.cX{background:var(--heat-over);color:#fff}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin:8px 4px;font-size:12px;display:flex}.legend i{vertical-align:-2px;border-radius:3px;width:18px;height:12px;margin-right:4px;display:inline-block}.agr-groups{gap:14px;display:grid}.agr-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 16px}.agr-card>h3{align-items:center;gap:8px;padding:10px 0 4px;font-size:14px;display:flex}.agr-card.collapsed>h3{padding-bottom:10px}.agr .proj{cursor:pointer;white-space:normal;font-size:11.5px}.empty{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--muted);padding:28px}.empty h3{color:var(--text);margin-bottom:6px}.modal{z-index:50;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-box{background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(760px,100%);max-height:calc(100vh - 32px);display:flex}.modal-box.narrow{width:min(520px,100%)}.modal-h{border-bottom:1px solid var(--border);align-items:center;padding:14px 18px;display:flex}.modal-h h3{font-size:16px}.modal-h .x{margin-left:auto}.modal-b{padding:4px 18px 18px;overflow-y:auto}.modal-f{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.set-table{border-collapse:collapse;width:100%;font-size:13px}.set-table td{padding:4px}.set-table .input{padding:5px 8px}.toast{background:var(--text);color:var(--bg);z-index:60;box-shadow:var(--shadow-lg);border-radius:9px;padding:9px 16px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@media (width<=1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.header-row{flex-wrap:wrap;gap:10px;padding:10px 16px}.tabs{order:3;width:100%;margin-left:0}main{padding:14px 16px 50px}.kpis,.team-sum{grid-template-columns:repeat(2,minmax(0,1fr))}.fields{grid-template-columns:1fr}.people{grid-template-columns:minmax(0,1fr)}.carousel .card{flex-basis:82vw}.car-btn{display:none}.drawer-head,.drawer-body{padding-left:16px;padding-right:16px}}a.tab{align-items:center;text-decoration:none;display:inline-flex}.boot{text-align:center;place-content:center;gap:6px;min-height:60vh;padding:24px;display:grid}.auth-page{place-items:center;min-height:100vh;padding:16px;display:grid}.auth-box{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;gap:14px;width:min(380px,100%);padding:24px;display:flex}.modal-b .auth-box{box-shadow:none;border:0;width:100%;padding:12px 0 0}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand h1{font-size:17px}.auth-error{background:var(--red-weak);color:var(--red);border-radius:8px;padding:8px 10px;font-size:13px}.input:disabled,select.input:disabled,textarea.input:disabled{opacity:.75;cursor:default;background:var(--surface-2)}.note-box{background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--muted);border-radius:9px;padding:12px 14px;font-size:13px}.pw-box{background:var(--yellow-weak);border-radius:9px;margin-top:10px;padding:10px 12px;font-size:13px}.pw-box code{letter-spacing:.5px;font-size:15px;font-weight:700}.vac-date{color:var(--muted);flex:0 190px;align-items:center;gap:6px;font-size:13px;display:inline-flex}.vac-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.vac-grid{flex-direction:column;display:flex}.vac-row{border-bottom:1px solid var(--border);min-height:30px;display:flex}.vac-row:last-child{border-bottom:0}.vac-name{white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--border);cursor:pointer;background:var(--surface);z-index:2;flex:0 0 220px;padding:6px 10px;font-size:13px;position:sticky;left:0;overflow:hidden}.vac-name:hover{color:var(--accent-text)}.vac-track{flex:1;display:flex;position:relative}.vac-head .vac-name{cursor:default}.vac-month{color:var(--muted);border-left:1px solid var(--border);white-space:nowrap;text-transform:capitalize;padding:4px 6px;font-size:11.5px;font-weight:600;overflow:hidden}.vac-days .vac-day,.vac-bg .vac-day{text-align:center;min-width:0;color:var(--faint);border-left:1px solid color-mix(in srgb,var(--border) 50%,transparent);flex:1;padding:3px 0;font-size:10.5px}.vac-day.we{background:var(--surface-2)}.vac-days .vac-day.today{color:#fff;background:var(--accent);border-radius:4px;font-weight:700}.vac-bg{display:flex;position:absolute;inset:0}.vac-group{background:var(--surface-3);min-height:26px}.vac-group .vac-name{background:var(--surface-3);text-transform:uppercase;letter-spacing:.4px;color:var(--muted);cursor:default;font-size:11.5px;font-weight:700}.vac-today{background:var(--accent);opacity:.55;z-index:1;width:2px;position:absolute;top:0;bottom:0}.vac-bar{color:#fff;white-space:nowrap;cursor:pointer;z-index:1;text-align:left;border:0;border-radius:5px;padding:0 6px;font-size:11px;font-weight:600;position:absolute;top:5px;bottom:5px;overflow:hidden}.vac-bar.t-vacation{background:#0d9488}.vac-bar.t-sick{background:#dc2626}.vac-bar.t-trip{background:#7c3aed}.vac-bar.t-other{background:#64748b}.vac-bar:hover{filter:brightness(1.1)}.legend .vac-bar{vertical-align:-2px;border-radius:3px;width:18px;height:12px;margin-right:4px;padding:0}.vac-badge{vertical-align:1px;white-space:nowrap;color:#0f766e;background:#ccfbf1;border-radius:6px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600}.vac-badge.now.t-sick{background:var(--red-weak);color:var(--red)}.vac-badge.now.t-trip{color:#6d28d9;background:#ede9fe}.vac-badge.next{background:var(--surface-3);color:var(--muted)}:root[data-theme=dark] .vac-badge{color:#5eead4;background:#123c38}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .vac-badge{color:#5eead4;background:#123c38}}.person.away{border-style:dashed}.heat td.c.away{background-image:repeating-linear-gradient(45deg,#0000 0 5px,#0d948847 5px 10px)}.heat td.c.away-full{background:repeating-linear-gradient(45deg,var(--heat-0) 0 5px,#0d948859 5px 10px);color:#0f766e}.loading-line{background:linear-gradient(90deg,transparent,var(--accent),transparent);z-index:70;background-size:200% 100%;height:2px;animation:1s linear infinite ll;position:fixed;top:0;left:0;right:0}@keyframes ll{0%{background-position:200% 0}to{background-position:-200% 0}}.ov-cell{text-align:center;border-left:1px solid color-mix(in srgb,var(--border) 50%,transparent);flex:1;min-width:0;font-size:10.5px;font-weight:700;line-height:24px}.ov-cell.we{background:var(--surface-2)}.ov-cell.c2{background:var(--yellow-weak);color:var(--yellow)}.ov-cell.c3{background:var(--red-weak);color:var(--red)}.legend .ov-legend{border:1px solid var(--border);flex:none}.vac-sum{background:var(--surface-2)}.vac-sum .vac-name{background:var(--surface-2);cursor:default;font-size:12px;font-weight:600}.vac-bar.ov{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--red);z-index:2}.legend .vac-bar.ov{box-shadow:0 0 0 1px var(--surface),0 0 0 3px var(--red);margin-left:3px}.agr-card>h3 .spacer{flex:1}.ov-item{align-items:center}.ov-item.c3 b{color:var(--red)}.ov-chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ov-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:8px;align-items:center;gap:6px;padding:3px 9px;font-size:12.5px;display:inline-flex}.ov-chip:hover{border-color:var(--accent);color:var(--accent-text)}.ov-chip .vac-bar{border-radius:3px;width:8px;height:14px;padding:0;display:inline-block;position:static}
