:root{--bg:#f6f5f2;--surface:#fff;--surface-sunken:#f9f9f7;--surface-hover:#f3f5f9;--border:#e6e8ed;--border-strong:#cfd3dc;--text:#14233a;--text-soft:#34445e;--muted:#5f6b7d;--brand-navy:#0b2643;--brand-orange:#f26a1b;--primary:#2459c4;--primary-hover:#1d4aa6;--primary-soft:#eaf0fc;--primary-soft-border:#b9cbf2;--accent:var(--primary);--accent-soft:var(--primary-soft);--success:#0e7a5c;--success-soft:#e3f4ec;--success-border:#a9dcc6;--warning:#9a5b00;--warning-soft:#fff3dc;--warning-border:#f1cf8a;--warning-fill:#e59a1b;--danger:#b42318;--danger-soft:#fdecea;--danger-border:#f3b8b1;--info:var(--primary);--info-soft:var(--primary-soft);--neutral-soft:#eef0f4;--error:var(--danger);--order-bg:#f2f5fa;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-pill:999px;--shadow-sm:0 1px 1px #0b26430a;--shadow-md:0 1px 3px #0b26430f, 0 4px 12px #0b26430f;--shadow-lg:0 8px 28px #0b264324;--focus-ring:0 0 0 3px #2459c447;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "tnum" 0;--overlay-bg:#fff;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.4}*{box-sizing:border-box}body{background:var(--bg);margin:0}@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){:root{--overlay-bg:#fffffff0;--overlay-blur:blur(8px)}}@media (prefers-reduced-transparency:reduce){:root{--overlay-bg:#fff;--overlay-blur:none}}button{font:inherit;color:var(--text-soft);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;min-height:32px;padding:6px 12px;font-weight:500;line-height:1.2;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}button:hover:not(:disabled){background:var(--surface-hover);border-color:#bfc5d1}button:disabled{opacity:.55;cursor:default}button.active,button[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary-soft-border);color:var(--primary-hover)}button.primary,button[type=submit]:not(.secondary){background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}button.primary:hover:not(:disabled),button[type=submit]:not(.secondary):hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.danger{background:var(--surface);border-color:var(--danger-border);color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}button.link{color:var(--primary);min-height:0;box-shadow:none;background:0 0;border:none;padding:0;font-weight:500}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--focus-ring);border-color:var(--primary);outline:none}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);min-height:32px;padding:6px 10px;transition:border-color .12s,box-shadow .12s}input[type=checkbox],input[type=radio]{width:15px;height:15px;min-height:0;accent-color:var(--primary)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#b4bbc8}input:disabled,select:disabled,textarea:disabled{background:var(--surface-sunken);color:var(--muted)}label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:500;display:flex}label.check{color:var(--text-soft);flex-direction:row;align-items:center;gap:6px;font-weight:400}fieldset{border:1px solid var(--border);border-radius:var(--r-md)}legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:600}.error{color:var(--danger)}.info{color:var(--text)}.muted{color:var(--muted)}.hint{color:var(--muted);margin:0;font-size:12px}.saved{color:var(--success);margin:0}p[role=alert].error,p[role=status].saved{border-radius:var(--r-md);margin:0;padding:8px 12px}p[role=alert].error{background:var(--danger-soft);border:1px solid var(--danger-border)}p[role=status].saved{background:var(--success-soft);border:1px solid var(--success-border)}.centered{text-align:center;color:var(--muted);margin-top:20vh}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chips{flex-wrap:wrap;gap:4px;display:inline-flex}.chip{white-space:nowrap;border-radius:var(--r-pill);border:1px solid #0000;align-items:center;gap:2px;padding:0 8px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.chip-suffix{opacity:.8;font-style:italic;font-weight:400}.chip-neutral{background:var(--neutral-soft);color:var(--text-soft)}.chip-muted{color:var(--muted);border-color:var(--border);background:0 0}.chip-info{background:var(--info-soft);color:var(--primary-hover)}.chip-success{background:var(--success-soft);color:var(--success)}.chip-warning{background:var(--warning-soft);color:var(--warning)}.chip-danger{background:var(--danger);color:#fff}.chip-danger-soft{background:var(--danger-soft);color:var(--danger)}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);max-width:400px;box-shadow:var(--shadow-md);margin:10vh auto;padding:28px 32px 32px}.auth-logo{width:200px;height:auto;margin:0 auto 16px;display:block}.auth-card h1{letter-spacing:.02em;color:var(--muted);text-align:center;margin:0 0 4px;font-size:13px;font-weight:600}.auth-card h2{text-align:center;margin:0 0 20px;font-size:20px;font-weight:650}.auth-card form{flex-direction:column;gap:14px;display:flex}.auth-card form button[type=submit]{min-height:38px}.app-header{background:var(--surface);border-bottom:1px solid var(--border);min-height:56px;box-shadow:var(--shadow-sm);z-index:3;box-sizing:border-box;align-items:center;gap:16px;width:100%;padding:8px 20px;display:flex;position:relative}.app-header:after{content:"";background:var(--brand-orange);opacity:.9;pointer-events:none;width:100%;height:2px;position:absolute;bottom:-1px;left:0;right:0}.brand{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{flex:none;width:30px;height:auto}.brand-text{border-left:1px solid var(--border);flex-direction:column;min-width:0;padding-left:10px;display:flex}.brand-company{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-navy);font-size:11px;font-weight:700}.app-header h1{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:650;overflow:hidden}.user-chip{align-items:center;gap:8px;display:flex}.avatar{background:var(--primary-soft);width:30px;height:30px;color:var(--primary-hover);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.user-text{flex-direction:column;line-height:1.2;display:flex}.user-name{font-size:13px;font-weight:600}.user-roles{color:var(--muted);font-size:11px}@media (width<=700px){.app-header{flex-wrap:wrap;gap:8px 12px;padding:8px 12px}.brand{flex:100%}.app-nav{border-radius:var(--r-lg);flex-wrap:wrap;max-width:100%}.user-chip{flex:100%;min-width:0}.user-text{overflow-wrap:anywhere;min-width:0}}.register-page{flex-direction:column;gap:12px;padding:16px 20px 24px;display:flex}.filter-bar{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:1280px;box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:12px 14px;display:flex}.filter-primary{flex-wrap:wrap;align-items:flex-end;gap:12px 10px;display:flex}.filter-primary .planned-dates{border-top:1px solid var(--border);flex:100%;order:10;padding-top:12px}.filter-primary .search{flex:0 420px;min-width:min(100%,240px)}.filter-more{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding-top:10px;display:flex}.filter-more[hidden]{display:none}.filter-summary{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.filter-summary .chip{padding-right:2px}.chip-remove{box-shadow:none;border-radius:var(--r-pill);min-height:0;color:inherit;background:0 0;border:none;padding:0 6px;font-size:14px;line-height:18px}.chip-remove:hover:not(:disabled){background:var(--primary-soft-border)}.filter-bar .search input{box-sizing:border-box;background:var(--surface) no-repeat 10px 50% / 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6b7d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");width:100%;padding-left:30px}.filter-bar label.check{min-height:32px}.filter-bar .clear-filters{margin-left:6px}.planned-dates{flex-wrap:wrap;flex:auto;align-items:center;gap:10px 20px;min-width:0;display:flex}.planned-dates .planned-label{color:var(--muted);font-size:12px;font-weight:500}.planned-dates .chips{flex-wrap:wrap;gap:6px;display:flex}.planned-dates .chip{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border-strong);min-height:30px;color:var(--text-soft);padding:4px 12px;font-weight:500}.planned-dates .chip:hover:not(.active){background:var(--surface-hover)}.planned-dates .chip.active,.planned-dates .chip[aria-pressed=true]{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}.planned-dates .chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.planned-custom{border-left:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding-left:20px;display:flex}.planned-custom label{color:var(--muted);flex-direction:row;align-items:center;gap:6px;font-size:12px;display:inline-flex}.planned-custom input[type=date]{width:9.5rem;max-width:100%;min-height:30px}.planned-custom button{min-height:30px}.planned-range{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-soft);font-variant-numeric:tabular-nums;font-size:12px;overflow:hidden}.planned-pending{color:var(--warning);white-space:nowrap;font-size:12px}.planned-error{min-width:0;color:var(--danger);font-size:12px}.summary-bar{grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:10px;display:grid}.summary-bar .count-button,.summary-bar>span{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);color:var(--muted);flex-direction:column;align-items:flex-start;gap:2px;min-height:0;padding:10px 14px;font-size:12px;font-weight:500;display:flex;position:relative;overflow:hidden}.summary-bar .count-button:before{content:"";background:var(--border-strong);width:3px;position:absolute;top:0;bottom:0;left:0}.summary-bar .count-button:nth-child(2):before{background:#9aa4b5}.summary-bar .count-button:nth-child(3):before{background:var(--primary)}.summary-bar .count-button:nth-child(4):before{background:var(--success)}.summary-bar .count-button:nth-child(5):before{background:var(--danger)}.summary-bar b{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:700}.summary-bar .count-button:hover:not(:disabled){background:var(--surface);border-color:var(--primary-soft-border)}.summary-bar .count-button.active,.summary-bar .count-button[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover);box-shadow:0 0 0 1px var(--primary) inset}.summary-bar .count-button:nth-child(5)[aria-pressed=true]{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset}.toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.toolbar>span:first-child{color:var(--muted);font-size:12px;font-weight:500}.toolbar .muted{margin-left:auto;font-size:12px}.export-csv{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.column-picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-wrap:wrap;gap:10px 14px;padding:10px 14px;display:flex}.table-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow-x:auto}table.register{border-collapse:separate;border-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums;width:100%}table.register th,table.register td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:6px 10px}table.register td{background:var(--surface)}table.register th{z-index:1;background:var(--surface-sunken);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600;position:sticky;top:0}table.register tbody tr:hover td{background:#f7f9fd}table.register tbody tr:last-child td{border-bottom:none}tr.order-row td{background:var(--order-bg);border-top:1px solid var(--border);font-weight:600}tr.order-row:hover td{background:#eaf0f8!important}tr.context td{color:var(--muted)}.name-cell{align-items:center;gap:4px;display:flex}.expander{border-radius:var(--r-sm);width:22px;height:22px;min-height:0;color:var(--muted);background:0 0;border:none;padding:0}.expander:hover:not(:disabled){background:var(--neutral-soft)}.expander-space{width:22px;display:inline-block}.calculated{font-style:italic}.proposed{color:var(--muted);font-style:italic}td.empty{text-align:center;color:var(--muted);padding:32px}button.more{align-self:flex-start}button.name-link{color:var(--text);text-align:left;font-weight:500}button.name-link:hover:not(:disabled){color:var(--primary)}tr.selected td{background:var(--primary-soft)!important}tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.timeline-link{margin-left:10px;font-size:12px}.drag-handle{border-radius:var(--r-sm);width:18px;height:22px;min-height:0;color:var(--muted);cursor:grab;touch-action:none;background:0 0;border:none;padding:0;line-height:1}.drag-handle:hover:not(:disabled){background:var(--neutral-soft);color:var(--text)}.drag-handle:focus-visible{box-shadow:var(--focus-ring);outline:none}.drag-handle.dragging{cursor:grabbing;background:var(--primary-soft);color:var(--primary)}tr.drop-over td{background:var(--primary-soft)!important}tr.drop-before td{box-shadow:inset 0 3px 0 var(--primary)}tr.drop-after td{box-shadow:inset 0 -3px 0 var(--primary)}tr.drop-refused td{background:var(--danger-soft)!important}@media (width>=1100px){.planned-dates{flex-wrap:nowrap;flex:1 1 0;min-width:34rem}.planned-dates>*{flex-shrink:0}.planned-dates>.planned-range,.planned-dates>.planned-error{flex-shrink:1}.planned-custom{flex-wrap:nowrap}}.expander,.drag-handle,.menu-button{position:relative}.expander:after,.drag-handle:after,.menu-button:after{content:"";position:absolute;inset:-4px}@media (pointer:coarse){.expander,.drag-handle,.menu-button{width:44px;height:44px}.expander-space{width:44px}.menu .menu-item,.menu [role=menuitem]{min-height:44px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}@media (width<=500px){.register-scroll .name-cell{max-width:calc(100vw - 110px)}.register-scroll .name-cell>button.name-link,.register-scroll .name-cell>span:not(.action-menu):not(.expander-space){text-overflow:ellipsis;min-width:0;overflow:hidden}}@media (width<=1099px){.planned-custom{border-left:none;padding-left:0}}.register-with-panel{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:14px;display:grid}.activity-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:12px;max-height:calc(100vh - 24px);padding:16px;display:flex;position:sticky;top:12px;overflow-y:auto}.activity-panel header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:10px;display:flex}.activity-panel h2{margin:2px 0 0;font-size:16px;font-weight:650}.activity-panel h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 0 2px;font-size:12px;font-weight:600}.activity-panel header button[aria-label=Close\ details]{border-radius:var(--r-md);border:none;width:28px;min-height:28px;padding:0}.activity-form{flex-direction:column;gap:10px;display:flex}.activity-form label.changed{color:var(--primary)}.activity-form label.changed input,.activity-form label.changed select,.activity-form label.changed textarea{border-color:var(--primary);background:var(--primary-soft)}.activity-form .actions{gap:8px;display:flex}.conflict{border:1px solid var(--danger-border);background:var(--danger-soft);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:10px;display:flex}.conflict table{border-collapse:collapse;font-size:12px}.conflict td,.conflict th{border-bottom:1px solid var(--danger-border);text-align:left;padding:2px 6px}.history{flex-direction:column;gap:6px;margin:0;padding-left:16px;display:flex}.request{border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:4px;padding:8px 10px;display:flex}.open-request{border-color:var(--primary-soft-border);background:var(--primary-soft)}.request-form{border-top:1px solid var(--border);padding-top:10px}details summary{cursor:pointer;color:var(--muted);font-size:12px}.open-blocker{border-color:var(--danger-border);background:var(--danger-soft)}.bulk-bar{z-index:2;background:var(--surface);border:1px solid var(--primary-soft-border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);flex-direction:column;gap:8px;padding:12px 14px;display:flex;position:sticky;bottom:12px}.bulk-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.bulk-preview,.bulk-result{font-size:13px}.bulk-preview .actions,.bulk-result .actions{gap:8px;display:flex}.bulk-result.partial{color:var(--danger)}ul.skipped{max-height:160px;margin:4px 0;padding-left:18px;overflow-y:auto}.timeline{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:12px 16px}.timeline-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timeline-head h2{flex:1;margin:0;font-size:15px;font-weight:650}.timeline-head button[aria-label=Close\ timeline]{border:none;width:28px;padding:0}.legend{color:var(--text-soft);background:var(--surface-sunken);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;padding:6px 10px;font-size:12px;display:flex}.swatch{border-radius:3px;width:18px;height:8px;display:inline-block}.timeline-scroll{border-top:1px solid var(--border);max-height:60vh;overflow:auto}.timeline svg{font-family:inherit;font-size:11px}.row-bg{fill:#0000}.trow{cursor:pointer}.trow:hover .row-bg,.trow:focus .row-bg{fill:var(--primary-soft)}.trow.selected .row-bg{fill:var(--primary-soft);stroke:var(--primary)}.trow:focus{outline:none}.row-label{fill:var(--text)}.row-label.calculated{font-style:italic}.bar-planned{fill:#8fb0e8;background:#8fb0e8}.bar-proposed{fill:#0000;stroke:#6f97dd;stroke-dasharray:3 2;background:repeating-linear-gradient(90deg,#6f97dd 0 3px,#0000 3px 5px)}.bar-forecast{fill:var(--warning-fill);background:var(--warning-fill)}.bar-actual{fill:var(--success);background:var(--success)}.trow.delayed .bar-planned{fill:#e9a49c}.line-contract{stroke:var(--danger);stroke-width:2px;stroke-dasharray:6 3;background:var(--danger)}.line-today{stroke:var(--text);stroke-width:1px;stroke-dasharray:2 3;background:var(--text)}.line-label{fill:var(--danger);font-weight:600}.tick{stroke:var(--border)}.tick-label{fill:var(--muted)}.flag-text{fill:var(--danger);font-size:10px}.dep{fill:none;stroke:#8a93a3;stroke-width:1px}.dep.conflict{stroke:var(--danger)}.dep-head{fill:#8a93a3}.order-setup,.add-work{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.order-setup{border-top:3px solid var(--primary)}.add-work{border-color:var(--primary-soft-border);box-shadow:var(--shadow-sm);background:#fbfcfe}.setup-head{align-items:center;gap:10px;display:flex}.setup-head h2{flex:1;margin:0;font-size:16px;font-weight:650}.setup-head .muted{font-size:12px}.setup-steps{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-pill);flex-wrap:wrap;gap:6px;width:fit-content;padding:4px;display:flex}.setup-steps button{border-radius:var(--r-pill);color:var(--text-soft);background:0 0;border:none;padding:6px 14px}.setup-steps button:hover:not(:disabled){background:var(--surface)}.setup-steps button[aria-current=step]{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.setup-form{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:end;gap:10px 14px;display:grid}.setup-form .wide{grid-column:1/-1}.setup-form .actions,.setup-activate .actions{gap:8px;display:flex}.setup-form fieldset{flex-wrap:wrap;gap:6px 14px;padding:8px 12px;display:flex}.setup-form fieldset.source{flex-direction:row}.setup-review,.setup-customize,.setup-activate{flex-direction:column;gap:10px;display:flex}.setup-activate{align-items:flex-start}.setup-table{max-height:55vh;box-shadow:none;overflow-y:auto}.setup-table input[type=date]{min-height:28px;padding:2px 6px}.setup-customize .row-actions{white-space:nowrap}.setup-customize .row-actions button.link{margin-right:12px}.setup-customize tr.removed td{color:var(--muted);background:var(--surface-sunken);text-decoration:line-through}.setup-customize tr.removed td.row-actions,.setup-customize tr.removed td span{text-decoration:none}.order-setup .warning,.warning{border:1px solid var(--warning-border);border-left:4px solid var(--warning-fill);background:var(--warning-soft);color:#6b4100;border-radius:var(--r-md);margin:0;padding:8px 12px}.setup-customize .confirm{border:1px solid var(--danger-border);background:var(--danger-soft);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:10px 12px;display:flex}.setup-customize .confirm p{flex-basis:100%;margin:0}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-setup{margin-bottom:var(--s-4);flex-direction:column;gap:10px;display:flex}.batch-setup h3{margin:0;font-size:1rem}.batch-setup .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-table th{vertical-align:top;min-width:150px}.batch-table th input{width:100%;margin-bottom:var(--s-1);display:block}.batch-table td input[type=number]{width:100%;min-width:80px}.batch-setup .warning p{margin:0}.register-scroll{min-height:280px;max-height:calc(100vh - 96px);overflow:auto}.register-scroll table.register th:first-child,.register-scroll table.register td:first-child{z-index:1;width:36px;min-width:36px;max-width:36px;position:sticky;left:0}.register-scroll table.register th:nth-child(2),.register-scroll table.register td:nth-child(2){z-index:1;box-shadow:1px 0 0 var(--border), 6px 0 8px -6px #0b26431f;position:sticky;left:36px}.register-scroll table.register th:first-child,.register-scroll table.register th:nth-child(2){z-index:2}.register-scroll:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-nav{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-pill);gap:4px;padding:3px;display:flex}.app-nav button{border-radius:var(--r-pill);min-height:0;color:var(--text-soft);background:0 0;border:none;padding:5px 14px}.app-nav button:hover:not(:disabled){background:var(--surface)}.app-nav button[aria-current=page]{background:var(--surface);color:var(--primary-hover);box-shadow:var(--shadow-sm)}.import-page{flex-direction:column;gap:14px;padding:16px 20px 24px;display:flex}.import-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:16px;display:flex}.import-card h2{margin:0 0 4px;font-size:16px;font-weight:650}.import-card h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:600}.import-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.import-head .hint{max-width:760px}.file-button{flex-direction:row;flex:none;position:relative}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.file-button span{border-radius:var(--r-md);background:var(--primary);color:#fff;min-height:34px;box-shadow:var(--shadow-sm);align-items:center;padding:6px 16px;font-size:14px;font-weight:500;display:inline-flex}.file-button:focus-within span{box-shadow:var(--focus-ring)}.import-file p{margin:0 0 6px}.import-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.import-tile{text-align:left;border-radius:var(--r-lg);color:var(--muted);flex-direction:column;align-items:flex-start;gap:2px;min-height:0;padding:8px 12px 8px 14px;font-size:12px;display:flex;position:relative;overflow:hidden}.import-tile b{color:var(--text);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.import-tile:before{content:"";background:var(--border-strong);width:3px;position:absolute;top:0;bottom:0;left:0}.import-tile.tone-info:before{background:var(--primary)}.import-tile.tone-warning:before{background:var(--warning-fill)}.import-tile.tone-danger:before,.import-tile.tone-danger-soft:before{background:var(--danger)}.import-tile[aria-pressed=true]{box-shadow:0 0 0 1px var(--primary) inset}.import-table{max-height:calc(100vh - 220px);overflow:auto}.import-table td.wrap{white-space:normal;min-width:180px;max-width:360px}.import-table td .chip+.chip{margin-left:4px}.import-table .details div{font-size:12px}.warn-text{color:var(--warning)}.item-label{font-family:var(--font-mono,ui-monospace, monospace);color:var(--text);font-size:.85em;font-weight:600}.import-tabs{gap:6px;padding:12px 20px 0;display:flex}.import-tabs button{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);color:var(--text-soft);padding:6px 14px;font-size:14px}.import-tabs button[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:#fff}.pr-link .candidate{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.pr-link .alloc-list{margin:4px 0 0;padding-left:16px;font-size:12px}.alloc-editor{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);flex-direction:column;gap:6px;margin-top:6px;padding:8px;display:flex}.alloc-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.alloc-line input{flex:120px;min-width:0}.import-failed{border:1px solid var(--danger-border);background:var(--danger-soft);border-radius:var(--r-md);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.exception-filters{flex-wrap:wrap;align-items:end;gap:8px 14px;display:flex}.exception-filters label{min-width:160px}.exception-body{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=1200px){.exception-body:has(.exception-detail){grid-template-columns:minmax(0,3fr) minmax(320px,2fr)}}.exception-inbox tr.selected td{background:var(--primary-soft)}.exception-detail h2{margin:2px 0}.exception-reasons{color:var(--danger);margin:0;padding-left:18px;font-size:13px}.exception-facts{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}.exception-facts dt{color:var(--muted)}.exception-facts dd{margin:0}.exception-actions{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-items:end;gap:8px 14px;display:grid}.exception-actions .wide,.exception-actions .actions{grid-column:1/-1}.exception-history{flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:13px;display:flex}.template-apply-lines{gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.template-apply-preview,.template-apply-confirm,.template-apply-result{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.template-apply-result ul{margin:4px 0 0;padding-left:18px;font-size:13px}.attention-page{gap:14px;max-width:960px;margin:0 auto;padding:16px;display:grid}.attention-page .page-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.attention-page h2,.attention-page h3{margin:0}.attention-section h3{align-items:center;gap:8px;font-size:15px;display:flex}.attention-section .count{color:var(--muted);font-size:12px;font-weight:500}.attention-list{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.attention-list li{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:14px}.attention-order,.attention-date{color:var(--muted)}.requests-page{gap:14px;max-width:960px;margin:0 auto;padding:16px;display:grid}.requests-page .page-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.requests-page h2{margin:0}.requests-tabs{flex-wrap:wrap;gap:8px;display:flex}.requests-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.requests-list li{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:14px}.requests-order,.requests-meta,.requests-decision{color:var(--muted)}.requests-dates,.requests-meta,.requests-reason,.requests-decision{margin-top:2px}.workspace-tabs{border-bottom:1px solid var(--border);align-items:stretch;gap:2px;margin-bottom:4px;display:flex}.workspace-tabs button{--tab-pad-x:14px;padding:8px var(--tab-pad-x) 10px;color:var(--text-soft);background:0 0;border:none;border-radius:0;font-weight:600;position:relative}.workspace-tabs button:after{content:"";left:var(--tab-pad-x);right:var(--tab-pad-x);pointer-events:none;background:0 0;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}.workspace-tabs button:hover{color:var(--text)}.workspace-tabs button[aria-selected=true]{color:var(--primary)}.workspace-tabs button[aria-selected=true]:after{background:var(--primary)}.workspace-hint{margin:2px 0 6px}.housekeeping-note{font-size:12px}.action-menu{vertical-align:middle;margin-left:6px;display:inline-block}.menu-button{border-radius:var(--r-sm,6px);color:var(--text-soft);letter-spacing:1px;background:0 0;border:1px solid #0000;padding:0 8px;font-weight:700;line-height:22px}.menu-button:hover,.menu-button[aria-expanded=true]{background:var(--surface-sunken);border-color:var(--border);color:var(--text)}.menu{z-index:50;background:var(--overlay-bg,var(--surface));min-width:200px;-webkit-backdrop-filter:var(--overlay-blur,none);backdrop-filter:var(--overlay-blur,none);border:1px solid var(--border);border-radius:var(--r-md,8px);box-shadow:var(--shadow-md,0 8px 24px #00000024);flex-direction:column;padding:4px;display:flex}.menu [role=menuitem]{text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;padding:7px 10px;font-weight:500}.menu [role=menuitem]:hover,.menu [role=menuitem]:focus{background:var(--surface-sunken);outline:none}.menu [role=menuitem].danger{color:var(--danger)}.menu [role=menuitem].danger:hover,.menu [role=menuitem].danger:focus{background:var(--danger-soft)}.menu-sep{background:var(--border);height:1px;margin:4px 2px}.housekeeping{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md,8px);max-width:680px;margin:8px 0;padding:14px 16px}.housekeeping.danger-zone{border-color:var(--danger-border)}.housekeeping h3{margin:0 0 6px;font-size:15px}.housekeeping form{flex-direction:column;gap:8px;display:flex}.housekeeping label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.housekeeping .who{margin:0}.housekeeping .actions{gap:8px;display:flex}.order-overview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);gap:14px;margin:12px 0;padding:14px 16px;display:grid}.order-overview h2,.order-overview h3{margin:0}.order-overview .overview-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.order-overview .overview-facts{color:var(--text-soft);flex-wrap:wrap;gap:6px 16px;margin:4px 0 0;font-size:13px;display:flex}.order-overview .overview-actions{flex-wrap:wrap;gap:8px;display:flex}.order-overview .overview-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.order-overview section{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);min-width:0;padding:10px 12px}.order-overview section h3{align-items:center;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.order-overview .overview-list{gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.order-overview .overview-list li{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.order-overview .overview-link{color:var(--primary);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.order-overview .overview-bar{background:var(--neutral-soft);border-radius:var(--r-pill);height:10px;overflow:hidden}.order-overview .overview-bar>span{background:var(--success);height:100%;display:block}.order-overview .overview-measures{flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:13px;display:flex}.order-overview .overview-empty{color:var(--muted);margin:0;font-size:13px}@media (width<=640px){.order-overview{padding:10px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.template-new{flex-wrap:wrap;align-items:end;gap:8px 14px;display:flex}.template-new label{min-width:160px}.template-new label.wide{flex:280px}.template-family{flex-direction:column;gap:6px;display:flex}.template-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.template-actions button{min-height:32px}.template-tree td.wrap{white-space:normal}.template-fields{border:0;flex-wrap:wrap;gap:8px 14px;margin:0;padding:0;display:flex}.template-fields label{min-width:160px}.template-fields label.wide{flex:100%}.template-fields label.check{flex-direction:row;align-items:center;gap:6px}.template-deps,.template-issues,.template-history{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.template-deps button{min-height:28px;margin-left:8px}.template-issues.error{color:var(--danger,#b42318)}@media (width<=640px){.template-new label,.template-fields label{min-width:100%}}.template-tree tr.editing>td{background:var(--primary-soft)}.template-tree tr.row-edit>td{background:var(--surface-sunken);white-space:normal}.template-tree td select{min-width:120px;max-width:100%}.template-tree td .hint{margin:4px 0 0}.template-actions button.danger{margin-left:6px}.row-edit-panel{padding:var(--s-2) 0;max-width:760px;left:var(--s-2);flex-direction:column;gap:8px;width:min(760px,100vw - 96px);display:flex;position:sticky}.row-edit-panel h4{margin:0}.flag-picker{display:inline-block;position:relative}.flag-trigger{text-align:left;align-items:center;gap:6px;min-height:32px;display:inline-flex}.flag-menu{z-index:20;min-width:240px;padding:var(--s-2) var(--s-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);flex-direction:column;gap:6px;margin:4px 0 0;display:flex;position:absolute;top:100%;left:0}.flag-menu legend{padding:0 4px;font-weight:600}.needs-picker{flex-direction:column;gap:8px;display:flex}.needs-chosen,.needs-results{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.needs-chosen li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 8px;display:flex}.needs-chosen .needs-name{flex:240px}.needs-lag{align-items:center;gap:6px;font-size:12px;display:flex}.needs-lag input{width:72px}.needs-search input{width:100%;max-width:360px}.needs-results button{text-align:left;width:100%;min-height:36px;display:block}.confirm-backdrop{z-index:80;padding:var(--s-4);background:#0b264373;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-box{width:min(480px,100%);max-height:100%;padding:var(--s-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:auto}.confirm-box h3{margin-top:0}@media (width<=640px){.flag-menu{box-shadow:none;position:static}.needs-lag input{width:64px}}.opb{--bg:#eef1f3;--panel:#fff;--panel-2:#f5f7f8;--line:#d8dee2;--ink:#14202a;--ink-2:#4a5a66;--ink-3:#7c8a94;--accent:#1d5f8a;--accent-soft:#dce9f2;--done:#1f8a3b;--prog:#e57a00;--over:#c93434;--soon:#d99a0b;--pend:#2f6fd0;--nodate:#e6eaed;--display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;--body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .opb{--bg:#0d1419;--panel:#141e25;--panel-2:#1a262e;--line:#26343e;--ink:#e6edf1;--ink-2:#a7b5bf;--ink-3:#71818c;--accent:#5aa7d8;--accent-soft:#18303f;--done:#2fae52;--prog:#f28c1c;--over:#e25151;--soon:#f0b429;--pend:#4b8cf0;--nodate:#222e36;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark] .opb{--bg:#0d1419;--panel:#141e25;--panel-2:#1a262e;--line:#26343e;--ink:#e6edf1;--ink-2:#a7b5bf;--ink-3:#71818c;--accent:#5aa7d8;--accent-soft:#18303f;--done:#2fae52;--prog:#f28c1c;--over:#e25151;--soon:#f0b429;--pend:#4b8cf0;--nodate:#222e36;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.opb,.opb *{box-sizing:border-box}.opb{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.4}.opb .wrap{flex-direction:column;gap:16px;max-width:1920px;margin:0 auto;padding-block:16px 40px;padding-inline:clamp(16px,2vw,28px);display:flex}.opb .num{font-family:var(--mono);font-variant-numeric:tabular-nums}.opb h1,.opb h2{font-family:var(--display);text-wrap:balance;margin:0}.opb h1{letter-spacing:.01em;font-size:clamp(24px,2.6vw,36px);font-weight:700}.opb h2{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:18px;font-weight:600}.opb .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.opb header.top{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding-bottom:12px;display:flex}.opb .clock{font-family:var(--mono);text-align:right;font-size:clamp(18px,1.8vw,26px);font-weight:700}.opb .clock small{font-family:var(--body);color:var(--ink-3);font-size:12px;font-weight:500;display:block}.opb .controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.opb button,.opb .btn,.opb select,.opb input[type=search]{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;min-height:32px;padding:6px 10px;font-size:13px}.opb button,.opb .btn{cursor:pointer;font-weight:600}.opb button:hover,.opb .btn:hover{border-color:var(--accent)}.opb button:focus-visible,.opb .btn:focus-within,.opb select:focus-visible,.opb input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.opb button.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}.opb .chips{flex-wrap:wrap;gap:4px;display:flex}.opb .chips button{border-radius:14px;min-height:28px;padding:4px 10px}.opb .btn input{display:none}.opb .panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;padding:14px 16px}.opb .phead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.opb .note{color:var(--ink-3);font-size:12px}.opb .kpis{background:var(--line);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;display:grid;overflow:hidden}.opb .kpi{background:var(--panel);flex-direction:column;gap:2px;padding:12px 14px;display:flex;position:relative}.opb .kpi .v{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:clamp(30px,3vw,44px);font-weight:700;line-height:1}.opb .kpi .l{color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.opb .kpi .s{color:var(--ink-3);font-size:12px}.opb .kpi.crit{box-shadow:inset 4px 0 0 var(--over)}.opb .kpi.warn{box-shadow:inset 4px 0 0 var(--soon)}.opb .kpi.good{box-shadow:inset 4px 0 0 var(--done)}.opb .bar{background:var(--line);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.opb .bar i{background:var(--done);border-radius:3px;height:100%;display:block}.opb .pipe{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.opb .stage{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:6px;flex-direction:column;gap:4px;min-height:0;padding:10px;display:flex}.opb .stage .n{font-family:var(--display);font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1}.opb .stage .t{font-size:13px;font-weight:600}.opb .stage .sub{color:var(--ink-3);font-size:11px}.opb .stage .fill{background:var(--accent);opacity:.85;border-radius:2px;height:4px}.opb .stage.sel{border-color:var(--accent);background:var(--accent-soft)}.opb .stage .od{color:var(--over);font-size:11px;font-weight:600}@media (width<=900px){.opb .pipe{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=480px){.opb .pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}.opb .legend{color:var(--ink-2);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.opb .legend span{align-items:center;gap:6px;display:inline-flex}.opb .sw{border-radius:3px;width:12px;height:12px;display:inline-block}.opb .s-done{background:var(--done)}.opb .s-prog{background:var(--prog)}.opb .s-open{background:var(--pend)}.opb .star{color:var(--over);font-size:14px;font-weight:700;line-height:1}.opb .s-over{background:var(--over)}.opb .s-soon{background:var(--soon)}.opb .s-pend{background:var(--pend)}.opb .s-nod{background:var(--nodate);outline:1px dashed var(--ink-3);outline-offset:-1px}.opb .grid2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;display:grid}@media (width<=1100px){.opb .grid2{grid-template-columns:1fr}}.opb .acts{flex-direction:column;gap:3px;display:flex}.opb .arow{grid-template-columns:150px minmax(0,1fr) 92px;align-items:center;gap:10px;padding:2px 0;font-size:13px;display:grid}.opb .arow .an{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.opb .arow .st{gap:2px;height:16px;display:flex}.opb .arow .st i{min-width:0;height:100%;display:block}.opb .arow .st i:first-child{border-radius:3px 0 0 3px}.opb .arow .st i:last-child{border-radius:0 3px 3px 0}.opb .arow .cnt{font-family:var(--mono);text-align:right;color:var(--ink-2);font-size:12px}.opb .arow .cnt b{color:var(--over)}.opb .grp{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-top:1px solid var(--line);margin-top:8px;padding-top:6px;font-size:10px;font-weight:700}.opb .grp:first-child{border-top:0;margin-top:0;padding-top:0}@media (width<=520px){.opb .arow{grid-template-columns:100px minmax(0,1fr) 70px}}.opb .own{flex-direction:column;gap:10px;display:flex}.opb .orow{grid-template-columns:130px minmax(0,1fr);align-items:center;gap:10px;display:grid}.opb .orow .nm{font-size:13px;font-weight:600}.opb .orow .st{gap:2px;height:14px;display:flex}.opb .orow .st i{height:100%;display:block}.opb .orow .meta{color:var(--ink-3);font-size:12px;font-family:var(--mono);grid-column:2;margin-top:-6px}.opb .mwrap{border:1px solid var(--line);border-radius:6px;max-height:78vh;overflow:auto}.opb.display .mwrap{max-height:none}.opb table.mx{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.opb .mx th,.opb .mx td{border-bottom:1px solid var(--line);padding:0}.opb .mx thead th{background:var(--panel);z-index:2;vertical-align:bottom;position:sticky;top:0}.opb .mx thead tr.g th{letter-spacing:.1em;text-transform:uppercase;height:22px;color:var(--ink-3);text-align:left;border-left:2px solid var(--line);padding-left:4px;font-size:10px;font-weight:700;top:0}.opb .mx thead tr.h th{top:22px}.opb .mx th.vc{width:22px;min-width:22px;height:118px}.opb .mx th.vc span{writing-mode:vertical-rl;color:var(--ink-2);white-space:nowrap;padding:6px 0;font-size:11px;font-weight:600;display:inline-block;transform:rotate(180deg)}.opb .mx th.gs,.opb .mx td.gs{border-left:2px solid var(--line)}.opb .mx .sticky{background:var(--panel);z-index:1;position:sticky;left:0}.opb .mx thead .sticky{z-index:3}.opb .mx td.so{font-family:var(--mono);white-space:nowrap;padding:4px 10px 4px 8px;font-size:12px;font-weight:700}.opb .mx td.so small{font-family:var(--body);color:var(--ink-3);font-size:11px;font-weight:500;display:block}.opb .mx td.c{text-align:center;width:22px;height:30px}.opb .mx td.c i{border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;margin:auto;display:block;position:relative;display:flex!important}.opb .mx td.c i.done{background:var(--done)}.opb .mx td.c i.open{background:var(--pend)}.opb .mx td.c i b{color:var(--over);text-shadow:0 0 1px #fff,0 0 2px #fff,0 0 3px #fff;font-size:15px;font-style:normal;line-height:1}.opb .mx td.c i.prog{background:var(--prog)}.opb .mx td.c i.over{background:var(--over)}.opb .mx td.c i.soon{background:var(--soon)}.opb .mx td.c i.pend{background:var(--pend)}.opb .mx td.c i.nod{background:var(--nodate);outline:1px dashed var(--ink-3);outline-offset:-2px}.opb .mx td.c i.na{background:0 0}.opb .mx td.info{white-space:nowrap;padding:4px 10px}.opb .mx th.info{text-align:left;color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;padding:0 10px 6px;font-size:11px;font-weight:600}.opb .pct{font-family:var(--mono);align-items:center;gap:6px;font-size:12px;display:flex}.opb .pct .bar{width:60px;margin:0}.opb .pill{background:var(--panel-2);border:1px solid var(--line);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.opb .pill.over{color:var(--over);border-color:var(--over)}.opb .pill.soon{color:var(--soon);border-color:var(--soon)}.opb .pill.ok{color:var(--done);border-color:var(--done)}.opb .mx tbody tr:hover td{background:var(--accent-soft)}.opb .mx tbody tr:hover td.c i.na{background:0 0}.opb .olist{flex-direction:column;max-height:420px;display:flex;overflow:auto}.opb .oi{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 0;font-size:13px;display:grid}.opb .oi .d{font-family:var(--mono);color:var(--over);text-align:right;min-width:52px;font-size:13px;font-weight:700}.opb .oi .w{min-width:0}.opb .oi .w b{font-family:var(--mono);font-size:12px}.opb .oi .w span{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.opb .tip{pointer-events:none;background:var(--ink);color:var(--bg);z-index:50;border-radius:6px;max-width:280px;padding:8px 10px;font-size:12px;line-height:1.45;position:fixed}.opb .tip b{font-family:var(--mono)}.opb .empty{text-align:center;color:var(--ink-3);padding:24px}.opb .filters{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:10px 12px;display:flex}.opb .fld{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);flex-direction:column;gap:3px;min-width:0;max-width:100%;font-size:11px;font-weight:600;display:flex}.opb .fld select{text-transform:none;letter-spacing:0;min-width:150px;max-width:100%;font-weight:500}.opb .fld.wide select{min-width:240px}@media (width<=520px){.opb .fld,.opb .fld select,.opb .fld.wide select{width:100%;min-width:0}.opb .fld{flex:100%}}.opb .active-f{color:var(--accent);font-size:12px;font-weight:600}.opb #soPanel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.opb .sotitle{font-family:var(--display);color:var(--ink);letter-spacing:.02em;font-size:clamp(26px,2.6vw,36px);font-weight:700;line-height:1.05}.opb .sofacts{background:var(--line);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin-bottom:12px;display:grid;overflow:hidden}.opb .sofacts div{background:var(--panel-2);flex-direction:column;gap:2px;min-width:0;padding:8px 12px;display:flex}.opb .sofacts span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-size:11px;font-weight:600}.opb .sofacts b{font-size:15px;font-weight:600}.opb .gwrap{border:1px solid var(--line);background:var(--panel);border-radius:6px;overflow-x:auto}.opb .gwrap svg{display:block}.opb .gwrap svg text{font-family:var(--body)}.opb .gt{fill:var(--ink-3);font-size:11px;font-weight:600}.opb .gl{fill:var(--ink);font-size:12.5px;font-weight:600}.opb .go{fill:var(--ink-3);font-size:10.5px}.opb .gsg{fill:var(--ink-3);letter-spacing:.12em;font-size:10px;font-weight:700}.opb .gstar{fill:var(--over);paint-order:stroke;stroke:var(--panel);stroke-width:3px;font-size:16px;font-weight:700}.opb .gtoday{fill:var(--over);font-size:10.5px;font-weight:700}.opb .ghit{fill:#0000}.opb .ghit:hover{fill:var(--accent-soft);opacity:.6}.opb .mx td.so{cursor:pointer}.opb .mx td.so:hover{color:var(--accent);text-decoration:underline}.opb .mx td.c i.dim{opacity:.18}.opb .oi{cursor:pointer}.opb .mx thead tr.fr th{background:var(--panel-2);border-bottom:1px solid var(--line);padding:3px 0;top:140px}.opb .mx thead tr.h th{height:118px}.opb .fb{border:1px solid var(--line);background:var(--panel);width:20px;height:22px;min-height:0;color:var(--ink-3);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;margin:auto;padding:0;font-size:11px;font-weight:700;display:flex}.opb .fb.wide{justify-content:space-between;gap:4px;width:auto;margin:0 6px;padding:0 8px;font-size:11.5px;font-weight:600}.opb .fb.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}.opb .fb:hover{border-color:var(--accent)}.opb .colpop{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:220px;max-width:min(300px,100vw - 32px);max-height:min(420px,70vh);padding:6px;position:fixed;overflow:auto;box-shadow:0 8px 28px #0000002e}.opb .colpop h4{font-size:12px;font-family:var(--body);color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em;margin:4px 8px 6px}.opb .colpop button{text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:30px;padding:6px 8px;font-weight:500;display:flex}.opb .colpop button:hover{background:var(--accent-soft)}.opb .colpop button.cur{background:var(--accent-soft);font-weight:700}.opb .colpop button span{align-items:center;gap:8px;display:inline-flex}.opb .colpop .ct{font-family:var(--mono);color:var(--ink-3);font-size:11px}.opb .colpop hr{border:0;border-top:1px solid var(--line);margin:4px 0}.opb .cfbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;display:flex}.opb .cfbar:empty{display:none}.opb .cfbar .tag{background:var(--accent-soft);border:1px solid var(--accent);color:var(--ink);border-radius:14px;align-items:center;gap:6px;padding:2px 4px 2px 10px;font-weight:600;display:inline-flex}.opb .cfbar .tag button{min-height:0;color:var(--ink-2);background:0 0;border:0;padding:0 6px;font-size:14px;line-height:1}.opb .cfbar .clr{min-height:26px;padding:2px 10px;font-size:12px}.opb .cidx{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}@media (width<=1100px){.opb .cidx{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=520px){.opb .cidx{grid-template-columns:repeat(2,minmax(0,1fr))}}.opb .ci{background:var(--panel-2);border:1px solid var(--line);min-width:0;box-shadow:inset 0 3px 0 var(--done);border-radius:6px;flex-direction:column;gap:4px;padding:10px;display:flex}.opb .ci .t{font-size:13px;font-weight:600}.opb .ci .n{font-family:var(--display);color:var(--done);font-variant-numeric:tabular-nums;font-size:clamp(28px,2.6vw,40px);font-weight:700;line-height:1}.opb .ci .n small{color:var(--ink-3);font-size:.45em;font-weight:600}.opb .ci .sub{color:var(--ink-3);font-size:11px}.opb .ci .bar{margin-top:2px}.opb .ci ul{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin:4px 0 0;padding:6px 0 0;list-style:none;display:flex}.opb .ci li{color:var(--ink-2);justify-content:space-between;gap:6px;font-size:11.5px;display:flex}.opb .ci li span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.opb .ci li .num{color:var(--ink)}.opb .ctot{font-family:var(--mono);color:var(--ink-2);font-size:12px}.opb .ctot b{color:var(--done)}.opb .mx tr.sum td{background:var(--panel-2);border-bottom:1px solid var(--line)}.opb .mx tr.sum td.so{font-family:var(--body);background:var(--panel-2);font-size:12px;font-weight:700}.opb .mx tr.sum td.c{font-family:var(--mono);color:var(--ink-2);height:24px;font-size:10px;font-weight:700}.opb .mx tr.sum td.c.z{color:var(--ink-3);opacity:.5;font-weight:500}.opb .mx tr.sum.last td{border-bottom:2px solid var(--ink-3)}.opb .mx tr.sum td.so .sw{vertical-align:-1px;margin-right:6px}.opb .mx tr.sum:hover td{background:var(--panel-2)}.opb footer{color:var(--ink-3);flex-direction:column;gap:4px;font-size:12px;display:flex}.opb .msg{color:var(--ink-2);font-size:12px}.opb.display .hide-d{display:none}@media (prefers-reduced-motion:reduce){.opb,.opb *{scroll-behavior:auto!important}}.opb{min-height:100%}.opb:fullscreen{overflow:auto}.opb .so button.link{font:inherit;color:inherit}
