:root{color-scheme:dark;--c-black: #07080a;--c-neutral-1000: #0b0d10;--c-neutral-950: #101317;--c-neutral-900: #151920;--c-neutral-850: #1b2027;--c-neutral-800: #222831;--c-neutral-700: #2b323d;--c-neutral-600: #3a4250;--c-neutral-500: #545d6c;--c-neutral-400: #6f7886;--c-neutral-300: #99a2af;--c-neutral-200: #aab2bf;--c-neutral-100: #d6dae1;--c-neutral-050: #eef0f4;--c-white: #f5f7fa;--c-red-300: #ff8a8c;--c-red-400: #ff5257;--c-red-500: #ef2b34;--c-red-600: #d11d27;--c-red-700: #a3151d;--c-red-soft: rgb(239 43 52 / 12%);--c-red-soft-strong: rgb(239 43 52 / 20%);--c-red-glow: rgb(239 43 52 / 38%);--c-green-400: #34d399;--c-green-500: #1faf72;--c-green-soft: rgb(31 175 114 / 14%);--c-amber-400: #f5b53d;--c-amber-500: #d8961d;--c-amber-soft: rgb(245 181 61 / 14%);--c-blue-400: #5aa9ff;--c-blue-500: #3a8ce6;--c-blue-soft: rgb(90 169 255 / 14%);--color-bg: var(--c-neutral-1000);--color-bg-sunken: var(--c-black);--color-surface: var(--c-neutral-900);--color-surface-raised: var(--c-neutral-850);--color-surface-hover: var(--c-neutral-800);--color-border: var(--c-neutral-700);--color-border-strong: var(--c-neutral-600);--color-text: var(--c-white);--color-text-secondary: var(--c-neutral-200);--color-text-muted: var(--c-neutral-400);--color-text-on-accent: #ffffff;--color-accent: var(--c-red-500);--color-accent-hover: var(--c-red-400);--color-accent-active: var(--c-red-600);--color-accent-soft: var(--c-red-soft);--color-accent-soft-strong: var(--c-red-soft-strong);--color-accent-glow: var(--c-red-glow);--color-accent-text: var(--c-red-400);--color-success: var(--c-green-400);--color-success-soft: var(--c-green-soft);--color-warning: var(--c-amber-400);--color-warning-soft: var(--c-amber-soft);--color-danger: var(--c-red-400);--color-danger-soft: var(--c-red-soft);--color-info: var(--c-blue-400);--color-info-soft: var(--c-blue-soft);--color-focus-ring: var(--c-red-glow);--font-display: "Space Grotesk", "Inter", ui-sans-serif, system-ui, sans-serif;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--fs-3xl: 2.5rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.15;--lh-snug: 1.3;--lh-normal: 1.55;--tracking-tight: -.012em;--tracking-normal: 0em;--tracking-wide: .06em;--tracking-wider: .14em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--border-thin: 1px;--shadow-sm: 0 1px 2px rgb(0 0 0 / 45%);--shadow-md: 0 8px 24px -8px rgb(0 0 0 / 55%);--shadow-lg: 0 24px 60px -16px rgb(0 0 0 / 65%);--glow-accent: 0 0 0 1px var(--color-accent-glow), 0 8px 28px -10px var(--color-accent-glow);--ring-focus: 0 0 0 3px var(--color-focus-ring);--ease-out: cubic-bezier(.2, .7, .3, 1);--dur-fast: .12s;--dur-base: .2s;--header-height: 4rem;--layout-max: 96rem}.ds-eyebrow{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.ds-brand{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text)}.ds-brand__mark{width:.4rem;height:1.15em;border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:0 0 12px -2px var(--color-accent-glow)}.ds-brand__sub{font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-sm);letter-spacing:var(--tracking-normal);text-transform:none;color:var(--color-text-muted)}.ds-button{--_bg: transparent;--_fg: var(--color-text);--_border: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-wide);line-height:1;padding:.65rem 1.1rem;border:var(--border-thin) solid var(--_border);border-radius:var(--radius-md);color:var(--_fg);background:var(--_bg);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.ds-button:active{transform:translateY(1px)}.ds-button:focus-visible{outline:none;box-shadow:var(--ring-focus)}.ds-button:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}.ds-button--primary{--_bg: var(--color-accent);--_fg: var(--color-text-on-accent);--_border: var(--color-accent);box-shadow:var(--shadow-sm)}.ds-button--primary:hover:not(:disabled){--_bg: var(--color-accent-hover);--_border: var(--color-accent-hover);box-shadow:var(--glow-accent)}.ds-button--primary:active:not(:disabled){--_bg: var(--color-accent-active);--_border: var(--color-accent-active)}.ds-button--secondary{--_bg: var(--color-surface-raised);--_fg: var(--color-text);--_border: var(--color-border-strong)}.ds-button--secondary:hover:not(:disabled){--_bg: var(--color-surface-hover);--_border: var(--color-accent)}.ds-button--ghost{--_bg: transparent;--_fg: var(--color-text-secondary);--_border: transparent}.ds-button--ghost:hover:not(:disabled){--_bg: var(--color-surface-hover);--_fg: var(--color-text)}.ds-button--danger{--_bg: transparent;--_fg: var(--color-danger);--_border: var(--color-border-strong)}.ds-button--danger:hover:not(:disabled){--_bg: var(--color-accent-soft);--_border: var(--color-accent)}.ds-button--sm{padding:.4rem .75rem;font-size:var(--fs-xs)}.ds-button--lg{padding:.85rem 1.5rem;font-size:var(--fs-base)}.ds-button--block{width:100%}.ds-badge{--_bg: var(--color-surface-raised);--_fg: var(--color-text-secondary);--_border: var(--color-border);display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:.25rem .55rem;border:var(--border-thin) solid var(--_border);border-radius:var(--radius-pill);color:var(--_fg);background:var(--_bg);white-space:nowrap}.ds-badge__dot{width:.4rem;height:.4rem;border-radius:var(--radius-pill);background:currentColor}.ds-badge--accent{--_bg: var(--color-accent-soft);--_fg: var(--color-accent-text);--_border: var(--color-accent)}.ds-badge--success{--_bg: var(--color-success-soft);--_fg: var(--color-success);--_border: var(--color-success)}.ds-badge--warning{--_bg: var(--color-warning-soft);--_fg: var(--color-warning);--_border: var(--color-warning)}.ds-badge--danger{--_bg: var(--color-danger-soft);--_fg: var(--color-danger);--_border: var(--color-danger)}.ds-badge--info{--_bg: var(--color-info-soft);--_fg: var(--color-info);--_border: var(--color-info)}.ds-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);background-image:linear-gradient(180deg,rgb(255 255 255 / 1.5%),transparent 120px);box-shadow:var(--shadow-sm)}.ds-card--interactive{transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.ds-card--interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.ds-card--accent:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:var(--radius-lg) 0 0 var(--radius-lg);background:var(--color-accent);box-shadow:0 0 16px -2px var(--color-accent-glow)}.ds-card__title{margin:0;font-family:var(--font-display);font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight);color:var(--color-text)}.ds-error-notice{display:grid;justify-items:start;gap:var(--space-3);padding:var(--space-4);border:var(--border-thin) solid var(--color-danger);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-danger-soft)}.ds-error-notice__title{margin:0;font-weight:var(--fw-semibold)}.ds-error-notice__details{color:var(--color-text-secondary);font-size:var(--fs-sm)}.ds-error-notice__details summary{color:var(--color-danger);cursor:pointer}.ds-error-notice__details pre{margin:var(--space-2) 0 0;font-family:var(--font-mono);font-size:var(--fs-xs);line-height:var(--lh-normal);white-space:pre-wrap;overflow-wrap:anywhere}.ds-field{display:grid;gap:var(--space-2)}.ds-field__label{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.ds-field__hint{font-size:var(--fs-xs);color:var(--color-text-muted)}.ds-field__error{font-size:var(--fs-xs);color:var(--color-danger)}.ds-input,.ds-select{width:100%;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-text);padding:.6rem .75rem;border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-sunken);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.ds-input::placeholder{color:var(--color-text-muted)}.ds-input:focus-visible,.ds-select:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--ring-focus)}.ds-input:disabled,.ds-select:disabled{opacity:.55;cursor:not-allowed}.ds-select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2rem}.ds-checkbox{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-text-secondary);cursor:pointer}.ds-checkbox input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--color-accent);cursor:pointer}.ds-divider{height:var(--border-thin);border:0;background:var(--color-border)}.ds-text-muted{color:var(--color-text-muted)}.ds-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:root{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg);color:var(--color-text);background-image:radial-gradient(120% 80% at 50% -10%,rgb(239 43 52 / 5%),transparent 60%);background-attachment:fixed}button,input,select{font:inherit}a{color:var(--color-accent-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);letter-spacing:var(--tracking-tight);color:var(--color-text)}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:var(--tracking-wide);line-height:1;border:var(--border-thin) solid var(--color-accent);border-radius:var(--radius-md);padding:.65rem 1.1rem;color:var(--color-text-on-accent);background:var(--color-accent);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}button:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--glow-accent)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--ring-focus)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.page-heading h1{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold)}.page-heading p{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.page-heading a{border-radius:var(--radius-md);padding:.65rem var(--space-4);color:var(--color-text-on-accent);background:var(--color-accent);font-weight:var(--fw-medium);text-decoration:none;transition:background var(--dur-fast) var(--ease-out)}.page-heading a:hover{background:var(--color-accent-hover)}.loading-screen,.login-page{min-height:100vh;display:grid;place-items:center;color:var(--color-text-secondary)}.login-page{padding:var(--space-5);background:radial-gradient(80% 60% at 50% 0%,rgb(239 43 52 / 10%),transparent 55%),var(--color-bg-sunken)}.login-card{width:min(100%,26rem);display:grid;gap:var(--space-5);padding:var(--space-6);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}.login-card h1{margin:var(--space-2) 0 var(--space-1);font-size:var(--fs-xl);font-weight:var(--fw-bold)}.login-card p{margin:0;color:var(--color-text-muted)}.login-card__note{margin-top:var(--space-1);font-size:var(--fs-sm)}.login-card label{display:grid;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.login-card__help{display:grid;justify-items:start;gap:var(--space-2);margin-top:calc(var(--space-3) * -1)}.login-card__help .ds-button{padding-inline:0}.login-card .form-error{color:var(--color-danger);font-family:var(--font-sans);text-transform:none;letter-spacing:normal}.brand{font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text)}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.app-header{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:var(--border-thin) solid var(--color-border);background:#0b0d10cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.app-header__brand{color:inherit;text-decoration:none}.app-header__brand:hover{text-decoration:none}.product-name{margin-left:var(--space-3);color:var(--color-text-muted);font-family:var(--font-sans);font-weight:var(--fw-medium)}.user-nav{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--fs-sm)}.role-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-pill);padding:.25rem .6rem;border:var(--border-thin) solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.generate-draft{margin:0 0 var(--space-4);padding:var(--space-4);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.generate-draft h2{margin:0 0 var(--space-3);font-size:var(--fs-md);font-weight:var(--fw-bold)}.generate-draft form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-3)}.generate-draft label{display:grid;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.generate-draft select{min-width:11rem;font-family:var(--font-sans);font-size:var(--fs-base);text-transform:none;letter-spacing:normal;color:var(--color-text);border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-md);padding:.6rem .75rem;background:var(--color-bg-sunken)}.generate-draft .checkbox-label{min-height:2.6rem;display:flex;align-items:center;gap:var(--space-2);text-transform:none;letter-spacing:normal;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-text-secondary)}.generate-draft .checkbox-label input{accent-color:var(--color-accent)}.generate-draft p{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-family:var(--font-sans)}.opportunity-page{display:grid;gap:var(--space-4)}.opportunity-panel{display:grid;gap:var(--space-4);padding:var(--space-4);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.opportunity-panel h2{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.opportunity-panel p{margin:0;color:var(--color-text-muted)}.opportunity-panel form{display:grid;gap:var(--space-3)}.opportunity-panel label{display:grid;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary)}.opportunity-panel input:not([type=file]){width:min(100%,28rem);font-family:var(--font-sans);font-size:var(--fs-base);text-transform:none;letter-spacing:normal;color:var(--color-text);border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-md);padding:.7rem;background:var(--color-bg-sunken)}.opportunity-panel input:not([type=file]):focus-visible{border-color:var(--color-accent)}.file-dropzone{position:relative;width:min(100%,42rem);min-height:8rem;place-items:center;border:var(--border-thin) dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-bg-sunken);color:var(--color-text-muted);text-align:center;transition:border-color var(--dur-base) var(--ease-out)}.file-dropzone:hover{border-color:var(--color-accent)}.file-dropzone:focus-within{outline:2px solid var(--color-accent);outline-offset:2px}.file-dropzone input[type=file]{position:absolute;width:1px;height:1px;clip-path:inset(50%)}.field-optional{color:var(--color-text-muted)}.file-list{margin:0;padding-left:1.25rem;color:var(--color-text-secondary)}.opportunity-panel table{width:100%;border-collapse:collapse;background:transparent}.opportunity-panel th,.opportunity-panel td{padding:var(--space-3);border-bottom:var(--border-thin) solid var(--color-border);text-align:left}.opportunity-panel .docset-row-excluded{color:var(--color-text-muted);opacity:.72}.opportunity-panel button{justify-self:start}.upload-progress{display:grid;gap:var(--space-2);color:var(--color-text-secondary)}.upload-progress progress{width:min(100%,42rem);accent-color:var(--color-accent)}.run-layout{display:grid;gap:var(--space-4);width:min(100%,var(--layout-max));margin:0 auto;padding:var(--space-5)}.run-layout__header{padding:var(--space-4);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.run-layout__header h1{margin:var(--space-1) 0;font-size:var(--fs-2xl);font-weight:var(--fw-bold)}.run-layout__run-id{margin:0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.run-layout__run-id{text-transform:none}.run-layout__phase{min-width:0}.phase-placeholder__note{margin:0;color:var(--color-text-muted)}.takeoff-overview{display:grid;gap:var(--space-4)}.takeoff-overview__glance{gap:var(--space-4)}.takeoff-overview__run-id{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--fs-2xs)}.takeoff-overview__stats{padding:0;border:0;background:transparent}.takeoff-overview__stats dd{text-align:right}.takeoff-overview__badges,.takeoff-overview__downloads,.takeoff-findings__item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.takeoff-overview__downloads{padding-top:var(--space-3);border-top:var(--border-thin) solid var(--color-border)}.takeoff-overview__downloads a{text-decoration:none}.takeoff-overview__list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.takeoff-overview__list li{display:grid;gap:var(--space-2);padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken);color:var(--color-text-secondary)}.takeoff-overview__empty{margin:0;color:var(--color-text-muted)}.takeoff-findings__group{display:grid;gap:var(--space-2)}.takeoff-findings__group h3{margin:0;color:var(--color-text);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.takeoff-findings__rationale{color:var(--color-text-muted)}.takeoff-findings__rationale summary{cursor:pointer;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.takeoff-findings__rationale summary:focus-visible{outline:none;box-shadow:var(--ring-focus)}.takeoff-findings__rationale p{margin:var(--space-2) 0 0}.workspace-panel{min-height:calc(100vh - 6rem);padding:var(--space-5);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);background-image:linear-gradient(180deg,rgb(255 255 255 / 1.5%),transparent 120px)}.workspace-panel h2{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.workspace-panel p{color:var(--color-text-secondary)}.help-tip{position:relative;display:inline-flex;vertical-align:text-top;margin-left:.25em}.help-tip__trigger{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text-secondary);background:var(--color-surface-raised);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);line-height:1;cursor:help}.help-tip__trigger:hover,.help-tip__trigger:focus-visible{border-color:var(--color-accent);color:var(--color-text);background:var(--color-accent-soft)}.help-tip__trigger:focus-visible{outline:none;box-shadow:var(--ring-focus)}.help-tip__tooltip{position:absolute;z-index:20;bottom:calc(100% + var(--space-2));left:50%;width:max-content;max-width:min(18rem,80vw);padding:var(--space-2) var(--space-3);border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-bg-sunken);box-shadow:var(--shadow-md);font-size:var(--fs-xs);line-height:var(--lh-snug);transform:translate(-50%) translateY(2px);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.help-tip:hover .help-tip__tooltip,.help-tip:focus-within .help-tip__tooltip{opacity:1;transform:translate(-50%) translateY(0)}.stage-strip{grid-column:1 / -1;padding:var(--space-4);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.stage-strip header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3)}.stage-strip h2{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.stage-strip p{margin:0;color:var(--color-text-muted)}.stage-strip ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.stage-strip li{position:relative;display:grid;gap:var(--space-2);min-width:0;padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken);transition:border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out)}.stage-strip li.stage-reached,.stage-strip li.stage-terminal{border-color:var(--color-success);background:var(--color-success-soft)}.stage-strip li.stage-terminal-error{border-color:var(--color-accent);background:var(--color-accent-soft-strong);box-shadow:var(--glow-accent)}.stage-strip strong{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.stage-strip span{font-family:var(--font-mono);color:var(--color-text-muted);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.stage-strip li.stage-active{border-color:var(--color-warning);background:var(--color-warning-soft)}.stage-strip li p{margin:0;font-size:var(--fs-xs);color:var(--color-text-secondary)}.stage-strip small{color:var(--color-text-muted);font-size:var(--fs-2xs);line-height:var(--lh-snug)}.stage-strip dl{display:grid;gap:var(--space-1);margin:0}.stage-strip dl div{display:flex;justify-content:space-between;gap:var(--space-2)}.stage-strip dt{color:var(--color-text-muted);font-size:var(--fs-xs)}.stage-strip dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text)}.review-metrics-card{margin-block:var(--space-4)}.review-metrics-card__strip{padding:var(--space-3)}.review-metrics-card__strip dl{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.review-metrics-card__strip dl div{align-items:flex-start;padding:var(--space-2);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-sm)}.review-metrics-card__strip dd{display:grid;gap:var(--space-1);text-align:right}.review-metrics-card__strip dd span{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--color-text)}.triage-strip__status{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.triage-strip__status p{margin:0}.triage-run-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3)}.triage-strategy{display:flex;flex-direction:column;gap:var(--space-1);font-size:.85rem;color:var(--color-text-muted)}.triage-strategy span{display:inline-flex;align-items:center;gap:var(--space-1)}.gaps-deck{display:grid;grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);gap:var(--space-4)}.gaps-deck__progress{grid-column:1 / -1}.gaps-deck__progress dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.gaps-deck__progress dl div{align-items:center}.gaps-deck__filters{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.gaps-deck__filters label{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-xs)}.gaps-deck__filters span{color:var(--color-text-muted);font-size:var(--fs-xs)}.gaps-deck__rail{display:grid;align-content:start;gap:var(--space-2)}.gaps-deck__rail-item{flex-direction:column;align-items:stretch;justify-content:start;gap:var(--space-1);min-height:4.5rem;min-width:0;white-space:normal;text-align:left}.gaps-deck__rail-item span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.gaps-deck__rail-item span:first-child{color:inherit}.gaps-deck__rail-item span:last-child{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted);text-transform:uppercase;white-space:nowrap}.gaps-deck__rail-item.ds-button--primary span:last-child{color:var(--color-text-on-accent)}.gap-card{min-width:0}.gap-card__meta,.gap-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.gap-card__lineage{color:var(--color-text-secondary)}.gap-card__reason{padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.gap-card__reason summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted);text-transform:uppercase}.gap-card__reason summary:focus-visible{outline:none;box-shadow:var(--ring-focus)}.gap-card__reason p,.gap-card__error{margin-bottom:0}.gap-card__details{margin:var(--space-4) 0}.gap-card__details dl div,.gap-source__details dl div{align-items:start}.gap-card__details dd,.gap-source__details dd{overflow-wrap:anywhere;text-align:right}.gap-card__preformatted{white-space:pre-wrap}.gap-card__resolution{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.gap-card__resolution button{justify-self:start}.gap-card__error{color:var(--color-danger)}.gap-source{display:grid;gap:var(--space-4)}.gap-source__excerpt{padding-bottom:var(--space-3);border-bottom:var(--border-thin) solid var(--color-border)}.gap-source__excerpt h3{margin:0 0 var(--space-2);font-size:var(--fs-sm)}.gap-source__excerpt p{margin:0;white-space:pre-wrap}.gap-source__pdf{display:grid;gap:var(--space-3)}.gap-source__pdf-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.gap-source__pdf-nav span{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted)}.app-stepper{padding:var(--space-4);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.app-stepper ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.app-stepper__item{min-width:0}.app-stepper__link{display:grid;gap:var(--space-2);min-height:6.25rem;padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken);color:var(--color-text);text-decoration:none;transition:border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.app-stepper__link:hover{border-color:var(--color-accent);background:var(--color-surface-hover);text-decoration:none}.app-stepper__link:focus-visible{outline:none;box-shadow:var(--ring-focus)}.app-stepper__item--active .app-stepper__link{border-color:var(--color-accent);background:var(--color-accent-soft-strong);box-shadow:var(--glow-accent)}.app-stepper__index{font-family:var(--font-mono);color:var(--color-text-muted);font-size:var(--fs-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.app-stepper strong{font-family:var(--font-display);font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:var(--tracking-normal)}.app-side-panel{position:fixed;top:var(--header-height);right:0;z-index:30;width:min(28rem,100vw);height:calc(100vh - var(--header-height));display:grid;grid-template-rows:auto 1fr;border-left:var(--border-thin) solid var(--color-border-strong);background:var(--color-surface);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform var(--dur-base) var(--ease-out);pointer-events:none}.app-side-panel--open{transform:translate(0);pointer-events:auto}.app-side-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-thin) solid var(--color-border)}.app-side-panel__header h2{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}.app-side-panel__body{min-height:0;overflow:auto;padding:var(--space-4);color:var(--color-text-secondary)}.approval-control{display:grid;gap:var(--space-2);margin:var(--space-4) 0;padding-bottom:var(--space-4);border-bottom:var(--border-thin) solid var(--color-border)}.approval-control button{justify-self:start}.approval-control p{margin:0;color:var(--color-text-secondary)}table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.takeoff-device-table-wrap{overflow-x:auto;border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.takeoff-device-table{min-width:42rem}.takeoff-device-table th,.takeoff-device-table td{vertical-align:top}.takeoff-device-table td:last-child{color:var(--color-text-muted)}th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-bottom:var(--border-thin) solid var(--color-border-strong)}td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-thin) solid var(--color-border);color:var(--color-text-secondary)}tbody tr{transition:background var(--dur-fast) var(--ease-out)}tbody tr:hover{background:var(--color-surface-hover)}main{padding:var(--space-5)}main h1{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}.app-shell main{padding:var(--space-4)}@media(max-width:48rem){.app-header{align-items:flex-start;flex-direction:column}.user-nav{width:100%;flex-wrap:wrap}.user-nav button{margin-left:auto}.app-stepper ol,.gaps-deck,.gaps-deck__progress dl{grid-template-columns:1fr}}.gap-edit-form{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.gap-edit-form__modes,.gap-edit-form__quick-picks{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.gap-edit-form__quick-picks>span{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--color-text-muted);text-transform:uppercase}.gap-edit-form__section{display:grid;gap:var(--space-3)}.gap-edit-form__results{display:grid;gap:var(--space-2)}.gap-edit-form__result{justify-content:start;min-height:3.25rem;text-align:left;white-space:normal}.gap-edit-form__result span,.gap-edit-form__result small{display:block}.gap-edit-form__result small{margin-top:var(--space-1);color:var(--color-text-muted)}.gap-edit-form__selected{margin:0}.gap-edit-form__line dl div{align-items:start}.gap-edit-form__line dd{overflow-wrap:anywhere;text-align:right}.generate-phase{display:grid;gap:var(--space-4)}.generate-content-blocks,.generate-draft-group,.generate-novel-list{display:grid;gap:var(--space-3)}.generate-draft-group ul,.generate-draft-line ul,.generate-recheck-warning ul{margin:0;padding-left:var(--space-5)}.generate-draft-line{margin-bottom:var(--space-3)}.generate-draft-line article,.generate-novel-item{display:grid;gap:var(--space-3);padding:var(--space-3);border:var(--border-thin) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-sunken)}.generate-draft-line header,.generate-novel-item header,.generate-total,.generate-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.generate-draft-line header span{display:flex;gap:var(--space-2);flex-wrap:wrap}.generate-draft-line p,.generate-novel-item p,.generate-recheck-warning p{margin:0;color:var(--color-text-secondary)}.generate-draft-line dl,.generate-novel-item dl,.generate-congruence-bucket dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--space-2) var(--space-4);margin:0}.generate-draft-line dt,.generate-novel-item dt,.generate-congruence-bucket dt{color:var(--color-text-muted);font-size:var(--fs-xs)}.generate-draft-line dd,.generate-novel-item dd,.generate-congruence-bucket dd{margin:0;font-family:var(--font-mono);color:var(--color-text)}.generate-total{margin-top:var(--space-4);padding-top:var(--space-3);border-top:var(--border-thin) solid var(--color-border);font-family:var(--font-display);font-size:var(--fs-lg)}.generate-congruence-summary,.generate-gap-summary{margin-bottom:var(--space-4)}.generate-congruence-summary dl,.generate-gap-summary dl{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-3)}.generate-congruence-summary dl div,.generate-gap-summary dl div{align-items:center}.generate-congruence-bucket{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.generate-novel-item h3,.generate-congruence-bucket h3,.generate-recheck-warning h3{margin:0}.generate-novel-item__form{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-3)}.generate-actions{justify-content:start;align-self:end}.generate-acknowledge{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);color:var(--color-text-secondary)}.generate-acknowledge input{accent-color:var(--color-accent)}.generate-recheck-warning{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3);border:var(--border-thin) solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-soft)}
