* { box-sizing:border-box; }
body { margin:0; line-height:1.6; }
[hidden] { display:none !important; }
a { color:inherit; text-underline-offset:3px; }
button,input,select { font:inherit; }
button { cursor:pointer; min-height:44px; padding:9px 13px; border:1px solid var(--studio-rule); border-radius:5px; background:#fff; color:var(--studio-ink); font-weight:600; font-size:13px; }
button:hover { background:var(--studio-sage); }
button:disabled { opacity:.5; cursor:default; }
.primary { background:var(--studio-forest); color:#fff; border-color:var(--studio-forest); }
.primary:hover { background:#124936; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.15; font-weight:500; }
h1,h2 { font-family:Fraunces,Georgia,serif; }
h1 { font-size:clamp(44px,6vw,72px); letter-spacing:-.035em; margin-bottom:20px; }
h2 { font-size:clamp(27px,3vw,36px); margin-bottom:14px; }
h3 { font-size:18px; }
.hero { padding-block:52px 36px; }
.eyebrow { font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--studio-forest); margin-bottom:16px; }
.lede { max-width:690px; font-size:19px; color:var(--studio-muted); margin-bottom:16px; }
.hero-note,.small { font-size:12px; color:var(--studio-muted); line-height:1.6; }
.actions { display:flex; flex-wrap:wrap; gap:8px; }
.workspace-bar { padding:20px; background:var(--studio-sage); border:1px solid var(--studio-rule); border-radius:8px; margin-bottom:28px; }
.workspace-bar .small { margin:12px 0 8px; max-width:920px; }
#status { font-size:13px; margin:0; font-weight:600; }
.workspace-layout { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr); gap:32px; align-items:start; }
.input-panel { padding:24px; border:1px solid var(--studio-rule); border-radius:8px; min-width:0; }
.input-panel .actions { margin:12px 0 18px; }
.panel-heading { margin-bottom:20px; }
.path-picker label,.field label { display:block; font-size:12px; font-weight:600; margin-bottom:6px; }
input,select { width:100%; min-height:46px; border:1px solid #a9b9ad; border-radius:4px; padding:9px 10px; background:#fff; color:var(--studio-ink); font-size:16px; font-variant-numeric:tabular-nums; }
input[aria-invalid=true] { border-color:#a1462c; }
.field { margin-bottom:15px; }
.input-group { border-top:1px solid var(--studio-rule); padding-top:14px; margin-top:18px; }
summary { cursor:pointer; min-height:44px; padding:9px 0; font-size:14px; font-weight:600; }
.toggle { display:flex; align-items:center; gap:10px; margin:8px 0 15px; font-size:13px; font-weight:600; }
.toggle input { width:20px; min-height:20px; accent-color:var(--studio-forest); }
.group-fields { margin:0; padding:0; border:0; min-width:0; }
.group-fields:disabled { opacity:.5; }
.calculate { width:100%; margin-top:16px; font-size:14px; }
.notice { border-left:3px solid #b46347; background:#faf5ef; padding:14px 16px; font-size:13px; margin:18px 0; }
.notice ul { padding-left:18px; }
.results-panel { min-width:0; padding-top:12px; }
.assumption { font-size:12px; color:var(--studio-muted); }
.metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.metric { padding:20px; background:var(--studio-sage); border:1px solid var(--studio-rule); border-radius:6px; }
.metric span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
.metric strong { display:block; font-size:clamp(24px,3vw,34px); line-height:1.25; margin:10px 0; font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.metric p { margin:0; font-size:12px; }
.chart { margin-top:24px; border:1px solid var(--studio-rule); border-radius:6px; padding:14px 8px; }
.chart svg { width:100%; display:block; overflow:visible; }
.chart text { font-family:Inter,sans-serif; fill:var(--studio-muted); font-size:11px; }
.chart-legend { display:flex; gap:18px; flex-wrap:wrap; padding:0 12px; font-size:11px; }
.chart-legend span:first-child { color:var(--studio-forest); }
.chart-legend span:last-child { color:#994526; }
.event-list { margin-block:24px; }
.event { border-bottom:1px solid var(--studio-rule); padding:12px 0; display:grid; grid-template-columns:105px 1fr; gap:16px; font-size:13px; }
.event p { margin:0; }
.event time { color:var(--studio-muted); font-size:12px; }
.table-scroll { overflow:auto; max-height:480px; border:1px solid var(--studio-rule); }
table { border-collapse:collapse; min-width:900px; width:100%; font-size:12px; font-variant-numeric:tabular-nums; }
th,td { text-align:right; padding:10px; border-bottom:1px solid var(--studio-rule); white-space:nowrap; }
th:first-child,td:first-child { text-align:left; }
thead th { position:sticky; top:0; background:var(--studio-sage); }
tr.breach td:last-child { font-weight:700; background:#faf0e9; }
caption { text-align:left; padding:12px; font-weight:600; }
.comparison { margin-top:56px; padding-block:32px; border-top:1px solid var(--studio-rule); }
.comparison > p { max-width:760px; }
.comparison-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; }
.path-card { min-width:0; border:1px solid var(--studio-rule); padding:22px; border-radius:6px; }
.path-card.selected { border:2px solid var(--studio-forest); padding:21px; }
.path-card h3 { overflow-wrap:anywhere; margin-bottom:8px; }
.path-card dl { margin:16px 0; }
.path-card dt { font-size:11px; color:var(--studio-muted); }
.path-card dd { margin:0 0 10px; font-size:17px; font-weight:600; font-variant-numeric:tabular-nums; }
.assumption-list { font-size:12px; }
.assumption-list div { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:5px 0; border-bottom:1px solid var(--studio-rule); }
.assumption-list dd { font-size:12px; font-weight:400; text-align:right; margin:0; }
.assumption-list dt { color:var(--studio-ink); }
.methodology { padding-block:42px; border-top:1px solid var(--studio-rule); }
.method-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 40px; margin:24px 0; }
.method-grid p { color:var(--studio-muted); font-size:14px; }
footer { padding:20px 0; font-size:12px; color:var(--studio-muted); border-top:1px solid var(--studio-rule); }
@media(max-width:900px) {
  .workspace-layout { grid-template-columns:minmax(260px,1fr) minmax(0,1.3fr); gap:20px; }
  .metrics { grid-template-columns:1fr; }
  .comparison-grid { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  .workspace-layout,.method-grid { grid-template-columns:1fr; }
  .hero { padding-top:36px; }
  .input-panel,.workspace-bar { padding:18px; }
  .event { grid-template-columns:1fr; gap:3px; }
  .metrics { grid-template-columns:1fr 1fr; }
  .metric { padding:14px; }
  .metric strong { font-size:24px; }
}
@media(max-width:360px) { .metrics { grid-template-columns:1fr; } }
@media print {
  header,.skip-link,.workspace-bar,.input-panel,.actions,.calculate,.secondary-actions,footer,.monthly-detail { display:none !important; }
  .wrap,.planning-studio .wrap { width:100%; }
  .hero { padding:12px 0; }
  h1 { font-size:32px; }
  .workspace-layout,.comparison-grid { display:block; }
  .results-panel,.comparison,.methodology { margin:0; padding:16px 0; }
  .path-card { break-inside:avoid; margin-bottom:16px; }
  .assumption-list { display:block; }
  .chart { max-width:680px; }
  body { color:#000; background:#fff; }
}
