
:root{--D:#d9534f;--I:#f0ad4e;--S:#5cb85c;--C:#337ab7;--ink:#1d2733;--mut:#5b6775}
*{box-sizing:border-box}body{font-family:system-ui,Segoe UI,Arial,sans-serif;margin:0;background:#f4f6f9;color:var(--ink)}
header{background:#13294b;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;align-items:center}
header b{font-size:20px}.badge{background:#ffcc00;color:#000;font-weight:700;padding:4px 10px;border-radius:4px;font-size:12px}
main{max-width:880px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 4px #0002;margin-bottom:18px}
h1{margin-top:0}h2{border-bottom:2px solid #e3e7ee;padding-bottom:6px}button{background:#13294b;color:#fff;border:0;padding:12px 22px;border-radius:6px;font-size:16px;cursor:pointer}
button:disabled{background:#9aa5b4;cursor:default}.warn{background:#fff7d6;border-left:4px solid #e0b000;padding:10px 14px;font-size:14px}
table.q{width:100%;border-collapse:collapse}table.q td,table.q th{padding:10px;border-bottom:1px solid #eee;text-align:left}table.q th.c,table.q td.c{text-align:center;width:80px}
.prog{height:8px;background:#e3e7ee;border-radius:4px;overflow:hidden;margin:8px 0 16px}.prog div{height:100%;background:#13294b;width:0}
.chart{display:flex;gap:24px;align-items:flex-end;height:240px;border-left:1px solid #ccc;border-bottom:1px solid #ccc;padding:0 16px;position:relative}
.grp{flex:1;display:flex;gap:6px;align-items:flex-end;height:100%;position:relative}.bar{flex:1;border-radius:4px 4px 0 0;position:relative}
.bar span{position:absolute;top:-18px;width:100%;text-align:center;font-size:12px;font-weight:600}.lbl{display:flex;gap:24px;padding:6px 16px 0}.lbl div{flex:1;text-align:center;font-weight:700}
.mid{position:absolute;left:0;right:0;bottom:50%;border-top:1px dashed #bbb}.legend{font-size:13px;color:var(--mut);margin-top:8px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.cols{grid-template-columns:1fr}}
.pill{display:inline-block;padding:3px 10px;border-radius:12px;color:#fff;font-weight:700}small{color:var(--mut)}
.ladder{display:grid;grid-template-columns:110px repeat(6,1fr);gap:4px;font-size:12px;margin:4px 0}.ladder div{padding:5px 2px;text-align:center;border-radius:4px;background:#eef1f5}.ladder .on{color:#fff;font-weight:700}
.quad{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-width:420px;font-size:13px}.quad div{padding:10px;color:#fff;border-radius:6px}
@media print{header .badge,button{display:none}}
:root{--brand:#1f4e5f;--accent:#e07a5f;--cream:#fdf8f3;--sand:#f4ece3}
body{background:var(--cream);font-family:"Inter",system-ui,Segoe UI,Arial,sans-serif;line-height:1.5}
a{color:var(--brand)}button,.btn{background:var(--brand);color:#fff;border:0;padding:12px 22px;border-radius:8px;font-size:16px;cursor:pointer;text-decoration:none;display:inline-block}
button.ghost,.btn.ghost{background:#fff;color:var(--brand);border:2px solid var(--brand)}.btn.accent{background:var(--accent)}
.nav{background:#fff;border-bottom:1px solid #eadfd3;position:sticky;top:0;z-index:5}.nav .in{max-width:1080px;margin:auto;display:flex;align-items:center;gap:18px;padding:12px 16px;flex-wrap:wrap}
.logo{font-weight:800;font-size:22px;color:var(--brand);text-decoration:none;display:flex;align-items:center;gap:8px}.logo .mk{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#f2a65a);display:grid;place-items:center;color:#fff;font-size:18px}
.logo em{font-style:normal;color:var(--accent)}.nav .links{display:flex;gap:16px;margin-left:auto;flex-wrap:wrap}.nav .links a{text-decoration:none;color:#3b4a54;font-weight:600}.nav .links a.on{color:var(--accent)}
.demo{background:#fff3cd;color:#6b5100;text-align:center;font-size:13px;padding:6px}
.hero{background:linear-gradient(135deg,var(--brand),#2f6f7f);color:#fff;padding:64px 16px}.hero .in{max-width:1080px;margin:auto}.hero h1{font-size:42px;margin:0 0 12px;line-height:1.15}.hero p{font-size:19px;max-width:640px;opacity:.95}
.wrap{max-width:1080px;margin:32px auto;padding:0 16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.tile{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 4px #0001}.tile .n{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:8px}
.price{font-size:38px;font-weight:800;color:var(--brand)}.price small{font-size:15px;color:#667}.tag{display:inline-block;background:var(--sand);padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700;color:#8a4b37}
table.t{width:100%;border-collapse:collapse;background:#fff}table.t td,table.t th{padding:10px;border-bottom:1px solid #eee;text-align:left}
footer{background:#183b48;color:#cfdde2;padding:28px 16px;margin-top:48px;font-size:14px}footer .in{max-width:1080px;margin:auto}footer a{color:#fff}
.modal{position:fixed;inset:0;background:#0007;display:none;place-items:center;z-index:20}.modal div{background:#fff;padding:24px;border-radius:12px;max-width:400px}
.eqi{border-bottom:1px solid #eee;padding:6px 0}.scale{display:flex;gap:6px;flex-wrap:wrap}.scale label{flex:1;min-width:88px}.scale input{display:none}.scale span{display:block;text-align:center;padding:8px 4px;border:1px solid #cfd6dc;border-radius:6px;font-size:13px;cursor:pointer}.scale input:checked+span{background:var(--brand);color:#fff;border-color:var(--brand)}
.eqbar{display:grid;grid-template-columns:190px 1fr 40px;gap:8px;align-items:center;margin:6px 0}.eqbar div{background:#eee;height:14px;border-radius:7px;overflow:hidden}.eqbar i{display:block;height:100%;background:var(--accent)}
.focus{background:var(--sand);border-left:5px solid var(--accent);padding:12px 14px;margin:12px 0;border-radius:6px}
.tw{overflow-x:auto}table.wwo{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}table.wwo td,table.wwo th{border:1px solid #cbd3da;padding:8px;vertical-align:top}table.wwo th{background:var(--sand)}table.wwo td.blank{height:44px}
.prog div{background:var(--accent)}
@media(max-width:640px){.hero h1{font-size:30px}.ladder{grid-template-columns:70px repeat(6,1fr);font-size:9px}.eqbar{grid-template-columns:120px 1fr 32px;font-size:13px}.chart{height:180px;gap:8px;padding:0 6px}.lbl{gap:8px;font-size:11px;padding:6px}table.q td,table.q th{padding:8px 4px}table.q th.c,table.q td.c{width:52px}.card{padding:16px}}
@media print{.nav,.demo,footer,.noprint{display:none}.pagebreak{page-break-before:always}body{background:#fff}}
/* Alignment fix (Oct 23): every group table uses identical fixed columns so Most/Least line up regardless of text length or browser */
table.q{table-layout:fixed;width:100%}
table.q th:first-child,table.q td:first-child{width:auto;overflow-wrap:anywhere;word-break:normal}
table.q th.c,table.q td.c{width:72px;text-align:center;vertical-align:middle;padding-left:0;padding-right:0}
table.q td{vertical-align:middle}
table.q input[type=radio]{-webkit-appearance:none;appearance:none;margin:0;width:26px;height:26px;border:2px solid #9aa7b1;border-radius:50%;background:#fff;display:inline-block;vertical-align:middle;cursor:pointer;flex:none}
table.q input[type=radio]:checked{border-color:var(--brand);background:radial-gradient(circle,var(--brand) 0 45%,#fff 50%)}
table.q input[name^=l]:checked{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 45%,#fff 50%)}
.scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.scale label{min-width:0}.scale span{height:100%;display:flex;align-items:center;justify-content:center;line-height:1.2}
@media(max-width:640px){table.q th.c,table.q td.c{width:56px}.scale{gap:4px}.scale span{font-size:11.5px;padding:8px 2px}}
table.q col.cm,table.q col.cl{width:72px}@media(max-width:640px){table.q col.cm,table.q col.cl{width:56px}}
/* v2 ranking UI */
.rgrp{border:1px solid #e6ddd2;border-radius:12px;padding:12px;margin:14px 0;background:#fff}.rgrp.need{border-color:var(--accent);box-shadow:0 0 0 2px #e07a5f44}
.gh{font-weight:800;color:var(--brand);margin-bottom:4px}.rem{font-size:12.5px;color:#6b5a4c;background:var(--sand);border-radius:6px;padding:5px 8px;margin:4px 0 8px}
.stem{font-weight:600;margin:4px 0 8px}
.ro{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;color:var(--ink);border:1.5px solid #cfd6dc;border-radius:10px;padding:10px 12px;margin:6px 0;font-size:15px;line-height:1.35;min-height:52px;cursor:pointer}
.ro.on{border-color:var(--brand);background:#f3f8f9}.ro .tx{flex:1;min-width:0}
.rk{flex:none;width:32px;height:32px;border-radius:50%;border:2px dashed #b5c0c8;display:grid;place-items:center;font-weight:800;color:#fff;font-size:15px}
.rk.r1{background:#2f8f6f;border:0}.rk.r2{background:#6aa58c;border:0}.rk.r3{background:#d79a6b;border:0}.rk.r4{background:#c8664a;border:0}
.grp-ex .ro{cursor:default}.gmsg{font-size:12px;color:#6b7a85;margin-top:4px}
.lead{background:#eef5f6;border-radius:8px;padding:10px 12px}.reliab{background:#fff4e5;border-left:5px solid #e0a24f;padding:10px 12px;border-radius:6px;margin:10px 0}
/* v2 ranking UI */
.rgrp{border:1px solid #e6ddd2;border-radius:12px;padding:12px;margin:14px 0;background:#fff}.rgrp.need{border-color:var(--accent);box-shadow:0 0 0 2px #e07a5f44}
.gh{font-weight:800;color:var(--brand);margin-bottom:4px}.rem{font-size:12.5px;color:#6b5a4c;background:var(--sand);border-radius:6px;padding:5px 8px;margin:4px 0 8px}
.stem{font-weight:600;margin:4px 0 8px}
.ro{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;color:var(--ink);border:1.5px solid #cfd6dc;border-radius:10px;padding:10px 12px;margin:6px 0;font-size:15px;line-height:1.35;min-height:52px;cursor:pointer}
.ro.on{border-color:var(--brand);background:#f3f8f9}.ro .tx{flex:1;min-width:0}
.rk{flex:none;width:32px;height:32px;border-radius:50%;border:2px dashed #b5c0c8;display:grid;place-items:center;font-weight:800;color:#fff;font-size:15px}
.rk.r1{background:#2f8f6f;border:0}.rk.r2{background:#6aa58c;border:0}.rk.r3{background:#d79a6b;border:0}.rk.r4{background:#c8664a;border:0}
.grp-ex .ro{cursor:default}.gmsg{font-size:12px;color:#6b7a85;margin-top:4px}
.lead{background:#eef5f6;border-radius:8px;padding:10px 12px}.reliab{background:#fff4e5;border-left:5px solid #e0a24f;padding:10px 12px;border-radius:6px;margin:10px 0}
