:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);--bg: #EDF0F2;--surface: #FFFFFF;--surface-2: #F4F6F7;--border: #D7DDE2;--text: #171B1F;--text-dim: #5B6570;--accent: #C97A00;--accent-ink: #FFFFFF;--accent-soft: #FCEBD1;--good: #12876F;--good-soft: #DEF3EE;--bad: #C0242B;--bad-soft: #FBE3E4;--shadow: 0 1px 2px rgba(20,24,28,.06), 0 6px 20px rgba(20,24,28,.06);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #12161B;--surface: #1B2129;--surface-2: #212933;--border: #2C3540;--text: #EAEEF1;--text-dim: #8B96A1;--accent: #FFB020;--accent-ink: #14181D;--accent-soft: #3A2E10;--good: #35C2A0;--good-soft: #16302B;--bad: #FF6B6B;--bad-soft: #3A1518;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px rgba(0,0,0,.35);color-scheme:dark}}:root[data-theme=dark]{color-scheme:dark;--bg: #12161B;--surface: #1B2129;--surface-2: #212933;--border: #2C3540;--text: #EAEEF1;--text-dim: #8B96A1;--accent: #FFB020;--accent-ink: #14181D;--accent-soft: #3A2E10;--good: #35C2A0;--good-soft: #16302B;--bad: #FF6B6B;--bad-soft: #3A1518;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 30px rgba(0,0,0,.35)}html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}*,*:before,*:after{box-sizing:inherit}body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background .15s ease,color .15s ease}body.no-scroll{overflow:hidden}button,input{font-family:inherit;color:inherit}button{cursor:pointer}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.screen{max-width:720px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.auth-wrap{max-width:360px;margin:12vh auto 0;padding:24px;display:flex;flex-direction:column;gap:14px;width:100%}.auth-brand{font-size:26px;font-weight:700;text-align:center}.auth-sub{font-size:13px;color:var(--text-dim);text-align:center;margin-top:-8px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form input{height:44px;border-radius:10px;border:1px solid var(--border);background:var(--surface);padding:0 12px;font-size:15px;width:100%}.auth-error{font-size:12.5px;color:var(--bad);background:var(--bad-soft);padding:8px 10px;border-radius:8px}header.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);padding:18px 16px 10px;border-bottom:1px solid var(--border)}.topbar-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.brand{display:flex;flex-direction:column;gap:2px;min-width:0}.brand-name-row{display:flex;align-items:center;gap:8px;min-width:0}.brand-name{font-size:21px;font-weight:700;letter-spacing:-.01em;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52vw}.project-id-sub{font-size:10.5px;color:var(--text-dim);font-family:IBM Plex Mono,monospace;margin-top:1px}.brand-sub{font-size:12.5px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.mode-dot{width:6px;height:6px;border-radius:50%;background:var(--good);flex:none}.topbar-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:16px}.icon-btn:active{transform:scale(.96)}.stats-row{display:flex;gap:6px;overflow-x:auto;padding:12px 2px 4px;scrollbar-width:none}.stats-row::-webkit-scrollbar{display:none}.stat{flex:none;min-width:68px;padding:8px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.stat-n{font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:600}.stat-l{font-size:10.5px;color:var(--text-dim);white-space:nowrap}.stat-good .stat-n{color:var(--good)}.stat-total{border-color:var(--accent)}.search-row{display:flex;gap:8px;padding:10px 16px 8px}.search-input{flex:1;height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface);padding:0 14px;font-size:15px;color:var(--text)}.search-input::placeholder{color:var(--text-dim)}.search-input:focus-visible,input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-bar{display:flex;gap:6px;overflow-x:auto;padding:0 16px 14px;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.chip{flex:none;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-size:13px;white-space:nowrap}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-accent,.btn-ghost,.btn-danger{height:40px;padding:0 16px;border-radius:10px;font-size:14.5px;font-weight:600;border:1px solid transparent}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:active{transform:scale(.98)}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-danger{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-soft);width:100%}main{flex:1;padding:4px 16px 100px}.asset-list{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--text-dim);border-radius:12px;padding:12px 14px;text-align:left;width:100%}.row-complete{border-left-color:var(--good)}.row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.row-id{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.row-label{font-size:13.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}.row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.dots{display:flex;gap:3px}.dot{width:7px;height:7px;border-radius:50%;background:var(--border)}.dot.done{background:var(--good)}.row-status{font-size:12px;color:var(--text-dim);font-weight:600}.row-status.good{color:var(--good)}.row-seals{font-size:11px;color:var(--text-dim)}.empty,.empty-sm,.empty-state{color:var(--text-dim);font-size:14px;padding:30px 8px;text-align:center}.empty-state{padding:60px 20px;display:flex;flex-direction:column;gap:8px;align-items:center}.empty-title{font-size:17px;font-weight:700;color:var(--text)}.empty-sub{font-size:13.5px;max-width:320px}.empty-sm{padding:14px 4px;font-size:13px}.dock{position:fixed;left:0;right:0;bottom:0;z-index:25;padding:10px 16px calc(14px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;justify-content:center;background:linear-gradient(to top,var(--bg) 60%,transparent)}.dock-inner{max-width:720px;width:100%;display:flex;gap:10px}.dock .btn-ghost,.dock .btn-accent{flex:1;box-shadow:var(--shadow)}.dock[hidden]{display:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a0c0e8c;display:flex;align-items:flex-end;justify-content:center}.overlay[hidden]{display:none}.sheet{width:100%;max-width:720px;max-height:92vh;overflow-y:auto;background:var(--bg);border-radius:18px 18px 0 0;box-shadow:var(--shadow);padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.sheet-head{position:sticky;top:0;background:var(--bg);z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;border-bottom:1px solid var(--border)}.sheet-head h2{font-size:15px;margin:0}.close-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:16px}.detail-head{padding:16px;display:flex;flex-direction:column;gap:8px}.detail-id{font-family:IBM Plex Mono,monospace;font-size:20px;font-weight:600;letter-spacing:-.01em}.detail-field{height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface);padding:0 12px;font-size:14.5px;min-width:0}.detail-field-wide{grid-column:1 / -1}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-created{font-size:12px;color:var(--text-dim)}.detail-qr{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 16px 20px}.qr-box{width:180px;height:180px;border-radius:12px;background:#fff;padding:10px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}.qr-box img,.qr-box canvas,.qr-box table{display:block;max-width:100%;max-height:100%}.qr-fallback{font-size:12px;color:#999;text-align:center}.detail-section{padding:6px 16px 20px;border-top:1px solid var(--border)}.detail-section h3{font-size:13px;text-transform:none;margin:14px 0 10px;color:var(--text-dim);font-weight:600}.steps{display:flex;flex-direction:column}.step{display:flex;align-items:center;gap:12px;padding:10px 4px;background:transparent;border:none;border-bottom:1px solid var(--border);text-align:left;width:100%}.step:last-child{border-bottom:none}.step-mark{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);flex:none;position:relative}.step.done .step-mark{border-color:var(--good);background:var(--good)}.step.done .step-mark:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}.step-body{display:flex;flex-direction:column;gap:1px}.step-name{font-size:14.5px;font-weight:600}.step-time{font-size:12px;color:var(--text-dim)}.step.done .step-time{color:var(--good)}.step.gated{cursor:default}.step:disabled,.check-row:disabled{cursor:default;opacity:.6}.check-list{display:flex;flex-direction:column;padding-left:34px;margin-bottom:2px}.check-row{display:flex;align-items:center;gap:10px;padding:7px 4px;background:transparent;border:none;border-bottom:1px dashed var(--border);text-align:left;width:100%;cursor:pointer}.check-row:last-child{border-bottom:none}.check-mark{width:16px;height:16px;border-radius:4px;border:2px solid var(--border);flex:none;position:relative}.check-row.done .check-mark{border-color:var(--good);background:var(--good)}.check-row.done .check-mark:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}.check-name{font-size:13px;font-weight:600;flex:1}.check-time{font-size:11px;color:var(--text-dim)}.check-row.done .check-time{color:var(--good)}.seal-actions{display:flex;gap:8px;margin-bottom:12px}.seals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.seal-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.seal-code{font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:600}.seal-note{border:none;background:var(--surface-2);border-radius:6px;height:30px;padding:0 8px;font-size:12.5px;min-width:0}.seal-time{font-size:10.5px;color:var(--text-dim);white-space:nowrap}.seal-remove{width:24px;height:24px;border-radius:6px;border:none;background:var(--bad-soft);color:var(--bad);font-size:14px;line-height:1}.member-row{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin-bottom:6px}.member-main{flex:1;min-width:0}.member-name{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-sub{font-size:11.5px;color:var(--text-dim)}.role-select{height:30px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;padding:0 4px}.btn-sm{height:30px;padding:0 10px;font-size:12.5px}#manageUsersBody h3{font-size:13px;color:var(--text-dim);margin:14px 0 8px}#manageUsersBody h3:first-child{margin-top:0}#scannerOverlay{align-items:stretch}.scan-sheet{width:100%;max-width:720px;margin:0 auto;background:#0b0d10;color:#fff;min-height:100%;display:flex;flex-direction:column}.scan-head{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 10px}.scan-head h2{font-size:15px;margin:0}#reader{width:100%;flex:1;background:#000;min-height:320px}#reader video{width:100%!important;object-fit:cover}.scan-foot{padding:14px 16px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px}.scan-hint{font-size:12.5px;color:#9aa3ad;text-align:center}.manual-row{display:flex;gap:8px}.manual-row input{flex:1;height:42px;border-radius:10px;border:1px solid #333;background:#1a1d21;color:#fff;padding:0 12px;font-size:14.5px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a0c0e8c;display:flex;align-items:center;justify-content:center;padding:20px}.modal-overlay[hidden]{display:none}.modal-card{width:100%;max-width:360px;background:var(--surface);border-radius:14px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}.modal-card h3{margin:0;font-size:16px}.modal-card p{margin:0;font-size:13.5px;color:var(--text-dim);white-space:pre-line}.modal-card input{height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);padding:0 12px;font-size:14.5px;width:100%}.modal-actions{display:flex;gap:8px}.modal-actions button{flex:1}.modal-card.wide{max-width:380px}.field-label{font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:4px;display:block}.field-group{display:flex;flex-direction:column;gap:10px}.new-asset-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0 2px}.qr-box-sm{width:140px;height:140px}.new-asset-qr-hint{font-size:11.5px;color:var(--text-dim);text-align:center}.row-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.tag-pill{font-size:10px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:left;width:100%}.project-row.unassigned{border-style:dashed}.project-main{display:flex;flex-direction:column;gap:2px;min-width:0}.project-name{font-size:15px;font-weight:700}.project-id{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-dim)}.project-sub{font-size:12.5px;color:var(--text-dim);margin-top:2px}.project-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.project-pct{font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:600;color:var(--text-dim)}.project-pct.good{color:var(--good)}.project-bar-track{width:64px;height:4px;border-radius:2px;background:var(--border);overflow:hidden}.project-bar-fill{height:100%;background:var(--accent)}#toastEl{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:80;max-width:86vw;text-align:center}#toastEl.show{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}#root{min-height:100%}.btn-accent:disabled,.btn-ghost:disabled{opacity:.5;cursor:default}.select-row{display:flex;gap:6px;padding:0 16px 10px;flex-wrap:wrap}.select{height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;padding:0 8px;font-family:inherit}.row-type{font-size:10.5px;color:var(--text-dim);font-weight:600;letter-spacing:.02em}.tag-pill.turnover{background:var(--good-soft);color:var(--good)}.more-btn{margin-top:8px;width:100%}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.link-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;text-align:left}.link-row .row-id{font-size:12.5px}.link-row .row-status{font-size:11.5px}.turnover-box{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 4px 0}.turnover-text{font-size:13px;color:var(--text-dim)}.turnover-text strong{color:var(--good)}.gen-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-line{display:flex;align-items:center;gap:8px;font-size:13.5px}.check-line input{width:18px;height:18px;accent-color:var(--accent)}.gen-counts{font-size:12.5px;color:var(--text-dim);background:var(--surface-2);border-radius:8px;padding:8px 10px;line-height:1.6}.modal-card select,.modal-card .field-input{height:42px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);padding:0 12px;font-size:14.5px;width:100%;color:var(--text);font-family:inherit}.detail-field.select-field{padding:0 8px}.icon-btn svg{width:18px;height:18px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-width: 520px){.gen-grid{grid-template-columns:1fr}}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:42px;z-index:30;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}.menu button{text-align:left;background:transparent;border:none;border-radius:8px;padding:11px 12px;font-size:14px;color:var(--text)}.menu button:hover,.menu button:focus-visible{background:var(--surface-2)}.menu button.danger{color:var(--bad)}.screen.wide{max-width:1240px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;padding:12px 2px 4px}.stat-btn{padding:8px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:2px;text-align:left;min-height:52px}.stat-btn:hover{border-color:var(--accent)}.stat-btn .stat-l{white-space:normal;line-height:1.2}.stat-btn.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.filter-wrap{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 14px}.filter-wrap .chip{padding:6px 11px;font-size:12.5px}.tabs{display:flex;gap:4px;padding:10px 16px 0;border-bottom:1px solid var(--border);margin:0 -16px}.tab{border:0;background:transparent;padding:10px 14px;font-size:14px;font-weight:600;color:var(--text-dim);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.summary{display:flex;flex-direction:column;gap:18px;padding-bottom:40px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.card h2{font-size:15px;margin:0 0 4px}.card .sub{font-size:12.5px;color:var(--text-dim);margin:0 0 12px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.kpi-n{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:600}.kpi-l{font-size:12px;color:var(--text-dim)}.kpi-good .kpi-n{color:var(--good)}.kpi-warn .kpi-n{color:var(--accent)}.table-scroll{overflow-x:auto}table.matrix{border-collapse:collapse;width:100%;font-size:13px;min-width:560px}.matrix th,.matrix td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left}.matrix th{font-size:12px;color:var(--text-dim);font-weight:600;white-space:nowrap}.matrix th.sel,.matrix td.sel{background:var(--accent-soft)}.matrix td.num{font-family:IBM Plex Mono,monospace;text-align:right;white-space:nowrap}.cell-btn{background:none;border:0;padding:0;width:100%;text-align:left;color:inherit}.cell-btn:hover .bar-track{outline:1px solid var(--accent)}.bar-track{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-top:4px;min-width:60px}.bar-fill{height:100%;background:var(--good)}.bar-fill.partial{background:var(--accent)}.cell-n{font-family:IBM Plex Mono,monospace;font-size:12px}.waiting-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.waiting{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:9px 11px;text-align:left}.waiting:hover{border-color:var(--accent)}.waiting b{font-family:IBM Plex Mono,monospace}@media (min-width: 900px){main{padding-bottom:110px}}.modal-card.xl{max-width:560px;max-height:88vh;overflow-y:auto}.modal-card input[type=checkbox],.modal-card input[type=color]{width:auto;height:auto;padding:0;background:none;border:0}.modal-card input[type=color]{width:34px;height:30px;cursor:pointer}.modal-card input[type=file]{height:auto;padding:10px}.modal-card .field-grid input{min-width:0}.btn-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.btn-row .btn-danger{width:auto;margin-right:auto}.btn-accent.sm,.btn-ghost.sm{height:34px;padding:0 12px;font-size:13px}.icon-btn.sm{width:28px;height:28px;font-size:12px}.check-inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim);white-space:nowrap}.check-inline input{width:16px;height:16px;accent-color:var(--accent)}.chip-wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good);border-color:transparent}.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.pill.warn{background:var(--accent-soft);color:var(--accent);border-color:transparent}.bad-text{color:var(--bad)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface)}.seg button{border:0;background:transparent;padding:0 11px;height:32px;font-size:13px;color:var(--text-dim);border-right:1px solid var(--border)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.seg.wrap{flex-wrap:wrap}.select.sm{height:34px}.sched{display:flex;flex-direction:column;gap:12px;padding:12px 0 40px}.sched-kpis{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.kpi-btn{text-align:left;cursor:pointer}.kpi-btn:hover{border-color:var(--accent)}.kpi-btn.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.kpi-bad .kpi-n{color:var(--bad)}.sched-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sched-bar .spacer{flex:1}.legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.legend-item{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;color:var(--text)}.legend-item.on{border-color:var(--text);font-weight:600}.legend-item.dim{opacity:.45}.legend-key{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-dim);margin-left:auto}.key-box{display:inline-block;width:18px;height:11px;border-radius:3px;margin-left:6px}.key-box.solid{background:var(--text-dim)}.key-box.outline{border:1.5px solid var(--text-dim);border-left-width:4px;background:var(--surface)}.key-box.hatch{background:repeating-linear-gradient(135deg,var(--text-dim) 0 3px,transparent 3px 6px)}.tl-scroll{overflow:auto;max-height:calc(100vh - 230px);min-height:320px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.tl{--lw: 120px;--dw: 80px;display:grid;grid-template-columns:var(--lw) minmax(calc(var(--span) * var(--dw)),1fr);grid-template-rows:24px 40px;width:100%;min-width:calc(var(--lw) + var(--span) * var(--dw))}@media (max-width: 640px){.tl{--lw: 78px;--dw: 66px}}.tl-corner{position:sticky;left:0;top:0;z-index:6;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.tl-months,.tl-days{display:grid;grid-template-columns:repeat(var(--span),minmax(0,1fr));position:sticky;z-index:4;background:var(--surface)}.tl-months{top:0;height:24px}.tl-days{top:24px;border-bottom:1px solid var(--border)}.tl-month{font-size:11.5px;font-weight:600;color:var(--text-dim);padding:5px 8px;border-left:1px solid var(--border);white-space:nowrap;overflow:hidden}.tl-day{display:flex;flex-direction:column;align-items:center;padding:3px 0 5px;font-size:10.5px;color:var(--text-dim);border-left:1px solid var(--border)}.tl-day b{font-size:13px;color:var(--text);font-family:IBM Plex Mono,monospace;font-weight:500}.tl-day.off{background:var(--surface-2)}.tl-day.off b{color:var(--text-dim);text-decoration:line-through}.tl-day.today{background:var(--accent);color:var(--accent-ink)}.tl-day.today b{color:var(--accent-ink);font-weight:700}.tl-empty{grid-column:1 / -1;padding:40px 16px;color:var(--text-dim);font-size:14px;position:sticky;left:0;width:min(100%,90vw)}.tl-lane{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;border-bottom:1px solid var(--border)}.tl-label{position:sticky;left:0;z-index:3;background:var(--surface);border-right:1px solid var(--border);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.tl-label b{font-size:13px}.tl-label span{font-size:11.5px;color:var(--text-dim)}.tl-rows{position:relative;padding:4px 0;min-height:52px}.tl-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(var(--span),minmax(0,1fr));pointer-events:none}.tl-cell{border-left:1px solid var(--border);opacity:.6}.tl-cell.off{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,transparent 6px 12px);opacity:1}.tl-cell.today{background:color-mix(in srgb,var(--accent) 12%,transparent);border-left:2px solid var(--accent);opacity:1}.tl-row{position:relative;display:grid;grid-template-columns:repeat(var(--span),minmax(0,1fr));height:54px}.tl-task{grid-row:1;margin:3px 2px;min-width:0;position:relative;overflow:hidden;border-radius:7px;border:1.5px solid var(--c);background:var(--c);color:#fff;text-align:left;padding:3px 6px;font-size:11.5px;line-height:1.2;cursor:pointer;user-select:none;-webkit-user-select:none;box-shadow:0 1px 2px #0000001f}.tl-task.fod{background:var(--surface);color:var(--text);border-left-width:5px}.tl-task.draggable{cursor:grab}.tl-task.dragging{cursor:grabbing;z-index:5;box-shadow:0 6px 18px #0000004d;outline:2px solid var(--text);overflow:visible}.tl-task.done{opacity:.55}.tl-task.delayed:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(135deg,rgba(192,36,43,.55) 0 4px,transparent 4px 9px);pointer-events:none}.tl-task.overdue{outline:2px solid var(--bad);outline-offset:1px}.tl-task:focus-visible{outline:2px solid var(--text);outline-offset:1px}.tl-text{display:flex;flex-wrap:wrap;column-gap:4px;position:relative;z-index:1;max-height:100%;overflow:hidden}.tl-icon{font-weight:700}.tl-text{row-gap:1px}.tl-mop{font-family:IBM Plex Mono,monospace;font-weight:600}.tl-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 0;min-width:0;font-weight:500}.tl-scope{font-family:IBM Plex Mono,monospace;font-size:10.5px;opacity:.85;white-space:nowrap;flex-basis:100%}.tl-stripes{position:absolute;left:0;right:0;bottom:0;height:4px;display:flex;z-index:2}.tl-stripes i{flex:1}.tl-drag-tip{position:absolute;top:-26px;left:0;background:var(--text);color:var(--bg);font-size:11.5px;padding:3px 7px;border-radius:6px;white-space:nowrap;z-index:6}.tl-row:first-child .tl-drag-tip{top:auto;bottom:-26px}.agenda{display:flex;flex-direction:column;gap:14px}.agenda>.btn-ghost{align-self:flex-start}.agenda-day h3{font-size:13px;margin:0 0 6px;color:var(--text-dim);font-weight:600}.agenda-day h3.is-today{color:var(--accent)}.agenda-row{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px 10px 9px 0;margin-bottom:6px;overflow:hidden}.agenda-row:hover{border-color:var(--accent)}.agenda-row.done{opacity:.6}.agenda-row.overdue{border-color:var(--bad)}.agenda-bar{align-self:stretch;width:5px;margin:-9px 0;flex:none}.agenda-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.agenda-title{font-size:14px}.agenda-title b{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:12.5px}.agenda-sub{font-size:12px;color:var(--text-dim)}.task-title{font-size:18px;font-weight:600;line-height:1.3}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:4px 0;font-size:13.5px}.kv dt{color:var(--text-dim)}.kv dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px}.partner-tag{display:inline-flex;align-items:center;gap:5px}.detail-field.full{width:100%}.link-btn{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:7px 10px;font-size:13px}.link-btn span{font-size:11.5px;color:var(--text-dim)}.link-list li{display:flex;gap:6px;align-items:center}.link-add{display:grid;grid-template-columns:1fr 1fr 64px auto;gap:6px;margin-top:8px}.link-add select:first-child{grid-column:1 / -1}.note-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.note-meta{font-size:11.5px;color:var(--text-dim)}.note-text{font-size:13.5px;white-space:pre-line}.conflicts{background:var(--bad-soft);color:var(--bad);border-radius:10px;padding:10px 12px;font-size:13px}.conflicts ul{margin:6px 0 0;padding-left:18px}.change-list{list-style:none;margin:0;padding:0;max-height:46vh;overflow-y:auto;border:1px solid var(--border);border-radius:10px}.change-list li{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13px}.change-list li:last-child{border-bottom:0}.change-dates{white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:12px}.partner-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.partner-list li{display:flex;align-items:center;gap:10px}.partner-name{flex:1;font-size:14px}.import-summary{font-size:13px;display:flex;flex-direction:column;gap:6px}.import-summary ul{margin:6px 0 0;padding-left:18px;color:var(--text-dim);max-height:30vh;overflow-y:auto}@media (max-width: 640px){.sched-kpis{grid-template-columns:repeat(3,1fr);gap:6px}.sched-kpis .kpi{padding:8px 9px}.sched-kpis .kpi-n{font-size:19px}.sched-kpis .kpi-l{font-size:11px;line-height:1.25}.legend-key{display:none}}button,input,select,textarea{color:var(--text);font-family:inherit}select option,select optgroup{background:var(--surface);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-dim);opacity:1}.modal-card input,.modal-card select{color:var(--text)}.link-add .btn-ghost{white-space:nowrap}.create-account-btn{width:100%;margin:4px 0 14px}.partner-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.partner-card{display:flex;align-items:stretch;gap:12px;width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px 12px 10px 10px}.partner-card:hover{border-color:var(--accent)}.partner-color{width:8px;border-radius:4px;flex:none}.partner-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.partner-title{font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.partner-code{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;color:var(--text-dim);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.partner-scope{font-size:13px;white-space:pre-line}.partner-meta{font-size:12px;color:var(--text-dim)}.partner-chev{align-self:center;color:var(--text-dim);font-size:20px}.partner-form{grid-template-columns:2fr 1fr}.span-2{grid-column:span 1}.field-textarea{height:auto!important;padding:10px 12px!important;resize:vertical;line-height:1.4;font-size:14px}.modal-card textarea{width:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-family:inherit}.swatch-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.swatch-btn{width:30px;height:30px;border-radius:8px;border:2px solid transparent;color:#fff;font-size:18px;line-height:1;padding:0;box-shadow:inset 0 0 0 1px #00000026}.swatch-btn.on{border-color:var(--text);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.swatch-custom{display:inline-flex;width:30px;height:30px;border-radius:8px;overflow:hidden;border:1px dashed var(--text-dim)}.swatch-custom input[type=color]{width:44px!important;height:44px!important;margin:-7px}.swatch-preview{display:inline-flex;gap:6px;margin-left:auto}.swatch-preview .tl-task{margin:0;padding:5px 10px;font-size:12px;cursor:default}.modal-card .chip:disabled{opacity:.75;cursor:default}.chip.out-of-scope{opacity:.5;border-style:dashed}@media (max-width: 520px){.partner-form{grid-template-columns:1fr}.swatch-preview{margin-left:0}}.modal-card.xl>*{flex-shrink:0}table.pva{width:100%;border-collapse:collapse;font-size:13.5px}.pva th,.pva td{padding:6px;text-align:left;border-bottom:1px solid var(--border)}.pva thead th{font-size:12px;color:var(--text-dim);font-weight:600}.pva tbody th{font-size:12.5px;color:var(--text-dim);font-weight:600;white-space:nowrap;width:1%}.pva td .detail-field{height:36px;width:100%;padding:0 8px;font-size:13.5px}.pva tr:last-child th,.pva tr:last-child td{border-bottom:0}.var-tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;background:var(--surface-2);color:var(--text-dim)}.var-tag.late{background:var(--bad-soft);color:var(--bad)}.var-tag.early,.var-tag.ok{background:var(--good-soft);color:var(--good)}.tl-slip{color:inherit;font-family:IBM Plex Mono,monospace}.tl-task.solid .tl-slip{background:#00000059;border-radius:4px;padding:0 3px}.tl-task.fod .tl-slip{color:var(--bad)}.pva-view{display:flex;flex-direction:column;gap:10px}.pva-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.pva-summary div{display:flex;flex-direction:column;gap:2px}.pva-summary b{font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:600}.pva-summary span{font-size:12px;color:var(--text-dim)}table.pva-table{min-width:980px}.pva-table td{vertical-align:middle}.pva-table .num{font-family:IBM Plex Mono,monospace;font-size:12px;white-space:nowrap;text-align:left}.pva-table .num.dim{color:var(--text-dim);font-style:italic}.pva-task{min-width:200px}.pva-mop{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:12px}.pva-sub{display:block;font-size:11.5px;color:var(--text-dim)}.click-row{cursor:pointer}.click-row:hover td{background:var(--surface-2)}.click-row:focus-visible{outline:2px solid var(--accent)}.pva-table .partner-tag{margin-right:8px;white-space:nowrap}.tl-scope:has(.tl-slip){display:flex;gap:4px;overflow:hidden}.tl-scope .tl-slip{flex:none;margin-left:auto}.screen,.screen.wide{max-width:none}@media (min-width: 900px){header.topbar,.search-row,.select-row,.filter-wrap,main{padding-left:24px;padding-right:24px}.tabs{padding-left:24px;padding-right:24px;margin:0 -24px}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.asset-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:8px 12px;align-items:start}.asset-list>:not(.row):not(.project-row):not(.request-row){grid-column:1 / -1}}@media (min-width: 1800px){.asset-list{grid-template-columns:repeat(auto-fill,minmax(460px,1fr))}}.tl-day{justify-content:center}.sched-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg);padding:calc(10px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:8px}.sched-full .sched-bar,.sched-full .legend{flex:none}.full-title{font-weight:700;font-size:15px;margin-right:6px;white-space:nowrap}.sched-full .tl-scroll{flex:1;max-height:none;min-height:0}.sched-full .tl{min-height:100%;grid-auto-rows:auto;align-content:stretch}.sched-full .tl-rows{display:flex;flex-direction:column}.sched-full .tl-row{flex:1 1 auto;height:auto;min-height:54px;max-height:120px}.sched-full .tl-task{font-size:12.5px}.sched-full .tl-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.sched-full .tl-text{align-content:flex-start}@media (min-width: 1400px){.sched-full .tl{--lw: 150px}}@media (max-width: 640px){.sched-full .legend{max-height:64px;overflow-y:auto}.full-title{display:none}}@media (max-height: 520px){.sched-full{gap:6px;padding-top:calc(6px + env(safe-area-inset-top,0px));padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.sched-full .sched-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.sched-full .sched-bar>*{flex:none}.sched-full .legend,.sched-full .full-title{display:none}.sched-full .tl{grid-template-rows:20px 34px}.sched-full .tl-days{top:20px}.sched-full .tl-months{height:20px}.sched-full .tl-month{padding-top:3px}.sched-full .tl-row{min-height:46px}}@media (max-height: 520px){.sched-full .exit-full{order:-1}}.detail-id-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.diagrams{display:flex;flex-direction:column;gap:12px;padding:12px 0 40px}.seg-select{border:0;background:transparent;height:32px;padding:0 6px;font-size:13px;border-right:1px solid var(--border)}.dg-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px}.dg-legend-item{display:inline-flex;align-items:center;gap:6px}.dg-legend-item b{font-family:IBM Plex Mono,monospace;font-weight:500;color:var(--text-dim);font-size:11.5px}.dg-swatch{width:14px;height:14px;border-radius:4px;box-shadow:inset 0 0 0 1px #00000026}.dg-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;min-width:120px;flex:1;max-width:360px;background:var(--border)}.dg-bar.thin{height:4px;min-width:0;width:100%;max-width:none;flex:none;margin-top:4px;border-radius:2px}.dg-bar i{display:block;height:100%}.dg-site{display:flex;flex-direction:column;gap:12px}.dg-hall-head,.dg-loop-head,.dg-opti-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:10px}.dg-hall-head h2,.dg-loop-head h2,.dg-opti-head h2{margin:0}.dg-side{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;margin-top:6px}.dg-side-label{font-size:12px;color:var(--text-dim);font-weight:600}.dg-tiles{display:grid;grid-template-columns:repeat(13,minmax(54px,1fr));gap:6px;overflow-x:auto}.dg-tile{border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:6px 6px 5px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:56px;text-align:left}.dg-tile b{font-family:IBM Plex Mono,monospace;font-size:13px}.dg-tile span{font-size:10.5px;font-weight:600;opacity:.85}.dg-tile:hover:not(:disabled){outline:2px solid var(--text);outline-offset:1px}.dg-tile:disabled{opacity:.35}.dg-loops{display:flex;flex-direction:column;gap:12px}.dg-loop.focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dg-chain{display:flex;align-items:center;overflow-x:auto;padding:6px 2px 14px}.dg-src{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--text);border-radius:8px;padding:6px 8px;min-width:76px;background:var(--surface-2)}.dg-src b{font-family:IBM Plex Mono,monospace;font-size:12px}.dg-src span{font-size:10.5px;color:var(--text-dim)}.dg-unit-wrap{display:inline-flex;align-items:center;flex:none}.dg-unit{position:relative;width:62px;height:46px;border-radius:8px;border:1px solid rgba(0,0,0,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0}.dg-unit b{font-family:IBM Plex Mono,monospace;font-size:12.5px}.dg-unit span{font-size:10px;font-weight:600;opacity:.85}.dg-unit.untracked{background:var(--surface-2);border-style:dashed;color:var(--text-dim)}.dg-unit:hover:not(:disabled){outline:2px solid var(--text);outline-offset:1px}.dg-feed{position:absolute;bottom:-15px;font-style:normal;font-size:10px;font-weight:700;color:var(--text-dim)}.dg-feed.S{color:var(--accent)}.dg-seg{flex:none;display:inline-block;width:22px;height:4px;background:var(--border);border:0;padding:0;border-radius:2px}.dg-seg.live{background:#2fae62}.dg-gap{height:18px;background:linear-gradient(var(--border),var(--border)) center / 100% 4px no-repeat;border-radius:0}.dg-gap.live{background:linear-gradient(#2fae62,#2fae62) center / 100% 4px no-repeat}.dg-gap:hover:not(:disabled){background-color:var(--accent-soft)}.dg-gap:disabled{cursor:default}.dg-open{flex:none;width:34px;height:22px;border:2px dashed var(--bad);color:var(--bad);background:var(--surface);border-radius:6px;font-size:9.5px;font-weight:700;padding:0;margin:0 2px}.dg-opti-head>div:first-child{display:flex;flex-direction:column;gap:2px;margin-right:auto}.link-inline{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;font:inherit}.dg-svg-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);max-height:calc(100vh - 200px)}.dg-svg-wrap.fit{max-height:none}.dg-svg{display:block}.dg-zone{fill:none;stroke:var(--border);stroke-width:1.5;stroke-dasharray:6 4}.dg-zone.opti{fill:color-mix(in srgb,var(--surface-2) 70%,transparent);stroke:var(--text-dim)}.dg-zone-label{font-size:11px;font-weight:600;fill:var(--text-dim);font-family:IBM Plex Sans,sans-serif}.dg-wire{fill:none;stroke:var(--text-dim);stroke-width:1.6}.dg-wire.live{stroke:#2fae62;stroke-width:2.4}.dg-wire.dashed{stroke-dasharray:5 4}.dg-node{cursor:pointer}.dg-node-box{stroke:#00000040;stroke-width:1}.dg-node:hover .dg-node-box,.dg-node:focus .dg-node-box{stroke:var(--text);stroke-width:2}.dg-node:focus{outline:none}.dg-node-id{font:600 11.5px IBM Plex Mono,monospace}.dg-node-desc{font:400 11px IBM Plex Sans,sans-serif;opacity:.9}.dg-node-lvl{font:700 10px IBM Plex Sans,sans-serif}.no-markup .dg-node-box{stroke:var(--text)}.no-markup .dg-tile,.no-markup .dg-unit{border-color:var(--text)}.print-only{display:none}@media print{@page{size:landscape;margin:10mm}body{background:#fff!important}header.topbar,.tabs,.dock,.no-print,.toast{display:none!important}.print-only{display:block;font-size:13px;font-weight:600}main{padding:0!important}.card{break-inside:avoid;box-shadow:none}.dg-svg-wrap{max-height:none;overflow:visible;border:0}.dg-svg{width:100%!important;height:auto!important}.dg-chain,.dg-tiles{overflow:visible;flex-wrap:wrap}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.dg-zone-strip.opti,.dg-zone-strip-key.opti{fill:#3c4650;background:#3c4650}.dg-zone-strip.gallery,.dg-zone-strip-key.gallery{fill:#2f66c9;background:#2f66c9}.dg-zone-strip.hall,.dg-zone-strip-key.hall{fill:#b42357;background:#b42357}.dg-zone-key{display:inline-flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--text-dim)}.dg-zone-key span{display:inline-flex;align-items:center;gap:5px}.dg-zone-strip-key{display:inline-block;width:5px;height:14px;border-radius:2px}.dg-zone-strip.house,.dg-zone-strip-key.house{fill:#8a5a00;background:#8a5a00}.dg-house-mains{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}.dg-tile.wide{min-height:46px}.mops{display:flex;flex-direction:column;gap:12px;padding:12px 0 40px}.search-input.sm{height:34px;font-size:13px;padding:0 10px;width:240px;max-width:100%}.mop-banner{text-align:left;border:1px solid var(--accent);background:var(--accent-soft);color:var(--text);border-radius:10px;padding:10px 14px;font-weight:600}.mop-list{display:flex;flex-direction:column;gap:6px}.mop-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.mop-row:hover{border-color:var(--accent)}.mop-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mop-num{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:13px}.mop-num small{font-weight:400;color:var(--text-dim);margin-left:6px}.mop-title{font-size:14.5px}.mop-sub{font-size:12px;color:var(--text-dim)}.mop-ck{display:inline-flex;gap:4px}.mop-ck i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--border)}.mop-ck i.on{background:var(--good);border-color:var(--good)}.opti-chips{display:grid;grid-template-columns:repeat(13,minmax(34px,1fr));gap:4px}.opti-chips .chip{padding:6px 0;text-align:center;font-family:IBM Plex Mono,monospace}.opti-chips .chip:disabled{opacity:.35}@media (max-width: 640px){.opti-chips{grid-template-columns:repeat(7,1fr)}}.mop-editor{display:flex;flex-direction:column;gap:12px;padding:12px 0 60px}.mop-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mop-head-title{display:flex;flex-direction:column;flex:1;min-width:0}.mop-head-title b{font-family:IBM Plex Mono,monospace}.mop-head-title span{font-size:15px}.mop-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}@media (max-width: 960px){.mop-layout{grid-template-columns:1fr}.mop-side{order:-1}}.mop-body{display:flex;flex-direction:column;gap:12px;min-width:0}.mop-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}.mop-sec h2{display:flex;align-items:center;gap:8px}.mop-steps{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}.mop-steps li{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:start}.mop-stepno{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--text-dim);padding-top:7px}.mop-steptext{font-size:13.5px;white-space:pre-line;padding:5px 0;grid-column:2 / -1;border-bottom:1px solid var(--border)}.mop-text{width:100%;resize:vertical;min-height:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:6px 8px;font:13.5px/1.4 IBM Plex Sans,sans-serif;overflow:hidden}.mop-stepbtns{display:inline-flex;gap:2px;padding-top:3px}.mop-ro{height:auto!important;min-height:42px;padding:10px 12px!important;white-space:pre-line}.mop-risk{width:100%;border-collapse:collapse}.mop-risk th{text-align:left;font-size:12.5px;color:var(--text-dim);width:90px;padding:4px 8px 4px 0}.mop-risk td{padding:3px 0}.mop-check{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}.mop-check li{display:flex;gap:10px;align-items:flex-start;color:var(--text-dim)}.mop-check li.done{color:var(--text)}.mop-check li span:last-child{display:flex;flex-direction:column;font-size:13.5px}.mop-check small{font-size:11.5px;color:var(--text-dim)}.mop-check-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}.mop-check li.done .mop-check-dot{background:var(--good);border-color:var(--good);color:#fff}.mop-actions{display:flex;flex-direction:column;gap:6px}.mop-files,.mop-history{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:6px}.mop-files li{display:flex;gap:6px;align-items:center}.mop-history li{font-size:12.5px;color:var(--text-dim)}.mop-history b{color:var(--text)}.link-btn.static{cursor:default}.file-btn{display:inline-flex;align-items:center;cursor:pointer}.btn-danger.sm{height:34px;font-size:13px;width:auto;padding:0 12px}.tabs{overflow-x:auto;scrollbar-width:none;white-space:nowrap}.tabs::-webkit-scrollbar{display:none}.tab{flex:none}@media (max-width: 520px){.tab{padding:10px 11px}}.mops>.sched-bar>.seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.mops>.sched-bar>.seg button{white-space:nowrap;flex:none}@media (max-width: 640px){.mop-row{flex-wrap:wrap}.mop-main{flex-basis:100%}}.fte-picker{display:flex;flex-direction:column;gap:8px}.fte-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fte-list{list-style:none;margin:0;padding:6px;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:2px}.fte-list .check-inline,.fte-tree .check-inline{white-space:normal;color:var(--text)}.fte-list b,.fte-tree b{font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:600}.fte-meta{font-size:11.5px;color:var(--text-dim);margin-left:6px}.fte-tree,.fte-tree ul{list-style:none;margin:0;padding-left:18px;border-left:1px dashed var(--border)}.fte-tree{padding-left:4px;border:0;max-height:260px;overflow-y:auto}.fte-tree li{padding:2px 0}.needs-input{border-color:var(--accent);background:var(--accent-soft)}.needs-input ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13.5px}.needs-input li{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.mop-data{margin-top:10px}.mop-data summary{font-size:12.5px;font-weight:600;color:var(--text-dim);cursor:pointer;margin-bottom:8px}.detail-id-actions{display:inline-flex;gap:6px;flex-wrap:wrap}.dg-open{width:40px;height:30px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;font-family:IBM Plex Mono,monospace;font-size:10px;border-style:solid}.dg-open i{font-style:normal;font-size:8.5px;letter-spacing:.04em}.dg-gap.end{width:30px}.dg-gap.normal{background-image:linear-gradient(var(--border),var(--border)),radial-gradient(circle,var(--text-dim) 1.4px,transparent 1.6px);background-size:100% 4px,6px 6px;background-position:center,center;background-repeat:no-repeat,repeat-x}.dg-gap.normal.live{background-image:linear-gradient(#2fae62,#2fae62),radial-gradient(circle,var(--text-dim) 1.4px,transparent 1.6px)}.dg-gap:not(:disabled){cursor:pointer}.dg-break-tag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2)}.dg-break-tag.normal{color:#1e7a44;background:#2fae6224}.dg-break-tag.moved{color:#8a5a00;background:#e6a0142e}.dg-break-tag.unset{color:var(--text-dim)}.dg-normal-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;font-size:13.5px}.dg-break-pick{border:0;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:6px}.loop-moves{display:flex;flex-direction:column;gap:10px}.loop-move{display:grid;grid-template-columns:64px 1fr 1fr auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--border);border-radius:10px}.loop-move .sub{grid-column:1 / -1;margin:0}@media (max-width: 640px){.loop-move{grid-template-columns:1fr}}.dg-feed-table{margin-bottom:12px}.dg-feed-table h2{font-size:16px;margin:0 0 8px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.dg-feed-table table{width:100%;border-collapse:collapse;font-size:13px}.dg-feed-table th,.dg-feed-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:top}.dg-feed-table th{font-size:11.5px;color:var(--text-dim);font-weight:600}.dg-pick{display:inline-flex;align-items:center;gap:6px}.dg-pick .field-label{margin:0}.dg-mv{display:flex;flex-wrap:nowrap;align-items:center;gap:0;overflow-x:auto}.dg-mv-path,.dg-mv-branch{display:flex;align-items:center;flex:none}.dg-mv-path{align-self:center}.dg-mv-branches{display:flex;flex-direction:column;gap:18px;padding:6px 0}.dg-mv-box{flex:none;min-width:92px;min-height:52px;padding:4px 8px;border-radius:8px;border:1px solid rgba(0,0,0,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.dg-mv-box b{font-family:IBM Plex Mono,monospace;font-size:12px}.dg-mv-box span{font-size:10.5px;opacity:.9}.dg-mv-box em{font-style:normal;font-size:10px;font-weight:700;opacity:.85}.dg-mv-box.untracked{background:var(--surface-2);border-style:dashed;color:var(--text-dim)}.dg-mv-units{display:flex;align-items:center;flex-wrap:nowrap}.dg-mv-loop{font-weight:700;margin:0 6px}.dg-mv-end{margin-left:4px;font-family:IBM Plex Mono,monospace;font-size:12px;white-space:nowrap}.dg-unit.away{opacity:.4}span.dg-open{display:inline-flex}.dg-tie-line{flex:none;min-width:70px;height:22px;border:0;background:repeating-linear-gradient(90deg,var(--text-dim) 0 6px,transparent 6px 10px) center / 100% 3px no-repeat;font-size:10.5px;font-weight:700;color:var(--text-dim);padding:0 6px}.dg-tie-line.closed{background:linear-gradient(var(--text),var(--text)) center / 100% 4px no-repeat;color:var(--text)}.dg-tie-line.unknown{color:var(--warn, #8A5A00)}.dg-mv-tie{padding-bottom:6px;border-bottom:1px dashed var(--border)}.dg-pair-loops{margin:8px 0 0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:3px}.dg-node-dead{fill:none;stroke:#c62828;stroke-width:2.5;stroke-dasharray:5 3}.dg-node-deadmark{fill:#c62828;font-size:10px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px}.dg-checks-btn.bad{color:#fff;background:#c62828;border-color:#c62828}.dg-checks-btn.warn{color:#8a5a00;border-color:#e6a014}.dg-checks-btn.good{color:#1e7a44}.dg-checks{display:flex;flex-direction:column;gap:10px}.dg-check{border-left:4px solid #E6A014}.dg-check.error{border-left-color:#c62828}.dg-check-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.dg-check-head h3{margin:0;font-size:15px}.dg-check-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8a5a00}.dg-check.error .dg-check-badge{color:#c62828}.dg-check .sub{margin:6px 0}.btn-row.left{justify-content:flex-start;flex-wrap:wrap}.dg-check-assets{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:12px}.dg-checks-empty h2{margin:0 0 6px;font-size:17px;color:#1e7a44}.dg-unit.dead{outline:2.5px dashed #C62828;outline-offset:2px}.dg-impact{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;border-left:4px solid #C62828;font-size:13.5px}.dg-node-lost{fill:none;stroke:#c62828;stroke-width:4}.dg-unit.lost,.dg-mv-box.lost{box-shadow:0 0 0 3px #c62828}.dg-log{display:flex;flex-direction:column;gap:12px}.dg-log-table{width:100%;border-collapse:collapse;font-size:13px}.dg-log-table th,.dg-log-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}.dg-log-table th{font-size:11.5px;color:var(--text-dim);font-weight:600}.dg-log-table tr.removed{color:var(--text-dim)}.dg-loto-add{display:grid;grid-template-columns:2fr 90px 1fr 2fr auto auto;gap:8px;margin:8px 0 12px}@media (max-width: 760px){.dg-loto-add{grid-template-columns:1fr}}.dg-save-opts{display:flex;flex-direction:column;gap:8px;margin:10px 0;padding:10px;border:1px solid var(--border);border-radius:10px}.dg-asof{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;border-left:4px solid #6FA8DC}.ready-panel{margin-bottom:12px}.ready-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ready-head h2{margin:0;font-size:16px;color:var(--text)}.ready-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}.ready-list li{padding:8px 0;border-top:1px solid var(--border)}.ready-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-head{margin:4px 0 12px}.report-head h2{margin:0;font-size:20px}.report-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:12px}.report-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 12px}.report-kpi b{font-size:20px;font-family:IBM Plex Mono,monospace}.report-kpi span{font-size:12px;color:var(--text-dim)}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.report-sec h3{margin:0 0 6px;font-size:15px}.report-sec ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}@media print{.report-grid{grid-template-columns:1fr 1fr}.report-sec{break-inside:avoid}}.sticky-bar{position:sticky;top:var(--topbar-h, 0px);z-index:15;background:var(--bg);padding-top:8px;padding-bottom:8px}@media print{.sticky-bar{position:static}}.lock-icon{vertical-align:-2px;flex:none}.lock-badges{display:inline-flex;gap:2px;margin-left:4px;vertical-align:middle}.dg-unit .lock-badges,.dg-mv-box .lock-badges{position:absolute;top:-7px;right:-6px;margin:0;background:var(--surface);border-radius:4px;padding:1px}.dg-mv-box{position:relative}.loto-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}.loto-row span{flex:1}.loto-add{display:flex;flex-direction:column;gap:6px;margin-top:6px}.brand-logo{flex:none;display:block;border-radius:50%}.brand-with-logo{display:flex;align-items:center;gap:10px}.auth-logo{display:flex;justify-content:center;margin-bottom:6px}@media (max-width: 480px){.brand-name-row .brand-logo{width:32px;height:32px}}.cr-controls{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:12px}.cr-field{display:flex;flex-direction:column;gap:3px;min-width:150px}.cr-field select{min-height:34px}.cr-template{min-width:260px;flex:1 1 260px}.cr-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.cr-table{width:100%;border-collapse:collapse;font-size:13px}.cr-table th,.cr-table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.cr-table th:first-child,.cr-table td:first-child{text-align:left}.cr-table th{font-size:11.5px;color:var(--text-dim);font-weight:600}.cr-table td.zero{color:var(--text-dim)}.cr-table tr.cr-list td{text-align:left;background:var(--surface-2);white-space:normal}@media print{.cr-table{font-size:11px}}.project-info{display:flex;flex-direction:column;gap:12px}.pi-sec h2{margin:0 0 6px;font-size:16px}.pi-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13.5px}.pi-table th{text-align:left;font-size:11.5px;color:var(--text-dim);font-weight:600;padding:4px 6px}.pi-table td{padding:4px 6px;vertical-align:middle}.pi-table td .field-input,.pi-table td select{width:100%;min-width:80px}@media (max-width: 640px){.pi-table th:nth-child(3),.pi-table td:nth-child(3){display:none}}.fte-optis{display:flex;flex-direction:column;gap:4px;margin:6px 0}.fte-optis .chip{font-family:IBM Plex Mono,monospace;padding:4px 9px;font-size:12.5px}.fte-tree .select.xs{font-size:11.5px;padding:1px 4px;margin-right:4px}.fte-tree li.fte-off>b{opacity:.45;text-decoration:line-through}.mop-row-wrap{display:flex;align-items:center;gap:8px}.mop-row-wrap .mop-row{flex:1;min-width:0}.work-pill{flex:none;width:118px;font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 10px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:center}select.work-pill{cursor:pointer}.work-pill.unset{color:var(--muted, #777);font-weight:500;border-style:dashed}.work-pill.ready{background:#e3eefb;border-color:#1e63c6;color:#134a97}.work-pill.progress{background:#fff1dd;border-color:#e07b00;color:#8a4b00}.work-pill.complete{background:#e2f4e6;border-color:#2e7d32;color:#1b5e20}.work-pill.hold{background:#f3e8fa;border-color:#7b3fa0;color:#5b2a78}.work-pill.cancelled{background:#eee;border-color:#999;color:#555;text-decoration:line-through}.upload-table{margin:8px 0}.upload-table tr.muted td{opacity:.6}@media (max-width: 640px){.mop-row-wrap{flex-wrap:wrap}.work-pill{width:100%}}.select.xs.needs-pick{border-color:#e07b00;box-shadow:0 0 0 1px #e07b00 inset}.sel-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin:6px 0;border:1px solid var(--accent);border-radius:10px;background:var(--surface)}.sel-bar .sel-n{width:64px}.sel-bar .sel-date{width:150px}.tl-task.selected{outline:3px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent);z-index:2}:root{--off-nonwork: #E3E5E8;--off-nonwork-ink: #5B6570;--off-holiday: #DCEBFB;--off-holiday-ink: #1E5AA8}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--off-nonwork: #2E3238;--off-nonwork-ink: #A9B1BB;--off-holiday: #1B3350;--off-holiday-ink: #9CC7F5}}:root[data-theme=dark]{--off-nonwork: #2E3238;--off-nonwork-ink: #A9B1BB;--off-holiday: #1B3350;--off-holiday-ink: #9CC7F5}.tl-day.off.nonwork{background:var(--off-nonwork)}.tl-day.off.holiday{background:var(--off-holiday);color:var(--off-holiday-ink)}.tl-day.off.holiday b{color:var(--off-holiday-ink)}.tl-cell.off.nonwork{background:var(--off-nonwork)}.tl-cell.off.holiday{background:var(--off-holiday)}.tl-day.clickable{cursor:pointer}.tl-day.clickable:hover{outline:2px solid var(--accent);outline-offset:-2px}.off-key{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:600}.off-key.nonwork{background:var(--off-nonwork);color:var(--off-nonwork-ink)}.off-key.holiday{background:var(--off-holiday);color:var(--off-holiday-ink)}.week-off{margin:4px 0}.holiday-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 12px;margin:6px 0}.tl-day.today.off{background:var(--accent);color:var(--accent-ink)}.tl-day.today.off b{color:var(--accent-ink)}
