/* 衛星で見る福岡 — 共通スタイル。15ページで同じ型紙を使う */
:root{
  --bg:#0B0F11; --panel:#131A1C; --sunk:#080B0D;
  --ink:#DDE5E2; --muted:#839996; --faint:#5A6E6B;
  --rule:#222E30; --rule2:#1A2325;
  --cool:#3E8E82; --hot:#E8703A; --warn:#C9A15A;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --jp:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);
  font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1}
#map{position:fixed;inset:0;height:100svh;background:var(--sunk)}
canvas{outline:none}

/* ---- 上バー ---- */
.top{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;gap:12px;align-items:center;
  padding:12px 16px;background:linear-gradient(180deg,rgba(11,15,17,.92),rgba(11,15,17,0));
  pointer-events:none;flex-wrap:wrap}
.top>*{pointer-events:auto}
.brand{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase}
.brand b{color:var(--cool);font-weight:500}
.ttl{font-weight:700;font-size:17px;letter-spacing:.02em;line-height:1.4}
form.search{display:flex;gap:0;margin-left:auto}
.search input{background:var(--panel);border:1px solid var(--rule);color:var(--ink);
  font-family:var(--jp);font-size:13px;padding:7px 11px;width:190px;border-radius:0}
.search input::placeholder{color:var(--faint)}
.search input:focus{outline:none;border-color:var(--cool)}
.search button{background:var(--rule);border:1px solid var(--rule);border-left:none;color:var(--ink);
  font-family:var(--jp);font-size:12.5px;padding:7px 13px;cursor:pointer}
.search button:hover{background:var(--cool);border-color:var(--cool);color:#06100E}
.search button:focus-visible{outline:2px solid var(--cool);outline-offset:2px}

/* ---- モード切替 ---- */
.modes{position:fixed;left:16px;top:64px;z-index:10;display:flex;flex-direction:column;
  border:1px solid var(--rule);background:rgba(19,26,28,.94)}
.modes button{background:none;border:none;border-bottom:1px solid var(--rule2);
  color:var(--muted);font-family:var(--jp);font-size:12.5px;padding:9px 14px;text-align:left;cursor:pointer;
  white-space:nowrap}
.modes button:last-child{border-bottom:none}
.modes button[aria-pressed="true"]{color:#06100E;background:var(--cool);font-weight:700}
.modes button:focus-visible{outline:2px solid var(--cool);outline-offset:-2px}

/* ---- 凡例 ---- */
.legend{position:fixed;left:16px;bottom:16px;z-index:10;background:rgba(19,26,28,.94);
  border:1px solid var(--rule);padding:11px 13px;min-width:212px}
.legend .lt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}
.legend .bar{height:9px;margin:7px 0 5px;border:1px solid var(--rule)}
.legend .sc{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.legend .nb{margin-top:8px;font-size:11px;color:var(--faint);line-height:1.65}

/* ---- カルテ ---- */
.karte{position:fixed;right:16px;top:64px;z-index:10;width:270px;background:rgba(19,26,28,.96);
  border:1px solid var(--rule);display:none}
.karte.on{display:block}
.karte .kh{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;
  border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;color:var(--faint)}
.karte .kh button{background:none;border:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;padding:0 2px}
.karte .kh button:focus-visible{outline:2px solid var(--cool)}
.karte .kb{padding:13px}
.karte .big{font-family:var(--mono);font-size:35px;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.karte .big span{font-size:15px;color:var(--muted);letter-spacing:0}
.karte .rank{margin-top:9px;font-size:13.5px;line-height:1.7}
.karte .rank b{font-family:var(--mono);font-size:17px;font-variant-numeric:tabular-nums}
.karte dl{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;
  font-size:12px;border-top:1px solid var(--rule2);padding-top:10px}
.karte dt{color:var(--faint)}
.karte dd{margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}

/* ---- 下の読み物 ---- */
.scrollcue{position:fixed;right:16px;bottom:16px;z-index:9;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.12em;color:var(--faint);background:rgba(19,26,28,.9);border:1px solid var(--rule);padding:7px 11px}
.doc{position:relative;z-index:15;margin-top:100svh;background:var(--bg);border-top:1px solid var(--rule);
  box-shadow:0 -24px 40px rgba(11,15,17,.96)}
.doc .in{max-width:760px;margin:0 auto;padding:56px 24px 90px}
.doc h2{font-size:22px;font-weight:700;margin:0 0 8px;letter-spacing:.01em}
.doc .dek{color:var(--muted);font-size:13.5px;margin:0 0 26px}
.doc h3{font-size:15.5px;font-weight:700;margin:34px 0 8px;color:var(--ink)}
.doc p{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.95;max-width:44em}
.doc p b,.doc li b{color:var(--ink);font-weight:700}
.doc ul,.doc ol{margin:0 0 14px;padding-left:1.3em;color:var(--muted);font-size:14px;line-height:1.95}
.doc li{margin-bottom:6px}
.doc .num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.doc a{color:var(--cool);text-decoration:none;border-bottom:1px solid rgba(62,142,130,.4)}
.doc a:hover{border-bottom-color:var(--cool)}
.doc a:focus-visible{outline:2px solid var(--cool);outline-offset:2px}
.warnbox{border-left:3px solid var(--hot);background:var(--panel);padding:15px 17px;margin:0 0 20px}
.warnbox .h{font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:5px}
.warnbox p{margin:0;font-size:13.5px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:0 0 22px}
.grid div{background:var(--panel);padding:13px 14px}
.grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:var(--faint);text-transform:uppercase}
.grid .v{font-family:var(--mono);font-size:23px;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.grid .d{font-size:11.5px;color:var(--faint);line-height:1.6;margin-top:3px}
.foot{border-top:1px solid var(--rule);margin-top:38px;padding-top:18px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;color:var(--faint);line-height:2}

@media (max-width:720px){
  .karte{right:8px;left:8px;width:auto;top:auto;bottom:88px}
  .modes{left:8px;top:auto;bottom:88px;flex-direction:row}
  .modes button{border-bottom:none;border-right:1px solid var(--rule2);padding:8px 11px;font-size:12px}
  .legend{left:8px;right:8px;bottom:8px;min-width:0}
  .scrollcue{display:none}
  .top{padding:10px 10px}
  .ttl{font-size:15px}
  .search input{width:120px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
