.app{max-width:640px;margin:0 auto;padding:0 14px calc(104px + env(safe-area-inset-bottom))}.hdr{position:sticky;top:0;z-index:20;margin:0 -14px;padding:14px 18px 10px;padding-top:calc(14px + env(safe-area-inset-top));background:linear-gradient(180deg,#110304f5 72%,#11030400);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hdr-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.event-name{color:var(--muted);font-size:.82rem;letter-spacing:.06em;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.votebar{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.votebar .dots{display:flex;gap:5px}.vdot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;transition:background .25s,transform .25s}.vdot.full{background:var(--gold)}.vdot.spent{border-color:var(--muted-2)}.votebar .lbl{color:var(--muted);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.super-chip{margin-left:auto;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 9px}.super-chip.used{color:var(--muted-2);border-color:var(--line-soft)}.nowplaying{display:flex;align-items:center;gap:12px;margin:12px 0 2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(103deg,#e8b55224,#e8b5520d)}.eq{display:flex;align-items:flex-end;gap:2.5px;height:18px;flex:none}.eq i{width:3.5px;background:var(--gold);border-radius:2px;animation:eq .9s ease-in-out infinite}.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.4s}@keyframes eq{0%,to{height:5px}50%{height:17px}}@media(prefers-reduced-motion:reduce){.eq i{animation:none;height:11px}}.np-what{min-width:0}.np-lbl{color:var(--gold);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase}.np-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-artist{color:var(--muted);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs{display:flex;gap:6px;margin:14px 0 10px}.tab{flex:1;border:1px solid var(--line-soft);background:var(--panel);border-radius:var(--r-pill);padding:.55rem .8rem;cursor:pointer;color:var(--muted);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.tab.on{color:#2a0710;background:linear-gradient(103deg,var(--gold),var(--gold-deep));border-color:transparent;font-weight:700}.tab .n{opacity:.75;font-size:.78em}.list{display:flex;flex-direction:column;gap:8px}.song{display:flex;align-items:center;gap:11px;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:10px 12px}.song.mine{border-color:var(--line);background:linear-gradient(103deg,rgba(232,181,82,.09),var(--panel))}.song.locked{opacity:.55}.art{flex:none;width:42px;height:42px;border-radius:9px;background:#ffffff0f;display:grid;place-items:center;color:var(--gold);font-size:1.05rem;object-fit:cover}.meta{flex:1;min-width:0}.t{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.a{color:var(--muted);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badges{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap;align-items:center}.meta-line{color:var(--muted-2);font-size:.7rem;letter-spacing:.05em}.actions{display:flex;align-items:center;gap:6px;flex:none}.superbtn{border:1px solid var(--line-soft);background:transparent;border-radius:12px;width:40px;height:44px;font-size:1.05rem;cursor:pointer;display:grid;place-items:center;transition:transform .12s,background .2s;filter:grayscale(1) opacity(.5)}.superbtn:active{transform:scale(.92)}.superbtn.on{filter:none;border-color:#ffb36b8c;background:#ffb36b1f}.superbtn:disabled{opacity:.35;cursor:default}.votebtn{flex:none;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:52px;padding:6px 10px;border-radius:12px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--gold);transition:transform .12s,background .2s}.votebtn:active{transform:scale(.92)}.votebtn .h{font-size:1.05rem;line-height:1.1}.votebtn .c{font-size:.78rem;font-variant-numeric:tabular-nums}.votebtn.has{background:linear-gradient(103deg,var(--gold),var(--gold-deep));color:#2a0710;border-color:transparent;font-weight:700}.votebtn:disabled{opacity:.4;cursor:default}.played-at{flex:none;color:var(--muted-2);font-size:.74rem;font-variant-numeric:tabular-nums}.fab{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:30;border:none;border-radius:var(--r-pill);padding:.95rem 1.35rem;cursor:pointer;font-weight:800;font-size:.95rem;letter-spacing:.04em;color:#2a0710;background:linear-gradient(103deg,var(--gold),var(--gold-deep));box-shadow:0 10px 34px #e8b55259}.fab:active{transform:scale(.96)}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a020399;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:90svh;display:flex;flex-direction:column;background:var(--ox-panel);border:1px solid var(--line);border-bottom:none;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom));animation:up .22s ease both}@keyframes up{0%{transform:translateY(40px);opacity:.4}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.grab{width:44px;height:4px;border-radius:4px;background:var(--line);margin:4px auto 12px}.sheet h2{margin:0 0 12px;font-size:1.05rem;letter-spacing:.04em}.searchbox{position:relative}.searchbox input{padding-left:2.5rem;font-size:1rem}.searchbox .ico{position:absolute;left:.9rem;top:50%;translate:0 -50%;opacity:.55}.results{overflow-y:auto;margin-top:10px;flex:1;min-height:140px}.hint{color:var(--muted-2);font-size:.8rem;text-align:center;padding:18px 8px}:root{--ox: #3f0b10;--ox-deep: #240609;--ox-black: #110304;--ox-panel: #1c0507;--gold: #e8b552;--gold-deep: #c8923a;--gold-soft: #d9a94e;--cream: #f5ecdd;--text: #f3e8da;--muted: #c9a9a2;--muted-2: #a1817c;--line: rgba(232, 181, 82, .22);--line-soft: rgba(245, 236, 221, .1);--panel: rgba(255, 255, 255, .035);--panel-2: rgba(255, 255, 255, .06);--danger: #ff9db0;--success: #8fd6a4;--hot: #ffb36b;--rising: #9fd0ff;--sans: "Helvetica Neue", Inter, system-ui, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;--mono: "SFMono-Regular", ui-monospace, Consolas, "Liberation Mono", monospace;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-pill: 999px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:radial-gradient(120% 90% at 50% -10%,var(--ox-deep) 0%,var(--ox-black) 60%);background-attachment:fixed;color:var(--text);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--gold);text-decoration:none}.mark{font-weight:800;letter-spacing:.15em;font-size:1.05rem;white-space:nowrap;text-transform:uppercase}.mark b{color:var(--gold)}.eyebrow{color:var(--muted);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}.panel{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-md)}.btn{border:none;border-radius:var(--r-pill);padding:.75rem 1.2rem;font-weight:700;font-size:.92rem;cursor:pointer;transition:transform .12s,opacity .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.gold{color:#2a0710;background:linear-gradient(103deg,var(--gold),var(--gold-deep))}.btn.ghost{background:none;border:1px solid var(--line-soft);color:var(--muted)}.btn.outline{background:none;border:1px solid var(--line);color:var(--gold)}.btn.danger{background:none;border:1px solid rgba(255,157,176,.4);color:var(--danger)}.btn.sm{padding:.4rem .8rem;font-size:.8rem}.field{width:100%;padding:.8rem 1rem;border-radius:var(--r-sm);border:1px solid var(--line);background:#ffffff0d;color:var(--cream)}.field:focus{outline:2px solid var(--gold);border-color:transparent}.field::placeholder{color:var(--muted-2)}label.stack{display:flex;flex-direction:column;gap:5px;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.badge{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--gold);white-space:nowrap}.badge.neutral{color:var(--muted);border-color:var(--line-soft)}.badge.hot{color:var(--hot);border-color:#ffb36b6b}.badge.rising{color:var(--rising);border-color:#9fd0ff59}.badge.new{color:var(--success);border-color:#8fd6a459}.badge.danger{color:var(--danger);border-color:#ff9db066}.spinner{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted-2);padding:44px 20px;font-size:.92rem}.empty .big{font-size:2rem;margin-bottom:10px}.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));translate:-50% 0;z-index:90;background:#2a0912;color:var(--cream);border:1px solid var(--line);border-radius:var(--r-pill);padding:.6rem 1.2rem;font-size:.88rem;opacity:0;pointer-events:none;transition:opacity .25s,translate .25s;max-width:88vw;text-align:center}.toast.on{opacity:1;translate:-50% -6px}.toast.error{border-color:#ff9db080;color:var(--danger)}.connbar{position:sticky;top:0;z-index:60;background:#ff9db024;border-bottom:1px solid rgba(255,157,176,.3);color:var(--danger);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:6px 10px}.gate{min-height:100svh;display:grid;place-items:center;text-align:center;padding:24px}.gate .inner{max-width:30em}.gate .mark{font-size:1.5rem}.gate p{color:var(--muted)}.gate .sub{font-size:.86rem;color:var(--muted-2)}.staff{min-height:100svh;display:flex;flex-direction:column}.staff-top{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line-soft);background:#110304cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:40;flex-wrap:wrap}.staff-nav{display:flex;gap:4px;flex-wrap:wrap}.staff-nav a{padding:.4rem .85rem;border-radius:var(--r-pill);color:var(--muted);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}.staff-nav a.active{color:var(--gold);border-color:var(--line);background:var(--panel)}.staff-body{flex:1;padding:20px;max-width:1500px;width:100%;margin:0 auto}.staff-spacer{flex:1}h1.page{margin:0 0 4px;font-size:1.3rem;letter-spacing:.04em}.page-sub{color:var(--muted-2);font-size:.85rem;margin-bottom:18px}.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line-soft)}table.data{width:100%;border-collapse:collapse;font-size:.88rem;min-width:620px}table.data th{text-align:left;padding:10px 12px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);border-bottom:1px solid var(--line-soft);background:#ffffff05;position:sticky;top:0}table.data td{padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:#ffffff05}table.data .num{text-align:right;font-variant-numeric:tabular-nums}.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:18px}.stat{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:12px 14px}.stat .k{color:var(--muted-2);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase}.stat .v{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:3px}.stat .v.gold{color:var(--gold)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .grow{flex:1;min-width:200px}.segmented{display:flex;gap:4px}.segmented button{background:var(--panel);border:1px solid var(--line-soft);color:var(--muted);border-radius:var(--r-pill);padding:.42rem .9rem;font-size:.8rem;cursor:pointer;letter-spacing:.05em}.segmented button.on{color:#2a0710;background:linear-gradient(103deg,var(--gold),var(--gold-deep));border-color:transparent;font-weight:700}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.trend-flat{color:var(--muted-2)}.mono{font-family:var(--mono);font-size:.8rem}.dim{color:var(--muted-2)}.nowrap{white-space:nowrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.section{margin-bottom:28px}.section>h2{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
