:root{
  --card-stock:#F3EFE5;
  --soft-wash:#E7E0D2;
  --ink:#24211E;
  --muted-rule:#777065;
  --accent-temperate:#2F7C52;
  --accent-slate:#4B7D86;
  --accent-desert:#B38A24;
  --accent-umber:#4B3028;
  --accent-sage:#91A58A;
  --signal-red:#D51F3C;
  --sky-wash:#CFE5E9;
  --uncertainty:#B8B4AC;
  --card-radius:12px;
  --card-shadow:0 4px 14px rgba(36,33,30,.16);
  --focus-ring:3px solid #D51F3C;
  --header-h:92px;
  --controls-h:82px;
  --footer-h:27px;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{
  overflow:hidden;
  color:var(--ink);
  background:
    radial-gradient(circle at 18% 12%,rgba(179,138,36,.08),transparent 28%),
    radial-gradient(circle at 82% 82%,rgba(47,124,82,.08),transparent 33%),
    var(--card-stock);
  font-family:"Atkinson Hyperlegible","Source Sans 3","Noto Sans",system-ui,sans-serif;
}
button,input,select{font:inherit}
button{cursor:pointer}
.skip-link{position:fixed;left:8px;top:-60px;z-index:999;background:#fff;padding:.65rem}
.skip-link:focus{top:8px}
.briefing-header{
  height:var(--header-h);display:grid;grid-template-columns:64px minmax(0,1fr) auto;
  align-items:stretch;border-bottom:1px solid #5f594f;background:rgba(243,239,229,.98);
}
.priority-tab{
  display:grid;place-items:center;background:var(--accent-temperate);color:white;
  font-weight:900;font-size:1.55rem;clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);
  margin:0 8px 9px 10px;
}
.title-block{padding:10px 10px 8px;min-width:0}
.eyebrow{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5e574e}
h1{margin:0;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1;text-transform:uppercase;letter-spacing:.025em}
.title-block>p:last-child{margin:6px 0 0;font-size:.88rem;color:#625c54;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-actions{display:flex;align-items:center;padding:10px 12px}
.app-shell{height:calc(100dvh - var(--header-h) - var(--footer-h));display:grid;grid-template-rows:var(--controls-h) minmax(0,1fr)}
.command-strip{
  display:grid;grid-template-columns:minmax(150px,1fr) minmax(190px,1.2fr) minmax(140px,.8fr) auto;
  gap:8px 10px;align-items:end;padding:7px 12px 6px;border-bottom:1px solid #81796e;background:var(--soft-wash);
}
.control{display:grid;gap:3px;min-width:0}
.control>span{font-size:.67rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#5e574e}
input,select{
  width:100%;height:39px;border:1px solid #777065;border-radius:5px;background:#fbf8f0;color:var(--ink);
  padding:0 .7rem;outline:none;
}
input:focus,select:focus,button:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.action-grid{display:grid;grid-template-columns:1fr auto;gap:6px}
.command-button{
  min-height:39px;border:1px solid #514b44;border-radius:5px;padding:.5rem .8rem;font-weight:850;
  letter-spacing:.02em;background:#f8f4ea;color:var(--ink);box-shadow:0 2px 0 rgba(36,33,30,.16)
}
.command-button.primary{background:var(--accent-temperate);border-color:#1f5839;color:white}
.command-button.secondary:hover{background:white}
.status-line{
  grid-column:1/-1;margin:0;align-self:center;font-size:.69rem;color:#5c554d;line-height:1;
}
.map-stage{
  position:relative;overflow:hidden;min-height:0;
  background:linear-gradient(180deg,#d7e7e7 0%,#cfded7 43%,#d9d0bd 100%);
  isolation:isolate;
}
.map-stage::before,.map-stage::after{
  content:"";position:absolute;inset:-20%;pointer-events:none;z-index:0;opacity:.12;
  background:
    radial-gradient(ellipse at 20% 32%,#2F7C52 0 5%,transparent 22%),
    radial-gradient(ellipse at 74% 48%,#B38A24 0 4%,transparent 20%),
    radial-gradient(ellipse at 45% 80%,#4B7D86 0 5%,transparent 23%);
  filter:blur(22px);
}
.map-stage::after{transform:rotate(14deg) scale(1.15);opacity:.07}
#map{position:relative;z-index:1;width:100%;height:100%;display:block;touch-action:none}
.ocean{fill:#cfe3e6}
.graticule{fill:none;stroke:#6f817e;stroke-opacity:.22;stroke-width:.7;stroke-dasharray:1.5 4;vector-effect:non-scaling-stroke}
.land{fill:#ddd8c9;stroke:#6b675d;stroke-width:.85;vector-effect:non-scaling-stroke}
.range{
  cursor:pointer;vector-effect:non-scaling-stroke;transition:opacity .18s,fill-opacity .18s,stroke-width .18s;
  filter:url(#soften);
}
.range:hover,.range.focused,.range.keyboard-focus{stroke:var(--signal-red)!important;stroke-width:3!important;fill-opacity:.76!important}
.loading{
  position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:rgba(243,239,229,.92);
  font-weight:850;letter-spacing:.04em;text-transform:uppercase;
}
.legend{
  position:absolute;z-index:5;left:10px;top:10px;width:210px;background:rgba(243,239,229,.96);
  border:1px solid #625c54;border-radius:8px;box-shadow:var(--card-shadow);overflow:hidden;
}
.legend-toggle{
  display:flex;width:100%;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid #81796e;
  background:#f7f3e9;color:var(--ink);padding:.48rem .58rem;text-align:left;
}
.legend-toggle span:first-child{display:grid}
.legend-toggle b{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.legend-toggle small{font-size:.63rem;color:#645e56}
.legend-body{padding:.42rem .55rem}
.legend-row{display:flex;align-items:center;gap:.5rem;margin:.28rem 0}
.legend-row>span{display:grid}
.legend-row strong{font-size:.78rem}
.legend-row small{font-size:.62rem;color:#625c54}
.class-tab{
  display:grid;place-items:center;width:27px;height:27px;color:white;font-style:normal;font-weight:900;
  clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);
}
.class-4{background:#9B3A39}.class-3{background:#B38A24}.class-2{background:#6F718F}.class-1{background:#4B7D86}
.rule{height:1px;background:#aaa398;margin:.42rem 0}
.legend-body p{margin:.28rem 0;font-size:.64rem;display:flex;gap:.4rem;align-items:center}
.line-sample{width:28px;border-top:2px solid #4B3028}.line-sample.dashed{border-top-style:dashed}
.map-note{
  position:absolute;z-index:5;right:10px;bottom:9px;display:flex;gap:5px;align-items:center;
  background:rgba(243,239,229,.93);border:1px solid #777065;border-radius:5px;padding:4px 5px;font-size:.64rem;
}
.map-note span,.map-note button{padding:3px 6px;border-right:1px solid #aaa398}
.map-note span:last-of-type{border-right:1px solid #aaa398}
.map-note button{border:0;background:transparent;font-weight:800;text-decoration:underline}
.tooltip{
  position:absolute;display:none;z-index:8;pointer-events:none;max-width:230px;
  background:#f8f4ea;border:1px solid #4B3028;border-radius:6px;padding:.5rem .6rem;box-shadow:var(--card-shadow);font-size:.78rem;
}
.tooltip small{color:#615a52}
.briefing-footer{
  height:var(--footer-h);display:flex;gap:16px;align-items:center;padding:0 12px;border-top:1px solid #81796e;
  background:#eee8dc;font-size:.62rem;color:#5e574e;white-space:nowrap;overflow:hidden;
}
.briefing-footer span:last-child{overflow:hidden;text-overflow:ellipsis}
dialog{
  color:var(--ink);background:var(--card-stock);border:1px solid #4f4942;border-radius:10px;
  box-shadow:0 22px 65px rgba(0,0,0,.38);padding:0;max-height:min(88dvh,760px);
}
dialog::backdrop{background:rgba(25,23,21,.64)}
.modal-close{
  position:absolute;right:8px;top:8px;z-index:3;width:40px;height:40px;border-radius:50%;
  border:1px solid #5e574e;background:#f8f4ea;font-size:1.3rem;color:var(--ink)
}
.species-modal{width:min(680px,calc(100vw - 24px))}
.species-card{display:grid;grid-template-columns:92px minmax(0,1fr);min-height:380px}
.species-priority{
  grid-row:1/4;display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 8px;
  background:var(--accent-temperate);color:white;clip-path:polygon(0 0,100% 0,100% 93%,50% 100%,0 93%);
}
.species-priority strong{font-size:2.3rem;line-height:1}.species-priority span{font-size:.67rem;text-transform:uppercase;font-weight:900;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.1em}
.species-main{padding:22px 22px 18px}
.species-kicker{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.round-badge{display:grid;place-items:center;width:36px;height:36px;border:2px solid #39342f;border-radius:50%;font-weight:900}
.species-band{background:#2f2b27;color:white;padding:7px 10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;flex:1}
.species-main h2{margin:.2rem 0 0;font-size:2rem;line-height:1.05}
.latin{margin:.25rem 0 1rem;font-style:italic;color:#5f5951}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid #80786e;border-right:0;border-bottom:0}
.metric{padding:.62rem;border-right:1px solid #80786e;border-bottom:1px solid #80786e;background:#f8f4ea}
.metric span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:#645e56}
.metric strong{display:block;margin-top:3px;font-size:.92rem;font-variant-numeric:tabular-nums}
.species-main p{font-size:.86rem;line-height:1.45}
.uncertainty-box{border-left:5px solid var(--accent-desert);background:#ece4d5;padding:.65rem .75rem}
.action-band{
  grid-column:2;padding:10px 22px 16px;border-top:1px solid #7a7369;background:#e9e2d5;
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
}
.action-band div{background:#f8f4ea;border:1px solid #80786e;padding:.55rem}
.action-band span{display:block;font-size:.62rem;text-transform:uppercase;color:#625c54}
.action-band strong{display:block;font-size:.82rem}
.info-modal,.table-modal{width:min(760px,calc(100vw - 24px));padding:22px 24px;overflow:auto}
.info-modal h2,.table-modal h2{margin:.65rem 0}
.info-modal p,.info-modal li{font-size:.84rem;line-height:1.4}
.modal-tab{display:inline-block;background:var(--accent-slate);color:white;padding:5px 9px;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.species-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px}
.species-list article{border:1px solid #81796e;background:#faf7ef;padding:.55rem}
.species-list h3{margin:0;font-size:.88rem}.species-list p{margin:.15rem 0 0;font-size:.72rem;color:#625c54}
.orientation-notice[hidden]{display:none!important}
.orientation-notice{
  position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(25,23,21,.55);padding:18px;
}
.orientation-card{
  max-width:390px;display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;
  background:var(--card-stock);border:1px solid #4f4942;border-radius:10px;padding:16px;text-align:left;box-shadow:var(--card-shadow)
}
.orientation-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--accent-slate);color:white;font-size:1.7rem}
.orientation-card strong{display:block;font-size:1.1rem}.orientation-card small{display:block;margin-top:5px;line-height:1.35;color:#625c54}
@media(max-width:860px){
  :root{--header-h:74px;--controls-h:72px;--footer-h:23px}
  .briefing-header{grid-template-columns:48px minmax(0,1fr) auto}
  .priority-tab{font-size:1.15rem;margin-left:7px}
  .title-block{padding:7px 7px 5px}
  h1{font-size:1.45rem}
  .title-block>p:last-child{display:none}
  .eyebrow{font-size:.6rem}
  .header-actions{padding:6px}
  .command-strip{grid-template-columns:1fr 1.25fr .85fr auto;padding:5px 7px;gap:5px}
  .control>span{font-size:.58rem}
  input,select,.command-button{height:35px;min-height:35px;font-size:.78rem;padding:0 .48rem}
  .status-line{font-size:.58rem}
  .legend{width:182px;left:6px;top:6px}
  .legend-body{padding:.3rem .45rem}
  .legend-row{margin:.18rem 0}
  .legend-row small{display:none}
  .map-note{right:6px;bottom:5px}
  .briefing-footer{padding:0 7px;font-size:.55rem;gap:9px}
}
@media(max-width:700px) and (orientation:landscape){
  :root{--header-h:58px;--controls-h:61px;--footer-h:20px}
  .briefing-header{grid-template-columns:42px minmax(0,1fr) auto}
  .priority-tab{font-size:1rem;margin:0 5px 6px}
  .title-block{padding:5px}
  h1{font-size:1.12rem}
  .eyebrow{font-size:.51rem}
  .header-actions .command-button{height:31px;min-height:31px}
  .command-strip{grid-template-columns:1fr 1.3fr .9fr auto;gap:4px;padding:3px 5px}
  input,select,.command-button{height:31px;min-height:31px;font-size:.68rem}
  .control>span{display:none}
  .action-grid{gap:3px}
  .status-line{font-size:.5rem}
  .legend{width:150px}
  .legend-toggle{padding:.31rem .4rem}.legend-body{padding:.2rem .35rem}
  .legend-row strong{font-size:.67rem}.class-tab{width:22px;height:22px;font-size:.7rem}
  .legend-body p{font-size:.55rem}.legend-body .rule{margin:.25rem 0}
  .map-note{font-size:.52rem}
  .briefing-footer span:nth-child(2){display:none}
  .species-modal{width:min(620px,calc(100vw - 12px))}
  .species-card{grid-template-columns:70px 1fr;min-height:0}
  .species-main{padding:14px 18px 10px}
  .species-main h2{font-size:1.35rem}
  .latin{margin:.15rem 0 .55rem}
  .metric{padding:.4rem}.species-main p{font-size:.72rem;margin:.45rem 0}
  .action-band{padding:7px 18px 10px}
}
@media(max-width:520px) and (orientation:portrait){
  body{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
}
@media(forced-colors:active){
  .map-stage::before,.map-stage::after{display:none}
  .range{filter:none}
}
