:root{--bg:#10131f;--bg-card:#191d2e;--bg-inset:#0b0e17;--border:#2c3252;--text:#dee4f7;--text-dim:#8f97bd;--accent:#8b87ff;--accent-dim:#453f96;--green:#6fbe8b;--red:#e06868;--gold:#e3bc5e;font-size:16px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45}#app{max-width:680px;padding:.75rem .75rem calc(4.5rem + env(safe-area-inset-bottom));margin:0 auto}h1{letter-spacing:.04em;font-size:1.3rem}h2{color:var(--accent);margin-bottom:.5rem;font-size:1.05rem}h3{margin-bottom:.3rem;font-size:.95rem}.topbar{justify-content:space-between;align-items:baseline;padding:.4rem .2rem .8rem;display:flex}.topbar .gold{color:var(--gold);font-weight:600}.topbar .who{color:var(--text-dim);font-size:.85rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:.8rem;padding:.8rem}.row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem 0;display:flex}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .sub{color:var(--text-dim);font-size:.8rem}button{background:var(--accent-dim);color:var(--text);border:1px solid var(--accent);cursor:pointer;white-space:nowrap;border-radius:8px;padding:.45rem .8rem;font-size:.9rem}button:disabled{opacity:.35;cursor:default;border-color:var(--border);background:var(--bg-inset)}button.small{padding:.25rem .55rem;font-size:.8rem}button.danger{border-color:var(--red);background:#4a2334}button.primary{background:var(--accent);color:#0b0e17;font-weight:700}input,select{background:var(--bg-inset);color:var(--text);border:1px solid var(--border);border-radius:8px;width:100%;padding:.45rem .6rem;font-size:.95rem}input:focus,select:focus{outline:1px solid var(--accent)}form.stack{flex-direction:column;gap:.5rem;display:flex}.inline{align-items:center;gap:.4rem;display:flex}.inline input,.inline select{flex:1;min-width:2rem}.tabs{background:var(--bg-inset);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{color:var(--text-dim);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:.1rem;padding:.6rem .2rem;font-size:.78rem;display:flex}.tabs button .ico{font-size:1.15rem}.tabs button.active{color:var(--accent)}.auth-tabs{border-top:none;border-bottom:1px solid var(--border);background:0 0;margin-bottom:.9rem;position:static}.auth-tabs button{padding:.5rem .2rem;font-size:.9rem}.auth-tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.badge{border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;border-radius:99px;padding:.1rem .45rem;font-size:.72rem}.badge.open{color:var(--green);border-color:var(--green)}.badge.taken{color:var(--gold);border-color:var(--gold)}.badge.dead{color:var(--red);border-color:var(--red)}.chronicle .row{align-items:baseline}.chronicle .when{color:var(--text-dim);white-space:nowrap;font-size:.72rem}.cat-hunt{color:var(--gold)}.cat-town{color:var(--green)}.cat-announcement{color:var(--accent)}.progress{background:var(--bg-inset);border-radius:3px;height:6px;margin-top:.25rem;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width 1s linear}.center{text-align:center;padding:2.5rem 1rem}.center h1{color:var(--accent);margin-bottom:.4rem}.center p{color:var(--text-dim);margin-bottom:1.2rem}#toasts{z-index:100;flex-direction:column;gap:.4rem;width:min(92vw,500px);display:flex;position:fixed;top:.75rem;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--red);color:var(--text);background:#3b1f2d;border-radius:8px;padding:.55rem .8rem;font-size:.88rem;animation:.15s ease-out fadein}.toast.ok{border-color:var(--green);background:#1c2f26}@keyframes fadein{0%{opacity:0;transform:translateY(-4px)}}pre.inspect{background:var(--bg-inset);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin-bottom:.4rem;padding:.5rem;font-size:.72rem;overflow-x:auto}.muted{color:var(--text-dim)}.gold-text{color:var(--gold)}.section-gap{margin-top:1rem}
