@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#f5f6f8;--surface:#fff;--surface-2:#f9fafb;--border:#e3e6ea;--text:#1d2330;--muted:#6b7280;--primary:#0f6e5c;--primary-soft:#e3f1ee;--primary-ink:#fff;--success:#1e8e3e;--success-soft:#e6f4ea;--warning:#b7791f;--warning-soft:#fdf3e1;--danger:#c5221f;--danger-soft:#fce8e6;--info:#2563eb;--info-soft:#e8effd;--neutral-soft:#eef0f3;--readonly:#eef0f3;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 12px 32px #1018282e;--radius:8px;--sidebar:240px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1319;--surface:#171c24;--surface-2:#1c222c;--border:#2a313d;--text:#e6e9ee;--muted:#9aa3b2;--primary:#3fb39a;--primary-soft:#16322c;--primary-ink:#0b1512;--success:#4cc06a;--success-soft:#16301e;--warning:#e0a54a;--warning-soft:#33280f;--danger:#f2716d;--danger-soft:#3a1818;--info:#6b9bfa;--info-soft:#172442;--neutral-soft:#232a35;--readonly:#222934;--shadow:0 1px 2px #0006;--shadow-lg:0 12px 32px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}a[data-off]{color:inherit;cursor:default;pointer-events:none;text-decoration:none}h1,h2,h3,h4{margin:0;line-height:1.25}h1{font-size:22px;font-weight:700}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12px}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.mono{white-space:nowrap;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px}.nowrap{white-space:nowrap}.icon{vertical-align:-3px;stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.icon.lg{width:20px;height:20px}.icon.xl{stroke-width:1.5px;width:36px;height:36px}.app{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}body.collapsed .app{grid-template-columns:64px 1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);height:100vh;padding:12px 10px 24px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:6px 8px 14px;font-weight:700;display:flex}.brand-mark{object-fit:contain;flex:none;width:32px;height:32px}.brand-word{width:auto;height:30px;display:block}@media (prefers-color-scheme:dark){.brand-word{filter:invert()}}.brand small{color:var(--muted);font-size:11px;font-weight:500;display:block}.nav-group{margin-top:12px}.nav-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:4px 10px;font-size:11px;font-weight:600}.nav a{color:var(--text);white-space:nowrap;border-radius:6px;align-items:center;gap:10px;padding:7px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--primary-soft);color:var(--primary)}.nav a .tag{margin-left:auto}.nav a.future{color:var(--muted)}body.collapsed .sidebar .nav-label,body.collapsed .sidebar .nav a span,body.collapsed .sidebar .nav a .tag,body.collapsed .brand>div{display:none}body.collapsed .nav a{justify-content:center}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;min-height:56px;padding:10px 20px;display:flex;position:sticky;top:0}.search{flex:1;max-width:420px;position:relative}.search input{padding-left:34px}.search .icon{color:var(--muted);position:absolute;top:10px;left:10px}.topbar .spacer{flex:1}.bell{position:relative}.bell .count{background:var(--danger);color:#fff;border-radius:999px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-6px}.usermenu{position:relative}.usermenu>button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;display:flex}.usermenu>button:hover{background:var(--surface-2)}.avatar{background:var(--primary-soft);width:30px;height:30px;color:var(--primary);border-radius:999px;place-items:center;font-size:12px;font-weight:700;display:grid}.usermenu .who{text-align:left;line-height:1.2}.usermenu .who small{color:var(--muted);font-size:11px;display:block}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:40;min-width:200px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu a,.menu button{width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;display:flex}.menu a:hover,.menu button:hover{background:var(--surface-2);text-decoration:none}.menu hr{border:0;border-top:1px solid var(--border);margin:6px 0}.content{width:100%;max-width:1440px;padding:20px 24px 64px}.crumbs{color:var(--muted);margin-bottom:4px;font-size:12px}.crumbs a{color:var(--muted)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.page-head .title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page-head .sub{color:var(--muted);margin-top:4px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.phase{background:var(--neutral-soft);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.phase.future{background:var(--info-soft);color:var(--info);border-color:#0000}.tag{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.tag.future{background:var(--info-soft);color:var(--info)}.tag.confirm{background:var(--warning-soft);color:var(--warning)}.badge{white-space:nowrap;background:var(--neutral-soft);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:99px;width:6px;height:6px}.badge.plain:before{display:none}.b-success{background:var(--success-soft);color:var(--success)}.b-warning{background:var(--warning-soft);color:var(--warning)}.b-danger{background:var(--danger-soft);color:var(--danger)}.b-info{background:var(--info-soft);color:var(--info)}.b-primary{background:var(--primary-soft);color:var(--primary)}.chip{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;display:inline-flex}.chip.accent{background:var(--primary-soft);color:var(--primary);border-color:#0000;font-weight:600}.dot{background:var(--warning);border-radius:99px;width:7px;height:7px;display:inline-block}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex;text-decoration:none!important}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-outline{color:var(--danger);border-color:var(--danger);background:0 0}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{min-height:28px;padding:3px 10px;font-size:12px}.btn.icon-only{min-width:34px;padding:6px}.btn[disabled],.btn.disabled,.btn.locked{opacity:.5;cursor:not-allowed;pointer-events:auto}.btn.locked:hover,.btn[disabled]:hover{filter:none}.linkbtn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.linkbtn:hover{text-decoration:underline}.lockable,[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;z-index:60;pointer-events:none;background:#1d2330;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:500;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.card-body{padding:16px}.card-body.flush{padding:0}.card+.card,.stack>*+*{margin-top:16px}.grid>.card+.card,.split>.card+.card{margin-top:0}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.split.left{grid-template-columns:340px minmax(0,1fr)}.split.r380{grid-template-columns:minmax(0,1fr) 380px}.g2.wide-left{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.kpi{padding:14px 16px}.kpi .label{color:var(--muted);font-size:12px;font-weight:500}.kpi .value{font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:700}.kpi .sub{color:var(--muted);margin-top:2px;font-size:12px}.kpi.warning .value{color:var(--warning)}.kpi.danger .value{color:var(--danger)}.kpi.success .value{color:var(--success)}a.kpi,a.card{color:inherit;text-decoration:none;display:block}a.card:hover{border-color:var(--primary)}.dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.dl dt{color:var(--muted)}.dl dd{margin:0;font-weight:500}.info-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 20px;display:grid}.info-grid .k{color:var(--muted);font-size:12px}.info-grid .v{font-weight:600}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 16px;display:grid}.form-grid .wide{grid-column:1/-1}.form-grid .span2{grid-column:span 2}.field label,.field .lbl{margin-bottom:4px;font-size:12px;font-weight:600;display:block}.req{color:var(--danger)}.help{color:var(--muted);margin-top:4px;font-size:12px}.err{color:var(--danger);margin-top:4px;font-size:12px;font-weight:500}.warn-text{color:var(--warning);margin-top:4px;font-size:12px;font-weight:500}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;min-height:34px;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[readonly],.ro{background:var(--readonly);color:var(--muted)}input.invalid,select.invalid{border-color:var(--danger);background:var(--danger-soft)}input.warn{border-color:var(--warning)}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--primary);margin:0}input.num{text-align:right}textarea{resize:vertical;min-height:70px}.check{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:inline-flex}.checks{flex-direction:column;gap:8px;display:flex}.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-group{display:flex}.input-group input{border-radius:6px 0 0 6px}.input-group .addon{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-left:0;border-radius:0 6px 6px 0;align-items:center;padding:0 10px;font-size:12px;display:flex}.pw{position:relative}.pw button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:3px;position:absolute;top:5px;right:6px}.seg{border:1px solid var(--border);background:var(--surface);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;padding:6px 12px;font-size:12px;font-weight:600}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--primary);color:var(--primary-ink)}.seg.xs button{padding:2px 7px;font-size:11px}.seg.invalid{border-color:var(--danger)}.toggle{cursor:pointer;align-items:center;gap:8px;font-weight:500;display:inline-flex;position:relative}.toggle input{appearance:none;background:var(--border);cursor:pointer;border:0;border-radius:99px;width:36px;height:20px;min-height:0;padding:0;position:relative}.toggle input:after{content:"";background:#fff;border-radius:99px;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.toggle input:checked{background:var(--primary)}.toggle input:checked:after{left:18px}.select-search{position:relative}.select-search .opts{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:30;border-radius:6px;max-height:220px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.select-search .opts div{cursor:pointer;padding:6px 10px}.select-search .opts div:hover,.select-search .opts div.sel{background:var(--primary-soft)}.pw-rules{gap:4px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.pw-rules li{align-items:center;gap:6px;display:flex}.pw-rules .ok{color:var(--success)}.pw-rules .no{color:var(--muted)}.table-wrap{max-width:100%;overflow:auto}.table-wrap.tall{max-height:560px}table.t{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.t th{z-index:2;background:var(--surface-2);color:var(--muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.t th.num{text-align:right}.t th.sort:after{content:" ↕";opacity:.45}.t td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px}.t tbody tr:hover td{background:var(--surface-2)}.t tfoot td{background:var(--surface-2);border-bottom:0;border-top:2px solid var(--border);font-weight:700}.t tr.group td{background:var(--neutral-soft);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:12px;font-weight:600}.t tr.sub td{background:var(--surface-2)}.t tr.sub td:first-child{padding-left:32px}.t tr.sub2 td:first-child{padding-left:52px}.t tr.subtotal td{background:var(--surface-2);font-weight:600}.t tr.row-err td{background:var(--danger-soft)}.t tr.row-warn td{background:var(--warning-soft)}.t td.comp{background:var(--readonly);color:var(--text);white-space:nowrap}.t td.item-cell{min-width:220px}.t td input,.t td select{min-height:30px;padding:4px 8px;font-size:13px}.t .col-sel{width:36px}.t .col-act{text-align:right;width:44px}.t.compact td,.t.compact th{padding:6px 10px}.expander{cursor:pointer;color:var(--muted);font:inherit;background:0 0;border:0;padding:0 4px}.expander:before{content:"▸";transition:transform .15s;display:inline-block}.expander.open:before{transform:rotate(90deg)}.rowmenu{display:inline-block;position:relative}.pager{color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.pager .pages{gap:4px;display:flex}.pager .pages span{border:1px solid var(--border);background:var(--surface);border-radius:6px;place-items:center;min-width:28px;height:28px;display:grid}.pager .pages span.on{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.progress{background:var(--neutral-soft);border-radius:99px;min-width:80px;height:6px;overflow:hidden}.progress>i{background:var(--primary);border-radius:99px;height:100%;display:block}.progress.warning>i{background:var(--warning)}.progress.danger>i{background:var(--danger)}.progress.success>i{background:var(--success)}.empty{text-align:center;color:var(--muted);padding:48px 16px}.empty .icon{color:var(--border);margin-bottom:8px}.empty h3{color:var(--text);margin-bottom:4px}.filters{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.filters input,.filters select{width:auto;min-width:150px}.filters input[type=checkbox],.filters input[type=radio]{min-width:0}.filters .grow{flex:1;min-width:200px}.filters .range{align-items:center;gap:4px;display:inline-flex}.filters .range input{min-width:130px}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.tabs button,.tabs a{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.tabs button:hover{color:var(--text)}.tabs .on{color:var(--primary);border-bottom-color:var(--primary)}.tabs .count{background:var(--neutral-soft);color:var(--muted);border-radius:99px;padding:0 7px;font-size:11px}.card>.tabs{padding:0 8px}.alert{border-radius:var(--radius);border:1px solid #0000;align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.alert .icon{margin-top:2px}.alert.info{background:var(--info-soft);color:var(--info)}.alert.success{background:var(--success-soft);color:var(--success)}.alert.warning{background:var(--warning-soft);color:var(--warning)}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert b{font-weight:700}.alert .body{color:var(--text)}.alert .body strong{color:inherit}.banner-future{background:repeating-linear-gradient(135deg, var(--info-soft), var(--info-soft) 12px, transparent 12px, transparent 24px);border:1px dashed var(--info);color:var(--info);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-weight:600;display:flex}.banner-confirm{background:var(--warning-soft);border:1px dashed var(--warning);color:var(--warning);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-weight:600;display:flex}.stepper{flex-wrap:wrap;align-items:center;gap:8px 0;display:flex}.step{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.step .n{border:2px solid var(--border);background:var(--surface);border-radius:99px;place-items:center;width:26px;height:26px;font-size:12px;display:grid}.step.done{color:var(--success)}.step.done .n{background:var(--success);border-color:var(--success);color:#fff}.step.cur{color:var(--primary)}.step.cur .n{border-color:var(--primary);color:var(--primary)}.step.cancel{color:var(--danger)}.step.cancel .n{border-color:var(--danger);color:var(--danger);border-style:dashed}.step-line{background:var(--border);width:40px;height:2px;margin:0 10px}.step-line.done{background:var(--success)}.dropzone{border:2px dashed var(--border);text-align:center;background:var(--surface);color:var(--muted);border-radius:12px;padding:40px 20px;transition:all .15s}.dropzone .icon{color:var(--primary)}.dropzone h3{color:var(--text);margin:8px 0 4px;font-size:16px}.dropzone.over,body[data-state=dragover] .dropzone{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.filelist{margin:0;padding:0;list-style:none}.filelist li{border-bottom:1px solid var(--border);grid-template-columns:28px minmax(0,1fr) 180px minmax(0,1.3fr);align-items:center;gap:12px;padding:12px 16px;display:grid}.filelist li:last-child{border-bottom:0}.filelist .fname{font-weight:600}.overlay{z-index:80;background:#0f131973;justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:12px;width:100%;max-width:520px}.modal.wide{max-width:760px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{padding:18px 20px}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 12px 12px;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.overlay.drawer-wrap{justify-content:flex-end;align-items:stretch;padding:0}.drawer{background:var(--surface);width:100%;max-width:560px;height:100vh;box-shadow:var(--shadow-lg);border-left:1px solid var(--border);overflow-y:auto}.drawer .modal-head{background:var(--surface);z-index:2;position:sticky;top:0}.x{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:4px}.x:hover{background:var(--surface-2)}.toasts{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{color:#fff;box-shadow:var(--shadow-lg);background:#1d2330;border-radius:8px;align-items:center;gap:8px;max-width:360px;padding:10px 14px;font-weight:500;animation:.2s tin;display:flex}.toast.success{background:var(--success)}@keyframes tin{0%{opacity:0;transform:translateY(-6px)}}.state-pill{z-index:90;color:#fff;box-shadow:var(--shadow-lg);background:#1d2330;border-radius:999px;align-items:center;gap:8px;padding:6px 6px 6px 14px;font-size:12px;display:flex;position:fixed;bottom:16px;right:16px}.state-pill .lbl{opacity:.7}.state-pill button{font:inherit;color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.state-pill button.on{color:#0b1512;background:#3fb39a}.calc{border-collapse:collapse;width:100%;font-size:13px}.calc td{border-bottom:1px dashed var(--border);vertical-align:top;padding:8px 0}.calc td.num{white-space:nowrap;padding-left:12px;font-weight:600}.calc .f{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:12px;display:block}.calc tr.total td{border-bottom:0;border-top:2px solid var(--text);font-size:14px}.explainer{background:var(--primary-soft);border-radius:var(--radius);padding:14px 16px}.explainer h3{color:var(--primary);margin-bottom:6px}.lock{color:var(--muted)}.divider{border:0;border-top:1px solid var(--border);margin:16px 0}.totals{gap:8px;display:grid}.totals .row{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.totals .row.big{border-top:2px solid var(--border);padding-top:10px;font-size:18px;font-weight:700}.totals .row.accent{color:var(--primary);font-weight:700}.list-plain{margin:0;padding:0;list-style:none}.list-plain li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.list-plain li:last-child{border-bottom:0}.wh-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:14px 16px}.wh-card.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.wh-card+.wh-card{margin-top:10px}.days{align-items:center;gap:8px;min-width:150px;display:inline-flex}.days .progress{flex:1}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.matrix .na{color:var(--muted)}.chart-bars rect{fill:var(--primary)}.chart-bars text{fill:var(--muted);font-family:Inter,system-ui,sans-serif;font-size:11px}.chart-bars .val{fill:var(--text);font-weight:600}.chart-bars line{stroke:var(--border)}.report-card{padding:16px}.report-card h3{margin:10px 0 4px}.report-card .ic{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:8px;place-items:center;display:grid}.guide-steps{gap:8px;margin:0;padding-left:20px;display:grid}.proto-note{color:var(--muted);font-size:11px}.login-wrap{background:radial-gradient(circle at 20% 10%, var(--primary-soft), transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{width:100%;max-width:400px;padding:28px}.login-card .brand{text-align:center;flex-direction:column;justify-content:center;gap:8px;padding-bottom:20px}.login-card .brand-mark{width:72px;height:72px}body[data-state=limited] .admin-only{display:none!important}body[data-state=limited] .nav a:not(.lf-ok),body[data-state=limited] .nav-group:not(.lf-ok){display:none}.print-page{color:#111;max-width:820px;box-shadow:var(--shadow);background:#fff;border:1px solid #ddd;margin:24px auto;padding:32px 36px}.print-page.a5{max-width:600px}.print-toolbar{justify-content:space-between;gap:8px;max-width:820px;margin:16px auto 0;display:flex}.print-page h1{font-size:20px}.print-head{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;padding-bottom:12px;display:flex}.print-page table{border-collapse:collapse;width:100%;font-size:12px}.print-page th,.print-page td{border:1px solid #999;padding:5px 6px}.print-page th{text-align:left;background:#f0f0f0}.print-page .num{text-align:right}.print-page .boxes{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;font-size:12px;display:grid}.print-page .boxes>div{border:1px solid #999;padding:8px 10px}.signs{justify-content:space-between;gap:24px;margin-top:56px;font-size:12px;display:flex}.signs div{text-align:center;border-top:1px solid #111;flex:1;padding-top:4px}body.print-body{background:var(--bg)}.print-page.challan{position:relative}.print-page.challan h2{text-transform:uppercase;margin:16px 0 6px;font-size:13px}.challan-info{grid-template-columns:1fr 1fr;gap:3px 16px;margin-bottom:6px;font-size:12px;display:grid}.print-page.challan table{font-size:11px}.print-page.challan tr.group td{background:#f7f7f7;font-weight:600}.print-page.challan tr.subtotal td{font-weight:600}.print-page.challan .override{color:#555;font-size:10px;font-style:italic}.pick-box{border:1px solid #333;width:11px;height:11px;display:inline-block}.print-page .footnote{margin-top:8px;font-size:11px;font-style:italic}.print-page .watermark{text-align:center;color:#c0392b24;pointer-events:none;font-size:110px;font-weight:700;position:absolute;top:40%;left:0;right:0;transform:rotate(-35deg)}@media print{@page{size:A4;margin:12mm}body,body.print-body{background:#fff!important}.no-print,.state-pill,.toasts{display:none!important}.print-page{box-shadow:none;border:0;max-width:none;margin:0;padding:0}.print-page thead{display:table-header-group}.print-page tr{break-inside:avoid}.print-page .watermark{position:fixed}}@media (width<=1200px){.g6{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.split.r380{grid-template-columns:1fr}}@media (width<=1024px){.app{grid-template-columns:64px 1fr}.sidebar .nav-label,.sidebar .nav a span,.sidebar .nav a .tag,.brand>div{display:none}.nav a{justify-content:center}.split.left{grid-template-columns:1fr}.usermenu .who{display:none}}@media (width<=800px){.g3,.g2,.g2.wide-left{grid-template-columns:1fr}.form-grid .span2{grid-column:1/-1}.content{padding:16px}.filelist li{grid-template-columns:28px 1fr}}@media (width<=600px){.g6,.g4{grid-template-columns:1fr 1fr}.topbar{padding:8px 12px}.search{display:none}}kbd{border:1px solid var(--border);background:var(--surface-2);min-width:18px;color:var(--muted);text-align:center;border-bottom-width:2px;border-radius:4px;padding:0 5px;font:600 11px/16px Inter,system-ui,sans-serif;display:inline-block}.btn kbd{margin-left:4px}.btn.primary kbd{color:inherit;opacity:.85;background:0 0;border-color:#ffffff73}.search kbd{pointer-events:none;position:absolute;top:8px;right:8px}.search input:focus+kbd{display:none}.kb-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px 24px;display:grid}.kb-sec h3{margin:0 0 6px;font-size:13px}.kb{border-collapse:collapse;width:100%;font-size:13px}.kb td{border-bottom:1px solid var(--border);vertical-align:top;padding:5px 0}.kb td:first-child{white-space:nowrap;width:120px;padding-right:12px}table.t tbody tr.kb-sel td{background:var(--primary-soft)}table.t tbody tr.kb-sel td:first-child{box-shadow:inset 3px 0 0 var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.search-results{width:100%;max-height:60vh;left:0;right:auto;overflow:auto}.search-results .search-group{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 10px 2px;font-size:11px;font-weight:600}.search-results button{flex-direction:column;align-items:flex-start;gap:0}.search-results button.on{background:var(--surface-2)}.search-results .search-empty{padding:8px 10px}.section-title{border-bottom:1px solid var(--border,#e5e7eb);margin:0 0 12px;padding-bottom:8px;font-size:15px}
