:root{--color-primary: #1DB954;--color-primary-hover: #1ed760;--color-primary-dark: #169c46;--color-primary-light: #1ed760;--color-bg-primary: #FFFFFF;--color-bg-secondary: #F8F9FA;--color-bg-tertiary: #E9ECEF;--color-bg-elevated: #FFFFFF;--color-bg-highlight: #F0F0F0;--color-bg-card: #FFFFFF;--color-bg-card-hover: #F5F5F5;--color-text-primary: #121212;--color-text-secondary: #535353;--color-text-tertiary: #A0A0A0;--color-text-disabled: #C0C0C0;--color-border: #E9ECEF;--color-border-subtle: #DEE2E6;--color-error: #FF5252;--color-warning: #FF9800;--color-success: #1DB954;--font-family: "Circular Spotify Tx", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16);--shadow-xl: 0 12px 48px rgba(0, 0, 0, .2);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--touch-target: 44px;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-toast: 1090;--safe-area-top: env(safe-area-inset-top);--safe-area-bottom: env(safe-area-inset-bottom);--safe-area-left: env(safe-area-inset-left);--safe-area-right: env(safe-area-inset-right)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-tap-highlight-color:transparent;background:linear-gradient(180deg,#fff,#f8f9fa)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}img,svg{display:block;max-width:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}::selection{background:var(--color-primary);color:#fff}::-moz-selection{background:var(--color-primary);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}@media(min-width:768px){.container{padding:0 var(--spacing-lg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:var(--touch-target);padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:600;border-radius:var(--radius-full);transition:all var(--transition-fast);white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #1db95433}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.02);box-shadow:0 4px 12px #1db9544d}.btn-primary:active:not(:disabled){transform:scale(.98);box-shadow:0 1px 4px #1db95433}.btn-secondary{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-highlight);border-color:var(--color-text-secondary);transform:translateY(-1px);box-shadow:0 2px 8px #0000000d}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-highlight);transform:translateY(-1px)}.btn-icon{width:var(--touch-target);height:var(--touch-target);padding:0;border-radius:var(--radius-full)}.btn-icon svg{width:20px;height:20px}.input{width:100%;min-height:var(--touch-target);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.875rem;transition:all var(--transition-fast)}.input::placeholder{color:var(--color-text-tertiary)}.input:hover{border-color:var(--color-border-subtle);box-shadow:0 2px 4px #0000000d}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1db95426;background:var(--color-bg-primary)}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-md);transition:all var(--transition-fast);border:1px solid var(--color-border);box-shadow:0 2px 8px #0000000a}.card:hover{background:var(--color-bg-card-hover);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.glass{background:#ffffffe6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-border)}.gradient-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}.gradient-dark{background:linear-gradient(180deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%)}.gradient-light{background:linear-gradient(135deg,#fff,#f0f9ff)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-primary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fadeIn{animation:fadeIn var(--transition-normal) ease-out}.animate-slideUp{animation:slideUp var(--transition-normal) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-fast) ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}@media(max-width:767px){html{font-size:15px}}@media(min-width:768px)and (max-width:1023px){html{font-size:15px}}@media(min-width:1024px){html{font-size:16px}}@media(min-width:1440px){html{font-size:17px}}
