
:root{--bg:#f4f6f8;--card:#fff;--text:#101828;--muted:#667085;--line:#e4e7ec;--accent:#101828;--ok:#027a48}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;padding-bottom:88px}
header{padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:#101828;color:white;position:sticky;top:0;z-index:10}
header small{opacity:.7}h1{font-size:22px;margin:2px 0 0}main{max-width:760px;margin:auto;padding:14px}.tab{display:none}.tab.active{display:block}
.card,.stat{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px;margin-bottom:14px}.card h2{font-size:17px;margin:0 0 14px}
label{display:block;font-size:12px;color:var(--muted);margin:12px 0}input,select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;color:var(--text)}
.meta{font-size:12px;color:var(--muted);padding:10px 12px;background:#f8fafc;border-radius:12px}.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
button{font:inherit}.primary,.secondary{border:0;border-radius:14px;padding:13px;font-weight:700}.primary{background:var(--accent);color:#fff}.secondary{background:#e9eef5;color:var(--text)}
.note,.status{font-size:12px;color:var(--muted);line-height:1.6}.status.ok{color:var(--ok)}.previews{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.previews img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.sectionHead{display:flex;align-items:center;justify-content:space-between}.mini{border:1px solid var(--line);background:white;border-radius:10px;padding:7px 10px}
.group{border:1px solid var(--line);border-radius:16px;margin:10px 0;overflow:hidden}.group summary{list-style:none;padding:14px;font-weight:750;display:flex;justify-content:space-between;gap:10px;cursor:pointer}.group summary::-webkit-details-marker{display:none}.groupBody{padding:0 14px 14px}.resultItem{padding:12px 0;border-top:1px solid var(--line);font-size:13px}.resultTop{display:flex;justify-content:space-between;gap:10px}.pill{display:inline-block;border-radius:999px;background:#eef2f6;padding:4px 8px;font-size:11px}.muted{color:var(--muted)}
.statsGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{margin:0}.stat span,.stat small{display:block;color:var(--muted);font-size:11px}.stat strong{display:block;font-size:24px;margin:5px 0}
canvas{width:100%;display:block}.awardRow{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
nav{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);display:grid;grid-template-columns:repeat(3,1fr);padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:20}
nav button{border:0;background:transparent;padding:10px;border-radius:12px;color:var(--muted);font-weight:700}nav button.active{background:#101828;color:white}
@media(min-width:700px){.previews{grid-template-columns:repeat(5,1fr)}}

.scanbox{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:13px;margin:12px 0}
.scanhead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.full{width:100%;margin-top:4px}
.voterEditor{display:grid;gap:7px;margin-top:10px}
.voterRow{display:grid;grid-template-columns:1fr 82px 38px;gap:7px;align-items:center}
.voterRow input{margin:0}
.voterRow .countInput{text-align:center}
.voterRow .removeVoter{border:1px solid var(--line);background:white;border-radius:10px;height:42px;color:#b42318}
.compact{margin-top:9px}
.voterBreakdown{margin-top:8px}
.voterChip{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12px}
.confidence{font-size:10px;color:var(--muted)}
@media(max-width:520px){.voterRow{grid-template-columns:1fr 70px 36px}}

.previews video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#000}

body{padding-bottom:90px}
.appHeader{padding:18px 18px 6px;max-width:760px;margin:auto}
.appHeader h1{margin:0 0 4px;font-size:24px}
main{max-width:760px;margin:auto;padding:10px 14px 100px}
.tabPage{display:none}
.tabPage.active{display:block}
.bottomTabs{
  position:fixed;left:0;right:0;bottom:0;z-index:20;
  display:grid;grid-template-columns:1fr 1fr;
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom))
}
.tabBtn{border:0;background:transparent;padding:12px;border-radius:12px;font-weight:700}
.tabBtn.active{background:#eef2ff}
#mediaPreview video{width:100%;max-height:360px;border-radius:14px;background:#000}
.statsGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.statCard{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}
.statCard span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.statCard strong{font-size:18px}
#votesChart{width:100%;display:block;margin:14px 0 18px}
.resultGroup{border:1px solid var(--line);border-radius:14px;margin:10px 0;background:#fff;overflow:hidden}
.resultGroup summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;cursor:pointer}
.resultBody{padding:0 13px 13px}
.resultItem{border-top:1px solid var(--line);padding:11px 0}
