:root{--o:var(--c);--c:var(--c);--m:var(--c);--bg:var(--bg);--card:var(--bg2);--tx:var(--tx);--dim:var(--mu)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#2a0b3d,var(--bg) 60%) fixed;color:var(--tx);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}
.banner{position:sticky;top:0;z-index:50;background:var(--m);color:var(--on-c);font-weight:800;font-size:12px;letter-spacing:.15em;text-align:center;padding:3px 8px}
header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-bottom:1px solid rgb(var(--fg-rgb)/0.08);flex-wrap:wrap}
.logo{font:900 26px/1 system-ui;letter-spacing:.12em;color:var(--tx);text-decoration:none;text-shadow:-2px 0 var(--c),2px 0 var(--m);position:relative}
.glitch:hover{animation:gl .3s steps(2) infinite}@keyframes gl{50%{text-shadow:3px 0 var(--c),-3px 0 var(--m);transform:skewX(-6deg)}}
nav{display:flex;gap:6px;flex-wrap:wrap}.apptools nav button,.tabs button{background:transparent;border:1px solid rgb(var(--fg-rgb)/0.13);color:var(--tx);padding:7px 11px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}
.apptools nav button.on,.tabs button.on{border-color:var(--c);color:var(--c);box-shadow:0 0 10px rgb(var(--c-rgb)/0.33)}nav .hot{background:linear-gradient(90deg,var(--o),var(--m));border:0;color:var(--on-c);font-weight:700}
#mycount{background:var(--c);color:var(--on-c);border-radius:9px;padding:0 6px;font-weight:700}
main{max-width:1150px;margin:0 auto;padding:18px}.view{display:none}.view.show{display:block}
h1{font-size:26px;margin:6px 0 16px;text-shadow:0 0 14px rgb(var(--c-rgb)/0.40)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.chips button{background:var(--card);border:1px solid rgb(var(--fg-rgb)/0.12);color:var(--tx);border-radius:20px;padding:6px 12px;cursor:pointer;font:inherit}
.chips.big button{padding:12px 16px;font-size:16px;border-radius:12px}.chips button.on{border-color:var(--o);color:var(--o);box-shadow:0 0 12px rgb(var(--c-rgb)/0.40)}
.fld{display:block;margin:8px 0;color:var(--dim);font-size:13px}.fld input,.fld select,.filters select{display:block;width:100%;margin-top:4px;background:#0b0a14;border:1px solid rgb(var(--fg-rgb)/0.16);color:var(--tx);padding:10px;border-radius:8px;font:inherit;font-size:16px}
#v-setup .fld{max-width:420px}
.go{background:linear-gradient(90deg,var(--o),var(--m));border:0;color:var(--on-c);font-weight:800;padding:12px 20px;border-radius:10px;cursor:pointer;font-size:16px;letter-spacing:.05em}
.tabs{display:flex;gap:6px;margin-bottom:10px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filters label{color:var(--dim);font-size:12px;flex:1;min-width:120px}
.split{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{background:var(--card);border:1px solid rgb(var(--fg-rgb)/0.08);border-radius:14px;padding:14px;position:relative}.card.in{border-color:var(--c);box-shadow:0 0 16px rgb(var(--c-rgb)/0.25)}
.card h3{margin:0 0 4px;font-size:16px}.card .sp{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--o);font-weight:700}
.card .meta{color:var(--dim);font-size:13px;margin:2px 0}.row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:8px}
.pill{font-size:11px;border:1px solid rgb(var(--fg-rgb)/0.19);border-radius:10px;padding:1px 8px}.spots{font-weight:700;color:var(--c)}.spots.full{color:var(--m)}
.card button{background:transparent;border:1px solid var(--o);color:var(--o);border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit;font-weight:700}
.card button.joined{background:var(--c);color:var(--on-c);border-color:var(--c)}.card button:disabled{opacity:.4;cursor:default}
.badge{position:absolute;top:10px;right:10px;background:var(--c);color:var(--on-c);font-size:11px;font-weight:800;border-radius:6px;padding:1px 7px}
.map{background:var(--card);border:1px solid rgb(var(--fg-rgb)/0.08);border-radius:14px;padding:8px;position:sticky;top:40px}.map svg{width:100%;display:block}.map small{color:var(--dim)}
.empty{color:var(--dim);padding:20px;border:1px dashed rgb(var(--fg-rgb)/0.19);border-radius:12px}
.pform{max-width:480px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.pform .fld:nth-child(1),.pform .fld:nth-child(2),.pform .go,.err{grid-column:1/-1}.err{color:var(--m);min-height:1em;margin:4px 0}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--bg2);border:1px solid var(--c);color:var(--c);padding:10px 16px;border-radius:10px;transition:.25s;z-index:60}#toast.on{transform:translateX(-50%)}
@media(max-width:820px){.split{grid-template-columns:1fr}.map{position:static;order:-1}.map svg{height:180px}main{padding:12px}header{padding:10px 12px}.logo{font-size:22px}.apptools nav button{padding:6px 8px;font-size:12px}}
