@charset "UTF-8";:root{--primary-color: #3b82f6;--primary-hover: #2563eb;--primary-light: #dbeafe;--primary-dark: #1d4ed8;--secondary-color: #64748b;--secondary-hover: #475569;--success-color: #10b981;--success-light: #d1fae5;--warning-color: #f59e0b;--warning-light: #fef3c7;--error-color: #ef4444;--error-light: #fee2e2;--info-color: #0ea5e9;--info-light: #e0f2fe;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--card-bg: #ffffff;--card-bg-hover: #f8fafc;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--border-color: #e2e8f0;--border-hover: #cbd5e1;--header-bg: rgba(255, 255, 255, .95);--header-border: #e2e8f0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", Consolas, Monaco, "Andale Mono", 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;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080;--header-height: 64px;--sidebar-width: 260px;--container-max-width: 1200px;--sidebar-bg: #1e293b;--sidebar-text: rgba(255, 255, 255, .7);--sidebar-text-hover: #ffffff;--sidebar-border: rgba(255, 255, 255, .1);--sidebar-item-hover: rgba(255, 255, 255, .1);--sidebar-item-active: var(--primary-color);--auth-gradient-from: #667eea;--auth-gradient-to: #764ba2;--auth-card-bg: #ffffff;--auth-card-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);--auth-heading: #1a1a1a;--auth-subtext: #666666;--auth-label: #374151;--auth-input-bg: #ffffff;--auth-input-border: #e5e7eb;--auth-input-disabled-bg: #f9fafb;--auth-checkbox-text: #4b5563;--auth-toggle-icon: #9ca3af;--auth-toggle-icon-hover: #6b7280;--auth-footer-text: #6b7280;--input-bg: #ffffff;--input-border: #e2e8f0;--input-focus-border: var(--primary-color);--input-focus-ring: rgba(99, 102, 241, .1);--input-disabled-bg: #f9fafb;--card-shadow: var(--shadow-md);--card-shadow-lg: var(--shadow-lg);--overlay-bg: rgba(0, 0, 0, .5);--modal-bg: #ffffff;--modal-shadow: 0 20px 60px rgba(0, 0, 0, .2);--primary-tint: rgba(99, 102, 241, .1);--success-tint: rgba(34, 197, 94, .1);--warning-tint: rgba(245, 158, 11, .1);--info-tint: rgba(59, 130, 246, .1);--error-tint: rgba(239, 68, 68, .1);--secondary-tint: rgba(107, 114, 128, .1);--icon-primary: #6366f1;--icon-success: #22c55e;--icon-warning: #f59e0b;--icon-info: #3b82f6;--icon-error: #ef4444;--icon-secondary: #6b7280;--badge-success-bg: #dcfce7;--badge-success-text: #166534;--badge-warning-bg: #fef3c7;--badge-warning-text: #92400e;--badge-error-bg: #fef2f2;--badge-error-text: #dc2626;--badge-info-bg: #dbeafe;--badge-info-text: #1e40af;--badge-secondary-bg: #e5e7eb;--badge-secondary-text: #6b7280;--badge-pending-bg: #fef3c7;--badge-pending-text: #92400e;--alert-info-text: #0c4a6e;--alert-success-text: #065f46;--alert-warning-text: #92400e;--alert-error-text: #991b1b;--error-hover: #dc2626;--danger-bg: #dc2626;--danger-hover: #b91c1c;--success-btn-bg: #22c55e;--success-btn-hover: #16a34a;--status-active: #22c55e;--status-inactive: #9ca3af;--toggle-off-bg: #d1d5db;--toggle-knob: #ffffff;--code-bg: #1e293b;--code-text: #e2e8f0;--code-border: rgba(0, 0, 0, .15);--code-inline-bg: rgba(99, 102, 241, .1);--code-inline-text: #6366f1;--focus-ring: rgba(99, 102, 241, .3);--separator-hover: rgba(99, 102, 241, .02);--dashed-border-hover: var(--primary-color);--pending-border: #f59e0b;--link-delete-bg: #fef2f2;--link-delete-text: #dc2626;--link-delete-border: 1px solid rgba(239, 68, 68, .2);--accent-color: #3b82f6;--accent-light: #60a5fa;--accent-tint: rgba(59, 130, 246, .1);--accent-tint-border: rgba(59, 130, 246, .2);--accent-tint-strong: rgba(59, 130, 246, .3);--accent-shadow: 0 10px 30px rgba(59, 130, 246, .3);--accent-shadow-lg: 0 20px 40px rgba(59, 130, 246, .2);--accent-shadow-sm: 0 4px 12px rgba(59, 130, 246, .15);--accent-shadow-scroll: 0 4px 20px rgba(59, 130, 246, .4);--learning-dashed-border: rgba(59, 130, 246, .3);--learning-dashed-bg: linear-gradient(135deg, rgba(59, 130, 246, .1), rgba(96, 165, 250, .05));--btn-spinner-border: rgba(255, 255, 255, .3);--section-alt-bg: rgba(243, 244, 246, .8);--danger-item-hover: rgba(239, 68, 68, .1);--danger-item-color: #ef4444;--dropdown-shadow: 0 8px 30px rgba(0, 0, 0, .15)}[data-theme=dark],.theme-dark{--primary-hover: #60a5fa;--primary-light: rgba(59, 130, 246, .2);--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--card-bg: rgba(30, 41, 59, .5);--card-bg-hover: rgba(30, 41, 59, .8);--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--border-color: rgba(59, 130, 246, .2);--border-hover: rgba(59, 130, 246, .5);--header-bg: rgba(15, 23, 42, .95);--header-border: rgba(59, 130, 246, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px rgba(59, 130, 246, .15);--sidebar-bg: #0f172a;--sidebar-text: rgba(203, 213, 225, .7);--sidebar-text-hover: #f1f5f9;--sidebar-border: rgba(59, 130, 246, .15);--sidebar-item-hover: rgba(59, 130, 246, .1);--auth-gradient-from: #1e1b4b;--auth-gradient-to: #312e81;--auth-card-bg: #1e293b;--auth-card-shadow: 0 25px 50px -12px rgba(0, 0, 0, .5);--auth-heading: #f1f5f9;--auth-subtext: #94a3b8;--auth-label: #cbd5e1;--auth-input-bg: #0f172a;--auth-input-border: #334155;--auth-input-disabled-bg: #1e293b;--auth-checkbox-text: #94a3b8;--auth-toggle-icon: #64748b;--auth-toggle-icon-hover: #94a3b8;--auth-footer-text: #64748b;--input-bg: #0f172a;--input-border: #334155;--input-focus-ring: rgba(59, 130, 246, .2);--input-disabled-bg: #1e293b;--card-shadow: var(--shadow-md);--card-shadow-lg: var(--shadow-lg);--overlay-bg: rgba(0, 0, 0, .7);--modal-bg: #1e293b;--modal-shadow: 0 20px 60px rgba(0, 0, 0, .5);--primary-tint: rgba(59, 130, 246, .15);--success-tint: rgba(34, 197, 94, .15);--warning-tint: rgba(245, 158, 11, .15);--info-tint: rgba(59, 130, 246, .15);--error-tint: rgba(239, 68, 68, .15);--secondary-tint: rgba(148, 163, 184, .15);--icon-primary: #818cf8;--icon-success: #4ade80;--icon-warning: #fbbf24;--icon-info: #60a5fa;--icon-error: #f87171;--icon-secondary: #94a3b8;--badge-success-bg: rgba(34, 197, 94, .15);--badge-success-text: #4ade80;--badge-warning-bg: rgba(245, 158, 11, .15);--badge-warning-text: #fbbf24;--badge-error-bg: rgba(239, 68, 68, .15);--badge-error-text: #f87171;--badge-info-bg: rgba(59, 130, 246, .15);--badge-info-text: #60a5fa;--badge-secondary-bg: rgba(148, 163, 184, .15);--badge-secondary-text: #94a3b8;--badge-pending-bg: rgba(245, 158, 11, .15);--badge-pending-text: #fbbf24;--alert-info-text: #7dd3fc;--alert-success-text: #4ade80;--alert-warning-text: #fbbf24;--alert-error-text: #f87171;--success-light: rgba(34, 197, 94, .15);--warning-light: rgba(245, 158, 11, .15);--error-light: rgba(239, 68, 68, .15);--info-light: rgba(14, 165, 233, .15);--error-hover: #ef4444;--danger-hover: #ef4444;--success-btn-hover: #4ade80;--status-active: #4ade80;--status-inactive: #64748b;--toggle-off-bg: #475569;--toggle-knob: #e2e8f0;--code-border: rgba(59, 130, 246, .2);--code-inline-bg: rgba(59, 130, 246, .15);--code-inline-text: #93c5fd;--focus-ring: rgba(59, 130, 246, .4);--separator-hover: rgba(59, 130, 246, .05);--pending-border: #fbbf24;--link-delete-bg: rgba(239, 68, 68, .1);--link-delete-text: #f87171;--link-delete-border: 1px solid rgba(239, 68, 68, .3);--accent-tint: rgba(59, 130, 246, .15);--accent-tint-border: rgba(59, 130, 246, .3);--accent-tint-strong: rgba(59, 130, 246, .4);--accent-shadow: 0 10px 30px rgba(59, 130, 246, .4);--accent-shadow-lg: 0 20px 40px rgba(59, 130, 246, .3);--accent-shadow-sm: 0 4px 12px rgba(59, 130, 246, .2);--accent-shadow-scroll: 0 4px 20px rgba(59, 130, 246, .5);--learning-dashed-border: rgba(59, 130, 246, .4);--learning-dashed-bg: linear-gradient(135deg, rgba(59, 130, 246, .15), rgba(96, 165, 250, .08));--section-alt-bg: rgba(30, 41, 59, .3);--danger-item-hover: rgba(239, 68, 68, .15);--danger-item-color: #f87171;--dropdown-shadow: 0 8px 30px rgba(0, 0, 0, .4)}[data-theme=light],.theme-light{--primary-color: #3b82f6;--primary-hover: #2563eb;--primary-light: #dbeafe;--primary-dark: #1d4ed8;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--card-bg: #ffffff;--card-bg-hover: #f8fafc;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--border-color: #e2e8f0;--border-hover: #cbd5e1;--header-bg: rgba(255, 255, 255, .95);--header-border: #e2e8f0;--shadow-glow: 0 4px 20px rgba(0, 0, 0, .08);--sidebar-bg: #1e293b;--sidebar-text: rgba(255, 255, 255, .7);--sidebar-text-hover: #ffffff;--sidebar-border: rgba(255, 255, 255, .1);--sidebar-item-hover: rgba(255, 255, 255, .1);--sidebar-item-active: var(--primary-color);--auth-gradient-from: #667eea;--auth-gradient-to: #764ba2;--auth-card-bg: #ffffff;--auth-card-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);--auth-heading: #1a1a1a;--auth-subtext: #666666;--auth-label: #374151;--auth-input-bg: #ffffff;--auth-input-border: #e5e7eb;--auth-input-disabled-bg: #f9fafb;--auth-checkbox-text: #4b5563;--auth-toggle-icon: #9ca3af;--auth-toggle-icon-hover: #6b7280;--auth-footer-text: #6b7280;--input-bg: #ffffff;--input-border: #e2e8f0;--input-focus-border: var(--primary-color);--input-focus-ring: rgba(59, 130, 246, .1);--input-disabled-bg: #f9fafb;--card-shadow: var(--shadow-md);--card-shadow-lg: var(--shadow-lg);--overlay-bg: rgba(0, 0, 0, .5);--modal-bg: #ffffff;--modal-shadow: 0 20px 60px rgba(0, 0, 0, .2);--primary-tint: rgba(99, 102, 241, .1);--success-tint: rgba(34, 197, 94, .1);--warning-tint: rgba(245, 158, 11, .1);--info-tint: rgba(59, 130, 246, .1);--error-tint: rgba(239, 68, 68, .1);--secondary-tint: rgba(107, 114, 128, .1);--icon-primary: #6366f1;--icon-success: #22c55e;--icon-warning: #f59e0b;--icon-info: #3b82f6;--icon-error: #ef4444;--icon-secondary: #6b7280;--badge-success-bg: #dcfce7;--badge-success-text: #166534;--badge-warning-bg: #fef3c7;--badge-warning-text: #92400e;--badge-error-bg: #fef2f2;--badge-error-text: #dc2626;--badge-info-bg: #dbeafe;--badge-info-text: #1e40af;--badge-secondary-bg: #e5e7eb;--badge-secondary-text: #6b7280;--badge-pending-bg: #fef3c7;--badge-pending-text: #92400e;--alert-info-text: #0c4a6e;--alert-success-text: #065f46;--alert-warning-text: #92400e;--alert-error-text: #991b1b;--error-hover: #dc2626;--danger-bg: #dc2626;--danger-hover: #b91c1c;--success-btn-bg: #22c55e;--success-btn-hover: #16a34a;--status-active: #22c55e;--status-inactive: #9ca3af;--toggle-off-bg: #d1d5db;--toggle-knob: #ffffff;--code-bg: #1e293b;--code-text: #e2e8f0;--code-border: rgba(0, 0, 0, .15);--code-inline-bg: rgba(99, 102, 241, .1);--code-inline-text: #6366f1;--focus-ring: rgba(59, 130, 246, .3);--separator-hover: rgba(59, 130, 246, .02);--dashed-border-hover: var(--primary-color);--pending-border: #f59e0b;--link-delete-bg: #fef2f2;--link-delete-text: #dc2626;--link-delete-border: 1px solid rgba(239, 68, 68, .2);--accent-color: #2563eb;--accent-light: #1d4ed8;--accent-tint: rgba(59, 130, 246, .1);--accent-tint-border: rgba(59, 130, 246, .2);--accent-tint-strong: rgba(59, 130, 246, .3);--accent-shadow: 0 10px 30px rgba(59, 130, 246, .3);--accent-shadow-lg: 0 20px 40px rgba(59, 130, 246, .2);--accent-shadow-sm: 0 4px 12px rgba(59, 130, 246, .15);--accent-shadow-scroll: 0 4px 20px rgba(59, 130, 246, .4);--learning-dashed-border: rgba(59, 130, 246, .3);--learning-dashed-bg: linear-gradient(135deg, rgba(59, 130, 246, .1), rgba(96, 165, 250, .05));--btn-spinner-border: rgba(255, 255, 255, .3);--section-alt-bg: rgba(243, 244, 246, .8);--danger-item-hover: rgba(239, 68, 68, .1);--danger-item-color: #ef4444;--dropdown-shadow: 0 8px 30px rgba(0, 0, 0, .15)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-slow),color var(--transition-slow)}img,picture,video,canvas,svg{display:block;max-width:100%}input,textarea,select{font:inherit;color:var(--text-primary);background-color:var(--bg-primary)}button{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;background:none;border:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,.h1{font-size:clamp(1.75rem,3vw + .5rem,var(--font-size-4xl));font-weight:700;line-height:var(--line-height-tight)}h2,.h2{font-size:clamp(1.5rem,2.5vw + .25rem,var(--font-size-3xl));font-weight:700;line-height:var(--line-height-tight)}h3,.h3{font-size:clamp(1.25rem,2vw + .125rem,var(--font-size-2xl));font-weight:600;line-height:var(--line-height-tight)}h4,.h4{font-size:var(--font-size-xl);font-weight:600;line-height:var(--line-height-tight)}h5,.h5{font-size:var(--font-size-lg);font-weight:600;line-height:var(--line-height-tight)}h6,.h6{font-size:var(--font-size-base);font-weight:600;line-height:var(--line-height-tight)}.lead{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--text-secondary)}.small{font-size:var(--font-size-sm)}.text-muted{color:var(--text-muted)}.link{color:var(--primary-color);transition:color var(--transition-fast)}.link:hover{color:var(--primary-hover)}.link-underline{text-decoration:underline;text-underline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:.625rem 1.25rem;font-size:var(--font-size-sm);font-weight:500;line-height:1;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn svg{width:1em;height:1em}.btn-sm{padding:.5rem .875rem;font-size:var(--font-size-xs)}.btn-lg{padding:.875rem 1.75rem;font-size:var(--font-size-base)}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary)}.btn-outline{background:transparent;color:var(--primary-color);border-color:var(--primary-color)}.btn-outline:hover:not(:disabled){background:var(--primary-light)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn-danger{background:var(--error-color);color:#fff}.btn-danger:hover:not(:disabled){background:var(--error-hover)}.btn-icon{padding:.5rem;border-radius:var(--radius-md)}.btn-icon svg{width:1.25rem;height:1.25rem}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-xs);color:var(--text-primary)}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem .875rem;font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--input-focus-ring)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--bg-secondary);cursor:not-allowed}.form-input.is-invalid,.form-select.is-invalid,.form-textarea.is-invalid{border-color:var(--error-color)}.form-input.is-invalid:focus,.form-select.is-invalid:focus,.form-textarea.is-invalid:focus{box-shadow:0 0 0 3px var(--error-tint)}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--spacing-xs)}.form-error{font-size:var(--font-size-sm);color:var(--error-color);margin-top:var(--spacing-xs)}.form-checkbox,.form-radio{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.form-checkbox input,.form-radio input{width:1rem;height:1rem;cursor:pointer}.card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--bg-secondary)}.card-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-xs)}.card-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full);line-height:1}.badge-primary{background:var(--primary-light);color:var(--primary-dark)}.badge-secondary{background:var(--bg-secondary);color:var(--text-secondary)}.badge-success{background:var(--badge-success-bg);color:var(--badge-success-text)}.badge-warning{background:var(--badge-warning-bg);color:var(--badge-warning-text)}.badge-error{background:var(--badge-error-bg);color:var(--badge-error-text)}.badge-info{background:var(--badge-info-bg);color:var(--badge-info-text)}.alert{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.alert-info{background:var(--info-light);color:var(--alert-info-text)}.alert-success{background:var(--success-light);color:var(--alert-success-text)}.alert-warning{background:var(--warning-light);color:var(--alert-warning-text)}.alert-error{background:var(--error-light);color:var(--alert-error-text)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);font-weight:500;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:32px;height:32px;font-size:var(--font-size-xs)}.avatar-md{width:40px;height:40px;font-size:var(--font-size-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--font-size-base)}.avatar-xl{width:64px;height:64px;font-size:var(--font-size-lg)}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:.375rem .75rem;font-size:var(--font-size-sm);font-weight:500;background:var(--bg-secondary);border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition-fast)}.tag:hover{background:var(--bg-tertiary)}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem;color:var(--text-muted)}.admin-loading__spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.admin-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem;color:var(--text-muted);text-align:center}.admin-error h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.admin-error p{margin:0;font-size:var(--font-size-sm)}.retry-btn{padding:.625rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.retry-btn:hover{opacity:.9}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.page-header p{color:var(--text-secondary);margin:0}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--auth-gradient-from) 0%,var(--auth-gradient-to) 100%);transition:background var(--transition-slow)}.auth-card{width:100%;max-width:420px;background:var(--auth-card-bg);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--auth-card-shadow);color:var(--text-primary);transition:background var(--transition-slow),box-shadow var(--transition-slow)}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:1.75rem;font-weight:700;color:var(--auth-heading);margin:0 0 .5rem}.auth-header p{color:var(--auth-subtext);margin:0;font-size:var(--font-size-sm)}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-form .form-group{display:flex;flex-direction:column;gap:.5rem}.auth-form .form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--auth-label)}.auth-form .form-group input{padding:.75rem 1rem;border:1px solid var(--auth-input-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--auth-input-bg);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-form .form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--input-focus-ring)}.auth-form .form-group input:disabled{background:var(--auth-input-disabled-bg);cursor:not-allowed}.error-alert{background:var(--error-light);border:1px solid var(--error-tint);color:var(--error-color);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:var(--font-size-sm)}.password-input{position:relative}.password-input input{width:100%;padding-right:3rem}.password-input .toggle-password{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--auth-toggle-icon);cursor:pointer;padding:.25rem}.password-input .toggle-password:hover{color:var(--auth-toggle-icon-hover)}.submit-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.submit-btn:hover:not(:disabled){background:var(--primary-hover)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid var(--btn-spinner-border, rgba(255, 255, 255, .3));border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.auth-footer{margin-top:2rem;text-align:center;font-size:var(--font-size-sm);color:var(--auth-footer-text)}.auth-footer a{color:var(--primary-color);text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-lang-toggle{position:fixed;top:1rem;left:1rem;display:flex;gap:.25rem;z-index:var(--z-fixed)}.auth-lang-btn{padding:.375rem .625rem;border:1px solid rgba(255,255,255,.3);background:#ffffff26;color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-fast)}.auth-lang-btn:hover{background:#ffffff40}.auth-lang-btn.active{background:var(--primary-color);border-color:var(--primary-color)}.auth-success-message,.auth-error-message{text-align:center}.auth-success-message svg,.auth-error-message svg{margin-bottom:1rem}.auth-success-message h2,.auth-error-message h2{font-size:var(--font-size-xl);margin:0 0 .75rem;color:var(--auth-heading)}.auth-success-message p,.auth-error-message p{color:var(--auth-subtext);font-size:var(--font-size-sm);margin:0 0 1.5rem;line-height:1.6}.auth-success-message .btn,.auth-error-message .btn{display:inline-block;padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;text-decoration:none;border-radius:var(--radius-md);font-weight:500}.auth-success-message .btn:hover,.auth-error-message .btn:hover{background:var(--primary-hover)}.auth-success-message svg{color:var(--success-color)}.auth-error-message svg{color:var(--error-color)}.back-link{display:block;text-align:center;color:var(--primary-color);text-decoration:none;font-size:var(--font-size-sm)}.back-link:hover{text-decoration:underline}.form-options{display:flex;justify-content:space-between;align-items:center}.remember-me{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-color);cursor:pointer}.forgot-link{font-size:var(--font-size-sm);color:var(--primary-color);text-decoration:none}.forgot-link:hover{text-decoration:underline}.required{color:var(--error-color)}.field-hint,.hint{font-size:var(--font-size-xs);color:var(--text-muted)}.legal-page{max-width:800px;margin:0 auto;padding:3rem 1.5rem}.legal-container{color:var(--text-primary)}.legal-container h1{font-size:2rem;font-weight:700;margin-bottom:.5rem}.legal-container h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary)}.legal-container p{color:var(--text-secondary);line-height:1.7;margin-bottom:1rem}.legal-container ul{padding-left:1.5rem;color:var(--text-secondary);line-height:1.7}.legal-container li{margin-bottom:.5rem}.legal-container section{margin-bottom:2rem}.legal-updated{color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:2rem}.confirm-page{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.confirm-card{max-width:480px;width:100%;text-align:center;background:var(--card-bg);border-radius:var(--radius-xl);padding:3rem 2rem;box-shadow:var(--shadow-lg)}.confirm-card__icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.confirm-card__icon svg{width:40px;height:40px}.confirm-card__icon--success{background:var(--success-tint)}.confirm-card__icon--success svg{stroke:var(--icon-success)}.confirm-card__icon--error{background:var(--error-tint)}.confirm-card__icon--error svg{stroke:var(--icon-error)}.confirm-card__icon--loading{background:var(--primary-tint)}.confirm-card__icon--loading svg{stroke:var(--icon-primary);animation:spin 1s linear infinite}.confirm-card__title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem}.confirm-card__message{font-size:1.05rem;line-height:1.6;margin:0 0 2rem}.confirm-card__message--success{color:var(--badge-success-text)}.confirm-card__message--error{color:var(--badge-error-text)}.confirm-card__message--loading{color:var(--text-secondary)}.confirm-card__link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;border-radius:var(--radius-md);text-decoration:none;font-weight:500;font-size:.95rem;transition:background var(--transition-fast),transform var(--transition-fast)}.confirm-card__link svg{width:18px;height:18px}.confirm-card__link:hover{background:var(--primary-hover);transform:translateY(-1px)}.filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-input{flex:1;min-width:200px;max-width:400px;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--card-bg);color:var(--text-primary);transition:border-color var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--primary-color)}.search-input::placeholder{color:var(--text-muted)}.table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse}th,td{padding:.875rem 1rem;text-align:left}th{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}td{border-bottom:1px solid var(--border-color);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.flex-1{flex:1}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.m-0{margin:0}.mt-md{margin-top:var(--spacing-md)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.container{width:100%;max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.divider{height:1px;background:var(--border-color);margin:var(--spacing-lg) 0}.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}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}label .required{color:var(--icon-error, #ef4444);margin-left:.15em;font-weight:600}a[target=_blank]:not(.no-external-icon):not(.social-link):not(.icon-link):not(.repo-card):after{content:" \2197";font-size:.75em;vertical-align:super;opacity:.7;margin-left:.15em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}@media (min-width: 641px){.sm\:hidden{display:none}.sm\:flex-col{flex-direction:column}.grid-cols-2,.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1025px){.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-fade-in-up{animation:fadeInUp var(--transition-slow)}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.mat-mdc-snack-bar-container.success-snackbar .mdc-snackbar__surface{background:var(--success-color)}.mat-mdc-snack-bar-container.error-snackbar .mdc-snackbar__surface{background:var(--error-color)}.mat-mdc-snack-bar-container.warning-snackbar .mdc-snackbar__surface{background:var(--warning-color)}.mat-mdc-snack-bar-container.info-snackbar .mdc-snackbar__surface{background:var(--info-color)}.mat-mdc-form-field{width:100%}.mat-mdc-form-field-subscript-wrapper{font-size:var(--font-size-xs)}.mat-mdc-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{border-radius:var(--radius-md)!important}.mat-mdc-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm)!important}.mat-mdc-dialog-container{--mdc-dialog-container-shape: var(--radius-lg)}.markdown-content{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--text-primary)}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1.5em;margin-bottom:.5em}.markdown-content h1{font-size:2em}.markdown-content h2{font-size:1.5em;border-bottom:1px solid var(--border-color);padding-bottom:.3em}.markdown-content h3{font-size:1.25em}.markdown-content h4{font-size:1em}.markdown-content p{margin-bottom:1em}.markdown-content a{color:var(--primary-color);text-decoration:underline}.markdown-content a:hover{color:var(--primary-hover)}.markdown-content ul,.markdown-content ol{margin-bottom:1em;padding-left:2em;list-style:disc}.markdown-content ol{list-style:decimal}.markdown-content li{margin-bottom:.25em}.markdown-content blockquote{margin:1em 0;padding:.5em 1em;border-left:4px solid var(--primary-color);background:var(--bg-secondary);color:var(--text-secondary)}.markdown-content code{font-family:var(--font-family-mono);font-size:.875em;background:var(--bg-secondary);padding:.2em .4em;border-radius:var(--radius-sm)}.markdown-content pre{margin:1em 0;padding:1em;background:var(--code-bg);border-radius:var(--radius-md);overflow-x:auto}.markdown-content pre code{background:none;padding:0}.markdown-content img{max-width:100%;height:auto;border-radius:var(--radius-md)}.markdown-content table{width:100%;margin:1em 0;border-collapse:collapse}.markdown-content th,.markdown-content td{padding:.75em;border:1px solid var(--border-color);text-align:left}.markdown-content th{background:var(--bg-secondary);font-weight:600}.markdown-content hr{border:none;border-top:1px solid var(--border-color);margin:2em 0}pre[class*=language-],code[class*=language-]{font-family:Fira Code,Consolas,Monaco,Andale Mono,monospace!important;font-size:.875rem!important;line-height:1.6!important}pre[class*=language-]{background:var(--code-bg, #1e293b)!important;border:1px solid var(--code-border, rgba(59, 130, 246, .2))!important;border-radius:var(--radius-md, 8px)!important;padding:1.25rem!important;margin:1em 0!important;overflow-x:auto!important}.markdown-content pre,.article-content pre{background:var(--code-bg, #1e293b)!important;color:#e2e8f0!important;border:1px solid var(--code-border, rgba(59, 130, 246, .2))!important}.markdown-content pre code,.article-content pre code{background:none!important;color:inherit!important;padding:0!important}.markdown-content>code,.markdown-content p code,.markdown-content li code,.markdown-content td code,.markdown-content h1 code,.markdown-content h2 code,.markdown-content h3 code,.markdown-content h4 code,.article-content>code,.article-content p code,.article-content li code,.article-content td code,.article-content h1 code,.article-content h2 code,.article-content h3 code,.article-content h4 code{background:var(--code-inline-bg, rgba(99, 102, 241, .1))!important;color:var(--code-inline-text, #6366f1)!important;padding:.2em .4em!important;border-radius:4px!important;font-family:Fira Code,Consolas,monospace!important;font-size:.875em!important;border:1px solid var(--code-border, rgba(0, 0, 0, .1))!important}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#999!important}.token.punctuation{color:#ccc!important}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555!important}.token.boolean,.token.number,.token.function{color:#f08d49!important}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd!important}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699!important}.token.operator,.token.entity,.token.url{color:#67cdcc!important}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a!important}.token.function-name{color:#6196cc!important}.token.inserted{color:#7ec699!important}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important}pre,code,.code-block,pre[class*=language-]{background:#f5f5f5!important;border:1px solid #ddd!important}body{font-size:12pt}a{text-decoration:underline}.no-print{display:none!important}}button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
