:root{--bg: #f4f6f9;--surface: #ffffff;--surface-alt: #f9fafb;--surface-sunken: #f2f4f7;--border: #e4e7ec;--border-strong: #d0d5dd;--border-hover: #98a2b3;--grid-line: #d5dbe3;--grid-line-mid: #aab4c1;--grid-line-strong: #7d8b9d;--text: #101828;--text-secondary: #344054;--text-muted: #667085;--brand: #2563eb;--brand-dark: #1d4ed8;--brand-darker: #1e40af;--brand-light: #eff4ff;--brand-100: #dbe7fe;--brand-200: #bfd3fd;--brand-text: #1d4ed8;--brand-rgb: 37 99 235;--ink: #0f172a;--ink-2: #1e293b;--ink-3: #334155;--planned: #fff7cc;--planned-border: #e8d375;--actual: #d9f0dc;--actual-border: #8fc79a;--label: #dbe7fe;--scope: #fdf3a8;--danger: #b42318;--danger-strong: #b42318;--danger-bg: #fef3f2;--danger-border: #fecdca;--warn: #b54708;--warn-bg: #fffaeb;--warn-border: #fedf89;--ok: #067647;--ok-bg: #ecfdf3;--ok-border: #abefc6;--ok-fill: #17b26a;--warn-fill: #f79009;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--shadow-xs: 0 1px 2px rgb(16 24 40 / .05);--shadow: 0 1px 3px rgb(16 24 40 / .08), 0 1px 2px rgb(16 24 40 / .04);--shadow-md: 0 4px 8px -2px rgb(16 24 40 / .08), 0 2px 4px -2px rgb(16 24 40 / .04);--shadow-lg: 0 12px 16px -4px rgb(16 24 40 / .08), 0 4px 6px -2px rgb(16 24 40 / .03);--shadow-xl: 0 20px 24px -4px rgb(16 24 40 / .1), 0 8px 8px -4px rgb(16 24 40 / .04);--focus-ring: 0 0 0 3px rgb(var(--brand-rgb) / .2);--font: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--topbar-h: 56px}*{box-sizing:border-box;overscroll-behavior-x:none}html,body{overscroll-behavior-x:none}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.3;font-weight:600;color:var(--text);letter-spacing:-.011em}h1{font-size:1.5rem;letter-spacing:-.02em}h2{font-size:1.0625rem}h3{font-size:.9375rem}p{margin:0 0 .75rem}a{color:var(--brand-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}::selection{background:var(--brand-100)}*{scrollbar-width:thin;scrollbar-color:#c2c9d3 transparent}.app{--sidebar-width: 248px;display:flex;min-height:100vh}.app.sidebar-collapsed{--sidebar-width: 68px}.sidebar{width:var(--sidebar-width);background:var(--ink);color:#cbd5e1;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:40;overflow:hidden;transition:width .18s ease;border-right:1px solid rgb(255 255 255 / .06)}.sidebar-brand{display:flex;align-items:center;gap:.7rem;height:var(--topbar-h);padding:0 1rem;border-bottom:1px solid rgb(255 255 255 / .08);flex-shrink:0}.brand-mark{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:9px;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:inset 0 0 0 1px #ffffff26,0 2px 6px #1d4ed873}.sidebar-brand-text{min-width:0;display:grid;line-height:1.25}.sidebar-brand strong{color:#fff;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.sidebar-brand span{font-size:.75rem;color:#94a3b8;white-space:nowrap}.sidebar nav{padding:.75rem .75rem 1rem;flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-section{padding:1rem .625rem .375rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;white-space:nowrap}.sidebar nav>.sidebar-section:first-child{padding-top:.25rem}.sidebar nav a.nav-link{display:flex;align-items:center;gap:.75rem;height:38px;padding:0 .625rem;margin-bottom:2px;border-radius:var(--radius);color:#cbd5e1;text-decoration:none;font-size:.875rem;font-weight:500;white-space:nowrap;transition:background-color .12s,color .12s}.nav-icon{flex-shrink:0;color:#94a3b8;transition:color .12s}.sidebar nav a.nav-link:hover{background:#ffffff0f;color:#fff;text-decoration:none}.sidebar nav a.nav-link:hover .nav-icon{color:#e2e8f0}.sidebar nav a.nav-link.active{background:#ffffff1a;color:#fff;box-shadow:inset 3px 0 #60a5fa}.sidebar nav a.nav-link.active .nav-icon{color:#93c5fd}.sidebar nav a.nav-link:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .sidebar nav{padding:.75rem .5rem}.sidebar-collapsed .sidebar nav a.nav-link{justify-content:center;padding:0}.sidebar-collapsed .sidebar-section{height:1px;padding:0;margin:.75rem .5rem;background:#ffffff1a;font-size:0}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin-left:var(--sidebar-width);transition:margin-left .18s ease}.topbar{height:var(--topbar-h);background:#ffffffeb;-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--border);padding:0 1.5rem 0 1rem;display:flex;align-items:center;gap:.75rem;position:sticky;top:0;z-index:30}.topbar-context{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem}.topbar-scope{display:inline-flex;align-items:center;height:26px;padding:0 .625rem;border-radius:999px;background:var(--surface-sunken);color:var(--text-secondary);font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}button.icon-button{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text-muted);box-shadow:none}button.icon-button:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.user-menu{position:relative}button.user-menu-button{display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem .25rem .25rem;border:1px solid transparent;border-radius:999px;background:transparent;box-shadow:none;color:var(--text);text-align:left}button.user-menu-button:hover:not(:disabled),button.user-menu-button[aria-expanded=true]{background:var(--surface-sunken)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#dbe7fe,#bfd3fd);color:var(--brand-darker);font-size:.75rem;font-weight:700;letter-spacing:.02em;flex-shrink:0}.user-menu-text{display:grid;line-height:1.2;min-width:0}.user-menu-name{font-size:.8125rem;font-weight:600;color:var(--text);white-space:nowrap}.user-menu-role{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14rem}.user-menu-caret{color:var(--text-muted)}.user-menu-list{position:absolute;right:0;top:calc(100% + 6px);min-width:232px;padding:.375rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50}.user-menu-head{padding:.5rem .625rem .625rem;margin-bottom:.25rem;border-bottom:1px solid var(--border)}.user-menu-list button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .625rem;border:0;border-radius:var(--radius-sm);background:transparent;box-shadow:none;color:var(--text-secondary);font-weight:500;text-align:left}.user-menu-list button:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.user-menu-list button.danger-text{color:var(--danger-strong)}.user-menu-list button.danger-text:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-strong)}.content{padding:1.5rem 1.75rem 2.5rem;flex:1;min-width:0}.content>.spread:first-child{margin-bottom:1.25rem!important;align-items:flex-start}.content>.spread:first-child h1{margin-bottom:.25rem}.content>.spread:first-child p{color:var(--text-muted);font-size:.875rem;max-width:72ch}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:1.25rem}.card+.card{margin-top:1rem}.card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1rem;flex-wrap:wrap}.card-header h2{margin:0}.card-header select,.card-header .ss-trigger{max-width:min(32rem,100%)}.card-header>.row{min-width:0;max-width:100%}.card>h2:first-child{margin-bottom:.25rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:1rem}.grid{display:grid;gap:0 1rem}.grid>*{min-width:0}.muted{color:var(--text-muted)}.small{font-size:.8125rem}.mono{font-family:var(--mono);font-size:.92em}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}button,.btn{font:inherit;font-size:.875rem;font-weight:500;line-height:1.25rem;padding:.375rem .875rem;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.375rem;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s}button:not([class]),.btn,button.primary,button.danger{box-shadow:var(--shadow-xs)}button:hover:not(:disabled),.btn:hover{background:var(--surface-alt);color:var(--text);text-decoration:none}button:not([class]):hover:not(:disabled){border-color:var(--border-hover)}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary,button.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover,button.primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}button.primary:focus-visible{box-shadow:var(--shadow-xs),0 0 0 3px rgb(var(--brand-rgb) / .35)}button.danger{color:var(--danger-strong);border-color:var(--danger-border);background:var(--surface)}button.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-strong);border-color:#fda29b}button.subtle{border-color:transparent;background:transparent;padding:.25rem .5rem;color:var(--text-secondary)}button.subtle:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}button.subtle.danger{border-color:transparent;background:transparent;box-shadow:none;color:var(--danger-strong)}button.subtle.danger:hover:not(:disabled){background:var(--danger-bg)}td>button:not([class]),td>.row>button:not([class]){padding:.25rem .5rem;font-size:.8125rem;border-color:transparent;background:transparent;box-shadow:none;color:var(--brand-text)}td>button:not([class]):hover:not(:disabled),td>.row>button:not([class]):hover:not(:disabled){background:var(--brand-light);border-color:transparent;color:var(--brand-darker)}td>button.danger,td>button.primary,td>.row>button.danger{padding:.25rem .625rem;font-size:.8125rem}tbody td:last-child:has(>button){text-align:right;white-space:nowrap}td button.subtle{font-size:.8125rem;color:var(--brand-text);font-weight:500}td button.subtle:hover:not(:disabled){background:var(--brand-light);color:var(--brand-darker)}td button.subtle.danger{color:var(--danger-strong)}td button.subtle.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-strong)}td button.subtle+button.subtle{margin-left:.125rem}button.subtle:has(>svg:only-child){padding:.3rem}td input:not([type=checkbox]):not([type=radio]):not([type=file]),td select,td .ss-trigger{padding-top:.25rem;padding-bottom:.25rem;font-size:.8125rem}td select,td .ss-trigger{padding-right:1.75rem;background-position:right .45rem center}.wbs-head-title button.subtle.danger,tr.head-row button.subtle.danger{color:#fca5a5}.wbs-head-title button.subtle.danger:hover:not(:disabled),tr.head-row button.subtle.danger:hover:not(:disabled){background:#ffffff1f;color:#fecaca}.upload-kind{vertical-align:-3px;color:var(--text-muted);margin-right:.25rem}.upload-done{display:inline-flex;align-items:center;gap:.25rem;color:var(--ok);font-weight:500}input,select,textarea,.ss-trigger{font:inherit;font-size:.875rem;line-height:1.25rem;padding:.375rem .625rem;border:1px solid var(--border-strong);border-radius:var(--radius);background-color:var(--surface);color:var(--text);max-width:100%;box-shadow:var(--shadow-xs);transition:border-color .12s,box-shadow .12s}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),.ss-trigger:hover:not([aria-disabled=true]):not(:focus):not(.open),textarea:hover:not(:disabled):not(:focus){border-color:var(--border-hover)}input:focus,select:focus,textarea:focus,.ss-trigger:focus,.ss-trigger.open{outline:none;border-color:var(--brand);box-shadow:var(--shadow-xs),var(--focus-ring)}input:disabled,select:disabled,textarea:disabled,.ss-trigger[aria-disabled=true]{background-color:var(--surface-alt);color:var(--text-muted);cursor:not-allowed}select,.ss-trigger{text-overflow:ellipsis;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:16px;cursor:pointer}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:16px;height:16px;padding:0;margin:0;box-shadow:none;accent-color:var(--brand);cursor:pointer;vertical-align:-3px}input[type=file]{padding:.25rem;box-shadow:none;font-size:.8125rem;color:var(--text-secondary)}input[type=file]::file-selector-button{font:inherit;font-weight:500;margin-right:.75rem;padding:.3rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer}input[type=file]::file-selector-button:hover{background:var(--surface-alt)}input[type=color]{padding:.15rem;height:34px}input[type=date]{min-height:34px}label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.field{margin-bottom:1rem}.search-input{position:relative;display:flex;align-items:center;max-width:100%}.search-input>svg{position:absolute;left:.7rem;color:var(--text-muted);pointer-events:none}.search-input>input{width:100%;padding-left:2.1rem}input[type=search]::-webkit-search-cancel-button{cursor:pointer}.stat .sub .progress{margin-top:.5rem}.stat .sub .progress-pct{display:none}.field .hint{font-size:.75rem;color:var(--text-muted);margin-top:.375rem;line-height:1.4}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:.8125rem}th,td{padding:.625rem .875rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:var(--surface-alt);font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}thead th{height:40px}.table-wrap>table>tbody:last-child>tr:last-child>td{border-bottom:0}.table-wrap tfoot td{border-bottom:0;border-top:1px solid var(--border-strong);background:var(--surface-alt)}tbody tr{transition:background-color .1s}tbody tr:hover{background:#f8fafc}tbody tr.task-row{background:var(--brand-light);font-weight:600}tbody tr.task-row:hover{background:#e4ecfd}td.qty{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}td.scope{background:var(--scope);font-variant-numeric:tabular-nums;text-align:right}td a{font-weight:500}td strong a,td a strong{font-weight:600}.gad-wrap{--gad-activity-w: 208px;--gad-row-w: 178px;--gad-pane-w: 386px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);max-height:70vh}table.matrix{font-size:.78rem;border-collapse:separate;border-spacing:0}table.matrix th,table.matrix td{border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);padding:.3rem .45rem;background-clip:padding-box}table.matrix tr.actual td,table.matrix tr.actual th{border-bottom:1px solid var(--grid-line-mid)}table.matrix thead th{position:sticky;background:var(--surface-alt);z-index:3}table.matrix thead tr:nth-child(1) th{top:0;height:26px}table.matrix thead tr:nth-child(2) th{top:26px}th.month-band{text-align:left;font-size:.72rem;letter-spacing:.04em;color:var(--brand-dark);background:var(--brand-light);border-left:2px solid var(--border-strong);padding:.25rem 0}th.month-band .month-label{position:sticky;left:calc(var(--gad-pane-w) + 8px);display:inline-block;padding:0 .4rem}th.date-col{text-align:center;font-size:.72rem;padding:.25rem 0}th.date-col.today,td.cell.today{background:#dbeafe}th.date-col.today{color:var(--brand-dark);font-weight:700;box-shadow:inset 0 -2px 0 var(--brand)}th.date-col.weekend{background:#eef1f4}.sticky-activity,.sticky-row{position:sticky;z-index:2;background:var(--surface)}.sticky-activity{left:0;min-width:var(--gad-activity-w);max-width:var(--gad-activity-w)}.sticky-row{left:var(--gad-activity-w);min-width:var(--gad-row-w);max-width:var(--gad-row-w)}thead .sticky-activity,thead .sticky-row{z-index:4;background:var(--surface-alt)}td.activity{background:var(--label);font-weight:600}td.rowlabel{font-size:.74rem}tr.planned td.rowlabel{background:var(--planned);font-weight:600}tr.actual td.rowlabel{background:var(--actual);font-weight:600}td.cell{text-align:right;font-variant-numeric:tabular-nums;padding:0;min-width:56px;background:var(--surface)}td.cell.weekend{background:#f7f8fa}tr.planned td.cell.in-span,tr.actual td.cell.planned-only{background:var(--planned)}tr.actual td.cell.planned-only.today{background:#cfe4fb}tr.actual td.cell.planned-start{box-shadow:inset 3px 0 0 var(--planned-border)}tr.actual td.cell.planned-end{box-shadow:inset -3px 0 0 var(--planned-border)}tr.actual td.cell.planned-start.planned-end{box-shadow:inset 3px 0 0 var(--planned-border),inset -3px 0 0 var(--planned-border)}td.rowlabel .row-window{font-weight:400;font-size:.7rem;color:var(--text-muted);white-space:nowrap}td.rowlabel .swatch{display:inline-block;width:.6rem;height:.6rem;margin-right:.15rem;border-radius:2px;vertical-align:-1px;border:1px solid var(--border-strong)}td.rowlabel .swatch.planned{background:var(--planned)}td.rowlabel .swatch.actual,tr.actual td.cell.in-span{background:var(--actual)}td.cell.in-span.today{background:#cfe4fb}td.cell.span-start{border-left:3px solid var(--brand)}td.cell.span-end{border-right:3px solid var(--brand)}tr.gad-task td{background:var(--surface-alt);border-top:2px solid var(--grid-line-strong);border-bottom:2px solid var(--grid-line-strong);border-right-color:var(--grid-line-mid)}tr.gad-task td.task-name{font-weight:700;color:var(--brand-darker);background:var(--brand-light);min-width:var(--gad-pane-w);max-width:var(--gad-pane-w)}tr.gad-task td.bar{height:26px}tr.gad-task td.bar.in-span{background:var(--brand);opacity:.85}tr.gad-task td.bar.in-span.today{background:var(--brand-dark)}td.cell.manual{box-shadow:inset 0 0 0 2px var(--planned-border)}td.cell.readonly{color:var(--text);padding:.3rem .45rem}.needs-dates{color:var(--warn);font-weight:600;margin-top:.15rem;line-height:1.25}td.cell.editable{padding:0}.cell-open{width:100%;min-height:26px;border:none;background:transparent;text-align:right;font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:400;color:var(--text);padding:.3rem .45rem;border-radius:0;cursor:pointer}.cell-open{justify-content:flex-end}.cell-open:hover{background:rgb(var(--brand-rgb) / .1)}.cell-open:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.qty-with-unit{display:flex;align-items:stretch}.qty-with-unit input{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}.qty-with-unit input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.qty-with-unit input[type=number]::-webkit-outer-spin-button,.qty-with-unit input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.unit-suffix,.pct-suffix{display:flex;align-items:center;padding:0 .6rem;border:1px solid var(--border);border-left:none;border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);background:var(--surface-alt);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8rem;white-space:nowrap}.legend-swatch{display:inline-block;width:14px;height:10px;border-radius:2px;border:1px solid var(--border-strong);margin-left:.6rem;margin-right:.15rem;vertical-align:middle}.legend-swatch.planned{background:var(--planned)}.legend-swatch.actual{background:var(--actual)}.legend-swatch.todaycol{background:#dbeafe}.pill{display:inline-flex;align-items:center;gap:.25rem;height:22px;padding:0 .5rem;border-radius:999px;font-size:.75rem;font-weight:500;line-height:1;white-space:nowrap;background:var(--surface-sunken);color:var(--text-secondary);box-shadow:inset 0 0 0 1px #10182814}.code-sample{margin:0;padding:.75rem .875rem;background:var(--ink);color:#e2e8f0;border-radius:var(--radius);font-family:var(--mono);font-size:.75rem;line-height:1.6;overflow-x:auto;white-space:pre}.pill.ok{background:var(--ok-bg);color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok-border)}.pill.warn{background:var(--warn-bg);color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn-border)}.pill.danger{background:var(--danger-bg);color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger-border)}.pill.idle{background:var(--surface-sunken);color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border)}.pill.info{background:var(--brand-light);color:var(--brand-text);box-shadow:inset 0 0 0 1px var(--brand-200)}.progress{display:flex;align-items:center;gap:.625rem;white-space:nowrap}.progress>.bar{flex:1}.progress-pct{min-width:3.25rem;text-align:right;font-size:.8125rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}div.bar,span.bar{display:block;background:#eaecf0;border-radius:999px;height:6px;overflow:hidden;min-width:60px}div.bar>span,span.bar>span{display:block;height:100%;border-radius:999px;background:var(--brand);transition:width .3s ease}div.bar.complete>span{background:var(--ok-fill)}div.bar.behind>span{background:var(--warn-fill)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:1rem 1.125rem;min-width:0}.stat .label{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.stat .value{margin-top:.375rem;font-size:1.5rem;line-height:1.2;font-weight:600;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}.stat .sub{margin-top:.25rem;font-size:.75rem;color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:4rem 1rem 2rem;z-index:100;overflow-y:auto;animation:fade-in .12s ease-out}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(640px,100%);box-shadow:var(--shadow-xl);border:1px solid rgb(16 24 40 / .06);animation:rise-in .16s ease-out}.modal header{padding:1.125rem 1.25rem 1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:1rem}.modal header h2{margin:0;font-size:1.0625rem;line-height:1.4}.modal .body{padding:1.25rem 1.5rem}.modal footer{padding:.875rem 1.5rem;border-top:1px solid var(--border);background:var(--surface-alt);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex;justify-content:flex-end;gap:.625rem}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px) scale(.99)}}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem;flex-wrap:wrap}.tabs button{border:none;background:none;box-shadow:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;padding:.625rem .75rem;color:var(--text-muted);font-weight:500}.tabs button:hover:not(:disabled){background:none;color:var(--text);border-bottom-color:var(--border-strong)}.tabs button.active,.tabs button.active:hover:not(:disabled){color:var(--brand-text);border-bottom-color:var(--brand);font-weight:600}.head-tabs,.level-tabs{display:flex;gap:.3rem;overflow-x:auto;padding:.15rem 0 .45rem;margin-bottom:.8rem;border-bottom:1px solid var(--border);scrollbar-width:thin}.head-tab{display:inline-flex;align-items:center;gap:.45rem;flex:0 0 auto;max-width:18rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-weight:500;white-space:nowrap}.head-tab-name{overflow:hidden;text-overflow:ellipsis}.head-tab:hover{color:var(--text);border-color:var(--brand)}button.head-tab.active,button.head-tab.active:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.head-tab-badge{font-variant-numeric:tabular-nums;font-size:.72rem;padding:0 .35rem;border-radius:999px;background:var(--surface-alt);color:var(--text-muted)}.head-tab.active .head-tab-badge{background:#fff3;color:#fff}.head-tab.drop-target{outline:2px dashed var(--brand);outline-offset:2px}.card.wbs-layout{display:grid;grid-template-columns:17.5rem minmax(0,1fr);background:linear-gradient(to right,var(--surface-alt) 17.5rem,var(--surface) 17.5rem);padding:0;overflow:clip}.card.wbs-layout.tree-hidden{grid-template-columns:minmax(0,1fr);background:var(--surface)}.wbs-layout-tree{padding:.75rem .5rem 1rem;min-width:0;position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto}.wbs-layout-tree-title{padding:.1rem .5rem .6rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.wbs-layout-main{min-width:0;padding:.85rem 1.1rem 1.1rem;border-left:1px solid var(--border)}.tree-hidden .wbs-layout-main{border-left:none}.wbs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.6rem 1rem;flex-wrap:wrap;padding-bottom:.75rem;margin-bottom:.85rem;border-bottom:1px solid var(--border)}.wbs-toolbar-path{display:flex;align-items:center;gap:.5rem;min-width:0}.wbs-tree-toggle{font-size:1rem;line-height:1;color:var(--text-muted)}.wbs-crumbs{display:flex;align-items:center;gap:.4rem;min-width:0;flex-wrap:wrap;font-size:.92rem}.wbs-crumb-sep{color:var(--border-strong)}.wbs-crumb-current{font-weight:600;color:var(--text)}.wbs-tree,.wbs-tree ul{list-style:none;margin:0;padding:0}.wbs-tree-empty{padding:.5rem;line-height:1.5}.wbs-tree-row{display:flex;align-items:center;gap:.4rem;width:100%;min-height:2rem;padding:.2rem .5rem;border:none;border-radius:6px;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:.86rem}button.wbs-tree-row:hover:not(:disabled),.wbs-tree-row.level-1:hover{background:rgb(var(--brand-rgb) / .06)}.wbs-tree-row.level-0{font-weight:600;margin-top:.15rem}.wbs-tree-row.level-1{padding-left:1.1rem}.wbs-tree-row.level-2{padding-left:2.7rem;font-size:.83rem;color:var(--text-muted);min-height:1.8rem}.wbs-tree-row.level-1.selected{background:var(--brand-light);box-shadow:inset 3px 0 0 var(--brand)}.wbs-tree-row.level-1.selected .wbs-tree-name{font-weight:600;color:var(--brand-darker)}button.wbs-tree-row.level-2.active,button.wbs-tree-row.level-2.active:hover:not(:disabled){background:var(--brand);color:#fff;font-weight:600}.wbs-tree-row.level-2.active .wbs-tree-dot{background:#fff}.wbs-tree-row.level-2.active .wbs-tree-pct{color:#ffffffd9}.wbs-tree-row.drop-target{outline:2px dashed var(--brand);outline-offset:-2px}.wbs-tree-chevron{flex:0 0 1rem;width:1rem;padding:0;border:none;background:none;color:var(--text-muted);font-size:.75rem;text-align:center}button.wbs-tree-chevron:disabled{cursor:default;opacity:1}.wbs-tree-select{display:flex;align-items:center;gap:.4rem;flex:1 1 auto;min-width:0;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left}.wbs-tree-select:hover:not(:disabled){background:none}.wbs-tree-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wbs-tree-count{flex:0 0 auto;font-size:.7rem;font-weight:600;padding:0 .4rem;border-radius:999px;background:#eaecf0;color:var(--text-secondary)}.wbs-tree-dot{flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--border-strong)}.wbs-tree-progress{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto}.wbs-tree-meter{width:2.6rem;height:5px;border-radius:999px;background:#e4e7ec;overflow:hidden}.wbs-tree-meter>span{display:block;height:100%;background:var(--brand)}.wbs-tree-meter>span.done{background:var(--ok)}.wbs-tree-pct{flex:0 0 auto;min-width:2.3rem;text-align:right;font-variant-numeric:tabular-nums;font-size:.72rem;color:var(--text-muted)}@media(max-width:900px){.card.wbs-layout{grid-template-columns:minmax(0,1fr);background:var(--surface)}.wbs-layout-main{border-left:none}.wbs-layout-tree{position:static;background:var(--surface-alt);border-bottom:1px solid var(--border);max-height:45vh}}.alert{padding:.625rem .875rem;border-radius:var(--radius);font-size:.8125rem;line-height:1.5;margin-bottom:1rem;border:1px solid transparent}.alert.error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.alert.info{background:var(--brand-light);color:var(--brand-darker);border-color:var(--brand-200)}.alert.success{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-border)}.alert.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border)}.empty{padding:3rem 1rem;text-align:center;color:var(--text-muted);font-size:.875rem}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:var(--surface)}.login-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:2.5rem 3rem;color:#e2e8f0;background:radial-gradient(1100px 520px at -10% -20%,rgb(59 130 246 / .35),transparent 60%),radial-gradient(900px 500px at 120% 120%,rgb(14 165 233 / .22),transparent 55%),var(--ink)}.login-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgb(255 255 255 / .04) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .04) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent);mask-image:linear-gradient(180deg,#000 30%,transparent);pointer-events:none}.login-brand>*{position:relative}.login-logo{display:flex;align-items:center;gap:.75rem;color:#fff;font-weight:600;font-size:1rem}.login-logo .brand-mark{width:36px;height:36px;border-radius:10px}.login-pitch h2{color:#fff;font-size:2rem;line-height:1.2;letter-spacing:-.025em;margin-bottom:1rem;max-width:22ch}.login-pitch p{color:#94a3b8;font-size:1rem;max-width:46ch;margin-bottom:1.75rem}.login-points{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.login-points li{display:flex;gap:.75rem;align-items:flex-start;color:#cbd5e1;font-size:.9375rem}.login-points li:before{content:"";flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%;background:#3b82f62e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393c5fd' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;box-shadow:inset 0 0 0 1px #93c5fd59}.login-foot{color:#64748b;font-size:.8125rem}.login-form-side{display:grid;place-items:center;padding:2rem 1.5rem;background:var(--surface)}.login-card{width:min(380px,100%)}.login-card h1{font-size:1.625rem;margin-bottom:.375rem}.login-card .lead{color:var(--text-muted);margin-bottom:1.75rem}.login-card button[type=submit]{width:100%;height:40px;margin-top:.5rem;font-size:.9375rem;justify-content:center}.login-card input{height:40px}.login-secure{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.25rem;color:var(--text-muted);font-size:.75rem}.login-mobile-logo{display:none}@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-mobile-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:2rem;font-weight:600;color:var(--text)}}.checklist{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem}.checklist label{display:flex;gap:.5rem;align-items:flex-start;font-weight:400;color:var(--text);margin-bottom:.4rem;font-size:.8125rem}.checklist input{margin-top:.15rem}.spinner{width:18px;height:18px;border:2px solid var(--brand-100);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.wbs-task{margin-bottom:1rem}.wbs-task:last-child{margin-bottom:0}.wbs-task>table th,.wbs-task>table td{border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line)}.wbs-task>table th:last-child,.wbs-task>table td:last-child{border-right:0}.wbs-task>table tr.wbs-attrs>th,.wbs-task>table tr.wbs-attrs>td{border-right:0}.wbs-task>table thead tr.wbs-title>th{border-bottom:2px solid var(--grid-line-strong)}.wbs-task>table tbody tr.task-row>td{border-top:2px solid var(--grid-line-strong);border-bottom:2px solid var(--grid-line-strong);border-right-color:var(--grid-line-mid)}.wbs-task>table tbody tr:last-child>td{border-bottom:2px solid var(--grid-line-strong)}.wbs-task.dragging{opacity:.45}.wbs-task.drop-target{box-shadow:0 -3px 0 0 var(--brand)}.drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;padding:0 .15rem;letter-spacing:-.1em;color:var(--brand-dark);opacity:.55}.drag-handle:hover{opacity:1}.drag-handle:active{cursor:grabbing}button.wbs-collapse{padding:0 .2rem;color:inherit;font-size:.8rem;line-height:1}thead tr.wbs-title>th{background:var(--brand-light);color:var(--brand-dark);font-size:.92rem;padding:.45rem .6rem;text-transform:none;letter-spacing:0}thead tr.wbs-title .muted{color:var(--brand-dark);opacity:.7}tr.wbs-attrs>th,tr.wbs-attrs>td{padding:0;background:var(--surface);border-bottom:1px solid var(--border);text-transform:none;letter-spacing:0}table.attr-table{width:100%;table-layout:fixed;border-collapse:collapse}table.attr-table th{padding:.22rem .6rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--surface)}table.attr-table td{padding:.3rem .6rem;font-size:.85rem;font-weight:600;text-align:left;text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--surface)}table.attr-table .attr-pad{background:none;border-color:transparent}table.attr-table th .attr-label{vertical-align:middle}table.attr-table th button.subtle{color:inherit;padding:0 .15rem;font-size:.8rem;vertical-align:middle}table.attr-table th button.subtle:hover{background:#ffffff40}@media(max-width:720px){table.attr-table,table.attr-table tbody,table.attr-table tr{display:block}table.attr-table th,table.attr-table td{display:block;width:100%}table.attr-table .attr-pad{display:none}}.attr-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 .7rem}@media(max-width:720px){.attr-inputs{grid-template-columns:1fr}}button.attr-edit{padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.attr-edit:hover{text-decoration:underline;background:none}.swatch{width:20px;height:20px;padding:0;border:1px solid var(--border-strong);border-radius:4px;cursor:pointer}.color-picker{display:grid;gap:.45rem}.color-picker-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.color-preview{width:30px;height:30px;border-radius:var(--radius);border:1px solid var(--border-strong);flex-shrink:0;background-image:linear-gradient(45deg,#e5e7eb 25%,transparent 25%,transparent 75%,#e5e7eb 75%),linear-gradient(45deg,#e5e7eb 25%,transparent 25%,transparent 75%,#e5e7eb 75%);background-size:10px 10px;background-position:0 0,5px 5px}.color-custom{position:relative;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);font-size:.85rem;cursor:pointer;margin:0;font-weight:500}.color-custom:hover{background:var(--surface-alt)}.color-custom input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}input.color-hex{width:6.5rem;font-family:var(--mono);text-transform:lowercase}input.color-hex.invalid{border-color:var(--danger)}select.invalid,select.invalid:hover:not(:disabled):not(:focus),.ss-trigger.invalid,.ss-trigger.invalid:hover:not(:focus){border-color:var(--danger);box-shadow:0 0 0 3px #b423181f}.swatch-grid{display:flex;flex-wrap:wrap;gap:.3rem}.wbs-head{border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.25rem;background:var(--surface);box-shadow:var(--shadow-xs)}.wbs-head:last-child{margin-bottom:0}.wbs-head.fullpage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;margin:0;border:0;border-radius:0;overflow:auto;background:var(--surface)}.wbs-head.fullpage .wbs-head-title{position:sticky;top:0;z-index:6;border-radius:0;padding:.6rem 1.1rem}.wbs-head.fullpage .wbs-head-name{font-size:1.1rem}.wbs-head.fullpage .wbs-head-body{padding:1rem 1.1rem}button.wbs-fullpage-exit{margin-left:.5rem;background:#fff;color:var(--ink-2);border-color:#fff;font-weight:600;padding:.25rem .75rem}button.wbs-fullpage-exit:hover:not(:disabled){background:#e2e8f0;color:var(--ink)}.wbs-head.dragging{opacity:.45}.wbs-head.drop-target{box-shadow:0 -3px 0 0 var(--brand)}.wbs-head-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .85rem;background:var(--ink-2);color:#fff;border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.wbs-head.collapsed .wbs-head-title{border-radius:calc(var(--radius-lg) - 1px)}.wbs-head-name{font-weight:600;font-size:.9375rem}.wbs-head-meta{font-weight:400;font-size:.8125rem;color:#cbd5e1}.wbs-head-title button.subtle{color:inherit}.wbs-head-title button.subtle:hover:not(:disabled){background:#ffffff1f;color:#fff}.wbs-head-title .drag-handle{color:#fff;opacity:.7}.wbs-head-title .drag-handle:hover{opacity:1}button.wbs-head-collapse{padding:0 .2rem;font-size:.85rem;line-height:1}.wbs-head-body{padding:.875rem}.wbs-head-fields{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:.5rem}.wbs-head-summary{margin:0 0 .6rem}.wbs-subcat-fields{border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;margin-bottom:1.1rem;background:var(--surface)}.wbs-subcat-fields-title{padding:.35rem .6rem;font-weight:600;border-bottom:1px solid var(--border)}.wbs-head-empty{padding:.3rem .1rem}tbody tr.head-row{background:var(--ink-2);color:#fff;font-weight:600}tbody tr.head-row:hover{background:var(--ink-2)}tbody tr.head-row .muted{color:#cbd5e1}tbody tr.head-row button.subtle{color:#e2e8f0}tbody tr.head-row button.subtle:hover:not(:disabled){background:#ffffff1f;color:#fff}tr.gad-head td{background:#e2e8f0;border-top:3px solid var(--ink-2);border-bottom:2px solid var(--ink-2);border-right-color:var(--grid-line-mid)}tr.gad-head td.head-name{background:var(--ink-2);color:#fff;font-weight:600;font-size:.82rem}tr.gad-head td.head-name .head-window{color:#cbd5e1;font-weight:400}tr.gad-head td.bar{height:26px}tr.gad-head td.bar.in-span{background:var(--ink-3)}tr.gad-head td.bar.in-span.today{background:var(--ink)}.import-head{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .6rem;margin-bottom:.7rem}.import-head-title{font-weight:600;margin-bottom:.35rem}button.subtle.add-qty{color:var(--brand);font-weight:600;font-size:.78rem}.media-table td{vertical-align:middle}.media-thumb{position:relative;display:block;width:88px;height:60px;padding:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#0d1b26;cursor:zoom-in}.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover;display:block}.media-play{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-size:1.1rem;text-shadow:0 1px 4px rgb(0 0 0 / .6)}.subtle-link{padding:.25rem .4rem;text-decoration:none;color:var(--text)}.subtle-link:hover{background:var(--surface-alt);border-radius:var(--radius)}a.button-link{display:inline-flex;align-items:center;padding:.4rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);text-decoration:none}.media-stage{display:grid;place-items:center;background:#0d1b26;border-radius:var(--radius);min-height:320px;max-height:70vh;overflow:hidden}.media-stage img,.media-stage video{max-width:100%;max-height:70vh;display:block}.media-details{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.75rem;color:var(--text-muted)}.media-details strong{color:var(--text);font-weight:600;margin-right:.25rem}.upload-list{list-style:none;margin:0 0 .85rem;padding:0;display:grid;gap:.5rem}.upload-list li{display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;align-items:center}.upload-list .bar{grid-column:1 / -1}.upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-text{color:var(--danger)}.eyebrow{margin-top:.35rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}.timeline-fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .85rem .1rem;margin:0 0 .85rem}.timeline-fieldset legend{padding:0 .35rem;font-weight:600}.sev-low{--sev-bg: #fef9c3;--sev-fg: #a16207}.sev-medium{--sev-bg: #ffedd5;--sev-fg: #c2410c}.sev-high{--sev-bg: #fee2e2;--sev-fg: #b91c1c}.sev-critical{--sev-bg: #fca5a5;--sev-fg: #7f1d1d}tr.constraint-row>td{background:var(--sev-bg)}tr.constraint-row>td:first-child{box-shadow:inset 4px 0 0 var(--sev-fg)}tr.constraint-row:hover>td{background:var(--sev-bg);filter:brightness(.97)}.matrix td.constraint-cell{background:var(--sev-bg)}.matrix td.constraint-cell.sticky-activity{box-shadow:inset 4px 0 0 var(--sev-fg)}.pill.sev-pill{background:var(--sev-bg);color:var(--sev-fg);font-weight:600}button.constraint-icon{color:var(--muted, #94a3b8);opacity:.55;padding:0 .25rem;margin-left:.3rem}button.constraint-icon:hover{opacity:1}button.constraint-icon[class*=sev-]{color:var(--sev-fg);opacity:1}.constraint-table td{vertical-align:top}.constraint-tag{display:inline-flex;align-items:baseline;gap:.25rem;max-width:min(26rem,100%);min-width:0;font-weight:600;margin-left:.6rem;color:var(--sev-fg);white-space:nowrap;text-align:left;vertical-align:baseline}.constraint-tag-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:3rem}.constraint-tag-sev,.constraint-tag-more{flex-shrink:0;white-space:nowrap}button.constraint-tag{padding:.05rem .35rem}.constraint-tag .constraint-tag-sev{font-weight:500;opacity:.85}.wbs-head-title .constraint-tag.sev-low,tr.gad-head .constraint-tag.sev-low{color:#fde68a}.wbs-head-title .constraint-tag.sev-medium,tr.gad-head .constraint-tag.sev-medium{color:#fdba74}.wbs-head-title .constraint-tag.sev-high,tr.gad-head .constraint-tag.sev-high{color:#fca5a5}.wbs-head-title .constraint-tag.sev-critical,tr.gad-head .constraint-tag.sev-critical{color:#ff8a8a;text-decoration:underline}.wbs-head-title button.constraint-icon{color:#fff}tr.gad-head .constraint-tag,tr.gad-task .constraint-tag{display:flex;max-width:100%;margin:.2rem 0 0;font-size:.85rem}.constraint-line{display:flex;align-items:baseline;gap:.3rem;min-width:0;max-width:100%}.title-with-constraint{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .4rem}.title-with-constraint .constraint-tag{font-size:.875rem}td .constraint-tag{display:flex;max-width:18rem;margin:.15rem 0 0;font-size:.85rem}.constraint-tag-more{font-weight:500;opacity:.85}.constraint-icon-count{font-size:.7rem;font-weight:700;margin-left:.1rem;vertical-align:super}button.notes-icon{padding:0 .25rem;margin-left:.3rem;opacity:.65;color:var(--brand-dark);vertical-align:middle;line-height:0}button.notes-icon:hover{opacity:1}.notes-table td{vertical-align:top}button.land-link{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-xs);color:var(--text-secondary);font-size:.8125rem;font-weight:500}button.land-link:hover:not(:disabled){background:var(--brand-light);border-color:var(--brand-200);color:var(--brand-text)}.land-table th{white-space:normal;min-width:6.5rem;vertical-align:bottom}.utility-table td{vertical-align:top}.utility-table td.wide-cell{min-width:12rem;max-width:22rem}button.attachment-link{text-decoration:underline;color:var(--brand);text-align:left;white-space:normal;overflow-wrap:anywhere;padding:0}.utility-table td.doc-cell{min-width:11rem;max-width:16rem}ul.doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}.wbs-layout-tree-filter{padding:0 .5rem .6rem}ul.clone-subtasks{list-style:none;margin:0;padding:.4rem .6rem;max-height:18rem;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.3rem}input.readonly{background:var(--surface-alt);color:var(--text);cursor:default}.sub-hero{padding:1rem 1.25rem .9rem;margin-bottom:.75rem}.sub-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;color:var(--text-muted)}.sub-crumbs a{color:var(--text-muted);text-decoration:none}.sub-crumbs a:hover{color:var(--brand);text-decoration:underline}.sub-hero-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.5rem}.sub-hero-top{margin-top:.15rem}.sub-hero-title{min-width:0}.sub-hero-title .eyebrow{margin-top:0}.sub-hero-description{margin:.5rem 0 0;color:var(--text-secondary);max-width:90ch}table.subdivision-table td:first-child{min-width:15rem}.sub-title-row{margin:.1rem 0 .15rem;line-height:2.1rem}.sub-title-row h1{display:inline;margin:0 .8rem 0 0;font-size:1.3rem;line-height:1.3;overflow-wrap:anywhere;vertical-align:middle}.sub-hero-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;flex:0 0 auto}.sub-hero-progress{display:flex;align-items:center;gap:.75rem;max-width:620px;margin:.35rem 0 .5rem}.sub-hero-progress>:nth-child(2){flex:1;min-width:0}.sub-hero-progress .sub-fact-label,.sub-hero-progress .muted{white-space:nowrap}.sub-fact-label{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.sub-facts{display:flex;flex-wrap:wrap;gap:.3rem 1.25rem;margin:.45rem 0 0;font-size:.875rem}.sub-facts>div{display:flex;gap:.35rem;align-items:baseline}.sub-facts dt{color:var(--text-muted)}.sub-facts dd{margin:0;font-weight:600;white-space:nowrap}.sub-registers{display:inline}.sub-registers>*{vertical-align:middle;margin:.15rem .4rem .15rem 0;line-height:normal}.sub-registers .constraint-tag{margin-left:0;border:1px solid var(--border);border-radius:999px;padding:.3rem .75rem;font-size:.875rem;display:inline-flex;justify-content:center;align-items:center;gap:.3rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}button.register-chip{display:inline-flex;justify-content:center;align-items:center;gap:.45rem;white-space:nowrap;min-width:0;border-radius:999px;padding:.3rem .75rem;font-size:.875rem;font-weight:500;color:var(--text);background:var(--surface)}button.register-chip:hover:not(:disabled){background:var(--brand-light);border-color:var(--brand);color:var(--brand-dark)}.register-count{display:inline-block;min-width:1.4rem;padding:0 .45rem;border-radius:999px;background:var(--surface-alt);border:1px solid var(--border);font-size:.75rem;font-weight:600;text-align:center;color:var(--text-muted)}.register-count.pending{background:var(--warn-bg);border-color:#f0c98a;color:var(--warn)}.category-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin-bottom:.75rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.category-menu{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.category-menu-item{position:relative}button.category-menu-button{border:1px solid transparent;background:transparent;padding:.4rem .75rem;border-radius:var(--radius);font-weight:500;white-space:nowrap;color:var(--text)}button.category-menu-button:hover:not(:disabled),button.category-menu-button[aria-expanded=true]{background:var(--brand-light);color:var(--brand-dark)}button.category-menu-button.active{background:var(--brand);border-color:var(--brand);color:#fff}button.category-menu-button.active:hover:not(:disabled),button.category-menu-button.active[aria-expanded=true]{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.category-menu-chosen{font-weight:400}.category-menu-caret{margin-left:.4rem;font-size:.95em;line-height:1}.category-menu-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:240px;max-width:min(360px,calc(100vw - 32px));max-height:60vh;overflow-y:auto;margin:0;padding:.3rem;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #10182824}.category-menu-list button{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;width:100%;text-align:left;border:0;background:transparent;padding:.45rem .6rem;border-radius:var(--radius);color:var(--text)}.category-menu-list button:hover:not(:disabled){background:var(--brand-light);color:var(--brand-dark)}.category-menu-list button.selected,.category-menu-list button.selected:hover:not(:disabled){background:var(--brand-light);color:var(--brand-dark);font-weight:600;box-shadow:inset 3px 0 0 var(--brand)}.category-menu-empty{font-style:italic}.category-target-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1rem;margin-left:auto;padding:.2rem .35rem .2rem .75rem;border-left:1px solid var(--border)}button.target-open{padding:.3rem .7rem;font-size:.85rem;color:var(--brand);border-color:var(--brand)}button.target-open:hover:not(:disabled){background:var(--brand-light)}@media(max-width:720px){.sub-hero{padding:.85rem .9rem}.sub-title-row h1{font-size:1.1rem}.sub-hero-actions{justify-content:flex-start;flex:1 1 100%;min-width:0}.sub-hero-progress{flex-wrap:wrap;gap:.25rem .6rem}.sub-hero-progress>:nth-child(2){flex:1 1 100%}.sub-hero-actions button{padding:.35rem .65rem;font-size:.85rem}.category-target-strip{margin-left:0;border-left:0;border-top:1px solid var(--border);width:100%;padding:.45rem .35rem .2rem}}.wbs-head-title .row>.wbs-head-name,tr.wbs-title .row>.wbs-name{flex:0 1 auto;min-width:6rem;overflow-wrap:anywhere}.wbs-head-title .row>.constraint-tag,tr.wbs-title .row>.constraint-tag{flex:0 1000 auto}.wbs-head-title>.row,tr.wbs-title .spread>.row{min-width:0}table.constraint-table td:first-child{overflow-wrap:anywhere}@media(max-width:720px){.content{padding:1rem .875rem 2rem}.content>.spread:first-child{flex-wrap:wrap}.topbar{padding:0 .75rem 0 .5rem}.topbar-scope,.user-menu-text,.user-menu-caret{display:none}h1{font-size:1.3rem}.card{padding:1rem}}.success-note{display:flex;gap:.875rem;align-items:flex-start}.success-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--ok-bg);color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok-border)}.success-note strong{display:block;font-size:.9375rem;color:var(--text);margin:.1rem 0 .25rem}.success-note p{margin:0;color:var(--text-secondary)}.ss-trigger{display:inline-grid;grid-template-columns:minmax(0,1fr);align-items:center;vertical-align:middle;text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none}.ss-value{grid-area:1 / 1;min-width:0;overflow:hidden;text-overflow:ellipsis;visibility:hidden;height:0}.ss-value[data-shown]{visibility:visible;height:auto}.ss-panel{position:fixed;z-index:200;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 28px #1018282e;overflow:hidden}.ss-panel .ss-filter{margin:.375rem;width:auto;font-size:.8125rem;padding:.3rem .55rem .3rem 1.9rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left .55rem center;background-size:14px}.ss-list{list-style:none;margin:0;padding:0 .25rem .25rem;overflow-y:auto;min-height:0;flex:1}.ss-option{padding:.375rem .5rem;border-radius:calc(var(--radius) - 2px);font-size:.8125rem;line-height:1.25rem;color:var(--text);cursor:pointer;overflow-wrap:anywhere}.ss-option.grouped{padding-left:1.1rem}.ss-option.active{background:var(--surface-sunken)}.ss-option.selected{color:var(--brand-dark);font-weight:600;background:var(--brand-light)}.ss-option.selected.active{background:var(--brand-100)}.ss-option.disabled{color:var(--text-muted);cursor:not-allowed}.ss-group{padding:.5rem .5rem .2rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.ss-empty{padding:.5rem;font-size:.8125rem;color:var(--text-muted)}
