/* Offshore incident cause assistant. The world is the district investigation report: a typed form, the regulator's alert, the sea. */
:root{
  --paper:#f5f8fa; --card:#ffffff; --ink:#14222c; --mute:#48606f; --rule:#738a9b; --hair:#d5dfe6;
  --accent:#0b6e7f; --accent-ink:#ffffff; --flood:#d3ecef; --flood-line:#0b6e7f; --warn:#9c2520; --warn-bg:#fbe9e7; --ok:#1f6b45; --ok-bg:#e3f2e9;
  --zone-res:#f6edc2; --zone-com:#f3d4cf; --zone-pud:#f8dfc0; --zone-mf:#e2e8d2; --grid:rgba(11,110,127,.07);
  --shadow:0 2px 6px rgba(20,34,44,.08),0 12px 28px -12px rgba(20,34,44,.18);
  --display:"Archivo Narrow","Arial Narrow",system-ui,sans-serif; --body:"Public Sans",system-ui,-apple-system,sans-serif; --mono:ui-monospace,"SFMono-Regular",Menlo,monospace;
  color-scheme:light;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0f171e; --card:#16222b; --ink:#e4ecf2; --mute:#a6b8c5; --rule:#6b8294; --hair:#2b3b48;
  --accent:#6fcbd9; --accent-ink:#0f171e; --flood:#143a40; --flood-line:#6fcbd9; --warn:#f0a39c; --warn-bg:#3a1f1c; --ok:#8fd3ad; --ok-bg:#163326;
  --zone-res:#4a4322; --zone-com:#4b2a26; --zone-pud:#4a3620; --zone-mf:#2f3a2a; --grid:rgba(111,203,217,.07);
  --shadow:0 2px 6px rgba(0,0,0,.35),0 12px 28px -12px rgba(0,0,0,.6); color-scheme:dark;}}
:root[data-theme="dark"]{
  --paper:#0f171e; --card:#16222b; --ink:#e4ecf2; --mute:#a6b8c5; --rule:#6b8294; --hair:#2b3b48;
  --accent:#6fcbd9; --accent-ink:#0f171e; --flood:#143a40; --flood-line:#6fcbd9; --warn:#f0a39c; --warn-bg:#3a1f1c; --ok:#8fd3ad; --ok-bg:#163326;
  --zone-res:#4a4322; --zone-com:#4b2a26; --zone-pud:#4a3620; --zone-mf:#2f3a2a; --grid:rgba(111,203,217,.07);
  --shadow:0 2px 6px rgba(0,0,0,.35),0 12px 28px -12px rgba(0,0,0,.6); color-scheme:dark;}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper) ;color:var(--ink);font:16px/1.55 var(--body);font-variant-numeric:tabular-nums;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;
  -webkit-tap-highlight-color:transparent;caret-color:var(--accent);accent-color:var(--accent);scrollbar-color:var(--rule) transparent}
::selection{background:var(--flood);color:var(--ink)}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
button,input,textarea,select{font:inherit;color:inherit}
button{touch-action:manipulation;cursor:pointer}
[id]{scroll-margin-top:16px}
.wrap{max-width:1180px;margin:0 auto;padding:20px 16px 48px}
header.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:8px 0 20px}
.brand{font:600 22px/1.1 var(--display);letter-spacing:0;margin:0}
.brand small{display:block;font:400 14px/1.4 var(--body);color:var(--mute);margin-top:4px}
.top nav{display:flex;gap:4px 16px;font-size:15px;flex-wrap:wrap}
.top nav a{display:inline-flex;align-items:center;min-height:44px}
h1{font:600 clamp(30px,4.2vw,44px)/1.05 var(--display);letter-spacing:-0.01em;margin:0 0 10px;max-width:22ch}
.lead{font-size:18px;color:var(--mute);margin:0 0 24px;max-width:60ch}
/* the ask form */
.ask{background:var(--card);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow);padding:20px;display:grid;gap:14px}
.field{display:grid;gap:6px}
.field label{font-weight:600;font-size:15px}
.field .hint{color:var(--mute);font-size:14px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);font-size:17px;transition:border-color .12s ease-out,box-shadow .12s ease-out}
.field input:hover{border-color:var(--accent)}
.field input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end}
.btn{min-height:44px;padding:12px 18px;border-radius:8px;border:1px solid var(--rule);background:var(--card);font-weight:600;transition:background-color .12s ease-out,transform .1s ease-out,border-color .12s ease-out}
.btn:hover{border-color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.primary:hover{background:color-mix(in oklab,var(--accent) 86%,var(--ink));border-color:color-mix(in oklab,var(--accent) 86%,var(--ink))}
.btn[disabled]{opacity:.6;cursor:default}
.btn.icon{display:inline-flex;align-items:center;gap:8px}
.btn.icon svg{width:18px;height:18px}
.btn.listening{border-color:var(--warn);color:var(--warn)}
.suggest{position:relative}
.suggest ul{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--card);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);max-height:240px;overflow:auto}
.suggest li{padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.suggest li:hover,.suggest li[aria-selected="true"]{background:var(--flood)}
.suggest li span{color:var(--mute);font-size:14px}
.examples{display:flex;flex-wrap:wrap;gap:8px}
.examples button{min-height:44px;text-align:left;font-size:14px;padding:8px 12px;border-radius:8px;border:1px solid var(--hair);background:var(--paper);transition:border-color .12s ease-out,background-color .12s ease-out}
.examples button:hover{border-color:var(--accent);background:var(--card)}
/* the answer */
.answer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:20px;margin-top:24px;align-items:start}
@media(max-width:900px){.answer{grid-template-columns:1fr}.row{grid-template-columns:1fr}.row .btn{width:100%}}
.sheet{background:var(--card);border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.layer p{overflow-wrap:anywhere}
.sheet h2{font:600 24px/1.1 var(--display);margin:0;padding:18px 20px 6px}
.sheet .q{padding:0 20px 14px;color:var(--mute)}
.layer{padding:16px 20px;border-top:1px solid var(--hair)}
.layer h3{font:600 17px/1.2 var(--display);margin:0 0 8px;display:flex;align-items:center;gap:10px}
.layer h3 .n{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--rule);color:var(--ink);font:600 13px var(--body)}
.layer p{margin:0 0 8px;max-width:72ch}
.layer p:last-child{margin-bottom:0}
.cites{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:4px;vertical-align:baseline}
.cite{font-size:12.5px;line-height:1.3;padding:3px 8px;border-radius:6px;background:var(--paper);border:1px solid var(--hair);color:var(--mute);text-decoration:none;overflow-wrap:anywhere}
.cite:hover{border-color:var(--accent);color:var(--accent)}
.chip{display:inline-block;padding:3px 10px;border-radius:6px;font-weight:600;font-size:14px;color:var(--ink)}
.chip.city,.chip.etj,.chip.county{background:var(--paper);border:1px solid var(--hair)}
.chip.flood{background:var(--flood);border:1px solid var(--flood-line)}
.chip.floodway{background:var(--warn-bg);color:var(--warn)}
.chip.z6{background:var(--flood);border:1px solid color-mix(in oklab,var(--flood-line) 45%,transparent)}.chip.z7,.chip.z4{background:var(--zone-res)}.chip.z1,.chip.z2{background:var(--zone-com)}.chip.z5,.chip.z9,.chip.z11,.chip.z8{background:var(--zone-pud)}.chip.z3{background:var(--zone-mf)}
.stamp{display:inline-block;margin:6px 0 2px;padding:6px 12px;border:2px solid var(--warn);color:var(--warn);border-radius:6px;font:700 15px/1.1 var(--display);transform:rotate(-1.5deg)}
.stamp.ok{border-color:var(--ok);color:var(--ok)}
.notsure{background:var(--warn-bg);color:var(--ink);padding:14px 20px;border-top:1px solid var(--hair)}
.notsure a{color:inherit;font-weight:600}
.withheld{padding:12px 20px;border-top:1px solid var(--hair);color:var(--mute);font-size:14px}
.withheld summary{cursor:pointer;font-weight:600}
.withheld div{margin-top:6px;padding-left:12px;border-left:1px solid var(--hair)}
.dates{padding:12px 20px;border-top:1px solid var(--hair);color:var(--mute);font-size:13.5px;display:flex;flex-wrap:wrap;gap:6px 18px}
.actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--hair)}
.actions .btn{padding:8px 12px;font-size:14px}
/* the map */
.mapcard{position:sticky;top:16px;display:grid;gap:0}
#map{height:360px;border-radius:12px 12px 0 0;background:var(--paper)}
.legend{padding:12px 16px;font-size:13.5px;color:var(--mute);display:grid;gap:6px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{display:inline-block;width:18px;height:12px;border:1px solid var(--ink);border-radius:2px}
.legend .lc{background:transparent;border:2px solid #14222c}.legend .le{background:transparent;border:2px dashed #1b5f9c}.legend .lf{background:#d6e7f4;border-color:#1b5f9c}.legend .lfw{background:#fbe9e7;border-color:#9c2520}.legend .lz{background:#f6edc2}
.feeimg{padding:12px 20px 16px;border-top:1px solid var(--hair)}
.feeimg img{max-width:100%;border:1px solid var(--hair);border-radius:6px;box-shadow:var(--shadow)}
.feeimg p{margin:0 0 8px;font-size:14px;color:var(--mute)}
/* skeleton and states */
.skeleton{display:grid;gap:10px;padding:20px}
.skeleton i{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--hair),var(--paper),var(--hair));background-size:200% 100%;animation:sk 1.2s linear infinite}
.skeleton i:nth-child(2){width:80%}.skeleton i:nth-child(3){width:60%}
@keyframes sk{to{background-position:-200% 0}}
.error{padding:16px 20px;background:var(--warn-bg);border-radius:12px;margin-top:20px}
.empty{color:var(--mute);margin-top:20px;max-width:60ch}
footer{margin-top:40px;color:var(--mute);font-size:14px;max-width:80ch;line-height:1.6}
footer p{margin:0 0 8px}
.sr{position:absolute;left:-9999px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
@media print{body{background:#fff;color:#000}.ask,.examples,header.top nav,.actions,.mapcard,footer,.withheld{display:none!important}.sheet{box-shadow:none;border:1px solid #000}.answer{grid-template-columns:1fr}.cite{border:0;padding:0;background:none}.stamp{transform:none}}

/* offshore additions */
textarea{width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);font-size:16px;line-height:1.5;resize:vertical;transition:border-color .12s ease-out,box-shadow .12s ease-out}
textarea:hover{border-color:var(--accent)}textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.row3{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:end}@media(max-width:700px){.row3{grid-template-columns:1fr}}
.bars{display:grid;gap:6px;margin:8px 0 4px}
.bar{display:grid;grid-template-columns:200px 1fr 52px;gap:10px;align-items:center;font-size:15px}
.bar i{display:block;height:12px;border-radius:3px;background:var(--hair);overflow:hidden}
.bar i b{display:block;height:100%;background:var(--accent);width:0;transition:width .4s ease-out}
.bar.top{font-weight:600}.bar.top i b{background:var(--accent)}
.bar em{font-style:normal;text-align:right;color:var(--mute)}
.card{border:1px solid var(--hair);border-radius:10px;padding:14px 16px;margin:12px 0;background:var(--paper)}
.card .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:14px;color:var(--mute);margin-bottom:8px}
.card .meta .chip{font-size:13px;padding:1px 8px}
.card .cause{font-size:16px;line-height:1.65;color:var(--ink);max-width:70ch;margin:0;overflow-wrap:break-word}
.recs-block{margin-top:12px;padding-top:10px;border-top:1px solid var(--hair);max-width:70ch}
.layer .recs-h{font:600 15px/1.3 var(--display);color:var(--ink);margin:0 0 4px}
.card .recs{margin:0;padding-left:20px;font-size:15px;line-height:1.55}
.card .recs li{margin:4px 0}
/* one warning pattern: tinted chip, outline icon drawn from currentColor */
.flag,.warnline{display:inline-flex;align-items:flex-start;gap:8px;padding:4px 10px;border-radius:6px;font-size:14px;line-height:1.4;background:var(--warn-bg);color:var(--warn);font-weight:600}
.flag{margin:2px 6px 2px 0}
.layer .warnline{display:flex;width:fit-content;max-width:100%;margin:10px 0 0}
.layer .warnline+.warnline{margin-top:6px}
.flag::before,.warnline::before{content:"";flex:none;width:16px;height:16px;margin-top:1px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20z'/%3E%3Cpath d='M12 10v4M12 17v.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20z'/%3E%3Cpath d='M12 10v4M12 17v.5'/%3E%3C/svg%3E") center/contain no-repeat}
.flag.ok{background:var(--ok-bg);color:var(--ok)}
.flag.ok::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
/* uncertainty: the interval and its control sit in ink, not in a muted footnote */
.layer .measure{font-size:15px;line-height:1.55;color:var(--ink);background:var(--paper);border:1px solid var(--hair);border-radius:8px;padding:10px 14px;margin:10px 0 12px}
.measure strong{font-weight:600}
.ci{white-space:nowrap;color:var(--ink);font-size:15px}
.layer .hint,.report .hint{color:var(--mute);font-size:14px;line-height:1.5}
.twin mark{background:var(--flood);color:var(--ink);padding:0 3px;border-radius:3px}
.guard{background:var(--warn-bg);padding:14px 20px;border-top:1px solid var(--hair)}
.report{margin-top:32px}
.report h2{font:600 26px/1.1 var(--display);letter-spacing:-0.01em;margin:0 0 6px}
.report .lead{font-size:16px;margin-bottom:12px}
.basis{margin:0 0 14px;padding:12px 16px;border-radius:8px;background:var(--flood);color:var(--ink);font-size:16px;line-height:1.5;max-width:80ch}
.basis strong{font-weight:600}
.report table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;line-height:1.45;background:var(--card);border:1px solid var(--hair);border-radius:12px;overflow:hidden}
.report th,.report td{text-align:left;padding:10px 14px;border-top:1px solid var(--hair);vertical-align:top}
.report thead th{border-top:0}
.report th{font:600 15px/1.3 var(--display);background:var(--paper)}
.report td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.report td.note{color:var(--mute);min-width:16ch}
.report .hint{margin:10px 0 0;max-width:80ch}
/* phone: each measure becomes a block of label/value lines; nothing scrolls sideways */
@media(max-width:640px){
  .report table,.report thead,.report tbody,.report tr,.report th,.report td{display:block;width:auto}
  .report thead th{padding:10px 14px;font-size:14px}
  .report thead th:not(:first-child){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .report tbody tr{padding:12px 14px;border-top:1px solid var(--hair)}
  .report td{border:0;padding:2px 0}
  .report td:first-child{font-weight:600;margin-bottom:6px}
  .report td:nth-child(n+2){position:relative;padding-left:8.5rem;white-space:normal;overflow-wrap:break-word;min-width:0}
  .report td:nth-child(n+2)::before{position:absolute;left:0;top:2px;width:8rem;color:var(--mute);font-size:14px;font-weight:400}
  .report td:nth-child(2)::before{content:"Macro-F1 or share"}
  .report td:nth-child(3)::before{content:"95% interval"}
  .report td:nth-child(4)::before{content:"n"}
  .report td:empty{display:none}
}
.tabs{display:flex;gap:6px;margin:0 0 14px}.tabs button{padding:8px 14px;border-radius:8px;border:1px solid var(--hair);background:var(--card);font-weight:600}.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.alert-title{font:600 17px/1.3 var(--display);margin:0 0 8px;max-width:70ch}
.quote{font-size:15px;line-height:1.6;color:var(--ink);max-width:70ch;margin:0}
.quote p{margin:0 0 6px}
.quote ul{margin:0;padding-left:20px}
.quote li{margin:6px 0}
.layer .alert-link{margin:10px 0 0}
.alert-link a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.alert-link+.hint{margin:0}
#recs{min-height:52px;height:52px;font-size:17px;line-height:1.55}
/* phone measure and density */
@media(max-width:560px){
  .layer{padding:14px 16px}.sheet h2{padding:16px 16px 6px}.sheet .q{padding:0 16px 12px}
  .card{margin:0;padding:14px 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none}
  .layer h3+.card,.layer p+.card{margin-top:4px}
  .bar{grid-template-columns:minmax(0,1fr) 44px;row-gap:4px}
  .bar i{grid-column:1/-1;grid-row:2}
  .bar em{grid-column:2;grid-row:1}
}
