:root{--bg-color: #0f172a;--bg-gradient: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .4);--glass-blur: blur(16px);--text-primary: #f8fafc;--text-secondary: #94a3b8;--accent-color: #818cf8;--accent-hover: #6366f1;--accent-light: #a5b4fc;--bg-card: #111827;--danger-color: #ef4444;--success-color: #10b981;--warning-color: #f59e0b;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--transition-fast: .2s ease;--transition-normal: .3s ease}body{margin:0;padding:0;background:var(--bg-color);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p{margin:0}a{color:var(--accent-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}button{cursor:pointer;border:none;background:none;color:inherit;font-family:inherit;outline:none}.glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-lg)}.glass-button{background:#ffffff14;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-weight:500;font-size:.9rem}.glass-button:hover{background:#ffffff26;border-color:#fff3;transform:translateY(-1px)}.glass-button:active{transform:translateY(0)}.glass-input{background:#0003;border:1px solid var(--glass-border);color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%;font-family:inherit;font-size:.9rem}.glass-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #6366f133}.glass-input::placeholder{color:var(--text-secondary)}.primary-button{background:var(--accent-color);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-weight:600;transition:background-color var(--transition-fast),transform var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);box-shadow:0 4px 14px #6366f163}.primary-button:hover{background:var(--accent-hover);transform:translateY(-1px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#fff3;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#fff6}.sticky-player-wrapper{position:fixed;top:22px;left:640px;width:min(560px,calc(100vw - 1060px));min-width:360px;z-index:100;animation:slideDown .25s cubic-bezier(.175,.885,.32,1.275)}@keyframes slideDown{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:1200px){.sticky-player-wrapper{left:292px;top:96px;width:min(560px,calc(100vw - 712px))}}@media(max-width:820px){.sticky-player-wrapper{top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;min-width:0;z-index:600}}.sticky-player{display:flex;flex-direction:column;padding:0;border-radius:var(--radius-lg);background:#14141ed9;box-shadow:0 10px 40px #00000080;overflow:hidden}.progress-container{width:100%;height:8px;padding:2px 0;cursor:pointer;background:transparent;transition:height var(--transition-fast)}.progress-bar-bg{width:100%;height:4px;background:#ffffff1a;position:relative;transition:height var(--transition-fast)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-hover),var(--accent-color));position:relative;width:0%}.progress-handle{position:absolute;right:-6px;top:50%;transform:translateY(-50%) scale(0);width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 10px #00000080;transition:transform var(--transition-fast)}.progress-container:hover .progress-bar-bg{height:6px}.progress-container:hover .progress-handle{transform:translateY(-50%) scale(1)}.player-content{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 6px;width:100%}.player-info{display:flex;align-items:center;gap:var(--spacing-md);width:30%}.player-cover{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);display:flex;align-items:center;justify-content:center}.player-track{display:flex;flex-direction:column}.player-title{max-width:200px;font-weight:600;font-size:.82rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.player-artist{font-size:.7rem;color:var(--text-secondary)}.player-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.control-btn{color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.control-btn:hover{color:var(--text-primary);transform:scale(1.1)}.control-btn.play-pause{width:34px;height:34px;border-radius:50%;background:var(--text-primary);color:var(--bg-color)}.control-btn.play-pause:hover{transform:scale(1.05);box-shadow:0 4px 12px #fff3}.player-right-controls{display:flex;align-items:center;gap:var(--spacing-md);width:30%;justify-content:flex-end}.volume-icon{color:var(--text-secondary)}.volume-bar{width:70px;height:4px;background:#ffffff1a;border-radius:2px;position:relative;overflow:hidden}.volume-fill{position:absolute;left:0;top:0;height:100%;width:70%;background:var(--text-primary);border-radius:2px}.wave-container{width:100%;height:40px;padding:4px 12px 0;cursor:pointer;box-sizing:border-box}.wave-canvas{display:block;width:100%;height:100%}.inspector-panel{width:360px;display:flex;flex-direction:column;height:calc(100vh - 2 * var(--spacing-lg));position:fixed;z-index:500;box-shadow:0 16px 40px #00000080,0 0 0 1px #ffffff0d;transition:height .3s cubic-bezier(.175,.885,.32,1.275);background:#0f172af7}.inspector-empty{padding:18px 20px;font-size:.85rem;color:var(--text-secondary);line-height:1.6}.inspector-toggle{position:fixed;top:24px;right:24px;z-index:490;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--text-primary);background:#0f172af2;border:1px solid rgba(129,140,248,.4);box-shadow:0 8px 24px #0006}.inspector-toggle:hover{background:#6366f140}.inspector-panel.resizing{transition:none}.inspector-panel.dragging{opacity:.9;box-shadow:0 24px 60px #0009,0 0 0 1px #ffffff1a;transition:none}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.empty-inspector-container{justify-content:center;align-items:center}.empty-inspector{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);color:var(--text-secondary);opacity:.6;text-align:center;line-height:1.5}.inspector-header{padding:16px 20px;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:#0f172a99;z-index:10;cursor:grab;height:64px}.inspector-header:active{cursor:grabbing}.inspector-header h3{font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.close-btn{color:var(--text-secondary);transition:color .15s ease;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px}.close-btn:hover{color:var(--text-primary);background:#ffffff14}.inspector-content{padding:20px;display:flex;flex-direction:column;gap:20px;overflow-y:auto;flex:1;opacity:1;transition:opacity .2s}.inspector-panel.resizing .inspector-content{opacity:1}@container (max-height: 100px){.inspector-content{opacity:0;pointer-events:none}}.collapse-handle{height:16px;flex-shrink:0;background:#0000001a;border-top:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.collapse-handle:hover{background:#6366f126}.collapse-handle:after{content:"";width:40px;height:4px;border-radius:2px;background:#fff3;transition:background .2s}.collapse-handle:hover:after{background:#ffffff80}.detail-section{display:flex;flex-direction:column;gap:6px}.detail-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);line-height:1.35}.detail-artist{color:var(--text-secondary);font-size:.88rem;display:flex;align-items:center;gap:6px}.meta-grid{gap:8px;padding:12px;background:#ffffff08;border-radius:10px;border:1px solid rgba(255,255,255,.05)}.meta-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.meta-label{flex-shrink:0;font-weight:500;min-width:56px}.meta-value{color:var(--text-primary);font-weight:600}.meta-badge{display:inline-flex;padding:2px 8px;border-radius:100px;font-size:.76rem;font-weight:700}.meta-badge.status-release{background:#3b82f626;color:#60a5fa}.meta-badge.status-keep{background:#10b98126;color:#34d399}.meta-badge.status-reviewing{background:#f59e0b26;color:#fbbf24}.meta-badge.status-submitted{background:#94a3b81a;color:#94a3b8}.meta-badge.status-returned{background:#ef44441a;color:#f87171}.meta-badge.status-rejected{background:#ef444433;color:#ef4444}.history-timeline h4{font-size:.9rem;color:var(--text-primary);margin-bottom:12px;display:flex;align-items:center;gap:6px;font-weight:600}.no-data{color:var(--text-secondary);font-size:.83rem;font-style:italic;line-height:1.6}.timeline{display:flex;flex-direction:column;gap:16px;position:relative;padding-left:16px}.timeline:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:2px;background:var(--glass-border)}.timeline-item{position:relative}.timeline-dot{position:absolute;left:-16px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--text-secondary);border:2px solid var(--bg-color)}.timeline-dot.status-release{background:#60a5fa}.timeline-dot.status-keep{background:#34d399}.timeline-dot.status-reviewing{background:#fbbf24}.timeline-dot.status-submitted{background:#94a3b8}.timeline-dot.status-returned{background:#f87171}.timeline-dot.status-rejected{background:#ef4444}.timeline-content{display:flex;flex-direction:column;gap:2px}.timeline-date{font-size:.72rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.timeline-target{font-size:.88rem;color:var(--text-primary);font-weight:600}.timeline-channel{color:var(--text-secondary);font-weight:400;font-size:.82rem}.timeline-status{font-size:.78rem;font-weight:700}.timeline-status.status-release{color:#60a5fa}.timeline-status.status-keep{color:#34d399}.timeline-status.status-reviewing{color:#fbbf24}.timeline-status.status-submitted{color:#94a3b8}.timeline-status.status-returned{color:#f87171}.timeline-status.status-rejected{color:#ef4444}.timeline-remarks{font-size:.78rem;color:var(--text-secondary);font-style:italic;margin-top:2px;padding-left:8px;border-left:2px solid rgba(255,255,255,.08)}.timeline-keep{font-size:.74rem;color:#34d399;font-weight:500}.timeline-return{font-size:.74rem;color:#f87171;font-weight:500}.actions{margin-top:auto;padding-top:16px}.export-btn{width:100%;background:linear-gradient(135deg,var(--accent-color),var(--accent-hover));box-shadow:0 4px 14px #6366f14d}.header-actions{display:flex;align-items:center;gap:4px}.edit-toggle-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-secondary);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:all .15s ease}.edit-toggle-btn:hover{background:#6366f11f;color:var(--accent-color);border-color:#6366f140}.edit-toggle-btn.active{background:linear-gradient(135deg,#6366f133,#8b5cf626);color:#a5b4fc;border-color:#6366f166}.save-msg{font-size:.8rem;font-weight:600;padding:6px 12px;border-radius:8px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);color:#a5b4fc;text-align:center;animation:fadeInMsg .2s ease}@keyframes fadeInMsg{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.edit-field{background:#ffffff0d;border:1px solid rgba(99,102,241,.25);border-radius:6px;padding:6px 10px;color:var(--text-primary);font-size:.88rem;width:100%;outline:none;transition:all .15s ease;font-family:inherit}.edit-field:focus{border-color:var(--accent-color);background:#ffffff14;box-shadow:0 0 0 2px #6366f11f}.edit-field-title{font-size:1.1rem;font-weight:700;padding:8px 12px}.edit-row{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.edit-row .edit-field{flex:1;font-size:.85rem}.edit-meta{gap:6px}.edit-field-meta{flex:1;font-size:.84rem;padding:4px 8px}.id3-actions h4{font-size:.85rem;color:var(--text-primary);margin-bottom:8px;display:flex;align-items:center;gap:6px;font-weight:600}.id3-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;border-radius:10px;font-size:.84rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.id3-write-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 2px 10px #6366f14d}.id3-write-btn:hover:not(:disabled){background:linear-gradient(135deg,#818cf8,#a78bfa);transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.id3-write-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.id3-hint{font-size:.72rem;color:var(--text-secondary);line-height:1.5;margin-top:8px;opacity:.7}.release-celebration{position:relative;padding:24px 20px;margin:12px 20px;border-radius:12px;background:linear-gradient(135deg,#fbbf241a,#f59e0b0d);border:1px solid rgba(251,191,36,.3);box-shadow:0 8px 32px #fbbf2426,inset 0 0 20px #fbbf240d;overflow:hidden;animation:goldenGlow 2s ease-in-out infinite alternate}@keyframes goldenGlow{0%{box-shadow:0 8px 32px #fbbf241a,inset 0 0 10px #fbbf2405}to{box-shadow:0 8px 32px #fbbf2440,inset 0 0 20px #fbbf2414}}.celebration-content{text-align:center;position:relative;z-index:2;margin-bottom:20px}.celebration-icon{font-size:3rem;margin-bottom:8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));animation:popIn .6s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{transform:scale(0);opacity:0}80%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.celebration-title{font-size:1.4rem;font-weight:800;color:#fbbf24;letter-spacing:.05em;margin-bottom:4px;text-shadow:0 2px 10px rgba(251,191,36,.4)}.celebration-subtitle{font-size:.85rem;color:#fffc;line-height:1.4;font-weight:500}.golden-theme h4{color:#fcd34d;text-shadow:0 0 10px rgba(251,191,36,.3)}.golden-theme .release-input{background:#0003;border:1px solid rgba(251,191,36,.4);color:#fff}.golden-theme .release-input:focus{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.golden-theme .release-label{color:#fce7f3}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1;pointer-events:none}.confetti{position:absolute;width:6px;height:12px;background-color:#fbbf24;opacity:0}.confetti:nth-child(1){left:10%;animation:confettiFall 3s linear infinite;background-color:#f59e0b;animation-delay:.1s}.confetti:nth-child(2){left:20%;animation:confettiFall 2.5s linear infinite;background-color:#ec4899;animation-delay:.5s}.confetti:nth-child(3){left:30%;animation:confettiFall 4s linear infinite;background-color:#3b82f6;animation-delay:1.2s}.confetti:nth-child(4){left:40%;animation:confettiFall 3.2s linear infinite;background-color:#a855f7;animation-delay:.8s}.confetti:nth-child(5){left:50%;animation:confettiFall 2.8s linear infinite;background-color:#fbbf24;animation-delay:2.1s}.confetti:nth-child(6){left:60%;animation:confettiFall 3.5s linear infinite;background-color:#10b981;animation-delay:.3s}.confetti:nth-child(7){left:70%;animation:confettiFall 2.9s linear infinite;background-color:#ef4444;animation-delay:1.5s}.confetti:nth-child(8){left:80%;animation:confettiFall 3.1s linear infinite;background-color:#f59e0b;animation-delay:.9s}.confetti:nth-child(9){left:90%;animation:confettiFall 2.6s linear infinite;background-color:#8b5cf6;animation-delay:1.8s}.confetti:nth-child(10){left:95%;animation:confettiFall 3.8s linear infinite;background-color:#14b8a6;animation-delay:.4s}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(300px) rotate(720deg);opacity:0}}.combo-field{position:relative;display:flex;align-items:center;flex:1}.combo-field .edit-field{padding-right:28px}.combo-arrow{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;opacity:.6}.combo-arrow:hover{background:#6366f126;color:var(--accent-color);opacity:1}.combo-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:180px;overflow-y:auto;background:#0f172af7;border:1px solid rgba(99,102,241,.25);border-radius:8px;box-shadow:0 8px 24px #0006;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:100;animation:comboSlideIn .15s ease}@keyframes comboSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.combo-option{padding:6px 12px;font-size:.82rem;color:var(--text-primary);cursor:pointer;transition:background .1s ease;border-bottom:1px solid rgba(255,255,255,.03)}.combo-option:last-child{border-bottom:none}.combo-option:hover{background:#6366f11f}.combo-option.active{background:#6366f12e;color:#a5b4fc;font-weight:600}.combo-dropdown::-webkit-scrollbar{width:4px}.combo-dropdown::-webkit-scrollbar-track{background:transparent}.combo-dropdown::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:2px}@media(max-width:820px){.inspector-panel{width:100vw;height:100dvh;top:0!important;right:0!important;left:0!important;border-radius:0;z-index:1250;padding-top:env(safe-area-inset-top)}.inspector-toggle{top:calc(10px + env(safe-area-inset-top));right:12px;height:36px;padding:0 12px}.inspector-panel.inspector-empty-shell{display:none}}.demo-dialog{width:min(1240px,100%)}.demo-warn{margin-bottom:10px;padding:8px 12px;border-radius:var(--radius-sm);background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#fde68a;font-size:.8rem}.demo-table-wrap{overflow:auto;flex:1;min-height:120px;max-height:30vh;border:1px solid var(--glass-border);border-radius:var(--radius-sm)}.demo-table{border-collapse:collapse;width:100%;font-size:.82rem}.demo-table th{position:sticky;top:0;background:#1e293bfa;color:var(--text-secondary);font-weight:600;font-size:.72rem;text-align:left;padding:8px;border-bottom:1px solid var(--glass-border);white-space:nowrap}.demo-table td{padding:3px 4px;border-bottom:1px solid rgba(255,255,255,.05)}.demo-no{text-align:center;color:var(--text-secondary);font-variant-numeric:tabular-nums}.demo-cell{width:100%;padding:6px 8px;border-radius:6px;border:1px solid transparent;background:#ffffff0a;color:var(--text-primary);font-size:.82rem}.demo-cell:focus{outline:none;border-color:var(--accent-color);background:#6366f11f}.demo-cell.missing{border-color:#fbbf2466}.demo-row-actions{white-space:nowrap}.demo-row-actions button{padding:4px 6px;color:var(--text-secondary);border-radius:4px}.demo-row-actions button:hover:not(:disabled){color:var(--text-primary);background:#ffffff14}.demo-row-actions button:disabled{opacity:.3}.demo-empty{padding:24px;text-align:center;color:var(--text-secondary)}.demo-step{margin:12px 0 6px;font-size:.85rem;font-weight:600;color:var(--text-primary)}.demo-picker{margin-top:4px;border-radius:8px;background:#ffffff0a;border:1px solid var(--glass-border)}.demo-picker-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:4px 8px}.demo-picker-toggle{display:flex;align-items:center;gap:6px;padding:6px 4px;color:var(--text-primary);font-size:.85rem;font-weight:600;white-space:nowrap}.demo-picker-toggle span{color:var(--text-secondary);font-weight:400;font-size:.76rem}.demo-picker-search{flex:1 1 260px;min-width:200px;display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:6px;background:#00000040;color:var(--text-secondary)}.demo-picker-search input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.82rem}.demo-picker-search button{color:var(--text-secondary);padding:2px;border-radius:4px}.demo-picker-search button:hover{color:var(--text-primary);background:#ffffff1a}.demo-picker-list{max-height:38vh;min-height:200px;overflow:auto;border-top:1px solid var(--glass-border)}.demo-pick{display:grid;grid-template-columns:24px minmax(180px,1.6fr) minmax(120px,1fr) 56px minmax(90px,.8fr) minmax(120px,1fr) 84px;align-items:center;gap:8px;padding:5px 10px;font-size:.8rem;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}.demo-pick:hover{background:#ffffff0d}.demo-pick.on{background:#6366f124}.demo-pick input{accent-color:var(--accent-color)}.demo-pick-title{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-pick-meta{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-pick-date{color:var(--text-secondary);font-size:.72rem;text-align:right;font-variant-numeric:tabular-nums}.demo-record{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary);cursor:pointer}.review-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#020617a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10000;padding:24px}.review-modal{width:min(1180px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;padding:22px 24px;background:#0f172aeb;box-shadow:0 30px 80px #0009;animation:reviewIn .22s cubic-bezier(.175,.885,.32,1.275)}@keyframes reviewIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.review-head h3{font-size:1.15rem;font-weight:700;color:var(--text-primary)}.review-desc{margin-top:4px;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.review-close{color:var(--text-secondary);padding:6px;border-radius:8px}.review-close:hover{color:var(--text-primary);background:#ffffff0f}.review-header-fields{display:flex;flex-wrap:wrap;gap:12px;padding:12px 14px;margin-bottom:12px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid var(--glass-border)}.review-field{display:flex;flex-direction:column;gap:4px;min-width:160px;flex:1}.review-field label{font-size:.72rem;color:var(--text-secondary);letter-spacing:.04em}.review-field input{padding:8px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:var(--text-primary);font-size:.9rem}.review-field input:focus{outline:none;border-color:var(--accent-color)}.review-list{overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding-right:4px}.review-row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(240px,1.2fr) auto;gap:14px;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);transition:border-color var(--transition-fast),background var(--transition-fast)}.review-row.choice-match{border-color:#34d39959}.review-row.choice-new{border-color:#818cf866}.review-row.choice-skip{opacity:.55}.review-source{min-width:0}.review-label-row{display:flex;align-items:flex-start;gap:8px}.review-label{font-weight:600;color:var(--text-primary);font-size:.92rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere;word-break:break-all}.review-sublabel{font-size:.75rem;color:var(--text-secondary);margin-top:3px;white-space:normal;overflow-wrap:anywhere}.review-note{font-size:.74rem;color:#c7d2fe;margin-top:3px;overflow-wrap:anywhere}.review-play{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);background:#ffffff14;border:1px solid rgba(255,255,255,.12);margin-top:1px}.review-play:hover:not(:disabled){background:#818cf84d}.review-play.playing{background:#34d39940;color:#6ee7b7;border-color:#34d39966}.review-play:disabled{opacity:.4}.review-question{display:flex;align-items:center;gap:8px;min-width:0}.review-arrow{color:var(--text-secondary)}.review-select{flex:1;min-width:0;padding:7px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#0000004d;color:var(--text-primary);font-size:.85rem}.review-select option{background:#0f172a}.review-score{font-size:.72rem;font-weight:700;padding:3px 7px;border-radius:999px;font-variant-numeric:tabular-nums}.review-score.high{background:#34d3992e;color:#6ee7b7}.review-score.mid{background:#fbbf242e;color:#fde68a}.review-score.low{background:#f871712e;color:#fca5a5}.review-nomatch{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-secondary)}.review-choice{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:#0000004d;border:1px solid rgba(255,255,255,.08)}.choice-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;transition:all var(--transition-fast)}.choice-btn:hover:not(:disabled){color:var(--text-primary)}.choice-btn.yes.active{background:#34d39938;color:#6ee7b7}.choice-btn.new.active{background:#818cf840;color:#c7d2fe}.choice-btn.skip.active{background:#ffffff1a;color:var(--text-primary)}.review-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--glass-border)}.review-summary{display:flex;gap:10px;font-size:.78rem;color:var(--text-secondary)}.review-summary .sum{padding:3px 9px;border-radius:999px;background:#ffffff0d}.review-summary .sum.match{color:#6ee7b7}.review-summary .sum.new{color:#c7d2fe}.review-actions{display:flex;gap:10px}.review-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:8px;font-weight:700;font-size:.88rem}.review-btn.ghost{color:var(--text-secondary);border:1px solid rgba(255,255,255,.12)}.review-btn.ghost:hover:not(:disabled){color:var(--text-primary);background:#ffffff0d}.review-btn.primary{color:#fff;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 6px 18px #10b9814d}.review-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.review-row{grid-template-columns:1fr}}.review-extra{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;margin-bottom:10px;border-radius:var(--radius-sm);background:#818cf814;border:1px solid rgba(129,140,248,.25);font-size:.84rem;color:var(--text-secondary)}.review-extra strong{color:var(--text-primary)}.review-extra label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-primary)}.review-visibility{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-secondary);margin-bottom:8px}.review-visibility button{color:var(--accent-color);font-size:.78rem;text-decoration:underline;text-underline-offset:3px}.review-tag{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;color:#fde68a;background:#fbbf2429;border:1px solid rgba(251,191,36,.35);vertical-align:middle}.review-row.choice-skip .review-tag{opacity:1}.review-linkbtn{margin-left:8px;color:var(--accent-color);font-size:.78rem;text-decoration:underline;text-underline-offset:3px}.paste-modal{width:min(640px,100%)}.paste-textarea{width:100%;min-height:260px;resize:vertical;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.12);background:#0000004d;color:var(--text-primary);font-family:inherit;font-size:.9rem;line-height:1.5}.paste-textarea:focus{outline:none;border-color:var(--accent-color)}@media(max-width:820px){.review-overlay{padding:8px;align-items:stretch}.review-modal{width:100%;max-height:calc(100dvh - 16px);padding:14px 12px;border-radius:16px}.review-header-fields{flex-wrap:wrap}.review-header-fields .review-field{flex:1 1 100%!important}}.dropzone-container{width:100vw;height:100vh;position:relative}.dropzone-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;border:4px dashed var(--accent-color);border-radius:var(--radius-lg);animation:fadeIn .2s ease-out}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);text-align:center;transform:scale(.95);animation:bounceIn .3s cubic-bezier(.175,.885,.32,1.275) forwards}.dropzone-icon{color:var(--accent-color);filter:drop-shadow(0 0 20px rgba(99,102,241,.4))}.dropzone-content h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.dropzone-content p{font-size:1.1rem;color:var(--text-secondary);line-height:1.5}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}}.dropzone-toast{position:fixed;bottom:120px;right:20px;background:#2ecc71e6;color:#fff;padding:16px 24px;border-radius:var(--radius-md);box-shadow:0 4px 15px #0000004d;font-weight:500;z-index:10000;animation:slideInRight .3s cubic-bezier(.175,.885,.32,1.275);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dropzone-overlay.ai-parsing{background:#0f172ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#8b5cf6}.dropzone-icon.pulsing{color:#8b5cf6;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.1);opacity:1;filter:drop-shadow(0 0 25px rgba(139,92,246,.8))}to{transform:scale(.9);opacity:.7}}.ai-modal-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000}.floating-ai-wrapper{position:absolute;bottom:30px;right:30px;z-index:999;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}.floating-ai-wrapper>*{pointer-events:auto}.fab-button{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--accent-light),var(--accent-color));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #6366f166;cursor:pointer;border:none;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s ease;margin-top:16px}.fab-button:hover{transform:scale(1.1);box-shadow:0 6px 20px #6366f199}.fab-button.open{transform:rotate(90deg) scale(.9);background:#333;box-shadow:0 2px 10px #0000004d}.chat-window{width:380px;height:550px;max-height:calc(100vh - 120px);background:#111827;border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:0 16px 48px #000000a6;display:flex;flex-direction:column;overflow:hidden;transform-origin:bottom right;animation:chat-pop-in .3s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes chat-pop-in{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-header{padding:16px 20px;background:#1a2236;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:12px}.chat-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.chat-header-status{font-size:.75rem;color:var(--accent-color);background:#6366f11a;padding:2px 8px;border-radius:12px;font-weight:600}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.message{max-width:85%;padding:12px 16px;border-radius:16px;font-size:.9rem;line-height:1.5;word-break:break-word;animation:msg-fade-in .3s ease}@keyframes msg-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;background:var(--accent-color);color:#fff;border-bottom-right-radius:4px}.message.ai{align-self:flex-start;background:#ffffff14;color:var(--text-primary);border-bottom-left-radius:4px}.message.ai.typing{display:flex;align-items:center;gap:4px;padding:16px}.typing-dot{width:6px;height:6px;background:#ffffff80;border-radius:50%;animation:blink 1.4s infinite both}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.chat-input-area{padding:16px;border-top:1px solid rgba(255,255,255,.05);background:#0003;display:flex;gap:12px;align-items:flex-end}.chat-input-area textarea{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px;color:#fff;font-size:.9rem;resize:none;min-height:44px;max-height:120px;line-height:1.4;font-family:inherit;transition:border-color .2s}.chat-input-area textarea:focus{outline:none;border-color:var(--accent-color)}.chat-send-btn{width:44px;height:44px;border-radius:12px;background:var(--accent-color);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .1s;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:var(--accent-light)}.chat-send-btn:active:not(:disabled){transform:scale(.95)}.chat-send-btn:disabled{background:#ffffff1a;color:#ffffff4d;cursor:not-allowed}.ai-proposal-card{margin-top:12px;background:#0000004d;border:1px solid rgba(99,102,241,.3);border-radius:12px;padding:16px;font-size:.85rem}.proposal-song-title{font-weight:600;color:var(--accent-color);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:6px}.proposal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.prop-field{display:flex;flex-direction:column;gap:2px}.prop-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase}.prop-value{color:var(--text-primary);font-weight:500}.proposal-actions{display:flex;gap:8px}.proposal-actions button{flex:1;padding:8px;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;transition:all .2s}.btn-apply{background:var(--accent-color);color:#fff}.btn-apply:hover{background:var(--accent-light)}.btn-cancel{background:#ffffff1a;color:#fff}.btn-cancel:hover{background:#fff3}.chat-selection{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:.72rem;color:#a5b4fc;background:#1e2340;border-top:1px solid #2b3150}.chat-selection strong{color:#e0e7ff}.chat-selection span{color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proposal-targets{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 8px}.proposal-targets span{padding:2px 8px;border-radius:999px;background:#2b3150;color:#e0e7ff;font-size:.72rem}@media(max-width:820px){.floating-ai-wrapper{position:fixed;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:1300}.fab-button{width:52px;height:52px}.chat-window{position:fixed;inset:calc(8px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom)) 8px;width:auto;height:auto;max-height:none;border-radius:16px;z-index:1300}}.lyrics-modal-overlay{position:fixed;inset:0;background:#0f172ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.lyrics-modal{width:600px;max-width:90vw;height:80vh;max-height:800px;background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid rgba(99,102,241,.3);border-radius:16px;box-shadow:0 24px 60px #0009,inset 0 1px 1px #ffffff1a;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s cubic-bezier(.175,.885,.32,1.275)}.lyrics-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#0003;border-bottom:1px solid var(--glass-border)}.lyrics-header h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.lyrics-header h3:before{content:"📃";font-size:1.2em}.lyrics-actions{display:flex;align-items:center;gap:12px}.lyrics-btn{display:flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;transition:all .2s}.lyrics-btn:hover{color:var(--text-primary)}.print-btn{padding:6px 12px;background:#6366f126;border:1px solid rgba(99,102,241,.3);color:#a5b4fc;font-size:.85rem;font-weight:600}.print-btn:hover{background:#6366f140;color:#fff;border-color:#6366f180;transform:translateY(-1px)}.close-btn{padding:6px}.close-btn:hover{background:#ef444426;color:#f87171}.lyrics-body-container{flex:1;padding:0;display:flex;flex-direction:column}.lyrics-textarea{flex:1;width:100%;background:transparent;border:none;padding:24px;color:var(--text-primary);font-size:1rem;line-height:1.8;resize:none;font-family:inherit;outline:none}.lyrics-textarea:focus{background:#ffffff05}.lyrics-textarea::placeholder{color:#fff3;font-style:italic}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.smart-ledger{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.ledger-header{flex-shrink:0;padding:20px 20px 12px}.ledger-header .page-title{font-size:2.2rem;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0 0 4px}.ledger-header .page-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.ledger-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--glass-border);flex-wrap:wrap;min-height:52px;flex-shrink:0;background:#0f172af2;z-index:20}.nav-buttons{display:flex;gap:2px}.nav-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-secondary);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);transition:all .15s ease;cursor:pointer}.nav-btn:hover:not(.disabled){background:#6366f11f;color:var(--accent-color);border-color:#6366f140}.nav-btn.disabled{opacity:.25;cursor:default;pointer-events:none}.ledger-search{display:flex;align-items:center;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;padding:6px 12px;width:240px;transition:all .2s ease}.ledger-search:focus-within{background:#ffffff14;border-color:var(--accent-color);box-shadow:0 0 0 2px #6366f126}.ledger-search .search-icon{color:var(--text-secondary);margin-right:8px;flex-shrink:0}.ledger-search input{background:none;border:none;color:var(--text-primary);width:100%;outline:none;font-size:.84rem}.ledger-search input::placeholder{color:var(--text-secondary)}.bpm-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:.78rem;font-weight:600;color:var(--text-secondary);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .15s ease}.bpm-toggle-btn:hover{background:#6366f11a;color:var(--accent-color);border-color:#6366f133}.bpm-toggle-btn.active{background:linear-gradient(135deg,#6366f126,#8b5cf61f);color:#a5b4fc;border-color:#6366f14d}.bpm-range-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:4px;background:#6366f133;color:#c4b5fd;font-size:.72rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:all .15s ease}.bpm-range-badge:hover{background:#ef444426;color:#f87171}.duplicate-check-btn{white-space:nowrap;display:inline-flex;align-items:center;gap:4px;padding:0 12px;margin-left:auto;width:auto;height:30px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);transition:all .15s ease}.duplicate-check-btn:hover{background:#ffffff14;border-color:#fff3;color:var(--text-primary)}.duplicate-check-btn.has-dupes{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#fca5a5}.duplicate-check-btn.has-dupes:hover{background:#ef444433;border-color:#ef444466;color:#fef2f2}.active-filter-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:.76rem;font-weight:600;background:linear-gradient(135deg,#6366f126,#8b5cf61f);border:1px solid rgba(99,102,241,.3);color:#a5b4fc;cursor:pointer;transition:all .15s ease;animation:filterIn .2s ease}.active-filter-badge:hover{background:#ef44441f;border-color:#ef44444d;color:#f87171}.active-filter-badge .filter-label{opacity:.6;font-weight:500}.active-filter-badge .filter-value{color:var(--text-primary)}.active-filter-badge .filter-close{opacity:.5}.active-filter-badge:hover .filter-close{opacity:1}@keyframes filterIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.clear-all-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:.74rem;font-weight:600;color:var(--text-secondary);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .15s ease}.clear-all-btn:hover{background:#ef44441a;color:#f87171;border-color:#ef444433}.bulk-dl-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:.8rem;font-weight:700;color:#fff;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0003}.bulk-dl-btn:not(.outline){background:linear-gradient(135deg,#6366f1,#8b5cf6)}.bulk-dl-btn:hover:not(.outline):not(.disabled){background:linear-gradient(135deg,#818cf8,#a78bfa);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.export-action-group{display:flex;gap:6px;margin-left:8px}.export-btn{padding:5px 10px}.export-btn.excel:not(.outline){background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d}.export-btn.excel:hover:not(.outline):not(.disabled){background:linear-gradient(135deg,#34d399,#10b981);box-shadow:0 4px 12px #10b98166}.export-btn.zip:not(.outline){background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px #f59e0b4d}.export-btn.zip:hover:not(.outline):not(.disabled){background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 4px 12px #f59e0b66}.bulk-dl-btn.outline{background:transparent;border:1px solid currentColor;box-shadow:none}.export-btn.excel.outline{color:#34d399;border-color:#10b98180}.export-btn.excel.outline:hover:not(.disabled){background:#10b9811a;border-color:#34d399}.export-btn.zip.outline{color:#fbbf24;border-color:#f59e0b80}.export-btn.zip.outline:hover:not(.disabled){background:#f59e0b1a;border-color:#fbbf24}.bulk-dl-btn.disabled{opacity:.3;pointer-events:none;box-shadow:none;transform:none}.ledger-count{color:var(--text-secondary);font-size:.82rem;font-weight:500;margin-left:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.limit-select{background:#0f172a66;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:.8rem;font-weight:500;cursor:pointer;outline:none;transition:all .2s}.limit-select:hover{border-color:#fff3;color:var(--text-primary)}.limit-select option{background:#0f172af2;color:var(--text-primary)}.bpm-fader-container{padding:6px 14px 8px;border-bottom:1px solid var(--glass-border);background:linear-gradient(180deg,#0f172a99,#0f172a4d);animation:faderSlideIn .25s ease;flex-shrink:0}@keyframes faderSlideIn{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:120px}}.bpm-fader-header{font-size:.8rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bpm-fader-title{font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.bpm-fader-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-secondary);background:none;border:none;cursor:pointer;transition:all .15s ease}.bpm-fader-close:hover{background:#ffffff14;color:var(--text-primary)}.bpm-fader-actions{display:flex;align-items:center;gap:6px}.bpm-reset-btn{padding:3px 10px;border-radius:6px;font-size:.7rem;font-weight:600;color:var(--text-secondary);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .15s ease}.bpm-reset-btn:hover{background:#ef44441a;color:#f87171;border-color:#ef444433}.bpm-fader-body{display:flex;align-items:center;gap:10px;max-width:640px}.bpm-fader-value{font-size:.75rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent-color);min-width:30px;text-align:center;padding:2px 5px;border-radius:4px;background:#6366f114;border:1px solid rgba(99,102,241,.15)}.bpm-fader-track-area{flex:1;position:relative;padding-top:12px}.bpm-ticks{position:absolute;top:0;left:0;right:0;height:12px;pointer-events:none}.bpm-tick{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.tick-line{width:1px;height:8px;background:#ffffff1f}.tick-label{font-size:.6rem;color:#fff3;font-weight:600;font-variant-numeric:tabular-nums;margin-top:1px}.bpm-fader-track{position:relative;height:8px;background:#ffffff0d;border-radius:4px;border:1px solid rgba(255,255,255,.06);box-shadow:inset 0 1px 3px #0006,inset 0 -1px #ffffff08}.bpm-fader-fill{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,#6366f1,#8b5cf6,#a78bfa);border-radius:4px;box-shadow:0 0 12px #6366f14d;transition:width .05s,left .05s}.bpm-knob{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:22px;cursor:grab;z-index:5;touch-action:none}.bpm-knob:active{cursor:grabbing}.knob-cap{width:100%;height:100%;border-radius:4px;background:linear-gradient(180deg,#4a4f72,#3a3e5c 20%,#2d3150,#3a3e5c 80%,#4a4f72);border:1px solid rgba(255,255,255,.12);box-shadow:0 2px 8px #0006,0 1px #ffffff14 inset,0 -1px #0003 inset;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:box-shadow .15s ease,transform .1s ease}.bpm-knob:hover .knob-cap{box-shadow:0 2px 12px #6366f14d,0 1px #ffffff1f inset;border-color:#6366f14d}.bpm-knob:active .knob-cap{transform:scaleX(.95);box-shadow:0 0 16px #6366f166,0 1px #ffffff26 inset}.knob-grip{width:12px;height:1px;background:#ffffff26;border-radius:1px}.bpm-knob:hover .knob-grip{background:#6366f166}.ledger-grid-wrapper{flex:1;overflow-y:auto;overflow-x:auto}.ledger-grid{width:max-content;min-width:100%;border-collapse:collapse}.ledger-grid thead th{position:sticky;top:0;background:#0f172af7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:9px 14px;font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;font-weight:700;letter-spacing:.06em;border-bottom:2px solid rgba(99,102,241,.2);z-index:10;white-space:nowrap;-webkit-user-select:none;user-select:none}.ledger-grid thead th.sortable{cursor:pointer;transition:color .15s ease}.ledger-grid thead th.sortable:hover{color:var(--text-primary)}.sort-arrow{margin-left:3px;font-size:.65em;opacity:.7}.col-check{width:40px;text-align:center}.col-play{width:44px;text-align:center}.col-filename,.col-title,.col-composer,.col-genre{white-space:nowrap}.col-bpm,.col-status{text-align:center;white-space:nowrap}.col-dest,.col-channel,.col-date,.col-updated,.col-created,.col-release{white-space:nowrap}.text-center{text-align:center!important}.col-actions{width:42px;text-align:center}.ledger-grid tbody tr{transition:background-color .12s ease;border-bottom:1px solid rgba(255,255,255,.03)}.ledger-grid tbody tr:hover{background:#ffffff0a}.ledger-grid tbody tr.selected{background:linear-gradient(90deg,#6366f126,#6366f10d);box-shadow:inset 4px 0 0 var(--accent-color),inset 0 1px #ffffff08,inset 0 -1px #ffffff08}.ledger-grid tbody tr.playing{background:#6366f10f}.ledger-grid tbody tr.checked{background:#6366f10d}.ledger-grid tbody tr.new-row{animation:newRowGlow 6s ease-out;border-left:3px solid rgba(99,102,241,.7)}@keyframes newRowGlow{0%{background:#6366f140;box-shadow:inset 0 0 20px #6366f133}15%{background:#6366f126}30%{background:#6366f138}50%{background:#6366f11f}to{background:transparent;box-shadow:none}}.ledger-grid tbody td{padding:7px 18px;font-size:.84rem;color:var(--text-primary);white-space:nowrap;vertical-align:middle}.composer-tag{display:inline-block;padding:3px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:.75em;cursor:pointer;transition:all .2s ease;white-space:nowrap}.composer-tag:hover{background:#6366f133;border-color:#6366f180;color:#fff}.ledger-grid tbody td.col-play,.ledger-grid tbody td.col-check{padding:4px 5px}.dip-switch,.dip-switch-header{display:flex;align-items:center;justify-content:center;cursor:pointer}.dip-switch input,.dip-switch-header input{position:absolute;opacity:0;width:0;height:0}.dip-track{width:24px;height:13px;border-radius:7px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);position:relative;transition:all .2s ease;flex-shrink:0}.dip-thumb{position:absolute;top:1px;left:1px;width:9px;height:9px;border-radius:50%;background:#ffffff4d;transition:all .2s ease}.dip-switch input:checked+.dip-track,.dip-switch-header input:checked+.dip-track{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:#6366f180}.dip-switch input:checked+.dip-track .dip-thumb,.dip-switch-header input:checked+.dip-track .dip-thumb{left:12px;background:#fff;box-shadow:0 1px 4px #0000004d}.dip-switch .dip-track{opacity:0;transition:opacity .15s ease,background .2s ease}.ledger-grid tbody tr:hover .dip-switch .dip-track,.dip-switch input:checked+.dip-track{opacity:1}.dip-switch-header .dip-track{opacity:.5}.dip-switch-header:hover .dip-track{opacity:1}.cell-clickable{cursor:pointer;transition:color .12s ease}.cell-clickable:hover{color:var(--accent-color)!important;text-decoration:underline;text-decoration-color:#6366f166;text-underline-offset:2px}.grid-play-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-secondary);opacity:.4;transition:all .15s ease}.grid-play-btn:not(.no-audio){color:#10b981;opacity:.8}.ledger-grid tbody tr:hover .grid-play-btn:not(.no-audio){opacity:1;background:#10b9811a}.grid-play-btn:not(.no-audio):hover{background:#10b98133!important;color:#10b981;transform:scale(1.1)}.grid-play-btn.is-playing{opacity:1;color:#10b981;background:#10b98126!important;animation:pulse-play 2s ease-in-out infinite}@keyframes pulse-play{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.grid-play-btn.no-audio{opacity:.15;cursor:default}.grid-play-btn.no-audio:hover{background:none;transform:none;color:var(--text-secondary)}.cell-title{font-weight:600;overflow:hidden;text-overflow:ellipsis}.cell-secondary{color:var(--text-secondary);font-size:.82rem}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.status-badge.status-release{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.25)}.status-badge.status-commissioned{background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.3)}.status-badge.status-keep{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.25)}.status-badge.status-reviewing{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.25)}.status-badge.status-submitted{background:#94a3b81a;color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.status-badge.status-returned{background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.status-badge.status-rejected{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.status-badge.status-none{background:transparent;color:var(--text-secondary);border:1px solid rgba(255,255,255,.06);font-weight:400;font-style:italic}.grid-delete-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-secondary);opacity:0;transition:all .15s ease}.ledger-grid tbody tr:hover .grid-delete-btn{opacity:.5}.grid-delete-btn:hover{opacity:1!important;background:#ef444426;color:var(--danger-color)}.smart-ledger-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;color:var(--text-secondary);gap:16px;padding:60px 20px}.smart-ledger-empty .empty-icon{font-size:4rem;opacity:.6;filter:drop-shadow(0 6px 12px rgba(99,102,241,.3));animation:float 6s ease-in-out infinite}.smart-ledger-empty h3{font-size:1.4rem;font-weight:700;color:var(--text-primary)}.smart-ledger-empty p{max-width:380px;line-height:1.7;font-size:.95rem}.drop-hint-badges{display:flex;gap:10px;margin-top:8px}.drop-hint-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:100px;font-size:.8rem;font-weight:600;background:#ffffff0d;border:1px solid var(--glass-border)}.folder-import-btn{width:auto;min-width:0;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-size:.78rem;font-weight:600;white-space:nowrap;color:#c7d2fe;border:1px solid rgba(129,140,248,.35);background:#818cf81a}.folder-import-btn:hover:not(:disabled){background:#818cf833}.folder-import-btn:disabled{opacity:.6;cursor:wait}.search-clear{flex-shrink:0;margin-left:4px;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:#ffffff14}.search-clear:hover{color:var(--text-primary);background:#ffffff29}.ledger-grid tbody tr[draggable=true]{cursor:grab}.ledger-grid tbody tr[draggable=true]:active{cursor:grabbing}.drag-ghost{position:fixed;top:-1000px;left:-1000px;padding:8px 14px;border-radius:999px;background:#6366f1f2;color:#fff;font-size:.85rem;font-weight:700;box-shadow:0 8px 24px #0006;white-space:nowrap}.active-filter-badge.exclude{border-color:#f8717180;background:#f871711f;color:#fca5a5}.active-filter-badge.exclude .filter-label,.active-filter-badge.exclude .filter-value{color:#fca5a5}.date-fader .date-value{min-width:62px;font-size:.72rem}.date-field-switch{display:inline-flex;gap:2px;margin-left:10px;padding:2px;border-radius:999px;background:#0000004d;border:1px solid rgba(255,255,255,.08);vertical-align:middle}.date-field-switch button{padding:2px 9px;border-radius:999px;font-size:.7rem;font-weight:600;color:var(--text-secondary)}.date-field-switch button.active{background:#818cf840;color:#c7d2fe}.tag-picker-anchor{position:relative}.tag-picker{position:absolute;top:calc(100% + 8px);left:0;width:min(720px,calc(100vw - 360px));max-height:60vh;display:flex;flex-direction:column;padding:12px 14px;background:#0f172af5;box-shadow:0 24px 60px #0000008c;z-index:500;animation:reviewIn .18s ease}.tag-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tag-picker-tabs{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#0000004d;border:1px solid rgba(255,255,255,.08)}.tag-picker-tabs button{padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--text-secondary)}.tag-picker-tabs button.active{background:#818cf840;color:#c7d2fe}.tag-picker-n{opacity:.6;font-size:.7rem;margin-left:4px}.tag-picker-search{padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:var(--text-primary);font-size:.82rem;width:180px}.tag-picker-search:focus{outline:none;border-color:var(--accent-color)}.tag-picker-hint{font-size:.7rem;color:var(--text-secondary);margin:8px 0 6px}.tag-picker-list{overflow-y:auto;display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px}.tag-picker-empty{color:var(--text-secondary);font-size:.8rem;padding:8px}.tag-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:.8rem;color:var(--text-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);transition:all .12s ease}.tag-chip:hover{background:#818cf833;border-color:#818cf866}.tag-chip.on{background:#818cf84d;border-color:#818cf899;color:#e0e7ff}.tag-chip.on-exclude{background:#f871712e;border-color:#f8717180;color:#fca5a5}.tag-chip-count{font-size:.7rem;opacity:.6;font-variant-numeric:tabular-nums}.active-filter-badge.only{border-color:#fbbf2480;background:#fbbf241f;color:#fde68a}.active-filter-badge.only .filter-label,.active-filter-badge.only .filter-value{color:#fde68a}.tag-chip.on-only{background:#fbbf2433;border-color:#fbbf248c;color:#fde68a}.tag-picker-hint{display:flex;flex-wrap:wrap;gap:12px}.tag-picker-hint .hint-inc{color:#c7d2fe}.tag-picker-hint .hint-exc{color:#fca5a5}.tag-picker-hint .hint-only{color:#fde68a}.composer-tag,.status-badge{-webkit-user-select:none;user-select:none}.gmail-sync-banner{margin:0 0 8px;padding:8px 14px;border-radius:8px;font-size:.82rem;background:#6366f129;border:1px solid rgba(99,102,241,.35);color:var(--text-primary);cursor:pointer}.bpm-value-input{width:44px;text-align:center;color:var(--accent-color);font-family:inherit}.bpm-value-input:focus{outline:none;border-color:var(--accent-color);background:#6366f129}.ledger-statusbar{flex-shrink:0;display:flex;align-items:center;gap:10px;height:34px;padding:0 14px;border-top:1px solid var(--glass-border);background:#0f172a99;font-size:.76rem;color:var(--text-secondary);position:relative;z-index:5}.ledger-statusbar.has-selection{background:#6366f11f;border-top-color:#818cf859;color:var(--text-primary)}.status-count strong{font-size:.9rem;color:#c7d2fe}.status-sep{width:1px;height:16px;background:#ffffff1f}.status-spacer{flex:1}.status-hint{opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-hint kbd,.status-btn kbd{font-family:inherit;font-size:.68rem;padding:1px 5px;border-radius:4px;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.status-actions{display:flex;align-items:center;gap:6px}.status-btn{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:6px;font-size:.74rem;font-weight:600;color:var(--text-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);white-space:nowrap}.status-btn:hover:not(:disabled):not(.disabled){background:#ffffff1f}.status-btn.primary{background:#818cf840;border-color:#818cf880;color:#e0e7ff}.status-btn.primary:hover:not(:disabled){background:#818cf866}.status-btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.status-btn:disabled,.status-btn.disabled{opacity:.4;cursor:not-allowed}.status-menu-anchor{position:relative}.status-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:220px;max-height:320px;overflow-y:auto;padding:6px;background:#0f172af7;box-shadow:0 -12px 40px #00000080;z-index:600}.status-menu button{display:flex;justify-content:space-between;width:100%;padding:7px 10px;border-radius:6px;font-size:.8rem;color:var(--text-primary);text-align:left}.status-menu button:hover{background:#818cf833}.status-menu button span{color:var(--text-secondary);font-size:.72rem}.status-menu-sep{height:1px;background:#ffffff1a;margin:4px 0}.ledger-grid tbody tr.checked{background:#6366f124}.ledger-grid tbody tr{-webkit-user-select:none;user-select:none}.ledger-grid tbody td.col-check{cursor:default}.dip-switch{display:inline-flex;width:auto;padding:4px;margin:0 auto}.keep-date{color:#6ee7b7}.ctx-menu{position:fixed;z-index:1200;min-width:240px;max-height:calc(100vh - 16px);overflow-y:auto;padding:6px;background:#0f172afa;box-shadow:0 20px 50px #0009;border-radius:12px;font-size:.82rem;animation:reviewIn .12s ease}.ctx-menu.flip-up .ctx-sub .ctx-submenu{top:auto;bottom:-6px}.ctx-title{padding:6px 10px 8px;font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.ctx-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:7px;color:var(--text-primary);text-align:left;white-space:nowrap}.ctx-item:hover:not(:disabled):not(.static){background:#818cf838}.ctx-item:disabled{opacity:.35;cursor:not-allowed}.ctx-item.danger{color:#fca5a5}.ctx-item.danger:hover:not(:disabled){background:#f871712e}.ctx-item kbd{margin-left:auto;font-size:.66rem;color:var(--text-secondary);font-family:inherit}.ctx-dim{margin-left:auto;color:var(--text-secondary);font-size:.72rem}.ctx-sep{height:1px;background:#ffffff14;margin:4px 6px}.ctx-sub{position:relative}.ctx-sub .ctx-submenu{display:none;position:absolute;left:calc(100% - 4px);top:-6px;min-width:200px;max-height:320px;overflow-y:auto;padding:6px;background:#0f172afa;border-radius:12px;box-shadow:0 20px 50px #0009}.ctx-sub:hover .ctx-submenu{display:block}.ctx-sub:hover>.ctx-item.static{background:#818cf838}@media(max-width:820px){.ledger-header{padding:calc(12px + env(safe-area-inset-top)) 12px 8px 60px}.ledger-header .page-title{font-size:1.35rem;letter-spacing:-.5px}.ledger-header .page-subtitle{display:none}.ledger-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:8px 10px;gap:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ledger-toolbar::-webkit-scrollbar{display:none}.ledger-toolbar>*{flex-shrink:0}.ctx-menu{max-width:calc(100vw - 16px)}.status-hint{display:none}.ledger-statusbar{flex-wrap:wrap;gap:6px;padding:6px 10px}}.auth-btn{width:100%}.auth-btn.login{color:var(--text-primary)}.auth-btn.login:hover{background:#ffffff0d}.auth-btn.login.expired{color:#fbbf24;border:1px solid rgba(251,191,36,.35);background:#fbbf2414}.account-box{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:var(--radius-md);background:#ffffff0a;border:1px solid var(--glass-border)}.account-row{display:flex;align-items:center;gap:10px;min-width:0}.account-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover;background:#ffffff1a}.account-avatar.placeholder{display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent-color),var(--accent-hover))}.account-text{min-width:0;flex:1}.account-name{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-email{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{color:var(--text-secondary);padding:6px;border-radius:8px;flex-shrink:0}.account-logout:hover{color:var(--danger-color);background:#ef44441f}.sync-indicator{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:var(--text-secondary);padding:0;text-align:left}.sync-indicator.saved{color:#6ee7b7}.sync-indicator.saving{color:#a5b4fc}.sync-indicator.error{color:#fca5a5;cursor:pointer}.spin{animation:stockfy-spin 1s linear infinite}@keyframes stockfy-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.layout-root{display:flex;min-height:100vh;padding:var(--spacing-md);gap:var(--spacing-md)}.sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;padding:var(--spacing-lg);height:calc(100vh - 2 * var(--spacing-md));position:sticky;top:var(--spacing-md)}.sidebar-header{margin-bottom:var(--spacing-xl)}.logo-container{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary)}.logo-icon{background:var(--accent-gradient, linear-gradient(135deg, var(--accent-color), var(--accent-hover)));width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #6366f166}.logo-text{font-size:1.5rem;font-weight:700;letter-spacing:-.5px}.sidebar-menu{display:flex;flex-direction:column;gap:var(--spacing-sm);flex-grow:1}.menu-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:500;transition:all var(--transition-fast);width:100%;text-align:left;border-left:4px solid transparent}.menu-item:hover{background:#ffffff0d;color:var(--text-primary)}.menu-item.active{background:linear-gradient(90deg,#6366f166,#6366f11a);color:#fff;border:1px solid rgba(99,102,241,.6);border-left:6px solid var(--accent-light, #818cf8);box-shadow:0 4px 15px #6366f133;font-weight:700}.sidebar-footer{margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--glass-border)}.auto-logout{width:100%;justify-content:flex-start}.auto-logout:hover{color:var(--danger-color);background:#ef44441a}.mobile-nav-btn,.mobile-nav-backdrop{display:none}.main-content{flex-grow:1;display:flex;flex-direction:column;min-width:0;height:calc(100vh - 2 * var(--spacing-md));min-height:0}.playlist-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.playlist-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);margin-bottom:6px}.playlist-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:600}.playlist-add-btn{width:24px;height:24px;border-radius:6px;border:1px solid rgba(99,102,241,.3);background:transparent;color:var(--accent-color);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.playlist-add-btn:hover{background:#6366f126;transform:scale(1.1)}.playlist-create-row{padding:4px var(--spacing-md)}.playlist-name-input{width:100%;background:#ffffff0f;border:1px solid rgba(99,102,241,.3);border-radius:6px;padding:6px 10px;font-size:.82rem;color:var(--text-primary);outline:none;font-family:inherit}.playlist-name-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #6366f11f}.playlist-list{display:flex;flex-direction:column;gap:2px}.playlist-item{display:flex;align-items:center;gap:8px;padding:6px var(--spacing-md);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.84rem;cursor:pointer;transition:all .15s ease;position:relative}.playlist-item:hover{background:#ffffff0d;color:var(--text-primary)}.playlist-item.active{background:linear-gradient(90deg,#6366f159,#6366f11a);color:#fff;box-shadow:inset 3px 0 0 var(--accent-light, #818cf8)}.playlist-item.active .playlist-count{color:#c7d2fe;opacity:1}.playlist-item.drag-over,.playlist-add-btn.drag-over{background:#22c55e38;color:#6ee7b7;box-shadow:0 0 0 2px #22c55e80}.playlist-hint{font-size:.72rem;color:var(--text-secondary);opacity:.7;padding:6px var(--spacing-md);line-height:1.5}@keyframes playlistPulse{0%{box-shadow:0 0 #22c55e66;background:#22c55e33}70%{box-shadow:0 0 0 10px #22c55e00;background:#22c55e59}to{box-shadow:0 0 #22c55e00;background:#22c55e33}}.playlist-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-count{font-size:.7rem;color:var(--text-secondary);opacity:.6;min-width:16px;text-align:right}.playlist-delete-btn{width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .15s ease}.playlist-item:hover .playlist-delete-btn{opacity:.6}.playlist-delete-btn:hover{opacity:1!important;color:var(--danger-color);background:#ef44441a}.sidebar-footer .settings-btn{margin-bottom:8px}@media(max-width:820px){.layout-root{padding:8px;gap:0;min-height:100dvh}.mobile-nav-btn{display:inline-flex;align-items:center;justify-content:center;position:fixed;top:calc(10px + env(safe-area-inset-top));left:12px;width:40px;height:40px;border-radius:12px;z-index:1200;color:var(--text-primary);background:#0f172af2;border:1px solid rgba(129,140,248,.4);box-shadow:0 8px 24px #0006}.mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:1100;background:#02061799;opacity:0;pointer-events:none;transition:opacity .2s ease}.layout-root.nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:min(300px,84vw);z-index:1150;border-radius:0 20px 20px 0;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));transform:translate(-105%);transition:transform .25s cubic-bezier(.2,.8,.2,1);overflow-y:auto;background:#0f172afa}.layout-root.nav-open .sidebar{transform:translate(0)}.main-content{height:calc(100dvh - 16px)}}.settings-dashboard{flex:1;max-width:none;padding-right:20px}.settings-scroll{overflow-y:auto;padding:0 var(--spacing-md) var(--spacing-xl)}.settings-card{padding:26px 28px;display:flex;flex-direction:column;gap:14px;max-width:760px}.settings-card h3{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;color:var(--text-primary)}.settings-card.danger{border-color:#ef44444d}.settings-card.danger h3{color:#fca5a5}.settings-help{font-size:.88rem;color:var(--text-secondary);line-height:1.65}.settings-help code{font-size:.8rem;padding:1px 6px;border-radius:4px;background:#ffffff14;color:var(--text-primary)}.settings-help a{display:inline-flex;align-items:center;gap:4px}.settings-stats{display:flex;flex-wrap:wrap;gap:22px}.settings-stats>div{display:flex;flex-direction:column}.stat-num{font-size:1.4rem;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat-label{font-size:.72rem;color:var(--text-secondary)}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}.settings-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:8px;font-size:.86rem;font-weight:600;color:var(--text-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);text-decoration:none;transition:background var(--transition-fast)}.settings-btn:hover:not(:disabled){background:#ffffff1c;color:var(--text-primary)}.settings-btn:disabled{opacity:.6;cursor:not-allowed}.settings-btn.primary{background:linear-gradient(135deg,var(--accent-color),var(--accent-hover));border-color:transparent;color:#fff}.settings-btn.danger-btn{color:#fca5a5;border-color:#ef444466;background:#ef44441f}.settings-btn.danger-btn.solid{background:#ef4444;color:#fff;border-color:transparent}.settings-result{font-size:.85rem;color:var(--text-primary)}.settings-key-row{display:flex;gap:10px}.settings-input{flex:1;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:var(--text-primary);font-size:.9rem}.settings-input:focus{outline:none;border-color:var(--accent-color)}.settings-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#fde68a;font-size:.86rem}.writer-table{display:flex;flex-direction:column;gap:6px}.writer-row{display:grid;grid-template-columns:1.1fr 1fr 1.2fr .8fr 36px;gap:6px;align-items:center}.writer-row.head{font-size:.72rem;color:var(--text-secondary);padding:0 4px}.writer-row .settings-input{padding:7px 10px;font-size:.85rem}@media(max-width:820px){.writer-row{grid-template-columns:1fr 1fr}}.trash-content{background:#0f172a66;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:24px;margin-top:24px}.empty-trash-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:var(--text-secondary);opacity:.6}.empty-trash-state .empty-icon{margin-bottom:16px;opacity:.5}.trash-list{display:flex;flex-direction:column;gap:12px}.trash-warning{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#fca5a5;font-size:.85rem;margin-bottom:12px}.trash-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:10px;transition:all .2s ease}.trash-item:hover{background:#ffffff0f;border-color:#ffffff1a}.trash-item-info{display:flex;flex-direction:column;gap:4px}.trash-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.trash-meta{font-size:.8rem;color:var(--text-secondary)}.trash-actions{display:flex;gap:8px}.trash-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.trash-btn.restore{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.trash-btn.restore:hover{background:#10b98140;border-color:#10b98180;color:#6ee7b7}.trash-btn.permanent-delete{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.trash-btn.permanent-delete:hover{background:#ef444440;border-color:#ef444480;color:#fca5a5}.trash-date{margin-left:10px;padding:1px 8px;border-radius:999px;background:#ffffff12;color:var(--text-secondary);font-size:.74rem;font-variant-numeric:tabular-nums}.welcome-gate{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);min-height:0}.welcome-card{max-width:520px;width:100%;padding:40px 44px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}.welcome-logo{font-size:3rem;filter:drop-shadow(0 8px 16px rgba(99,102,241,.4))}.welcome-title{font-size:2.4rem;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.welcome-lead{color:var(--text-secondary);line-height:1.7;font-size:.98rem}.welcome-expired{display:flex;gap:10px;align-items:flex-start;text-align:left;font-size:.85rem;color:#fde68a;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);padding:10px 14px;border-radius:var(--radius-sm);width:100%}.welcome-expired svg{flex-shrink:0;margin-top:2px}.welcome-expired code{font-size:.8rem}.welcome-login-btn{display:inline-flex;align-items:center;gap:12px;padding:14px 28px;border-radius:var(--radius-full);background:#fff;color:#1f2937;font-weight:700;font-size:1rem;box-shadow:0 10px 30px #00000059;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.welcome-login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 34px #00000073}.welcome-login-btn:disabled{opacity:.5;cursor:not-allowed}.welcome-points{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.welcome-points li{display:flex;gap:10px;align-items:flex-start}.welcome-points svg{flex-shrink:0;margin-top:3px;color:var(--accent-color)}.welcome-points strong{color:var(--text-primary)}.welcome-guest-link{font-size:.78rem;color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px;opacity:.8}.welcome-guest-link:hover{color:var(--text-primary)}.history-window{min-height:100vh;display:flex;flex-direction:column;padding:20px 22px 90px;gap:14px}.history-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.history-head h1{font-size:1.6rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.history-head p{color:var(--text-secondary);font-size:.8rem;margin-top:2px}.history-search{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-secondary);width:260px}.history-search input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:.85rem}.history-search button{color:var(--text-secondary);display:flex}.history-list{display:flex;flex-direction:column;gap:18px}.history-day h2{font-size:.8rem;font-weight:700;color:var(--text-secondary);letter-spacing:.04em;margin-bottom:6px;display:flex;justify-content:space-between}.history-day h2 span{opacity:.6;font-weight:500}.history-row{display:grid;grid-template-columns:44px 28px 1fr auto;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;border:1px solid transparent}.history-row:hover{background:#ffffff0a}.history-row.playing{background:#6366f11f;border-color:#6366f14d}.history-row.gone{opacity:.45}.history-time{font-size:.75rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.history-play{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.history-play:hover:not(:disabled){background:#818cf84d}.history-play:disabled{opacity:.3;cursor:not-allowed}.history-text{min-width:0}.history-title{font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-sub{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-count{font-size:.72rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.history-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;color:var(--text-secondary);text-align:center}.history-login{padding:10px 20px;border-radius:999px;background:#fff;color:#1f2937;font-weight:700}.history-foot{margin-top:auto;display:flex;justify-content:flex-end}.history-clear{font-size:.75rem;color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px}.history-window .sticky-player-wrapper{top:auto;bottom:16px;left:50%;transform:translate(-50%);width:calc(100% - 32px);min-width:0}.app-content-wrapper{display:flex;flex-grow:1;min-width:0;min-height:0;width:100%}.dashboard{display:flex;flex-direction:column;gap:var(--spacing-xl);height:100%;flex-grow:1;min-width:0;min-height:0}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;padding:0 var(--spacing-md);margin-top:var(--spacing-lg)}.page-title{font-size:2.5rem;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:var(--spacing-xs)}.page-subtitle{color:var(--text-secondary);font-size:1.1rem}.header-actions{display:flex;gap:var(--spacing-md)}.dashboard-content{flex-grow:1;display:flex;flex-direction:column;gap:var(--spacing-lg);min-height:0}.main-panel{flex-grow:1;padding:var(--spacing-xl);display:flex;flex-direction:column;position:relative;overflow:hidden;min-height:0}.empty-state{margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary);gap:var(--spacing-md);padding:var(--spacing-xl);max-width:400px}.empty-icon{font-size:4rem;opacity:.7;filter:drop-shadow(0 8px 16px rgba(99,102,241,.4));margin-bottom:var(--spacing-sm);animation:float 6s ease-in-out infinite}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.empty-state h3{color:var(--text-primary);font-size:1.5rem;font-weight:600}.empty-state p{line-height:1.6}
