:root{--n:#0b2545;--t:#13a8b4;--s:#ffb703;--c:#fb6f61;--bg:#eef6fb;--card:#fff}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:#1d2939}
button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;width:100%;border:1px solid #cfdbe6;border-radius:12px;padding:10px;background:#fff}
.layout{display:flex;align-items:flex-start;min-height:100vh}.side{display:none}
.main{flex:1;padding:0 0 90px;max-width:980px;margin:0 auto;align-self:flex-start;width:100%}
.tabs{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;overflow-x:auto;box-shadow:0 -2px 14px #0b254520;z-index:20;padding-bottom:env(safe-area-inset-bottom)}
.tabs a{flex:1 0 64px;text-align:center;padding:8px 2px;font-size:.68rem;color:#667085;text-decoration:none}.tabs a b{display:block;font-size:1.4rem}.tabs a.on{color:var(--t);font-weight:700}
@media(min-width:860px){.tabs{display:none}.side{display:flex;flex-direction:column;gap:4px;width:220px;background:var(--n);color:#fff;padding:18px 10px;position:sticky;top:0;height:100vh}.side a{color:#cfe8ee;text-decoration:none;padding:11px 14px;border-radius:12px}.side a.on,.side a:hover{background:#ffffff1f;color:#fff}.main{padding-bottom:30px}}
.hero{background:linear-gradient(135deg,#0b2545,#13a8b4);color:#fff;padding:22px 18px 34px;border-radius:0 0 28px 28px;position:relative;overflow:hidden}
.hero h1{margin:.1em 0;font-size:clamp(1.5rem,5vw,2.4rem)}.hero:after{content:"🌊🌊🌊🌊🌊🌊🌊🌊";position:absolute;bottom:-6px;left:0;right:0;font-size:1.6rem;opacity:.3;animation:wv 6s linear infinite;white-space:nowrap}
@keyframes wv{to{transform:translateX(-30%)}}
.who{position:absolute;right:14px;top:14px;background:#ffffff26;border:0;color:#fff;border-radius:30px;padding:6px 12px}
.cd{display:flex;gap:8px;margin-top:14px}.cd div{background:#ffffff26;border-radius:14px;padding:8px 10px;min-width:62px;text-align:center}.cd b{display:block;font-size:1.6rem}
.pad{padding:14px}.card{background:var(--card);border-radius:20px;padding:16px;margin:14px 0;box-shadow:0 4px 18px #0b25450f;animation:up .35s ease}
@keyframes up{from{opacity:0;transform:translateY(10px)}}
h2{margin:.2em 0 .5em;color:var(--n)}h3{margin:.2em 0}.muted{color:#667085;font-size:.85rem}.tbd{background:#fff3cd;color:#8a6100;padding:1px 7px;border-radius:7px;font-size:.8em;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.kv{background:#f4f9fc;border-radius:14px;padding:10px}.kv small{display:block;color:#667085}
.btn{background:var(--c);color:#fff;border:0;border-radius:14px;padding:12px 18px;font-weight:700;min-height:46px}.btn.t{background:var(--t)}.btn.g{background:#eef4f8;color:var(--n)}.btn.sm{padding:6px 12px;min-height:34px;font-size:.85rem}
.chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px}.chip{border:0;background:#fff;border-radius:20px;padding:8px 14px;white-space:nowrap;box-shadow:0 1px 4px #0001}.chip.on{background:var(--n);color:#fff}
.item{border:1px solid #e3edf3;border-radius:16px;padding:12px;margin:8px 0;background:#fff}.row{display:flex;gap:8px;align-items:center}.row>*{min-width:0}
.av{display:inline-flex;margin-left:-6px;width:30px;height:30px;border-radius:50%;background:#e7f6f8;align-items:center;justify-content:center;border:2px solid #fff;font-size:1rem;animation:pop .3s}.avs{padding-left:6px;display:inline-flex}
@keyframes pop{from{transform:scale(0)}}
.int{border:2px solid var(--t);background:#fff;color:var(--t);border-radius:20px;padding:7px 14px;font-weight:700}.int.on{background:var(--t);color:#fff}
.chk{display:flex;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px dashed #e3edf3}.chk input[type=checkbox]{width:24px;height:24px;flex:none}.chk.done span{text-decoration:line-through;color:#98a2b3}.chk span{flex:1}
.x{border:0;background:none;color:#98a2b3;font-size:1.1rem}
.day{border-left:4px solid var(--t);padding:4px 0 4px 16px;margin:16px 0 16px 8px;position:relative}.day:before{content:"";position:absolute;left:-11px;top:8px;width:18px;height:18px;border-radius:50%;background:var(--s);border:3px solid #fff}
.tag{font-size:.72rem;border-radius:8px;padding:2px 8px;font-weight:700}.free{background:#dcfce7;color:#166534}.paid{background:#fee2e2;color:#991b1b}
/* login */
.login{min-height:100vh;background:linear-gradient(160deg,#0b2545,#13a8b4);color:#fff;padding:30px 18px;text-align:center}
.names{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;max-width:640px;margin:20px auto}.names button{background:#ffffff1f;border:2px solid #ffffff40;color:#fff;border-radius:20px;padding:16px;font-size:1.05rem}.names button b{display:block;font-size:2.2rem}
.pin{display:flex;gap:10px;justify-content:center;margin:18px}.pin span{width:22px;height:22px;border-radius:50%;border:2px solid #fff}.pin span.f{background:var(--s);border-color:var(--s)}
.pad3{display:grid;grid-template-columns:repeat(3,80px);gap:12px;justify-content:center}.pad3 button{height:70px;border-radius:50%;border:0;background:#ffffff26;color:#fff;font-size:1.6rem}
/* vote */
#modal .ov{position:fixed;inset:0;background:linear-gradient(160deg,#0b2545,#13a8b4);z-index:50;color:#fff;display:flex;flex-direction:column;padding:24px 18px;overflow:auto;animation:fin .35s}
@keyframes fin{from{opacity:0;transform:scale(1.05)}}
.ov h1{font-size:clamp(1.5rem,5vw,3rem);margin:.2em 0 .6em}.opt{position:relative;display:block;width:100%;text-align:left;background:#ffffff1f;border:2px solid #ffffff40;color:#fff;border-radius:18px;padding:16px;margin:8px 0;font-size:1.15rem;overflow:hidden}
.opt.on{border-color:var(--s);background:#ffb70333}.opt .bar{position:absolute;left:0;top:0;bottom:0;background:#ffffff33;transition:width .6s cubic-bezier(.2,.9,.3,1.2);z-index:0}.opt>*{position:relative;z-index:1}.opt .ct{float:right;font-weight:800}
.opt.win{border-color:var(--s);background:#ffb70355;animation:pulse 1s infinite alternate}@keyframes pulse{to{transform:scale(1.02)}}
.big .opt{font-size:clamp(1.2rem,2.6vw,2rem);padding:22px}
.timer{font-size:1.4rem;font-weight:800;color:var(--s)}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:60;width:100%;height:100%}
.toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);background:var(--n);color:#fff;padding:10px 18px;border-radius:20px;z-index:70;animation:up .3s}
