:root{--stage:#141a2a;--stage-deep:#0e1320;--surface:#1c2437;--surface-2:#26304a;--line:#34405c;--ink:#f3efe6;--ink-dim:#a9b0c2;--ink-faint:#6e778d;--brass:#e6b85c;--brass-deep:#b98a2f;--head:#f2e8d5;--ember:#e0875a;--perfect:#ffd166;--good:#5fb8ae;--miss:#e05a5a;--left:#7cc4ff;--right:#ffa07c;--radius:14px;--radius-sm:8px;--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% -10%, #223052 0%, var(--stage) 55%, var(--stage-deep) 100%);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow-x:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:8px 14px;transition:background .12s,border-color .12s,transform 80ms}button:hover{background:var(--surface-2)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.btn-primary{background:var(--brass);border-color:var(--brass);color:#1a1408;font-weight:700}.btn-primary:hover{background:#f0c66c}.btn-lg{border-radius:var(--radius);padding:14px 24px;font-size:17px}.btn-ghost{background:0 0}.btn-danger{border-color:var(--miss);color:var(--miss)}input[type=text],input[type=number],select{background:var(--stage-deep);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 10px}input[type=range]{accent-color:var(--brass);width:100%}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:34px;font-weight:800}h2{font-size:22px;font-weight:700}h3{font-size:16px;font-weight:700}p{margin:0}.dim{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.small{font-size:13px}.kbd{border:1px solid var(--line);background:var(--stage-deep);text-align:center;min-width:26px;color:var(--ink);border-bottom-width:3px;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:600;display:inline-block}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#0e132099;align-items:center;gap:18px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.04em;color:var(--brass);font-size:18px;font-weight:900;text-decoration:none}.nav{gap:4px;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--ink-dim);padding:6px 12px;text-decoration:none}.nav a.active,.nav a:hover{color:var(--ink);background:var(--surface)}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:24px 20px 40px}.main.wide{max-width:none;padding:12px 16px 20px}.sticks{gap:6px;display:flex}.stick{border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.stick .dot{background:var(--ink-faint);border-radius:50%;width:8px;height:8px}.stick.on .dot{background:#67d58a;box-shadow:0 0 8px #67d58a}.stick.on{color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:20px;display:grid}@media (width<=900px){.grid-2{grid-template-columns:1fr}}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--ink-dim);font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--ink-dim);background:0 0;border-radius:999px;padding:6px 12px}.chip.active{background:var(--brass);border-color:var(--brass);color:#1a1408;font-weight:700}.notice{border-radius:var(--radius-sm);background:#e6b85c1f;border:1px solid #e6b85c66;padding:10px 14px;font-size:14px}.notice.error{background:#e05a5a1f;border-color:#e05a5a80}.hero{max-width:720px;padding:40px 0 30px}.hero h1{font-size:44px}.hero p{color:var(--ink-dim);margin-top:12px;font-size:17px}.steps{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=860px){.steps{grid-template-columns:1fr}}.step{flex-direction:column;gap:10px;min-height:190px;padding:22px;text-decoration:none;transition:border-color .12s,transform .12s;display:flex;position:relative}.step:hover{border-color:var(--brass);transform:translateY(-2px)}.step .num{color:var(--brass);font-size:13px;font-weight:700}.step h2{font-size:24px}.step .status{color:var(--ink-dim);margin-top:auto;font-size:13px}.step .status.ok{color:#67d58a}.keyhelp{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.keyhelp div{border:1px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.kit-wrap{aspect-ratio:16/10;border-radius:var(--radius);background:radial-gradient(600px 300px at 50% 110%, #2a3652 0%, var(--stage-deep) 70%);border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;width:100%;position:relative;overflow:hidden}.kit-wrap canvas{width:100%;height:100%;display:block}.keymap-list{flex-direction:column;gap:6px;display:flex}.keymap-row{border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:14px 1fr auto auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.keymap-row.active{border-color:var(--brass);background:#e6b85c14}.keymap-row .swatch{border-radius:50%;width:14px;height:14px}.keymap-row .keys{flex-wrap:wrap;gap:4px;display:flex}.keymap-row .keys button{background:0 0;border:0;padding:0}.cal-layout{grid-template-columns:minmax(0,1.6fr) 320px;gap:20px;display:grid}@media (width<=960px){.cal-layout{grid-template-columns:1fr}}.cal-steps{flex-direction:column;gap:4px;display:flex}.cal-step{border-radius:var(--radius-sm);color:var(--ink-dim);border:1px solid #0000;grid-template-columns:14px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.cal-step.current{border-color:var(--brass);color:var(--ink);background:#e6b85c14}.cal-step.done{color:var(--ink)}.cal-step .swatch{border-radius:50%;width:14px;height:14px}.cal-step .meta{color:var(--ink-faint);font-size:12px}.cal-instruction{font-size:20px;font-weight:700}.progress{background:var(--stage-deep);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.progress>div{background:var(--brass);height:100%;transition:width 50ms linear}.play-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px;height:calc(100vh - 90px);min-height:560px;display:grid}@media (width<=900px){.play-layout{grid-template-columns:1fr;height:auto}}.highway-wrap{border-radius:var(--radius);background:var(--stage-deep);border:1px solid var(--line);min-height:480px;position:relative;overflow:hidden}.highway-wrap canvas{width:100%;height:100%;display:block}.hud{flex-direction:column;gap:12px;display:flex}.hud .score{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1}.hud .combo{color:var(--brass);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.hud .counts{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:4px 12px;display:grid}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;background:#0e1320c7;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex;position:absolute;inset:0}.overlay h2{font-size:28px}.chart-list{flex-direction:column;gap:6px;width:100%;max-width:420px;display:flex}.chart-item{text-align:left;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chart-item.active{border-color:var(--brass);background:#e6b85c1a}.chart-item.disabled,.chart-item.disabled:hover{opacity:.5;cursor:default;border-color:var(--line);background:0 0}.chart-item strong .my-badge,.sm-song-title+.my-badge{vertical-align:middle;margin-left:8px}.diff{border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:2px 8px;font-size:12px}.result-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stat{flex-direction:column;gap:4px;display:flex}.stat .v{font-variant-numeric:tabular-nums;font-size:32px;font-weight:800;line-height:1.1}.stat .k{color:var(--ink-dim);font-size:13px}.hist{align-items:flex-end;gap:2px;height:120px;padding-top:10px;display:flex}.hist>div{background:var(--good);border-radius:3px 3px 0 0;flex:1;min-height:2px}.hist>div.p{background:var(--perfect)}.hist-axis{color:var(--ink-faint);justify-content:space-between;font-size:12px;display:flex}.report-entry{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}a.btn-primary,a.btn-ghost.as-button{border:1px solid var(--brass);border-radius:var(--radius-sm);padding:8px 14px;text-decoration:none;display:inline-block}a.btn-ghost.as-button{border-color:var(--line)}.pad-acc{flex-direction:column;gap:10px;display:flex}.pad-acc-row{grid-template-columns:72px minmax(0,1fr) 56px;align-items:center;column-gap:10px;display:grid}.pad-acc-name{font-size:14px}.pad-acc-bar{background:var(--stage-deep);border-radius:999px;height:10px;overflow:hidden}.pad-acc-bar>div{border-radius:999px;height:100%}.pad-acc-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.pad-acc-meta{grid-column:2/4}.timeline svg{width:100%;display:block}.timeline .dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;display:inline-block}table.plain{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}table.plain th,table.plain td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px;font-size:14px}table.plain th{color:var(--ink-dim);font-weight:600}.debug{border:1px solid var(--line);border-radius:var(--radius);z-index:50;background:#0e1320eb;width:440px;max-height:50vh;padding:12px;font-size:12px;position:fixed;bottom:12px;right:12px;overflow:auto}.debug table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.debug td,.debug th{text-align:right;border-bottom:1px solid var(--line);padding:2px 4px}.debug th:first-child,.debug td:first-child{text-align:left}.tuning{border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:6px}.tuning-body{margin-top:6px}.tuning-group{flex-direction:column;gap:4px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.sensor-choice{cursor:pointer;align-items:flex-start}.sheet-wrap{position:relative}.sheet-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.sheet-card{text-align:left;cursor:default;flex-direction:column;gap:6px;display:flex}.sheet-card.clickable{cursor:pointer}.sheet-card.clickable:hover{border-color:var(--brass)}.sheet-card .no{color:var(--brass);font-size:13px;font-weight:700}.sheet-card h3{font-size:17px}.metro{position:relative}.metro-chip-wrap{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;height:28px;display:inline-flex;overflow:hidden}.metro-chip-wrap button{background:0 0;border:0;border-radius:0;height:100%;padding:0 10px}.metro-chip-wrap button:hover{background:var(--surface-2)}.metro-chip{align-items:center;gap:8px;display:inline-flex}.metro-dots{gap:4px;display:inline-flex}.metro-dot{background:var(--ink);opacity:.25;border-radius:50%;width:8px;height:8px;transition:opacity 90ms,transform 90ms;transform:scale(1)}.metro-dot.accent{background:var(--brass)}.metro-dot.on{opacity:1;transform:scale(1.35)}.metro-bpm{font-variant-numeric:tabular-nums;text-align:right;min-width:2.2ch;font-size:20px;font-weight:700;line-height:1}.metro-chip-wrap .metro-toggle{border-left:1px solid var(--line);color:var(--ink-dim);font-size:12px}.metro-badge{background:var(--brass);color:#1a1408;border-radius:999px;padding:2px 5px;font-size:10px;font-weight:700;line-height:1}.metro-locked .metro-bpm{color:var(--brass)}.metro-lock-note{margin:0}.metro-pop button:disabled,.metro-pop input:disabled{opacity:.4;cursor:not-allowed}.metro-pop{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:12px;width:260px;padding:14px;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 24px #0006}.metro-pop-bpm{justify-content:space-between;align-items:center;display:flex}.metro-pop-num{font-variant-numeric:tabular-nums;font-size:32px;font-weight:800}.metro-seg{gap:6px;display:flex}.metro-seg button{flex:1}.metro-seg button[aria-pressed=true]{background:var(--brass);border-color:var(--brass);color:#1a1408;font-weight:700}.metro-tap{justify-content:space-between;align-items:center;display:flex}.sound-toggle{height:28px;color:var(--ink-faint);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.sound-toggle.on{color:var(--ink)}.sound-icon{border:2px solid;border-radius:50%;width:8px;height:8px}.sound-toggle.on .sound-icon{background:var(--brass);border-color:var(--brass)}.public{background:var(--stage-deep);flex-direction:column;min-height:100%;display:flex}.public-body{flex:1;justify-content:center;align-items:center;padding:24px 20px;display:flex}.public-caption{text-align:center;padding:0 20px 20px}.login{grid-template-columns:1fr;place-items:center;gap:32px;width:100%;max-width:1100px;display:grid}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.login-wordmark{letter-spacing:.06em;color:var(--brass);font-size:40px;font-weight:800}.login-slogan{color:var(--ink-dim);margin:0;font-size:17px}.login-kit{opacity:.55;pointer-events:none;width:100%;max-width:520px;margin-top:20px;display:none}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:400px;padding:28px 24px 22px}.login-card h1{margin:0 0 8px;font-size:24px}.login-card .dim{margin:0 0 18px;font-size:14px}.login-card .notice{margin:0 0 14px}.login-buttons{gap:10px}.login-btn{justify-content:center;align-items:center;width:100%;height:44px;padding:0 16px 0 44px;font-size:15px;display:flex;position:relative}.login-mark{background:#0e13202e;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-top:-11px;font-size:13px;font-weight:800;display:flex;position:absolute;top:50%;left:14px}.login-caption{color:var(--ink-faint);text-align:center;margin:16px 0 0;font-size:12px}@media (width>=960px){.login{grid-template-columns:1fr 400px;gap:64px}.login-brand{text-align:left;align-items:flex-start}.login-wordmark{font-size:56px}.login-kit{display:block}}.auth-wait{color:var(--ink-dim);justify-content:center;align-items:center;gap:10px;padding:40px 0;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--brass);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.profile-wrap{position:relative}.profile-trigger{cursor:pointer;background:0 0;border:0;border-radius:50%;align-items:center;padding:0;display:flex}.profile-trigger:hover .profile-avatar,.profile-trigger[aria-expanded=true] .profile-avatar{border-color:var(--brass)}.profile-avatar{border:1px solid var(--line);object-fit:cover;border-radius:50%;width:28px;height:28px;display:block}.profile-initial{background:var(--surface-2);color:var(--ink);text-transform:uppercase;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.profile-menu{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;align-items:flex-start;gap:8px;min-width:180px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.profile-name{text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:var(--ink);font-size:14px;font-weight:600;overflow:hidden}.profile-badge{border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:2px 8px;font-size:11px}.profile-menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:2px 0}.profile-menu [role=menuitem]{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--ink-dim);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:13px}.profile-menu [role=menuitem]:hover,.profile-menu [role=menuitem]:focus-visible{background:var(--surface-2);color:var(--ink)}.dialog-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:420px;padding:20px}.dialog h2{margin:0 0 12px;font-size:18px}.dialog ul{color:var(--ink-dim);flex-direction:column;gap:6px;margin:0 0 16px;padding-left:18px;font-size:14px;display:flex}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.my-profile{align-items:center;gap:16px;display:flex}.my-avatar{border:1px solid var(--line);object-fit:cover;border-radius:50%;flex:none;width:56px;height:56px}.my-avatar-initial{background:var(--surface-2);color:var(--brass);justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.my-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.my-list-row{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}a.my-list-row:hover,a.my-list-row:focus-visible{background:var(--surface-2)}.my-list-main{flex-direction:column;gap:2px;min-width:0;display:flex}.my-list-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.my-list-num{font-variant-numeric:tabular-nums;color:var(--ink-dim);flex:none}.my-list-note{margin:4px 2px 0}.my-badge{border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;flex:none;padding:2px 8px;font-size:12px}.my-badge.active{border-color:var(--brass);color:var(--brass)}.my-badge.danger{border-color:var(--miss);color:var(--miss)}.my-danger{border-color:#e05a5a66}.setup-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);align-items:start;gap:20px;display:grid}@media (width<=960px){.setup-grid{grid-template-columns:1fr}}.setup-leave{z-index:50;position:fixed}.ref-status{font-weight:700}.ref-need{color:var(--brass)}.ref-progress{width:100%}.preset-list{flex-direction:column;gap:6px;display:flex}.preset-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.preset-name{overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;display:inline-flex}.preset-star{color:var(--brass)}.preset-badge{border:1px solid var(--brass);color:var(--brass);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:12px}.preset-dirty{border-color:var(--line);color:var(--ink-dim)}.preset-saved{color:var(--brass)}.preset-name-error{color:var(--miss)}.notice.readiness{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.readiness-list{margin:0;padding-left:18px}.notice.readiness.compact{padding:8px 12px;font-size:13px}.sheet-strip{background:var(--surface);border-radius:12px;height:220px;display:block;position:relative;overflow:hidden}.sheet-snippet{background:var(--surface);border-radius:12px;height:200px;display:block;position:relative;overflow:hidden}.sheet-strip-canvas{width:100%;height:100%;position:absolute;inset:0}.sheet-mode{--sm-bg:#090a0c;--sm-panel:#12151a;--sm-card:#1a1f26;--sm-control:#1f242c;--sm-stroke:#3a4250;--sm-select:#2e353f;--sm-sunken:#050607;--sm-hairline:#ffffff14;--sm-text:#f2f5f8;--sm-text-2:#98a2b1;--sm-text-3:#98a2b1;--sm-text-4:#717c8e;--sm-accent:#4f7cff;--sm-accent-text:#22d3ee;--sm-perfect:#22d3ee;--sm-good:#ffc83d;--sm-miss:#ff6b70;max-width:1440px;color:var(--sm-text);background:var(--sm-bg);box-shadow:0 0 0 100vmax var(--sm-bg);clip-path:inset(0 -100vmax);flex-direction:column;gap:16px;padding:20px 32px 32px;font-size:14px;line-height:20px;display:flex;position:relative}.sheet-mode h1{letter-spacing:0;font-size:24px;font-weight:600;line-height:32px}.sheet-mode h1.sm-h1-lg{font-size:32px;line-height:40px}.sheet-mode a{color:var(--sm-accent-text)}.sheet-mode .sm-label{letter-spacing:.06em;color:var(--sm-text-3);font-size:12px;font-weight:600}.sheet-mode .sm-sub{color:var(--sm-text-2)}.sheet-mode .sm-hint{color:var(--sm-text-4);font-size:12px}.sheet-mode .sm-head{flex-wrap:wrap;align-items:flex-end;gap:8px 16px;display:flex}.sheet-mode .sm-head-title{flex-direction:column;gap:4px;min-width:0;display:flex}.sheet-mode .sm-chips{flex-wrap:wrap;gap:6px;display:flex}.sheet-mode .sm-grid{align-items:start;gap:16px;display:grid}.sheet-mode .sm-grid.select{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.sheet-mode .sm-grid.ready{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:stretch}.sheet-mode .sm-stack{flex-direction:column;gap:16px;display:flex}.sm-chip{height:24px;color:var(--sm-text-2,#aeb7c4);white-space:nowrap;background:#98a2b11f;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.sm-chip.danger{color:var(--sm-miss,#ff6b70);background:#d1343829}.sm-chip.neutral{color:var(--sm-text-2,#aeb7c4);background:#98a2b11f}.sm-chip.info{color:var(--sm-accent-text,#52b2dd);background:#35a3d41f}.sm-card{background:var(--sm-panel);border:1px solid var(--sm-hairline);border-radius:8px;flex-direction:column;gap:12px;min-width:0;padding:20px 24px;display:flex}.sm-card.lg{gap:16px;padding:24px}.sm-card p{color:var(--sm-text-2);margin:0}.sm-tile{background:var(--sm-card);border:1px solid var(--sm-hairline);border-radius:8px;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.sm-tile.flat{border:0;gap:2px;padding:12px 14px}.sm-tile .sm-tile-label{letter-spacing:.06em;color:var(--sm-text-3);font-size:12px;font-weight:600}.sm-tile .sm-tile-value{font-variant-numeric:tabular-nums;color:#eaf6fd;white-space:nowrap;font-size:28px;font-weight:600;line-height:36px}.sm-tile .sm-tile-value small{color:var(--sm-text-4);font-size:14px;font-weight:400}.sm-tile .sm-tile-text{overflow-wrap:anywhere;font-weight:600}.sm-tile .sm-tile-text small{color:var(--sm-text-4);font-weight:400;font-size:inherit}.sheet-mode .sm-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.sheet-mode .sm-triple{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.sm-btn{background:var(--sm-control,#1f242c);border:1px solid var(--sm-stroke,#3a4250);height:32px;color:var(--sm-text,#f2f5f8);cursor:pointer;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:0 12px;text-decoration:none;display:inline-flex}.sm-btn:hover:not(:disabled){background:var(--sm-select,#2e353f)}.sm-btn:disabled{background:var(--sm-panel,#12151a);color:#576172;cursor:not-allowed;border-color:#242a33}.sm-btn.lg{height:40px;padding:0 20px;font-weight:600}.sm-btn.primary{background:var(--sm-accent,#35a3d4);border-color:var(--sm-accent,#35a3d4);color:#04141c;font-weight:600}.sm-btn.primary:hover:not(:disabled){background:var(--sm-accent-text,#52b2dd)}.sm-btn.primary:disabled{background:var(--sm-panel,#12151a);color:#576172;border-color:#242a33}.sm-btn.ghost{color:var(--sm-text-2,#aeb7c4);background:0 0;border-color:#0000}.sm-btn.danger-outline{color:var(--sm-miss,#ff6b70);background:0 0;border-color:#d1343880}.sm-btn.danger-outline:hover:not(:disabled){background:#d134381f}.sm-btn .sm-key{opacity:.7;font-size:12px;font-weight:500}.sm-btn:focus-visible,.sm-song-main:focus-visible,.sm-diff-chip:focus-visible{outline:2px solid var(--sm-accent-text,#52b2dd);outline-offset:2px}.sm-tab{background:var(--sm-control);border:1px solid var(--sm-stroke);height:32px;color:var(--sm-text-2);cursor:pointer;border-radius:4px;padding:0 12px}.sm-tab[aria-selected=true]{background:var(--sm-select);color:var(--sm-text);font-weight:600}.sm-search{background:var(--sm-control);border:1px solid var(--sm-stroke);height:32px;color:var(--sm-text-3);border-radius:4px;flex:200px;align-items:center;gap:8px;min-width:0;max-width:260px;margin-left:auto;padding:0 10px;display:flex}.sm-search input{min-width:0;color:var(--sm-text);background:0 0;border:0;outline:none;flex:1;padding:0}.sm-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sm-progress{font-variant-numeric:tabular-nums;color:#eaf6fd;align-items:center;gap:16px;font-size:14px;font-weight:500;display:flex}.sm-progress small{color:var(--sm-text-4);font-weight:400;font-size:inherit}.sm-progress .sm-time{min-width:88px}.sm-progress .sm-bar{background:#ffffff14;border-radius:999px;flex:auto;min-width:0;height:6px;overflow:hidden}.sm-progress .sm-bar>div{background:var(--sm-accent);height:100%}.sm-strip-panel{background:var(--sm-sunken);border:1px solid var(--sm-hairline);border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:hidden}.sm-strip-panel .sm-strip-body{height:250px;position:relative}.sheet-mode .sheet-strip{background:0 0;border-radius:0;height:100%}.sm-strip-panel .sm-corner{z-index:1;letter-spacing:.06em;color:var(--sm-text-3);pointer-events:none;font-size:12px;font-weight:600;position:absolute;top:14px}.sm-strip-panel .sm-corner.left{left:16px}.sm-strip-panel .sm-corner.right{right:16px}.sm-legend{background:var(--sm-panel);color:var(--sm-text-2);border-top:1px solid #ffffff0f;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:10px 16px;font-size:12px;display:flex}.sm-legend .sm-legend-item{align-items:center;gap:6px;display:inline-flex}.sm-legend .sm-dot{border-radius:999px;width:10px;height:10px}.sm-legend .sm-dot.sm{width:6px;height:6px}.sm-legend .sm-legend-end{color:var(--sm-text-4);margin-left:auto}.sm-legend.plain{color:var(--sm-text-4)}.sm-song-head,.sm-song-main{grid-template-columns:minmax(0,1fr) 90px 70px 110px;align-items:center;gap:12px;display:grid}.sm-song-head{letter-spacing:.06em;color:var(--sm-text-3);padding:0 14px;font-size:12px;font-weight:600}.sm-song-list{flex-direction:column;gap:8px;display:flex}.sm-song-row{background:var(--sm-card);border:1px solid var(--sm-hairline);border-radius:8px;flex-direction:column;display:flex}.sm-song-row.selected{border-color:var(--sm-accent);box-shadow:0 0 12px #35a3d440}.sm-song-main{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:14px}.sm-song-main:hover{background:#ffffff08}.sm-song-row.disabled .sm-song-main,.sm-song-row.disabled .sm-song-main:hover{opacity:.5;cursor:default;background:0 0}.sm-song-main .sm-song-title{overflow-wrap:anywhere;font-size:16px;font-weight:600;display:block}.sm-song-main .sm-song-meta{color:var(--sm-text-3);font-size:12px;display:block}.sm-song-main .sm-num{font-variant-numeric:tabular-nums}.sm-song-diffs{flex-wrap:wrap;align-items:center;gap:8px;padding:0 14px 14px;display:flex}.sm-diff-chip{background:var(--sm-control);border:1px solid var(--sm-stroke);height:32px;color:var(--sm-text);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.sm-diff-chip small{color:var(--sm-text-4);font-size:12px}.sm-diff-chip:hover,.sm-diff-chip.selected{background:var(--sm-accent);border-color:var(--sm-accent);color:#04141c;font-weight:600}.sm-diff-chip:hover small,.sm-diff-chip.selected small{color:#04141c;opacity:.7}.sm-check-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.sm-check-list li{align-items:center;gap:10px;display:flex}.sm-check-list .sm-check-name{flex-grow:1}.sm-check-list .sm-check-ico{width:20px;height:20px;color:var(--sm-perfect);background:#20a55a24;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.sm-check-list .warn .sm-check-ico{color:var(--sm-good);background:#d99a1e24}.sm-check-list .sm-check-val{color:var(--sm-text-2);text-align:right;font-size:12px}.sm-check-list .ok .sm-check-val.strong{color:var(--sm-perfect);font-weight:600}.sm-check-list .warn .sm-check-val{color:var(--sm-good);font-weight:600}.sm-options{color:var(--sm-text-2);border-top:1px solid #ffffff0f;flex-direction:column;gap:6px;padding-top:12px;font-size:12px;display:flex}.sm-options label{align-items:center;gap:8px;display:flex}.sm-options input[type=checkbox]{accent-color:var(--sm-accent)}.sm-kv{grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:0;display:grid}.sm-kv dt{color:var(--sm-text-3)}.sm-kv dd{overflow-wrap:anywhere;margin:0}.sm-foot{color:var(--sm-text-4);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:12px;display:flex}.sheet-mode .sm-dim{opacity:.45}.sheet-mode .sm-spinner-row{align-items:center;gap:10px;display:flex}.sm-scrim{z-index:30;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sm-dialog{box-sizing:border-box;color:#f2f5f8;background:#171b21;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:20px;width:520px;max-width:100%;max-height:100%;padding:28px 28px 24px;font-size:14px;line-height:20px;display:flex;overflow-y:auto;box-shadow:0 14px 28px #0000007a,0 0 8px #00000052}.pause-dialog .pause-title{align-items:center;gap:10px;display:flex}.pause-dialog h2{letter-spacing:0;margin:0;font-size:24px;font-weight:600;line-height:32px}.pause-dialog .pause-ico{color:#aeb7c4;background:#98a2b11f;border-radius:999px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.pause-dialog .pause-ico.danger{color:#ff6b70;background:#d1343829}.pause-dialog .pause-ico.info{color:#52b2dd;background:#35a3d41f}.pause-dialog .pause-desc{color:#aeb7c4;margin:6px 0 0}.pause-dialog .pause-warn{color:#ffc83d;background:#d99a1e24;border:1px solid #d99a1e4d;border-radius:8px;align-items:center;gap:10px;padding:12px 14px;display:flex}.pause-dialog .pause-warn .pause-dot{background:#ffc83d;border-radius:999px;flex:none;width:8px;height:8px}.pause-dialog .pause-warn .notice.readiness{min-width:0;color:inherit;background:0 0;border:0;flex-wrap:wrap;flex:auto;align-items:center;gap:10px;padding:0;font-size:12px;font-weight:600;display:flex}.pause-dialog .pause-warn .readiness-list{flex:160px;padding:0;list-style:none}.pause-dialog .pause-warn .btn-primary{color:#f2f5f8;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12px;font-weight:500;text-decoration:underline}.pause-dialog .pause-actions{flex-wrap:wrap;gap:8px;display:flex}.pause-dialog .pause-actions .pause-leave{margin-left:auto}.pause-dialog .pause-foot{color:#717c8e;font-size:12px}@media (width<=900px){.sheet-mode{padding:16px 16px 28px}.sheet-mode .sm-grid.select,.sheet-mode .sm-grid.ready{grid-template-columns:minmax(0,1fr)}.sheet-mode .sm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.sheet-mode .sm-triple{grid-template-columns:minmax(0,1fr)}.sheet-mode .sm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-song-head{display:none}.sm-song-main{grid-template-columns:minmax(0,1fr) auto}.sm-song-main .sm-col-len,.sm-song-main .sm-col-bpm{display:none}.sm-dialog{padding:20px 16px}}.studio-drop{border:2px dashed var(--line);border-radius:var(--radius);background:var(--stage-deep);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;transition:border-color .15s;display:flex}.studio-drop:hover,.studio-drop:focus-visible,.studio-drop.over{border-color:var(--brass)}.studio-drop.disabled{cursor:default;opacity:.6}.studio-form input[type=text]{width:100%}.studio-steps{grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0;padding:0;list-style:none;display:grid}.studio-steps li{color:var(--ink-faint);border-top:3px solid var(--line);flex-direction:column;align-items:center;gap:8px;padding-top:4px;font-size:13px;display:flex}.studio-step-dot{background:var(--line);border-radius:50%;width:10px;height:10px;margin-top:-7px}.studio-steps li.active{color:var(--ink);border-top-color:var(--brass)}.studio-steps li.active .studio-step-dot{background:var(--brass);box-shadow:0 0 8px var(--brass);animation:1.2s ease-in-out infinite studio-pulse}.studio-steps li.done{color:var(--ink-dim);border-top-color:var(--good)}.studio-steps li.done .studio-step-dot{background:var(--good)}@keyframes studio-pulse{50%{opacity:.45}}.studio-howto{color:var(--ink-dim);margin:0;padding-left:18px;font-size:14px;line-height:1.7}.studio-howto.wide{counter-reset:howto;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0;list-style:none;display:grid}.studio-howto.wide li{counter-increment:howto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.studio-howto.wide li:before{content:counter(howto) ". ";color:var(--brass);font-weight:600}@media (width<=900px){.studio-howto.wide{grid-template-columns:1fr}}.studio-busy{border:1px solid var(--brass);border-radius:var(--radius-sm);color:var(--ink-dim);margin:0;padding:10px 12px;font-size:14px}.studio-drop.large{justify-content:center;width:100%;min-height:220px;padding:72px 20px}.studio-reupload{border:1px solid var(--brass);border-radius:var(--radius-sm);justify-content:space-between;gap:12px;padding:8px 12px;font-size:14px}.studio-main>.card>h3{margin-bottom:4px}.studio-main>.card{scroll-margin-top:72px}.studio-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.studio-row{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.studio-row.job{border-color:var(--brass)}.studio-row.just-done{animation:2s ease-out studio-just-done}@keyframes studio-just-done{0%{background:color-mix(in srgb, var(--brass) 22%, transparent)}to{background:0 0}}.studio-row-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.studio-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.studio-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.studio-row-actions,.studio-row-fail{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.studio-row-fail p{margin:0 auto 0 0}.studio-strip{gap:4px}.weak-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.weak-card{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-sm);background:var(--stage-deep);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.weak-card.severe{border-left-color:var(--miss)}.weak-badge{border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:2px 8px;font-size:12px}.weak-badge.severe{border-color:var(--miss);color:var(--miss)}.weak-spinner{border:2px solid var(--line);border-top-color:var(--brass);border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.9s linear infinite weak-spin;display:inline-block}@keyframes weak-spin{to{transform:rotate(360deg)}}
