:root{--blue:#38c8ff;--blue2:#7fdfff;--bg:#050b16;--panel:rgba(8,24,48,.82);--tx:#dff6ff;--dim:#8fbfd8;--red:#ff6b6b;--gold:#ffd166;--green:#7dffb0}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.5 "Segoe UI",Roboto,-apple-system,sans-serif;-webkit-text-size-adjust:100%}
body{background:radial-gradient(ellipse at 50% 20%,#0b1f3a 0%,var(--bg) 60%) fixed;padding:14px 12px calc(76px + env(safe-area-inset-bottom));min-height:100vh}
body.login{display:flex;align-items:center;justify-content:center;padding:20px}
a{color:var(--blue2)}
.win{background:var(--panel);border:1.5px solid var(--blue);box-shadow:0 0 18px rgba(56,200,255,.45),inset 0 0 22px rgba(56,200,255,.1);position:relative;padding:14px 16px 16px;margin:0 0 16px;animation:appear .35s ease-out both}
.win::before,.win::after{content:"";position:absolute;width:12px;height:12px;border:1.5px solid var(--blue2)}
.win::before{top:-1.5px;left:-1.5px;border-right:0;border-bottom:0}.win::after{bottom:-1.5px;right:-1.5px;border-left:0;border-top:0}
.win.small{max-width:420px;width:100%}.win.center{margin:0 auto;text-align:center}
.win.red{border-color:var(--red);box-shadow:0 0 18px rgba(255,107,107,.45),inset 0 0 22px rgba(255,107,107,.1)}.win.red::before,.win.red::after{border-color:var(--red)}.win.red .win-title,.win.red .excl{color:var(--red);text-shadow:0 0 10px var(--red);border-color:rgba(255,107,107,.5)}
.win.gold{border-color:var(--gold);box-shadow:0 0 18px rgba(255,209,102,.4)}.win.gold::before,.win.gold::after{border-color:var(--gold)}.win.gold .win-title,.win.gold .excl{color:var(--gold);text-shadow:0 0 10px var(--gold);border-color:rgba(255,209,102,.5)}
@keyframes appear{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.win-title{display:flex;align-items:center;justify-content:center;gap:10px;text-transform:uppercase;letter-spacing:.26em;font-weight:700;font-size:13px;color:var(--blue2);text-shadow:0 0 10px var(--blue);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid rgba(56,200,255,.45)}
.excl{width:22px;height:22px;border:1.5px solid var(--blue2);display:grid;place-items:center;font-weight:900;font-size:13px;box-shadow:0 0 8px var(--blue);flex:none}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;letter-spacing:.04em}
.row b{color:var(--dim);font-weight:500;letter-spacing:.1em;font-size:13px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(56,200,255,.35)}
.bar{height:6px;background:rgba(56,200,255,.15);border:1px solid rgba(56,200,255,.35);margin:4px 0 8px}.bar i{display:block;height:100%;background:var(--blue);box-shadow:0 0 8px var(--blue)}
.bar.hp i{background:var(--green);box-shadow:0 0 8px var(--green)}.bar.mp i{background:#9d7dff;box-shadow:0 0 8px #9d7dff}
.pts{text-align:center;color:var(--blue2);letter-spacing:.06em;margin-top:10px;font-size:14px}
.plus{border:1px solid var(--blue2);background:transparent;color:var(--blue2);width:26px;height:26px;font-weight:700;cursor:pointer;margin-left:8px}
.muted{color:var(--dim);font-size:13px}.center{text-align:center}
.timer{text-align:center;font-size:24px;letter-spacing:.16em;color:var(--blue2);text-shadow:0 0 8px var(--blue);font-variant-numeric:tabular-nums;margin-top:8px}
.warn{margin-top:12px;padding-top:10px;border-top:1px solid rgba(56,200,255,.45);font-size:13px;line-height:1.5;color:var(--dim);text-align:center}.warn em{color:var(--red);font-style:normal}
.obj{font-size:11px;color:var(--dim);letter-spacing:.3em;text-transform:uppercase;text-align:center;margin:6px 0}
.item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid rgba(56,200,255,.12)}.item:last-child{border-bottom:0}
.item .t{flex:1;min-width:0}.item .t small{display:block;color:var(--dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.count{color:var(--blue2);font-variant-numeric:tabular-nums;white-space:nowrap}.count.ok{color:var(--green)}
.ctr{display:flex;align-items:center;gap:6px}.ctr input{width:64px;text-align:center;background:rgba(8,24,48,.9);border:1px solid var(--blue);color:var(--tx);padding:6px 4px;font-size:15px;font-variant-numeric:tabular-nums}
.ctr button{border:1px solid var(--blue2);background:transparent;color:var(--blue2);width:32px;height:32px;font-size:16px;cursor:pointer}
.block{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(56,200,255,.12);align-items:flex-start}.block:last-child{border-bottom:0}
.block .when{width:48px;flex:none;color:var(--dim);font-size:12px;font-variant-numeric:tabular-nums;padding-top:3px;letter-spacing:.04em}
.block .what{flex:1;min-width:0}.block .what small{display:block;color:var(--dim);font-size:12px}
.block.past{opacity:.45}.block.now{opacity:1}.block.now .what{color:#fff}.block.done .what{text-decoration:line-through;color:var(--dim)}
.chk{flex:none;width:30px;height:30px;border:1.5px solid var(--blue2);background:transparent;color:var(--blue2);font-size:15px;cursor:pointer;display:grid;place-items:center}.chk.on{background:var(--blue2);color:#031120;box-shadow:0 0 10px var(--blue)}
.now-box{text-align:center;padding:6px 0 2px}.now-box .big{font-size:20px;color:#fff;letter-spacing:.04em}.now-box .next{color:var(--dim);font-size:13px;margin-top:6px}
.tag{display:inline-block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;border:1px solid rgba(56,200,255,.5);padding:1px 6px;color:var(--dim);margin-left:6px;vertical-align:middle}
.tag.death{border-color:var(--red);color:var(--red)}.tag.main{border-color:var(--gold);color:var(--gold)}
button.act{border:1.5px solid var(--blue2);background:transparent;color:var(--blue2);padding:7px 12px;letter-spacing:.1em;text-transform:uppercase;font-size:12px;cursor:pointer}button.act:disabled{opacity:.35}
button.act.gold{border-color:var(--gold);color:var(--gold)}
.lvl{font-size:26px;letter-spacing:.3em;color:var(--blue2);text-shadow:0 0 14px var(--blue);margin:4px 0 8px;text-align:center}
.err{color:var(--red)}
nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:rgba(5,11,22,.96);border-top:1px solid rgba(56,200,255,.4);padding:6px 0 max(6px,env(safe-area-inset-bottom));backdrop-filter:blur(6px);z-index:5}
nav a{flex:1;text-align:center;color:var(--dim);text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase}nav a.on{color:var(--blue2);text-shadow:0 0 8px var(--blue)}nav a span{display:block;font-size:18px;line-height:1.2}
#overlay{position:fixed;inset:0;background:rgba(2,6,14,.82);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}#overlay[hidden]{display:none}
#overlay .win{max-width:420px;width:100%;text-align:center}#overlay p{margin:6px 0;letter-spacing:.03em;line-height:1.6}
.login .win p{color:var(--dim)}.login input{width:100%;display:block;background:rgba(8,24,48,.9);border:1px solid var(--blue);color:var(--tx);padding:11px;font-size:15px;margin:8px 0}
.login button{width:100%;border:1.5px solid var(--blue2);background:transparent;color:var(--blue2);padding:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;margin-top:6px}
.hdr{display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 10px;color:var(--dim);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.hdr b{color:var(--blue2);font-weight:600}
.penalty{border-color:var(--red)}
.foot{color:#4d7f99;font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;margin:20px 0 4px}
.foot a{color:#4d7f99}
.toggle{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.ctr button.act{width:auto;height:auto;padding:7px 12px;font-size:12px}
