:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: #e0e7ff;--color-primary-gradient: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-secondary: #64748b;--color-secondary-hover: #475569;--color-info: #0891b2;--color-info-hover: #0e7490;--color-success: #10b981;--color-success-hover: #059669;--color-warning: #f59e0b;--color-border: #e2e8f0;--color-border-light: #cbd5e1;--color-background: #f8fafc;--color-background-light: #f1f5f9;--color-white: #ffffff;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-text: #0f172a;--color-text-muted: #64748b;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-warning-bg: #fffbeb;--color-warning-border: #f59e0b;--color-role-admin: #4f46e5;--color-role-admin-light: #e0e7ff;--color-role-creator: #8b5cf6;--color-role-creator-light: #ede9fe;--color-role-audio: #0891b2;--color-role-audio-light: #cffafe;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--max-width-sm: 500px;--max-width-md: 800px;--max-width-lg: 1200px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .04);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .05);--shadow-glow-primary: 0 0 20px rgba(79, 70, 229, .15);--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--backdrop-blur: blur(12px);--glass-bg: rgba(255, 255, 255, .8);--glass-border: 1px solid rgba(255, 255, 255, .2);--icon-sm: 18px;--icon-md: 24px;--icon-lg: 32px;--icon-xl: 48px;--shadow-colored-primary: 0 4px 14px -3px rgba(79, 70, 229, .25);--shadow-colored-creator: 0 4px 14px -3px rgba(139, 92, 246, .25);--shadow-colored-audio: 0 4px 14px -3px rgba(8, 145, 178, .25);--gradient-mesh-admin: radial-gradient(at 20% 80%, rgba(79, 70, 229, .06) 0%, transparent 50%), radial-gradient(at 80% 20%, rgba(124, 58, 237, .04) 0%, transparent 50%);--gradient-mesh-creator: radial-gradient(at 20% 80%, rgba(139, 92, 246, .06) 0%, transparent 50%), radial-gradient(at 80% 20%, rgba(167, 139, 250, .04) 0%, transparent 50%);--gradient-mesh-audio: radial-gradient(at 20% 80%, rgba(8, 145, 178, .06) 0%, transparent 50%), radial-gradient(at 80% 20%, rgba(6, 182, 212, .04) 0%, transparent 50%)}.btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.5;letter-spacing:.01em;transition:all var(--transition-fast);position:relative;overflow:hidden}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-primary{background:var(--color-primary-gradient);color:var(--color-white);box-shadow:var(--shadow-sm),0 1px 2px #4f46e533}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-md),0 2px 8px #4f46e54d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-xs)}.btn-primary:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease,opacity .4s ease;opacity:0}.btn-primary:active:after{width:200px;height:200px;opacity:0}.btn-secondary{background-color:var(--color-secondary);color:var(--color-white)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-danger{background-color:var(--color-danger);color:var(--color-white);box-shadow:0 1px 2px #ef444433}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover);box-shadow:0 2px 8px #ef44444d;transform:translateY(-1px)}.btn-info{background-color:var(--color-info);color:var(--color-white);box-shadow:0 1px 2px #0891b233}.btn-info:hover:not(:disabled){background-color:var(--color-info-hover);box-shadow:0 2px 8px #0891b24d;transform:translateY(-1px)}.btn-success{background-color:var(--color-success);color:var(--color-white);box-shadow:0 1px 2px #10b98133}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover);box-shadow:0 2px 8px #10b9814d;transform:translateY(-1px)}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-background-light);border-color:var(--color-primary);color:var(--color-primary)}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.btn-link:hover{color:var(--color-primary-hover);text-decoration:underline;text-underline-offset:3px}.back-button{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.back-button svg{transition:transform var(--transition-fast)}.back-button:hover{color:var(--color-primary-hover);text-decoration:underline;text-underline-offset:3px}.back-button:hover svg{transform:translate(-3px)}.form-row{margin-bottom:var(--spacing-md)}.form-row label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);letter-spacing:var(--letter-spacing-wide)}.form-row label.required:after{content:" *";color:var(--color-danger);font-weight:var(--font-weight-normal)}.form-row input,.form-row select,.form-row textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-surface);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--color-border-light);font-style:italic}.form-row textarea{min-height:80px;resize:vertical}@keyframes shakeError{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.form-row input.ng-invalid.ng-touched,.form-row select.ng-invalid.ng-touched,.form-row textarea.ng-invalid.ng-touched{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef44441a;animation:shakeError .4s ease}.form-row input.ng-valid.ng-dirty,.form-row select.ng-valid.ng-dirty,.form-row textarea.ng-valid.ng-dirty{border-color:var(--color-success)}.form-row input[type=checkbox]{width:auto;margin-right:var(--spacing-sm);accent-color:var(--color-primary)}.form-row small{color:var(--color-danger);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex;align-items:center;gap:4px;margin-top:var(--spacing-xs)}.checkbox-row{display:flex;align-items:center;margin-bottom:var(--spacing-md)}.checkbox-row input[type=checkbox]{margin-right:var(--spacing-sm);width:auto;accent-color:var(--color-primary)}.checkbox-row label{margin-bottom:0;font-weight:400}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.error-message{color:var(--color-danger);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.file-input{margin-bottom:var(--spacing-md)}.file-input input[type=file]{width:100%}.preview-image{max-width:200px;max-height:200px;margin-top:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md)}.page-wrapper{padding:var(--spacing-md);display:block;height:auto}.page-header{margin-bottom:var(--spacing-lg)}.page-header h1{margin:var(--spacing-md) 0 0 0;color:var(--color-text);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.dashboard-wrapper{padding:var(--spacing-xl);max-width:var(--max-width-lg);margin:0 auto;min-height:calc(100vh - 60px)}.dashboard-header{margin-bottom:var(--spacing-xl)}.dashboard-header h1{margin:var(--spacing-md) 0 0 0;color:var(--color-text);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.container{max-width:var(--max-width-md);margin:0 auto;padding:var(--spacing-xl);background:var(--color-surface-raised);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.info-row{margin-bottom:var(--spacing-sm)}.info-row .label{font-weight:var(--font-weight-medium);margin-right:var(--spacing-sm);color:var(--color-text-muted)}.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-text-muted)}.empty-state-icon{display:block;margin:0 auto var(--spacing-md);color:var(--color-border-light)}.empty-state-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--spacing-xs) 0}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:360px;margin:0 auto}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-background) 25%,var(--color-background-light) 50%,var(--color-background) 75%);background-size:200% 100%;animation:shimmer 1.5s ease infinite;border-radius:var(--radius-md)}.skeleton-card{height:100px;border-radius:var(--radius-md)}.skeleton-line{height:14px;border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm)}.skeleton-line.short{width:60%}.skeleton-line.medium{width:80%}@media(max-width:480px){.dashboard-wrapper,.container{padding:var(--spacing-md)}.page-header h1{font-size:var(--font-size-2xl)}}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card-interactive{cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast)}.card-interactive:hover{box-shadow:var(--shadow-lg),var(--shadow-glow-primary);transform:translateY(-3px);border-color:#4f46e533}.card h3{margin:0 0 var(--spacing-sm) 0;color:var(--color-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.card p{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.card.disabled{opacity:.6;cursor:not-allowed;position:relative}.card.disabled:hover{box-shadow:var(--shadow-sm);transform:none;border-color:var(--color-border)}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.link-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);padding-left:calc(var(--spacing-lg) + 4px);cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast);position:relative;overflow:hidden}.link-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--color-primary-gradient);border-radius:var(--radius-md) 0 0 var(--radius-md);opacity:0;transition:opacity var(--transition-fast)}.link-card:hover{box-shadow:var(--shadow-lg),var(--shadow-glow-primary);transform:translateY(-3px);border-color:#4f46e533}.link-card:hover:before{opacity:1}.link-card.disabled{opacity:.6;cursor:not-allowed}.link-card.disabled:hover{box-shadow:var(--shadow-sm);transform:none;border-color:var(--color-border)}.link-card.disabled:hover:before{opacity:0}.link-card h3{margin:0 0 var(--spacing-sm) 0;color:var(--color-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.link-card p{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.locked-badge{display:inline-block;background:var(--color-background-light);color:var(--color-text-muted);padding:2px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);border:1px solid var(--color-border);margin-left:var(--spacing-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172a80;-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{position:relative;background:var(--color-surface-raised);padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);border-radius:var(--radius-md);max-width:var(--max-width-sm);width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--color-border);animation:slideUp .3s ease}.modal-content h2,.popup-content h2{margin-top:0;margin-bottom:var(--spacing-md);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);padding-bottom:var(--spacing-md);padding-left:var(--spacing-md);border-bottom:1px solid var(--color-border);position:relative}.modal-content h2:before,.popup-content h2:before{content:"";position:absolute;left:0;top:0;width:4px;height:calc(100% - var(--spacing-md));background:var(--color-primary-gradient);border-radius:var(--radius-full)}.modal-close,.popup-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);z-index:1}.modal-close:hover,.popup-close:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-danger)}.delete-confirm{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-lg)}.delete-confirm p{margin:0 0 var(--spacing-md) 0;font-weight:var(--font-weight-medium)}.delete-confirm-actions{display:flex;gap:var(--spacing-sm)}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172a80;-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}.popup-content{position:relative;background:var(--color-surface-raised);padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);border-radius:var(--radius-md);max-width:var(--max-width-sm);width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--color-border);animation:slideUp .3s ease}@media(max-width:480px){.modal-content,.popup-content{padding:var(--spacing-lg) var(--spacing-md);width:95%}.delete-confirm-actions{flex-direction:column}}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.pagination button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid transparent;background:transparent;cursor:pointer;border-radius:var(--radius-full);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);min-width:36px;height:36px;display:inline-flex;justify-content:center;align-items:center;transition:all var(--transition-fast)}.pagination button:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary)}.pagination button.active{background:var(--color-primary-gradient);color:var(--color-white);border-color:transparent;font-weight:var(--font-weight-semibold);box-shadow:0 2px 4px #4f46e54d}.pagination button:disabled{opacity:.4;cursor:not-allowed}.page-info{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{height:100%;margin:0;padding:0;background-color:var(--color-background)}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 50% 0%,rgba(79,70,229,.03) 0%,transparent 50%)}h1,h2,h3,h4{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--color-text)}::selection{background-color:var(--color-primary-light);color:var(--color-primary)}.waiting-cursor{cursor:wait}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:var(--radius-full);border:2px solid var(--color-background)}::-webkit-scrollbar-thumb:hover{background:var(--color-secondary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-wrapper,.dashboard-wrapper,.stats-wrapper{animation:pageEnter .3s ease}
