:root { --ink:#17221e; --muted:#5d6c65; --paper:#f5f2ea; --card:#fffdf8; --accent:#b24f34; --line:#d8d8ca; }
.draft-status { color:var(--muted); font:12px/1.4 Arial,sans-serif; margin:12px 0 0; }
* { box-sizing:border-box; } body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 Georgia,serif; } a { color:var(--accent); }
.shell { max-width:1080px; margin:auto; padding:48px 22px; } header { max-width:760px; margin-bottom:32px; } .eyebrow { color:var(--accent); font:700 12px/1.2 Arial,sans-serif; letter-spacing:.16em; } h1 { font-size:clamp(2.4rem,6vw,5rem); line-height:.98; margin:14px 0 20px; letter-spacing:-.05em; } h2 { font-size:1.35rem; margin-top:0; } .lede { color:var(--muted); font-size:1.2rem; max-width:650px; } .workspace { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; } .card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:26px; box-shadow:0 8px 25px #28392d0b; } .grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; } label { display:block; color:var(--muted); font:600 13px/1.3 Arial,sans-serif; margin:0 0 16px; } label span { float:right; font-weight:400; } input,select,textarea { width:100%; margin-top:7px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); padding:11px; font:16px Georgia,serif; } button { width:100%; border:0; border-radius:6px; padding:13px 16px; background:var(--accent); color:#fff; font:700 14px Arial,sans-serif; cursor:pointer; margin-top:8px; } button:hover { filter:brightness(.92); } .secondary { background:var(--ink); width:auto; } .result { border-top:5px solid var(--accent); } .price { font-size:clamp(3rem,8vw,5rem); line-height:1; margin:4px 0; letter-spacing:-.06em; } .muted,.note { color:var(--muted); } .answer { border-top:1px solid var(--line); padding:12px 0; display:flex; justify-content:space-between; gap:20px; font-family:Arial,sans-serif; font-size:14px; } .answer strong { font-size:1.1rem; } .note { font-size:14px; } textarea { margin:10px 0; resize:vertical; } .copy { margin-top:20px; max-width:760px; } footer { margin-top:28px; color:var(--muted); font:12px/1.5 Arial,sans-serif; max-width:800px; } footer label { display:inline; font:inherit; } footer input { width:auto; margin:0; } .error { color:#9d291d; font-family:Arial,sans-serif; }
.offer { margin-top:18px; padding-top:8px; border-top:1px dashed var(--line); }
.offer.below-floor { background:#fff4f1; margin:18px -10px 0; padding:14px 10px 8px; border:1px solid #f0c8bc; border-radius:8px; }
.offer.below-floor .eyebrow { color:#9d291d; }
footer a { color:var(--accent); }
@media (max-width:720px) { .shell { padding:30px 15px; } .workspace { grid-template-columns:1fr; } .grid { grid-template-columns:1fr; gap:0; } h1 { font-size:3rem; } }
.actions { display:flex; flex-wrap:wrap; gap:8px; }
.actions button { flex:1 1 210px; margin-top:0; }
.usage-compare { margin:18px 0 8px; padding-top:8px; border-top:1px solid var(--line); }
.usage-compare h3 { font-size:1.05rem; margin:0 0 8px; }
/* Grid items default to `min-width:auto`, so the widest table inside a card
   pushed the card past the viewport and the whole page scrolled sideways on a
   phone — 411px of content in a 390px window — instead of the table scrolling
   inside its own `.table-wrap`. */
.workspace > * { min-width:0; }
.table-wrap { overflow-x:auto; }
.usage-table { width:100%; border-collapse:collapse; font:13px/1.4 Arial,sans-serif; margin:8px 0 0; }
.usage-table caption { caption-side:bottom; color:var(--muted); font:12px/1.4 Arial,sans-serif; text-align:left; padding-top:8px; }
.usage-table th, .usage-table td { border-bottom:1px solid var(--line); padding:8px 6px; text-align:right; vertical-align:top; }
.usage-table th:first-child, .usage-table td:first-child { text-align:left; }
.usage-table .warn-row td { color:#9d291d; }
.verdict { font:600 14px/1.45 Arial,sans-serif; margin:12px 0 0; }
.needs-float { color:#9d291d; }
.subgrid { border:1px solid var(--line); border-radius:8px; padding:14px 16px 2px; margin:0 0 16px; }
.subgrid legend { color:var(--ink); font:700 13px/1.3 Arial,sans-serif; padding:0 6px; }
.subgrid .optional { font-weight:400; color:var(--muted); }
.subgrid .note { margin:0 0 12px; }
.copy ul { color:var(--muted); padding-left:1.2em; }
.copy a { color:var(--accent); }
.scenarios { margin-top:20px; }
.usage-table tr.selected { background:#fff4ee; }
.usage-table tr.overflow { color:var(--muted); }
button.apply { width:auto; margin:0; padding:8px 10px; font-size:12px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
