:root{--canvas:#f6f7f9;--surface:#fff;--surface-sunken:#f2f4f7;--ink:#101828;--ink-soft:#475467;--muted:#667085;--line:#e4e7ec;--line-strong:#d0d5dd;--accent:#2f5bea;--accent-dark:#1f47c4;--accent-soft:#eef2ff;--good:#12805c;--good-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fffaeb;--bad:#b42318;--bad-soft:#fef3f2;--info:#175cd3;--info-soft:#eff8ff;--neutral-soft:#f2f4f7;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #1018280f;--shadow:0 4px 14px #10182814;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:"SF Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.3}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:13px}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);background:var(--surface-sunken);border-radius:4px;padding:1px 5px;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{flex-direction:column;min-height:100%;display:flex}.top-bar{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:20px;height:58px;padding:0 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:baseline;gap:10px;font-weight:650;display:flex}.brand-mark{font-size:17px}.brand-sub{color:var(--muted);font-size:12px;font-weight:500}.nav{gap:4px;margin-left:12px;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--ink-soft);padding:7px 12px;font-size:13.5px;font-weight:500}.nav a:hover{background:var(--surface-sunken);color:var(--ink);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent-dark)}.top-bar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.page{width:100%;max-width:1180px;margin:0 auto;padding:24px}.page-wide{max-width:1360px}.page-header{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-header .grow{flex:1;min-width:0}.page-header .lede{color:var(--ink-soft);max-width:70ch;margin-top:4px}.stack{flex-direction:column;gap:16px;display:flex}.stack-tight{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:12px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.picker{flex:220px;min-width:0}.spacer{flex:1}.grid-two{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-three{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}@media (width<=980px){.grid-two,.grid-three,.split{grid-template-columns:1fr}.split>*,.grid-two>*,.grid-three>*{min-width:0}}@media (width<=720px){.page,.card-head,.card-body{padding:14px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.top-bar{flex-wrap:wrap;gap:10px;height:auto;min-height:58px;padding:10px 14px}.nav{order:3;align-items:center;width:100%;margin-left:0;overflow-x:auto}.nav a{white-space:nowrap}.page-header{flex-direction:column;align-items:stretch}.row{flex-wrap:wrap}.step-rail{padding:8px}.report{padding:22px 18px}.table{width:100%;display:block;overflow-x:auto}label.field,input,select,textarea{min-width:0;max-width:100%}.row-wrap{width:100%}label.field{flex:150px;min-width:0}label.field select,label.field input{width:100%}.chart-frame{overflow-x:auto}.chart-frame svg{min-width:560px}code{overflow-wrap:anywhere}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card+.card{margin-top:0}.card-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.card-head .grow{flex:1;min-width:0}.card-head .sub{color:var(--muted);margin-top:2px;font-size:12.5px}.card-body{padding:18px}.card-body-tight{padding:12px 18px}.card-foot{border-top:1px solid var(--line);background:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:12px 18px}.card-link{color:inherit;display:block}.card-link:hover{border-color:var(--line-strong);box-shadow:var(--shadow);text-decoration:none}.button{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 14px;font-family:inherit;font-size:13.5px;font-weight:550;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.button-sm{height:30px;padding:0 10px;font-size:12.5px}.button-primary{background:var(--accent);color:#fff}.button-primary:hover:not(:disabled){background:var(--accent-dark)}.button-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.button-secondary:hover:not(:disabled){background:var(--surface-sunken)}.button-ghost{color:var(--ink-soft);background:0 0}.button-ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink)}.button-danger{background:var(--surface);color:var(--bad);border-color:#fda29b}.button-danger:hover:not(:disabled){background:var(--bad-soft)}.button:disabled{opacity:.5;cursor:not-allowed}.badge{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-neutral{background:var(--neutral-soft);color:var(--ink-soft);border-color:var(--line)}.badge-info{background:var(--info-soft);color:var(--info);border-color:#b2ddff}.badge-good{background:var(--good-soft);color:var(--good);border-color:#a6f4c5}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#fedf89}.badge-bad{background:var(--bad-soft);color:var(--bad);border-color:#fecdca}.badge-accent{background:var(--accent-soft);color:var(--accent-dark);border-color:#c7d7fe}.chip{background:var(--surface-sunken);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.chip button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.chip button:hover{color:var(--bad)}.chip-selected{background:var(--accent-soft);color:var(--accent-dark);border-color:#c7d7fe}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-label{color:var(--ink-soft);font-size:12.5px;font-weight:600}.field-label .req{color:var(--bad);margin-left:3px}.field-hint{color:var(--muted);font-size:12px}.field-error{color:var(--bad);font-size:12px}.input,.textarea,.select{width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:36px;padding:8px 10px;font-family:inherit;font-size:13.5px}.textarea{resize:vertical;min-height:92px;line-height:1.55}.select{appearance:none;cursor:pointer;background-image:none;padding-right:26px}.input:hover,.textarea:hover,.select:hover{border-color:var(--muted)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:disabled,.textarea:disabled,.select:disabled{background:var(--surface-sunken);color:var(--muted)}.input-group{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.inline-input{border-radius:var(--radius-sm);width:100%;font:inherit;background:0 0;border:1px solid #0000;padding:6px 8px}.inline-input:hover{border-color:var(--line-strong);background:var(--surface)}.inline-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-sunken);font-size:11.5px;font-weight:600}.table tbody tr:hover{background:#fbfcfd}.table tbody tr:last-child td{border-bottom:0}.table-numeric{text-align:right;font-variant-numeric:tabular-nums}.callout{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-sunken);gap:10px;padding:12px 14px;display:flex}.callout-info{background:var(--info-soft);border-color:#b2ddff}.callout-good{background:var(--good-soft);border-color:#a6f4c5}.callout-warn{background:var(--warn-soft);border-color:#fedf89}.callout-bad{background:var(--bad-soft);border-color:#fecdca}.callout .grow{flex:1;min-width:0}.callout-title{font-size:13.5px;font-weight:600}.callout-body{color:var(--ink-soft);margin-top:2px;font-size:13px}.progress{background:var(--surface-sunken);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .24s}.progress-label{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.empty-state{text-align:center;color:var(--muted);padding:40px 20px}.empty-state h3{color:var(--ink);margin-bottom:4px}.empty-state p{max-width:52ch;margin:0 auto 14px}.step-rail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);gap:4px;padding:10px 12px;display:flex;overflow-x:auto}.step-pill{border-radius:var(--radius-sm);cursor:pointer;font:inherit;color:var(--ink-soft);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.step-pill:hover{background:var(--surface-sunken)}.step-pill.active{background:var(--accent-soft);color:var(--accent-dark);border-color:#c7d7fe;font-weight:600}.step-pill-index{background:var(--surface-sunken);width:20px;height:20px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.step-pill.active .step-pill-index{background:var(--accent);color:#fff}.step-pill-done .step-pill-index{background:var(--good);color:#fff}.step-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.step-guidance{color:var(--ink-soft);max-width:78ch;font-size:13.5px}.cause-node{border-left:2px solid var(--line);margin-top:10px;margin-left:6px;padding-left:14px}.cause-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.cause-card+.cause-children{margin-left:12px}.cause-card-head{align-items:flex-start;gap:10px;display:flex}.cause-statement{flex:1;min-width:0;font-size:13.5px;font-weight:550}.cause-facts{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px;display:flex}.cause-card .cause-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.cause-card-confirmed{background:linear-gradient(0deg, var(--good-soft), var(--good-soft));border-color:#a6f4c5}.cause-card-eliminated,.cause-card-contradicted{opacity:.62}.chart-frame{flex-direction:column;gap:8px;display:flex}.chart-frame svg{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;height:auto;display:block}.chart-caption{color:var(--muted);font-size:12px}.chart-grid line{stroke:var(--line);stroke-width:1px}.chart-axis-label{fill:var(--muted);font-size:10px}.chart-bar{fill:var(--accent)}.chart-bar-dim{fill:#c7d7fe}.chart-line{fill:none;stroke:var(--accent);stroke-width:1.8px}.chart-dot{fill:var(--accent)}.chart-limit{stroke:var(--bad);stroke-width:1.2px;stroke-dasharray:5 4}.chart-centre{stroke:var(--good);stroke-width:1.2px}.chart-mean{stroke:var(--warn);stroke-width:1.4px}.chart-point-alt{fill:var(--warn)}.chart-band{fill:var(--accent-soft);opacity:.55}.suggestion{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.suggestion+.suggestion{margin-top:8px}.suggestion-title{font-size:13px;font-weight:600}.suggestion-detail{color:var(--ink-soft);margin-top:3px;font-size:13px}.suggestion-cites{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.report{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);max-width:900px;margin:0 auto;padding:40px 44px}.report h1{margin-bottom:2px;font-size:20px}.report-meta{color:var(--muted);margin-bottom:18px;font-size:12.5px}.report h2{border-bottom:1px solid var(--line);margin:26px 0 10px;padding-bottom:6px;font-size:15px}.report p{color:var(--ink-soft);font-size:13.5px}.report .table th,.report .table td{font-size:12.5px}@media print{.top-bar,.no-print{display:none!important}body{background:#fff}.report{box-shadow:none;border:0;padding:0}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px}.stat-label{color:var(--muted);font-size:12.5px;font-weight:550}.stat-value{letter-spacing:-.02em;margin-top:4px;font-size:26px;font-weight:650}.stat-note{color:var(--muted);margin-top:2px;font-size:12px}.timeline{padding-left:20px;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-entry{padding-bottom:14px;position:relative}.timeline-entry:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:999px;width:10px;height:10px;position:absolute;top:5px;left:-19px}.timeline-entry.marker-action:before{border-color:var(--good)}.timeline-entry.marker-condition:before{border-color:var(--warn)}.timeline-entry .when{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.risk-matrix{grid-template-columns:repeat(5,1fr);gap:3px;display:inline-grid}.risk-cell{background:var(--surface-sunken);border:1px solid var(--line);border-radius:4px;width:22px;height:22px}
