@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root { --ink:#172019; --muted:#667069; --paper:#f4f5f1; --card:#fff; --line:#dfe3dd; --green:#174f3c; --lime:#d9ff64; --red:#b43b35; --amber:#c87a20; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; }
button,input,select { font:inherit; }
.topbar { height:78px; padding:0 max(30px,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); }
.brand { color:var(--ink); display:flex; align-items:center; gap:12px; text-decoration:none; letter-spacing:.07em; }
.brand-mark { width:40px; height:40px; border-radius:11px; display:grid; place-items:center; color:var(--lime); background:var(--green); font:bold 23px/1 Manrope,sans-serif; }
.brand b,.brand small { display:block; }.brand b { font:800 14px/1.1 Manrope,sans-serif; }.brand small { margin-top:3px; font-size:8px; color:var(--muted); }
.status { font-size:12px; font-weight:600; color:var(--muted); }.status span { display:inline-block; width:7px; height:7px; border-radius:50%; background:#5ab477; box-shadow:0 0 0 4px #e1f3e7; margin-right:9px; }
main { max-width:1180px; margin:auto; padding:0 30px 80px; }
.hero { padding:70px 0 50px; display:grid; grid-template-columns:2fr 1fr; align-items:end; }
.hero .eyebrow { grid-column:1/-1; }.eyebrow { text-transform:uppercase; letter-spacing:.16em; color:var(--green); font-size:11px; font-weight:700; }.eyebrow span { display:inline-block; width:25px; height:2px; background:var(--green); vertical-align:middle; margin-right:10px; }
.hero h1,.report-toolbar h1 { margin:18px 0 0; font:800 clamp(42px,6vw,72px)/.99 Manrope,sans-serif; letter-spacing:-.055em; }.hero h1 em { color:var(--green); font-style:normal; }.hero p { color:var(--muted); font-size:16px; line-height:1.7; margin:0 0 4px 40px; max-width:380px; }
.setup-form { display:grid; gap:18px; }.panel { position:relative; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:30px; box-shadow:0 8px 30px rgba(25,50,32,.035); }.stake-panel,.disaster-panel { display:grid; grid-template-columns:52px 1.2fr 1fr; align-items:center; gap:15px; }
.step { width:38px; height:38px; border:1px solid #cdd4cc; border-radius:50%; display:grid; place-items:center; font:700 11px Manrope; color:var(--green); }
.kicker { color:#79817b; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; }.panel-copy h2 { font:700 24px Manrope; margin:5px 0; letter-spacing:-.03em; }.panel-copy p { color:var(--muted); margin:0; font-size:13px; }
.field span,.mobile-label { display:block; color:#59635c; font-size:11px; font-weight:700; margin-bottom:7px; }.field input,.unit-row input,.unit-row select { width:100%; height:48px; border:1px solid #ced5ce; border-radius:9px; background:#fbfcfa; padding:0 14px; outline:none; }.field input:focus,.unit-row input:focus,.unit-row select:focus { border-color:var(--green); box-shadow:0 0 0 3px #e4eee9; }
.panel-heading { display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:15px; }.btn { border:0; border-radius:9px; min-height:44px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center; gap:9px; font-size:12px; font-weight:700; text-decoration:none; cursor:pointer; }.btn.secondary { color:var(--green); background:#fff; border:1px solid #cbd4cd; }.btn.primary { color:#fff; background:var(--green); padding:0 23px; }.btn.primary span { color:var(--lime); font-size:18px; }.btn:hover { filter:brightness(.96); transform:translateY(-1px); }
.unit-table { margin-top:27px; }.unit-head,.unit-row { display:grid; grid-template-columns:2fr 1fr 1fr 42px; gap:12px; align-items:center; }.unit-head { padding:0 12px 9px; color:#7d867f; text-transform:uppercase; font-size:9px; font-weight:700; letter-spacing:.12em; }.unit-row { border-top:1px solid #edf0ec; padding:11px 0; }.unit-row:first-child { border-top:0; }.mobile-label { display:none; }.icon-btn { width:34px; height:34px; border:0; background:transparent; border-radius:50%; color:#919892; font-size:21px; cursor:pointer; }.icon-btn:hover { background:#f4e8e6; color:var(--red); }
.disaster-panel { align-items:start; }.disaster-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.event-card { position:relative; display:flex; align-items:center; gap:11px; min-height:68px; padding:10px 12px; border:1px solid #d8ddd8; border-radius:10px; cursor:pointer; }.event-card:last-child { grid-column:1/-1; }.event-card input { position:absolute; opacity:0; }.event-card:has(input:checked) { border:2px solid var(--green); padding:9px 11px; background:#f2f8f4; }.event-card:has(input:checked)::after { content:"✓"; position:absolute; top:8px; right:9px; width:17px; height:17px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; font-size:10px; }.event-icon { width:38px; height:38px; border-radius:8px; background:#edf1ed; display:grid; place-items:center; font-size:22px; color:var(--green); }.event-card b,.event-card small { display:block; }.event-card b { font-size:12px; }.event-card small { color:var(--muted); font-size:9px; margin-top:3px; }
.generate-bar { background:#202822; border-radius:16px; padding:22px 25px; color:#fff; display:flex; align-items:center; justify-content:space-between; }.generate-bar b,.generate-bar span { display:block; }.generate-bar b { font:700 16px Manrope; }.generate-bar div>span { color:#aeb7b0; font-size:11px; margin-top:3px; }.generate-bar .btn { background:var(--lime); color:#193622; }.generate-bar .btn span { color:inherit; }
.alert,.exercise-note { border-radius:10px; display:flex; gap:14px; align-items:center; padding:14px 18px; }.alert { background:#f8e9e7; color:#822d29; border:1px solid #efd0cd; }.alert b { font-size:12px; }.alert span { font-size:12px; }.exercise-note { background:#fff5d9; border:1px solid #ead9a7; color:#735b1e; margin:20px 0; font-size:12px; }
footer { max-width:1180px; margin:auto; padding:25px 30px 45px; border-top:1px solid var(--line); color:#8a918c; font-size:10px; display:flex; justify-content:space-between; }

/* Reports */
.report-shell { padding-top:50px; }.report-toolbar { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; }.report-toolbar h1 { font-size:42px; margin:10px 0 6px; }.report-toolbar p { color:var(--muted); margin:0; font-size:12px; }.report-toolbar p b { color:var(--green); }.toolbar-actions { display:flex; gap:8px; }.toolbar-actions form { display:flex; }
.print-area { display:grid; gap:22px; }.print-sheet,.unit-report-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:30px; }.print-masthead { display:flex; justify-content:space-between; align-items:center; padding-bottom:19px; border-bottom:3px solid var(--ink); }.print-masthead>div:last-child { text-align:right; }.print-masthead>div:last-child span,.print-masthead>div:last-child small { display:block; }.print-masthead>div:last-child span { color:var(--red); font-weight:800; font-size:11px; letter-spacing:.15em; }.print-masthead>div:last-child small { color:var(--muted); font-size:9px; margin-top:4px; }
.summary-title { padding:28px 0; display:flex; justify-content:space-between; align-items:end; }.summary-title h2 { margin:5px 0 3px; font:800 34px Manrope; letter-spacing:-.04em; }.summary-title p { margin:0; color:var(--muted); font-size:11px; }.incident-badge { text-align:right; border-right:4px solid var(--green); padding-right:12px; }.incident-badge small,.incident-badge b { display:block; }.incident-badge small { color:var(--muted); font-size:8px; letter-spacing:.14em; }.incident-badge b { font:700 14px Manrope; margin-top:3px; }
.headline-stats { display:grid; grid-template-columns:1.25fr repeat(4,1fr); border:1px solid var(--line); border-radius:10px; overflow:hidden; }.headline-stats div { padding:18px; border-left:1px solid var(--line); }.headline-stats div:first-child { border:0; background:var(--green); color:#fff; }.headline-stats span,.headline-stats strong { display:block; }.headline-stats span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.07em; }.headline-stats div:first-child span { color:#b9d1c7; }.headline-stats strong { font:800 27px Manrope; margin-top:4px; }.headline-stats .red strong { color:var(--red); }.headline-stats .amber strong { color:var(--amber); }
.section-label { margin:25px 0 9px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; }.casualty-strip { display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); border-radius:9px; overflow:hidden; }.casualty-strip div { border-left:4px solid #999; padding:13px 14px; }.casualty-strip span,.casualty-strip strong { display:block; }.casualty-strip span { color:var(--muted); font-size:9px; }.casualty-strip strong { font:700 20px Manrope; }.casualty-strip .dead { border-color:#333; }.casualty-strip .critical { border-color:#a72e2a; }.casualty-strip .serious { border-color:#dc6d27; }.casualty-strip .moderate { border-color:#e2b336; }.casualty-strip .slight { border-color:#6a9b70; }
.comparison-table { border-top:2px solid var(--ink); }.comparison-row { display:grid; grid-template-columns:2fr repeat(6,1fr); min-height:42px; align-items:center; border-bottom:1px solid var(--line); font-size:11px; text-align:center; }.comparison-row span:first-child { text-align:left; }.comparison-row small { display:block; color:var(--muted); font-size:8px; }.comparison-row.heading { min-height:31px; color:var(--muted); text-transform:uppercase; font-size:8px; letter-spacing:.06em; }.signoff { display:flex; justify-content:space-between; margin-top:27px; color:var(--muted); font-size:9px; }
.unit-report-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.unit-report-card { break-inside:avoid; padding:24px; }.unit-card-head { display:flex; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:13px; }.unit-card-head span { color:var(--green); text-transform:uppercase; letter-spacing:.12em; font-size:8px; font-weight:700; }.unit-card-head h2 { font:800 23px Manrope; letter-spacing:-.04em; margin:4px 0 0; }.exercise-stamp { border:2px solid var(--red); color:var(--red); transform:rotate(-3deg); padding:5px 8px; text-align:center; font-size:8px; font-weight:800; letter-spacing:.1em; }.unit-meta { display:flex; justify-content:space-between; color:var(--muted); font-size:8px; padding:9px 0 15px; }.unit-households { display:flex; align-items:center; justify-content:space-between; background:var(--green); color:#fff; padding:10px 13px; border-radius:7px; }.unit-households span { font-size:9px; }.unit-households strong { font:700 19px Manrope; }
.damage-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); margin:12px 0; border:1px solid var(--line); border-radius:7px; overflow:hidden; }.damage-grid div { display:grid; grid-template-columns:9px 1fr auto; align-items:center; gap:6px; background:#fff; padding:10px; }.damage-grid span { font-size:9px; }.damage-grid strong { font:700 16px Manrope; }.dot { width:6px; height:6px; border-radius:50%; }.dot.destroyed { background:var(--red); }.dot.damaged { background:var(--amber); }.dot.power { background:#655c8e; }.dot.water { background:#3f87a4; }
.casualty-block { border:1px solid var(--line); border-radius:7px; padding:11px 13px; }.casualty-title { display:flex; justify-content:space-between; padding-bottom:7px; border-bottom:1px solid var(--line); font-size:10px; }.casualty-title span { color:var(--muted); }.casualty-row { display:flex; justify-content:space-between; padding-top:6px; color:var(--muted); font-size:9px; }.casualty-row b { color:var(--ink); }.notes { margin-top:13px; }.notes b { display:block; text-transform:uppercase; font-size:8px; letter-spacing:.08em; }.notes span { display:block; height:17px; border-bottom:1px solid var(--line); }.unit-signoff { display:flex; justify-content:space-between; margin-top:14px; font-size:8px; color:var(--muted); }

@media (max-width:800px) {
  main { padding:0 16px 50px; }.topbar { padding:0 18px; }.status { display:none; }.hero { display:block; padding:45px 0 30px; }.hero p { margin:22px 0 0; }.stake-panel,.disaster-panel { grid-template-columns:45px 1fr; }.stake-field,.disaster-grid { grid-column:1/-1; margin-top:10px; }.panel { padding:21px; }.panel-heading { grid-template-columns:45px 1fr; }.panel-heading .btn { grid-column:1/-1; }.unit-head { display:none; }.unit-row { grid-template-columns:1fr 1fr 38px; padding:15px 0; }.unit-row label:first-child { grid-column:1/-1; }.mobile-label { display:block; }.unit-row .icon-btn { grid-column:3; grid-row:2; }.generate-bar { align-items:stretch; gap:16px; flex-direction:column; }.report-toolbar { align-items:start; gap:25px; flex-direction:column; }.toolbar-actions { flex-wrap:wrap; }.headline-stats { grid-template-columns:1fr 1fr; }.headline-stats div { border-top:1px solid var(--line); }.headline-stats div:first-child { grid-column:1/-1; }.casualty-strip { grid-template-columns:1fr 1fr; }.comparison-table { overflow-x:auto; }.comparison-row { min-width:700px; }.unit-report-grid { grid-template-columns:1fr; }.summary-title { align-items:start; gap:20px; flex-direction:column; }.signoff { gap:13px; flex-direction:column; }
}

@media print {
  @page { size:letter; margin:.35in; }
  body { background:#fff; color:#111; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .no-print { display:none !important; } main,.report-shell { max-width:none; padding:0; margin:0; }.print-area { display:block; }.print-sheet,.unit-report-card { border:0; border-radius:0; box-shadow:none; }
  .stake-summary { min-height:10.25in; padding:.1in; break-after:page; }
  .unit-report-grid { display:grid; grid-template-columns:1fr 1fr; gap:.16in; }
  .unit-report-card { height:4.94in; padding:.18in; border:1px solid #888; border-radius:6px; overflow:hidden; }
  .unit-card-head h2 { font-size:18px; }.damage-grid div { padding:7px 9px; }.casualty-block { padding:8px 11px; }.casualty-row { padding-top:4px; }.notes { margin-top:8px; }.notes span { height:13px; }.unit-signoff { margin-top:9px; }
}
