:root{--color-bg-primary:#0a0a0f;--color-bg-secondary:#12121a;--color-bg-elevated:#1a1a26;--color-bg-card:#ffffff0a;--color-bg-card-hover:#ffffff12;--color-surface-glass:#ffffff0f;--color-text-primary:#f0f0f5;--color-text-secondary:#8b8ba0;--color-text-muted:#55556a;--color-accent:#1db954;--color-accent-hover:#1ed760;--color-accent-glow:#1db95440;--color-danger:#e74c3c;--color-warning:#f39c12;--gradient-hero:linear-gradient(150deg, #1db954 0%, #0d8a3e 40%, #0a0a0f 70%);--gradient-card:linear-gradient(135deg, #1db95414, #ffffff05);--gradient-glow:radial-gradient(circle at 50% 0%, #1db95426, transparent 60%);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-size-4xl:3.5rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:999px;--border-subtle:1px solid #ffffff0f;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 30px #1db95433;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;line-height:1.6}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}.text-center{text-align:center}.text-muted{color:var(--color-text-secondary)}.text-sm{font-size:var(--font-size-sm)}.infotip{align-items:center;display:inline-flex;position:relative}.infotip-btn{cursor:pointer;color:var(--color-text-muted);opacity:.55;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;padding:0 2px;font-size:11px;line-height:1;transition:opacity .15s}.infotip-btn:hover{opacity:1}.infotip-popup{background:var(--color-bg-elevated);color:var(--color-text-secondary);white-space:normal;z-index:9999;pointer-events:none;letter-spacing:normal;text-transform:none;border:1px solid #ffffff1f;border-radius:6px;width:210px;max-width:calc(100vw - 48px);padding:7px 10px;font-size:11px;font-weight:400;line-height:1.45;box-shadow:0 4px 16px #00000080}.page{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.toast{text-align:center;word-break:break-word;border-radius:8px;width:max-content;max-width:min(360px,90vw);padding:10px 18px;font-size:.875rem;font-weight:500;animation:.2s toast-in}.toast--error{color:#fff;background:#c62828}.toast--success{color:#fff;background:#1db954}.toast--info{color:#fff;background:#333}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.feedback-trigger{z-index:200;border:1px solid var(--color-border,#2a2a3a);background:var(--color-surface,#1e1e2e);width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;transition:color .15s,border-color .15s;display:flex;position:fixed;bottom:106px;right:16px}.feedback-trigger:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.feedback-modal{z-index:201;background:var(--color-surface,#1e1e2e);border:1px solid var(--color-border,#2a2a3a);width:300px;padding:var(--space-md);gap:var(--space-sm);border-radius:10px;flex-direction:column;display:flex;position:fixed;bottom:142px;right:16px;box-shadow:0 4px 24px #0006}.feedback-modal-header{justify-content:space-between;align-items:center;display:flex}.feedback-modal-title{font-size:.9rem;font-weight:600}.feedback-modal-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;line-height:1}.feedback-modal-close:hover{color:var(--color-text-primary)}.feedback-textarea{background:var(--color-bg);border:1px solid var(--color-border,#2a2a3a);width:100%;color:var(--color-text-primary);resize:none;box-sizing:border-box;border-radius:6px;padding:8px;font-family:inherit;font-size:.85rem}.feedback-textarea:focus{border-color:var(--color-text-secondary);outline:none}.feedback-modal-footer{justify-content:space-between;align-items:center;display:flex}.feedback-char-count{color:var(--color-text-secondary);font-size:.75rem}.feedback-submit{background:var(--color-accent,#1db954);color:#000;cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:600}.feedback-submit:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.feedback-trigger{bottom:150px}.feedback-modal{bottom:186px}}@media (width<=600px){.feedback-modal{width:calc(100vw - 16px);right:8px}}.error-boundary{justify-content:center;align-items:center;gap:var(--space-md);height:100vh;padding:var(--space-xl);text-align:center;background:var(--color-bg-primary);flex-direction:column;display:flex}.error-boundary h2{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0;font-weight:600}.error-boundary p{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:480px;margin:0;line-height:1.6}.error-boundary-btn{margin-top:var(--space-sm);background:var(--color-accent);color:#000;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:background var(--transition-fast);border:none;padding:10px 28px}.error-boundary-btn:hover{background:var(--color-accent-hover)}
