:root{--board-img:url(/board-light.webp);--board-color:#f5f3ef;--text:#15130f;--text-2:#57534c;--glass:#ffffffb8;--glass-strong:#ffffffe0;--glass-border:#ffffffe6;--glass-edge:#1e19141a;--solid:#fbfaf8;--shadow:0 6px 22px #281e1429, 0 1px 3px #281e141a;--map:#3b6cf6;--hicks:#f0742f;--star:#f5b301;--star-off:#141e3c2e;--ok:#17915a;--warn:#b25e00;--radius:22px;--tab-h:64px}@media (prefers-color-scheme:dark){:root{--board-img:url(/board-dark.webp);--board-color:#1b1b1c;--text:#f4f1ec;--text-2:#b9b4ab;--glass:#222120a8;--glass-strong:#1e1d1cdb;--glass-border:#ffffff24;--glass-edge:#ffffff12;--solid:#242322;--shadow:0 8px 26px #0000008c;--map:#7aa2ff;--hicks:#ff9a5c;--star-off:#ffffff38;--ok:#4fd39a;--warn:#ffb35c}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{color:var(--text);background:var(--board-color);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif}#root{min-height:100%}button{font:inherit;color:inherit}.board{z-index:-1;background:var(--board-color) var(--board-img) center top / 720px auto repeat;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.glass{background:var(--glass);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow), inset 0 1px 0 #ffffff59, inset 0 -1px 0 var(--glass-edge)}.glass-strong{background:var(--glass-strong)}@media (prefers-reduced-transparency:reduce){.glass,.glass.glass-strong{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--solid)}}:root[data-glass=reduced] .glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--solid)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass,.glass.glass-strong{background:var(--solid)}}.app{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 14px) 14px calc(var(--tab-h) + env(safe-area-inset-bottom) + 28px);max-width:560px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin:6px 2px 14px;display:flex}.page-head h1{letter-spacing:-.02em;margin:0;font-size:30px;line-height:1.1}.page-head .sub{color:var(--text-2);margin:3px 0 0;font-size:14px}.page-head>div:first-child{min-width:0}.sub-row{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.pill{white-space:nowrap;color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.live{color:var(--ok)}.pill.live:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.8s infinite pulse;box-shadow:0 0}@keyframes pulse{70%{box-shadow:0 0 0 7px #0000}}@media (prefers-reduced-motion:reduce){.pill.live:before{animation:none}}.icon-btn{cursor:pointer;border:0;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.icon-btn svg{width:20px;height:20px}.tabbar{left:50%;bottom:calc(env(safe-area-inset-bottom) + 10px);width:min(100% - 24px,420px);height:var(--tab-h);z-index:20;border-radius:999px;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px;display:grid;position:fixed;transform:translate(-50%)}.tab{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;transition:background .2s,color .2s;display:flex;position:relative}.tab svg{width:22px;height:22px}.tab[aria-current=page]{color:var(--text);background:#80808047;box-shadow:inset 0 1px #ffffff59}.tab .dot{background:var(--ok);border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:calc(50% - 20px)}.tab:focus-visible,.icon-btn:focus-visible,.btn:focus-visible{outline:3px solid var(--map);outline-offset:2px}.ring-card{flex-direction:column;align-items:center;gap:14px;padding:20px 16px 16px;display:flex}.ring-wrap{width:224px;height:224px;position:relative}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-wrap circle{fill:none;stroke-width:26px;transition:stroke-dasharray .7s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .7s cubic-bezier(.2,.8,.2,1)}.ring-center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.ring-center b{letter-spacing:-.02em;font-size:30px;line-height:1.05}.ring-center span{color:var(--text-2);margin-top:2px;font-size:13px}.ring-legend{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.legend-item{background:#80808024;border-radius:16px;padding:10px 12px}.legend-item .nm{align-items:center;gap:7px;font-size:14px;font-weight:700;display:flex}.swatch{border-radius:3px;width:10px;height:10px}.legend-item .big{letter-spacing:-.02em;margin-top:2px;font-size:24px;font-weight:800}.legend-item .small{color:var(--text-2);font-size:12px}.legend-item.lead{outline:2px solid}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin:20px 4px 8px;font-size:13px;font-weight:700}.rank-grid{grid-template-columns:1fr 1fr;align-items:start;gap:10px;display:grid}.rank-col{padding:12px 10px}.rank-col h3{align-items:center;gap:6px;margin:0 0 8px 2px;font-size:14px;display:flex}.rank-row{border-top:1px solid var(--glass-edge);grid-template-columns:20px 1fr;align-items:start;gap:2px 8px;padding:9px 4px;font-size:14px;line-height:1.25;display:grid}.rank-row:first-of-type{border-top:0}.rank-n{background:#80808040;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid}.rank-row .nm{overflow-wrap:break-word;min-width:0;font-weight:600}.rank-row .sc{font-variant-numeric:tabular-nums;grid-column:2;font-size:13px;font-weight:700}.rank-row .sc small{color:var(--text-2);margin-left:4px;font-size:12px;font-weight:500}.rank-row.solo{grid-template-columns:1fr}.rank-row.solo .sc{grid-column:1}.rank-worst{border-top:1px dashed var(--glass-edge);margin-top:6px;padding-top:8px}.rank-worst .lbl{text-transform:uppercase;letter-spacing:.05em;color:var(--warn);margin:0 0 2px 4px;font-size:11px;font-weight:700}.empty{text-align:center;color:var(--text-2);padding:22px 16px;font-size:15px}.btn{cursor:pointer;background:var(--map);color:#fff;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-weight:700;display:inline-flex}.btn.ghost{color:var(--text);background:#80808038}a.btn{text-decoration:none}.support{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.btn:disabled{opacity:.6;cursor:default}.banners{gap:8px;margin:0 0 12px;display:grid}.banner{border-radius:16px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:14px;display:flex}.banner b{font-weight:700}.banner.warn{color:var(--warn)}.compare{align-items:start;gap:10px;display:grid}.compare.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.compare.one{grid-template-columns:minmax(0,1fr)}.hall-head{top:calc(env(safe-area-inset-top) + 8px);z-index:5;margin-bottom:10px;padding:12px 12px 10px;position:sticky}.hall-head h2{letter-spacing:-.01em;align-items:center;gap:7px;margin:0;font-size:17px;display:flex}.hall-head .hours{color:var(--text-2);margin:3px 0 8px;font-size:12.5px;line-height:1.3}.hall-head .hours b{color:var(--text);font-weight:650}.station{margin-bottom:10px;padding:10px 10px 4px}.station h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin:0 0 4px 2px;font-size:12px}.item{border-top:1px solid var(--glass-edge);padding:9px 2px 10px}.item:first-of-type{border-top:0}.item .nm{overflow-wrap:anywhere;font-size:14.5px;font-weight:600;line-height:1.25}.item.plain .nm{color:var(--text-2);font-weight:500}.rate-meta{min-height:20px;color:var(--text-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 6px;margin-top:5px;font-size:12px;display:flex}.chip{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;background:#80808038;border-radius:999px;padding:2px 7px;font-weight:700}.chip.none{color:var(--text-2);background:0 0;padding-right:0;font-weight:600}.chip.you{color:var(--text-2);background:0 0;padding-left:0;font-weight:600}.stars{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:10px;gap:2px;width:100%;max-width:170px;padding:3px 0;display:flex}.stars.v-hall{max-width:190px}.stars svg{flex:1;min-width:0;height:26px}.stars .on{fill:var(--star);stroke:var(--star)}.stars .off{fill:none;stroke:var(--star-off)}.stars svg path{stroke-width:1.6px;stroke-linejoin:round;transition:fill .12s}.stars[aria-disabled=true]{cursor:not-allowed;opacity:.55}.stars:focus-visible{outline:3px solid var(--map);outline-offset:2px}.stars.dragging .on{filter:drop-shadow(0 0 6px #f5b30199)}.skeleton{border-radius:var(--radius);background:var(--glass);height:120px;animation:1.4s infinite alternate shimmer}@keyframes shimmer{to{opacity:.5}}.scrim{z-index:40;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(100%,560px);padding:18px 18px calc(env(safe-area-inset-bottom) + 20px);border-radius:28px 28px 0 0}.sheet.scroll{overscroll-behavior:contain;max-height:88dvh;overflow-y:auto}.sheet h2{margin:0 0 12px}.row.col{flex-direction:column;align-items:stretch}.chips{flex-wrap:wrap;gap:8px;margin:8px 0 12px;display:flex}.achip{border:1.5px solid var(--glass-edge);min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:#80808024;border-radius:999px;padding:8px 13px;font-size:14px;font-weight:600}.achip[aria-pressed=true]{background:var(--warn);border-color:var(--warn);color:#fff}.achip:focus-visible,.seg button:focus-visible,.filter-btn:focus-visible,.link-btn:focus-visible{outline:3px solid var(--map);outline-offset:2px}.seg{background:#80808033;border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:4px;padding:4px;display:grid}.seg button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px;font-size:14px;font-weight:600}.seg button[aria-checked=true]{background:var(--glass-strong,#ffffffe6);box-shadow:0 1px 4px #00000040}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .achip[aria-pressed=true],:root:not([data-theme=light]) .filter-btn .n{color:#1b1b1c}}.filter-btn{white-space:nowrap;font:inherit;color:var(--text);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:9px 14px;font-size:14px;font-weight:700;display:inline-flex}.filter-btn .n{background:var(--warn);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;display:inline-grid}.link-btn{font:inherit;color:var(--map);cursor:pointer;background:0 0;border:0;padding:0 0 0 6px;font-weight:700;text-decoration:underline}.head-actions{align-items:center;gap:8px;display:flex}.item.dim .nm{opacity:.55}.al{color:var(--warn);margin-top:3px;font-size:12px;font-weight:700;display:block}.al.unk{color:var(--text-2);font-weight:600}.item.plain .al{font-weight:700}.row{border-top:1px solid var(--glass-edge);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.row small{color:var(--text-2);margin-top:2px;display:block}.switch{flex:none;width:52px;height:32px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch span{pointer-events:none;background:#80808059;border-radius:999px;transition:all .2s;position:absolute;inset:0}.switch span:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0000004d}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:after{transform:translate(20px)}.switch input:focus-visible+span{outline:3px solid var(--map);outline-offset:2px}.toast{left:50%;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 26px);z-index:50;max-width:calc(100% - 32px);padding:11px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.gate{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 20px) 18px 24px;place-items:center;display:grid}.gate-card{text-align:center;width:min(100%,440px);padding:26px 22px}.gate-card img{width:84px;height:84px;box-shadow:var(--shadow);border-radius:20px}.gate-card h1{letter-spacing:-.02em;margin:14px 0 6px;font-size:26px}.gate-card p{color:var(--text-2);margin:0 0 16px;line-height:1.45}.steps{text-align:left;counter-reset:s;gap:10px;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;background:#80808029;border-radius:16px;align-items:center;gap:12px;padding:12px;font-size:15px;line-height:1.3;display:flex}.steps li:before{content:counter(s);background:var(--map);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:grid}.steps svg{vertical-align:-4px;width:20px;height:20px}.admin{max-width:1100px;margin:0 auto;padding:20px 16px 60px}.admin h1{margin:0 0 4px}.admin .who{color:var(--text-2);margin:0 0 16px;font-size:14px}.admin-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.admin-tabs .btn{padding:9px 16px}.cal-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.cal-head h2{flex:1;margin:0;font-size:20px}.cal{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal .dow{text-align:center;color:var(--text-2);padding:4px 0;font-size:12px;font-weight:700}.cal button.day{text-align:left;border:1px solid var(--glass-border);background:var(--glass);cursor:pointer;border-radius:14px;flex-direction:column;gap:3px;min-height:74px;padding:6px 7px;display:flex}.cal button.day[aria-pressed=true]{outline:3px solid var(--map)}.cal .blank{min-height:74px}.cal .num{color:var(--text-2);font-size:12px;font-weight:700}.cal .cnt{letter-spacing:-.02em;font-size:18px;font-weight:800}.cal .hl{flex-wrap:wrap;gap:6px;font-size:11px;display:flex}.cal .hl span{align-items:center;gap:3px;display:inline-flex}.admin table{border-collapse:collapse;width:100%;font-size:14px}.admin th,.admin td{text-align:left;border-top:1px solid var(--glass-edge);padding:8px 10px}.admin th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);font-size:12px}.admin td.n,.admin th.n{text-align:right;font-variant-numeric:tabular-nums}.panel{margin-top:14px;padding:14px 16px}.panel h3{margin:0 0 8px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.filters select,.filters input{font:inherit;border:1px solid var(--glass-border);background:var(--glass-strong);color:var(--text);border-radius:12px;padding:9px 12px}.note{color:var(--text-2);margin:8px 0 0;font-size:13px}@media (max-width:640px){.cal button.day,.cal .blank{min-height:58px}.cal .cnt{font-size:15px}.cal .hl{display:none}}.ts-host{left:50%;bottom:calc(env(safe-area-inset-bottom) + 96px);z-index:60;position:fixed;transform:translate(-50%)}.legal{font-size:15px;line-height:1.5}.legal h1{margin:0 0 4px;font-size:26px}.legal h2{margin:18px 0 4px;font-size:16px}.legal p,.legal ul{margin:6px 0}.legal ul{padding-left:20px}.legal a,.note a{color:var(--map)}.legal-page{padding-top:24px}.legal-page .panel{padding:18px}.btn.danger{color:#fff;background:#c62828}.confirm{gap:8px;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:12px;display:grid}.stat{border-radius:18px;gap:2px;padding:12px 14px;display:grid}.stat span{color:var(--text-2);font-size:13px}.stat b{font-variant-numeric:tabular-nums;font-size:26px}.bars{align-items:flex-end;gap:2px;height:120px;margin:12px 0;display:flex}.bar{background:var(--map);border-radius:2px 2px 0 0;flex:1;min-width:2px}.act{white-space:nowrap}.act .btn{padding:6px 10px;font-size:13px}.times input{width:6.5em}
