
:root{font-family:system-ui,-apple-system,"Noto Sans TC","Segoe UI",sans-serif;color:#173453;background:#fef9f5;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:#2b61ab}button,input,select{font:inherit}button{cursor:pointer}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:10px;top:10px;z-index:10;background:white;padding:10px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(18px,calc((100vw - 1200px)/2));border-bottom:1px solid #dce4ec;background:#fef9f5;color:#5b6e83;font-size:12px}
.topbar>a{text-decoration:none;font-weight:700}.topbar .bf-brand{color:#173453}
.shell{max-width:1200px;margin:auto;padding:26px 18px 55px}
.hero{margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800;color:#2b61ab}
h1{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(36px,5.2vw,57px);line-height:1.12;margin:7px 0 12px;color:#183a65;letter-spacing:-.035em}
h1 em{color:#2b61ab;font-style:normal}.subtitle{font-weight:750;font-size:21px;margin:0 0 12px}.subtitle span{display:block;color:#5b6e83;font-weight:450;font-size:15px}
.intro{max-width:990px;font-size:15px;line-height:1.8;color:#4b6073}.en{display:block;color:#657a8b;font-size:.86em;line-height:1.65;margin-top:4px;font-weight:450}
.notice{border-left:4px solid #ffad55;padding:13px 16px;border-radius:8px;background:#fff8ed;color:#704e24;font-size:13px;line-height:1.7}
.notice .en{color:inherit}.layout{display:grid;grid-template-columns:minmax(0,.89fr) minmax(0,1.31fr);gap:17px}
.panel{padding:22px;background:#fff;border:1px solid #dce4ec;border-radius:16px;box-shadow:0 5px 18px #1734530b;min-width:0}
.panel h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:18px;line-height:1.4;margin:0 0 16px}
.panel h2:not(:first-child){margin-top:24px}.panel h2 small,.sources h2 small{font-size:12px;color:#66809a;font-weight:500}
.step{font-size:12px;color:#2b61ab;border-radius:7px;padding:6px 8px;background:#eaf1fb}
.field{display:block;color:#173453;font-size:13px;font-weight:700;margin:12px 0}
.field input:not([type=checkbox]),.field select{width:100%;margin-top:7px;border:1px solid #cbd9e7;background:#fff;padding:10px;border-radius:9px;color:#173453;min-height:42px}
.field input[type=file]{border-style:dashed;background:#f7faff}
.field input[type=range]{padding:0;min-height:30px;accent-color:#2b61ab}.field output{float:right;color:#2b61ab;font-size:12px}
button{border-radius:9px;border:1px solid transparent;padding:10px 13px;font-size:13px;line-height:1.35;font-weight:750;min-height:42px}
button small{display:block;font-size:11px;font-weight:450;line-height:1.4;margin-top:3px}
button.primary{color:white;background:#2b61ab;border-color:#2b61ab}button.primary:hover:not(:disabled){background:#183a65}
button.secondary{background:#f0f4f8;color:#183a65;border-color:#cedbec}button.secondary:hover:not(:disabled){background:#e5edf8}
button:disabled{opacity:.46;cursor:not-allowed}button.full{width:100%}
.twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.hint{color:#5b6e83;font-size:12px;line-height:1.65;margin:12px 0}
.actions,.modes{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}
.mode{flex:1 1 98px;background:#f9fbfe;border:1px solid #d4e1ef;color:#234764}
.mode.active,.mode[aria-pressed=true]{background:#eaf1fb;border-color:#2b61ab;color:#183a65}
.status{border:1px solid #dce4ec;border-radius:9px;padding:12px;background:#f7faff;font-size:12px;min-height:50px;color:#325a7f;line-height:1.65}
.imageframe{background:#eaf0f5;border:1px solid #dce4ec;min-height:300px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px}
#viewer{width:100%;max-height:740px;height:auto;display:block;touch-action:none;cursor:crosshair}
.legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12px;color:#4a667e;margin-top:13px}
.legend span{display:flex;align-items:center;gap:5px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot.live{background:#1b996e}.dot.dead{background:#d85158}.dot.review{background:#d79b2b}.dot.roi{background:#2b61ab}
.results{margin-top:17px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.metrics>div{border:1px solid #e1e8f0;border-radius:12px;background:#f7faff;padding:13px;min-width:0}
.metrics span{display:block;color:#5c7690;font-size:12px}.metrics small{display:block;color:#6d8398;font-weight:450;font-size:11px}
.metrics strong{display:block;font-size:clamp(19px,3vw,31px);font-variant-numeric:tabular-nums;color:#183a65;margin-top:7px;overflow-wrap:anywhere}
.formula{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#3d5c76;overflow-wrap:anywhere}
.concentration{margin-top:19px;padding:13px 15px;border:1px solid #dce4ec;border-radius:10px}
.concentration summary{font-weight:750;font-size:14px;cursor:pointer;color:#183a65}
.concentration summary small{display:block;font-weight:450;color:#63798b}
.check{display:flex;align-items:center;gap:10px}.check input{accent-color:#2b61ab;width:18px;height:18px;flex-shrink:0}
.metrics.mini{grid-template-columns:repeat(2,minmax(0,1fr))}
.explainer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:17px}
.explainer h2{font-size:16px}.explainer p,.sources p{line-height:1.8;color:#4d647b;font-size:13px}
.sources{padding:22px 4px}.sources h2{font-size:17px;color:#183a65}
footer{text-align:center;border-top:1px solid #dce4ec;color:#647b90;font-size:12px;margin-top:10px;padding:18px 0}
@media(max-width:900px){.layout,.explainer{grid-template-columns:1fr}.imageframe{min-height:180px}}
@media(max-width:600px){.topbar{flex-wrap:wrap;justify-content:flex-start}.topbar>span{display:none}.shell{padding:18px 12px 42px}.panel{padding:17px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.twocol{grid-template-columns:1fr}.mode{flex:1 1 42%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
