:root{--color-bg: #14110d;--color-surface: #1f1a13;--color-surface-raised: #2a2318;--color-border: #3a3122;--color-text: #f3ecda;--color-text-muted: #8c8272;--color-accent: #e3a542;--color-accent-hover: #f0b95e;--color-error: #c4432b;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 40px;--space-6: 64px;--radius: 6px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.5}a{color:inherit}button,input{font-family:inherit;font-size:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.wordmark{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.01em}.wordmark span{color:var(--color-accent)}.topbar-nav{display:flex;align-items:center;gap:var(--space-4);font-size:13px;color:var(--color-text-muted)}.topbar-nav button{background:none;border:none;color:inherit;cursor:pointer;padding:0}.main{flex:1;max-width:760px;width:100%;margin:0 auto;padding:var(--space-5) var(--space-4)}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.auth-card{width:100%;max-width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5)}.auth-card h1{font-size:24px;margin-bottom:var(--space-1)}.auth-card p.subtitle{color:var(--color-text-muted);font-size:13px;margin:0 0 var(--space-4)}.field{margin-bottom:var(--space-3)}.field label{display:block;font-size:12px;color:var(--color-text-muted);margin-bottom:var(--space-1)}.field input{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text)}.field input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.btn-primary{width:100%;background:var(--color-accent);color:#14110d;border:none;border-radius:var(--radius);padding:11px 16px;font-weight:600;cursor:pointer}.btn-primary:hover{background:var(--color-accent-hover)}.btn-primary:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:13px;padding:0}.auth-footer{margin-top:var(--space-4);font-size:13px;color:var(--color-text-muted);text-align:center}.error-message{background:#c4432b1f;border:1px solid var(--color-error);color:#e8988a;border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:13px;margin-bottom:var(--space-3)}.catalog-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4)}.catalog-count{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.upload-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-5)}.upload-panel h2{font-size:16px;margin-bottom:var(--space-3)}.upload-row{display:flex;gap:var(--space-2);align-items:flex-end;flex-wrap:wrap}.upload-row .field{margin-bottom:0;flex:1;min-width:160px}.track-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border)}.track-row{display:grid;grid-template-columns:32px 28px 1fr auto auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border)}.track-index{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted);text-align:right}.track-title{font-family:var(--font-display);font-weight:600;font-size:15px}.track-artist{font-size:12px;color:var(--color-text-muted);margin-top:2px}.track-date{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);white-space:nowrap}.empty-state{text-align:center;padding:var(--space-6) var(--space-3);color:var(--color-text-muted)}.empty-state h3{font-size:18px;color:var(--color-text);margin-bottom:var(--space-1)}.load-more{display:block;margin:var(--space-4) auto 0;background:none;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius);padding:var(--space-2) var(--space-4);cursor:pointer}.load-more:hover{border-color:var(--color-accent);color:var(--color-accent)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
