:root{--bg:#0b1220;--card:#131c30;--card2:#1a2542;--line:#26345a;--text:#e8edf7;--muted:#93a1c0;--accent:#f97316;--ok:#22c55e;--bad:#ef4444;--blue:#38bdf8;--r:14px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}
body{padding-bottom:78px;min-height:100vh}
h1,h2,h3{margin:.2em 0 .4em}h2{font-size:1.15rem}h3{font-size:1rem}
a{color:var(--blue)}small,.muted{color:var(--muted)}
.top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:#0b1220ee;backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.top small{display:block}
.pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pill{background:var(--card2);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-weight:700;font-size:.9rem;white-space:nowrap}
main{max-width:720px;margin:0 auto;padding:12px 14px}
.tab{display:none}.tab.active{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 12px}
.card h3{margin-top:0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:#0b1220f5;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabbar button{flex:1;background:none;border:0;color:var(--muted);padding:10px 2px;font:inherit;font-size:.78rem;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabbar button b{font-size:1.3rem;line-height:1}
.tabbar button.active{color:var(--accent)}
button,.btn{font:inherit;font-weight:700;border:0;border-radius:12px;padding:12px 16px;background:var(--accent);color:#fff;cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
button.ghost{background:var(--card2);border:1px solid var(--line)}
button.ok{background:var(--ok)}button.bad{background:var(--bad)}button.blue{background:#0ea5e9}
button.small{padding:7px 11px;font-size:.88rem;border-radius:9px}
input,select,textarea{font:inherit;width:100%;background:#0b1220;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
label{display:block;margin:8px 0 4px;color:var(--muted);font-size:.9rem}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.8rem;font-weight:700;background:var(--card2)}
.badge.submitted{background:#78350f;color:#fde68a}.badge.approved{background:#14532d;color:#bbf7d0}.badge.rejected{background:#7f1d1d;color:#fecaca}
.rank{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.rank:last-child{border:0}.rank.me{color:var(--accent);font-weight:800}
.map{height:56vh;min-height:300px;border-radius:var(--r);border:1px solid var(--line);margin-bottom:10px}
img.proof{width:100%;max-height:340px;object-fit:contain;background:#000;border-radius:10px;margin:8px 0}
#toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#1e293b;border:1px solid var(--line);color:#fff;padding:10px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:92vw;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#7f1d1d}
.login{max-width:420px;margin:0 auto;padding:8vh 18px}
.login h1{font-size:2rem}.big{font-size:1.4rem;text-align:center;letter-spacing:.15em;text-transform:uppercase}
.hidden{display:none!important}
.code{font-family:ui-monospace,Menlo,monospace;font-size:1.05rem;letter-spacing:.1em;background:#0b1220;border:1px dashed var(--line);border-radius:8px;padding:2px 8px}
.announce{background:#422006;border-color:#92400e}
.live{background:#052e16;border-color:#166534}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(min-width:900px){body.admin main{max-width:980px}}
/* schakelaar (toggle) */
.switch{position:relative;display:inline-block;width:44px;height:26px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#2b3558;border-radius:99px;transition:.2s;cursor:pointer}
.switch span:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+span{background:var(--ok)}
.switch input:checked+span:before{transform:translateX(18px)}
.item{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0}
.item .t{font-weight:700}.item .d{color:var(--muted);font-size:.88rem}
.item.col{display:block}
.num{width:90px!important}
.cost{display:flex;align-items:center;gap:6px;margin-top:6px}
.tag{font-size:.75rem;background:#0b1220;border:1px solid var(--line);border-radius:99px;padding:1px 8px;color:var(--muted)}
.upd{border-left:3px solid var(--accent);padding:6px 10px;margin:8px 0;background:#0b1220;border-radius:0 10px 10px 0}
.upd.blocked{border-color:var(--bad)}.upd.desc{border-color:var(--blue)}
.rt-num{background:transparent;border:0;box-shadow:none;color:#0b1220;font-weight:700;font-size:11px;padding:0}
.rt-num:before{display:none}
details summary{cursor:pointer}
