/* DivumWX ECharts (v6 responsive) */
:root{
  --bg:#0b0c0f; --fg:#e8eaed; --muted:#9aa0a6;
  --card:#121621; --border:#202637; --accent:#4da3ff;
}
body.light{
  --bg:#f6f7fb; --fg:#121417; --muted:#6b7280;
  --card:#ffffff; --border:#e5e7eb; --accent:#2563eb;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
     font-family:system-ui,Segoe UI,Roboto,Ubuntu,Arial,sans-serif}
.wrap{padding:12px}

/* toolbar */
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}
.pill{display:inline-block;border:1px solid var(--border);background:var(--card);
      border-radius:999px;padding:6px 10px;margin-right:8px}
select,button{background:var(--card);color:var(--fg);border:1px solid var(--border);
              border-radius:8px;padding:8px 10px}
button:hover{filter:brightness(1.1);cursor:pointer}

/* grid + cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;margin-top:12px}
@media (max-width: 680px){
  .grid{grid-template-columns:1fr}
}
.card{
  height:240px;border:1px solid var(--border);border-radius:10px;
  background:var(--card);position:relative;overflow:hidden;cursor:pointer;
}
.title{
  position:absolute;left:10px;top:8px;color:var(--muted);
  font-size:.95rem;line-height:1;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,var(--card),transparent);
  padding-right:8px;
}
.chart{position:absolute;inset:0;z-index:1}
.err{
  position:absolute;left:0;right:0;bottom:0;padding:8px 10px;background:#fee2e2;
  color:#7f1d1d;font-weight:600;font-size:.9rem;display:none;border-top:1px solid #fecaca;z-index:3
}

/* responsive modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:1000;padding:clamp(8px,2vw,18px)}
.modal.open{display:flex}
.modal-card{
  width:min(98vw,1200px);
  height:min(92vh,820px);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  overflow:hidden;
}
.modal-title{
  position:absolute;left:16px;top:10px;color:var(--muted);z-index:2;pointer-events:none;
  background:linear-gradient(90deg,var(--card),transparent);padding-right:8px;font-size:1rem
}
.modal-close{
  position:absolute;right:10px;top:10px;border:1px solid var(--border);background:var(--bg);color:var(--fg);
  border-radius:10px;padding:8px 12px;cursor:pointer;z-index:3;font-size:14px;line-height:1
}
.modal-body{position:absolute;inset:48px 12px 36px 12px}
.modal-chart{position:absolute;inset:0;z-index:1}
@media (max-width: 680px){
  .modal-card{width:98vw;height:88vh}
  .modal-body{inset:44px 8px 44px 8px}
  .modal-close{padding:10px 12px}
  .modal-title{font-size:.95rem}
}

/* tiny error overlay for JS runtime errors */
#errOverlay{position:fixed;left:10px;bottom:10px;max-width:60ch;background:#fee2e2;color:#7f1d1d;border:1px solid #fecaca;border-radius:8px;padding:8px 10px;font:12px/1.4 monospace;z-index:2000;white-space:pre-wrap}
