:root { --bg:#0f1216; --card:#171c23; --border:#262d37; --txt:#d6dee6; --dim:#8a94a0;
        --green:#4ade80; --red:#f87171; --yellow:#facc15; --blue:#60a5fa; }
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:var(--txt); font:14px/1.5 system-ui,sans-serif; padding:20px;
       display:flex; flex-direction:column; align-items:center; }
h1 { font-size:20px; margin-bottom:4px; text-align:center; }
.sub { color:var(--dim); font-size:13px; margin-bottom:12px; text-align:center; }
.legend { display:flex; gap:18px; flex-wrap:wrap; justify-content:center; margin-bottom:14px; font-size:13px; color:var(--dim); }
.legend span { display:inline-flex; align-items:center; gap:6px; }
.sw { display:inline-block; width:14px; height:14px; border-radius:4px; border:1.5px solid; }
.bar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; justify-content:center; }
select { background:var(--card); color:var(--txt); border:1px solid var(--border); border-radius:8px; padding:8px 14px; font-size:14px; }
.panels { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:14px; width:100%; max-width:1100px; margin-bottom:16px; }
.panel { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:10px; text-align:center; }
.panel img { width:100%; max-width:300px; height:auto; aspect-ratio:1/1; border-radius:8px; border:1px solid var(--border); display:block; margin:0 auto 8px; }
.panel .cap { font-size:12px; color:var(--dim); }
.panel .cap b { color:var(--txt); }
.hint { background:#1a2418; border:1px solid #2a4a2a; border-radius:10px; padding:8px 14px;
        font-size:13px; color:var(--green); margin-bottom:12px; text-align:center; max-width:1100px; }
.vtbl { width:100%; max-width:1100px; border-collapse:collapse; margin-bottom:16px; font-size:13px; }
.tblwrap { width:100%; max-width:1100px; overflow-x:auto; margin-bottom:4px; }
.vtbl th, .vtbl td { border:1px solid var(--border); padding:6px 10px; text-align:left; }
.vtbl th { background:var(--card); color:var(--dim); font-weight:600; }
.t { color:var(--green); font-weight:700; }
.f { color:var(--red); font-weight:700; }
.na { color:var(--dim); }
.agree { color:var(--green); }
.disagree { color:var(--red); }
.summary { width:100%; max-width:1100px; background:var(--card); border:1px solid var(--border);
           border-radius:12px; padding:14px; margin-bottom:14px; font-size:13px; }
.summary table { width:100%; border-collapse:collapse; }
.summary { overflow-x:auto; }
.summary th, .summary td { border:1px solid var(--border); padding:6px 10px; text-align:right; }
.summary th:first-child, .summary td:first-child { text-align:left; }
.summary th { color:var(--dim); }
.prov { color:var(--dim); font-size:12px; max-width:900px; text-align:center; }
.visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
