:root{--bg: #0d0d14;--bg-alt: #14141e;--surface: #1a1a26;--surface-2: #23232f;--border: #2a2a3a;--border-strong: #3a3a4e;--text: #e8e8f0;--muted: #7a7a96;--muted-2: #5a5a74;--accent: #7c6af7;--accent-dim: rgba(124, 106, 247, .15);--accent-soft: rgba(124, 106, 247, .08);--danger: #e06c8a;--danger-dim: rgba(224, 108, 138, .14);--success: #4ecdc4;--warn: #f7c948;--anime: #e06c8a;--vocaloid: #4ecdc4;--jpop: #f7c948;--drama: #64b5f6;--other: #8888aa}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overscroll-behavior:none}body{background:radial-gradient(1000px 600px at 50% -10%,rgba(124,106,247,.08),transparent 60%),var(--bg);color:var(--text);font-family:-apple-system,Noto Sans KR,Pretendard,sans-serif;min-height:100dvh;font-size:14px;-webkit-font-smoothing:antialiased}button{touch-action:manipulation;font-family:inherit}#review-app{max-width:720px;margin:0 auto;padding:12px 16px 32px;min-height:100dvh;display:flex;flex-direction:column;gap:14px}.review-header{position:sticky;top:0;z-index:20;background:linear-gradient(to bottom,var(--bg) 80%,rgba(13,13,20,0));padding:8px 0 12px;display:flex;flex-direction:column;gap:10px}.header-top{display:flex;align-items:center;gap:12px}.back-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--surface);border:1px solid var(--border);color:var(--muted);text-decoration:none;font-size:1rem;transition:all .15s}.back-link:hover{color:var(--text);border-color:var(--accent)}.header-top h1{font-size:1rem;font-weight:700;letter-spacing:-.2px;flex:1}.header-desc{font-size:.82rem;color:var(--muted);line-height:1.4}.progress-text{font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:.3px}.progress-bar{height:6px;background:var(--surface);border-radius:99px;overflow:hidden;border:1px solid var(--border)}.progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),#a594ff);border-radius:99px;transition:width .3s ease}.suspect-bar{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;font-size:.76rem;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .12s}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:12px;height:12px;border-radius:3px;border:1.5px solid var(--muted-2);background:transparent;cursor:pointer;position:relative;flex-shrink:0;transition:all .12s}.chip input:checked{background:var(--accent);border-color:var(--accent)}.chip input:checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.chip:has(input:checked){color:var(--text);background:var(--accent-dim);border-color:var(--accent)}.chip.chip-alt:has(input:checked){background:#f7c9481f;border-color:var(--warn);color:var(--warn)}.chip.chip-alt input:checked{background:var(--warn);border-color:var(--warn)}.chip.chip-alt input:checked:after{border-color:#0d0d14}.stage[hidden]{display:none}.stage{position:relative;flex:1;display:flex;align-items:flex-start;justify-content:center;min-height:360px;padding:8px 0}.card-deck{position:relative;width:100%;max-width:560px}.song-card{position:relative;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:20px;padding:24px 22px;box-shadow:0 24px 48px -24px #0009,0 0 0 1px #ffffff05 inset;display:flex;flex-direction:column;gap:14px;transition:transform .22s ease,opacity .22s ease}.song-card.anim-enter-right{animation:slideInRight .22s ease both}.song-card.anim-enter-left{animation:slideInLeft .22s ease both}.song-card.anim-exit-left{animation:slideOutLeft .18s ease both}.song-card.anim-exit-right{animation:slideOutRight .18s ease both}.song-card.anim-shake{animation:shakeOut .3s ease both}@keyframes slideInRight{0%{transform:translate(32px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-32px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-32px);opacity:0}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(32px);opacity:0}}@keyframes shakeOut{0%{transform:translate(0);opacity:1}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px);opacity:.7}to{transform:translate(0);opacity:0}}.card-flags{display:flex;flex-wrap:wrap;gap:6px;min-height:0}.flag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;font-size:.72rem;font-weight:600;letter-spacing:.2px;background:#f7c94824;color:var(--warn);border:1px solid rgba(247,201,72,.28)}.flag.flag-danger{background:#e06c8a24;color:var(--danger);border-color:#e06c8a4d}.flag-dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.card-title-wrap{display:flex;flex-direction:column;gap:4px}.card-title{font-size:1.7rem;font-weight:800;letter-spacing:-.5px;line-height:1.2;word-break:break-word}.card-title-pron{font-size:.92rem;color:var(--muted);line-height:1.3;word-break:break-word}.card-artist-wrap{display:flex;flex-direction:column;gap:2px}.card-artist{font-size:1.12rem;font-weight:600;color:var(--text);line-height:1.3;word-break:break-word}.card-artist-pron{font-size:.85rem;color:var(--muted)}.edit-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 10px;padding-top:14px;margin-top:2px;border-top:1px solid var(--border)}.edit-field{display:flex;flex-direction:column;gap:4px;min-width:0}.edit-field.edit-field-full{grid-column:1 / -1}.edit-field label{font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.3px;text-transform:uppercase;padding-left:2px}.edit-field select,.edit-field input{width:100%;padding:10px 12px;background:var(--bg-alt);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-size:.92rem;font-family:inherit;outline:none;transition:border-color .12s,background .12s;min-width:0}.edit-field input{font-variant-numeric:tabular-nums}.edit-field-full input{font-variant-numeric:normal}.edit-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px;cursor:pointer}.edit-field input::placeholder{color:var(--muted-2)}.edit-field input:focus,.edit-field select:focus{border-color:var(--accent);background:var(--bg)}.edit-field input.field-changed,.edit-field select.field-changed{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 3px #7c6af714}.empty-card{text-align:center;padding:48px 24px;color:var(--muted)}.empty-card h3{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:8px}.empty-card p{font-size:.85rem;line-height:1.5}.actions{display:flex;flex-direction:column;gap:8px;padding-top:8px;padding-bottom:env(safe-area-inset-bottom,0);position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 80%,rgba(13,13,20,0));z-index:10}.actions-row{display:grid;gap:8px}.actions-row.primary{grid-template-columns:1fr 2fr 1fr}.action-btn{padding:14px 12px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;min-height:48px}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn.primary{background:linear-gradient(180deg,var(--accent),#6a58e6);border-color:var(--accent);color:#fff;box-shadow:0 6px 20px -10px #7c6af7b3;font-size:1rem}.action-btn.primary:hover:not(:disabled){filter:brightness(1.08)}.action-btn.primary:active:not(:disabled){transform:scale(.98)}.action-btn.secondary{color:var(--text)}.action-btn.secondary:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.action-btn:active:not(:disabled){transform:scale(.98)}.completion-screen[hidden]{display:none}.completion-screen{display:flex;align-items:center;justify-content:center;padding:48px 16px;flex:1}.completion-inner{text-align:center;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:14px}.completion-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 18px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:99px;font-size:.78rem;font-weight:700;letter-spacing:1px}.completion-inner h2{font-size:1.4rem;font-weight:800;letter-spacing:-.3px}.completion-inner p{color:var(--muted);font-size:.9rem;line-height:1.5}.completion-actions{display:flex;gap:8px;margin-top:8px}.btn-primary,.btn-secondary{padding:9px 18px;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;border:1.5px solid var(--border);font-family:inherit;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--muted)}.btn-secondary:hover{color:var(--text);border-color:var(--muted)}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:10px 18px;border-radius:24px;font-size:.85rem;box-shadow:0 6px 24px #0006;z-index:200;animation:toast-in .2s ease-out}.toast[hidden]{display:none}.toast.toast-error{border-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 520px){#review-app{padding:8px 12px 24px;gap:12px}.card-title{font-size:1.4rem}.card-artist{font-size:1.02rem}.song-card{padding:20px 18px;border-radius:16px;gap:12px}.edit-grid{grid-template-columns:1fr 1fr;gap:8px}.edit-field:has(#card-field-genre){grid-column:1 / -1}.action-btn{padding:12px 8px;font-size:.88rem}.action-btn.primary{font-size:.95rem}.chip{font-size:.72rem;padding:5px 10px}.header-top h1{font-size:.92rem}}
