@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";:root{color-scheme:dark;--desktop-sidebar-width: 368px;--rating-card-min-width: 125px;--rating-card-max-width: 250px;--tier-card-min-width: 88px;--tier-card-max-width: 124px;--bg: #0b0b0f;--panel: #111116;--panel-raised: #181820;--ink: #dcdce8;--ink-dim: #9898b0;--muted: #636378;--accent: #e09000;--accent-2: #c07a00;--accent-fg: #0b0b0f;--line: #1e1e28;--line-strong: #2c2c3a;--chip: #17171f;--chip-active: #e09000;--diff-basic: #4cc874;--diff-advanced: #f0b429;--diff-expert: #f47070;--diff-master: #a65cdf;--diff-remaster: #d8d8d8;--diff-remaster-text: #ba7ee9;--chart-std: #5cb8f0;--chart-dx: #8899aa;--grid-line: rgba(255, 255, 255, .018);--table-header-bg: #0d0d12;--history-grid-stroke: rgba(255, 255, 255, .05);--code-color: #9ec8a0}*{box-sizing:border-box}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}body{margin:0;min-height:100vh;scrollbar-gutter:stable;color:var(--ink);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:40px 40px}#root{width:100%}h1,h2,h3{margin:0;font-family:Pretendard Variable,Pretendard,sans-serif;font-weight:700;letter-spacing:-.025em}p{margin:0}button,input,select{font:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.app-shell{width:100%;margin:0;padding:14px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.app-sidebar{gap:18px;padding:16px 14px;background:var(--panel)}.app-sidebar-inline{display:grid;gap:14px}.app-main{display:grid;gap:14px;min-width:0}.brand-copy{display:grid;gap:4px;min-width:0}.app-sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.brand-copy h1{font-size:clamp(1.12rem,1.45vw,1.45rem);line-height:1.1;letter-spacing:-.03em;color:var(--ink)}.brand-copy p{color:var(--muted);font-size:12px;line-height:1.45}.app-nav{position:relative;display:grid;gap:2px}.app-nav-trigger,.app-nav-list button{width:100%;height:auto;min-height:36px;padding:7px 10px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;justify-items:start;gap:10px;border-radius:2px;background:transparent;border:1px solid transparent;color:var(--muted);transition:background .1s ease,color .1s ease,border-color .1s ease,box-shadow .1s ease}.app-nav-trigger{display:none;grid-template-columns:minmax(0,1fr) 18px;align-items:center;background:var(--chip);border-color:var(--line-strong);color:var(--ink-dim)}.app-nav-trigger-main{display:inline-flex;align-items:center;gap:10px;min-width:0}.app-nav-trigger-chevron{display:inline-flex;align-items:center;justify-content:center;transition:transform .16s ease}.app-nav-trigger-chevron.is-open{transform:rotate(180deg)}.app-nav-list{display:grid;gap:2px}.app-nav-list-mobile{display:none}.app-nav-list button:hover{background:var(--chip);border-color:var(--line);color:var(--ink-dim)}.app-nav-list button.active{box-shadow:inset 2px 0 0 var(--accent);background:#e0900012;border-color:#e090002e;color:var(--accent);font-weight:700}.app-nav-trigger svg,.app-nav-list button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-player-summary{margin:0;min-width:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;padding:4px 8px;border:1px solid rgba(224,144,0,.18);border-radius:999px;background:#e090000f;color:var(--ink-dim);font-size:12px;line-height:1.35;text-align:right;white-space:nowrap}.app-player-summary-shell{min-width:0;display:grid;justify-items:end;gap:6px}.app-player-summary-meta{min-width:0;display:inline-flex;align-items:center;gap:6px;overflow:hidden}.app-player-summary-name{color:var(--ink);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.app-player-summary-separator,.app-player-summary-count{color:var(--ink-dim);font-size:12px}.app-player-summary-separator{opacity:.65}.app-player-refresh-button{width:24px;min-width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#ffffff08}.app-player-refresh-button:hover:not(:disabled){background:#e090001f}.app-player-refresh-button:disabled{cursor:progress;opacity:.75}.app-player-refresh-icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-player-refresh-icon.is-spinning{animation:app-player-refresh-spin .9s linear infinite}.app-player-summary-status{max-width:min(320px,100%);text-align:right}@keyframes app-player-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toolbar-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid var(--line-strong);border-radius:2px;background:var(--chip);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.01em}.toolbar-pill.accent{border-color:#e090004d;background:#e0900014;color:var(--accent)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.panel-heading.compact{gap:8px}.panel-heading-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.panel-heading p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.panel-count{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:2px;border:1px solid var(--line-strong);background:var(--chip);color:var(--ink-dim);font-family:inherit;font-size:.82rem;font-weight:500;letter-spacing:0}.explorer-layout{display:grid;grid-template-columns:var(--desktop-sidebar-width) minmax(0,1fr);gap:14px;align-items:start}.table-explorer-layout{align-items:stretch;height:calc(100dvh - 28px);min-height:0}.sidebar-column,.table-column{min-width:0}.table-column{display:grid;gap:14px;min-height:0}.sidebar-column{display:grid;gap:14px;align-self:start}.sidebar-column{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto}.mobile-filter-fab{display:none}.panel.search-panel,.panel.mobile-search-panel{gap:0}.panel.mobile-search-panel{display:none}.mobile-filter-modal{width:min(720px,100%)}.mobile-filter-modal>.detail-header{align-items:flex-start;justify-content:flex-end}.mobile-filter-modal .filter-panel{border:0;padding:0;background:transparent}.sidebar-column .panel{position:static;max-height:none;overflow:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:14px;display:grid;gap:14px}.panel h2{font-size:1.1rem;letter-spacing:-.02em}.server-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr)) auto;gap:10px;align-items:end}.server-grid label{display:grid;gap:6px}.server-meta{display:grid;gap:3px;color:var(--muted);font-size:13px}.server-meta.compact{color:var(--muted);font-size:11px;gap:2px}.tabs{display:inline-flex;gap:2px;background:var(--chip);border:1px solid var(--line-strong);border-radius:2px;padding:3px;width:fit-content}.tabs button{border:1px solid transparent;border-radius:2px;padding:6px 14px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:600;transition:background .1s ease,color .1s ease,border-color .1s ease}.tabs button:hover{border-color:transparent;background:var(--panel-raised);color:var(--ink-dim)}.tabs button.active{background:var(--accent);border-color:var(--accent-2);color:var(--accent-fg);font-weight:700}.filter-grid{display:grid;gap:14px}.filter-block{display:grid;gap:8px}.filter-label{font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:var(--chip);border-radius:2px;height:auto;min-height:28px;padding:4px 10px;font-size:12px;font-weight:500;color:var(--ink-dim);cursor:pointer;transition:background .1s ease,border-color .1s ease,color .1s ease}.chip:hover:not(.active){border-color:var(--line-strong);background:var(--panel-raised);color:var(--ink)}.chip.active{border-color:var(--accent-2);background:var(--accent);color:var(--accent-fg);box-shadow:inset 0 0 0 1px #00000014;font-weight:700}.difficulty-label{font-weight:700}.chart-type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:4ch;min-height:20px;padding:0 6px;border-radius:2px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 20%,var(--panel));font-size:inherit;font-weight:500;line-height:1.1;vertical-align:middle}.chart-type-std{color:var(--chart-std)}.chart-type-dx{color:var(--chart-dx)}.difficulty-badge{display:inline-flex;align-items:center;justify-content:center;min-width:5ch;min-height:20px;padding:0 6px;border-radius:2px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 20%,var(--panel));font-size:inherit;font-weight:500;line-height:1.1;vertical-align:middle}.difficulty-badge.diff-remaster{border-color:var(--diff-remaster);background:color-mix(in srgb,var(--diff-remaster) 20%,var(--panel));color:var(--diff-remaster-text)}.diff-basic{color:var(--diff-basic)}.diff-advanced{color:var(--diff-advanced)}.diff-expert{color:var(--diff-expert)}.diff-master{color:var(--diff-master)}.diff-remaster{color:var(--diff-remaster)}.diff-unknown{color:var(--muted)}.difficulty-chip,.chart-type-chip{background:var(--chip)}.chart-type-chip.chart-type-std,.chart-type-chip.chart-type-dx{border-color:var(--line-strong);background:var(--chip);color:var(--muted)}.chart-type-chip.active{color:inherit}.chart-type-chip.active.chart-type-std{border-color:var(--chart-std);background:color-mix(in srgb,var(--chart-std) 28%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--chart-std) 40%,transparent);color:var(--chart-std)}.chart-type-chip.active.chart-type-dx{border-color:var(--chart-dx);background:color-mix(in srgb,var(--chart-dx) 28%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--chart-dx) 40%,transparent);color:var(--chart-dx)}.difficulty-chip.diff-basic,.difficulty-chip.diff-advanced,.difficulty-chip.diff-expert,.difficulty-chip.diff-master,.difficulty-chip.diff-remaster{border-color:var(--line-strong);background:var(--chip);color:var(--muted)}.difficulty-chip.diff-basic .difficulty-label{color:var(--diff-basic)}.difficulty-chip.diff-advanced .difficulty-label{color:var(--diff-advanced)}.difficulty-chip.diff-expert .difficulty-label{color:var(--diff-expert)}.difficulty-chip.diff-master .difficulty-label{color:var(--diff-master)}.difficulty-chip.diff-remaster .difficulty-label{color:var(--diff-remaster-text)}.difficulty-chip.active{color:inherit}.difficulty-chip.active.diff-basic{border-color:var(--diff-basic);background:color-mix(in srgb,var(--diff-basic) 28%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--diff-basic) 38%,transparent);color:var(--diff-basic)}.difficulty-chip.active.diff-advanced{border-color:var(--diff-advanced);background:color-mix(in srgb,var(--diff-advanced) 30%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--diff-advanced) 38%,transparent);color:var(--diff-advanced)}.difficulty-chip.active.diff-expert{border-color:var(--diff-expert);background:color-mix(in srgb,var(--diff-expert) 28%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--diff-expert) 38%,transparent);color:var(--diff-expert)}.difficulty-chip.active.diff-master{border-color:var(--diff-master);background:color-mix(in srgb,var(--diff-master) 28%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--diff-master) 38%,transparent);color:var(--diff-master)}.difficulty-chip.active.diff-remaster{border-color:var(--diff-remaster);background:color-mix(in srgb,var(--diff-remaster) 30%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--diff-remaster) 38%,transparent);color:var(--diff-remaster-text)}.level-badge{display:inline-flex;align-items:center;justify-content:center;min-width:4.6ch;min-height:20px;padding:0 6px;border-radius:2px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 18%,var(--panel));font-size:inherit;font-weight:400;line-height:1.1;vertical-align:middle}.level-badge.diff-remaster{border-color:var(--diff-remaster);background:color-mix(in srgb,var(--diff-remaster) 18%,var(--panel));color:var(--diff-remaster-text)}.level-badge.detail-level-toggle{cursor:pointer;min-width:4.6ch;height:22px;padding:0 6px;font-size:inherit;font-weight:400;line-height:1.1;white-space:nowrap}.level-badge.detail-level-toggle:hover{background:color-mix(in srgb,currentColor 25%,var(--panel))}.level-badge.detail-level-toggle.showing-user-tier{min-width:7ch;font-weight:700}.difficulty-summary-list{display:inline-flex;flex-wrap:wrap;gap:0}.difficulty-summary-item{display:inline-flex;align-items:center}.difficulty-summary-separator{color:var(--muted);margin:0 1px}.difficulty-summary-all{font-weight:700}.search-box,.search-submit-group{display:grid;gap:6px}.search-submit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.search-submit-row input{min-width:0}.search-submit-group input,.search-submit-group button{height:32px;font-size:12px}.search-submit-row button{min-width:72px}.search-box span,label>span{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}input,select,button{height:36px;border-radius:2px;border:1px solid var(--line-strong);padding:0 10px;background:var(--bg);color:var(--ink);transition:border-color .1s ease,background .1s ease,box-shadow .1s ease}button{background:var(--chip);border-color:var(--line-strong);font-weight:600;cursor:pointer;color:var(--ink-dim)}button:hover{border-color:#e090004d;background:var(--panel-raised);color:var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid rgba(224,144,0,.25);outline-offset:1px;border-color:var(--accent);box-shadow:0 0 0 3px #e0900014}.range-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.range-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.range-pair label{display:block}.range-pair input{width:100%}.range-separator{color:var(--muted);font-weight:700;text-align:center}.range-grid.compact{grid-template-columns:repeat(5,minmax(140px,1fr))}.range-grid label,.toggle-grid label{display:grid;gap:6px}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px}.toggle-grid label{grid-auto-flow:column;justify-content:start;align-items:center;gap:8px;font-weight:500}.toggle-grid input{width:16px;height:16px;margin:0}.filter-panel{gap:12px}.filter-panel .panel-heading.compact{align-items:center;justify-content:space-between}.filter-panel .filter-grid{gap:0}.filter-panel .filter-label{font-size:11px}.filter-panel .filter-grid>*+*{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.filter-panel .chip-row{gap:6px}.filter-panel .chip{border-radius:2px;min-height:30px;padding:4px 9px}.filter-reset-button{height:30px;padding:0 10px;border-color:var(--line-strong);background:var(--chip);color:var(--ink-dim);font-weight:600;white-space:nowrap}.search-submit-button{min-width:84px;background:var(--accent);border-color:var(--accent-2);color:var(--accent-fg);font-weight:700}.search-submit-button:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-fg)}.filter-block-select label{display:grid}.filter-panel>.filter-grid>label{display:grid;gap:6px}.filter-panel input,.filter-panel select,.filter-panel button{height:32px;font-size:12px}.filter-panel .range-grid,.filter-panel .range-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.filter-panel .toggle-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.filter-panel .toggle-grid label{display:grid;grid-template-columns:16px minmax(0,1fr);grid-auto-flow:row;align-items:start;column-gap:6px;row-gap:0;font-size:12px;line-height:1.25}.filter-panel .toggle-grid input{margin-top:2px}.rating-stat-grid{display:grid;gap:8px}.rating-stat-card{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:2px;background:var(--chip)}.rating-stat-card span{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.rating-stat-card strong{font-family:inherit;font-size:1.45rem;font-weight:600;line-height:1.1;letter-spacing:-.03em;color:var(--ink)}.rating-stat-breakdown{font-size:11px;color:var(--ink-dim);font-weight:700;font-family:inherit}.rating-stat-sub{font-size:11px;color:var(--muted);font-weight:500;font-family:inherit}.rating-mobile-summary-panel{display:none}.rating-table-column{display:grid;gap:14px;align-items:start}.rating-section-panel{align-self:start;min-width:0}.rating-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(var(--rating-card-min-width),calc((100% - 20px) / 3),var(--rating-card-max-width)),1fr));gap:10px}.rating-song-card{--rating-card-accent: var(--accent);display:grid;grid-template-rows:auto auto;gap:0;padding:0;border:1px solid var(--line-strong);border-top:2px solid var(--rating-card-accent);border-radius:2px;background:var(--panel);overflow:hidden;cursor:pointer;transition:border-color .12s ease,transform .12s ease;min-width:0;width:100%}.rating-song-card:hover,.rating-song-card:focus-visible{border-color:color-mix(in srgb,var(--rating-card-accent) 60%,var(--line));border-top-color:var(--rating-card-accent);transform:translateY(-1px)}.rating-song-card:focus-visible{outline:2px solid var(--rating-card-accent);outline-offset:2px}.rating-song-stage{position:relative;aspect-ratio:1;overflow:hidden;background:color-mix(in srgb,var(--rating-card-accent) 10%,#0a0a12)}.rating-song-card.diff-basic,.rating-song-stage.diff-basic{--rating-card-accent: var(--diff-basic)}.rating-song-card.diff-advanced,.rating-song-stage.diff-advanced{--rating-card-accent: var(--diff-advanced)}.rating-song-card.diff-expert,.rating-song-stage.diff-expert{--rating-card-accent: var(--diff-expert)}.rating-song-card.diff-master,.rating-song-stage.diff-master{--rating-card-accent: var(--diff-master)}.rating-song-card.diff-remaster,.rating-song-stage.diff-remaster{--rating-card-accent: var(--diff-remaster)}.rating-song-card.diff-unknown,.rating-song-stage.diff-unknown{--rating-card-accent: var(--muted)}.rating-song-jacket-wrap{position:absolute;inset:0}.rating-song-jacket-wrap>div{position:absolute;inset:0}.rating-song-jacket-wrap .rating-song-jacket-frame{width:100%;height:100%}.rating-song-jacket-wrap .jacket.rating-song-jacket{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;border-radius:0;object-fit:cover;background:#ffffff05}.rating-song-stage-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#0000000a 0% 36%,#000c);pointer-events:none}.rating-song-stage-topline{position:absolute;top:8px;left:8px;right:8px;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;font-weight:700;color:#f8fafcf5;text-transform:uppercase;letter-spacing:.05em;font-family:inherit}.rating-song-stage-topline span{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border-radius:2px;background:#00000094;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.rating-song-stage-badges{position:absolute;left:8px;right:70px;bottom:8px;z-index:1;display:flex;flex-wrap:wrap;gap:5px}.rating-song-stage-badges .chart-type-badge,.rating-difficulty-chip{min-height:21px;padding:0 7px;border-radius:2px;border:1px solid rgba(255,255,255,.15);background:#ffffffe0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:10px;font-weight:700;line-height:1.1;color:#111}.rating-difficulty-chip{display:inline-flex;align-items:center}.rating-song-rating-chip{position:absolute;right:8px;bottom:8px;z-index:1;display:flex;align-items:center;justify-content:center;padding:7px 8px;border-radius:2px;background:#000000ad;border:1px solid rgba(255,255,255,.12);color:#f8fafc;text-align:right}.rating-song-rating-chip strong{font-family:inherit;font-size:1rem;line-height:1;font-weight:600}.rating-song-info{display:grid;gap:6px;padding:10px 10px 12px;min-height:120px;background:var(--panel)}.rating-song-info h3{margin:0;font-size:.92rem;line-height:1.3;overflow-wrap:anywhere;color:var(--ink)}.rating-song-level-row{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.rating-song-stat-grid{position:relative;display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:0;margin-top:auto;margin-left:-10px;margin-right:-10px;padding-top:8px;border-top:1px solid var(--line)}.rating-song-stat-grid:before,.rating-song-stat-grid:after{content:"";position:absolute;top:calc(50% + 4px);width:1px;height:12px;background:var(--line);transform:translate(-50%,-50%)}.rating-song-stat-grid:before{left:50%}.rating-song-stat-grid:after{left:75%}.rating-song-stat{display:flex;align-items:center;justify-content:center;min-width:0;min-height:22px;padding:0 6px;text-align:center;overflow:hidden}.rating-song-stat strong{display:block;width:100%;font-family:inherit;font-size:.73rem;font-weight:500;line-height:1.05;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em;color:var(--ink-dim)}.user-tier-layout{align-items:start}.user-tier-table-column{display:grid;gap:14px}.user-tier-info-panel{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;margin-bottom:14px;padding:12px 14px;border-color:color-mix(in srgb,var(--accent) 34%,var(--line-strong));background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.user-tier-info-marker{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line-strong));border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--accent);font-size:.82rem;font-weight:900;line-height:1}.user-tier-info-panel p{margin:0;min-width:0;color:var(--ink-dim);font-size:.82rem;font-weight:600;line-height:1.45}.user-tier-info-panel a{color:var(--accent);font-weight:800;text-decoration:none}.user-tier-info-panel a:hover{text-decoration:underline}.user-tier-range-tabs{display:grid;grid-template-columns:repeat(3,minmax(96px,1fr));gap:4px;width:min(100%,430px);padding:4px;border:1px solid var(--line-strong);border-radius:2px;background:var(--chip)}.user-tier-range-tabs button{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label count" "meta meta";align-items:center;gap:2px 8px;min-width:0;min-height:48px;padding:7px 8px;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--ink-dim);text-align:left;cursor:pointer;transition:background .1s ease,color .1s ease,border-color .1s ease}.user-tier-range-tabs button:hover{background:var(--panel-raised);color:var(--ink)}.user-tier-range-tabs button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--ink)}.user-tier-range-label{grid-area:label;min-width:0;font-size:.95rem;font-weight:800;line-height:1.1}.user-tier-range-meta{grid-area:meta;min-width:0;color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-tier-range-count{grid-area:count;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 6px;border-radius:999px;background:#ffffff0f;color:var(--ink);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}.user-tier-range-tabs button.active .user-tier-range-count{background:var(--accent);color:var(--accent-fg)}.user-tier-filter-actions{display:grid;gap:8px}.user-tier-control-group{display:grid;gap:6px}.user-tier-control-title{color:var(--ink-dim);font-size:.72rem;font-weight:800;line-height:1.1}.user-tier-display-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(100%,430px);padding:4px;border:1px solid var(--line-strong);border-radius:2px;background:var(--chip)}.user-tier-display-options button{min-width:0;min-height:34px;padding:7px 8px;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--ink-dim);font-size:.78rem;font-weight:800;line-height:1.1;text-align:center;cursor:pointer;transition:background .1s ease,color .1s ease,border-color .1s ease}.user-tier-display-options button:hover{background:var(--panel-raised);color:var(--ink)}.user-tier-display-options button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--ink)}.user-tier-filter-toggle{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;column-gap:8px;min-height:34px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:2px;background:var(--chip);color:var(--ink-dim);font-size:.82rem;font-weight:600;cursor:pointer}.user-tier-filter-toggle:hover{border-color:var(--accent);color:var(--ink)}.user-tier-filter-toggle:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--ink)}.user-tier-filter-toggle input{width:16px;height:16px;margin:1px 0 0}.user-tier-filter-toggle span{min-width:0;line-height:1.25}.empty-state-panel{padding:18px;color:var(--muted);font-size:13px}.user-tier-stack{display:grid;gap:14px}.user-tier-section-panel{align-self:start;min-width:0}.user-tier-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.user-tier-title-row h2{margin:0}.user-tier-summary{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.user-tier-summary-item{display:inline-flex;align-items:baseline;gap:5px;min-height:24px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--chip);color:var(--muted);font-size:.7rem;line-height:1;white-space:nowrap}.user-tier-summary-item strong{color:var(--ink);font-size:.74rem;font-weight:800}.user-tier-conversion-details{width:100%;min-width:0;color:var(--muted);font-size:.74rem}.user-tier-conversion-details summary{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;cursor:pointer;color:var(--ink-dim);font-weight:700;line-height:1.25}.user-tier-conversion-details summary::marker{color:var(--muted)}.user-tier-conversion-details summary:hover{color:var(--ink)}.user-tier-conversion-details summary .user-tier-title-row{display:inline-flex}.user-tier-conversion-lines{display:grid;gap:4px;margin-top:8px}.user-tier-conversion-lines div{min-height:22px;padding:5px 7px;border:1px solid var(--line);border-radius:2px;background:var(--chip);color:var(--ink-dim);font-size:.72rem;font-weight:700;line-height:1.25}.user-tier-internal-stack{display:grid;gap:14px}.user-tier-internal-group{display:grid;gap:8px;min-width:0}.user-tier-internal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:0 2px}.user-tier-internal-heading h3{margin:0;min-width:0;color:var(--ink);font-size:.86rem;font-weight:800;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-tier-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(var(--tier-card-min-width),calc((100% - 70px)/8),var(--tier-card-max-width)),1fr));gap:7px}.user-tier-song-card{--tier-card-accent: var(--accent);display:grid;grid-template-rows:auto 30px;padding:0;border:1px solid var(--line-strong);border-top:2px solid var(--tier-card-accent);border-radius:2px;background:var(--panel);overflow:hidden;cursor:pointer;transition:border-color .12s ease,transform .12s ease;min-width:0;width:100%}.user-tier-song-card:hover,.user-tier-song-card:focus-visible{border-color:color-mix(in srgb,var(--tier-card-accent) 60%,var(--line));border-top-color:var(--tier-card-accent);transform:translateY(-1px)}.user-tier-song-card:focus-visible{outline:2px solid var(--tier-card-accent);outline-offset:2px}.user-tier-song-stage{position:relative;aspect-ratio:1;overflow:hidden;background:color-mix(in srgb,var(--tier-card-accent) 10%,#0a0a12)}.user-tier-song-card.diff-basic,.user-tier-song-stage.diff-basic{--tier-card-accent: var(--diff-basic)}.user-tier-song-card.diff-advanced,.user-tier-song-stage.diff-advanced{--tier-card-accent: var(--diff-advanced)}.user-tier-song-card.diff-expert,.user-tier-song-stage.diff-expert{--tier-card-accent: var(--diff-expert)}.user-tier-song-card.diff-master,.user-tier-song-stage.diff-master{--tier-card-accent: var(--diff-master)}.user-tier-song-card.diff-remaster,.user-tier-song-stage.diff-remaster{--tier-card-accent: var(--diff-remaster)}.user-tier-song-card.diff-unknown,.user-tier-song-stage.diff-unknown{--tier-card-accent: var(--muted)}.user-tier-song-jacket-wrap{position:absolute;inset:0}.user-tier-song-jacket-wrap>div{position:absolute;inset:0}.user-tier-song-jacket-wrap .user-tier-song-jacket-frame{width:100%;height:100%}.user-tier-song-jacket-wrap .jacket.user-tier-song-jacket{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;border-radius:0;object-fit:cover;background:#ffffff05}.user-tier-song-stage-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#00000005 0% 55%,#000000ad);pointer-events:none}.user-tier-stage-badges{position:absolute;right:5px;bottom:5px;z-index:1;display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;max-width:calc(100% - 10px)}.user-tier-stage-badges .chart-type-badge,.user-tier-internal-chip{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:3px 5px;border-radius:2px;border:1px solid rgba(255,255,255,.14);background:#000000ad;color:#f8fafc;font-size:.72rem;font-weight:700;line-height:1}.user-tier-stage-badges .chart-type-badge{min-width:31px;font-size:.72rem}.user-tier-internal-chip{min-width:34px;font-size:.72rem}.user-tier-song-info{display:grid;align-items:center;align-content:center;justify-content:center;justify-items:center;gap:1px;min-width:0;padding:3px 5px;border-top:1px solid color-mix(in srgb,var(--tier-card-accent) 32%,var(--line));background:color-mix(in srgb,var(--tier-card-accent) 24%,var(--panel))}.user-tier-song-info strong{display:block;min-width:0;color:var(--tier-card-accent);font-size:.72rem;font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.user-tier-song-info span{display:block;max-width:100%;color:var(--ink-dim);font-size:.55rem;font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.user-tier-song-card.diff-remaster .user-tier-song-info strong{color:var(--diff-remaster-text)}.table-wrap{border:1px solid var(--line);border-radius:2px;overflow-x:auto;overflow-y:auto;max-height:70vh;-webkit-overflow-scrolling:touch;background:var(--panel)}.explorer-table-panel{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.explorer-table-panel .table-wrap{min-height:0;height:100%;max-height:none}.table-loading-state{padding:8px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 5%,var(--panel));color:var(--muted);font-size:12px;font-weight:600;font-family:inherit;letter-spacing:.02em}table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.score-table,.playlog-table{width:max-content;min-width:100%;table-layout:fixed}thead{position:sticky;top:0;z-index:2}th{background:var(--table-header-bg);color:var(--muted);border-bottom:1px solid var(--line-strong);text-align:left;padding:8px;white-space:normal;overflow-wrap:anywhere;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}th.sortable{cursor:pointer}.th-sort-button{height:auto;border:0;padding:0;margin:0;display:inline-flex;align-items:center;gap:5px;background:transparent;color:inherit;font-weight:700;font-size:inherit;letter-spacing:inherit;text-transform:inherit;line-height:1.25;border-radius:0}.th-sort-button:hover{border-color:transparent;background:transparent;color:var(--accent)}.sort-indicator{color:var(--accent);font-size:10px;opacity:.8}td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;color:var(--ink-dim)}.compact-table{font-size:12px}.compact-table th,.compact-table td{padding:6px}tbody tr{transition:background 80ms ease}tbody tr:hover{background:#e090000a}tbody tr:last-child td{border-bottom:none}.jacket{display:block;width:50px;height:50px;border-radius:2px;object-fit:cover;border:1px solid var(--line-strong)}.jacket-frame{position:relative;width:50px;height:50px;overflow:hidden}.jacket-frame .jacket{position:absolute;inset:0}.jacket-image{opacity:0}.jacket-image.loaded{opacity:1}.jacket.fallback{display:grid;place-items:center;background:var(--panel-raised);font-weight:700;color:var(--muted)}.title-cell{display:grid;gap:3px;min-width:0}.title-cell-subtitle{color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}.link-button{height:auto;border:0;padding:0;background:transparent;color:var(--accent);font-weight:600;text-align:left;max-width:100%;line-height:1.35;white-space:normal;overflow-wrap:anywhere;border-radius:0}.link-button:hover{color:var(--accent-2);text-decoration:underline;text-underline-offset:2px;background:transparent;border-color:transparent}.achievement-history-button{height:auto;min-height:0;border:0;padding:0;background:transparent;color:var(--accent);font-weight:600;font-family:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:0}.achievement-history-button:hover{color:var(--accent-2);text-decoration:underline;text-underline-offset:2px;background:transparent;border-color:transparent}.achievement-value-button{height:auto;min-height:0;display:inline-flex;justify-content:center;border:0;padding:0;background:transparent;color:var(--accent);font:inherit;font-family:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:0}.achievement-value-button:hover{color:var(--accent-2);text-decoration:underline;text-underline-offset:2px;background:transparent;border-color:transparent}.achievement-value-button .achievement-value{justify-content:center}.detail-content{display:grid;gap:10px}.modal-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-title-row h2{margin:0}.detail-header{display:flex;gap:10px;justify-content:space-between;align-items:center}.detail-song-summary{display:flex;align-items:center;gap:12px;min-width:0}.detail-song-summary>:not(.jacket-frame){min-width:0}.detail-song-summary strong{line-height:1.35}.detail-aliases{margin-top:2px;overflow-wrap:anywhere}.detail-jacket-frame,.jacket.detail-jacket{width:68px;height:68px;flex-shrink:0}.detail-jacket-frame{border-radius:2px}.history-modal{width:min(1180px,100%)}.history-modal .detail-song-summary{align-items:flex-start}.history-summary-copy{display:grid;gap:6px;min-width:0}.history-badges{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.history-meta-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.history-meta-item{display:inline-grid;gap:2px;min-width:112px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--chip)}.history-meta-item span{color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:0;line-height:1;text-transform:uppercase}.history-meta-item strong{color:var(--ink);font-size:.76rem;font-weight:800;line-height:1.2}.history-chart-panel{position:relative;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel-raised) 75%,transparent),transparent 42%),var(--panel);padding:16px;overflow:hidden}.history-chart-stage{border:1px solid color-mix(in srgb,var(--line-strong) 72%,transparent);border-radius:14px;background:radial-gradient(circle at top,color-mix(in srgb,var(--accent) 12%,transparent),transparent 54%),linear-gradient(180deg,color-mix(in srgb,var(--panel-raised) 90%,transparent),color-mix(in srgb,var(--panel) 92%,transparent));padding:10px 8px 0;overflow:hidden}.history-chart{display:block;width:100%;min-width:0;height:auto}.history-grid line{stroke:var(--history-grid-stroke);stroke-width:1}.history-grid text{fill:var(--muted);font-size:11px}.history-axis{stroke:var(--line-strong);stroke-width:1.2}.history-axis-label{fill:var(--ink-dim);font-size:12px;font-weight:700}.history-line-stop-start{stop-color:color-mix(in srgb,var(--accent) 70%,white)}.history-line-stop-end{stop-color:var(--accent)}.history-area-stop-start{stop-color:color-mix(in srgb,var(--accent) 28%,transparent)}.history-area-stop-end{stop-color:transparent}.history-area{fill:url(#history-area-gradient)}.history-line{stroke:url(#history-line-gradient);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.history-point{fill:color-mix(in srgb,var(--panel) 58%,white 42%);stroke:var(--accent);stroke-width:2.4;cursor:pointer;vector-effect:non-scaling-stroke;transition:fill .16s ease,stroke .16s ease,r .16s ease}.history-point-hit{fill:transparent;cursor:pointer}.history-point-glow{fill:color-mix(in srgb,var(--accent) 22%,transparent);pointer-events:none}.history-point-active{fill:color-mix(in srgb,white 92%,var(--accent) 8%);stroke:color-mix(in srgb,var(--accent) 84%,white)}.history-tooltip-connector{stroke:color-mix(in srgb,var(--accent) 45%,white 10%);stroke-width:1.2}.history-tooltip-card{display:grid;gap:8px;height:100%;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line-strong));border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel-raised) 90%,transparent),color-mix(in srgb,var(--panel) 96%,transparent)),radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 8%,transparent),transparent 52%);box-shadow:0 14px 24px #0000004d,inset 0 1px #ffffff0a;overflow:hidden;pointer-events:none}.history-tooltip-value{color:var(--ink);font-size:.98rem;font-weight:650;line-height:1.1;letter-spacing:-.015em;font-variant-numeric:tabular-nums;white-space:nowrap}.history-tooltip-time{color:var(--ink-dim);font-size:11px;font-weight:500;line-height:1.25;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-active-guide{stroke:color-mix(in srgb,var(--accent) 32%,transparent);stroke-width:1.2;stroke-dasharray:4 4}.history-point:focus-visible{outline:none;stroke:var(--ink);fill:color-mix(in srgb,white 90%,var(--accent) 10%)}.score-table .title-col,.playlog-table .title-col{width:22%}.score-table .title-col{min-width:50ch;width:50ch}.playlog-table .title-col{min-width:28ch;width:28ch}.score-table .jacket-col,.playlog-table .jacket-col{width:60px}.score-table .chart-col,.playlog-table .chart-col{width:5.5ch}.score-table .level-col,.playlog-table .level-col{width:8ch}.score-table .achievement-col,.playlog-table .achievement-col{width:9ch}.score-table .rating-col,.playlog-table .rating-col{width:7ch}.score-table .rank-col,.playlog-table .rank-col{width:6.5ch}.score-table .fc-col,.playlog-table .fc-col{width:5.5ch}.score-table .sync-col,.playlog-table .sync-col{width:6ch}.score-table .dx-col,.playlog-table .dx-col{width:14ch}.score-table .last-played-col{width:15ch}.playlog-table .played-at-col{width:13ch}.playlog-table .track-col{width:4ch}.playlog-table .chart-col{width:5ch}.playlog-table .achievement-col{width:16ch;text-align:center;white-space:nowrap}.playlog-table .dx-col{width:13ch}.playlog-table .credit-col{width:7ch}.score-table .play-count-col,.playlog-table .play-count-col{width:8ch}.score-table .version-col{width:11ch}.compare-table .title-col{min-width:42ch;width:42ch}.compare-table .achievement-col{width:13ch}.compare-table .diff-col{width:12ch}.compare-table .diff-col,.compare-table .achievement-col{text-align:right;white-space:nowrap}.compare-diff-value{font-variant-numeric:tabular-nums;color:var(--muted)}.compare-diff-value-positive{color:#2563eb;font-weight:700}.compare-diff-value-negative{color:#dc2626;font-weight:700}.score-table th:not(.title-col),.score-table td:not(.title-col),.score-table th:not(.title-col) .th-sort-button,.playlog-table th:not(.title-col),.playlog-table td:not(.title-col),.playlog-table th:not(.title-col) .th-sort-button{white-space:nowrap;overflow-wrap:normal;word-break:normal}.score-table th.title-col,.score-table td.title-col,.score-table .title-col .th-sort-button,.score-table .title-col .link-button,.playlog-table th.title-col,.playlog-table td.title-col,.playlog-table .title-col .th-sort-button,.playlog-table .title-col .link-button{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.score-table .chart-col,.score-table .level-col,.score-table .rating-col,.score-table .rank-col,.score-table .fc-col,.score-table .sync-col,.score-table .play-count-col,.playlog-table .credit-col,.playlog-table .track-col,.playlog-table .chart-col,.playlog-table .level-col,.playlog-table .rating-col,.playlog-table .rank-col,.playlog-table .fc-col,.playlog-table .sync-col{text-align:center;white-space:nowrap}.achievement-value{display:inline-flex;justify-content:flex-start;width:10ch;font-family:inherit;font-variant-numeric:tabular-nums;white-space:nowrap}.achievement-value--empty{color:var(--muted)}.achievement-value--new{font-weight:600;color:var(--accent)}.modal-backdrop{position:fixed;inset:0;background:#000000b8;display:grid;place-items:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{width:min(1100px,100%);max-height:88vh;overflow:auto;box-shadow:0 32px 64px #00000080}.modal-close-button{font-size:.875rem;flex-shrink:0}.modal-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.modal-refresh-button{font-size:.875rem}.server-modal{width:min(860px,100%)}.error-inline{margin:0;color:var(--diff-expert);font-weight:700}.muted{color:var(--muted);font-size:12px}.estimated-level{display:inline-flex;align-items:baseline}.estimated-level-fraction{color:var(--muted)}.error-banner{padding:10px 14px;border-radius:2px;border:1px solid rgba(244,112,112,.25);background:#f470700f;color:var(--diff-expert);font-weight:600;font-size:13px}.warning-banner{padding:10px 14px;border-radius:2px;border:1px solid rgba(224,144,0,.24);background:#e0900014;color:var(--accent);font-weight:600;font-size:13px}.info-banner{padding:10px 14px;border-radius:2px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text);font-weight:600;font-size:13px}.footer-note{color:var(--muted);font-size:13px;line-height:1.5;display:grid;gap:4px;padding:4px 2px 20px}.settings-field-group{display:grid;gap:8px}.settings-warning{font-size:.82rem;color:var(--diff-advanced);background:#f0b42912;border:1px solid rgba(240,180,41,.2);border-radius:2px;padding:6px 10px;line-height:1.5}.settings-meta{font-size:.82rem;color:var(--muted)}.settings-divider{border:none;border-top:1px solid var(--line);margin:4px 0}.settings-log-header{display:flex;align-items:start;justify-content:space-between;gap:12px}.settings-log-header button{white-space:nowrap}.settings-log-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.settings-log-shell{min-height:240px;border:1px solid var(--line);background:#080a14e0;border-radius:2px;overflow:auto}.settings-log-output,.settings-log-empty{margin:0;padding:12px 14px;font-size:.78rem;line-height:1.65;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;color:#d7e2f0}.settings-log-output{white-space:pre-wrap;word-break:break-word}.settings-log-empty{color:#90a4ba}.app-nav-list button:disabled{opacity:.28;cursor:not-allowed;pointer-events:none}.home-content{display:flex;flex-direction:column;gap:14px;min-height:calc(100dvh - 28px)}.home-connect-panel,.home-welcome-panel{display:grid;gap:14px}.home-welcome-panel h2{margin:0;color:var(--ink);font-size:1.2rem;font-weight:800}.home-welcome-panel p{margin:0;color:var(--ink);font-size:1rem;font-weight:600;line-height:1.65}.home-menu-section{display:grid;gap:10px}.home-menu-section h3{margin:0;color:var(--ink);font-size:1rem;font-weight:700}.home-menu-list{display:grid;gap:8px}.home-menu-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:52px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);text-align:left;text-decoration:none;font-size:.94rem;font-weight:700;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.home-menu-item:after{content:">";color:var(--muted);font-size:.95rem;font-weight:700}.home-menu-item:hover{border-color:var(--accent);background:var(--chip);color:var(--accent)}.home-menu-index{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;border-radius:4px;background:color-mix(in srgb,var(--accent) 10%,var(--chip));color:var(--ink);font-size:.78rem;font-weight:800}@media(max-width:760px){.home-menu-item{grid-template-columns:34px minmax(0,1fr) auto}.home-menu-index{width:34px;height:32px}}.home-footer{margin-top:auto;padding:14px 0 8px;border-top:1px solid var(--line);display:grid;gap:10px}.home-footer-credits{margin:0;padding:0 0 0 16px;display:grid;gap:3px;color:var(--muted);font-size:.75rem;line-height:1.6}.home-footer-credits a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}.home-footer-credits a:hover{color:var(--ink-dim)}.home-footer-copyright{font-size:.75rem;color:var(--muted);line-height:1.65}.home-footer-copyright a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}.home-footer-copyright a:hover{color:var(--ink-dim)}.home-connected-badge{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:2px;background:#4cc8740f;border:1px solid rgba(76,200,116,.2);font-size:.88rem;color:var(--diff-basic)}.home-connected-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--diff-basic);flex-shrink:0}.home-goto-btn{height:26px;padding:0 12px;border-radius:2px;background:#4cc87414;border-color:#4cc87440;color:var(--diff-basic);font-size:.82rem;font-weight:700}.home-goto-btn:hover{background:#4cc87424;border-color:#4cc87459;color:var(--diff-basic)}.home-connect-row,.compare-connect-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.home-url-field{display:grid;gap:6px}.home-url-field span{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.home-url-field input{width:100%}.home-connect-btn{background:var(--accent);border-color:var(--accent-2);color:var(--accent-fg);font-weight:700;white-space:nowrap;font-size:.88rem}.home-connect-btn:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-fg)}.home-connect-btn:disabled{opacity:.4;cursor:not-allowed}.home-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.88rem;padding:8px 12px;border-radius:2px;line-height:1.5}.home-status-error{background:#f470700f;border:1px solid rgba(244,112,112,.2);color:var(--diff-expert)}.home-status-success{background:#4cc8740f;border:1px solid rgba(76,200,116,.2);color:var(--diff-basic)}.home-status-warning{background:#e0900014;border:1px solid rgba(224,144,0,.2);color:var(--accent)}.home-steps{display:grid;gap:18px}.home-step{display:grid;grid-template-columns:26px minmax(0,1fr);gap:14px;align-items:start}.home-step-num{width:26px;height:26px;border-radius:2px;background:#e090001a;border:1px solid rgba(224,144,0,.22);color:var(--accent);font-family:inherit;font-size:.78rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.home-step-body{display:grid;gap:8px}.home-step-body strong{font-size:.93rem;color:var(--ink)}.home-step-body p{color:var(--muted);font-size:.88rem;line-height:1.6}.home-code{margin:0;padding:12px 14px;background:var(--bg);border:1px solid var(--line-strong);border-radius:2px;font-family:SFMono-Regular,SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;line-height:1.6;overflow-x:auto;white-space:pre;color:var(--code-color)}@media(max-width:1440px)and (min-width:1201px){.compare-filter-fab{position:fixed;right:16px;bottom:16px;z-index:35;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(224,144,0,.35);border-radius:999px;background:#111116f2;color:var(--accent);box-shadow:0 12px 24px #00000061}.compare-filter-fab svg{width:20px;height:20px}}@media(max-width:1200px){.app-sidebar-inline{display:none}.app-sidebar{position:static}.app-nav{display:grid}.explorer-layout{grid-template-columns:1fr}.table-explorer-layout{height:auto}.table-column{order:1}.sidebar-column{display:none}.rating-mobile-summary-panel{display:block}.rating-mobile-summary-panel .rating-stat-card{padding:14px 16px}.rating-mobile-summary-panel .rating-stat-card strong{font-size:2rem}.rating-table-column{grid-template-columns:1fr}.explorer-table-panel{height:calc(100dvh - 128px);min-height:420px}.explorer-table-panel .table-wrap{height:100%;overflow-y:auto}.sidebar-column .panel{position:static;max-height:none;overflow:visible}.sidebar-column{position:static;top:auto;max-height:none;overflow:visible}.mobile-filter-fab{position:fixed;right:16px;bottom:16px;z-index:35;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(224,144,0,.35);border-radius:999px;background:#111116f2;color:var(--accent);box-shadow:0 12px 24px #00000061}.mobile-filter-fab svg{width:20px;height:20px}.panel.mobile-search-panel{display:grid}.mobile-filter-backdrop{z-index:55;align-items:end;padding:0}.mobile-filter-modal{width:100%;max-width:none;max-height:86vh;border-radius:8px 8px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.mobile-filter-modal .panel{margin-top:0}.server-grid,.range-grid,.range-grid.compact,.toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1201px){.app-sidebar{display:none}}@media(max-width:740px){.title-cell-subtitle{display:none}.app-shell{padding:8px}.brand-copy p{display:none}.app-player-summary-shell{justify-items:start}.app-player-summary-status{text-align:left}.app-nav{gap:5px}.app-nav-trigger{display:grid}.app-nav-list-desktop{display:none}.app-nav-list-mobile{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:20;padding:5px;border:1px solid var(--line-strong);border-radius:2px;background:var(--panel);box-shadow:0 16px 40px #0006}.app-nav-list-mobile.is-open{display:grid}.app-nav-list-mobile button{min-height:34px}.panel{padding:10px}.server-grid,.range-grid,.range-grid.compact,.toggle-grid,.search-submit-row{grid-template-columns:1fr}.home-content{min-height:calc(100dvh - 16px)}.table-wrap{max-height:none;overflow-y:visible}table{width:max-content;min-width:100%;table-layout:auto}.compact-table{font-size:11px}.compact-table th,.compact-table td{padding:6px 8px}.score-table .title-col,.playlog-table .title-col{min-width:14rem;width:14rem}.score-table .dx-col,.playlog-table .dx-col{min-width:11rem}.score-table .last-played-col,.playlog-table .played-at-col{min-width:9rem}.jacket{width:42px;height:42px}.rating-song-info{min-height:0}.user-tier-range-tabs{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.user-tier-range-tabs button{min-height:44px;padding:6px}.user-tier-range-meta{font-size:.6rem}.user-tier-card-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}.rating-song-stat-grid{margin-left:-10px;margin-right:-10px}.rating-song-stat{min-height:22px;padding:0 5px}.rating-song-stat strong{font-size:.64rem;letter-spacing:-.04em}}@media(max-width:480px){.rating-song-stat-grid{margin-left:-8px;margin-right:-8px}.rating-song-stat{min-height:20px;padding:0 3px}.rating-song-stat strong{font-size:.58rem;letter-spacing:-.05em}}.playlog-day-filter{display:grid;gap:8px}.playlog-day-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.playlog-day-toggle input{width:16px;height:16px;margin:0}.playlog-day-filter-summary{margin:0;font-size:12px;color:var(--ink-dim)}.playlog-special-filters,.score-special-filters{display:grid;gap:8px}.playlog-special-toggle,.score-special-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.playlog-special-toggle input,.score-special-toggle input{width:16px;height:16px;margin:0}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg: #f0f0ec;--panel: #fafaf8;--panel-raised: #ebebea;--ink: #18181e;--ink-dim: #48485a;--muted: #78789a;--accent: #a06600;--accent-2: #875500;--accent-fg: #ffffff;--line: #e2e2d8;--line-strong: #ccccc0;--chip: #eaeae6;--chip-active: #a06600;--diff-basic: #2d8a48;--diff-advanced: #a07818;--diff-expert: #cc4040;--diff-master: #a65cdf;--diff-remaster: #d8d8d8;--diff-remaster-text: #ba7ee9;--chart-std: #3080b8;--chart-dx: #607098;--grid-line: rgba(0, 0, 0, .05);--table-header-bg: #e6e6e2;--history-grid-stroke: rgba(0, 0, 0, .07);--code-color: #2a7a36;--stage-placeholder-bg: #d8d8d4;--skeleton-from: #deded8;--skeleton-mid: #d0d0ca}}[data-theme=light]{color-scheme:light;--bg: #f0f0ec;--panel: #fafaf8;--panel-raised: #ebebea;--ink: #18181e;--ink-dim: #48485a;--muted: #78789a;--accent: #a06600;--accent-2: #875500;--accent-fg: #ffffff;--line: #e2e2d8;--line-strong: #ccccc0;--chip: #eaeae6;--chip-active: #a06600;--diff-basic: #2d8a48;--diff-advanced: #a07818;--diff-expert: #cc4040;--diff-master: #a65cdf;--diff-remaster: #d8d8d8;--diff-remaster-text: #ba7ee9;--chart-std: #3080b8;--chart-dx: #607098;--grid-line: rgba(0, 0, 0, .05);--table-header-bg: #e6e6e2;--history-grid-stroke: rgba(0, 0, 0, .07);--code-color: #2a7a36;--stage-placeholder-bg: #d8d8d4;--skeleton-from: #deded8;--skeleton-mid: #d0d0ca}.plot-layout{display:grid;grid-template-columns:var(--desktop-sidebar-width) minmax(0,1fr);gap:14px;align-items:start}.plot-sidebar{display:grid;gap:10px;align-self:start}.plot-section{padding:24px}.plot-main-column{grid-column:2}@media(max-width:960px){.plot-layout{grid-template-columns:1fr}.plot-main-column{grid-column:auto}.plot-sidebar{position:static;top:auto;max-height:none;overflow:visible}}.plot-description{margin-bottom:16px}.plot-controls{display:flex;align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:16px}.plot-control-group{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0;flex-wrap:wrap}.plot-view-control{margin-top:0}.plot-control-title{color:var(--text);font-size:.88rem;font-weight:800;min-width:44px}.plot-segmented-options{display:flex;flex-wrap:wrap;gap:6px}.plot-segmented-option{min-height:32px;padding:6px 10px;border-radius:6px;border:1px solid color-mix(in srgb,var(--border) 72%,var(--text-muted));background:color-mix(in srgb,var(--panel) 86%,var(--text) 14%);color:var(--text);cursor:pointer;font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px #ffffff14,0 1px 2px #0000002e;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.plot-segmented-option:hover{border-color:var(--accent);background:color-mix(in srgb,var(--panel) 70%,var(--accent) 30%);color:var(--text);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1a,0 3px 8px #0003}.plot-segmented-option:active{transform:translateY(0);box-shadow:inset 0 1px 2px #0003,0 1px 2px #00000024}.plot-segmented-option[aria-pressed=true]{background:var(--accent);border-color:var(--accent-2);color:var(--accent-fg);box-shadow:inset 0 1px #ffffff2e,0 2px 8px color-mix(in srgb,var(--accent) 42%,transparent)}.plot-empty{padding:48px 0;text-align:center}.plot-chart-container{border-radius:8px;overflow-x:auto;overflow-y:hidden}.plot-tooltip{position:fixed;z-index:1200;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;width:min(340px,calc(100vw - 24px));padding:10px;border:1px solid var(--accent);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb,var(--panel) 70%,transparent),0 14px 34px #00000061;pointer-events:none;transform:translate(14px,-50%)}.plot-tooltip-jacket{width:72px;height:72px;overflow:hidden;border-radius:6px;background:var(--stage-placeholder-bg)}.plot-tooltip-jacket img{display:block;width:100%;height:100%;object-fit:cover}.plot-tooltip-jacket img[hidden]{display:none}.plot-tooltip-jacket span{display:grid;width:100%;height:100%;place-items:center;color:var(--text-muted);font-size:1.5rem;font-weight:800}.plot-tooltip-body{display:grid;gap:3px;min-width:0;align-content:center;font-size:.82rem}.plot-tooltip-body strong{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.plot-tooltip-body span{color:var(--text-muted)}@media(max-width:640px){.plot-section{padding:16px}.plot-controls{gap:10px}}
