*{margin:0;padding:0;box-sizing:border-box}
:root{
  --navy:#1a365d;--navy-l:#2c5282;--accent:#d97706;
  --red:#dc2626;--blue:#2563eb;--green:#059669;
  --bg:#f1f5f9;--card:#ffffff;--text:#1e293b;--muted:#64748b;--light:#94a3b8;
  --border:#e2e8f0;
  --r:14px;
  --sh:0 1px 3px rgba(0,0,0,.06);
  --sh2:0 4px 20px rgba(0,0,0,.08);
  --hik:#2b6cb0;--dahua:#c53030;--xm:#6b46c1;
}
html{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:15px}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;background:var(--card);border-bottom:1px solid var(--border)}
.topbar-title{font-weight:700;font-size:.95rem;color:var(--navy);letter-spacing:-.01em}
.topbar-right{display:flex;align-items:center;gap:12px}
.topbar-date{font-size:.78rem;color:var(--light)}
.theme-toggle{background:none;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.theme-toggle:hover{background:var(--border);color:var(--text)}
.hero{text-align:center;padding:24px 24px 18px}
.hero-number{font-size:4.2rem;font-weight:900;color:var(--red);letter-spacing:-.06em;line-height:1}
.hero-desc{font-size:.88rem;color:var(--muted);max-width:520px;margin:8px auto 0;line-height:1.55}
.hero-desc strong{color:var(--text);font-weight:700}
.content{max-width:1240px;margin:0 auto;padding:0 24px 24px;display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.map-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
#map{padding:16px 16px 0}
#map svg{width:100%;height:auto;display:block}
.state{stroke:none;cursor:pointer;transition:filter .15s}
.state:hover{filter:brightness(.88)}
.state-border{fill:none;stroke:#1a1a1a;stroke-width:.7px;stroke-linejoin:round;pointer-events:none}
.hit-area{cursor:pointer}
.cam-dot{pointer-events:none}
.map-footer{padding:12px 24px 16px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);flex-wrap:wrap;gap:12px}
.legend-row{display:flex;align-items:center;gap:8px;font-size:.72rem;color:var(--muted)}
.legend-label{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.65rem}
.legend-lo,.legend-hi{font-size:.65rem;color:var(--light)}
.legend-grad{width:90px;height:8px;border-radius:4px;background:linear-gradient(90deg,#e2e8f0,#fbbf24,#dc2626)}
.dot-legend{display:flex;gap:14px}
.dot-item{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--muted)}
.dot-item i{width:8px;height:8px;border-radius:50%;display:inline-block}
#tooltip{position:fixed;z-index:9999;pointer-events:none;background:var(--navy);color:#fff;padding:14px 18px;border-radius:10px;font-size:13px;box-shadow:var(--sh2);display:none;max-width:260px;line-height:1.55}
.tt-name{font-size:15px;font-weight:700;margin-bottom:4px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.18)}
.tt-row{display:flex;justify-content:space-between;gap:10px;margin-top:2px}
.tt-lbl{opacity:.75;font-size:12px}.tt-val{font-weight:600;font-size:12px}
.tt-hint{text-align:center;margin-top:8px;font-size:10px;opacity:.5}
.panels{display:flex;flex-direction:column;gap:16px}
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:20px}
.panel h3{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}
.bar-row{display:flex;align-items:center;gap:7px;margin:5px 0;font-size:13px;cursor:pointer;padding:2px 4px;border-radius:6px;transition:background .1s}
.bar-row:hover{background:#f8fafc}
.bar-label{width:95px;text-align:right;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.73rem}
.bar-track{flex:1;height:7px;background:#f1f5f9;border-radius:4px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;transition:width .5s ease}
.bar-count{width:30px;font-weight:700;font-size:.72rem;text-align:right}
.modal-bg{display:none;position:fixed;inset:0;z-index:5000;background:rgba(15,23,42,.3);backdrop-filter:blur(3px);align-items:center;justify-content:center;padding:24px}
.modal-bg.active{display:flex}
.modal{background:var(--card);border-radius:20px;box-shadow:0 24px 48px rgba(0,0,0,.12);padding:32px;max-width:620px;width:100%;max-height:85vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;top:18px;right:18px;background:#f1f5f9;border:none;color:var(--muted);width:32px;height:32px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .15s}
.modal-close:hover{background:#e2e8f0;color:var(--text)}
.modal h2{font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;padding-right:3rem}
.modal-lead{font-size:.88rem;color:var(--muted);margin:6px 0 20px;line-height:1.6}
.modal-lead strong{color:var(--text)}
.insight-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.insight{background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.insight-num{font-size:1.6rem;font-weight:800;line-height:1}
.insight-text{font-size:.72rem;color:var(--muted);margin-top:4px;line-height:1.4}
.modal-sec{margin-top:22px}
.modal-sec h4{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.m-table{width:100%;border-collapse:collapse;font-size:.82rem}
.m-table th{text-align:left;padding:8px 10px;font-weight:600;color:var(--muted);text-transform:uppercase;font-size:.65rem;letter-spacing:.04em;border-bottom:2px solid var(--border)}
.m-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9}
.m-table tr:hover{background:#fafbfc}
.m-table tr:last-child td{border-bottom:none}
.m-table td:last-child{text-align:right;font-weight:600;color:var(--navy)}
.m-table .sub{font-size:.72rem;color:var(--light)}
.footer{max-width:1240px;margin:0 auto;padding:0 24px 32px}
.footer-inner{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);padding:28px 32px}
.footer h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:10px}
.footer-inner>p{font-size:.82rem;color:var(--muted);line-height:1.7;margin-bottom:10px}
.footer-inner>p strong{color:var(--text)}
.footer-inner a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px;transition:text-decoration-color .15s}
.footer-inner a:hover{text-decoration-color:var(--navy)}
.ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0}
.ref{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:16px;border-left:3px solid var(--navy)}
.ref-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.ref-tag a{color:var(--navy);text-decoration:none}
.ref-tag a:hover{text-decoration:underline}
.ref-date{font-size:.72rem;color:var(--accent);font-weight:600;margin:2px 0 6px}
.ref p{font-size:.78rem;color:var(--muted);line-height:1.55}
.ref p strong{color:var(--text)}
.ref a{color:var(--navy);text-decoration-color:var(--border)}
.ref a:hover{text-decoration-color:var(--navy)}
.footer-note{font-size:.8rem;color:var(--muted);line-height:1.6;margin-top:12px}
.footer-note strong{color:var(--text)}
html.dark .ref{background:#0f172a;border-color:#334155}
html.dark{
  --bg:#0f172a;--card:#1e293b;--text:#e2e8f0;--muted:#94a3b8;--light:#64748b;
  --border:#334155;--navy:#93c5fd;--navy-l:#60a5fa;--accent:#fbbf24;
  --red:#f87171;--hik:#60a5fa;--dahua:#f87171;--xm:#a78bfa;
  --sh:0 1px 3px rgba(0,0,0,.3);--sh2:0 4px 20px rgba(0,0,0,.4);
}
html.dark body{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%)}
html.dark .map-card{background:var(--card);border-color:var(--border)}
html.dark .map-footer{border-top-color:var(--border)}
html.dark .bar-track{background:#1e293b}
html.dark .bar-row:hover{background:rgba(255,255,255,.03)}
html.dark #tooltip{background:linear-gradient(135deg,#1e293b,#334155);border:1px solid #475569}
html.dark .insight{background:#0f172a;border-color:#334155}
html.dark .modal{border-color:#334155}
html.dark .modal-close{background:#334155}
html.dark .m-table tr:hover{background:rgba(255,255,255,.03)}
html.dark .m-table td{border-bottom-color:#334155}
html.dark .m-table th{border-bottom-color:#475569}
@media(max-width:1024px){
  .content{grid-template-columns:1fr;gap:16px}
  .panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}
}
@media(max-width:768px){
  html{font-size:14px}
  .topbar{padding:10px 16px}
  .topbar-title{font-size:.85rem}
  .topbar-date{display:none}
  .hero{padding:20px 16px 14px}
  .hero-number{font-size:3.2rem}
  .hero-desc{font-size:.82rem;margin-top:6px}
  .content{padding:0 12px 20px;gap:12px}
  .map-card{border-radius:10px}
  #map{padding:8px 8px 0}
  .map-footer{padding:8px 12px 10px;gap:8px}
  .legend-row{gap:5px}
  .legend-grad{width:60px}
  .dot-legend{gap:8px}
  .dot-item{font-size:.62rem}
  .panels{grid-template-columns:1fr;gap:12px}
  .panel{padding:14px;border-radius:10px}
  .panel h3{font-size:.68rem;margin-bottom:8px}
  .bar-row{margin:4px 0;gap:5px}
  .bar-label{width:75px;font-size:.68rem}
  .bar-count{font-size:.68rem;width:28px}
  .bar-track{height:6px}
  .footer{padding:0 12px 32px}
  .footer-inner{padding:20px;border-radius:10px}
  .footer h3{font-size:.9rem}
  .footer-inner>p{font-size:.78rem}
  .ref-grid{grid-template-columns:1fr;gap:8px}
  .ref{padding:12px}
  .ref p{font-size:.72rem}
  .footer-note{font-size:.75rem;margin-top:10px}
  .modal-bg{padding:12px}
  .modal{padding:20px;border-radius:14px;max-height:90vh}
  .modal h2{font-size:1.2rem;padding-right:2.5rem}
  .modal-lead{font-size:.8rem;margin:4px 0 14px}
  .insight-row{grid-template-columns:1fr 1fr;gap:8px}
  .insight{padding:10px 12px;border-radius:8px}
  .insight-num{font-size:1.3rem}
  .insight-text{font-size:.65rem}
  .modal-sec{margin-top:16px}
  .m-table{font-size:.75rem}
  .m-table th,.m-table td{padding:6px 8px}
  #tooltip{font-size:12px;padding:10px 14px;max-width:220px;border-radius:8px}
  .tt-name{font-size:13px}
}
@media(max-width:400px){
  .hero-number{font-size:2.6rem}
  .hero-desc{font-size:.78rem}
  .insight-row{grid-template-columns:1fr}
  .modal{padding:16px}
  .modal h2{font-size:1.05rem}
  .bar-label{width:65px;font-size:.65rem}
}