@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap);body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.toast-container{pointer-events:none;right:20px;top:20px;z-index:10000}.toast,.toast-container{gap:12px;max-width:400px}.toast{align-items:center;border-radius:8px;box-shadow:0 4px 12px #00000026;justify-content:space-between;opacity:0;padding:16px;pointer-events:all;transform:translateX(100%);transition:all .3s ease-in-out}.toast-visible{opacity:1;transform:translateX(0)}.toast-content{align-items:center;display:flex;gap:12px}.toast-icon{font-size:20px}.toast-message{color:var(--noir-charbon);flex:1 1;font-size:14px;line-height:1.4}.toast-close{align-items:center;color:#999;display:flex;font-size:24px;height:24px;justify-content:center;padding:0;transition:color .2s;width:24px}.toast-close:hover{color:var(--noir-charbon)}.toast-success{border-left:4px solid var(--vert-foret)}.toast-error{border-left:4px solid var(--rouge-terre)}.toast-warning{border-left:4px solid var(--ocre)}.toast-info{border-left:4px solid var(--bleu-indigo)}@media (max-width:768px){.toast-container{left:10px;max-width:none;right:10px;top:10px}.toast{max-width:none;min-width:auto}}.error-boundary{align-items:center;background:linear-gradient(135deg,var(--blanc-casse) 0,#f5f5f5 100%);display:flex;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;max-width:600px;padding:3rem;text-align:center}.error-icon{font-size:64px;margin-bottom:1rem}.error-boundary-content h1{color:var(--rouge-terre);font-size:2rem;margin-bottom:1rem}.error-boundary-content p{color:#666;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.error-details{background:#f5f5f5;border-radius:8px;margin:2rem 0;max-height:300px;overflow-y:auto;padding:1rem;text-align:left}.error-details summary{color:var(--noir-charbon);cursor:pointer;font-weight:600;margin-bottom:.5rem}.error-details pre{background:#fff;border-radius:4px;color:var(--rouge-terre);font-size:12px;margin-top:.5rem;overflow-x:auto;padding:1rem}.error-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.error-button{background:linear-gradient(135deg,var(--bleu-indigo) 0,var(--vert-foret) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .2s}.error-button:hover{box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.error-button-secondary{background:#e0e0e0;color:var(--noir-charbon)}.error-button-secondary:hover{background:#d0d0d0}@media (max-width:768px){.error-boundary-content{padding:2rem}.error-actions{flex-direction:column}.error-button{width:100%}}.offline-indicator{position:fixed;z-index:9999}.offline-indicator.top-right{right:16px;top:16px}.offline-indicator.top-left{left:16px;top:16px}.offline-indicator.bottom-right{bottom:16px;right:16px}.offline-indicator.bottom-left{bottom:16px;left:16px}.offline-indicator.inline{display:inline-block;position:relative}.offline-badge{align-items:center;border:none;border-radius:24px;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.offline-badge:hover{box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.status-icon{font-size:12px}.status-label{white-space:nowrap}.pending-badge{align-items:center;background:#e74c3c;border-radius:10px;color:#fff;display:flex;font-size:12px;font-weight:600;height:20px;justify-content:center;min-width:20px;padding:0 6px}.offline-details{animation:slideDown .2s ease;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;margin-top:8px;overflow:hidden;position:absolute;right:0;top:100%;width:320px}.offline-indicator.bottom-left .offline-details,.offline-indicator.top-left .offline-details{left:0;right:auto}.offline-indicator.bottom-left .offline-details,.offline-indicator.bottom-right .offline-details{bottom:100%;margin-bottom:8px;margin-top:0;top:auto}.details-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:16px}.details-header h4{color:#2c3e50;font-size:16px;margin:0}.close-btn{background:#e9ecef;color:#7f8c8d;font-size:18px;height:28px;width:28px}.close-btn:hover{background:#dde1e4}.details-content{padding:16px}.detail-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:10px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#7f8c8d;font-size:14px}.detail-value{color:#2c3e50;font-size:14px;font-weight:500}.detail-value .warning{color:#e67e22}.detail-value .success{color:#27ae60}.storage-bar,.storage-section{margin-top:8px}.storage-bar{background:#e9ecef;border-radius:3px;height:6px}.storage-fill{border-radius:3px;transition:width .3s ease}.data-counts{border-top:1px solid #e9ecef;margin-top:16px;padding-top:16px}.data-counts h5{color:#7f8c8d;font-size:13px;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.counts-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.count-item{background:#f8f9fa;border-radius:8px;padding:8px;text-align:center}.count-value{color:#2c3e50;display:block;font-size:20px;font-weight:700}.count-label{color:#95a5a6;display:block;font-size:11px;margin-top:2px}.details-actions{border-top:1px solid #e9ecef;margin-top:16px;padding-top:16px}.sync-btn{align-items:center;background:#e67e22;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 16px;transition:all .2s ease;width:100%}.sync-btn:hover:not(:disabled){background:#d35400}.sync-btn:disabled{background:#bdc3c7;cursor:not-allowed}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.offline-message{align-items:flex-start;background:#fef5e7;border-top:1px solid #f9e79f;display:flex;gap:12px;padding:16px}.offline-icon{flex-shrink:0;font-size:24px}.offline-message p{color:#7d6608;font-size:13px;line-height:1.5;margin:0}@media (max-width:400px){.offline-details{left:0;margin:8px auto;right:0;width:calc(100vw - 32px)}.offline-indicator.top-left,.offline-indicator.top-right{left:16px;right:16px}.offline-badge{justify-content:center;width:100%}}.offline-indicator.syncing .status-icon{animation:pulse 1s ease-in-out infinite}.sync-toast{align-items:center;animation:slideUp .3s ease;background:#2c3e50;border-radius:8px;bottom:80px;box-shadow:0 4px 12px #0003;color:#fff;display:flex;font-size:14px;gap:10px;padding:12px 20px;position:fixed;right:16px;z-index:9998}.sync-toast.success{background:#27ae60}.sync-toast.error{background:#e74c3c}.app-header{background:#fff;border-bottom:2px solid var(--bleu-indigo);box-shadow:0 2px 8px #0000001a;height:64px;left:0;position:fixed;right:0;top:0;z-index:1000}.header-container{height:100%;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 2rem}.header-container,.header-left,.header-logo{align-items:center;display:flex}.header-logo{color:var(--bleu-indigo);font-size:1.5rem;font-weight:700;gap:.75rem;text-decoration:none;transition:transform .2s}.header-logo:hover{transform:scale(1.05)}.logo-text{background:linear-gradient(135deg,var(--bleu-indigo) 0,var(--vert-foret) 100%)}.header-nav{align-items:center;display:flex;gap:2rem}.nav-link{border-radius:6px;color:var(--noir-charbon);font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:all .2s}.nav-link:hover{background:#1919701a;color:var(--bleu-indigo)}.user-menu{position:relative}.user-menu-button{align-items:center;background:none;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.5rem 1rem;transition:all .2s}.user-menu-button:hover{background:#1919700d;border-color:var(--bleu-indigo)}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--bleu-indigo) 0,var(--vert-foret) 100%);border-radius:50%;color:#fff;display:flex;font-size:.9rem;font-weight:600;height:36px;justify-content:center;width:36px}.user-name{color:var(--noir-charbon);font-weight:600}.user-role{background:#f0f0f0;border-radius:4px;color:#666;font-size:.85rem;padding:.25rem .5rem}.menu-arrow{color:#999;font-size:.75rem;transition:transform .2s}.user-menu-button[aria-expanded=true] .menu-arrow{transform:rotate(180deg)}.user-menu-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1001}.menu-item{background:none;border:none;color:var(--noir-charbon);cursor:pointer;display:block;font-size:.95rem;padding:.75rem 1rem;text-align:left;text-decoration:none;transition:background .2s;width:100%}.menu-item:hover{background:#f5f5f5}.menu-item-danger{color:var(--rouge-terre)}.menu-item-danger:hover{background:#fee}.menu-divider{background:#e0e0e0;height:1px;margin:.5rem 0}.header-auth-buttons{display:flex;gap:.75rem}.btn-secondary{background:var(--bleu-indigo);padding:.5rem 1.5rem;text-decoration:none}.btn-secondary:hover{background:var(--vert-foret);box-shadow:0 4px 8px #0003}@media (max-width:768px){.header-container{padding:0 1rem}.header-nav,.user-name,.user-role{display:none}.logo-text{font-size:1.25rem}}[data-theme=dark] .app-header{background:#1e293b;border-bottom-color:#4f46e5;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .nav-link{color:#e2e8f0}[data-theme=dark] .nav-link:hover{background:#6366f126;color:#a5b4fc}[data-theme=dark] .user-menu-button{border-color:#334155;color:#e2e8f0}[data-theme=dark] .user-menu-button:hover{background:#6366f11a;border-color:#4f46e5}[data-theme=dark] .user-name{color:#f8fafc}[data-theme=dark] .user-role{background:#334155;color:#cbd5e1}[data-theme=dark] .menu-arrow{color:#94a3b8}[data-theme=dark] .user-menu-dropdown{background:#1e293b;border:1px solid #334155;box-shadow:0 4px 12px #0006}[data-theme=dark] .menu-item{color:#e2e8f0}[data-theme=dark] .menu-item:hover{background:#334155}[data-theme=dark] .menu-item-danger{color:#f87171}[data-theme=dark] .menu-item-danger:hover{background:#ef444426}[data-theme=dark] .menu-divider{background:#334155}.sidebar{background:#fff;border-right:1px solid #e0e0e0;bottom:0;left:0;overflow-y:auto;position:fixed;top:64px;width:250px;z-index:100}.sidebar-nav{display:flex;flex-direction:column;padding:1rem 0}.sidebar-item{align-items:center;border-left:3px solid #0000;color:var(--noir-charbon);display:flex;gap:1rem;padding:1rem 1.5rem;text-decoration:none;transition:all .2s}.sidebar-item:hover{background:#1919700d;border-left-color:var(--bleu-indigo)}.sidebar-item.active{background:#1919701a;border-left-color:var(--bleu-indigo);color:var(--bleu-indigo);font-weight:600}.sidebar-icon{font-size:1.25rem;text-align:center;width:24px}.sidebar-label{flex:1 1}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform .3s}.sidebar.open{transform:translateX(0)}}[data-theme=dark] .sidebar{background:#1e293b;border-right-color:#334155}[data-theme=dark] .sidebar-item{color:#e2e8f0}[data-theme=dark] .sidebar-item:hover{background:#6366f126;border-left-color:#818cf8;color:#f8fafc}[data-theme=dark] .sidebar-item.active{background:#6366f133;border-left-color:#818cf8;color:#a5b4fc}[data-theme=dark] .sidebar-icon,[data-theme=dark] .sidebar-label{color:inherit}.layout{background:var(--blanc-casse);display:flex;flex-direction:column;min-height:100vh}.layout-content{display:flex;flex:1 1;margin-top:64px}.layout-main{flex:1 1;overflow-y:auto;padding:2rem}.layout-main.with-sidebar{margin-left:250px}.layout-main.full-width{margin-left:0}@media (max-width:768px){.layout-main.with-sidebar{margin-left:0}.layout-content{flex-direction:column}}[data-theme=dark] .layout{background:#0f172a}:root{--color-primary:#0066b3;--color-primary-light:#1e88e5;--color-primary-dark:#004c8c;--color-secondary:#4caf50;--color-secondary-light:#66bb6a;--color-secondary-dark:#388e3c;--color-accent-gold:#ff9800;--color-accent-gold-dark:#f57c00;--color-accent-ocre:#ff9800;--color-accent-ocre-light:#ffb74d;--color-accent-terre:#e65100;--color-accent-terre-light:#ff6d00;--color-background:#fffbf5;--color-background-alt:#fff8f0;--color-surface-elevated:#fff;--color-text-primary:#1c1c1c;--color-text-secondary:#4a4a4a;--color-text-muted:#6b6b6b;--color-text-disabled:#9e9e9e;--color-text-inverse:#fff;--color-success:#228b22;--color-success-bg:#e8f5e9;--color-warning:#f9a825;--color-warning-bg:#fff8e1;--color-error:#c62828;--color-error-bg:#ffebee;--color-info:#1565c0;--color-info-bg:#e3f2fd;--color-border:#e0e0e0;--color-border-light:#f0f0f0;--color-border-focus:var(--color-primary);--color-primary-rgb:26,26,94;--color-secondary-rgb:34,139,34;--color-gold-rgb:255,215,0;--color-ocre-rgb:210,105,30;--color-terre-rgb:178,34,34;--font-primary:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-secondary:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","Fira Code","Consolas",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--tracking-tight:-0.025em;--tracking-normal:0;--tracking-wide:0.025em;--tracking-wider:0.05em;--tracking-widest:0.1em;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px;--header-height:72px;--sidebar-width:280px;--sidebar-width-collapsed:80px;--radius-none:0;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--border-width:1px;--border-width-2:2px;--border-width-3:3px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 2px 4px #0000000f;--shadow-md:0 4px 8px #00000014;--shadow-lg:0 8px 16px #0000001a;--shadow-xl:0 12px 24px #0000001f;--shadow-2xl:0 20px 40px #00000026;--shadow-primary:0 4px 14px rgba(var(--color-primary-rgb),0.25);--shadow-secondary:0 4px 14px rgba(var(--color-secondary-rgb),0.25);--shadow-gold:0 4px 14px rgba(var(--color-gold-rgb),0.3);--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--transition-slower:500ms ease;--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px;scroll-behavior:smooth}body{background-color:#fffbf5;color:#1c1c1c;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-secondary);font-size:1rem;font-size:var(--text-base);font-weight:400;font-weight:var(--font-normal);line-height:1.5;line-height:var(--leading-normal)}h1,h2,h3,h4,h5,h6{color:#1c1c1c;color:var(--color-text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);font-weight:700;font-weight:var(--font-bold);line-height:1.25;line-height:var(--leading-tight);margin-bottom:1rem;margin-bottom:var(--space-4)}h1{font-size:2.25rem;font-size:var(--text-4xl);letter-spacing:-.025em;letter-spacing:var(--tracking-tight)}h2{font-size:1.875rem;font-size:var(--text-3xl)}h3{font-size:1.5rem;font-size:var(--text-2xl)}h4{font-size:1.25rem;font-size:var(--text-xl)}h5{font-size:1.125rem;font-size:var(--text-lg)}h6{font-size:1rem;font-size:var(--text-base)}p{line-height:1.625;line-height:var(--leading-relaxed);margin-bottom:1rem;margin-bottom:var(--space-4)}a{color:#0066b3;color:var(--color-primary);text-decoration:none;transition:color .15s ease;transition:color var(--transition-fast)}a:hover{color:#1e88e5;color:var(--color-primary-light);text-decoration:underline}.btn{border:var(--border-width-2) solid #0000;border-radius:.75rem;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);font-weight:var(--font-semibold);line-height:1;padding:var(--space-3) var(--space-6);transition:all .25s ease;transition:all var(--transition-normal)}.btn:focus-visible{outline:3px solid #ff9800;outline:3px solid var(--color-accent-gold);outline-offset:2px}.btn:disabled{pointer-events:none}.btn-primary{background:linear-gradient(135deg,#0066b3,#004c8c);background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);box-shadow:0 4px 14px #1a1a5e40;box-shadow:var(--shadow-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:linear-gradient(135deg,#1e88e5,#0066b3);background:linear-gradient(135deg,var(--color-primary-light) 0,var(--color-primary) 100%);box-shadow:0 8px 16px #0000001a;box-shadow:var(--shadow-lg)}.btn-secondary{background:linear-gradient(135deg,#4caf50,#388e3c);background:linear-gradient(135deg,var(--color-secondary) 0,var(--color-secondary-dark) 100%);box-shadow:0 4px 14px #228b2240;box-shadow:var(--shadow-secondary);color:var(--color-text-inverse)}.btn-secondary:hover{background:linear-gradient(135deg,#66bb6a,#4caf50);background:linear-gradient(135deg,var(--color-secondary-light) 0,var(--color-secondary) 100%);transform:translateY(-2px)}.btn-accent{background:linear-gradient(135deg,#ff9800,#ff9800);background:linear-gradient(135deg,var(--color-accent-gold) 0,var(--color-accent-ocre) 100%);box-shadow:0 4px 14px #ffd7004d;box-shadow:var(--shadow-gold);color:#1c1c1c;color:var(--color-text-primary)}.btn-accent:hover{box-shadow:0 12px 24px #0000001f;box-shadow:var(--shadow-xl);transform:translateY(-2px)}.btn-outline{border-color:#0066b3;border-color:var(--color-primary);color:#0066b3;color:var(--color-primary)}.btn-outline:hover{background:#0066b3;background:var(--color-primary);color:var(--color-text-inverse)}.btn-ghost{color:#1c1c1c;color:var(--color-text-primary)}.btn-ghost:hover{background:#1a1a5e1a;background:rgba(var(--color-primary-rgb),.1)}.btn-danger{background:linear-gradient(135deg,#c62828,#8b0000);background:linear-gradient(135deg,var(--color-error) 0,#8b0000 100%);color:var(--color-text-inverse)}.btn-danger:hover{box-shadow:0 4px 14px #c628284d;transform:translateY(-2px)}.btn-xs{font-size:.75rem;font-size:var(--text-xs);padding:.25rem .75rem;padding:var(--space-1) var(--space-3)}.btn-sm{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.btn-lg{font-size:1.125rem;font-size:var(--text-lg);padding:var(--space-4) var(--space-8)}.btn-xl{font-size:1.25rem;font-size:var(--text-xl);padding:1.25rem 2.5rem;padding:var(--space-5) var(--space-10)}.btn-icon{aspect-ratio:1;padding:.75rem;padding:var(--space-3)}.card{background:#fff;background:var(--color-surface);border-radius:1rem;border-radius:var(--radius-xl);box-shadow:0 4px 8px #00000014;box-shadow:var(--shadow-md);overflow:hidden;transition:all .25s ease;transition:all var(--transition-normal)}.card:hover{box-shadow:0 8px 16px #0000001a;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-header{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light)}.card-body,.card-header{padding:1.5rem;padding:var(--space-6)}.card-footer{background:#fff8f0;background:var(--color-background-alt);border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-light);padding:1rem 1.5rem;padding:var(--space-4) var(--space-6)}.card-bordered{border:2px solid #e0e0e0;border:var(--border-width-2) solid var(--color-border);box-shadow:none}.card-elevated{box-shadow:0 12px 24px #0000001f;box-shadow:var(--shadow-xl)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:#0066b3;border-color:var(--color-primary)}.card-primary{border-left:4px solid #0066b3;border-left:4px solid var(--color-primary)}.card-secondary{border-left:4px solid #4caf50;border-left:4px solid var(--color-secondary)}.card-accent{border-left:4px solid #ff9800;border-left:4px solid var(--color-accent-gold)}.card-success{background:#e8f5e9;background:var(--color-success-bg);border-left:4px solid #228b22;border-left:4px solid var(--color-success)}.card-warning{background:#fff8e1;background:var(--color-warning-bg);border-left:4px solid #f9a825;border-left:4px solid var(--color-warning)}.card-error{background:#ffebee;background:var(--color-error-bg);border-left:4px solid #c62828;border-left:4px solid var(--color-error)}.form-group{margin-bottom:1.5rem;margin-bottom:var(--space-6)}.form-label{color:#1c1c1c;display:block;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;font-weight:600;margin-bottom:.5rem;margin-bottom:var(--space-2)}.form-label-required:after{color:#c62828;color:var(--color-error);content:" *"}.form-input,.form-select,.form-textarea{background:var(--color-surface);border:2px solid #e0e0e0;border:var(--border-width-2) solid var(--color-border);border-radius:.75rem;color:#1c1c1c;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-secondary);font-size:1rem;transition:all .15s ease}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:#6b6b6b;border-color:var(--color-text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#0066b3;box-shadow:0 0 0 3px #1a1a5e26;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.15)}.form-input::placeholder{color:var(--color-text-disabled)}.form-input-error{border-color:#c62828;border-color:var(--color-error)}.form-input-error:focus{box-shadow:0 0 0 3px #c6282826}.form-input-success{border-color:#228b22;border-color:var(--color-success)}.form-error{color:var(--color-error);font-size:.875rem;font-size:var(--text-sm);gap:.5rem;gap:var(--space-2)}.form-error,.form-hint{margin-top:.5rem;margin-top:var(--space-2)}.form-hint{color:#6b6b6b;font-size:.875rem}.form-input-wrapper{position:relative}.form-input-icon{color:#6b6b6b;color:var(--color-text-muted);left:1rem;left:var(--space-4);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.form-input-wrapper .form-input{padding-left:3rem;padding-left:var(--space-12)}.form-input-toggle{background:none;border:none;color:#6b6b6b;color:var(--color-text-muted);cursor:pointer;padding:.5rem;padding:var(--space-2);position:absolute;right:1rem;right:var(--space-4);top:50%;transform:translateY(-50%)}.form-input-toggle:hover{color:#0066b3;color:var(--color-primary)}.form-checkbox,.form-radio{align-items:center;cursor:pointer;display:flex;gap:.75rem;gap:var(--space-3)}.form-checkbox input,.form-radio input{accent-color:#0066b3;accent-color:var(--color-primary);cursor:pointer;height:20px;width:20px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-4);z-index:400;z-index:var(--z-modal-backdrop)}.modal{animation:slideUp .3s cubic-bezier(0,0,.2,1);animation:slideUp .3s var(--ease-out);background:var(--color-surface);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 20px 40px #00000026;box-shadow:var(--shadow-2xl);z-index:500;z-index:var(--z-modal)}.modal-sm{max-width:400px}.modal-lg{max-width:700px}.modal-xl{max-width:900px}.modal-full{max-width:calc(100vw - 2rem);max-width:calc(100vw - var(--space-8))}.modal-header{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light);padding:var(--space-6)}.modal-title{color:#1c1c1c;color:var(--color-text-primary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);font-size:1.25rem;font-size:var(--text-xl);font-weight:700;font-weight:var(--font-bold);margin:0}.modal-close{border-radius:9999px;border-radius:var(--radius-full);color:#6b6b6b;color:var(--color-text-muted);height:40px;transition:all .15s ease;transition:all var(--transition-fast);width:40px}.modal-close:hover{background:#fff8f0;background:var(--color-background-alt);color:#1c1c1c}.modal-body{max-height:calc(90vh - 140px);overflow-y:auto;padding:var(--space-6)}.modal-footer{align-items:center;background:#fff8f0;background:var(--color-background-alt);border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-light);gap:var(--space-3);padding:var(--space-4) var(--space-6)}.badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);gap:.25rem;gap:var(--space-1);line-height:1.4;padding:var(--space-1) var(--space-3);white-space:nowrap}.badge-primary{background:#1a1a5e26;background:rgba(var(--color-primary-rgb),.15);color:#0066b3;color:var(--color-primary)}.badge-secondary{background:#228b2226;background:rgba(var(--color-secondary-rgb),.15);color:#4caf50;color:var(--color-secondary)}.badge-success{background:#e8f5e9;background:var(--color-success-bg);color:#228b22;color:var(--color-success)}.badge-warning{background:#fff8e1;background:var(--color-warning-bg);color:#b8860b}.badge-error{background:#ffebee;background:var(--color-error-bg);color:#c62828;color:var(--color-error)}.badge-info{background:#e3f2fd;background:var(--color-info-bg);color:#1565c0;color:var(--color-info)}.badge-gold{background:linear-gradient(135deg,#ff9800,#ff9800);background:linear-gradient(135deg,var(--color-accent-gold),var(--color-accent-ocre));color:#1c1c1c;color:var(--color-text-primary)}.tag{align-items:center;background:#fff8f0;background:var(--color-background-alt);border:1px solid #e0e0e0;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius-md);display:inline-flex;font-size:.875rem;font-size:var(--text-sm);font-weight:var(--font-medium);gap:.5rem;gap:var(--space-2);padding:.5rem 1rem;padding:var(--space-2) var(--space-4)}.tag-removable,.tag-remove{cursor:pointer}.tag-remove{align-items:center;background:none;border:none;border-radius:9999px;border-radius:var(--radius-full);color:#6b6b6b;color:var(--color-text-muted);display:flex;font-size:.75rem;font-size:var(--text-xs);height:16px;justify-content:center;width:16px}.tag-remove:hover{background:#e0e0e0;background:var(--color-border);color:#1c1c1c;color:var(--color-text-primary)}.table-container{border-radius:1rem;box-shadow:0 2px 4px #0000000f;overflow-x:auto}.table{background:#fff;background:var(--color-surface);border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light);padding:1rem 1.25rem;padding:var(--space-4) var(--space-5);text-align:left}.table th{background:#fff8f0;background:var(--color-background-alt);color:#4a4a4a;color:var(--color-text-secondary);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);font-size:.875rem;font-size:var(--text-sm);font-weight:600;font-weight:var(--font-semibold);letter-spacing:.025em;letter-spacing:var(--tracking-wide);text-transform:uppercase}.table tbody tr:hover{background:#1a1a5e08;background:rgba(var(--color-primary-rgb),.03)}.table tbody tr:last-child td{border-bottom:none}.table-striped tbody tr:nth-child(2n){background:#fff8f0;background:var(--color-background-alt)}.avatar{background:linear-gradient(135deg,#0066b3,#4caf50);background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);border-radius:9999px;border-radius:var(--radius-full);color:#fff;color:var(--color-text-inverse);display:inline-flex;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-primary);font-weight:700;font-weight:var(--font-bold)}.avatar-xs{font-size:.75rem;font-size:var(--text-xs);height:24px;width:24px}.avatar-sm{font-size:.875rem;font-size:var(--text-sm);height:32px;width:32px}.avatar-md{font-size:1rem;font-size:var(--text-base);height:40px;width:40px}.avatar-lg{font-size:1.125rem;font-size:var(--text-lg);height:48px;width:48px}.avatar-xl{font-size:1.25rem;font-size:var(--text-xl);height:64px;width:64px}.avatar-2xl{font-size:1.875rem;font-size:var(--text-3xl);height:96px;width:96px}.avatar-group{display:flex}.avatar-group .avatar{border:2px solid #fff;border:2px solid var(--color-surface);margin-left:-8px}.avatar-group .avatar:first-child{margin-left:0}.nav{display:flex;gap:.5rem;gap:var(--space-2)}.nav-item{border-radius:.75rem;color:#4a4a4a;color:var(--color-text-secondary);font-size:.875rem;font-size:var(--text-sm);font-weight:500;font-weight:var(--font-medium);gap:.75rem;padding:.75rem 1.25rem;padding:var(--space-3) var(--space-5);text-decoration:none;transition:all .15s ease}.nav-item:hover{background:#1a1a5e14;background:rgba(var(--color-primary-rgb),.08);color:#0066b3;color:var(--color-primary)}.nav-item.active{background:#1a1a5e1f;background:rgba(var(--color-primary-rgb),.12);color:#0066b3;font-weight:600;font-weight:var(--font-semibold)}.dropdown{position:relative}.dropdown-menu{animation:fadeIn .15s ease-out;background:#fff;background:var(--color-surface);border-radius:1rem;border-radius:var(--radius-xl);box-shadow:0 12px 24px #0000001f;box-shadow:var(--shadow-xl);min-width:200px;padding:.5rem;padding:var(--space-2);position:absolute;right:0;top:100%;z-index:100;z-index:var(--z-dropdown)}.dropdown-item{align-items:center;background:none;border:none;border-radius:.5rem;border-radius:var(--radius-md);color:#1c1c1c;color:var(--color-text-primary);cursor:pointer;display:flex;font-size:.875rem;font-size:var(--text-sm);gap:.75rem;gap:var(--space-3);padding:.75rem 1rem;padding:var(--space-3) var(--space-4);text-align:left;text-decoration:none;transition:background .15s ease;transition:background var(--transition-fast);width:100%}.dropdown-item:hover{background:#fff8f0;background:var(--color-background-alt)}.dropdown-item-danger{color:#c62828;color:var(--color-error)}.dropdown-item-danger:hover{background:#ffebee;background:var(--color-error-bg)}.dropdown-divider{background:#f0f0f0;background:var(--color-border-light);height:1px;margin:.5rem 0;margin:var(--space-2) 0}.spinner{border-top-color:#0066b3;border:3px solid var(--color-border);border-radius:9999px;border-radius:var(--radius-full);border-top-color:var(--color-primary)}.spinner-sm{border-width:2px;height:16px;width:16px}.spinner-md{height:24px;width:24px}.spinner-lg{border-width:4px;height:40px;width:40px}.spinner-xl{border-width:5px;height:56px;width:56px}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-border) 50%,var(--color-border-light) 75%);background-size:200% 100%;border-radius:.5rem;border-radius:var(--radius-md)}.skeleton-text{height:1em;margin-bottom:.5rem;margin-bottom:var(--space-2)}.skeleton-title{height:1.5em;width:60%}.skeleton-avatar{border-radius:9999px;border-radius:var(--radius-full)}.skeleton-card{height:200px}.toast-container{bottom:1.5rem;bottom:var(--space-6);flex-direction:column;position:fixed;right:1.5rem;right:var(--space-6);z-index:800;z-index:var(--z-toast)}.toast,.toast-container{display:flex;gap:.75rem;gap:var(--space-3)}.toast{align-items:flex-start;animation:slideInRight .3s cubic-bezier(0,0,.2,1);animation:slideInRight .3s var(--ease-out);background:#fff;background:var(--color-surface);border-radius:1rem;border-radius:var(--radius-xl);box-shadow:0 12px 24px #0000001f;box-shadow:var(--shadow-xl);max-width:450px;min-width:300px;padding:1rem 1.25rem;padding:var(--space-4) var(--space-5)}.toast-icon{flex-shrink:0;height:24px;width:24px}.toast-content{flex:1 1}.toast-title{font-weight:600;font-weight:var(--font-semibold);margin-bottom:.25rem;margin-bottom:var(--space-1)}.toast-message{color:#4a4a4a;color:var(--color-text-secondary);font-size:.875rem;font-size:var(--text-sm)}.toast-close{background:none;border:none;border-radius:.5rem;border-radius:var(--radius-md);color:#6b6b6b;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;padding:.25rem;padding:var(--space-1)}.toast-close:hover{background:#fff8f0;background:var(--color-background-alt)}.toast-success{border-left:4px solid #228b22;border-left:4px solid var(--color-success)}.toast-warning{border-left:4px solid #f9a825;border-left:4px solid var(--color-warning)}.toast-error{border-left:4px solid #c62828;border-left:4px solid var(--color-error)}.toast-info{border-left:4px solid #1565c0;border-left:4px solid var(--color-info)}.hidden{display:none!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1}.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-1{gap:.25rem;gap:var(--space-1)}.gap-2{gap:.5rem;gap:var(--space-2)}.gap-3{gap:.75rem;gap:var(--space-3)}.gap-4{gap:1rem;gap:var(--space-4)}.gap-6{gap:1.5rem;gap:var(--space-6)}.gap-8{gap:2rem;gap:var(--space-8)}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:1rem;margin-top:var(--space-4)}.mt-6{margin-top:1.5rem;margin-top:var(--space-6)}.mt-8{margin-top:2rem;margin-top:var(--space-8)}.mb-4{margin-bottom:1rem;margin-bottom:var(--space-4)}.mb-6{margin-bottom:1.5rem;margin-bottom:var(--space-6)}.mb-8{margin-bottom:2rem;margin-bottom:var(--space-8)}.p-4{padding:1rem;padding:var(--space-4)}.p-6{padding:1.5rem;padding:var(--space-6)}.p-8{padding:2rem;padding:var(--space-8)}.px-4{padding-left:1rem;padding-left:var(--space-4);padding-right:1rem;padding-right:var(--space-4)}.py-4{padding-bottom:1rem;padding-bottom:var(--space-4);padding-top:1rem;padding-top:var(--space-4)}.text-left{text-align:left}.text-right{text-align:right}.text-sm{font-size:.875rem;font-size:var(--text-sm)}.text-lg{font-size:1.125rem;font-size:var(--text-lg)}.text-xl{font-size:1.25rem;font-size:var(--text-xl)}.font-medium{font-weight:500;font-weight:var(--font-medium)}.font-semibold{font-weight:600;font-weight:var(--font-semibold)}.font-bold{font-weight:700;font-weight:var(--font-bold)}.text-muted{color:#6b6b6b;color:var(--color-text-muted)}.text-primary{color:#0066b3;color:var(--color-primary)}.text-secondary{color:#4caf50;color:var(--color-secondary)}.text-success{color:#228b22;color:var(--color-success)}.text-warning{color:#f9a825;color:var(--color-warning)}.text-error{color:#c62828;color:var(--color-error)}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.rounded{border-radius:.5rem;border-radius:var(--radius-md)}.rounded-lg{border-radius:.75rem;border-radius:var(--radius-lg)}.rounded-xl{border-radius:1rem;border-radius:var(--radius-xl)}.rounded-full{border-radius:9999px;border-radius:var(--radius-full)}.shadow-sm{box-shadow:0 2px 4px #0000000f;box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:0 4px 8px #00000014;box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:0 8px 16px #0000001a;box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:0 12px 24px #0000001f;box-shadow:var(--shadow-xl)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.transition{transition:all .25s ease;transition:all var(--transition-normal)}.transition-fast{transition:all .15s ease;transition:all var(--transition-fast)}@media (min-width:640px){.container{max-width:640px;max-width:var(--container-sm)}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.container{max-width:768px;max-width:var(--container-md)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.container{max-width:1024px;max-width:var(--container-lg)}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media (min-width:1280px){.container{max-width:1280px;max-width:var(--container-xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}}:focus-visible{outline:3px solid #ff9800;outline:3px solid var(--color-accent-gold);outline-offset:2px}.skip-link{background:#0066b3;border-radius:.5rem;border-radius:var(--radius-md);color:#fff;padding:.75rem 1.5rem;transition:top .15s ease}.skip-link:focus{top:1rem}@media (prefers-contrast:high){:root{--color-border:#000;--color-text-muted:#333}}@media print{*,:after,:before{background:#0000!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}.no-print{display:none!important}.page-break{page-break-after:always}}.african-pattern{position:relative}.african-pattern:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 20px,#ffd70008 0,#ffd70008 40px),repeating-linear-gradient(-45deg,#0000,#0000 20px,#228b2208 0,#228b2208 40px);background-image:repeating-linear-gradient(45deg,#0000,#0000 20px,rgba(var(--color-gold-rgb),.03) 20px,rgba(var(--color-gold-rgb),.03) 40px),repeating-linear-gradient(-45deg,#0000,#0000 20px,rgba(var(--color-secondary-rgb),.03) 20px,rgba(var(--color-secondary-rgb),.03) 40px);content:"";inset:0;pointer-events:none;position:absolute;z-index:0}.african-border{border-image:linear-gradient(90deg,#ff9800,#ff9800,#e65100,#0066b3) 1;border-image:linear-gradient(90deg,var(--color-accent-gold),var(--color-accent-ocre),var(--color-accent-terre),var(--color-primary)) 1}.gradient-text-african{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#0066b3,#4caf50 50%,#ff9800);background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 50%,var(--color-accent-gold) 100%);-webkit-background-clip:text;background-clip:text}.homepage{background:linear-gradient(180deg,var(--color-background) 0,#fff5e6 50%,var(--color-background) 100%);min-height:100vh;opacity:0;overflow-x:hidden;position:relative;transition:opacity .5s ease}.homepage.visible{opacity:1}.floating-decoration{border-radius:50%;opacity:.4;pointer-events:none;position:fixed;z-index:0}.decoration-1{animation:float 20s ease-in-out infinite;background:radial-gradient(circle,rgba(var(--color-gold-rgb),.15) 0,#0000 70%);height:400px;right:-100px;top:-100px;width:400px}.decoration-2{animation:float 25s ease-in-out infinite reverse;background:radial-gradient(circle,rgba(var(--color-secondary-rgb),.12) 0,#0000 70%);bottom:20%;height:300px;left:-80px;width:300px}.decoration-3{animation:float 18s ease-in-out 2s infinite;background:radial-gradient(circle,rgba(var(--color-primary-rgb),.1) 0,#0000 70%);height:250px;right:5%;top:40%;width:250px}.skip-link{background:var(--color-primary);border-radius:var(--radius-lg);color:var(--color-text-inverse);font-weight:var(--font-semibold);left:50%;padding:var(--space-3) var(--space-6);position:absolute;text-decoration:none;top:-100px;transform:translateX(-50%);transition:top var(--transition-fast);z-index:9999}.skip-link:focus{outline:3px solid var(--color-accent-gold);outline-offset:2px;top:var(--space-4)}.homepage-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid var(--color-border-light);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky)}.header-top{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:var(--container-xl);padding:var(--space-4) var(--space-6)}.logo{gap:var(--space-3);transition:transform var(--transition-fast)}.logo:hover{transform:scale(1.02)}.logo-icon{font-size:2rem}.logo-image{filter:drop-shadow(0 2px 8px rgba(0,102,179,.2));height:50px;width:auto}.logo-text{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.header-actions{gap:var(--space-4)}.proverb-banner{background:linear-gradient(135deg,var(--color-primary) 0,#004c8c 100%);overflow:hidden;padding:var(--space-4) var(--space-6);position:relative;text-align:center}.proverb-banner:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 10px,#ffffff05 0,#ffffff05 20px);content:"";inset:0;pointer-events:none;position:absolute}.proverb-content{align-items:center;display:flex;flex-direction:column;gap:var(--space-2);margin:0 auto;max-width:var(--container-lg);position:relative;z-index:1}.proverb-icon{animation:pulse 2s infinite;font-size:var(--text-xl)}.proverb-text{animation:fadeIn .5s ease;color:var(--color-text-inverse);font-family:var(--font-primary);font-size:var(--text-lg);font-style:italic;font-weight:var(--font-medium);margin:0}.proverb-origin{color:#ffffffb3;font-size:var(--text-sm);font-style:normal}.proverb-dots{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.proverb-dot{background:#ffffff4d;border:none;border-radius:var(--radius-full);cursor:pointer;height:8px;padding:0;transition:all var(--transition-fast);width:8px}.proverb-dot:hover{background:#ffffff80}.proverb-dot.active{background:var(--color-accent-gold);transform:scale(1.3)}.hero-section{grid-gap:var(--space-12);align-items:center;display:grid;gap:var(--space-12);grid-template-columns:1fr 1fr;margin:0 auto;max-width:var(--container-xl);min-height:80vh;padding:var(--space-16) var(--space-6)}.hero-content{animation:slideUp .8s ease-out}.hero-logo-wrapper{display:none;margin-bottom:var(--space-6);text-align:center}.hero-logo{filter:drop-shadow(0 4px 20px rgba(0,102,179,.3));max-width:180px}.hero-logo,.hero-logo-large{animation:float 6s ease-in-out infinite;height:auto}.hero-logo-large{filter:drop-shadow(0 8px 40px rgba(0,102,179,.4));width:280px}.hero-logo-large,.hero-title{margin-bottom:var(--space-4)}.hero-title-line{color:var(--color-text-secondary);display:block;font-size:var(--text-xl);font-weight:var(--font-medium);margin-bottom:var(--space-2)}.hero-title-brand{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#0066b3,#4caf50 50%,#ff9800);-webkit-background-clip:text;background-clip:text;display:block;font-size:var(--text-6xl);font-weight:var(--font-bold);line-height:1.1}.hero-tagline{color:var(--color-secondary);font-size:var(--text-2xl);font-weight:var(--font-semibold);margin-bottom:var(--space-4)}.hero-description{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:var(--leading-relaxed);margin-bottom:var(--space-8);max-width:540px}.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-4)}.hero-illustration{align-items:center;animation:fadeIn 1s ease-out .3s both;display:flex;justify-content:center}.hero-image-container{border-radius:var(--radius-2xl);box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0066b31a;max-width:520px;overflow:hidden;position:relative;width:100%}.hero-image{display:block;height:420px;object-fit:cover;transition:transform .6s ease;width:100%}.hero-image-container:hover .hero-image{transform:scale(1.03)}.hero-image-overlay{background:linear-gradient(180deg,#0000 50%,#0066b34d);inset:0;pointer-events:none;position:absolute}.hero-image-badge{align-items:center;animation:slideUp .8s ease-out .8s both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:var(--radius-xl);bottom:20px;box-shadow:var(--shadow-lg);display:flex;gap:8px;left:20px;padding:10px 18px;position:absolute}.hero-badge-icon{font-size:1.5rem}.hero-badge-text{color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-bold)}.stats-section{background:linear-gradient(135deg,var(--color-primary) 0,#2d2d7a 100%);margin:var(--space-8) 0;opacity:0;overflow:hidden;padding:var(--space-12) var(--space-6);position:relative;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.stats-section.visible{opacity:1;transform:translateY(0)}.stats-section:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 15px,#ffffff05 0,#ffffff05 30px);content:"";inset:0;pointer-events:none;position:absolute}.stats-grid{grid-gap:var(--space-8);gap:var(--space-8);margin:0 auto;max-width:var(--container-xl);position:relative;z-index:1}.stat-card{animation:slideUp .6s ease-out both;background:#ffffff1a;padding:var(--space-6);transition:transform var(--transition-normal)}.stat-card:hover{background:#ffffff26;transform:translateY(-5px)}.stat-icon{display:block;font-size:2.5rem;margin-bottom:var(--space-2)}.stat-value{color:var(--color-accent-gold);font-family:var(--font-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-1)}.stat-label{color:#fffc;letter-spacing:var(--tracking-wide)}.access-section{margin:0 auto;max-width:var(--container-xl);padding:var(--space-16) var(--space-6)}.section-header{margin-bottom:var(--space-12);text-align:center}.section-badge{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-full);color:var(--color-primary);display:inline-block;font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4);text-transform:uppercase}.section-title{font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-4)}.section-subtitle{color:var(--color-text-muted);font-size:var(--text-lg);margin:0 auto;max-width:600px}.access-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(2,1fr);margin:0 auto;max-width:900px}.access-card{align-items:center;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;display:flex;gap:var(--space-5);overflow:hidden;padding:var(--space-6);position:relative;text-align:left;transition:all var(--transition-normal)}.access-card:before{background:var(--card-gradient);content:"";inset:0;opacity:0;position:absolute;transition:opacity var(--transition-normal)}.access-card:hover{border-color:#0000;box-shadow:var(--shadow-xl);transform:translateY(-4px)}.access-card:hover:before{opacity:1}.access-card:hover .access-card-arrow,.access-card:hover .access-card-desc,.access-card:hover .access-card-icon,.access-card:hover .access-card-title{color:var(--color-text-inverse)}.access-card-icon{font-size:3rem;position:relative;transition:color var(--transition-normal);z-index:1}.access-card-content{flex:1 1;position:relative;z-index:1}.access-card-title{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-bold);margin:0 0 var(--space-1) 0}.access-card-desc,.access-card-title{transition:color var(--transition-normal)}.access-card-desc{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.access-card-arrow{color:var(--color-text-muted);position:relative;transition:all var(--transition-normal);z-index:1}.access-card:hover .access-card-arrow{transform:translateX(5px)}.features-section{background:var(--color-background-alt);border-radius:var(--radius-2xl);margin:0 auto;margin-bottom:var(--space-8);max-width:var(--container-xl);opacity:0;padding:var(--space-16) var(--space-6);transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.features-section.visible{opacity:1;transform:translateY(0)}.features-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(3,1fr)}.feature-card{animation:slideUp .6s ease-out both;background:var(--color-surface);border:2px solid #0000;border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;transition:all var(--transition-normal)}.feature-card:hover{border-color:var(--feature-color);box-shadow:var(--shadow-xl);transform:translateY(-8px)}.feature-icon-wrapper{align-items:center;background:linear-gradient(135deg,var(--feature-color),#0000);border-radius:var(--radius-xl);display:flex;height:80px;justify-content:center;margin:0 auto var(--space-5);transition:transform var(--transition-normal);width:80px}.feature-card:hover .feature-icon-wrapper{transform:scale(1.1) rotate(5deg)}.feature-icon{font-size:2.5rem}.feature-title{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-bold);margin-bottom:var(--space-3)}.feature-desc{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.testimonials-section{margin:0 auto;max-width:var(--container-xl);opacity:0;padding:var(--space-16) var(--space-6);transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.testimonials-section.visible{opacity:1;transform:translateY(0)}.testimonials-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(3,1fr)}.testimonial-card{animation:slideUp .6s ease-out both;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-8);position:relative;transition:all var(--transition-normal)}.testimonial-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-5px)}.testimonial-quote-icon{color:var(--color-accent-gold);font-family:Georgia,serif;font-size:4rem;left:var(--space-6);line-height:1;opacity:.3;position:absolute;top:var(--space-4)}.testimonial-quote{color:var(--color-text-secondary);font-size:var(--text-base);font-style:italic;line-height:var(--leading-relaxed);margin:0 0 var(--space-6) 0;padding-top:var(--space-8)}.testimonial-author{align-items:center;border-top:1px solid var(--color-border-light);display:flex;gap:var(--space-4);padding-top:var(--space-4)}.testimonial-avatar-img{border:3px solid var(--color-accent-gold);border-radius:var(--radius-full);flex-shrink:0;height:56px;object-fit:cover;width:56px}.testimonial-avatar{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);border-radius:var(--radius-full);color:var(--color-text-inverse);display:flex;flex-shrink:0;font-size:var(--text-sm);font-weight:var(--font-bold);height:56px;justify-content:center;width:56px}.testimonial-info{display:flex;flex-direction:column}.testimonial-name{color:var(--color-text-primary);font-style:normal;font-weight:var(--font-bold)}.testimonial-role{color:var(--color-primary);font-size:var(--text-sm)}.testimonial-location{color:var(--color-text-muted);font-size:var(--text-xs)}.trust-section{margin:0 auto;max-width:var(--container-xl);padding:var(--space-12) var(--space-6);text-align:center}.trust-badges{display:flex;flex-wrap:wrap;gap:var(--space-8);justify-content:center;margin-bottom:var(--space-10)}.trust-badge{align-items:center;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-6);transition:all var(--transition-normal)}.trust-badge:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.trust-icon{font-size:var(--text-2xl)}.trust-text{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.partners-row{border-top:1px solid var(--color-border-light);padding-top:var(--space-8)}.partners-label{color:var(--color-text-muted);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-6);text-transform:uppercase}.partners-logos{display:flex;flex-wrap:wrap;gap:var(--space-10);justify-content:center}.partner-logo{align-items:center;display:flex;flex-direction:column;gap:var(--space-2);opacity:.6;transition:opacity var(--transition-normal)}.partner-logo:hover{opacity:1}.partner-logo span:first-child{font-size:2.5rem}.partner-name{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--font-medium)}.cta-section{background:linear-gradient(135deg,var(--color-accent-gold) 0,var(--color-accent-ocre) 100%);border-radius:var(--radius-2xl);margin:var(--space-8) var(--space-6);opacity:0;overflow:hidden;padding:var(--space-16) var(--space-6);position:relative;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.cta-section.visible{opacity:1;transform:translateY(0)}.cta-section:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 20px,#ffffff0d 0,#ffffff0d 40px);content:"";inset:0;pointer-events:none;position:absolute}.cta-content{margin:0 auto;max-width:700px;position:relative;text-align:center;z-index:1}.cta-title{color:var(--color-text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-4)}.cta-description{color:#000000b3;font-size:var(--text-lg);margin-bottom:var(--space-8)}.cta-buttons{flex-wrap:wrap;gap:var(--space-4)}.cta-section .btn-accent{background:var(--color-primary);color:var(--color-text-inverse)}.cta-section .btn-accent:hover{background:var(--color-primary-dark)}.cta-section .btn-ghost{border:2px solid var(--color-text-primary);color:var(--color-text-primary)}.cta-section .btn-ghost:hover{background:var(--color-text-primary);color:var(--color-accent-gold)}.homepage-footer{background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-16) var(--space-6) var(--space-8)}.footer-content{grid-gap:var(--space-12);border-bottom:1px solid #ffffff1a;display:grid;gap:var(--space-12);grid-template-columns:1fr 2fr;margin:0 auto;max-width:var(--container-xl);padding-bottom:var(--space-12)}.footer-brand{max-width:300px}.footer-logo{align-items:center;color:var(--color-text-inverse);display:flex;font-size:var(--text-2xl);font-weight:var(--font-bold);gap:var(--space-3);margin-bottom:var(--space-4);text-decoration:none}.footer-logo span:first-child{font-size:2rem}.footer-tagline{color:#ffffffb3;font-size:var(--text-sm)}.footer-links{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:repeat(3,1fr)}.footer-column h3{color:var(--color-accent-gold);font-size:var(--text-sm);font-weight:var(--font-bold);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4);text-transform:uppercase}.footer-column ul{list-style:none;margin:0;padding:0}.footer-column li{margin-bottom:var(--space-2)}.footer-column a{color:#ffffffb3;font-size:var(--text-sm);text-decoration:none;transition:color var(--transition-fast)}.footer-column a:hover{color:var(--color-text-inverse)}.footer-bottom{color:#fff9;font-size:var(--text-sm);justify-content:space-between;margin:0 auto;max-width:var(--container-xl);padding-top:var(--space-8)}.footer-bottom,.footer-made{align-items:center;display:flex}.footer-made{gap:var(--space-2)}.schools-gallery-section{margin:0 auto;max-width:var(--container-xl);padding:var(--space-16) var(--space-6)}.schools-gallery-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr;grid-template-rows:280px 220px}.gallery-card{border-radius:var(--radius-xl);cursor:pointer;overflow:hidden;position:relative}.gallery-card img{height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.gallery-card:hover img{transform:scale(1.08)}.gallery-card-overlay{align-items:flex-end;background:linear-gradient(180deg,#0000 40%,#0009);display:flex;inset:0;padding:var(--space-5);position:absolute;transition:background .3s ease}.gallery-card:hover .gallery-card-overlay{background:linear-gradient(180deg,#0000 20%,#0066b3b3)}.gallery-card-label{color:#fff;font-size:var(--text-lg);font-weight:var(--font-bold);text-shadow:0 2px 8px #0000004d}.gallery-card-large{grid-row:1/3}.gallery-card-large img{height:100%}@media (max-width:1024px){.hero-section{grid-template-columns:1fr;min-height:auto;padding:var(--space-12) var(--space-6);text-align:center}.hero-content{margin:0 auto;max-width:600px}.hero-description{margin-left:auto;margin-right:auto}.hero-cta{justify-content:center}.hero-illustration{margin-bottom:var(--space-8);order:-1}.hero-image-container{margin:0 auto;max-width:500px}.hero-image{height:320px}.schools-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:200px 180px}.gallery-card-large{grid-column:1/3;grid-row:1/2}.features-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.testimonials-grid{grid-template-columns:1fr;margin:0 auto;max-width:600px}.footer-content{grid-template-columns:1fr;text-align:center}.footer-brand{max-width:none}.footer-logo{justify-content:center}.footer-links{justify-items:center}}@media (max-width:768px){.hero-title-brand{font-size:var(--text-4xl)}.section-title{font-size:var(--text-3xl)}.access-grid,.features-grid{grid-template-columns:1fr}.features-grid{margin:0 auto;max-width:400px}.stats-grid{gap:var(--space-4);grid-template-columns:1fr 1fr}.trust-badges{align-items:center;flex-direction:column}.cta-title{font-size:var(--text-3xl)}.footer-links{gap:var(--space-6);grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:var(--space-4);text-align:center}}@media (max-width:480px){.header-top{padding:var(--space-3) var(--space-4)}.logo-text{font-size:var(--text-xl)}.hero-title-line,.proverb-text{font-size:var(--text-base)}.hero-title-brand{font-size:var(--text-3xl)}.hero-tagline{font-size:var(--text-lg)}.hero-description{font-size:var(--text-base)}.hero-cta{flex-direction:column}.hero-cta .btn{width:100%}.stat-value{font-size:var(--text-3xl)}.access-card{padding:var(--space-4)}.access-card-icon{font-size:2rem}.feature-card,.testimonial-card{padding:var(--space-6)}.cta-section{margin:var(--space-4);padding:var(--space-10) var(--space-4)}.cta-title{font-size:var(--text-2xl)}.cta-buttons{flex-direction:column}.cta-buttons .btn{width:100%}.partners-logos{gap:var(--space-6)}.schools-gallery-grid{grid-template-columns:1fr;grid-template-rows:auto}.gallery-card{height:200px}.gallery-card-large{grid-column:auto;grid-row:auto;height:240px}.hero-image{height:260px}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (prefers-reduced-motion:reduce){.access-card,.cta-section,.feature-card,.features-section,.floating-decoration,.homepage,.illustration-circle,.line,.proverb-dot,.school-icon,.stat-card,.stats-section,.testimonial-card,.testimonials-section,.trust-badge{animation:none!important;transition:opacity .3s ease!important}.cta-section.visible,.features-section.visible,.homepage.visible,.stats-section.visible,.testimonials-section.visible{opacity:1;transform:none!important}}.access-card,.feature-card,.stat-card,.testimonial-card{will-change:transform}.homepage{contain:layout style paint}img[loading=lazy]{content-visibility:auto}.language-selector{position:relative;z-index:1000}.selector-button{align-items:center;background:#fff;border:2px solid #d4a574;border-radius:25px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;min-width:200px;padding:.5rem 1rem;transition:all .3s ease}.selector-button:hover{border-color:#c9a961;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.selector-button .country-code-badge{background:#1a237e;border-radius:6px;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .5rem}.selector-button .country-name{color:#1a237e;font-weight:600}.selector-button .language{color:#2e7d32;margin-left:auto}.selector-button .arrow{color:#c9a961;font-size:.8rem;transition:transform .3s ease}.selector-button .arrow.open{transform:rotate(180deg)}.dropdown-content{animation:slideDown .3s ease;background:#fff;border:2px solid #d4a574;border:2px solid var(--or,#d4a574);border-radius:20px;box-shadow:0 10px 30px #0003;max-height:500px;min-width:450px;overflow-y:auto;padding:1.5rem;position:absolute;right:0;top:calc(100% + 10px)}.dropdown-content h3{border-bottom:2px solid #d4a574;color:#1a237e;font-size:1rem;margin-bottom:1rem;padding-bottom:.5rem;text-align:center}.countries-section{margin-bottom:1.5rem}.countries-grid{grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.country-item{background:#f8f9fa;border:2px solid #0000;border-radius:15px;flex-direction:row;font-size:.9rem;gap:.5rem;justify-content:flex-start;min-height:44px;padding:.6rem 1rem;text-align:left;width:100%}.country-item:hover{background:#fff3e0;border-color:#d4a574;transform:scale(1.02)}.country-item.selected{background:#e8f5e9;border-color:#2e7d32}.country-item .country-code{background:#e3f2fd;border-radius:4px;color:#1a237e;flex-shrink:0;font-size:.75rem;font-weight:700;min-width:28px;padding:.2rem .4rem;text-align:center}.country-item .name{color:#1a1a2e!important;display:inline-block!important;flex:1 1;font-weight:500;opacity:1!important;text-align:left;visibility:visible!important}.languages-section{margin-bottom:1rem}.languages-list{display:flex;flex-wrap:wrap;gap:.5rem}.language-item{background:#fff;border:2px solid #c9a961;border-radius:20px;color:#1a1a2e;cursor:pointer;font-size:.9rem;padding:.4rem 1rem;transition:all .2s ease}.language-item:hover{background:#fff8e1;transform:scale(1.05)}.language-item.selected{background:#c9a961;color:#fff}.settings-info{border-top:1px solid #eee;color:#1a237e;display:flex;font-size:.9rem;gap:2rem;justify-content:center;padding-top:1rem}.dropdown-content::-webkit-scrollbar{width:8px}.dropdown-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.dropdown-content::-webkit-scrollbar-thumb{background:#d4a574;border-radius:10px}.dropdown-content::-webkit-scrollbar-thumb:hover{background:#c9a961}@media (max-width:768px){.dropdown-content{left:auto;min-width:320px;right:0}.countries-grid{grid-template-columns:repeat(2,1fr)}.selector-button{font-size:.8rem;min-width:150px}.country-item{font-size:.8rem}}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center}.loading-spinner-small{padding:8px}.loading-spinner-medium{padding:16px}.loading-spinner-large{padding:32px}.spinner{display:inline-block;position:relative}.loading-spinner-small .spinner{height:24px;width:24px}.loading-spinner-medium .spinner{height:40px;width:40px}.loading-spinner-large .spinner{height:64px;width:64px}.spinner-ring{animation:spin 1s linear infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--bleu-indigo);position:absolute}.loading-spinner-small .spinner-ring{border-width:2px}.loading-spinner-medium .spinner-ring{border-width:3px}.loading-spinner-large .spinner-ring{border-width:4px}.spinner-ring:first-child{animation-duration:1s;height:100%;width:100%}.spinner-ring:nth-child(2){animation-direction:reverse;animation-duration:1.2s;border-top-color:var(--vert-foret);height:70%;left:15%;top:15%;width:70%}.spinner-ring:nth-child(3){animation-duration:.8s;border-top-color:var(--ocre);height:40%;left:30%;top:30%;width:40%}.loading-message{color:var(--noir-charbon);font-size:14px;margin:0;text-align:center}.loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999}.loading-content{align-items:center;display:flex;flex-direction:column;gap:24px}.loading-overlay .loading-message{font-size:16px;font-weight:500}.loading-spinner-primary .spinner-ring{border-top-color:var(--bleu-indigo)}.loading-spinner-success .spinner-ring{border-top-color:var(--vert-foret)}.loading-spinner-warning .spinner-ring{border-top-color:var(--ocre)}.loading-spinner-error .spinner-ring{border-top-color:var(--rouge-terre)}.login-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;opacity:0;overflow:hidden;position:relative;transition:opacity .5s ease}.login-page.visible{opacity:1}.login-bg-decoration{inset:0;pointer-events:none;position:fixed;z-index:0}.bg-circle{border-radius:50%;opacity:.5;position:absolute}.bg-circle-1{animation:float 30s ease-in-out infinite;background:radial-gradient(circle,rgba(var(--color-primary-rgb),.15) 0,#0000 70%);height:600px;left:-200px;top:-200px;width:600px}.bg-circle-2{animation:float 25s ease-in-out infinite reverse;background:radial-gradient(circle,rgba(var(--color-gold-rgb),.1) 0,#0000 70%);bottom:-100px;height:400px;right:30%;width:400px}.bg-circle-3{animation:float 20s ease-in-out 5s infinite;background:radial-gradient(circle,rgba(var(--color-secondary-rgb),.12) 0,#0000 70%);height:300px;right:-100px;top:40%;width:300px}.login-branding{align-items:center;background:var(--role-gradient);display:flex;justify-content:center;overflow:hidden;padding:var(--space-8);position:relative}.login-branding:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 20px,#ffffff08 0,#ffffff08 40px);content:"";inset:0;pointer-events:none;position:absolute}.branding-content{color:var(--color-text-inverse);max-width:400px;position:relative;text-align:center;z-index:1}.branding-logo{align-items:center;color:var(--color-text-inverse);display:inline-flex;gap:var(--space-3);margin-bottom:var(--space-12);text-decoration:none;transition:transform var(--transition-fast)}.branding-logo:hover{transform:scale(1.05)}.branding-logo .logo-icon{font-size:2.5rem}.branding-logo .logo-text{-webkit-text-fill-color:var(--color-text-inverse);color:var(--color-text-inverse);font-family:var(--font-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.branding-hero{margin-bottom:var(--space-12)}.role-icon{animation:bounce 3s infinite;display:block;font-size:5rem;margin-bottom:var(--space-4)}.branding-title{font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-3);text-shadow:0 2px 10px #0003}.branding-subtitle{font-size:var(--text-lg);line-height:var(--leading-relaxed);opacity:.9}.branding-features{display:flex;flex-direction:column;gap:var(--space-4)}.feature-item{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:var(--radius-lg);display:flex;font-size:var(--text-sm);gap:var(--space-3);justify-content:center;padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.feature-item:hover{background:#ffffff26;transform:translateX(5px)}.feature-icon{font-size:1.25rem}.login-form-panel{align-items:center;background:var(--color-background);display:flex;justify-content:center;padding:var(--space-8);position:relative;z-index:1}.login-container{animation:slideUp .6s ease-out;max-width:420px;width:100%}.mobile-logo{display:none}.login-header{margin-bottom:var(--space-8);text-align:center}.role-badge{align-items:center;border-radius:var(--radius-full);color:var(--color-text-inverse);display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4)}.login-title{color:var(--color-text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.login-subtitle{color:var(--color-text-muted);font-size:var(--text-base)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-label{align-items:center;color:var(--color-text-primary);display:flex;font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-1)}.required{color:var(--color-error)}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--color-text-muted);left:var(--space-4);pointer-events:none;position:absolute;transition:color var(--transition-fast)}.form-input{background:#fff;border:2px solid #e0e0e0;border-radius:12px;box-sizing:border-box;color:#1c1c1c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;height:52px;outline:none;padding:0 16px 0 48px;transition:all .2s ease}.form-input:hover{border-color:#9e9e9e}.form-input:focus{border-color:#228b22;border-color:var(--role-accent,#228b22);box-shadow:0 0 0 3px #228b2226}.form-input:focus+.input-icon,.form-input:focus~.input-icon{color:#228b22;color:var(--role-accent,#228b22)}.form-input::placeholder{color:#9e9e9e;opacity:1}.password-toggle{background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);position:absolute;right:var(--space-4);transition:all var(--transition-fast)}.password-toggle:hover{background:var(--color-background-alt);color:var(--color-text-primary)}.totp-input{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.5em;padding-left:var(--space-12);padding-right:var(--space-4);text-align:center}.totp-group{animation:slideDown .3s ease-out}.form-group.has-error .form-input{border-color:var(--color-error)}.form-group.has-error .form-input:focus{box-shadow:0 0 0 4px #c628281a}.form-group.has-error .input-icon{color:var(--color-error)}.form-error{align-items:center;animation:shake .3s ease;background:#ffebee;border-radius:8px;color:#c62828;display:flex;font-size:13px;gap:8px;margin-top:8px;padding:8px 12px}.form-hint{color:var(--color-text-muted);font-size:var(--text-sm)}.form-options{align-items:center;display:flex;justify-content:space-between;margin-top:var(--space-2)}.checkbox-input{height:0;opacity:0;position:absolute;width:0}.checkbox-custom{color:#0000}.checkbox-input:checked+.checkbox-custom{background:var(--role-accent);border-color:var(--role-accent);color:var(--color-text-inverse)}.checkbox-input:focus+.checkbox-custom{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.2)}.checkbox-text{color:var(--color-text-secondary);font-size:var(--text-sm)}.forgot-link{color:var(--role-accent);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;transition:color var(--transition-fast)}.forgot-link:hover{text-decoration:underline}.login-button{align-items:center;border:none;border-radius:var(--radius-lg);box-shadow:0 4px 14px #0003;color:var(--color-text-inverse);cursor:pointer;display:flex;font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-semibold);gap:var(--space-3);justify-content:center;margin-top:var(--space-4);padding:var(--space-4) var(--space-6);transition:all var(--transition-normal);width:100%}.login-button:hover:not(:disabled){box-shadow:0 6px 20px #00000040;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.7}.login-footer{margin-top:var(--space-8);text-align:center}.footer-text{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-4)}.role-links{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;margin-bottom:var(--space-6)}.role-link{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2) var(--space-4);text-decoration:none;transition:all var(--transition-fast)}.role-link:hover{background:rgba(var(--color-primary-rgb),.05);border-color:var(--link-color);color:var(--link-color)}.back-home{align-items:center;border-radius:var(--radius-md);color:var(--color-text-muted);display:inline-flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2) var(--space-4);text-decoration:none;transition:all var(--transition-fast)}.back-home:hover{background:var(--color-background-alt);color:var(--color-text-primary)}.loading-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-direction:column;gap:var(--space-4);inset:0;z-index:var(--z-modal)}.loading-overlay p{color:var(--color-text-secondary);font-size:var(--text-lg);font-weight:var(--font-medium)}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-5px)}}@media (max-width:1024px){.login-page{grid-template-columns:1fr}.login-branding{display:none}.login-form-panel{padding:var(--space-6)}.mobile-logo{align-items:center;color:var(--color-primary);display:flex;font-size:var(--text-2xl);font-weight:var(--font-bold);gap:var(--space-3);justify-content:center;margin-bottom:var(--space-8);text-decoration:none}.mobile-logo span:first-child{font-size:2rem}.login-container{max-width:400px}}@media (max-width:640px){.login-form-panel{padding:var(--space-4)}.login-container{max-width:100%}.login-title{font-size:var(--text-2xl)}.form-options{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.forgot-link{align-self:flex-end}.role-links{align-items:stretch;flex-direction:column}.role-link{justify-content:center}}@media (max-width:375px){.login-form-panel{padding:var(--space-3)}.login-header{margin-bottom:var(--space-6)}.login-form{gap:var(--space-4)}.login-button{padding:var(--space-3) var(--space-5)}.login-footer{margin-top:var(--space-6)}}@media (prefers-contrast:high){.form-input{border-width:3px}.form-error{font-weight:var(--font-bold)}.login-button{border:2px solid var(--color-text-inverse)}}@media (prefers-reduced-motion:reduce){.bg-circle,.feature-item,.form-error,.form-input,.login-button,.login-container,.login-page,.role-icon,.role-link,.totp-group{animation:none!important;transition:none!important}.login-page.visible{opacity:1}}.back-home:focus-visible,.branding-logo:focus-visible,.checkbox-input:focus-visible+.checkbox-custom,.forgot-link:focus-visible,.form-input:focus-visible,.login-button:focus-visible,.mobile-logo:focus-visible,.password-toggle:focus-visible,.role-link:focus-visible{outline:3px solid var(--color-accent-gold);outline-offset:2px}@media print{.login-page{display:block}.loading-overlay,.login-bg-decoration,.login-branding{display:none!important}}.onboarding-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.onboarding-container{animation:slideUp .4s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:600px;padding:40px;width:100%}.onboarding-header{margin-bottom:30px;text-align:center}.logo{color:inherit;display:inline-flex;gap:10px;text-decoration:none}.logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text}.step-indicator{display:flex;gap:40px;justify-content:center;margin-bottom:40px;position:relative}.step-indicator:before{background:#e0e0e0;content:"";height:2px;left:25%;position:absolute;right:25%;top:18px;z-index:0}.step{align-items:center;display:flex;flex-direction:column;gap:8px;z-index:1}.step-number{background:#e0e0e0;color:#666;font-size:14px;height:36px;width:36px}.step.active .step-number{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transform:scale(1.1)}.step.completed .step-number{background:#4caf50;color:#fff}.step-label{color:#666;font-size:12px}.step.active .step-label{color:#667eea;font-weight:600}.onboarding-form{margin-top:20px}.wizard-step{animation:fadeIn .3s ease-out}.step-title{color:#333;font-size:24px;font-weight:700;margin-bottom:8px}.step-description{color:#666;line-height:1.6;margin-bottom:30px}.form-group input,.form-group select{border:2px solid #e0e0e0;font-size:16px;padding:12px 16px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input.error,.form-group select.error{border-color:#f44336}.form-group input.disabled,.form-group input:disabled{background:#f5f5f5;color:#666;cursor:not-allowed}.error-message{color:#f44336;display:block;font-size:12px;margin-top:6px}.form-hint{margin-top:6px}.form-group label .hint{color:#888;font-size:12px;font-weight:400}.checkbox-grid{grid-gap:10px;border:1px solid #e0e0e0;border-radius:8px;gap:10px;grid-template-columns:repeat(2,1fr);margin-top:10px;max-height:300px;padding:15px}.checkbox-item{background:#fff;border:1px solid #e0e0e0;border-radius:6px;gap:10px;padding:10px 12px;transition:all .2s ease}.checkbox-item:hover{background:#f0f4ff;border-color:#667eea}.checkbox-item input[type=checkbox]{accent-color:#667eea;cursor:pointer;margin:0}.checkbox-item .checkbox-label{color:#333;flex:1 1;font-size:13px}.checkbox-item:has(input:checked){background:#f0f4ff;border-color:#667eea}.checkbox-item:has(input:checked) .checkbox-label{color:#667eea;font-weight:500}@media (max-width:480px){.checkbox-grid{grid-template-columns:1fr}}.form-row{grid-gap:20px;gap:20px}@media (max-width:480px){.form-row{grid-template-columns:1fr}}.input-with-status{position:relative}.input-with-status input{padding-right:120px}.input-status{font-size:12px;font-weight:500;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.input-status.checking{color:#666}.input-status.available{color:#4caf50}.input-status.unavailable{color:#f44336}.password-requirements{flex-wrap:wrap;gap:8px;margin-top:10px}.password-requirements span{font-size:12px;padding:4px 8px;transition:all .2s ease}.password-requirements span.met{background:#e8f5e9;color:#4caf50}.info-box{background:#e3f2fd;border-radius:8px;display:flex;gap:12px;margin-top:20px;padding:16px}.info-icon{font-size:20px}.info-box p{color:#1565c0;font-size:14px;line-height:1.5;margin:0}.terms-box{background:#f5f5f5;border-radius:8px;margin-top:20px;padding:16px}.terms-box p{color:#666;font-size:13px;line-height:1.6;margin:0}.terms-box a{color:#667eea;text-decoration:none}.terms-box a:hover{text-decoration:underline}.wizard-navigation{align-items:center;border-top:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-top:40px;padding-top:20px}.nav-spacer{flex:1 1}.btn{font-size:16px}.btn-secondary{background:#f5f5f5}.btn-success{background:linear-gradient(135deg,#4caf50,#45a049)}.btn-success:hover:not(:disabled){box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.btn-large{font-size:18px;padding:16px 32px}.onboarding-footer{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:20px;text-align:center}.onboarding-footer p{color:#666;font-size:14px;margin:8px 0}.onboarding-footer a{color:#667eea;font-weight:600;text-decoration:none}.onboarding-footer a:hover{text-decoration:underline}.verify-email-container{max-width:500px;text-align:center}.verify-email-content{padding:20px 0}.email-icon{font-size:64px;margin-bottom:20px}.verify-email-content h1{color:#333;font-size:28px;margin-bottom:16px}.verify-email-content .main-text{color:#666;font-size:16px;margin-bottom:8px}.verify-email-content .sub-text{color:#888;font-size:14px;margin-bottom:30px}.email-instructions{background:#f9f9f9;border-radius:8px;margin-bottom:30px;padding:20px;text-align:left}.email-instructions h3{color:#333;font-size:14px;margin-bottom:12px}.email-instructions ul{margin:0;padding-left:20px}.email-instructions li{color:#666;font-size:13px;margin-bottom:8px}.verify-actions{align-items:center;display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.verify-help{color:#888;font-size:13px}.verify-help a{color:#667eea}.verify-status{padding:20px}.status-icon{align-items:center;border-radius:50%;display:flex;font-size:40px;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.status-icon.success{background:#e8f5e9;color:#4caf50}.status-icon.error{background:#ffebee;color:#f44336}.status-icon.warning{background:#fff3e0;color:#ff9800}.status-icon.info{background:#e3f2fd;color:#2196f3}.verify-status h2{color:#333;font-size:24px;margin-bottom:12px}.verify-status p{color:#666;margin-bottom:8px}.trial-info{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:12px;margin:24px 0;padding:20px}.trial-badge{background:#4caf50;border-radius:20px;color:#fff;display:inline-block;font-size:14px;font-weight:600;margin-bottom:12px;padding:6px 12px}.trial-info p{color:#2e7d32;margin:0}.next-steps{background:#f5f5f5;border-radius:8px;margin-top:30px;padding:20px;text-align:left}.next-steps h3{color:#333;font-size:16px;margin-bottom:12px}.next-steps ul{list-style:none;margin:0;padding:0}.next-steps li{color:#666;font-size:14px;padding:8px 0}.invitation-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:30px;padding:30px;text-align:center}.invitation-banner h1{font-size:16px;font-weight:400;margin-bottom:8px;opacity:.9}.tenant-name{font-size:28px;font-weight:700;margin-bottom:16px}.invitation-meta{align-items:center;display:flex;gap:16px;justify-content:center;margin-bottom:16px}.role-badge{background:#fff3;border-radius:20px;display:inline-block;font-size:14px;font-weight:600;padding:6px 16px}.invited-by{font-size:14px;opacity:.9}.invitation-message{background:#ffffff1a;border-radius:8px;margin-bottom:16px;padding:16px}.invitation-message p{font-size:14px;font-style:italic;margin:0}.invitation-expiry{font-size:12px;opacity:.7}.loading-container{gap:20px;padding:60px 20px}.loading-container p{color:#666;font-size:16px}@media (max-width:480px){.onboarding-container{padding:24px}.step-indicator{gap:20px}.step-label{display:none}.invitation-banner{padding:20px}.tenant-name{font-size:22px}.invitation-meta{flex-direction:column;gap:8px}}.onboarding-checklist{animation:slideDown .3s ease-out;background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-bottom:24px;overflow:hidden}.onboarding-checklist.minimized{cursor:pointer;padding:12px 20px;transition:all .2s ease}.onboarding-checklist.minimized:hover{background:#f5f5f5}.minimized-content{align-items:center;display:flex;gap:12px}.minimized-icon{font-size:20px}.minimized-text{color:#333;flex:1 1;font-weight:500}.minimized-expand{color:#667eea;font-size:12px;font-weight:600}.checklist-header{align-items:flex-start;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:24px}.header-content h2{font-size:20px;font-weight:700;margin:0 0 8px}.header-content p{font-size:14px;margin:0;opacity:.9}.header-actions{gap:8px}.header-actions .btn-icon{background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;height:32px;transition:background .2s;width:32px}.header-actions .btn-icon:hover{background:#ffffff4d}.checklist-progress{background:#f9f9f9;border-bottom:1px solid #eee;padding:16px 24px}.progress-bar{margin-bottom:8px}.progress-fill{background:linear-gradient(135deg,#667eea,#764ba2);transition:width .5s ease}.progress-text{text-align:right}.trial-warning{align-items:center;background:#fff3e0;border-bottom:1px solid #ffcc80;display:flex;gap:12px;padding:12px 24px}.warning-icon{font-size:18px}.trial-warning span{color:#e65100;font-size:13px}.trial-warning a{color:#e65100;font-weight:600;margin-left:8px}.checklist-items{padding:16px 24px}.checklist-item{align-items:center;background:#f9f9f9;border:1px solid #0000;border-radius:10px;display:flex;gap:16px;margin-bottom:12px;padding:16px;transition:all .2s ease}.checklist-item:last-child{margin-bottom:0}.checklist-item:hover:not(.completed):not(.locked){background:#f0f4ff;border-color:#667eea}.checklist-item.completed{background:#e8f5e9;border-color:#4caf50}.checklist-item.locked{cursor:not-allowed;opacity:.6}.item-number{align-items:center;background:#e0e0e0;border-radius:50%;color:#666;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:32px;justify-content:center;width:32px}.checklist-item.completed .item-number{background:#4caf50;color:#fff}.item-icon{flex-shrink:0;font-size:24px}.item-content{flex:1 1;min-width:0}.item-content h3{color:#333;font-size:15px;font-weight:600;margin:0 0 4px}.item-content p{color:#666;font-size:13px;margin:0}.checklist-item.completed .item-content h3{color:#2e7d32}.checklist-item.locked .item-content p{font-style:italic}.item-action{flex-shrink:0}.completed-badge{background:#4caf50;border-radius:20px;color:#fff;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.locked-badge{font-size:18px}.btn{font-size:14px;padding:10px 20px}.btn-small{font-size:13px;padding:8px 16px}.btn-primary{background:#667eea}.btn-primary:hover{background:#5a6fd6}.checklist-footer{background:#f9f9f9;border-top:1px solid #eee;padding:16px 24px;text-align:center}.checklist-footer p{color:#666;font-size:13px;margin:0}.checklist-footer a{color:#667eea;text-decoration:none}.checklist-footer a:hover{text-decoration:underline}[data-theme=dark] .onboarding-checklist{background:#1e293b;border-color:#334155;box-shadow:0 4px 20px #0000004d}[data-theme=dark] .onboarding-checklist.minimized:hover{background:#334155}[data-theme=dark] .minimized-text{color:#f8fafc}[data-theme=dark] .minimized-expand{color:#60a5fa}[data-theme=dark] .checklist-progress{background:#0f172a;border-bottom-color:#334155}[data-theme=dark] .trial-warning{background:#f59e0b26;border-bottom-color:#92400e}[data-theme=dark] .trial-warning a,[data-theme=dark] .trial-warning span{color:#fbbf24}[data-theme=dark] .checklist-items{background:#1e293b}[data-theme=dark] .checklist-item{background:#0f172a;border-color:#0000}[data-theme=dark] .checklist-item:hover:not(.completed):not(.locked){background:#60a5fa1a;border-color:#60a5fa}[data-theme=dark] .checklist-item.completed{background:#22c55e26;border-color:#22c55e}[data-theme=dark] .item-number{background:#334155;color:#cbd5e1}[data-theme=dark] .checklist-item.completed .item-number{background:#22c55e;color:#fff}[data-theme=dark] .item-content h3{color:#fff!important}[data-theme=dark] .item-content p{color:#94a3b8!important}[data-theme=dark] .checklist-item.completed .item-content h3{color:#4ade80!important}[data-theme=dark] .checklist-footer{background:#0f172a;border-top-color:#334155}[data-theme=dark] .checklist-footer p{color:#94a3b8}[data-theme=dark] .checklist-footer a{color:#60a5fa}@media (max-width:600px){.checklist-header{flex-direction:column;gap:16px}.header-actions{align-self:flex-end}.checklist-item{flex-wrap:wrap}.item-content{flex-basis:calc(100% - 80px)}.item-action{margin-top:12px;text-align:right;width:100%}}.dashboard{--dashboard-padding:var(--space-6,1.5rem);--card-radius:var(--radius-xl,16px);--header-height:140px;--color-primary:#4f46e5;--color-primary-dark:#3730a3;--color-secondary:#10b981;--color-accent-gold:#f59e0b;--color-accent-ocre:#d97706;--color-accent-terre:#92400e;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-background:#f8fafc;--color-background-secondary:#f1f5f9;--color-border:#e2e8f0;--color-text-primary:#1e293b;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--transition-fast:150ms ease;--transition-normal:200ms ease;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-16:4rem;background:linear-gradient(180deg,var(--color-background) 0,#eef2ff 100%);display:flex;flex-direction:column;gap:var(--space-6);min-height:100vh;padding:var(--dashboard-padding)}.dashboard-header{animation:fadeInDown .6s ease-out;background:linear-gradient(135deg,#4f46e5,#6366f1 30%,#8b5cf6 70%,#10b981);border-radius:var(--card-radius);box-shadow:var(--shadow-xl);color:#fff;overflow:hidden;padding:var(--space-8) var(--space-6);position:relative}.dashboard-header:before{background:radial-gradient(circle,#ffffff1a 0,#0000 70%);border-radius:50%;content:"";height:400px;position:absolute;right:-20%;top:-50%;width:400px}.dashboard-header:after{background:radial-gradient(circle,#ffd70026 0,#0000 70%);border-radius:50%;bottom:-30%;content:"";height:300px;left:-10%;position:absolute;width:300px}.header-greeting{flex:1 1}.greeting-text{font-size:var(--text-3xl);font-weight:700;margin:0 0 var(--space-2) 0;text-shadow:0 2px 4px #0000001a}.user-name{color:var(--color-accent-gold)}.greeting-date{font-size:var(--text-base);margin:0;opacity:.9;text-transform:capitalize}.header-user-info{align-items:center;display:flex;gap:var(--space-4)}.user-badge{box-shadow:var(--shadow-md);font-weight:600;padding:var(--space-2) var(--space-4)}.badge-icon{font-size:var(--text-lg)}.badge-label{color:#fff}.dashboard-stats{animation:fadeInUp .6s ease-out;animation-delay:.1s;animation-fill-mode:both}.stats-grid{grid-gap:var(--space-4);gap:var(--space-4)}.stat-card{animation:fadeInUp .5s ease-out;animation-fill-mode:both;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--card-radius);box-shadow:var(--shadow-md);gap:var(--space-4);transition:all var(--transition-normal)}.stat-card:before{background:var(--color-primary);background:var(--stat-color,var(--color-primary));border-radius:var(--radius-full) 0 0 var(--radius-full)}.stat-card:hover{border-color:#0000;box-shadow:var(--shadow-xl);transform:translateY(-6px)}.stat-icon-wrapper{background:color-mix(in srgb,var(--color-primary) 10%,#fff);background:color-mix(in srgb,var(--stat-color,var(--color-primary)) 10%,#fff);border-radius:var(--radius-xl);flex-shrink:0;height:56px;width:56px}.stat-icon{font-size:28px}.stat-value{line-height:1.2}.stat-suffix{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:500}.stat-trend{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-2);position:absolute;right:var(--space-3);top:var(--space-3)}.stat-trend.positive{background:color-mix(in srgb,var(--color-success) 15%,#fff);color:var(--color-success)}.stat-trend.negative{background:color-mix(in srgb,var(--color-error) 15%,#fff);color:var(--color-error)}.section-header{margin-bottom:var(--space-4)}.section-title{gap:var(--space-2);margin:0}.section-link{align-items:center;color:var(--color-primary);display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-1);text-decoration:none;transition:all var(--transition-fast)}.section-link:hover{color:var(--color-primary-dark);gap:var(--space-2)}.section-link svg{transition:transform var(--transition-fast)}.section-link:hover svg{transform:translateX(4px)}.dashboard-actions{animation:fadeInUp .6s ease-out;animation-delay:.2s;animation-fill-mode:both}.actions-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr)}.action-card{align-items:center;animation:fadeInUp .5s ease-out;animation-fill-mode:both;background:#fff;border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:var(--shadow-md);cursor:pointer;display:flex;gap:var(--space-4);overflow:hidden;padding:var(--space-5);position:relative;text-decoration:none;transition:all var(--transition-normal)}.action-card:before{background:linear-gradient(90deg,var(--color-primary),#0000);background:linear-gradient(90deg,var(--action-color,var(--color-primary)),#0000);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity var(--transition-fast)}.action-card:hover{border-color:var(--action-color,var(--color-primary));box-shadow:var(--shadow-xl);transform:translateY(-6px) scale(1.02)}.action-card:hover:before{opacity:1}.action-icon-wrapper{align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 15%,#fff),color-mix(in srgb,var(--color-primary) 5%,#fff));background:linear-gradient(135deg,color-mix(in srgb,var(--action-color,var(--color-primary)) 15%,#fff),color-mix(in srgb,var(--action-color,var(--color-primary)) 5%,#fff));border-radius:var(--radius-lg);display:flex;flex-shrink:0;height:52px;justify-content:center;transition:transform var(--transition-fast);width:52px}.action-card:hover .action-icon-wrapper{transform:scale(1.1)}.action-icon{font-size:26px}.action-content{flex:1 1;min-width:0}.action-title{color:var(--color-text-primary);font-size:var(--text-base);font-weight:600;margin:0 0 var(--space-1) 0}.action-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-arrow{color:var(--color-text-tertiary);flex-shrink:0;transition:all var(--transition-fast)}.action-card:hover .action-arrow{color:var(--color-primary);color:var(--action-color,var(--color-primary));transform:translateX(4px)}.dashboard-activity{animation:fadeInUp .6s ease-out;animation-delay:.3s;animation-fill-mode:both;background:#fff;border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-5)}.activity-list{gap:var(--space-3)}.activity-item{animation:fadeInLeft .4s ease-out;animation-fill-mode:both;background:var(--color-background);border-radius:var(--radius-lg);gap:var(--space-4);padding:var(--space-3);transition:all var(--transition-fast)}.activity-item:hover{background:var(--color-background-secondary);transform:translateX(4px)}.activity-icon{border-radius:var(--radius-lg);flex-shrink:0;font-size:20px;height:44px;width:44px}.activity-content{min-width:0}.activity-title{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600;margin:0 0 var(--space-1) 0}.activity-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-time{color:var(--color-text-tertiary);flex-shrink:0;font-size:var(--text-xs)}.dashboard-schedule{animation:fadeInUp .6s ease-out;animation-delay:.4s;animation-fill-mode:both;background:#fff;border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-5)}.schedule-preview{display:flex;flex-direction:column;gap:var(--space-3)}.schedule-item{background:var(--color-background);border-left:4px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-4);padding:var(--space-4);transition:all var(--transition-fast)}.schedule-item:hover{background:var(--color-background-secondary);transform:translateX(4px)}.schedule-item.current{background:color-mix(in srgb,var(--color-primary) 5%,#fff);border-left-color:var(--color-primary)}.schedule-time{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:var(--space-1);min-width:60px}.time-start{color:var(--color-text-primary);font-size:var(--text-base);font-weight:700}.time-end{color:var(--color-text-secondary);font-size:var(--text-sm)}.schedule-content{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.schedule-subject{color:var(--color-text-primary);font-size:var(--text-base);font-weight:600}.schedule-details{color:var(--color-text-secondary);font-size:var(--text-sm)}.schedule-badge{border-radius:var(--radius-full);flex-shrink:0;font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-3)}.schedule-badge.live{animation:pulse 2s infinite;background:color-mix(in srgb,var(--color-success) 15%,#fff);color:var(--color-success)}.dashboard-announcements{animation:fadeInUp .6s ease-out;animation-delay:.5s;animation-fill-mode:both}.announcements-list{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(2,1fr)}.announcement-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-5);position:relative;transition:all var(--transition-fast)}.announcement-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.announcement-card.important{background:linear-gradient(135deg,#fff 0,color-mix(in srgb,var(--color-warning) 5%,#fff) 100%);border-color:var(--color-warning)}.announcement-badge{background:var(--color-warning);border-radius:var(--radius-sm);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);position:absolute;right:var(--space-4);top:var(--space-4)}.announcement-badge,.announcement-title{color:var(--color-text-primary);font-weight:600}.announcement-title{font-size:var(--text-lg);margin:0 0 var(--space-2) 0;padding-right:var(--space-16)}.announcement-content{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6;margin:0 0 var(--space-4) 0}.announcement-meta{align-items:center;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;padding-top:var(--space-3)}.announcement-author{color:var(--color-primary);font-size:var(--text-sm);font-weight:500}.announcement-date{color:var(--color-text-tertiary);font-size:var(--text-xs)}.dashboard-error{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:var(--space-8);text-align:center}.dashboard-error .error-icon{font-size:64px;margin-bottom:var(--space-4)}.dashboard-error h2{color:var(--color-text-primary);font-size:var(--text-2xl);margin:0 0 var(--space-2) 0}.dashboard-error p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0 0 var(--space-6) 0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@media (max-width:1200px){.actions-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:992px){.dashboard{--dashboard-padding:var(--space-4)}.dashboard-header{padding:var(--space-6) var(--space-4)}.header-content{align-items:flex-start;flex-direction:column;gap:var(--space-4)}.greeting-text{font-size:var(--text-2xl)}.announcements-list{grid-template-columns:1fr}}@media (max-width:768px){.stats-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.stat-card{flex-direction:column;padding:var(--space-4);text-align:center}.stat-icon-wrapper{height:48px;width:48px}.stat-icon{font-size:24px}.stat-trend{margin-top:var(--space-2);position:static}.actions-grid{grid-template-columns:1fr}.action-card{padding:var(--space-4)}.action-description{display:none}}@media (max-width:480px){.dashboard{--dashboard-padding:var(--space-3);gap:var(--space-4);padding-bottom:80px}.dashboard-header{border-radius:var(--radius-lg);border-radius:0 0 24px 24px;margin:calc(var(--space-3)*-1);margin-bottom:0;padding:var(--space-5) var(--space-4)}.header-content{align-items:center;text-align:center}.header-greeting{text-align:center;width:100%}.greeting-text{font-size:var(--text-xl);line-height:1.3}.greeting-date{font-size:var(--text-sm);opacity:.85}.header-user-info{justify-content:center;width:100%}.user-badge{box-shadow:0 4px 15px #0003;font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.stats-grid{gap:var(--space-3);grid-template-columns:1fr 1fr}.stat-card{border-radius:var(--radius-lg);flex-direction:column;gap:var(--space-2);padding:var(--space-4);text-align:center}.stat-card:before{border-radius:var(--radius-full) var(--radius-full) 0 0;height:4px;width:100%}.stat-icon-wrapper{height:48px;width:48px}.stat-icon{font-size:22px}.stat-value{font-size:var(--text-xl);font-weight:800}.stat-label{font-size:var(--text-xs);line-height:1.3}.stat-trend{margin-top:var(--space-1);position:static}.section-header{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.section-title{font-size:var(--text-lg)}.section-link{align-self:flex-end}.actions-grid{gap:var(--space-3);grid-template-columns:1fr}.action-card{border-radius:var(--radius-lg);padding:var(--space-4)}.action-icon-wrapper{height:48px;width:48px}.action-icon{font-size:22px}.action-title{font-size:var(--text-base);font-weight:700}.action-description{display:block;font-size:var(--text-xs);line-height:1.4;white-space:normal}.dashboard-activity,.dashboard-schedule{border-radius:var(--radius-lg);padding:var(--space-4)}.activity-item{border-radius:var(--radius-md);gap:var(--space-3);padding:var(--space-3)}.activity-icon{font-size:18px;height:40px;width:40px}.activity-title{font-size:var(--text-sm);font-weight:600}.activity-description{font-size:var(--text-xs)}.activity-time{font-size:10px}.schedule-item{border-radius:var(--radius-md);flex-wrap:wrap;padding:var(--space-3)}.schedule-time{flex-direction:row;gap:var(--space-2);min-width:auto}.time-start{font-size:var(--text-sm)}.time-end{font-size:var(--text-xs)}.schedule-subject{font-size:var(--text-sm)}.schedule-details{font-size:var(--text-xs)}.schedule-badge{margin-top:var(--space-2);text-align:center;width:100%}.announcements-list{gap:var(--space-3);grid-template-columns:1fr}.announcement-card{border-radius:var(--radius-lg);padding:var(--space-4)}.announcement-title{font-size:var(--text-base);font-weight:700;padding-right:0}.announcement-content{font-size:var(--text-sm);line-height:1.5}.announcement-badge{display:inline-block;font-size:var(--text-xs);margin-bottom:var(--space-2);position:static}.announcement-meta{align-items:flex-start;flex-direction:column;gap:var(--space-1)}}@media (prefers-reduced-motion:reduce){.action-card,.activity-item,.dashboard-actions,.dashboard-activity,.dashboard-announcements,.dashboard-header,.dashboard-schedule,.dashboard-stats,.stat-card{animation:none}.action-card:hover,.activity-item:hover,.announcement-card:hover,.schedule-item:hover,.stat-card:hover{transform:none}.schedule-badge.live{animation:none}}@media (prefers-contrast:high){.action-card,.announcement-card,.dashboard-activity,.dashboard-schedule,.stat-card{border-width:2px}.stat-card:before{width:6px}.schedule-item{border-left-width:6px}}@media print{.dashboard{padding:0}.dashboard-header{background:var(--color-primary)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.action-card:hover,.announcement-card:hover,.stat-card:hover{box-shadow:var(--shadow-sm);transform:none}}[data-theme=dark] .dashboard{background:linear-gradient(180deg,#0f172a,#1e293b)}[data-theme=dark] .stat-card{border-color:#334155}[data-theme=dark] .stat-value{font-weight:800;text-shadow:0 1px 2px #0000004d}[data-theme=dark] .stat-label{color:#e2e8f0!important;font-weight:600;letter-spacing:.5px;text-transform:uppercase}[data-theme=dark] .stat-suffix{color:#f1f5f9}[data-theme=dark] .stat-icon-wrapper{background:#6366f140}[data-theme=dark] .stat-trend.positive{background:#10b98133;color:#34d399}[data-theme=dark] .stat-trend.negative{background:#ef444433;color:#f87171}[data-theme=dark] .action-card{background:#1e293b;border-color:#334155}[data-theme=dark] .action-card:hover{background:#253449;border-color:#4f46e5}[data-theme=dark] .action-title{color:#fff!important;font-weight:700}[data-theme=dark] .action-description{color:#cbd5e1!important}[data-theme=dark] .action-arrow{color:#64748b}[data-theme=dark] .action-card:hover .action-arrow{color:#818cf8}[data-theme=dark] .action-icon-wrapper{background:linear-gradient(135deg,#6366f133,#6366f11a)}[data-theme=dark] .dashboard-activity{background:#1e293b;border-color:#334155}[data-theme=dark] .activity-item:hover{background:#4f46e526}[data-theme=dark] .activity-title{color:#f8fafc}[data-theme=dark] .activity-description{color:#94a3b8}[data-theme=dark] .activity-time{color:#64748b}[data-theme=dark] .dashboard-schedule{background:#1e293b;border-color:#334155}[data-theme=dark] .schedule-item{background:#0f172a;border-left-color:#475569}[data-theme=dark] .schedule-item.current{background:#4f46e526;border-left-color:#4f46e5}[data-theme=dark] .schedule-item:hover{background:#4f46e533}[data-theme=dark] .schedule-subject{color:#f8fafc}[data-theme=dark] .schedule-details{color:#94a3b8}[data-theme=dark] .time-start{color:#f8fafc}[data-theme=dark] .time-end{color:#94a3b8}[data-theme=dark] .schedule-badge,[data-theme=dark] .schedule-badge.live{background:#10b98133;color:#34d399}[data-theme=dark] .announcement-card{background:#1e293b;border-color:#334155}[data-theme=dark] .announcement-card.important{background:linear-gradient(135deg,#1e293b,#f59e0b1a);border-color:#f59e0b}[data-theme=dark] .announcement-title{color:#f8fafc}[data-theme=dark] .announcement-content{color:#94a3b8}[data-theme=dark] .announcement-meta{border-top-color:#334155}[data-theme=dark] .announcement-author{color:#818cf8}[data-theme=dark] .announcement-date{color:#64748b}[data-theme=dark] .announcement-badge{background:#f59e0b;color:#1e293b}[data-theme=dark] .section-link{color:#818cf8}[data-theme=dark] .section-link:hover{color:#a5b4fc}[data-theme=dark] .dashboard-error h2{color:#f8fafc}[data-theme=dark] .dashboard-error p{color:#94a3b8}.platform-admin-page{margin:0 auto;max-width:1600px;padding:2rem}.platform-header{margin-bottom:2rem}.platform-header h1{color:#1a1a2e;font-size:2rem;margin-bottom:.5rem}.platform-header p{color:#666;font-size:1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat-card:hover{box-shadow:0 4px 12px #0000001f}.stat-card.primary{border-left-color:#0066b3}.stat-card.success{border-left-color:#10b981}.stat-card.info{border-left-color:#3b82f6}.stat-card.warning{border-left-color:#f59e0b}.stat-card.accent{border-left-color:#8b5cf6}.stat-value{color:#1a1a2e}.charts-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.chart-card{background:#fff;box-shadow:0 2px 8px #00000014}.chart-card h3{color:#1a1a2e;font-size:1.1rem;margin-bottom:1rem}.chart-bars{flex-direction:column}.bar-item,.chart-bars{display:flex;gap:.75rem}.bar-item{align-items:center}.bar-track{background:#e5e7eb;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#0066b3,#00a8e8);transition:width .5s ease}.bar-value{color:#1a1a2e;width:30px}.status-pills{display:flex;flex-wrap:wrap;gap:.5rem}.status-pill{align-items:center;border-radius:20px;color:#fff;display:flex;font-size:.85rem;gap:.5rem;padding:.5rem 1rem}.pill-count{background:#ffffff4d;border-radius:10px;font-weight:600;padding:.15rem .5rem}.tenants-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.section-header{flex-wrap:wrap;gap:1rem}.section-header h2{color:#1a1a2e}.filters{display:flex;flex-wrap:wrap;gap:.75rem}.search-input,.status-select{border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:.5rem 1rem}.search-input{min-width:200px}.search-input:focus,.status-select:focus{border-color:#0066b3;outline:none}.refresh-btn{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background .2s}.refresh-btn:hover{background:#e5e7eb}.tenants-table-container{overflow-x:auto}.tenants-table{border-collapse:collapse;width:100%}.tenants-table td,.tenants-table th{border-bottom:1px solid #e5e7eb;padding:1rem;text-align:left}.tenants-table th{color:#374151;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.tenants-table th,.tenants-table tr:hover{background:#f9fafb}.tenants-table tr.inactive{opacity:.5}.tenant-name{display:flex;flex-direction:column}.tenant-name strong{color:#1a1a2e}.tenant-email{color:#666;font-size:.8rem}.tenants-table code{background:#f3f4f6;border-radius:4px;font-size:.8rem;padding:.25rem .5rem}.actions{display:flex;gap:.5rem}.action-btn{font-size:1rem;transition:background .2s}.action-btn.activate{background:#dcfce7}.action-btn.activate:hover{background:#bbf7d0}.action-btn.view{background:#e0e7ff}.action-btn.view:hover{background:#c7d2fe}.empty-state{color:#666}.access-denied,.error,.loading{padding:4rem 2rem;text-align:center}.loading{color:#666}.error{color:#ef4444}@media (max-width:768px){.platform-admin-page{padding:1rem}.section-header{align-items:flex-start;flex-direction:column}.filters,.search-input{width:100%}}.my-courses{margin:0 auto;max-width:1200px}.page-header{align-items:center;flex-wrap:wrap;gap:1rem}.search-input{border:2px solid #e0e0e0;font-size:1rem;min-width:300px;padding:.75rem 1rem}.search-input:focus{border-color:var(--bleu-indigo)}.course-header{margin-bottom:1rem}.teacher-name{color:#666;font-size:.9rem}.course-description{font-size:.95rem}.course-class,.course-schedule{color:#666;font-size:.9rem;margin-bottom:.5rem}.course-actions{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.view-link{color:var(--bleu-indigo);font-size:.9rem;font-weight:600}@media (max-width:768px){.courses-grid{grid-template-columns:1fr}.page-header{align-items:stretch;flex-direction:column}.search-input{min-width:100%}}.courses{margin:0 auto;max-width:1200px}.course-card{border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:inherit;display:flex;flex-direction:column;padding:1.5rem;text-decoration:none}.course-card:hover{border-color:var(--bleu-indigo);box-shadow:0 4px 16px #00000026}.course-header h3{color:var(--bleu-indigo);font-size:1.5rem;margin-bottom:.5rem}.class-group{color:var(--vert-foret);font-size:.9rem;font-weight:500}.course-description{color:#666;flex:1 1;line-height:1.5;margin-bottom:1rem}.course-schedule{margin-bottom:1rem}.course-schedule span{color:var(--ocre);font-size:.9rem}.course-footer{border-top:1px solid #e0e0e0;margin-top:auto;padding-top:1rem}.view-details{color:var(--bleu-indigo);font-size:.9rem;font-weight:600}.empty-state p{margin-bottom:1.5rem}@media (max-width:768px){.page-header{flex-direction:column;gap:1rem}.courses-grid{grid-template-columns:1fr}}.children{margin:0 auto;max-width:1200px}.children-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.child-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem;transition:all .3s}.child-card:hover{border-color:var(--ocre);box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.child-header{gap:1rem;margin-bottom:1.5rem}.child-avatar,.child-header{align-items:center;display:flex}.child-avatar{background:linear-gradient(135deg,var(--ocre) 0,var(--rouge-terre) 100%);border-radius:50%;color:#fff;flex-shrink:0;font-size:1.5rem;font-weight:600;height:64px;justify-content:center;width:64px}.child-info h3{color:var(--noir-charbon);font-size:1.5rem;margin-bottom:.25rem}.student-number{color:#666;font-size:.9rem}.child-details{background:#f5f5f5;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.detail-item{align-items:center;justify-content:space-between;margin-bottom:.5rem}.detail-item:last-child{margin-bottom:0}.detail-label{color:#666;font-size:.9rem}.detail-value{color:var(--noir-charbon);font-weight:600}.child-actions{display:flex;flex-wrap:wrap;gap:.75rem}.action-link{background:var(--bleu-indigo);border-radius:8px;color:#fff;flex:1 1;font-weight:600;min-width:100px;padding:.75rem 1rem;text-align:center;text-decoration:none;transition:all .2s}.action-link:hover{background:var(--vert-foret);box-shadow:0 4px 8px #0003;transform:translateY(-2px)}@media (max-width:768px){.children-grid{grid-template-columns:1fr}.child-actions{flex-direction:column}.action-link{width:100%}}.grades-page{background:var(--color-background);min-height:100vh;padding:var(--space-6)}.grades-header{margin-bottom:var(--space-6)}.header-content{align-items:flex-start;gap:var(--space-4)}.header-title-section{flex:1 1}.header-title{margin:0 0 var(--space-2) 0}.title-icon{font-size:32px}.header-subtitle{font-size:var(--text-base)}.view-toggle{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:var(--space-1);padding:var(--space-1)}.toggle-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all var(--transition-fast);width:40px}.toggle-btn:hover{background:var(--color-background);color:var(--color-text-primary)}.toggle-btn.active{background:var(--color-primary);color:#fff}.statistics-section{margin-bottom:var(--space-6)}.statistics-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr)}.stat-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;gap:var(--space-3);padding:var(--space-5);transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-card.primary{border-left:4px solid var(--color-primary)}.stat-card.success{border-left:4px solid var(--color-success)}.stat-card.warning{border-left:4px solid var(--color-warning)}.stat-card.info{border-left:4px solid var(--color-info)}.stat-icon-wrapper{align-items:center;background:var(--color-background);border-radius:var(--radius-lg);display:flex;height:48px;justify-content:center;width:48px}.stat-icon{font-size:24px}.stat-content{gap:var(--space-1)}.stat-value{font-size:var(--text-2xl)}.stat-unit{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:500}.stat-label{font-size:var(--text-sm)}.stat-progress{background:var(--color-background);height:4px;overflow:hidden}.progress-bar,.stat-progress{border-radius:var(--radius-full)}.progress-bar{background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));height:100%;transition:width .5s ease-out}.filters-section{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5)}.filter-group{gap:var(--space-3)}.filter-label{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2)}.filter-select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);min-width:200px;padding:var(--space-2) var(--space-4);padding-right:var(--space-8);transition:all var(--transition-fast)}.filter-select:focus,.filter-select:hover{border-color:var(--color-primary)}.filter-select:focus{box-shadow:0 0 0 3px #1a1a5e1a;outline:none}.results-count{align-items:center;display:flex;gap:var(--space-2)}.count-badge{align-items:center;background:var(--color-primary);border-radius:var(--radius-full);color:#fff;display:inline-flex;font-size:var(--text-sm);font-weight:600;height:28px;justify-content:center;min-width:28px;padding:0 var(--space-2)}.count-label{color:var(--color-text-secondary);font-size:var(--text-sm)}.grades-table-section{animation:fadeIn .3s ease-out}.table-container{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.grades-table{border-collapse:collapse;width:100%}.grades-table thead{background:linear-gradient(135deg,var(--color-primary) 0,#2d2d7a 100%)}.grades-table th{color:#fff;font-size:var(--text-sm);font-weight:600;padding:var(--space-4);text-align:left;white-space:nowrap}.grades-table th.sortable{cursor:pointer;transition:background var(--transition-fast);-webkit-user-select:none;user-select:none}.grades-table th.sortable:hover{background:#ffffff1a}.grades-table th.sorted{background:#ffffff26}.sort-icon{font-size:var(--text-xs);margin-left:var(--space-2)}.grades-table tbody tr{animation:fadeInUp .3s ease-out;animation-fill-mode:both}.grades-table td{border-bottom:1px solid var(--color-border);font-size:var(--text-sm);padding:var(--space-4)}.grades-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary) 3%,#fff)}.grades-table tbody tr:last-child td{border-bottom:none}.course-name{color:var(--color-text-primary);font-weight:500}.grade-type-badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:500;gap:var(--space-1);padding:var(--space-1) var(--space-3)}.grade-type-badge.exam{background:color-mix(in srgb,var(--color-error) 15%,#fff);color:var(--color-error)}.grade-type-badge.homework{background:color-mix(in srgb,var(--color-primary) 15%,#fff);color:var(--color-primary)}.grade-type-badge.project{background:color-mix(in srgb,#7b1fa2 15%,#fff);color:#7b1fa2}.grade-type-badge.participation{background:color-mix(in srgb,var(--color-success) 15%,#fff);color:var(--color-success)}.grade-type-badge.quiz{background:color-mix(in srgb,var(--color-warning) 15%,#fff);color:var(--color-warning)}.type-icon{font-size:12px}.grade-value-cell{align-items:baseline;display:flex;gap:var(--space-1)}.grade-score{font-size:var(--text-lg);font-weight:700}.grade-max{color:var(--color-text-secondary);font-size:var(--text-sm)}.percentage-cell{align-items:center;display:flex;gap:var(--space-3);min-width:150px}.percentage-bar{background:var(--color-background);border-radius:var(--radius-full);flex:1 1;height:6px;overflow:hidden}.percentage-fill{border-radius:var(--radius-full);height:100%;transition:width .5s ease-out}.percentage-fill.excellent{background:var(--color-success)}.percentage-fill.good{background:var(--color-primary)}.percentage-fill.average{background:var(--color-warning)}.percentage-fill.poor{background:var(--color-error)}.percentage-value{font-size:var(--text-sm);font-weight:600;min-width:40px}.excellent{color:var(--color-success)}.good{color:var(--color-primary)}.average{color:var(--color-warning)}.poor{color:var(--color-error)}.comment-cell,.date-cell{color:var(--color-text-secondary)}.comment-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grades-cards-section{grid-gap:var(--space-5);animation:fadeIn .3s ease-out;display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.course-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.course-header{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,#2d2d7a 100%);color:#fff;display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.course-card .course-name{color:#fff;font-size:var(--text-lg);font-weight:600}.course-average{align-items:baseline;background:#fff3;border-radius:var(--radius-lg);display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-3)}.course-average.excellent{background:#228b224d}.course-average.good{background:#fff3}.course-average.average{background:#ffd7004d}.course-average.poor{background:#b222224d}.avg-value{color:#fff;font-size:var(--text-xl);font-weight:700}.avg-unit{color:#fffc;font-size:var(--text-sm)}.course-grades{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.grade-item{background:var(--color-background);border-radius:var(--radius-lg);padding:var(--space-4)}.grade-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.grade-date{color:var(--color-text-tertiary);font-size:var(--text-xs)}.grade-item-score{align-items:center;display:flex;gap:var(--space-4)}.score-circle{align-items:baseline;display:flex;gap:2px}.score-value{font-size:var(--text-xl)}.score-max{color:var(--color-text-secondary);font-size:var(--text-sm)}.score-bar{background:#fff;flex:1 1;height:8px;overflow:hidden}.score-bar,.score-fill{border-radius:var(--radius-full)}.score-fill{height:100%;transition:width .5s ease-out}.score-fill.excellent{background:var(--color-success)}.score-fill.good{background:var(--color-primary)}.score-fill.average{background:var(--color-warning)}.score-fill.poor{background:var(--color-error)}.grade-comment{border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic;margin:var(--space-3) 0 0 0;padding-top:var(--space-3)}.empty-state{border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-12) var(--space-6)}.empty-illustration{margin-bottom:var(--space-6);position:relative}.empty-icon{font-size:80px;z-index:1}.empty-decoration{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 10%,#fff),color-mix(in srgb,var(--color-secondary) 10%,#fff));border-radius:50%;height:120px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:120px;z-index:0}.empty-title{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:600;margin:0 0 var(--space-2) 0}.empty-description{color:var(--color-text-secondary);font-size:var(--text-base);margin:0;max-width:400px}@media (max-width:1200px){.statistics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:992px){.grades-page{padding:var(--space-4)}.filters-section,.header-content{align-items:flex-start;flex-direction:column}.grades-cards-section{grid-template-columns:1fr}}@media (max-width:768px){.statistics-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--space-4)}.table-container{overflow-x:auto}.grades-table{min-width:700px}.filter-group{align-items:flex-start;flex-direction:column;width:100%}.filter-select{width:100%}}@media (max-width:480px){.grades-page{padding:var(--space-3)}.header-title{font-size:var(--text-xl)}.title-icon{font-size:24px}.statistics-grid{grid-template-columns:1fr}.stat-card{align-items:center;flex-direction:row;gap:var(--space-4)}.stat-card .stat-icon-wrapper{height:40px;width:40px}.stat-card .stat-icon{font-size:20px}.stat-value{font-size:var(--text-xl)}.course-header{text-align:center}.course-header,.grade-item-score{flex-direction:column;gap:var(--space-2)}.grade-item-score{align-items:flex-start}.score-bar{width:100%}}@media (prefers-reduced-motion:reduce){.grades-cards-section,.grades-table tbody tr,.grades-table-section{animation:none}.stat-card:hover{transform:none}.percentage-fill,.progress-bar,.score-fill{transition:none}}@media (prefers-contrast:high){.course-card,.empty-state,.stat-card,.table-container{border-width:2px}.percentage-bar,.score-bar{border:1px solid var(--color-border)}}@media print{.grades-page{padding:0}.filters-section,.view-toggle{display:none}.course-card,.stat-card,.table-container{box-shadow:none;break-inside:avoid;page-break-inside:avoid}.grades-table thead{background:var(--color-primary)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.attendance{margin:0 auto;max-width:1200px}.attendance-stats{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{box-shadow:0 2px 8px #0000001a}.stat-value{margin-bottom:.5rem}.stat-label{font-weight:500}.attendance-list h2{color:var(--noir-charbon);margin-bottom:1rem}.attendance-table{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.table-header{background:var(--bleu-indigo);color:#fff;font-weight:600}.table-header,.table-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 2fr 1.5fr 2fr;padding:1rem 1.5rem}.table-row{border-bottom:1px solid #e0e0e0;transition:background .2s}.table-row:hover{background:#f5f5f5}.table-row:last-child{border-bottom:none}.status-badge{font-size:.95rem}.empty-state{box-shadow:0 2px 8px #0000001a;padding:4rem 2rem}.empty-state h2{color:var(--noir-charbon);margin-bottom:.5rem}@media (max-width:768px){.attendance-stats{grid-template-columns:repeat(2,1fr)}.table-header,.table-row{gap:.5rem;grid-template-columns:1fr}.table-header{display:none}.table-row{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1rem;padding:1rem}}[data-theme=dark] .attendance{color:#e2e8f0}[data-theme=dark] .page-header h1{color:#a5b4fc}[data-theme=dark] .stat-value{color:#f8fafc}[data-theme=dark] .stat-label{color:#94a3b8}[data-theme=dark] .attendance-list h2{color:#f8fafc}[data-theme=dark] .attendance-table{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .table-row{border-bottom-color:#334155;color:#e2e8f0}[data-theme=dark] .table-row:hover{background:#334155}[data-theme=dark] .empty-state{box-shadow:0 2px 8px #0000004d}[data-theme=dark] .empty-state h2{color:#f8fafc}.messages{display:flex;flex-direction:column;height:calc(100vh - 200px);margin:0 auto;max-width:1400px}.page-header{align-items:flex-start;display:flex;justify-content:space-between}.page-header h1{color:var(--bleu-indigo);font-size:2.5rem}.page-header p{font-size:1.1rem}.messages-container{gap:1.5rem;min-height:0}.messages-sidebar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;overflow:hidden;width:350px}.tabs{border-bottom:2px solid #e0e0e0}.tab{color:#666;flex:1 1;font-weight:600;padding:1rem;transition:all .2s}.tab:hover{background:#f5f5f5}.tab.active{border-bottom:2px solid var(--bleu-indigo);color:var(--bleu-indigo)}.badge{background:var(--rouge-terre);border-radius:12px;color:#fff;margin-left:.5rem}.messages-list{flex:1 1;overflow-y:auto;padding:.5rem}.message-item{border:2px solid #0000;border-radius:8px;cursor:pointer;margin-bottom:.5rem;padding:1rem;transition:all .2s}.message-item:hover{background:#f5f5f5}.message-item.selected{background:#1919701a;border-color:var(--bleu-indigo)}.message-item.unread{background:#1919700d;font-weight:600}.message-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.unread-dot{background:var(--bleu-indigo);border-radius:50%;height:8px;width:8px}.message-subject{color:var(--noir-charbon);font-size:.95rem;margin-bottom:.25rem}.message-date{color:#666;font-size:.85rem}.messages-content{box-shadow:0 2px 8px #0000001a;flex:1 1;overflow-y:auto;padding:2rem}.message-view-header{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.message-view-header h2{color:var(--bleu-indigo);margin-bottom:.5rem}.message-meta{color:#666;font-size:.9rem;gap:1.5rem}.message-body{color:var(--noir-charbon);line-height:1.6;white-space:pre-wrap}.no-message-selected{align-items:center;color:#666;display:flex;flex-direction:column;height:100%;justify-content:center}.empty-messages{color:#666;padding:2rem;text-align:center}.empty-icon{font-size:64px}.modal-overlay{z-index:10000}.modal-content{padding:2rem}.modal-header{margin-bottom:1.5rem}.modal-header h2{color:var(--bleu-indigo)}.modal-close{color:#999;font-size:2rem}.modal-close:hover{color:var(--noir-charbon)}.modal-form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{color:var(--noir-charbon)}.form-group input,.form-group textarea{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus{border-color:var(--bleu-indigo)}.btn-primary{background:linear-gradient(135deg,var(--bleu-indigo) 0,var(--vert-foret) 100%);transition:all .2s}.btn-primary:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.btn-secondary{background:#e0e0e0;color:var(--noir-charbon);transition:all .2s}.btn-secondary:hover{background:#d0d0d0}@media (max-width:768px){.messages-container{flex-direction:column}.messages-sidebar{max-height:300px;width:100%}.messages-content{min-height:400px}}.profile-page{background:var(--color-background);min-height:100vh}.profile-header{margin-bottom:var(--space-6);padding-bottom:var(--space-8);padding-top:120px;position:relative}.header-background{background:linear-gradient(135deg,var(--color-primary) 0,#2d2d7a 50%,var(--color-secondary) 100%);height:180px;left:0;overflow:hidden;position:absolute;right:0;top:0}.bg-pattern{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m30 0 30 30-30 30L0 30z' fill='%23fff' fill-opacity='.05'/%3E%3C/svg%3E");background-size:30px 30px;inset:0;position:absolute}.header-content{align-items:flex-end;gap:var(--space-6);margin:0 auto;max-width:1200px;padding:0 var(--space-6);position:relative;z-index:1}.avatar-container{flex-shrink:0;position:relative}.avatar-container.editable{cursor:pointer}.avatar{align-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border:4px solid #fff;border-radius:50%;box-shadow:var(--shadow-lg);display:flex;height:140px;justify-content:center;overflow:hidden;width:140px}.avatar img{height:100%;object-fit:cover;width:100%}.avatar-initials{color:#fff;font-size:48px;font-weight:700;text-transform:uppercase}.avatar-overlay{align-items:center;background:#00000080;border-radius:50%;color:#fff;display:flex;inset:4px;justify-content:center;opacity:0;position:absolute;transition:opacity var(--transition-fast)}.avatar-container.editable:hover .avatar-overlay{opacity:1}.user-info{flex:1 1;padding-bottom:var(--space-2)}.user-info .user-name{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:700;margin:0 0 var(--space-1) 0}.user-info .user-email{color:var(--color-text-secondary);font-size:var(--text-base);margin:0 0 var(--space-3) 0}.user-badge{align-items:center;border-radius:var(--radius-full);color:#fff;display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2);padding:var(--space-1) var(--space-3)}.badge-icon{font-size:var(--text-base)}.header-actions{padding-bottom:var(--space-2)}.edit-actions{display:flex;gap:var(--space-3)}.profile-tabs{border-bottom:1px solid var(--color-border);margin:0 auto var(--space-6);max-width:1200px;padding:0 var(--space-6)}.profile-tabs,.tab-button{display:flex;gap:var(--space-2)}.tab-button{align-items:center;background:#0000;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-4);position:relative;transition:all var(--transition-fast)}.tab-button:after{background:var(--color-primary);bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0;transform:scaleX(0);transition:transform var(--transition-fast)}.tab-button:hover{color:var(--color-text-primary)}.tab-button.active{color:var(--color-primary)}.tab-button.active:after{transform:scaleX(1)}.tab-button svg{opacity:.7}.tab-button.active svg{opacity:1}.profile-content{margin:0 auto;max-width:1200px;padding:0 var(--space-6) var(--space-8)}.tab-panel{animation:fadeIn .3s ease-out}.profile-section{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);padding:var(--space-6)}.section-title{align-items:center;display:flex;font-size:var(--text-lg);gap:var(--space-3);margin:0 0 var(--space-5) 0}.section-title svg{color:var(--color-primary)}.subsection-title{color:var(--color-text-primary);font-size:var(--text-base);font-weight:600;margin:var(--space-5) 0 var(--space-4) 0}.form-grid{grid-gap:var(--space-4);gap:var(--space-4)}.form-group{gap:var(--space-2)}.form-group label{font-size:var(--text-sm)}.form-input,.form-select,.form-textarea{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--text-base);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a1a5e1a}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--color-background);color:var(--color-text-secondary);cursor:not-allowed}.form-textarea{min-height:100px}.form-hint{font-size:var(--text-xs)}.checkbox-group{gap:var(--space-4)}.checkbox-label{align-items:flex-start;gap:var(--space-3)}.checkbox-label input{display:none}.checkbox-custom{align-items:center;border:2px solid var(--color-border);border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:20px;justify-content:center;margin-top:2px;transition:all var(--transition-fast);width:20px}.checkbox-label input:checked+.checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.checkbox-label input:checked+.checkbox-custom:after{color:#fff;content:"✓";font-size:12px;font-weight:700}.checkbox-label input:disabled+.checkbox-custom{cursor:not-allowed;opacity:.5}.checkbox-text{display:flex;flex-direction:column;gap:var(--space-1)}.checkbox-title{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:500}.checkbox-description{color:var(--color-text-secondary);font-size:var(--text-xs)}.password-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:400px}.password-form .btn{align-self:flex-start;margin-top:var(--space-2)}.two-factor-status{align-items:center;background:var(--color-background);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:var(--space-4)}.status-info{align-items:center;display:flex;gap:var(--space-4)}.status-icon{font-size:32px}.status-icon.active{color:var(--color-success)}.status-text{display:flex;flex-direction:column;gap:var(--space-1)}.status-label{color:var(--color-text-primary);font-size:var(--text-base);font-weight:600}.status-description{color:var(--color-text-secondary);font-size:var(--text-sm)}.sessions-list{display:flex;flex-direction:column;gap:var(--space-3)}.session-item{align-items:center;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:var(--space-4);padding:var(--space-4)}.session-item.current{background:color-mix(in srgb,var(--color-primary) 5%,#fff);border-color:var(--color-primary)}.session-icon{font-size:24px}.session-info{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.session-device{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:500}.session-location{color:var(--color-text-secondary);font-size:var(--text-xs)}.session-time{color:var(--color-text-tertiary);font-size:var(--text-xs)}.session-badge{border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;padding:var(--space-1) var(--space-2)}.session-badge.current{background:var(--color-primary);color:#fff}.activity-timeline{padding-left:var(--space-8);position:relative}.activity-timeline:before{background:var(--color-border);bottom:0;content:"";left:15px;position:absolute;top:0;width:2px}.timeline-item{animation:fadeInUp .5s ease-out;animation-fill-mode:both;padding-bottom:var(--space-5)}.timeline-marker{border:2px solid var(--color-border);height:24px;left:calc(var(--space-8)*-1 + 4px);width:24px}.marker-icon{font-size:12px}.timeline-content{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.timeline-description{color:var(--color-text-primary);font-size:var(--text-sm);margin:0 0 var(--space-2) 0}.timeline-date{color:var(--color-text-tertiary);font-size:var(--text-xs)}.load-more{margin-top:var(--space-5);text-align:center}.profile-error{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:var(--space-8);text-align:center}.profile-error .error-icon{font-size:64px;margin-bottom:var(--space-4)}.profile-error h2{color:var(--color-text-primary);font-size:var(--text-2xl);margin:0 0 var(--space-2) 0}.profile-error p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0 0 var(--space-6) 0}.btn{padding:var(--space-3) var(--space-5)}.btn-sm{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:992px){.header-content{align-items:center;flex-direction:column;padding-top:var(--space-6);text-align:center}.avatar{height:120px;width:120px}.avatar-initials{font-size:40px}.header-actions,.user-info{padding-bottom:0}.profile-tabs{justify-content:center}}@media (max-width:768px){.profile-header{padding-top:100px}.header-background{height:150px}.header-content{padding:0 var(--space-4)}.avatar{height:100px;width:100px}.avatar-initials{font-size:32px}.user-info .user-name{font-size:var(--text-xl)}.profile-tabs{gap:0;padding:0 var(--space-4)}.tab-button{flex:1 1;font-size:var(--text-xs);justify-content:center;padding:var(--space-3)}.tab-button svg{display:none}.profile-content{padding:0 var(--space-4) var(--space-6)}.profile-section{padding:var(--space-4)}.form-grid{grid-template-columns:1fr}.two-factor-status{gap:var(--space-4);text-align:center}.status-info,.two-factor-status{flex-direction:column}.session-item{flex-wrap:wrap}.session-item .btn{margin-top:var(--space-2);width:100%}}@media (max-width:480px){.profile-header{padding-bottom:var(--space-6);padding-top:80px}.header-background{height:120px}.avatar{height:80px;width:80px}.avatar-initials{font-size:24px}.user-info .user-name{font-size:var(--text-lg)}.user-info .user-email{font-size:var(--text-sm)}.section-title{flex-wrap:wrap;font-size:var(--text-base)}.edit-actions{flex-direction:column;width:100%}.edit-actions .btn{width:100%}.checkbox-label{flex-wrap:wrap}.activity-timeline{padding-left:var(--space-6)}.activity-timeline:before{left:11px}.timeline-marker{height:20px;left:calc(var(--space-6)*-1);width:20px}.marker-icon{font-size:10px}}@media (prefers-reduced-motion:reduce){.tab-panel,.timeline-item{animation:none}.avatar-overlay,.checkbox-custom,.tab-button:after{transition:none}.spinner{animation:none}}@media (prefers-contrast:high){.profile-section,.session-item,.timeline-content{border-width:2px}.tab-button.active:after{height:3px}}@media print{.profile-header{padding-top:0}.header-actions,.header-background,.profile-tabs{display:none}.profile-section{box-shadow:none;break-inside:avoid;page-break-inside:avoid}}.settings-page{background:var(--color-background);min-height:100vh}.settings-header{align-items:center;background:#fff;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-6);position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-content{flex-direction:column;gap:var(--space-1)}.header-title{align-items:center;color:var(--color-text-primary);display:flex;font-size:var(--text-2xl);font-weight:700;gap:var(--space-3);margin:0}.header-title svg{color:var(--color-primary)}.header-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.header-actions{gap:var(--space-3)}.settings-layout{display:grid;grid-template-columns:280px 1fr;margin:0 auto;max-width:1400px;min-height:calc(100vh - 100px)}.settings-nav{background:#fff;border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.nav-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-align:left;transition:all var(--transition-fast)}.nav-item:hover{background:var(--color-background)}.nav-item.active{background:color-mix(in srgb,var(--color-primary) 10%,#fff);color:var(--color-primary)}.nav-icon{align-items:center;background:var(--color-background);border-radius:var(--radius-lg);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.nav-item.active .nav-icon{background:color-mix(in srgb,var(--color-primary) 15%,#fff)}.nav-item.active .nav-icon svg{color:var(--color-primary)}.nav-text{display:flex;flex-direction:column;gap:var(--space-0-5)}.nav-title{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600}.nav-item.active .nav-title{color:var(--color-primary)}.nav-description{color:var(--color-text-tertiary);font-size:var(--text-xs)}.settings-content{max-width:800px;padding:var(--space-6)}.settings-section{animation:fadeIn .3s ease-out}.section-title{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--text-xl);font-weight:700;margin:0 0 var(--space-6) 0;padding-bottom:var(--space-4)}.setting-group{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);padding:var(--space-5)}.group-title{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;letter-spacing:.5px;margin:0 0 var(--space-4) 0;text-transform:uppercase}.group-title.danger{color:var(--color-error)}.setting-item{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-4) 0}.setting-item:last-child{border-bottom:none;padding-bottom:0}.setting-item:first-child{padding-top:0}.setting-info{flex:1 1;min-width:0}.setting-label{color:var(--color-text-primary);display:block;font-size:var(--text-base);font-weight:500;margin-bottom:var(--space-1)}.setting-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.toggle{flex-shrink:0;height:26px;width:48px}.toggle-slider{background-color:var(--color-border);border-radius:var(--radius-full);inset:0}.toggle-slider,.toggle-slider:before{transition:all var(--transition-fast)}.toggle-slider:before{box-shadow:var(--shadow-sm)}.toggle input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translateX(22px)}.toggle input:focus+.toggle-slider{box-shadow:0 0 0 3px #1a1a5e33}.theme-option,.theme-options{display:flex;gap:var(--space-2)}.theme-option{align-items:center;background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.theme-option.active,.theme-option:hover{border-color:var(--color-primary)}.theme-option.active{background:color-mix(in srgb,var(--color-primary) 5%,#fff)}.theme-icon{font-size:24px}.theme-label{color:var(--color-text-primary);font-size:var(--text-xs);font-weight:500}.font-size-options{display:flex;gap:var(--space-2)}.font-size-option{align-items:center;background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;display:flex;font-weight:600;height:40px;justify-content:center;transition:all var(--transition-fast);width:40px}.font-size-option.active,.font-size-option:hover{border-color:var(--color-primary)}.font-size-option.active{background:color-mix(in srgb,var(--color-primary) 10%,#fff);color:var(--color-primary)}.form-select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);min-width:180px;padding:var(--space-2) var(--space-4);padding-right:var(--space-8)}.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a1a5e1a;outline:none}.data-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.accessibility-info{background:color-mix(in srgb,var(--color-primary) 5%,#fff);border:1px solid color-mix(in srgb,var(--color-primary) 20%,#fff);border-radius:var(--radius-xl);display:flex;gap:var(--space-4);margin-top:var(--space-5);padding:var(--space-5)}.info-icon{flex-shrink:0;font-size:32px}.info-content h4{color:var(--color-text-primary);font-size:var(--text-base);font-weight:600;margin:0 0 var(--space-2) 0}.info-content p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.info-content a{color:var(--color-primary);text-decoration:none}.info-content a:hover{text-decoration:underline}.account-info{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);padding:var(--space-5)}.info-item{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:var(--space-3) 0}.info-item:last-of-type{border-bottom:none;margin-bottom:var(--space-4)}.info-label{color:var(--color-text-secondary)}.info-label,.info-value{font-size:var(--text-sm)}.info-value{color:var(--color-text-primary);font-weight:500}.danger-zone{background:color-mix(in srgb,var(--color-error) 2%,#fff);border-color:color-mix(in srgb,var(--color-error) 30%,#fff)}.danger-actions{flex-direction:column}.danger-action,.danger-actions{display:flex;gap:var(--space-4)}.danger-action{align-items:center;justify-content:space-between}.action-info h4{color:var(--color-text-primary);font-size:var(--text-base);font-weight:500;margin:0 0 var(--space-1) 0}.action-info p{color:var(--color-text-secondary);margin:0}.action-info p,.btn{font-size:var(--text-sm)}.btn{border-radius:var(--radius-lg);gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast);white-space:nowrap}.btn-secondary{background:var(--color-background);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-background-secondary)}.btn-ghost{background:#0000;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-background);color:var(--color-text-primary)}.btn-danger{background:var(--color-error)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 80%,#000)}.btn-danger-outline{border:1px solid var(--color-error);color:var(--color-error)}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 10%,#fff)}.spinner{border:2px solid #0000;border-top-color:initial;height:16px;width:16px}.settings-error{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:var(--space-8);text-align:center}.settings-error .error-icon{font-size:64px;margin-bottom:var(--space-4)}.settings-error h2{color:var(--color-text-primary);font-size:var(--text-2xl);margin:0 0 var(--space-2) 0}.settings-error p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0 0 var(--space-6) 0}@media (max-width:992px){.settings-layout{grid-template-columns:1fr}.settings-nav{border-bottom:1px solid var(--color-border);border-right:none;flex-direction:row;gap:var(--space-2);overflow-x:auto;padding:var(--space-2) var(--space-4)}.nav-item{flex-direction:column;min-width:80px;padding:var(--space-3)}.nav-icon{height:36px;width:36px}.nav-text{align-items:center}.nav-description{display:none}.settings-content{max-width:none;padding:var(--space-4)}}@media (max-width:768px){.settings-header{align-items:flex-start;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}.header-title{font-size:var(--text-xl)}.header-actions{width:100%}.header-actions .btn{flex:1 1}.setting-item{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.theme-options{flex-wrap:wrap}.theme-option{flex:1 1;min-width:80px}.data-actions{flex-direction:column}.data-actions .btn{width:100%}.danger-action{align-items:flex-start;flex-direction:column}.danger-action .btn{width:100%}}@media (max-width:480px){.nav-item,.settings-nav{padding:var(--space-2)}.nav-item{min-width:60px}.nav-icon{height:32px;width:32px}.nav-icon svg{height:16px;width:16px}.nav-title{font-size:var(--text-xs)}.setting-group{padding:var(--space-4)}.accessibility-info{flex-direction:column;text-align:center}.form-select{min-width:auto;width:100%}}@media (prefers-reduced-motion:reduce){.settings-section{animation:none}.font-size-option,.nav-item,.theme-option,.toggle-slider,.toggle-slider:before{transition:none}.spinner{animation:none}}@media (prefers-contrast:high){.account-info,.setting-group{border-width:2px}.toggle-slider{border:2px solid}.font-size-option,.theme-option{border-width:3px}}@media print{.settings-header,.settings-nav{display:none}.settings-layout{grid-template-columns:1fr}.setting-group{box-shadow:none;break-inside:avoid;page-break-inside:avoid}}[data-theme=dark] .settings-page{background:#0f172a}[data-theme=dark] .settings-header{background:#1e293b;border-bottom-color:#334155}[data-theme=dark] .header-title{color:#f8fafc}[data-theme=dark] .header-subtitle{color:#94a3b8}[data-theme=dark] .settings-nav{background:#1e293b;border-right-color:#334155}[data-theme=dark] .nav-item{color:#94a3b8}[data-theme=dark] .nav-item:hover{background:#334155;color:#f8fafc}[data-theme=dark] .nav-item.active{background:#4f46e533;color:#818cf8}[data-theme=dark] .nav-icon{background:#334155}[data-theme=dark] .nav-item.active .nav-icon{background:#4f46e540}[data-theme=dark] .nav-title{color:#e2e8f0}[data-theme=dark] .nav-item.active .nav-title{color:#818cf8}[data-theme=dark] .nav-description{color:#64748b}[data-theme=dark] .settings-content{background:#0f172a}[data-theme=dark] .section-title{border-bottom-color:#334155;color:#f8fafc}[data-theme=dark] .setting-group{background:#1e293b;border-color:#334155}[data-theme=dark] .setting-item{border-bottom-color:#334155}[data-theme=dark] .setting-label{color:#fff!important}[data-theme=dark] .setting-description{color:#cbd5e1!important}[data-theme=dark] .theme-option{background:#0f172a;border-color:#334155}[data-theme=dark] .theme-option:hover{background:#1e293b;border-color:#4f46e5}[data-theme=dark] .theme-option.active{background:#4f46e533;border-color:#4f46e5}[data-theme=dark] .theme-label{color:#f8fafc!important}[data-theme=dark] .font-size-option{background:#0f172a;border-color:#334155;color:#f8fafc}[data-theme=dark] .font-size-option:hover{background:#1e293b;border-color:#4f46e5}[data-theme=dark] .font-size-option.active{background:#4f46e533;border-color:#4f46e5;color:#818cf8}[data-theme=dark] .form-select{background:#0f172a;border-color:#334155;color:#f8fafc}[data-theme=dark] .form-select:focus{border-color:#4f46e5}[data-theme=dark] .toggle-slider{background:#475569}[data-theme=dark] .toggle input:checked+.toggle-slider{background:#4f46e5}[data-theme=dark] .group-title{color:#94a3b8}[data-theme=dark] .account-info{background:#1e293b;border-color:#334155}[data-theme=dark] .info-item{border-bottom-color:#334155}[data-theme=dark] .accessibility-info{background:#4f46e526;border-color:#4f46e54d}[data-theme=dark] .info-content h4{color:#f8fafc}[data-theme=dark] .info-content p{color:#94a3b8}[data-theme=dark] .danger-zone{background:#ef44441a;border-color:#ef44444d}[data-theme=dark] .action-info h4{color:#f8fafc}[data-theme=dark] .action-info p,[data-theme=dark] .btn-ghost{color:#94a3b8}[data-theme=dark] .btn-ghost:hover:not(:disabled){background:#334155;color:#f8fafc}.setting-item.vertical{align-items:stretch;flex-direction:column;gap:.75rem}.setting-item.vertical .setting-info{margin-bottom:0}.form-input{border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.form-input::placeholder{color:#9ca3af}.logo-upload-section{align-items:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;display:flex;gap:1.5rem;padding:1.5rem}.logo-preview{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-shrink:0;height:120px;justify-content:center;overflow:hidden;width:120px}.logo-preview img{height:100%;object-fit:contain;width:100%}.logo-placeholder{color:#9ca3af;text-align:center}.logo-placeholder span{display:block;font-size:2.5rem;margin-bottom:.5rem}.logo-placeholder p{font-size:.85rem;margin:0}.logo-actions{flex:1 1}.logo-actions .setting-description{margin-bottom:1rem}.organization-summary{background:linear-gradient(135deg,#22c55e1a,#22c55e0d);border:1px solid #22c55e33;border-radius:12px;display:flex;gap:1rem;margin-top:1.5rem;padding:1.25rem}.summary-icon{flex-shrink:0;font-size:1.5rem}.summary-content h4{color:#166534;font-size:1rem;margin:0 0 .5rem}.summary-content p{color:#4b5563;font-size:.9rem;line-height:1.5;margin:0}[data-theme=dark] .form-input{background:#0f172a;border-color:#334155;color:#f8fafc}[data-theme=dark] .form-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e533}[data-theme=dark] .form-input::placeholder{color:#64748b}[data-theme=dark] .logo-upload-section{background:#0f172a;border-color:#334155}[data-theme=dark] .logo-preview{background:#1e293b;border-color:#334155}[data-theme=dark] .logo-placeholder{color:#64748b}[data-theme=dark] .organization-summary{background:linear-gradient(135deg,#22c55e26,#22c55e0d);border-color:#22c55e4d}[data-theme=dark] .summary-content h4{color:#4ade80}[data-theme=dark] .summary-content p{color:#94a3b8}.billing-page{margin:0 auto;max-width:1400px;padding:2rem}.billing-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;height:60vh;justify-content:center}.billing-loading .spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top:4px solid var(--color-primary,#c4a000);height:50px;width:50px}.billing-header{align-items:center;border-bottom:2px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.billing-header h1{color:#1f2937;font-size:2rem;font-weight:700;margin:0 0 .5rem}.billing-header p{color:#6b7280;margin:0}.pay-now-btn{align-items:center;background:linear-gradient(135deg,#c4a000,#a88c00);background:linear-gradient(135deg,var(--color-primary,#c4a000) 0,#a88c00 100%);border:none;border-radius:12px;box-shadow:0 4px 14px #c4a0004d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .3s ease}.pay-now-btn:hover{box-shadow:0 6px 20px #c4a00066;transform:translateY(-2px)}.pay-now-btn .btn-icon{font-size:1.25rem}.billing-summary-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(4,1fr);margin-bottom:2rem}.summary-card{align-items:flex-start;border:1px solid #f3f4f6;border-radius:16px;gap:1rem;transition:all .3s ease}.summary-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-4px)}.summary-card .card-icon{align-items:center;background:#f9fafb;border-radius:12px;display:flex;font-size:2rem;height:56px;justify-content:center;width:56px}.balance-card .card-icon{background:linear-gradient(135deg,#fef3c7,#fde68a)}.paid-card .card-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.due-card .card-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.overdue-card .card-icon{background:linear-gradient(135deg,#fee2e2,#fecaca)}.summary-card .card-content{display:flex;flex-direction:column;gap:.25rem}.summary-card .card-label{color:#6b7280;font-size:.875rem;font-weight:500}.summary-card .card-value{color:#1f2937;font-size:1.5rem;font-weight:700}.summary-card .card-subtitle{color:#9ca3af;font-size:.75rem}.billing-tabs{background:#f9fafb;border-radius:12px;display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding:.5rem}.tab-btn{padding:.75rem 1.25rem;transition:all .2s ease}.tab-btn:hover{background:#fff;color:#1f2937}.tab-btn.active{background:#fff;box-shadow:0 2px 8px #00000014;color:#c4a000;color:var(--color-primary,#c4a000)}.billing-content{background:#fff;border:1px solid #f3f4f6;border-radius:16px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.billing-section{margin-bottom:2rem}.billing-section:last-child{margin-bottom:0}.billing-section h2{border-bottom:1px solid #f3f4f6;color:#1f2937;font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding-bottom:.75rem}.schedules-list{display:flex;flex-direction:column;gap:1rem}.schedule-item{align-items:center;background:#f9fafb;border-radius:12px;display:flex;gap:1.5rem;padding:1rem 1.25rem;transition:all .2s ease}.schedule-item:hover{background:#f3f4f6}.schedule-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.schedule-type{color:#1f2937;font-weight:600}.schedule-description{color:#6b7280;font-size:.875rem}.schedule-date{color:#9ca3af;font-size:.75rem}.schedule-amount{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.schedule-amount .amount{color:#1f2937;font-size:1.125rem;font-weight:700}.payments-list{display:flex;flex-direction:column;gap:.75rem}.payment-item{background:#f9fafb;border-radius:10px;gap:1rem;padding:1rem;transition:all .2s ease}.payment-item:hover{background:#f3f4f6}.payment-icon{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 4px #0000000d;display:flex;font-size:1.25rem;height:44px;justify-content:center;width:44px}.payment-info{display:flex;flex:1 1;flex-direction:column;gap:.125rem}.payment-description{color:#1f2937;font-weight:500}.payment-date{color:#6b7280;font-size:.8125rem}.payment-ref{color:#9ca3af;font-family:monospace;font-size:.75rem}.payment-amount{align-items:flex-end;display:flex;flex-direction:column;gap:.375rem}.payment-amount .amount{color:#1f2937;font-weight:600}.status-badge{display:inline-flex;font-size:.6875rem;letter-spacing:.025em;text-transform:uppercase}.timeline{padding-left:3rem;position:relative}.timeline:before{background:#e5e7eb;bottom:0;content:"";left:1rem;position:absolute;top:0;width:2px}.timeline-item{padding-bottom:2rem;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-marker{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:50%;display:flex;height:32px;justify-content:center;left:-2rem;position:absolute;width:32px;z-index:1}.timeline-item.paid .timeline-marker{background:#10b981;border-color:#10b981;color:#fff}.timeline-item.due .timeline-marker,.timeline-item.overdue .timeline-marker{background:#f59e0b;border-color:#f59e0b;color:#fff}.timeline-number{font-size:.75rem;font-weight:600}.timeline-content{background:#f9fafb;border-radius:12px;padding:1.25rem}.timeline-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.timeline-header h3{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.timeline-description{color:#6b7280;font-size:.875rem;margin-bottom:1rem}.timeline-details{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.detail-item{color:#6b7280;font-size:.8125rem}.detail-item strong{color:#1f2937}.history-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.filter-date,.filter-select{background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#374151;font-size:.875rem;min-width:160px;padding:.625rem 1rem}.filter-date:focus,.filter-select:focus{border-color:#c4a000;border-color:var(--color-primary,#c4a000);box-shadow:0 0 0 3px #c4a0001a;outline:none}.history-table-container{overflow-x:auto}.history-table{border-collapse:collapse;width:100%}.history-table th{background:#f9fafb;border-bottom:2px solid #f3f4f6;color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.history-table td{border-bottom:1px solid #f3f4f6;color:#374151;font-size:.875rem;padding:1rem}.history-table tr:hover td{background:#f9fafb}.ref-cell{color:#6b7280;font-family:monospace;font-size:.8125rem}.amount-cell{color:#1f2937;font-weight:600}.invoices-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.invoice-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .3s ease}.invoice-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-4px)}.invoice-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.invoice-number{color:#1f2937;font-family:monospace;font-weight:600}.invoice-body{padding:1.25rem}.invoice-establishment{color:#1f2937;font-weight:600;margin-bottom:.5rem}.invoice-date,.invoice-due{color:#6b7280;font-size:.8125rem;margin-bottom:.25rem}.invoice-items-preview{display:flex;flex-direction:column;gap:.25rem;margin-top:1rem}.item-preview{border-left:2px solid #e5e7eb;color:#6b7280;font-size:.8125rem;padding:.25rem 0 .25rem .75rem}.more-items{color:#9ca3af;font-size:.75rem;font-style:italic}.invoice-footer{align-items:center;background:#fff;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.invoice-total{color:#1f2937;font-size:1.25rem;font-weight:700}.methods-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.methods-header h2{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0}.methods-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.method-card{align-items:center;background:#f9fafb;border:2px solid #0000;border-radius:12px;display:flex;gap:1rem;padding:1.25rem;transition:all .2s ease}.method-card.default{background:#fffbeb;border-color:#c4a000;border-color:var(--color-primary,#c4a000)}.method-card .method-icon{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 4px #0000000d;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.method-card .method-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.method-card .method-label{color:#1f2937;font-weight:600}.method-card .method-provider{color:#6b7280;font-size:.75rem}.default-badge{background:#c4a0001a;border-radius:4px;color:#c4a000;color:var(--color-primary,#c4a000);display:inline-block;font-size:.6875rem;font-weight:600;padding:.125rem .5rem;width:-webkit-fit-content;width:fit-content}.method-actions{display:flex;flex-direction:column;gap:.5rem}.empty-state{padding:3rem 2rem}.modal-overlay{inset:0}.payment-modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #f3f4f6}.close-btn{background:#f3f4f6;border-radius:8px;color:#6b7280;transition:all .2s ease}.close-btn:hover{background:#e5e7eb;color:#1f2937}.payment-summary{background:#f9fafb;border-radius:10px;margin-bottom:1.5rem;padding:1rem}.payment-summary p{color:#374151;font-size:.875rem;margin:.5rem 0}.payment-form .form-group{margin-bottom:1rem}.payment-form label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.payment-form .form-control{border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.payment-form .form-control:focus{border-color:#c4a000;border-color:var(--color-primary,#c4a000);box-shadow:0 0 0 3px #c4a0001a;outline:none}.payment-methods-section{margin-top:1.5rem}.payment-methods-section h3{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:1rem}.payment-methods-list{display:flex;flex-direction:column;gap:.75rem}.payment-method-option{align-items:center;background:#f9fafb;border-radius:10px;cursor:pointer;display:flex;gap:.75rem;padding:.875rem 1rem;transition:all .2s ease}.payment-method-option:hover{background:#f3f4f6}.payment-method-option input[type=radio]{accent-color:#c4a000;accent-color:var(--color-primary,#c4a000)}.payment-method-option .method-icon{font-size:1.25rem}.payment-method-option .method-label{color:#374151;font-size:.875rem}.modal-footer{border-top:1px solid #f3f4f6}.btn-sm{font-size:.8125rem}.btn-primary{background:#c4a000;background:var(--color-primary,#c4a000)}.btn-primary:hover{background:#a88c00}.btn-outline{border:1px solid #e5e7eb;color:#374151}.btn-outline:hover{background:#f9fafb;border-color:#d1d5db}.btn-danger-outline{background:#0000;border:1px solid #fecaca;color:#ef4444}.btn-danger-outline:hover{background:#fef2f2}@media (max-width:1024px){.billing-summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.billing-page{padding:1rem}.billing-header{align-items:flex-start;flex-direction:column;gap:1rem}.pay-now-btn{justify-content:center;width:100%}.billing-summary-cards{grid-template-columns:1fr}.summary-card{padding:1rem}.billing-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;padding:.25rem}.tab-btn{flex-shrink:0;padding:.625rem 1rem}.schedule-item{align-items:flex-start;flex-direction:column;gap:1rem}.schedule-amount{align-items:flex-start;flex-direction:row;justify-content:space-between;width:100%}.payment-item{flex-wrap:wrap}.payment-amount{border-top:1px solid #e5e7eb;flex-direction:row;justify-content:space-between;margin-top:.5rem;padding-top:.5rem;width:100%}.history-filters{flex-direction:column}.filter-date,.filter-select{width:100%}.history-table{font-size:.8125rem}.history-table td,.history-table th{padding:.75rem .5rem}.invoices-grid{grid-template-columns:1fr}.methods-header{align-items:flex-start;flex-direction:column;gap:1rem}.methods-grid{grid-template-columns:1fr}.method-card{align-items:flex-start;flex-direction:column}.method-actions{flex-direction:row;width:100%}.timeline{padding-left:2.5rem}.timeline-marker{height:28px;left:-1.75rem;width:28px}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}.data-import-export-page{margin:0 auto;max-width:1200px;padding:2rem}.data-stats-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{border:1px solid #eee}.stat-card.success{border-left:4px solid #10b981}.stat-icon{background:#f5f5f5;font-size:1.5rem;height:48px;width:48px}.stat-content .stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.stat-content .stat-label{color:#666;font-size:.85rem}.import-section{max-width:800px}.import-step h3{color:#1a1a2e;font-size:1.1rem;margin-bottom:1.5rem}.form-input,.form-select{font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s;width:100%}.form-input:focus,.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-select.unmapped{background-color:#fffbeb;border-color:#fbbf24}.template-info{background:#f8fafc;border-radius:10px;margin-bottom:1.5rem;padding:1.25rem}.template-info h4{color:#666;font-size:.9rem;margin-bottom:.75rem}.template-fields{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.field-tag{background:#fff;border:1px solid #ddd;border-radius:20px;color:#555;font-size:.85rem;padding:.35rem .75rem}.field-tag.required{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.file-upload-zone{margin-top:1.5rem}.upload-area{border:2px dashed #ddd;border-radius:12px;cursor:pointer;padding:3rem 2rem;text-align:center;transition:all .2s}.upload-area:hover{background:#f8fafc;border-color:#3b82f6}.upload-icon{font-size:3rem;margin-bottom:1rem}.upload-area p{color:#333;font-size:1rem;margin-bottom:.5rem}.upload-hint{color:#999;font-size:.85rem}.file-info{background:#f0f9ff;border-radius:8px;display:flex;font-size:.9rem;gap:1rem;margin-bottom:1.5rem;padding:1rem}.file-name{color:#1a1a2e;font-weight:500}.file-size,.row-count{color:#666}.mapping-table{margin-bottom:1.5rem;overflow-x:auto}.mapping-table table{border-collapse:collapse;width:100%}.mapping-table td,.mapping-table th{border-bottom:1px solid #eee;padding:.75rem 1rem;text-align:left}.mapping-table th{background:#f8fafc;color:#555;font-size:.85rem;font-weight:600}.mapping-table td select{min-width:150px;width:100%}.preview-cell{color:#666;font-size:.9rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-actions{gap:1rem;justify-content:flex-end;padding-top:1.5rem}.validation-summary{margin-bottom:1.5rem}.validation-status{align-items:center;border-radius:10px;display:flex;font-weight:500;gap:.75rem;margin-bottom:1rem;padding:1rem}.validation-status.valid{background:#ecfdf5;color:#059669}.validation-status.invalid{background:#fef2f2;color:#dc2626}.status-icon{font-size:1.25rem}.validation-stats{display:flex;gap:2rem}.validation-stat{text-align:center}.validation-stat .stat-label{color:#666;display:block;font-size:.8rem;margin-bottom:.25rem}.validation-stat .stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.validation-stat.success .stat-value{color:#10b981}.validation-stat.error .stat-value{color:#ef4444}.validation-errors{background:#fef2f2;border-radius:10px;padding:1rem}.validation-errors h4{color:#dc2626;margin-bottom:.75rem}.errors-list{max-height:200px;overflow-y:auto}.error-item{background:#fff;border-radius:6px;font-size:.9rem;margin-bottom:.5rem;padding:.5rem .75rem}.error-item .error-location{color:#333;display:block;font-weight:500;margin-bottom:.25rem}.error-item .error-message{color:#dc2626}.error-item.warning .error-message{color:#f59e0b}.more-errors{color:#666;font-size:.85rem;font-style:italic;margin-top:.5rem}.export-section{max-width:800px}.export-config{display:flex;flex-direction:column;gap:1.5rem}.config-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.date-range{align-items:center;display:flex;gap:1rem}.date-range input{flex:1 1}.date-range span{color:#666}.fields-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.fields-actions{display:flex;gap:1rem}.btn-link{font-size:.85rem;padding:0}.btn-link:hover{text-decoration:underline}.fields-grid{grid-gap:.75rem;background:#f8fafc;border-radius:10px;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));padding:1rem}.field-checkbox{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem}.field-checkbox input{cursor:pointer;height:18px;width:18px}.export-actions{border-top:1px solid #eee;padding-top:1.5rem;text-align:center}.history-section{max-width:900px}.history-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.history-tab{background:#f5f5f5;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem 1.25rem;transition:all .2s}.history-tab:hover{background:#e5e5e5}.history-tab.active{background:#1a1a2e;color:#fff}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-item{align-items:center;background:#f8fafc;border-radius:10px;display:flex;gap:1rem;padding:1rem;transition:background .2s}.history-item:hover{background:#f1f5f9}.history-icon{font-size:1.5rem;text-align:center;width:40px}.history-content{flex:1 1}.history-title{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.entity-badge{background:#3b82f6;border-radius:4px;color:#fff;font-size:.75rem;font-weight:500;padding:.2rem .6rem}.format-badge{background:#e5e5e5;border-radius:4px;color:#555;padding:.2rem .5rem}.history-meta{color:#666;display:flex;font-size:.85rem;gap:1rem}.status-badge{padding:.2rem .6rem}.status-badge.completed{background:#ecfdf5;color:#059669}.status-badge.failed{background:#fef2f2;color:#dc2626}.status-badge.generating,.status-badge.processing{background:#fffbeb;color:#d97706}.empty-hint{font-size:.9rem;margin-top:.5rem}.scheduled-section{max-width:900px}.scheduled-list{display:flex;flex-direction:column;gap:1rem}.scheduled-item{align-items:center;background:#f8fafc;border:1px solid #eee;border-radius:10px;display:flex;justify-content:space-between;padding:1.25rem}.scheduled-info h4{color:#1a1a2e;font-size:1rem;margin-bottom:.5rem}.scheduled-meta{display:flex;gap:.75rem;margin-bottom:.5rem}.frequency{background:#f3e8ff;border-radius:4px;color:#7c3aed;font-size:.75rem;padding:.2rem .6rem}.scheduled-recipients,.time{color:#666;font-size:.85rem}.scheduled-actions{align-items:center;display:flex;gap:.75rem}.btn-large{font-size:1rem;padding:1rem 2rem}.access-denied{padding:4rem 2rem}.access-denied h2{color:#dc2626;margin-bottom:1rem}@media (max-width:768px){.data-import-export-page{padding:1rem}.data-stats-cards{grid-template-columns:repeat(2,1fr)}.main-tabs{flex-wrap:wrap}.main-tabs .tab{flex:1 1;font-size:.85rem;min-width:80px;padding:.5rem .75rem;text-align:center}.config-row{grid-template-columns:1fr}.date-range{align-items:stretch;flex-direction:column}.history-item{align-items:flex-start;flex-direction:column}.history-meta{flex-wrap:wrap;gap:.5rem}.scheduled-item{align-items:flex-start;flex-direction:column;gap:1rem}.scheduled-actions{justify-content:flex-end;width:100%}}.video-conference-page{margin:0 auto;max-width:1200px;padding:2rem}.vc-stats-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:2rem}.vc-stat-card{align-items:center;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;gap:1rem;padding:1.25rem}.vc-stat-card.live{background:linear-gradient(135deg,#fef2f2,#fff);border-left:4px solid #ef4444}.vc-stat-icon{align-items:center;background:#f5f5f5;border-radius:10px;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.vc-stat-card.live .vc-stat-icon{background:#fee2e2}.vc-stat-content .vc-stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.vc-stat-content .vc-stat-label{color:#666;font-size:.85rem}.meeting-card{align-items:center;background:#f8fafc;border:1px solid #eee;border-radius:12px;display:flex;gap:1.5rem;padding:1.25rem;transition:all .2s}.meeting-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.meeting-time{min-width:80px;text-align:center}.meeting-time .day{color:#666;display:block;font-size:.85rem;text-transform:capitalize}.meeting-time .hour{color:#1a1a2e;display:block;font-size:1.25rem;font-weight:700}.meeting-info{flex:1 1}.meeting-info h4{color:#1a1a2e;font-size:1rem;margin-bottom:.5rem}.meeting-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.type-badge{font-size:.75rem;padding:.2rem .6rem}.type-badge.class{background:#dbeafe;color:#1d4ed8}.type-badge.parent_meeting{background:#fef3c7;color:#b45309}.type-badge.tutoring{background:#d1fae5;color:#047857}.type-badge.exam{background:#fee2e2;color:#b91c1c}.type-badge.staff_meeting{background:#e0e7ff;color:#4338ca}.course,.provider{color:#666;font-size:.8rem}.meeting-host{color:#888;font-size:.85rem}.meeting-actions{align-items:flex-end;flex-direction:column;gap:.5rem}.time-until{background:#f1f5f9;border-radius:6px;color:#666;font-size:.85rem;padding:.5rem 1rem}.live-meetings-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.live-meeting-card{background:linear-gradient(135deg,#1a1a2e,#2d2d44);border-radius:16px;color:#fff;padding:1.5rem}.live-badge{align-items:center;background:#ef4444;border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.5rem;margin-bottom:1rem;padding:.35rem .75rem}.live-badge .pulse{animation:pulse 1.5s infinite;background:#fff;border-radius:50%;height:8px;width:8px}.live-meeting-card h4{font-size:1.1rem;margin-bottom:1rem}.live-meta{display:flex;flex-direction:column;font-size:.9rem;gap:.5rem;margin-bottom:1.25rem;opacity:.9}.btn-full{width:100%}.virtual-classes-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.virtual-class-card{background:#fff;border:1px solid #eee;border-radius:12px;padding:1.25rem;transition:all .2s}.virtual-class-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #00000014}.virtual-class-card.inactive{background:#f8f8f8;opacity:.6}.vc-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.vc-card-header h4{color:#1a1a2e;font-size:1rem}.vc-course{color:#666;font-size:.9rem;margin-bottom:.75rem}.vc-schedule{align-items:center;background:#f8fafc;border-radius:6px;color:#555;font-size:.85rem;gap:.5rem;padding:.5rem .75rem}.vc-schedule,.vc-stats-row{display:flex;margin-bottom:1rem}.vc-stats-row{gap:1.5rem}.vc-mini-stat{text-align:center}.vc-mini-stat .value{color:#1a1a2e;display:block;font-size:1.25rem;font-weight:700}.vc-mini-stat .label{color:#888;font-size:.75rem}.next-session{border-top:1px solid #eee;color:#10b981;font-size:.85rem;padding-top:.75rem}.recordings-list{display:flex;flex-direction:column;gap:1rem}.recording-item{align-items:center;background:#f8fafc;border:1px solid #eee;border-radius:10px;display:flex;gap:1rem;padding:1rem}.recording-thumbnail{align-items:center;background:linear-gradient(135deg,#1a1a2e,#3b82f6);border-radius:8px;display:flex;height:50px;justify-content:center;width:80px}.play-icon{color:#fff;font-size:1.25rem}.recording-info{flex:1 1}.recording-info h4{color:#1a1a2e;font-size:.95rem;margin-bottom:.25rem}.recording-meta{color:#666;display:flex;flex-wrap:wrap;font-size:.8rem;gap:1rem}.recording-actions{display:flex;gap:.5rem}.toggle{display:inline-block;height:24px;position:relative;width:44px}.toggle input{height:0;opacity:0;width:0}.toggle-slider{border-radius:24px}.toggle-slider:before{height:18px;width:18px}.toggle input:checked+.toggle-slider{background-color:#10b981}.toggle input:checked+.toggle-slider:before{transform:translateX(20px)}.modal-header{border-bottom:1px solid #eee}.modal-header h3{font-size:1.1rem;margin:0}.close-btn{background:#f5f5f5;font-size:1.25rem}.close-btn:hover{background:#e5e5e5}.modal-footer{border-top:1px solid #eee}.form-input,.form-select,.form-textarea{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-textarea{min-height:80px;resize:vertical}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{background:#93c5fd}.btn-danger:hover{background:#dc2626}@media (max-width:768px){.video-conference-page{padding:1rem}.vc-stats-cards{grid-template-columns:repeat(2,1fr)}.main-tabs{flex-wrap:wrap}.main-tabs .tab{flex:1 1;font-size:.85rem;min-width:80px;padding:.5rem .75rem;text-align:center}.meeting-card{align-items:flex-start;flex-direction:column}.meeting-time{align-items:center;display:flex;gap:.5rem}.meeting-actions{flex-direction:row;justify-content:space-between;width:100%}.form-row{grid-template-columns:1fr}.recording-item{align-items:flex-start;flex-direction:column}.recording-actions{justify-content:flex-end;width:100%}}.elearning-page{margin:0 auto;max-width:1400px;padding:2rem}.page-header h1{color:#1a1a2e;font-weight:600;margin-bottom:.5rem}.page-header p{color:#666;font-size:.95rem}.el-stats-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:2rem}.el-stat-card{align-items:center;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;gap:1rem;padding:1.25rem}.el-stat-card.success{border-left:4px solid #10b981}.el-stat-icon{align-items:center;background:#f5f5f5;border-radius:10px;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.el-stat-content .el-stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.el-stat-content .el-stat-label{color:#666;font-size:.85rem}.main-tabs{border-bottom:2px solid #eee;display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.main-tabs .tab{align-items:center;background:none;border:none;border-radius:8px 8px 0 0;color:#666;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.main-tabs .tab:hover{background:#f5f5f5;color:#333}.main-tabs .tab.active{background:#3b82f6;color:#fff}.main-tabs .tab .badge{background:#ef4444;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;padding:.1rem .5rem}.tab-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;min-height:500px;padding:1.5rem;position:relative}.loading-overlay{background:#ffffffe6;border-radius:12px;position:absolute;z-index:10}.spinner{animation:spin .8s linear infinite;border:3px solid #eee;border-top-color:#3b82f6}.explore-header{display:flex;gap:1rem;margin-bottom:1.5rem}.search-bar{flex:1 1}.search-input{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.75rem 1rem .75rem 2.5rem;transition:border-color .2s;width:100%}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.search-icon{color:#999;left:.75rem;position:absolute;top:50%;transform:translateY(-50%)}.filter-select{border:1px solid #ddd;border-radius:8px;font-size:.95rem;min-width:150px;padding:.75rem 1rem}.courses-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.course-card{background:#fff;border:1px solid #eee;border-radius:16px;overflow:hidden;transition:all .3s}.course-card:hover{box-shadow:0 12px 24px #0000001a;transform:translateY(-4px)}.course-thumbnail{align-items:flex-end;display:flex;height:140px;padding:1rem;position:relative}.difficulty-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:20px;font-size:.75rem;padding:.35rem .75rem}.difficulty-badge.beginner{background:#10b981e6}.difficulty-badge.intermediate{background:#f59e0be6}.difficulty-badge.advanced{background:#ef4444e6}.course-content{padding:1.25rem}.course-content h3{color:#1a1a2e;font-size:1rem;line-height:1.4;margin-bottom:.25rem}.course-instructor{color:#666;font-size:.85rem;margin-bottom:.5rem}.course-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#555;display:-webkit-box;font-size:.9rem;margin-bottom:.75rem;overflow:hidden}.course-meta{color:#666;display:flex;font-size:.8rem;gap:1rem;margin-bottom:.75rem}.course-rating{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.star{color:#ddd}.star.filled{color:#fbbf24}.rating-text{color:#666;font-size:.85rem}.course-footer{align-items:center;border-top:1px solid #eee;display:flex;justify-content:space-between;padding-top:.75rem}.enrolled{color:#888;font-size:.8rem}.course-actions{display:flex;gap:.5rem}.section-header h3{color:#1a1a2e;font-size:1.1rem}.empty-state{color:#999}.learning-list{display:flex;flex-direction:column;gap:1rem}.learning-card{align-items:center;background:#f8fafc;border:1px solid #eee;border-radius:12px;display:flex;gap:1.5rem;padding:1.25rem}.learning-info{flex:1 1}.learning-info h4{color:#1a1a2e;font-size:1rem;margin-bottom:.5rem}.learning-stats{color:#666;display:flex;font-size:.85rem;gap:1rem}.learning-progress{align-items:center;display:flex;gap:1rem;min-width:200px}.progress-bar{background:#e5e5e5;flex:1 1}.progress-fill{background:linear-gradient(90deg,#3b82f6,#10b981)}.progress-text{color:#1a1a2e;min-width:40px}.course-detail-modal{background:#fff;border-radius:20px;max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:100%}.close-btn{background:#0000001a;border-radius:50%;height:36px;position:absolute;right:1rem;top:1rem;width:36px;z-index:10}.close-btn:hover{background:#0003}.course-detail-header{background:linear-gradient(135deg,#1a1a2e,#2d2d44);color:#fff;display:flex;gap:1.5rem;padding:2rem}.course-detail-thumbnail{align-items:flex-end;background:#ffffff1a;border-radius:12px;display:flex;flex-shrink:0;height:130px;padding:.75rem;width:200px}.course-detail-info{flex:1 1}.course-detail-info h2{font-size:1.5rem;margin-bottom:.5rem}.course-detail-info .instructor{font-size:.95rem;margin-bottom:.75rem;opacity:.9}.rating-row{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.rating-row span{font-size:.9rem;opacity:.9}.meta-row{display:flex;flex-wrap:wrap;font-size:.85rem;gap:1rem;opacity:.85}.course-detail-body{padding:1.5rem 2rem}.detail-section h3{border-bottom:2px solid #eee;color:#1a1a2e;font-size:1rem;margin-bottom:.75rem;padding-bottom:.5rem}.detail-section p{color:#555;line-height:1.6}.objectives-list,.prerequisites-list{list-style:none;margin:0;padding:0}.objectives-list li,.prerequisites-list li{color:#555;padding:.5rem 0}.objectives-list li{color:#059669}.modules-list{display:flex;flex-direction:column;gap:1rem}.module-item{border:1px solid #eee;border-radius:10px;overflow:hidden}.module-header{background:#f8fafc;gap:1rem;padding:1rem}.module-header,.module-number{align-items:center;display:flex}.module-number{background:#3b82f6;border-radius:50%;color:#fff;font-size:.9rem;font-weight:600;height:32px;justify-content:center;width:32px}.module-info h4{color:#1a1a2e;font-size:.95rem;margin-bottom:.25rem}.module-meta{color:#666;font-size:.8rem}.lessons-preview{list-style:none;margin:0;padding:0}.lessons-preview li{align-items:center;border-top:1px solid #eee;color:#555;display:flex;font-size:.9rem;gap:.5rem;padding:.75rem 1rem}.lesson-type{width:24px}.free-badge{background:#d1fae5;border-radius:4px;color:#047857;font-size:.7rem;font-weight:500;margin-left:auto;padding:.15rem .5rem}.more-lessons{color:#888;font-style:italic}.course-detail-footer{border-top:1px solid #eee;padding:1.5rem 2rem;text-align:center}.btn{font-size:.95rem}.btn-outline:hover{background:#f5f5f5;border-color:#ccc}.btn-small{padding:.5rem .75rem}.btn-large{font-size:1.1rem;padding:1rem 2.5rem}@media (max-width:768px){.elearning-page{padding:1rem}.el-stats-cards{grid-template-columns:repeat(2,1fr)}.main-tabs .tab{flex:1 1;font-size:.85rem;justify-content:center;padding:.5rem}.explore-header{flex-direction:column}.courses-grid{grid-template-columns:1fr}.learning-card{align-items:flex-start;flex-direction:column}.learning-actions,.learning-actions .btn,.learning-progress{width:100%}.course-detail-header{flex-direction:column;gap:1rem}.course-detail-thumbnail{height:100px;width:100%}.meta-row{gap:.5rem}}.accounting-page{margin:0 auto;max-width:1400px;padding:2rem}.accounting-page .page-header{margin-bottom:2rem}.accounting-page .page-header h1{color:#1a1a2e;font-size:2rem;font-weight:700;margin-bottom:.5rem}.accounting-page .page-header p{color:#666}.acc-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:.5rem;margin-bottom:2rem;overflow-x:auto;padding-bottom:0}.acc-tabs .tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:1rem 1.5rem;transition:all .2s;white-space:nowrap}.acc-tabs .tab-btn:hover{color:#e67e22}.acc-tabs .tab-btn.active{border-bottom-color:#e67e22;color:#e67e22}.loading-state{color:#666}.acc-dashboard{display:flex;flex-direction:column;gap:2rem}.acc-kpi-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.acc-kpi-card{align-items:center;background:#fff;border-left:4px solid #ccc;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:1rem;padding:1.5rem}.acc-kpi-card.cash{border-left-color:#27ae60}.acc-kpi-card.bank{border-left-color:#3498db}.acc-kpi-card.receivables{border-left-color:#e67e22}.acc-kpi-card.collection{border-left-color:#9b59b6}.acc-kpi-card .kpi-icon{font-size:2rem}.acc-kpi-card .kpi-content{display:flex;flex-direction:column}.acc-kpi-card .kpi-label{color:#666;font-size:.85rem}.acc-kpi-card .kpi-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.acc-alert{align-items:center;background:#fff3e0;border:1px solid #ffb74d;border-radius:8px;display:flex;gap:1rem;padding:1rem 1.5rem}.acc-alert.warning{background:#fff3e0;border-color:#ffb74d}.acc-alert .alert-icon{font-size:1.5rem}.acc-alert .alert-text{color:#e65100;flex:1 1}.acc-charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.acc-chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.acc-chart-card h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin-bottom:1.5rem}.daily-cash-summary{display:flex;flex-direction:column;gap:.75rem}.cash-row{background:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.cash-row.positive{background:#e8f5e9;color:#2e7d32}.cash-row.negative{background:#ffebee;color:#c62828}.cash-row.total{background:#e3f2fd;color:#1565c0;font-weight:600}.cash-details{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.cash-details h4{color:#666;font-size:.9rem;margin-bottom:.75rem}.cash-detail-row{border-bottom:1px solid #f0f0f0;display:flex;font-size:.9rem;justify-content:space-between;padding:.5rem 0}.collection-chart{display:flex;flex-direction:column;gap:.75rem}.collection-bar-row{align-items:center;display:flex;gap:1rem}.collection-bar-row .level-name{font-size:.85rem;font-weight:500;width:60px}.collection-bar-row .bar-container{background:#f0f0f0;border-radius:10px;flex:1 1;height:20px;overflow:hidden}.collection-bar-row .bar-fill{border-radius:10px;height:100%;transition:width .5s ease}.collection-bar-row .bar-fill.good{background:linear-gradient(90deg,#27ae60,#2ecc71)}.collection-bar-row .bar-fill.medium{background:linear-gradient(90deg,#f39c12,#f1c40f)}.collection-bar-row .bar-fill.low{background:linear-gradient(90deg,#e74c3c,#c0392b)}.collection-bar-row .rate-value{font-size:.9rem;font-weight:600;text-align:right;width:45px}.acc-transactions-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.acc-transactions-card h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.acc-table{border-collapse:collapse;width:100%}.acc-table td,.acc-table th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.acc-table th{color:#666;font-size:.85rem;font-weight:600;text-transform:uppercase}.acc-table tbody tr:hover{background:#f8f9fa}.acc-table .positive{color:#27ae60;font-weight:600}.acc-table .negative{color:#e74c3c;font-weight:600}.acc-table .debit{color:#e67e22}.acc-table .credit{color:#27ae60}.acc-table tfoot td{background:#f8f9fa;font-weight:600}.empty-message{color:#999;padding:2rem;text-align:center}.acc-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.filter-group select{min-width:200px}.acc-accounts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:300px 1fr}.acc-accounts-panel,.acc-categories-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.acc-accounts-panel h3,.acc-categories-panel h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.categories-list{display:flex;flex-direction:column;gap:.5rem}.category-item{background:#f8f9fa;border-radius:6px;display:flex;font-size:.9rem;gap:.75rem;padding:.75rem}.category-item .cat-code{color:#666;font-weight:600}.category-item.class-4{border-left:3px solid #e67e22}.category-item.class-5{border-left:3px solid #3498db}.category-item.class-6{border-left:3px solid #e74c3c}.category-item.class-7{border-left:3px solid #27ae60}.account-code{font-family:monospace;font-weight:600}.journals-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.journal-card{background:#fff;border-radius:12px;border-top:4px solid #ccc;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:1.5rem;transition:transform .2s}.journal-card:hover{transform:translateY(-2px)}.journal-card.caisse{border-top-color:#27ae60}.journal-card.banque{border-top-color:#3498db}.journal-card.od{border-top-color:#9b59b6}.journal-card.ventes{border-top-color:#e67e22}.journal-header{align-items:baseline;display:flex;gap:.75rem;margin-bottom:.5rem}.journal-code{color:#1a1a2e;font-size:1.5rem;font-weight:700}.journal-name{color:#666;font-size:.9rem}.journal-footer{color:#999;font-size:.85rem}.journal-entries h3{color:#1a1a2e;font-size:1.2rem;font-weight:600;margin-bottom:1.5rem}.entries-list{display:flex;flex-direction:column;gap:1.5rem}.entry-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.entry-header{align-items:center;display:flex;gap:1rem;margin-bottom:.75rem}.entry-number{font-family:monospace;font-weight:600}.entry-date{color:#666}.entry-status{border-radius:20px;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.entry-status.draft{background:#fff3e0;color:#e65100}.entry-status.validated{background:#e3f2fd;color:#1565c0}.entry-status.posted{background:#e8f5e9;color:#2e7d32}.entry-description{color:#1a1a2e;font-size:1rem;margin-bottom:1rem}.entry-lines{margin-bottom:1rem;width:100%}.entry-lines th{color:#999;font-size:.8rem;text-transform:uppercase}.entry-footer{border-top:1px solid #e0e0e0;color:#666;display:flex;font-size:.85rem;justify-content:space-between;padding-top:.75rem}.entry-footer .balanced{color:#27ae60}.entry-footer .unbalanced{color:#e74c3c}.acc-fees{display:flex;flex-direction:column;gap:2rem}.fees-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.fee-card{background:#fff;border-left:4px solid #ccc;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.fee-card.inscription{border-left-color:#9b59b6}.fee-card.scolarite_mensuelle{border-left-color:#3498db}.fee-card.cantine{border-left-color:#27ae60}.fee-card.transport{border-left-color:#e67e22}.fee-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.fee-type{color:#666;font-size:.8rem;text-transform:uppercase}.badge{border-radius:4px;font-size:.7rem;padding:.25rem .5rem}.badge.active{background:#e8f5e9;color:#2e7d32}.fee-name{color:#1a1a2e;font-size:1rem;font-weight:600;margin-bottom:.5rem}.fee-amount{color:#e67e22;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.fee-frequency,.fee-levels{color:#666;font-size:.85rem}.discounts-section h3{color:#1a1a2e;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.discounts-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.discount-card{background:#fff;border-left:4px solid #ccc;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.discount-card.fratrie{border-left-color:#e67e22}.discount-card.merite{border-left-color:#f39c12}.discount-card.personnel{border-left-color:#9b59b6}.discount-card.bourse{border-left-color:#27ae60}.discount-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.discount-type{color:#666;font-size:.8rem}.discount-name{color:#1a1a2e;font-weight:600;margin-bottom:.5rem}.discount-value{color:#27ae60;font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.discount-conditions{color:#666;font-size:.85rem;font-style:italic}.acc-reports,.reports-grid{display:flex;flex-direction:column;gap:2rem}.report-card{padding:1.5rem}.report-card.full-width{width:100%}.report-card h3{color:#1a1a2e;font-size:1.2rem;font-weight:600}.balance-status,.report-card h3{margin-bottom:1rem}.status-badge{padding:.5rem 1rem}.status-badge.success{background:#e8f5e9;color:#2e7d32}.status-badge.error{background:#ffebee;color:#c62828}.trial-balance{font-size:.85rem;overflow-x:auto}.trial-balance th{text-align:center}.trial-balance td{text-align:right}.trial-balance td:first-child,.trial-balance td:nth-child(2){text-align:left}.aged-summary{border-bottom:1px solid #e0e0e0;display:flex;gap:2rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.aged-stat{display:flex;flex-direction:column}.aged-stat .stat-label{color:#666;font-size:.85rem}.aged-stat .stat-value{color:#1a1a2e;font-size:1.5rem;font-weight:700}.aged-receivables td.current{background:#e8f5e9}.aged-receivables td.days30{background:#fff8e1}.aged-receivables td.days60{background:#fff3e0}.aged-receivables td.days90{background:#ffebee}.aged-receivables td.over120{background:#fce4ec;color:#c62828;font-weight:600}.export-buttons{display:flex;gap:1rem;justify-content:flex-end}@media (max-width:768px){.accounting-page{padding:1rem}.acc-tabs{flex-wrap:nowrap;overflow-x:auto}.acc-tabs .tab-btn{font-size:.85rem;padding:.75rem 1rem}.acc-accounts-grid{grid-template-columns:1fr}.acc-kpi-grid{grid-template-columns:1fr 1fr}.acc-charts-grid{grid-template-columns:1fr}.aged-summary{flex-direction:column;gap:1rem}}.invoicing-page{margin:0 auto;max-width:1400px;padding:2rem}.invoicing-page .page-header{margin-bottom:2rem}.invoicing-page .page-header h1{color:#1a1a2e;font-size:2rem;font-weight:700;margin-bottom:.5rem}.invoicing-page .page-header p{color:#666}.inv-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:.5rem;margin-bottom:2rem;overflow-x:auto}.inv-tabs .tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;padding:1rem 1.5rem;transition:all .2s;white-space:nowrap}.inv-tabs .tab-btn:hover{color:#e67e22}.inv-tabs .tab-btn.active{border-bottom-color:#e67e22;color:#e67e22}.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem}.loading-state .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#e67e22;height:40px;margin-bottom:1rem;width:40px}.inv-kpi-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:2rem}.inv-kpi-card{align-items:center;background:#fff;border-left:4px solid #ccc;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:1rem;padding:1.5rem}.inv-kpi-card.total{border-left-color:#3498db}.inv-kpi-card.paid{border-left-color:#27ae60}.inv-kpi-card.pending{border-left-color:#f39c12}.inv-kpi-card.overdue{border-left-color:#e74c3c}.inv-kpi-card .kpi-icon{font-size:2rem}.inv-kpi-card .kpi-content{display:flex;flex-direction:column}.inv-kpi-card .kpi-label{color:#666;font-size:.85rem}.inv-kpi-card .kpi-value{color:#1a1a2e;font-size:1.4rem;font-weight:700}.inv-kpi-card .kpi-count,.inv-kpi-card .kpi-rate{color:#27ae60;font-size:.85rem;font-weight:500}.inv-charts-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:2rem}.inv-chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.inv-chart-card h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin-bottom:1.5rem}.payment-methods-chart{display:flex;flex-direction:column;gap:1rem}.pm-row{align-items:center;display:flex;gap:1rem}.pm-icon{font-size:1.5rem;width:32px}.pm-name{font-size:.9rem;width:120px}.pm-bar-container{background:#f0f0f0;border-radius:12px;flex:1 1;height:24px;overflow:hidden}.pm-bar{background:linear-gradient(90deg,#e67e22,#f39c12);border-radius:12px;height:100%;transition:width .5s ease}.pm-amount{font-size:.9rem;font-weight:600;text-align:right;width:100px}.status-chart{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.status-item{background:#f8f9fa;border-radius:8px;padding:1rem}.status-item.paid{background:#e8f5e9}.status-item.sent{background:#e3f2fd}.status-item.partial{background:#fff8e1}.status-item.overdue{background:#ffebee}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.status-count{font-weight:600}.status-amount{font-size:1.1rem;font-weight:700}.status-badge.large{font-size:.9rem;padding:.5rem 1rem}.badge-draft{background:#eceff1;color:#607d8b}.badge-sent{background:#e3f2fd;color:#1976d2}.badge-paid{background:#e8f5e9;color:#388e3c}.badge-partial{background:#fff8e1;color:#f57c00}.badge-overdue{background:#ffebee;color:#d32f2f}.badge-cancelled{background:#fafafa;color:#9e9e9e}.inv-urgent-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.inv-urgent-section h3{color:#e74c3c;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.urgent-invoices{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.urgent-invoice-card{background:#fff5f5;border:1px solid #ffcdd2;border-radius:8px;padding:1rem}.urgent-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.urgent-header .invoice-number{font-family:monospace;font-weight:600}.urgent-header .days-overdue{color:#d32f2f;font-size:.85rem;font-weight:500}.urgent-amount,.urgent-student{margin-bottom:.5rem}.urgent-amount{color:#d32f2f;font-size:1.25rem;font-weight:700}.urgent-contact{color:#666;font-size:.9rem;margin-bottom:1rem}.urgent-actions{display:flex;gap:.5rem}.inv-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.filter-group label{color:#666;font-size:.9rem}.filter-group select{border:1px solid #ddd;font-size:.9rem}.inv-table{background:#fff;border-collapse:collapse;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;width:100%}.inv-table td,.inv-table th{border-bottom:1px solid #e0e0e0;padding:1rem;text-align:left}.inv-table th{color:#666;font-size:.85rem;font-weight:600;text-transform:uppercase}.inv-table tbody tr:hover,.inv-table th{background:#f8f9fa}.inv-table .invoice-number,.inv-table .receipt-number{font-family:monospace;font-weight:600}.inv-table .paid{color:#27ae60}.inv-table .remaining{color:#e74c3c;font-weight:600}.inv-table .overdue-date{color:#d32f2f}.inv-table .amount{font-weight:600}.inv-table .actions{display:flex;gap:.5rem}.btn-icon{border-radius:4px;font-size:1.1rem;transition:background .2s}.btn-icon:hover{background:#f0f0f0}.payment-method{align-items:center;display:flex;gap:.5rem}.inv-bulk,.inv-create{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:2rem}.inv-bulk h3,.inv-create h3{color:#1a1a2e;font-size:1.3rem;font-weight:600;margin-bottom:1.5rem}.form-section{border-bottom:1px solid #e0e0e0;margin-bottom:2rem;padding-bottom:2rem}.form-section:last-of-type{border-bottom:none}.form-section h4{color:#666;font-size:1rem;font-weight:600;margin-bottom:1rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group input,.form-group select,.form-group textarea{font-size:.95rem}.items-table{margin-bottom:1rem;width:100%}.items-table td,.items-table th{border-bottom:1px solid #e0e0e0;padding:.75rem}.items-table input,.items-table select{border:1px solid #ddd;border-radius:4px;padding:.5rem;width:100%}.checkbox-grid{grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.checkbox-item input[type=checkbox]{height:18px;width:18px}.info-text{background:#e3f2fd;border-radius:6px;color:#1565c0;margin-top:1rem;padding:1rem}.form-actions{justify-content:flex-end;padding-top:1rem}.modal-overlay{padding:2rem}.modal-content.invoice-detail{max-width:700px}.modal-header h3{color:#1a1a2e;font-size:1.2rem;font-weight:600}.close-btn{color:#999}.modal-footer{gap:1rem;padding:1.5rem}.invoice-summary{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.invoice-summary p{margin-bottom:.5rem}.payment-methods-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.payment-method-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem;transition:all .2s}.payment-method-btn:hover{border-color:#e67e22}.payment-method-btn.active{background:#fff3e0;border-color:#e67e22}.payment-method-btn .pm-icon{font-size:1.5rem}.payment-method-btn .pm-label{font-size:.75rem;text-align:center}.invoice-header-detail{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.invoice-number-large{font-family:monospace;font-size:1.5rem;font-weight:700}.detail-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.detail-section h4{color:#666;font-size:.85rem;margin-bottom:.5rem}.detail-section p{margin-bottom:.25rem}.invoice-items-detail{margin-bottom:1.5rem}.invoice-items-detail h4{font-size:1rem;font-weight:600;margin-bottom:1rem}.invoice-items-detail table{border-collapse:collapse;width:100%}.invoice-items-detail td,.invoice-items-detail th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.invoice-items-detail th{background:#f8f9fa;color:#666;font-size:.85rem}.invoice-items-detail tfoot td{font-weight:500}.invoice-items-detail tfoot .discount td{color:#27ae60}.invoice-items-detail tfoot .penalty td{color:#e74c3c}.invoice-items-detail tfoot .total td{background:#f8f9fa;font-size:1.1rem}.payments-history{margin-bottom:1.5rem}.payments-history h4{font-size:1rem;font-weight:600;margin-bottom:1rem}.payment-item{align-items:center;background:#e8f5e9;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.75rem}.payment-item .payment-date{color:#666}.payment-item .payment-amount{color:#27ae60;font-weight:600}.invoice-balance{background:#f8f9fa;border-radius:8px;padding:1rem}.balance-row{display:flex;justify-content:space-between;padding:.5rem 0}.balance-row .paid{color:#27ae60;font-weight:600}.balance-row .remaining{color:#e74c3c;font-size:1.2rem;font-weight:700}.btn-secondary{background:#3498db}.btn-secondary:hover{background:#2980b9}.btn-outline{background:#fff;border:1px solid #ddd;color:#333}.btn-outline:hover{border-color:#e67e22;color:#e67e22}.btn-small{font-size:.85rem;padding:.5rem 1rem}@media (max-width:768px){.invoicing-page{padding:1rem}.inv-kpi-grid{grid-template-columns:1fr 1fr}.detail-grid,.inv-charts-row{grid-template-columns:1fr}.payment-methods-grid{grid-template-columns:repeat(2,1fr)}.inv-table{display:block;overflow-x:auto}}.reminders-container{margin:0 auto;max-width:1400px;padding:24px}.reminders-header{margin-bottom:24px}.reminders-header h1{color:#2c3e50;font-size:28px;margin-bottom:8px}.reminders-header p{color:#7f8c8d;font-size:14px}.reminders-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:400px}.spinner{border:4px solid #ecf0f1;border-top-color:#e67e22}.reminders-tabs{border-bottom:2px solid #ecf0f1;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding-bottom:8px}.reminders-tabs .tab{background:#0000;border:none;border-radius:8px 8px 0 0;color:#7f8c8d;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:all .2s ease}.reminders-tabs .tab:hover{background:#f8f9fa;color:#2c3e50}.reminders-tabs .tab.active{background:#e67e22;color:#fff}.dashboard-content{gap:24px}.kpi-grid{grid-gap:20px;gap:20px}.kpi-card{border-left:4px solid #3498db;padding:24px}.kpi-card.success{border-left-color:#27ae60}.kpi-card.highlight{background:linear-gradient(135deg,#fff5eb,#fff);border-left-color:#e67e22}.kpi-icon{font-size:32px;margin-bottom:12px}.kpi-value{color:#2c3e50;font-size:36px;margin-bottom:8px}.kpi-label{color:#7f8c8d;font-size:14px;font-weight:500}.kpi-period{color:#95a5a6;font-size:12px;margin-top:4px}.queue-status-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.queue-status-card h3{color:#2c3e50;font-size:18px;margin-bottom:20px}.queue-stats{display:flex;gap:40px;justify-content:center}.queue-stat{align-items:center;display:flex;flex-direction:column;gap:8px}.queue-count{font-size:32px;font-weight:700}.queue-count.pending{color:#95a5a6}.queue-count.queued{color:#3498db}.queue-count.sending{color:#f39c12}.queue-label{color:#7f8c8d;font-size:14px}.processing-indicator{align-items:center;color:#27ae60;display:flex;font-weight:500;gap:8px;justify-content:center;margin-top:16px}.pulse{animation:pulse 1.5s ease-in-out infinite;background:#27ae60;border-radius:50%;height:12px;width:12px}.channel-performance{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.channel-performance h3{color:#2c3e50;font-size:18px;margin-bottom:20px}.channel-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.channel-card{background:#f8f9fa;border-radius:8px;padding:16px}.channel-header{align-items:center;display:flex;gap:8px;margin-bottom:12px}.channel-icon{font-size:24px}.channel-name{color:#2c3e50;font-weight:600}.channel-stats{display:flex;justify-content:space-between}.channel-stat{display:flex;flex-direction:column}.stat-value{color:#2c3e50;font-size:18px}.stat-label{color:#7f8c8d;font-size:12px}.cost-summary-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.cost-summary-card h3{color:#2c3e50;font-size:18px;margin-bottom:20px}.cost-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.cost-item{gap:4px}.cost-label{color:#7f8c8d;font-size:14px}.cost-value{color:#2c3e50;font-size:20px}.daily-trend-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}.daily-trend-card h3{color:#2c3e50;font-size:18px;margin-bottom:20px}.trend-table{overflow-x:auto}.trend-table table{border-collapse:collapse;width:100%}.trend-table td,.trend-table th{border-bottom:1px solid #ecf0f1;padding:12px;text-align:left}.trend-table th{background:#f8f9fa;color:#2c3e50;font-weight:600}.trend-table td{color:#7f8c8d}.reminders-content{display:flex;flex-direction:column;gap:20px}.filters-bar{background:#fff;box-shadow:0 2px 4px #0000000d;gap:12px;padding:16px}.filters-bar select{border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:180px;padding:10px 16px}.filter-count{color:#7f8c8d;font-size:14px;margin-left:auto}.reminders-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.reminders-table{border-collapse:collapse;width:100%}.reminders-table td,.reminders-table th{border-bottom:1px solid #ecf0f1;padding:14px 16px;text-align:left}.reminders-table th{background:#f8f9fa;color:#2c3e50;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.student-info{flex-direction:column}.student-name{color:#2c3e50;font-weight:600}.student-class{color:#7f8c8d;font-size:12px}.type-badge{background:#f0f3f5;color:#2c3e50}.channel-badge,.type-badge{border-radius:12px;font-size:12px;padding:4px 10px}.channel-badge{align-items:center;background:#e8f4fd;color:#3498db;display:inline-flex;gap:4px}.status-badge{border-radius:12px;font-size:12px;padding:4px 12px}.payment-success{color:#27ae60;font-weight:600}.payment-pending{color:#95a5a6}.templates-content{gap:24px}.templates-header{align-items:center;display:flex;justify-content:space-between}.templates-header h2{color:#2c3e50;font-size:20px}.templates-grid{grid-gap:20px;gap:20px}.template-card{padding:20px}.template-header{gap:12px;margin-bottom:12px}.template-channel{font-size:28px}.template-header h3{color:#2c3e50;flex:1 1;font-size:16px}.template-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 10px}.template-status.active{background:#d5f5e3;color:#27ae60}.template-status.inactive{background:#f5f5f5;color:#95a5a6}.template-type{color:#7f8c8d;font-size:13px;margin-bottom:12px}.template-subject{font-size:13px;padding:10px}.template-content,.template-subject{background:#f8f9fa;border-radius:6px;margin-bottom:12px}.template-content{padding:12px}.template-content pre{color:#2c3e50;font-family:inherit;font-size:13px;margin:0;white-space:pre-wrap;word-break:break-word}.template-variables{color:#7f8c8d;font-size:12px;margin-bottom:16px}.variable-tag{background:#fff5eb;border-radius:4px;color:#e67e22;display:inline-block;font-size:11px;margin:2px;padding:2px 8px}.template-actions{display:flex;gap:8px}.btn-edit,.btn-preview{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:13px;padding:10px;transition:all .2s ease}.btn-preview{background:#e8f4fd;color:#3498db}.btn-preview:hover{background:#d1e9fa}.btn-edit{background:#f0f3f5;color:#7f8c8d}.btn-edit:hover{background:#e5e8eb}.rules-content{display:flex;flex-direction:column;gap:24px}.rules-header{align-items:center;display:flex;justify-content:space-between}.rules-header h2{color:#2c3e50;font-size:20px}.rules-timeline{padding-left:60px;position:relative}.rules-timeline:before{background:linear-gradient(180deg,#27ae60,#f39c12,#e74c3c);border-radius:2px;bottom:0;content:"";left:25px;position:absolute;top:0;width:4px}.rule-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:16px;padding:20px;position:relative;transition:all .2s ease}.rule-card.inactive{opacity:.6}.rule-timeline-marker{align-items:center;background:#fff;border:4px solid #e67e22;border-radius:50%;display:flex;height:50px;justify-content:center;left:-60px;position:absolute;top:20px;width:50px}.rule-day{color:#e67e22;font-size:14px;font-weight:700}.rule-content{padding-left:20px}.rule-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.rule-header h3{color:#2c3e50;font-size:16px;margin:0}.toggle-switch{display:inline-block;height:26px;position:relative;width:50px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#ccc;border-radius:26px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:20px;left:3px;position:absolute;transition:.3s;width:20px}.toggle-switch input:checked+.toggle-slider{background-color:#27ae60}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.rule-type{color:#7f8c8d;font-size:13px;margin-bottom:12px}.rule-channels{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.channel-tag{align-items:center;background:#e8f4fd;border-radius:16px;color:#3498db;display:inline-flex;font-size:13px;gap:4px;padding:6px 12px}.rule-time-window{color:#7f8c8d;font-size:13px;margin-bottom:8px}.rule-conditions{color:#95a5a6;display:flex;font-size:12px;gap:16px}.campaigns-content{gap:24px}.campaigns-header h2{color:#2c3e50;font-size:20px}.campaigns-list{gap:16px}.campaign-card{padding:24px}.campaign-header{margin-bottom:16px}.campaign-header h3{color:#2c3e50;font-size:18px}.campaign-status{border-radius:16px;font-size:13px;padding:6px 14px}.campaign-status.draft{background:#f5f5f5;color:#7f8c8d}.campaign-status.scheduled{background:#e8f4fd;color:#3498db}.campaign-status.running{background:#fff5eb;color:#e67e22}.campaign-status.completed{background:#d5f5e3;color:#27ae60}.campaign-status.cancelled{background:#fdf2f2;color:#e74c3c}.campaign-info{align-items:center;border-bottom:1px solid #ecf0f1;justify-content:space-between;padding:16px 0}.campaign-targets{display:flex;flex-direction:column}.target-count{color:#e67e22;font-size:28px;font-weight:700}.target-label{color:#7f8c8d;font-size:13px}.campaign-channels{display:flex;gap:8px}.campaign-channels .channel-badge{background:#f8f9fa;border-radius:8px;font-size:20px;padding:8px}.campaign-results{grid-gap:16px;border-bottom:1px solid #ecf0f1;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);padding:16px 0}.result-value{color:#2c3e50;display:block;font-size:24px;font-weight:700}.result-item.highlight .result-value{color:#27ae60}.result-label{color:#7f8c8d;font-size:12px}.campaign-meta{color:#95a5a6;font-size:12px;padding-top:12px}.btn-primary{background:#e67e22;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-primary:hover{background:#d35400}.btn-secondary{background:#f0f3f5;border:none;color:#7f8c8d;font-size:14px;font-weight:600;padding:12px 24px}.btn-secondary:hover{background:#e5e8eb}.modal-overlay{padding:20px}.modal-content{box-shadow:0 20px 60px #0000004d}.modal-content.large{max-width:700px}.modal-header{border-bottom:1px solid #ecf0f1;padding:20px 24px}.modal-header h2{color:#2c3e50;font-size:20px}.modal-close{background:#f0f3f5;color:#7f8c8d;font-size:24px}.modal-close:hover{background:#e5e8eb}.modal-body{padding:24px}.modal-footer{border-top:1px solid #ecf0f1;gap:12px;padding:16px 24px}.form-group{margin-bottom:20px}.form-group label{color:#2c3e50;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{font-size:14px;padding:12px 16px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#e67e22}.form-row{grid-gap:16px;gap:16px}.checkbox-label input[type=checkbox]{height:18px;width:18px}.channel-checkboxes{display:flex;flex-wrap:wrap;gap:16px}.variables-helper{background:#f8f9fa;border-radius:8px;padding:16px}.variables-helper label{color:#7f8c8d;font-size:13px;margin-bottom:8px}.variables-list{display:flex;flex-wrap:wrap;gap:6px}.variable-btn{background:#fff;border:1px solid #e67e22;border-radius:16px;color:#e67e22;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s ease}.variable-btn:hover{background:#e67e22;color:#fff}.preview-header{display:flex;gap:12px;margin-bottom:16px}.preview-channel,.preview-type{background:#f0f3f5;border-radius:16px;color:#2c3e50;font-size:13px;padding:6px 14px}.preview-subject{font-size:14px;margin-bottom:16px;padding:12px}.preview-content,.preview-subject{background:#f8f9fa;border-radius:8px}.preview-content{padding:16px}.preview-content pre{font-family:inherit;font-size:14px;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}@media (max-width:768px){.reminders-container{padding:16px}.reminders-tabs{flex-direction:column}.reminders-tabs .tab{text-align:left}.kpi-grid{grid-template-columns:1fr 1fr}.templates-grid{grid-template-columns:1fr}.rules-timeline{padding-left:0}.rules-timeline:before{display:none}.rule-timeline-marker{margin-bottom:12px;position:static}.rule-content{padding-left:0}.campaign-results{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.modal-content{margin:10px;max-height:95vh}}@media (max-width:480px){.kpi-grid{grid-template-columns:1fr}.queue-stats{flex-direction:column;gap:20px}.channel-grid{grid-template-columns:1fr}.campaign-info{align-items:flex-start;flex-direction:column;gap:16px}.campaign-results{grid-template-columns:1fr 1fr}}.whatsapp-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.whatsapp-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#25d366;height:40px;width:40px}.whatsapp-container{margin:0 auto;max-width:1400px;padding:1.5rem}.whatsapp-header{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.whatsapp-header h1{color:#1a1a1a;font-size:1.75rem;margin:0 0 .25rem}.whatsapp-header p{color:#666;margin:0}.header-right{gap:.75rem}.config-status{display:flex;gap:.75rem}.quality-badge{border-radius:6px;font-size:.85rem;font-weight:500;padding:.5rem .75rem}.quality-badge.green{background:#dcfce7;color:#166534}.quality-badge.yellow{background:#fef3c7;color:#92400e}.quality-badge.red{background:#fee2e2;color:#991b1b}.phone-badge{background:#f3f4f6;border-radius:6px;color:#374151;font-size:.85rem;padding:.5rem .75rem}.whatsapp-tabs{border-bottom:2px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.75rem}.whatsapp-tabs .tab{background:#f3f4f6;border:none;border-radius:8px;color:#4b5563;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s ease}.whatsapp-tabs .tab:hover{background:#e5e7eb}.whatsapp-tabs .tab.active{background:#25d366;color:#fff}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.kpi-card{background:#fff;border-left:4px solid #25d366;box-shadow:0 2px 8px #00000014;padding:1.5rem;text-align:center}.kpi-card.success{border-left-color:#22c55e}.kpi-card.highlight{border-left-color:#3b82f6}.kpi-icon{margin-bottom:.5rem}.kpi-value{color:#1a1a1a;font-size:2.25rem}.kpi-label{color:#666;font-size:.9rem;margin-top:.25rem}.kpi-period{color:#9ca3af;font-size:.8rem;margin-top:.5rem}.quick-actions{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.quick-actions h3{color:#374151;font-size:1.1rem;margin:0 0 1rem}.action-buttons{flex-wrap:wrap;gap:1rem}.action-btn{background:#fff;border:2px solid #e5e7eb;color:#374151;font-size:.9rem;padding:.75rem 1.5rem}.action-btn:hover{border-color:#25d366;color:#25d366}.action-btn.primary{background:#25d366;border-color:#25d366}.action-btn.primary:hover{background:#128c7e;border-color:#128c7e}.stats-section{background:#fff;box-shadow:0 2px 8px #00000014;padding:1.5rem}.stats-section h3{color:#374151;font-size:1.1rem}.category-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.category-card{background:#f9fafb;border-radius:8px;padding:1rem}.category-name{color:#1f2937;font-weight:600;margin-bottom:.5rem}.category-stats-row{color:#6b7280;display:flex;font-size:.8rem;gap:1rem;margin-bottom:.5rem}.category-bar{background:#e5e7eb;border-radius:4px;display:flex;height:8px;overflow:hidden}.bar-fill{transition:width .3s ease}.bar-fill.read{background:#25d366}.bar-fill.delivered{background:#22c55e}.cost-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.cost-section h3{color:#374151;font-size:1.1rem;margin:0 0 1rem}.cost-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cost-item{background:#f9fafb;border-radius:8px;display:flex;flex-direction:column;padding:1rem;text-align:center}.cost-label{color:#6b7280;font-size:.85rem;margin-bottom:.5rem}.cost-value{color:#1f2937;font-size:1.25rem;font-weight:600}.messages-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.messages-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.messages-header h2{color:#1f2937;font-size:1.25rem;margin:0}.btn-primary{background:#25d366;transition:background .2s ease}.btn-primary:hover{background:#128c7e}.btn-secondary{background:#f3f4f6;font-weight:500;transition:all .2s ease}.btn-secondary:hover{background:#e5e7eb}.messages-table-container{overflow-x:auto}.messages-table{border-collapse:collapse;width:100%}.messages-table td,.messages-table th{border-bottom:1px solid #e5e7eb;padding:1rem;text-align:left}.messages-table th{background:#f9fafb;color:#374151;font-weight:600}.messages-table tr:hover{background:#f9fafb}.recipient-info{display:flex;flex-direction:column}.recipient-name{color:#1f2937;font-weight:500}.recipient-phone{color:#6b7280;font-size:.85rem}.category-badge{background:#f3f4f6;border-radius:9999px;color:#374151;display:inline-block;font-size:.85rem;padding:.25rem .75rem}.status-badge{color:#fff;font-size:.85rem}.contacts-content{display:flex;flex-direction:column;gap:1.5rem}.contacts-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.contacts-header h2{color:#1f2937;font-size:1.25rem;margin:0}.contacts-stats{display:flex;gap:.75rem}.stat-badge{background:#f3f4f6;border-radius:8px;color:#374151;font-size:.85rem;padding:.5rem 1rem}.stat-badge.success{background:#dcfce7;color:#166534}.contacts-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.contact-card{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014}.contact-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.contact-avatar{align-items:center;background:#25d366;border-radius:50%;color:#fff;display:flex;font-size:1.25rem;font-weight:600;height:48px;justify-content:center;width:48px}.contact-info h4{color:#1f2937;font-size:1rem;margin:0}.contact-phone{color:#6b7280;font-size:.85rem}.optin-badge{color:#166534;font-size:.85rem;margin-left:auto}.contact-students{margin-bottom:1rem}.students-label{color:#6b7280;font-size:.85rem;margin-right:.5rem}.student-tag{background:#e5e7eb;border-radius:4px;display:inline-block;font-size:.8rem;margin-bottom:.25rem;margin-right:.25rem;padding:.25rem .5rem}.contact-stats{border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-around;margin-bottom:.75rem;padding:.75rem 0}.contact-stats .stat{text-align:center}.contact-stats .stat-value{color:#1f2937;display:block;font-size:1.25rem;font-weight:600}.contact-stats .stat-label{color:#6b7280;font-size:.75rem}.contact-prefs{align-items:center;display:flex;gap:.5rem}.pref-label{color:#6b7280;font-size:.85rem}.pref-icons{display:flex;font-size:1rem;gap:.25rem}.pref-icons span{cursor:help}.templates-content{display:flex;flex-direction:column;gap:1.5rem}.templates-header h2{color:#1f2937;font-size:1.25rem;margin:0 0 .25rem}.templates-note{color:#6b7280;font-size:.9rem;margin:0}.templates-grid{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.template-card{border:1px solid #e5e7eb;padding:1.25rem}.template-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.template-header h3{color:#1f2937;font-size:1rem;margin:0}.template-header .status-badge{font-size:.75rem;padding:.25rem .5rem}.template-header .status-badge.approved{background:#dcfce7;color:#166534}.template-header .status-badge.pending{background:#fef3c7;color:#92400e}.template-header .status-badge.rejected{background:#fee2e2;color:#991b1b}.template-category{display:flex;gap:.5rem;margin-bottom:1rem}.category-tag,.language-tag{background:#f3f4f6;border-radius:4px;color:#374151;font-size:.8rem;padding:.25rem .5rem}.template-preview{background:#f0f2f5;border-radius:8px;margin-bottom:1rem}.component.header .header-text{color:#1f2937;font-weight:600;margin-bottom:.5rem}.component.body .body-text pre{color:#374151;font-family:inherit;font-size:.9rem;line-height:1.5;margin:0;white-space:pre-wrap}.component.footer .footer-text{color:#6b7280;font-size:.8rem;margin-top:.5rem}.buttons-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.btn-preview{background:#fff;border:1px solid #25d366;border-radius:6px;color:#25d366;font-size:.85rem;padding:.5rem 1rem}.template-variables{color:#6b7280;font-size:.85rem}.template-variables code{background:#f3f4f6;border-radius:4px;color:#374151;display:inline-block;font-family:monospace;margin-left:.25rem;padding:.125rem .375rem}.campaigns-content{display:flex;flex-direction:column;gap:1.5rem}.campaigns-header{align-items:center;display:flex;justify-content:space-between}.campaigns-header h2{color:#1f2937;font-size:1.25rem;margin:0}.campaigns-list{display:flex;flex-direction:column;gap:1rem}.campaign-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.campaign-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.campaign-header h3{color:#1f2937;font-size:1.1rem;margin:0}.campaign-status{border-radius:6px;font-size:.85rem;font-weight:500;padding:.375rem .75rem}.campaign-status.completed{background:#dcfce7;color:#166534}.campaign-status.in_progress{background:#dbeafe;color:#1e40af}.campaign-status.scheduled{background:#fef3c7;color:#92400e}.campaign-status.draft{background:#f3f4f6;color:#6b7280}.campaign-description{color:#6b7280;font-size:.9rem;margin:.5rem 0 1rem}.campaign-info{color:#374151;display:flex;flex-wrap:wrap;font-size:.9rem;gap:1.5rem;margin-bottom:1rem}.campaign-results{background:#f9fafb;border-radius:8px;display:flex;gap:2rem;margin-bottom:1rem;padding:1rem}.result-item{text-align:center}.result-item .result-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:600}.result-item .result-label{color:#6b7280;font-size:.8rem}.result-item.highlight .result-value{color:#25d366}.campaign-meta{color:#9ca3af;display:flex;font-size:.85rem;justify-content:space-between}.settings-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.settings-content h2{color:#1f2937;font-size:1.25rem;margin:0 0 1.5rem}.settings-section{margin-bottom:2rem}.settings-section h3{border-bottom:1px solid #e5e7eb;color:#374151;font-size:1rem;margin:0 0 1rem;padding-bottom:.5rem}.settings-section p{color:#6b7280;font-size:.9rem;margin:0 0 1rem}.settings-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.setting-item{background:#f9fafb;border-radius:8px;padding:1rem}.setting-item label{color:#6b7280;display:block;font-size:.85rem;margin-bottom:.5rem}.setting-value{color:#1f2937;font-size:1rem;font-weight:500}.modal-body.qr-modal{text-align:center}.qr-preview{margin-bottom:1rem}.qr-preview img{border:4px solid #25d366;border-radius:16px;max-width:200px}.qr-instructions{color:#6b7280;font-size:.9rem;line-height:1.6;margin-bottom:1.5rem}.qr-actions{display:flex;gap:1rem;justify-content:center}@media (max-width:768px){.whatsapp-container{padding:1rem}.whatsapp-header{flex-direction:column;gap:1rem}.whatsapp-header h1{font-size:1.5rem}.config-status{flex-wrap:wrap}.whatsapp-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:1rem}.whatsapp-tabs .tab{font-size:.85rem;padding:.5rem 1rem;white-space:nowrap}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-value{font-size:1.75rem}.action-buttons{flex-direction:column}.action-btn{width:100%}.category-stats,.cost-grid{grid-template-columns:1fr}.messages-table td:nth-child(3),.messages-table th:nth-child(3){display:none}.contacts-grid,.templates-grid{grid-template-columns:1fr}.campaign-results{flex-wrap:wrap;gap:1rem}.result-item{flex:1 1;min-width:70px}.settings-grid{grid-template-columns:1fr}}@media (max-width:480px){.kpi-grid{grid-template-columns:1fr}.contact-stats{flex-wrap:wrap}.campaign-info{flex-direction:column;gap:.5rem}.modal-content{border-radius:12px;margin:.5rem}}.gov-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.gov-loading .spinner,.loading-overlay .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.loading-overlay{align-items:center;background:#fffc;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.gov-container{margin:0 auto;max-width:1600px;padding:1.5rem}.gov-header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem}.gov-header h1{color:#1a1a1a;font-size:1.75rem;margin:0 0 .25rem}.gov-header p{color:#666;font-size:.95rem;margin:0}.header-right{gap:1rem}.search-box input{width:300px}.search-results{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:50}.search-result-item{align-items:center;border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem}.search-result-item:hover{background:#f9fafb}.result-type{background:#e5e7eb;border-radius:4px;font-size:.75rem;padding:.125rem .5rem;text-transform:uppercase}.result-name{color:#1f2937;font-weight:500}.result-parent{color:#6b7280;font-size:.85rem;margin-left:auto}.gov-breadcrumbs{align-items:center;background:#f9fafb;border-radius:8px;display:flex;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.breadcrumb-item{background:none;border:none;border-radius:4px;color:#3b82f6;cursor:pointer;font-size:.9rem;padding:.25rem .5rem}.breadcrumb-item:hover{background:#e5e7eb}.breadcrumb-item.active{color:#1f2937;cursor:default;font-weight:500}.breadcrumb-item.active:hover{background:#0000}.breadcrumb-sep{color:#9ca3af}.gov-tabs{border-bottom:2px solid #e5e7eb;display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.75rem}.gov-tabs .tab{background:#f3f4f6;border:none;border-radius:8px;color:#4b5563;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s ease}.gov-tabs .tab:hover{background:#e5e7eb}.gov-tabs .tab.active{background:#3b82f6;color:#fff}.dashboard-content{gap:2rem}.national-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{border-left:4px solid #e5e7eb;box-shadow:0 2px 8px #00000014}.stat-card.primary{border-left-color:#3b82f6}.stat-card.success{border-left-color:#22c55e}.stat-icon{margin-bottom:.5rem}.stat-value{font-size:2rem}.kpis-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.kpis-section h2{color:#374151;font-size:1.1rem;margin:0 0 1.5rem}.kpis-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.kpi-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.kpi-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.kpi-category{color:#6b7280;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.kpi-status{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.kpi-name{color:#1f2937;font-weight:600;margin-bottom:.75rem}.kpi-values{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:.5rem}.kpi-current{color:#1f2937;font-size:1.5rem;font-weight:700}.kpi-target{color:#6b7280;font-size:.85rem}.kpi-progress{background:#e5e7eb;border-radius:3px;height:6px;margin-bottom:.5rem;overflow:hidden}.kpi-trend{font-size:.85rem}.trend-up{color:#22c55e}.trend-down{color:#ef4444}.trend-stable{color:#6b7280}.dashboard-columns{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.alerts-preview{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.section-header h2{color:#374151;font-size:1.1rem}.btn-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.9rem}.alerts-list{gap:.75rem}.alert-item{background:#f9fafb}.alert-severity{border-radius:2px;height:40px;width:4px}.alert-title{color:#1f2937;font-size:.9rem}.alert-meta{color:#6b7280;gap:.5rem}.budget-summary{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.budget-summary h2{color:#374151;font-size:1.1rem;margin:0 0 1.5rem}.budget-chart{align-items:center;display:flex;gap:2rem}.budget-donut{height:120px;position:relative;width:120px}.budget-donut svg{transform:rotate(-90deg)}.budget-percent{color:#1f2937;font-size:1.25rem;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.budget-details{flex:1 1}.budget-item{border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:.5rem 0}.budget-label{color:#6b7280}.budget-value{color:#1f2937;font-weight:600}.budget-value.spent{color:#3b82f6}.budget-value.remaining{color:#22c55e}.comparison-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.comparison-column{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.comparison-column h3{color:#374151;font-size:1rem;margin:0 0 1rem}.comparison-list{display:flex;flex-direction:column;gap:.75rem}.comparison-card{border-left:4px solid;border-radius:8px;padding:1rem}.comparison-card.success{background:#f0fdf4;border-left-color:#22c55e}.comparison-card.warning{background:#fffbeb;border-left-color:#f59e0b}.entity-name{color:#1f2937;font-weight:600}.entity-type{color:#6b7280;font-size:.8rem;margin-bottom:.5rem}.entity-stats{color:#4b5563;display:flex;font-size:.85rem;gap:1rem}.activity-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.activity-section h2{color:#374151;font-size:1.1rem;margin:0 0 1rem}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{align-items:flex-start;background:#f9fafb;border-radius:8px;padding:.75rem}.activity-desc{color:#1f2937;font-weight:500}.activity-meta{color:#6b7280;display:flex;font-size:.8rem;gap:.5rem}.regions-content h2{color:#1f2937;font-size:1.25rem;margin:0 0 1.5rem}.regions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.region-card{background:#fff;border:1px solid #0000;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:1.25rem;transition:all .2s ease}.region-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.region-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.region-header h3{color:#1f2937;font-size:1.1rem;margin:0}.region-code{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:.85rem;padding:.25rem .5rem}.region-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.region-stats .stat{background:#f9fafb;border-radius:6px;padding:.5rem;text-align:center}.region-stats .stat-value{color:#1f2937;display:block;font-size:1.1rem;font-weight:600}.region-stats .stat-label{color:#6b7280;font-size:.75rem}.region-footer{border-top:1px solid #e5e7eb;padding-top:.75rem}.performance-bar{background:#e5e7eb;border-radius:3px;height:6px;margin-bottom:.5rem;overflow:hidden}.performance-fill{background:linear-gradient(90deg,#22c55e,#3b82f6);border-radius:3px;height:100%}.click-hint{color:#3b82f6;font-size:.8rem}.view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.view-header h2{color:#1f2937;font-size:1.25rem;margin:0}.district-summary,.region-summary{color:#6b7280;display:flex;font-size:.9rem;gap:.5rem}.districts-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.district-card{background:#fff;border:1px solid #0000;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;padding:1.25rem;transition:all .2s ease}.district-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.district-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.district-header h3{color:#1f2937;font-size:1rem;margin:0}.district-code{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:.8rem;padding:.125rem .375rem}.district-stats{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr)}.district-stats .stat{background:#f9fafb;border-radius:6px;padding:.5rem;text-align:center}.district-footer{margin-top:.75rem;text-align:right}.schools-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow-x:auto}.schools-table{border-collapse:collapse;width:100%}.schools-table td,.schools-table th{border-bottom:1px solid #e5e7eb;padding:1rem;text-align:left}.schools-table th{background:#f9fafb;color:#374151;font-size:.85rem;font-weight:600}.schools-table tr{cursor:pointer;transition:background .2s ease}.schools-table tr:hover{background:#f9fafb}.school-name-cell{display:flex;flex-direction:column}.school-name{color:#1f2937;font-weight:500}.school-code{color:#6b7280;font-size:.8rem}.pass-rate{border-radius:4px;font-weight:500;padding:.25rem .5rem}.pass-rate.good{background:#dcfce7;color:#166534}.pass-rate.medium{background:#fef3c7;color:#92400e}.pass-rate.low{background:#fee2e2;color:#991b1b}.perf-cell{align-items:center;display:flex;gap:.5rem}.mini-bar{background:#e5e7eb;border-radius:3px;height:6px;overflow:hidden;width:60px}.mini-fill{background:#3b82f6;border-radius:3px;height:100%}.status-badge{border-radius:4px;padding:.25rem .5rem}.status-badge.suspended{background:#fef3c7;color:#92400e}.status-badge.closed{background:#fee2e2;color:#991b1b}.status-badge.under_review{background:#e0e7ff;color:#3730a3}.school-detail-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.school-detail-modal{background:#fff;border-radius:16px;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}.modal-header{padding:1.5rem}.modal-header h2{margin:0 0 .5rem}.school-type-badge{background:#e5e7eb;color:#374151}.school-info-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-bottom:1.5rem}.info-item{background:#f9fafb;border-radius:8px;padding:.75rem}.info-item label{color:#6b7280;display:block;font-size:.8rem;margin-bottom:.25rem}.info-item span{color:#1f2937;font-weight:500}.accreditation-info{margin-bottom:1.5rem}.accreditation-info h4{color:#374151;font-size:1rem;margin:0 0 .75rem}.accreditation-details{align-items:center;display:flex;gap:1rem}.level-badge{border-radius:8px;font-weight:600;padding:.5rem 1rem}.level-badge.level-a{background:#dcfce7;color:#166534}.level-badge.level-b{background:#dbeafe;color:#1e40af}.level-badge.level-c{background:#fef3c7;color:#92400e}.level-badge.level-d{background:#fee2e2;color:#991b1b}.school-stats-detail h4{color:#374151;font-size:1rem;margin:0 0 1rem}.stats-grid{grid-template-columns:repeat(3,1fr)}.stat-box{background:#f9fafb;border-radius:8px;padding:1rem;text-align:center}.stat-box .stat-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:700}.stat-box .stat-label{color:#6b7280;font-size:.8rem}.stat-box.highlight{background:#dbeafe}.stat-box.highlight .stat-value{color:#1e40af}.alerts-content{gap:1.5rem}.alert-filters{display:flex;gap:.5rem}.filter-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.85rem;padding:.5rem 1rem}.filter-btn:hover{background:#f9fafb}.filter-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.alerts-full-list{display:flex;flex-direction:column;gap:1rem}.alert-full-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;overflow:hidden}.alert-severity-bar{width:6px}.alert-full-content{flex:1 1;padding:1.25rem}.alert-full-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.alert-full-header h3{color:#1f2937;font-size:1rem;margin:0}.alert-status-badge{border-radius:9999px;font-size:.8rem;padding:.25rem .75rem}.alert-status-badge.active{background:#fee2e2;color:#991b1b}.alert-status-badge.acknowledged{background:#fef3c7;color:#92400e}.alert-status-badge.resolved{background:#dcfce7;color:#166534}.alert-description{color:#4b5563;font-size:.9rem;margin:0 0 .75rem}.alert-full-meta{color:#6b7280;display:flex;font-size:.85rem;gap:.5rem}.alert-assigned{color:#3b82f6;font-size:.85rem;margin-top:.5rem}.alert-actions{align-items:center;border-left:1px solid #e5e7eb;padding:1.25rem}.reports-content{gap:1.5rem}.reports-content,.reports-list{display:flex;flex-direction:column}.reports-list{gap:1rem}.report-card{background:#fff;box-shadow:0 2px 8px #00000014;gap:1.25rem;padding:1.25rem}.report-card,.report-icon{align-items:center;border-radius:12px;display:flex}.report-icon{background:#f3f4f6;font-size:2rem;height:60px;justify-content:center;width:60px}.report-content{flex:1 1}.report-content h3{color:#1f2937;font-size:1rem;margin:0 0 .25rem}.report-content p{color:#6b7280;font-size:.9rem;margin:0 0 .5rem}.report-meta{color:#9ca3af;display:flex;font-size:.8rem;gap:.5rem}.report-status-col{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.report-status{border-radius:6px;font-size:.8rem;padding:.375rem .75rem}.report-status.draft{background:#f3f4f6;color:#6b7280}.report-status.pending_review{background:#fef3c7;color:#92400e}.report-status.approved{background:#dcfce7;color:#166534}.report-status.published{background:#dbeafe;color:#1e40af}.btn-download{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem}.btn-download:hover{background:#2563eb}@media (max-width:1024px){.comparison-section,.dashboard-columns{grid-template-columns:1fr}}@media (max-width:768px){.gov-container{padding:1rem}.gov-header{flex-direction:column;gap:1rem}.search-box input{width:100%}.gov-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:1rem}.gov-tabs .tab{padding:.5rem 1rem;white-space:nowrap}.national-stats{grid-template-columns:repeat(2,1fr)}.kpis-grid{grid-template-columns:1fr}.budget-chart{flex-direction:column}.districts-grid,.regions-grid,.school-info-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.report-card{flex-direction:column;text-align:center}.report-status-col{align-items:center;width:100%}.alert-full-card{flex-direction:column}.alert-actions{border-left:none;border-top:1px solid #e5e7eb;justify-content:center;width:100%}}@media (max-width:480px){.national-stats{grid-template-columns:1fr}.view-header{align-items:flex-start;flex-direction:column;gap:.5rem}.stats-grid{grid-template-columns:1fr}.schools-table td:nth-child(4),.schools-table td:nth-child(5),.schools-table th:nth-child(4),.schools-table th:nth-child(5){display:none}}[data-theme=dark] .gov-container{color:#e2e8f0}[data-theme=dark] .gov-header h1{color:#f8fafc!important}[data-theme=dark] .gov-header p{color:#94a3b8!important}[data-theme=dark] .gov-header{border-bottom-color:#334155}[data-theme=dark] .search-box input{background:#1e293b;border-color:#475569;color:#f8fafc}[data-theme=dark] .search-box input::placeholder{color:#94a3b8}[data-theme=dark] .search-results{background:#1e293b;border-color:#475569}[data-theme=dark] .search-result-item{border-bottom-color:#334155}[data-theme=dark] .search-result-item:hover{background:#334155}[data-theme=dark] .result-type{background:#475569;color:#e2e8f0}[data-theme=dark] .result-name{color:#f8fafc!important}[data-theme=dark] .result-parent{color:#94a3b8}[data-theme=dark] .gov-breadcrumbs{background:#1e293b}[data-theme=dark] .breadcrumb-item{color:#60a5fa}[data-theme=dark] .breadcrumb-item:hover{background:#334155}[data-theme=dark] .breadcrumb-item.active{color:#f8fafc}[data-theme=dark] .breadcrumb-sep{color:#64748b}[data-theme=dark] .gov-tabs{border-bottom-color:#334155}[data-theme=dark] .gov-tabs .tab{background:#334155;color:#cbd5e1}[data-theme=dark] .gov-tabs .tab:hover{background:#475569}[data-theme=dark] .gov-tabs .tab.active{background:#3b82f6;color:#fff}[data-theme=dark] .stat-card{background:#1e293b;border-left-color:#475569;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .stat-card.primary{border-left-color:#3b82f6}[data-theme=dark] .stat-card.success{border-left-color:#22c55e}[data-theme=dark] .stat-value{color:#fff!important;font-weight:700}[data-theme=dark] .stat-label{color:#cbd5e1!important}[data-theme=dark] .kpis-section{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .kpis-section h2{color:#f8fafc!important}[data-theme=dark] .kpi-card{background:#0f172a;border-color:#334155}[data-theme=dark] .kpi-category{color:#94a3b8!important}[data-theme=dark] .kpi-name{color:#fff!important;font-weight:600}[data-theme=dark] .kpi-current{color:#fff!important;font-size:1.75rem;font-weight:800}[data-theme=dark] .kpi-target{color:#cbd5e1!important}[data-theme=dark] .kpi-progress{background:#334155}[data-theme=dark] .kpi-trend{font-weight:500}[data-theme=dark] .trend-up{color:#4ade80!important}[data-theme=dark] .trend-down{color:#f87171!important}[data-theme=dark] .trend-stable{color:#94a3b8!important}[data-theme=dark] .alerts-preview{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .section-header h2{color:#f8fafc!important}[data-theme=dark] .btn-link{color:#60a5fa}[data-theme=dark] .alert-item{background:#0f172a}[data-theme=dark] .alert-title{color:#f8fafc!important}[data-theme=dark] .alert-meta{color:#94a3b8}[data-theme=dark] .budget-summary{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .budget-summary h2{color:#f8fafc!important}[data-theme=dark] .budget-percent{color:#fff!important}[data-theme=dark] .budget-item{border-bottom-color:#334155}[data-theme=dark] .budget-label{color:#cbd5e1!important}[data-theme=dark] .budget-value{color:#fff!important}[data-theme=dark] .budget-value.spent{color:#60a5fa!important}[data-theme=dark] .budget-value.remaining{color:#4ade80!important}[data-theme=dark] .comparison-column{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .comparison-column h3{color:#f8fafc!important}[data-theme=dark] .comparison-card.success{background:#22c55e26;border-left-color:#22c55e}[data-theme=dark] .comparison-card.warning{background:#f59e0b26;border-left-color:#f59e0b}[data-theme=dark] .entity-name{color:#fff!important}[data-theme=dark] .entity-type{color:#94a3b8}[data-theme=dark] .entity-stats{color:#cbd5e1}[data-theme=dark] .activity-section{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .activity-section h2{color:#f8fafc!important}[data-theme=dark] .activity-item{background:#0f172a}[data-theme=dark] .activity-desc{color:#fff!important}[data-theme=dark] .activity-meta{color:#94a3b8}[data-theme=dark] .regions-content h2{color:#f8fafc!important}[data-theme=dark] .region-card{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .region-card:hover{border-color:#60a5fa;box-shadow:0 4px 12px #60a5fa33}[data-theme=dark] .region-header h3{color:#fff!important}[data-theme=dark] .region-code{background:#334155;color:#cbd5e1}[data-theme=dark] .region-stats .stat{background:#0f172a}[data-theme=dark] .region-stats .stat-value{color:#fff!important}[data-theme=dark] .region-stats .stat-label{color:#94a3b8!important}[data-theme=dark] .region-footer{border-top-color:#334155}[data-theme=dark] .performance-bar{background:#334155}[data-theme=dark] .click-hint{color:#60a5fa}[data-theme=dark] .view-header h2{color:#f8fafc!important}[data-theme=dark] .district-summary,[data-theme=dark] .region-summary{color:#94a3b8}[data-theme=dark] .district-card{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .district-card:hover{border-color:#60a5fa;box-shadow:0 4px 12px #60a5fa33}[data-theme=dark] .district-header h3{color:#fff!important}[data-theme=dark] .district-code{background:#334155;color:#cbd5e1}[data-theme=dark] .district-stats .stat{background:#0f172a}[data-theme=dark] .schools-table-container{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .schools-table th{background:#0f172a;color:#e2e8f0!important}[data-theme=dark] .schools-table td{border-bottom-color:#334155;color:#e2e8f0}[data-theme=dark] .schools-table tr:hover{background:#334155}[data-theme=dark] .school-name{color:#fff!important}[data-theme=dark] .school-code{color:#94a3b8}[data-theme=dark] .mini-bar{background:#334155}[data-theme=dark] .school-detail-overlay{background:#000000b3}[data-theme=dark] .school-detail-modal{background:#1e293b}[data-theme=dark] .modal-header h2{color:#fff!important}[data-theme=dark] .school-type-badge{background:#334155;color:#e2e8f0}[data-theme=dark] .modal-close{color:#e2e8f0}[data-theme=dark] .info-item{background:#0f172a}[data-theme=dark] .info-item label{color:#94a3b8}[data-theme=dark] .info-item span{color:#fff!important}[data-theme=dark] .accreditation-info h4,[data-theme=dark] .school-stats-detail h4{color:#f8fafc!important}[data-theme=dark] .stat-box{background:#0f172a}[data-theme=dark] .stat-box .stat-value{color:#fff!important}[data-theme=dark] .stat-box .stat-label{color:#94a3b8!important}[data-theme=dark] .stat-box.highlight{background:#3b82f633}[data-theme=dark] .stat-box.highlight .stat-value{color:#60a5fa!important}[data-theme=dark] .filter-btn{background:#1e293b;border-color:#475569;color:#cbd5e1}[data-theme=dark] .filter-btn:hover{background:#334155}[data-theme=dark] .filter-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}[data-theme=dark] .alert-full-card{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .alert-full-header h3{color:#fff!important}[data-theme=dark] .alert-description{color:#cbd5e1}[data-theme=dark] .alert-full-meta{color:#94a3b8}[data-theme=dark] .alert-assigned{color:#60a5fa}[data-theme=dark] .alert-actions{border-left-color:#334155}[data-theme=dark] .report-card{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .report-icon{background:#334155}[data-theme=dark] .report-content h3{color:#fff!important}[data-theme=dark] .report-content p{color:#cbd5e1}[data-theme=dark] .report-meta{color:#64748b}[data-theme=dark] .report-status.draft{background:#334155;color:#94a3b8}[data-theme=dark] .report-status.pending_review{background:#f59e0b33;color:#fbbf24}[data-theme=dark] .report-status.approved{background:#22c55e33;color:#4ade80}[data-theme=dark] .report-status.published{background:#3b82f633;color:#60a5fa}[data-theme=dark] .btn-secondary{background:#1e293b;border-color:#475569}[data-theme=dark] .btn-secondary:hover{background:#334155}[data-theme=dark] .gov-loading{color:#e2e8f0}[data-theme=dark] .gov-loading .spinner,[data-theme=dark] .loading-overlay .spinner{border-color:#3b82f6 #334155 #334155}[data-theme=dark] .loading-overlay{background:#0f172acc}.map-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:500px}.map-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.interactive-map-container{background:#f3f4f6;display:flex;flex-direction:column;height:calc(100vh - 120px)}.map-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.5rem}.map-header h1{color:#1f2937;font-size:1.5rem;margin:0}.map-header p{color:#6b7280;font-size:.9rem;margin:0}.header-center{flex:1 1;margin:0 2rem;max-width:500px}.search-box{position:relative}.search-box input{border:1px solid #d1d5db;border-radius:8px;padding:.75rem 1rem;width:100%}.search-box input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.search-dropdown{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.search-item{align-items:center;border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem}.search-item:hover{background:#f9fafb}.search-type{font-size:1.25rem}.search-info{display:flex;flex-direction:column}.search-name{color:#1f2937;font-weight:500}.search-desc{color:#6b7280;font-size:.8rem}.btn-icon{align-items:center;border-radius:8px;display:flex;font-size:1.25rem;height:40px;justify-content:center;width:40px}.btn-icon.active{background:#3b82f6;border-color:#3b82f6}.map-body{display:flex;flex:1 1;overflow:hidden;position:relative}.filters-panel{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000026;left:1rem;max-height:calc(100% - 2rem);overflow-y:auto;position:absolute;top:1rem;width:300px;z-index:50}.filters-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem}.filters-header h3{color:#1f2937;font-size:1rem;margin:0}.btn-close{background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;font-size:1.25rem;height:28px;width:28px}.btn-close:hover{background:#e5e7eb}.filters-content{padding:1rem}.filter-group{margin-bottom:1.25rem}.filter-group>label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-item{color:#4b5563;font-size:.9rem}.checkbox-item input{margin:0}.type-dot{border-radius:50%;height:12px;width:12px}.filter-group input[type=range]{width:100%}.filter-actions{border-top:1px solid #e5e7eb;display:flex;gap:.5rem;padding-top:.5rem}.btn-primary,.btn-secondary{flex:1 1;padding:.75rem}.map-canvas{background:#e6f2ff;flex:1 1;overflow:hidden;position:relative}.africa-map{height:100%;width:100%}.zoom-controls{align-items:center;background:#fff;border-radius:8px;bottom:1rem;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;left:1rem;overflow:hidden;position:absolute}.zoom-controls button{background:#fff;border:none;color:#374151;cursor:pointer;font-size:1.25rem;height:36px;width:36px}.zoom-controls button:hover{background:#f3f4f6}.zoom-level{border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb;color:#6b7280;font-size:.8rem;padding:.25rem .5rem}.layer-controls{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:.75rem;position:absolute;right:340px;top:1rem}.layer-controls h4{color:#374151;font-size:.85rem;margin:0 0 .5rem}.layer-item{align-items:center;color:#4b5563;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;padding:.25rem 0}.layer-item input{margin:0}.layer-icon{font-size:1rem}.map-legend{background:#fff;border-radius:8px;bottom:1rem;box-shadow:0 2px 8px #0000001a;max-width:200px;padding:.75rem;position:absolute;right:340px}.map-legend h4{color:#374151;font-size:.85rem;margin:0 0 .5rem}.legend-section{margin-bottom:.75rem}.legend-section:last-child{margin-bottom:0}.legend-title{color:#6b7280;display:block;font-size:.75rem;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.legend-item{color:#4b5563;padding:.125rem 0}.legend-dot{border-radius:50%;height:10px;width:10px}.legend-gradient{margin-top:.25rem}.gradient-bar{background:linear-gradient(90deg,#ef4444,#f97316,#eab308,#84cc16,#22c55e);border-radius:4px;height:8px}.gradient-labels{color:#6b7280;display:flex;font-size:.7rem;justify-content:space-between;margin-top:.125rem}.map-sidebar{background:#fff;border-left:1px solid #e5e7eb;overflow-y:auto;width:320px}.sidebar-section h3{color:#374151;font-size:1rem;margin:0 0 1rem}.stats-grid{grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(2,1fr)}.stat-item{background:#f9fafb;border-radius:8px;padding:.75rem}.stat-item .stat-value{color:#1f2937;display:block;font-size:1.25rem;font-weight:700}.stat-item .stat-label{color:#6b7280;font-size:.75rem}.stat-item.highlight{background:#dbeafe}.stat-item.highlight .stat-value{color:#1e40af}.country-list{display:flex;flex-direction:column;gap:.5rem}.country-item{align-items:center;background:#f9fafb;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .2s ease}.country-item:hover{background:#e5e7eb}.country-flag{font-size:1.5rem}.country-info{flex:1 1}.country-name{color:#1f2937;font-size:.9rem;font-weight:500}.country-stats{color:#6b7280;font-size:.75rem}.performance-indicator{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:.8rem;font-weight:600;height:36px;justify-content:center;width:36px}.detail-section{padding-bottom:2rem}.btn-back{margin-bottom:1rem}.detail-header{margin-bottom:1.5rem;text-align:center}.detail-flag{font-size:3rem}.detail-header h2{color:#1f2937;font-size:1.25rem;margin:.5rem 0 0}.detail-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin-bottom:1.5rem}.detail-stat{background:#f9fafb;border-radius:8px;padding:1rem;text-align:center}.detail-stat .stat-icon{display:block;font-size:1.5rem;margin-bottom:.25rem}.detail-stat .stat-value{color:#1f2937;display:block;font-size:1.25rem;font-weight:700}.detail-stat .stat-label{color:#6b7280;font-size:.75rem}.detail-stat.highlight{background:#dbeafe}.detail-stat.highlight .stat-value{color:#1e40af}.detail-schools h4{color:#374151;font-size:.9rem;margin:0 0 .75rem}.school-mini-card{align-items:center;background:#f9fafb;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.75rem}.school-mini-card:hover{background:#e5e7eb}.school-type-dot{border-radius:50%;height:10px;width:10px}.school-mini-info{flex:1 1}.school-mini-name{color:#1f2937;display:block;font-size:.85rem;font-weight:500}.school-mini-city{color:#6b7280;font-size:.75rem}.school-mini-students{color:#6b7280;font-size:.8rem}.school-header{text-align:left}.school-type-badge{border-radius:9999px;color:#fff;display:inline-block;font-size:.8rem;font-weight:500;margin-bottom:.5rem;padding:.25rem .75rem}.school-location{color:#6b7280;font-size:.9rem;margin:.5rem 0 0}.school-detail-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);margin:1.5rem 0}.school-stat{background:#f9fafb;border-radius:8px;padding:1rem;text-align:center}.school-stat .stat-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:700}.school-stat .stat-label{color:#6b7280;font-size:.75rem}.school-stat.highlight{background:#dbeafe}.school-stat.highlight .stat-value{color:#1e40af}.accreditation-badge{margin-bottom:1.5rem;text-align:center}.accreditation-badge .level{border-radius:8px;display:inline-block;font-weight:500;padding:.5rem 1rem}.level.level-a{background:#dcfce7;color:#166534}.level.level-b{background:#dbeafe;color:#1e40af}.level.level-c{background:#fef3c7;color:#92400e}.level.level-d{background:#fee2e2;color:#991b1b}.school-contact{background:#f9fafb;border-radius:8px;padding:1rem}.school-contact h4{color:#374151;font-size:.9rem;margin:0 0 .75rem}.school-contact p{color:#4b5563;font-size:.9rem;margin:0 0 .5rem}@media (max-width:1024px){.map-sidebar{width:280px}.layer-controls,.map-legend{right:290px}}@media (max-width:768px){.interactive-map-container{height:auto;min-height:calc(100vh - 120px)}.map-header{flex-wrap:wrap;gap:1rem}.header-center{margin:0;max-width:100%;order:3;width:100%}.map-body{flex-direction:column}.map-canvas{min-height:400px}.map-sidebar{max-height:50vh;width:100%}.filters-panel{max-width:400px;width:calc(100% - 2rem)}.layer-controls,.map-legend{margin:.5rem;position:static}.layer-controls{display:none}.map-legend{bottom:1rem;max-width:150px;position:absolute;right:1rem}}@media (max-width:480px){.map-header h1{font-size:1.25rem}.detail-stats,.school-detail-stats,.stats-grid{grid-template-columns:1fr}}.sites-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.sites-loading .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.school-sites-container{margin:0 auto;max-width:1600px;min-height:calc(100vh - 120px);padding:1.5rem}.sites-header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.sites-header h1{color:#1f2937;font-size:1.75rem;margin:0 0 .25rem}.sites-header p{color:#6b7280;margin:0}.header-right{align-items:center;display:flex;gap:.5rem}.btn-tab{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-tab:hover{background:#f9fafb}.btn-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn-primary{background:#3b82f6;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.5rem}.btn-primary:hover{background:#2563eb}.btn-primary:disabled{background:#9ca3af}.btn-secondary{border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.9rem;padding:.75rem 1.5rem}.btn-secondary:hover{background:#f9fafb}.btn-danger{background:#ef4444}.btn-danger,.btn-success{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.75rem 1.5rem}.btn-success{background:#22c55e}.full{width:100%}.sites-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.site-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;transition:all .2s ease}.site-card:hover{box-shadow:0 4px 12px #00000026}.site-preview{height:180px;overflow:hidden;position:relative}.site-preview-header{align-items:center;color:#fff;display:flex;height:60px;justify-content:center}.site-logo{height:40px;object-fit:contain}.site-initial{font-size:2rem;font-weight:700}.site-preview-body{background:#f9fafb;height:120px;padding:.75rem}.preview-nav{display:flex;gap:.5rem;margin-bottom:.5rem}.preview-nav-item{background:#e5e7eb;border-radius:3px;color:#4b5563;font-size:.65rem;padding:.25rem .5rem}.site-info{padding:1rem}.site-info h3{color:#1f2937;font-size:1rem;margin:0 0 .25rem}.site-url{color:#3b82f6;font-size:.8rem;text-decoration:none}.site-url:hover{text-decoration:underline}.site-meta{color:#6b7280;display:flex;font-size:.8rem;gap:.5rem;margin-top:.5rem}.site-actions{align-items:center;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.75rem 1rem}.status-badge{border-radius:9999px;cursor:pointer}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.inactive{color:#991b1b}.status-badge.small{font-size:.7rem;padding:.125rem .5rem}.new-site-card{align-items:center;background:#f9fafb;border:2px dashed #d1d5db;cursor:pointer;display:flex;justify-content:center;min-height:300px}.new-site-card:hover{background:#eff6ff;border-color:#3b82f6}.new-site-content{text-align:center}.new-site-icon{display:block;font-size:3rem;margin-bottom:.5rem}.new-site-text{color:#6b7280;font-size:.9rem}.site-editor-view{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:280px 1fr 200px;height:calc(100vh - 200px)}.editor-sidebar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow-y:auto}.sidebar-header{border-bottom:1px solid #e5e7eb;padding:1rem}.btn-back{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.9rem;margin-bottom:.5rem;padding:0}.btn-back:hover{text-decoration:underline}.sidebar-header h3{color:#1f2937;font-size:1rem;margin:0 0 .25rem}.sidebar-section{border-bottom:1px solid #e5e7eb;padding:1rem}.section-header{margin-bottom:.75rem}.section-header h4{color:#374151;font-size:.9rem;margin:0}.btn-icon-small{background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:.9rem;height:24px;width:24px}.btn-icon-small:hover{background:#f3f4f6}.btn-icon-small.danger{color:#ef4444}.pages-list{display:flex;flex-direction:column;gap:.25rem}.page-item{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem}.page-item:hover{background:#f3f4f6}.page-item.active{background:#dbeafe}.page-icon{font-size:1rem}.page-title{color:#374151;font-size:.85rem}.draft-badge{background:#fef3c7;border-radius:3px;color:#92400e;font-size:.65rem;margin-left:auto;padding:.125rem .375rem}.quick-settings{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr)}.setting-btn{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;font-size:.8rem;padding:.5rem}.setting-btn:hover{background:#e5e7eb}.sidebar-actions{gap:.5rem}.editor-main,.sidebar-actions{display:flex;flex-direction:column}.editor-main{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.editor-toolbar{background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:.75rem 1rem}.editor-toolbar,.toolbar-left{align-items:center;display:flex}.toolbar-left{gap:.5rem}.page-title-display{color:#1f2937;font-weight:500}.page-slug{background:#e5e7eb;border-radius:4px;color:#6b7280;font-family:monospace;font-size:.8rem;padding:.125rem .5rem}.toolbar-right{display:flex;gap:.25rem}.btn-icon{background:#fff;border:1px solid #d1d5db;border-radius:6px;height:32px;width:32px}.btn-icon:hover,.page-editor{background:#f3f4f6}.page-editor{flex:1 1;overflow-y:auto;padding:1rem}.blocks-container{margin:0 auto;max-width:800px}.block-editor{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;overflow:hidden}.block-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.5rem .75rem}.block-type{color:#6b7280;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.block-actions{display:flex;gap:.25rem}.block-preview{padding:1rem}.hero-preview{background-position:50%;background-size:cover;border-radius:4px;color:#fff;padding:3rem 2rem;text-align:center}.hero-preview h2{font-size:1.5rem;margin:0 0 .5rem}.hero-preview p{margin:0 0 1rem;opacity:.9}.cta-preview{background:#fff;border:none;border-radius:6px;color:#1f2937;font-weight:500;padding:.5rem 1.5rem}.text-preview h3{color:#1f2937;font-size:1.1rem;margin:0 0 .5rem}.text-preview p{color:#4b5563;line-height:1.6;margin:0}.stats-preview{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);text-align:center}.stats-preview .stat-item{background:#f9fafb;border-radius:8px;padding:1rem}.stats-preview .stat-value{color:#1f2937;display:block;font-size:1.5rem;font-weight:700}.stats-preview .stat-label{color:#6b7280;font-size:.8rem}.form-preview{background:#f9fafb;border-radius:8px;padding:1rem}.form-preview h3{color:#374151;font-size:1rem;margin:0 0 1rem}.form-fields-preview{display:flex;flex-direction:column;gap:.5rem}.field-preview{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#9ca3af;padding:.75rem}.submit-preview{background:#3b82f6;border:none;border-radius:6px;color:#fff;margin-top:.5rem;padding:.75rem}.generic-block-preview{background:#f3f4f6;border-radius:8px;color:#6b7280;padding:2rem;text-align:center}.add-block-btn{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.9rem;padding:1rem;width:100%}.add-block-btn:hover{background:#f3f4f6;border-color:#3b82f6;color:#3b82f6}.no-page-selected{align-items:center;color:#6b7280;display:flex;flex-direction:column;height:100%;justify-content:center}.empty-icon{opacity:.5}.analytics-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1rem}.analytics-panel h4{color:#374151;font-size:.9rem;margin:0 0 1rem}.analytics-quick{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.analytics-item{background:#f9fafb;border-radius:8px;padding:.75rem;text-align:center}.analytics-value{color:#1f2937;display:block;font-size:1.25rem;font-weight:700}.analytics-label{color:#6b7280;font-size:.7rem}.device-breakdown{margin-top:1rem}.device-bar{background:#e5e7eb;border-radius:4px;display:flex;height:8px;overflow:hidden}.device-fill{height:100%}.device-fill.desktop{background:#3b82f6}.device-fill.mobile{background:#22c55e}.device-fill.tablet{background:#f59e0b}.device-legend{color:#6b7280;display:flex;font-size:.7rem;justify-content:space-between;margin-top:.5rem}.templates-view{margin:0 auto;max-width:1200px}.templates-view h2{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.templates-intro{color:#6b7280;margin:0 0 2rem}.templates-grid{grid-gap:1.5rem;gap:1.5rem}.template-card{background:#fff;box-shadow:0 2px 8px #00000014}.template-preview{height:180px;padding:1rem}.template-preview-content{background:#fff;border-radius:8px;height:100%;padding:.5rem}.preview-header{background:#e5e7eb;height:20px}.preview-header,.preview-hero{border-radius:4px;margin-bottom:.5rem}.preview-hero{background:#0000001a;height:50px}.preview-content .preview-block{background:#f3f4f6;border-radius:4px;height:25px;margin-bottom:.25rem}.template-info h3{color:#1f2937;font-size:1rem;margin:0 0 .25rem}.template-info p{color:#6b7280;margin:0 0 .5rem}.template-category{background:#e5e7eb;border-radius:4px;color:#374151;display:inline-block;font-size:.75rem;padding:.125rem .5rem;text-transform:capitalize}.template-card .btn-primary{margin:0 1rem 1rem;width:calc(100% - 2rem)}.modal-header h2{color:#1f2937;font-size:1.1rem}.modal-close{color:#6b7280}.form-group label{color:#374151}.form-group input[type=text],.form-group select{border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;padding:.75rem;width:100%}.subdomain-preview{align-items:center;background:#f9fafb;border-radius:8px;display:flex;font-family:monospace;padding:.75rem}.subdomain-text{color:#3b82f6;font-weight:500}.subdomain-domain{color:#6b7280}.template-select{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr)}.template-option{align-items:center;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem}.template-option:hover{border-color:#d1d5db}.template-option.selected{background:#eff6ff;border-color:#3b82f6}.template-color{border-radius:4px;height:24px;width:24px}.theme-editor{display:flex;flex-direction:column;gap:1.5rem}.theme-colors h4,.theme-presets h4,.theme-typography h4{color:#374151;font-size:.9rem;margin:0 0 .75rem}.presets-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.preset-item{align-items:center;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.8rem;height:60px;justify-content:center;text-transform:capitalize}.preset-item:hover{opacity:.9}.color-inputs{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.color-input{display:flex;flex-direction:column;gap:.25rem}.color-input label{color:#6b7280;font-size:.8rem}.color-input input[type=color]{border:1px solid #d1d5db;border-radius:6px;cursor:pointer;height:40px;width:100%}.modal-footer{background:#f9fafb}@media (max-width:1200px){.site-editor-view{grid-template-columns:250px 1fr}.analytics-panel{display:none}}@media (max-width:768px){.school-sites-container{padding:1rem}.sites-header{flex-direction:column;gap:1rem}.header-right{flex-wrap:wrap;width:100%}.site-editor-view,.sites-grid{grid-template-columns:1fr}.site-editor-view{height:auto}.editor-sidebar{order:2}.editor-main{min-height:500px;order:1}.templates-grid{grid-template-columns:1fr}.stats-preview{grid-template-columns:repeat(2,1fr)}.template-select{grid-template-columns:1fr}.presets-grid{grid-template-columns:repeat(2,1fr)}.color-inputs{grid-template-columns:1fr}}.ai-tutor-page{display:flex;flex-direction:column;margin:0 auto;max-width:1400px;min-height:calc(100vh - 120px);padding:1.5rem}.tutor-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.tutor-header h1{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0}.tutor-header p{color:var(--text-secondary);font-size:.9rem;margin:.25rem 0 0}.header-actions{gap:.5rem}.view-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.5rem;padding:.625rem 1rem}.view-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.view-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn-icon{font-size:1rem}.tutor-chat-container{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.session-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.5rem}.session-info h2{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:.25rem 0}.session-time{color:var(--text-muted);font-size:.8rem}.end-session-btn{align-items:center;background:#fee2e2;border:none;border-radius:8px;color:#dc2626;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.end-session-btn:hover{background:#fecaca}.messages-container{background:linear-gradient(180deg,var(--bg-secondary) 0,var(--bg-primary) 100%);display:flex;flex:1 1;flex-direction:column;gap:1rem;overflow-y:auto;padding:1.5rem}.tutor-message{display:flex;gap:.75rem;max-width:85%}.tutor-message.student{align-self:flex-end;flex-direction:row-reverse}.tutor-message.tutor{align-self:flex-start}.message-avatar{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;display:flex;flex-shrink:0;font-size:1.25rem;height:36px;justify-content:center;width:36px}.tutor-message.tutor .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.message-content{display:flex;flex-direction:column;gap:.25rem}.tutor-message.student .message-content{align-items:flex-end}.message-bubble{border-radius:16px;line-height:1.5;padding:.875rem 1.125rem}.tutor-message.student .message-bubble{background:var(--primary-color);border-bottom-right-radius:4px;color:#fff}.tutor-message.tutor .message-bubble{background:var(--bg-primary);border:1px solid var(--border-color);border-bottom-left-radius:4px;color:var(--text-primary)}.message-text{font-size:.9375rem;white-space:pre-wrap}.message-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.message-time{color:var(--text-muted);font-size:.75rem}.related-concepts{display:flex;flex-wrap:wrap;gap:.25rem}.concept-tag{background:var(--bg-secondary);border-radius:10px;color:var(--text-secondary);font-size:.7rem;padding:.125rem .5rem}.message-bubble.typing{align-items:center;display:flex;gap:4px;padding:1rem 1.25rem}.typing-dot{animation:typingBounce 1.4s ease-in-out infinite both;background:var(--text-muted);border-radius:50%;height:8px;width:8px}.typing-dot:first-child{animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.message-input-container{background:var(--bg-primary);border-top:1px solid var(--border-color);display:flex;gap:.75rem;padding:1rem 1.5rem}.message-input-container textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:.9375rem;padding:.875rem 1rem;resize:none}.message-input-container textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a;outline:none}.send-btn{align-items:center;background:var(--primary-color);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:48px;justify-content:center;transition:all .2s;width:48px}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.05)}.send-btn:disabled{background:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.no-session{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.no-session-icon{font-size:4rem;margin-bottom:1rem}.no-session h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.no-session p{color:var(--text-secondary);margin-bottom:1.5rem;max-width:400px}.start-session-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 2rem;transition:all .2s}.start-session-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.recent-sessions{margin-top:2rem;max-width:400px;width:100%}.recent-sessions h3{color:var(--text-secondary);font-size:.875rem;font-weight:600;margin-bottom:.75rem;text-align:left}.recent-session-card{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.875rem 1rem;transition:all .2s}.recent-session-card:hover{background:var(--bg-hover);border-color:var(--primary-color)}.subject-icon{font-size:1.5rem}.session-details{flex:1 1;text-align:left}.session-subject{color:var(--text-muted);display:block;font-size:.75rem}.session-topic{color:var(--text-primary);font-size:.9rem;font-weight:500}.resume-btn{color:var(--primary-color);font-size:.8rem;font-weight:500}.history-container{flex:1 1}.history-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.history-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.new-session-btn{align-items:center;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s}.new-session-btn:hover{background:var(--primary-hover)}.empty-history{align-items:center;background:var(--bg-secondary);border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:4rem;text-align:center}.sessions-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.session-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;transition:all .2s}.session-card.active{border-color:var(--primary-color);cursor:pointer}.session-card.active:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.session-card-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:.875rem 1rem}.status-badge.active{color:#22c55e}.session-date,.status-badge.completed{color:var(--text-muted)}.session-date{font-size:.75rem}.session-card-body{padding:1rem}.subject-tag{background:var(--bg-secondary);color:var(--text-secondary)}.session-card-body h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .5rem}.messages-count{color:var(--text-muted);font-size:.8rem;margin:0}.session-summary{background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;justify-content:space-around;padding:.875rem 1rem}.summary-stat{align-items:center;display:flex;flex-direction:column;gap:.125rem}.stat-value{color:var(--primary-color);font-size:1rem;font-weight:600}.stat-label{font-size:.7rem}.session-card-action{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.875rem;font-weight:500;padding:.75rem 1rem;text-align:center}.progress-container{flex:1 1}.progress-header{margin-bottom:1.5rem}.progress-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.empty-progress{align-items:center;background:var(--bg-secondary);border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:4rem;text-align:center}.progress-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.progress-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem}.progress-card-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1.25rem}.subject-emoji{font-size:2rem}.progress-card-header h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.progress-score{display:flex;justify-content:center;margin-bottom:1.5rem}.score-circle{height:100px;position:relative;width:100px}.score-circle svg{height:100%;transform:rotate(-90deg);width:100%}.score-circle path{stroke-linecap:round}.score-value{color:var(--primary-color);font-size:1.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-stats{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;justify-content:space-around;margin-bottom:1rem;padding:1rem 0}.stat-item{gap:.5rem}.stat-icon{font-size:1rem}.stat-text{color:var(--text-secondary);font-size:.8rem}.progress-details{margin-bottom:1.25rem}.detail-section{margin-bottom:1rem}.detail-section h4{margin:0 0 .5rem}.tag.strength{background:#dcfce7;color:#166534}.tag.weakness{background:#fee2e2;color:#991b1b}.tag.recommended{background:#dbeafe;color:#1e40af}.start-topic-btn{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.75rem;transition:all .2s;width:100%}.start-topic-btn:hover{background:var(--primary-hover)}.modal-header h2{font-size:1.125rem}.form-group:last-child{margin-bottom:0}.subject-selector{display:flex;flex-wrap:wrap;gap:.5rem}.subject-option{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.5rem 1rem;transition:all .2s}.subject-option:hover{border-color:var(--primary-color);color:var(--primary-color)}.subject-option.selected{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.cancel-btn,.confirm-btn{border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.cancel-btn{background:#0000;border:1px solid var(--border-color);color:var(--text-secondary)}.cancel-btn:hover{background:var(--bg-hover)}.confirm-btn{background:var(--primary-color);border:none;color:#fff}.confirm-btn:hover:not(:disabled){background:var(--primary-hover)}.confirm-btn:disabled{background:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}@media (max-width:768px){.ai-tutor-page{padding:1rem}.tutor-header{align-items:flex-start;flex-direction:column}.header-actions{overflow-x:auto;padding-bottom:.5rem;width:100%}.view-btn{flex-shrink:0}.session-header{align-items:flex-start;flex-direction:column;gap:1rem}.messages-container{padding:1rem}.tutor-message{max-width:95%}.message-input-container{padding:.75rem 1rem}.progress-grid,.sessions-list{grid-template-columns:1fr}.modal-content{margin:.5rem;max-height:95vh}}@media (prefers-color-scheme:dark){.tag.strength{background:#16a34a33;color:#86efac}.tag.weakness{background:#dc262633;color:#fca5a5}.tag.recommended{background:#3b82f633;color:#93c5fd}.end-session-btn{background:#dc262633;color:#fca5a5}.end-session-btn:hover{background:#dc26264d}}.ai-correction-page{margin:0 auto;max-width:1400px;padding:1.5rem}.correction-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem}.header-stats{gap:1rem}.stat-card{background:var(--bg-primary);border:1px solid var(--border-color);gap:.75rem;padding:.875rem 1.25rem}.stat-card .stat-icon{font-size:1.5rem}.stat-card.pending{background:#fffbeb;border-color:#fbbf24}.stat-card.corrected{background:#f0fdf4;border-color:#22c55e}.stat-info{display:flex;flex-direction:column}.stat-info .stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:700}.stat-info .stat-label{color:var(--text-secondary);font-size:.75rem}.correction-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.tab-btn .badge{background:#ef4444}.assignments-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.assignment-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;padding:1.25rem;transition:all .2s}.assignment-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.assignment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.subject-badge{background:var(--primary-color);font-size:.75rem;font-weight:600}.assignment-type{font-size:1.25rem}.assignment-card h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.assignment-class{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.assignment-meta{color:var(--text-muted);display:flex;font-size:.8rem;gap:1rem;margin-bottom:1rem}.assignment-meta span{align-items:center;display:flex;gap:.25rem}.submissions-summary{border-top:1px solid var(--border-color);display:flex;justify-content:space-around;padding-top:1rem}.summary-item{align-items:center;flex-direction:column;gap:.125rem}.summary-item .count{color:var(--primary-color);font-size:1.125rem;font-weight:600}.summary-item .label{color:var(--text-muted);font-size:.7rem}.submissions-list{display:flex;flex-direction:column;gap:.75rem}.submission-card{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;display:flex;justify-content:space-between;padding:1rem 1.25rem;transition:all .2s}.submission-card.corrected{cursor:pointer}.submission-card.corrected:hover{background:var(--bg-hover);border-color:var(--primary-color)}.submission-info{align-items:center;display:flex;gap:1rem}.student-avatar{font-size:1.125rem;height:44px;width:44px}.submission-details h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .25rem}.submission-details .assignment-title{color:var(--text-secondary);font-size:.875rem;margin:0}.submitted-date{color:var(--text-muted);font-size:.75rem}.correction-badges{display:flex;gap:.5rem;margin-top:.25rem}.confidence-badge,.reviewed-badge{border-radius:4px;font-size:.7rem;font-weight:500;padding:.125rem .5rem}.confidence-badge{background:#dbeafe;color:#1e40af}.reviewed-badge{background:#dcfce7;color:#166534}.correct-btn,.submission-actions{display:flex;gap:.5rem}.correct-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.correct-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.correct-btn:disabled{cursor:not-allowed;opacity:.7}.score-display{align-items:baseline;display:flex;gap:.125rem}.score-display .score-value{font-size:1.5rem;font-weight:700}.score-display .score-max{color:var(--text-muted);font-size:1rem}.modal-header h2{color:var(--text-primary);margin:.25rem 0 0}.correction-date{color:var(--text-muted);font-size:.8rem}.modal-close{flex-shrink:0}.assignment-description{margin-bottom:1.5rem}.assignment-description h4,.rubric-section h4,.submissions-section h4{color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 .75rem;text-transform:uppercase}.assignment-description p{color:var(--text-primary);line-height:1.6;margin:0}.rubric-section{margin-bottom:1.5rem}.rubric-list{display:flex;flex-direction:column;gap:.75rem}.rubric-item{background:var(--bg-secondary);border-radius:8px;padding:.875rem 1rem}.rubric-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.375rem}.rubric-name{color:var(--text-primary);font-weight:600}.rubric-points{color:var(--primary-color);font-size:.875rem;font-weight:600}.rubric-desc{color:var(--text-secondary);font-size:.8rem;margin:0}.submissions-table{display:flex;flex-direction:column;gap:.5rem}.submission-row{background:var(--bg-secondary);border-radius:8px;gap:1rem;padding:.75rem 1rem}.student-info,.submission-row{align-items:center;display:flex}.student-info{gap:.75rem}.student-info .avatar{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:flex;font-size:.875rem;font-weight:600;height:32px;justify-content:center;width:32px}.student-info .name{color:var(--text-primary);font-size:.9rem;font-weight:500}.status-badge.pending{color:#92400e}.status-badge.corrected{background:#dbeafe;color:#1e40af}.status-badge.reviewed{background:#dcfce7;color:#166534}.submission-row .score{color:var(--primary-color);font-weight:600}.action-btn{background:var(--primary-color);color:#fff;font-size:.8rem;padding:.375rem .75rem}.action-btn:hover{background:var(--primary-hover)}.action-btn.secondary{background:var(--bg-primary)}.correction-detail{display:flex;flex-direction:column;gap:1.5rem}.global-score{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;text-align:center}.score-circle.large{align-items:baseline;display:flex;gap:.25rem;justify-content:center;margin-bottom:.75rem}.score-circle.large .score-number{font-size:3rem;font-weight:700}.score-circle.large .score-max{color:var(--text-muted);font-size:1.5rem}.score-meta{display:flex;gap:1.5rem;justify-content:center}.score-meta .confidence,.score-meta .plagiarism{color:var(--text-secondary);font-size:.8rem}.criteria-scores h4,.feedback-section h4,.teacher-actions h4{color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 1rem;text-transform:uppercase}.criteria-score-item{margin-bottom:1rem}.criteria-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.criteria-name{color:var(--text-primary);font-weight:500}.criteria-points{font-size:1rem;font-weight:700}.criteria-bar{background:var(--bg-secondary);border-radius:4px;height:8px;margin-bottom:.5rem;overflow:hidden}.criteria-fill{border-radius:4px;height:100%;transition:width .5s ease}.criteria-justification{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin:0}.feedback-overall{background:var(--bg-secondary);border-radius:8px;margin-bottom:1rem;padding:1rem}.feedback-overall p{color:var(--text-primary);line-height:1.6;margin:0}.feedback-columns{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.feedback-column h5{color:var(--text-secondary);font-size:.8rem;font-weight:600;margin:0 0 .5rem}.feedback-column ul{list-style:none;margin:0;padding:0}.feedback-column li{align-items:flex-start;color:var(--text-primary);display:flex;font-size:.85rem;gap:.5rem;margin-bottom:.375rem}.feedback-column.strengths li span{color:#22c55e}.feedback-column.weaknesses li span{color:#f97316}.encouragement{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;display:flex;gap:.75rem;padding:1rem}.encouragement-icon{font-size:1.5rem}.encouragement p{color:#92400e;font-weight:500;margin:0}.teacher-actions{border-top:1px solid var(--border-color);padding-top:1rem}.action-buttons{display:flex;gap:.75rem}.approve-btn,.modify-btn{align-items:center;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s}.approve-btn{background:#22c55e;border:none;color:#fff}.approve-btn:hover{background:#16a34a}.modify-btn{background:#0000;border:1px solid var(--border-color);color:var(--text-primary)}.modify-btn:hover{background:var(--bg-hover)}@media (max-width:768px){.ai-correction-page{padding:1rem}.correction-header{flex-direction:column}.header-stats{justify-content:space-between;width:100%}.stat-card{flex:1 1;padding:.75rem}.correction-tabs{gap:.25rem;overflow-x:auto;padding-bottom:.75rem}.tab-btn{padding:.5rem 1rem;white-space:nowrap}.assignments-grid{grid-template-columns:1fr}.submission-card{align-items:flex-start;flex-direction:column;gap:1rem}.submission-actions{width:100%}.correct-btn{flex:1 1;justify-content:center}.modal-content{margin:.5rem;max-height:95vh}.modal-content.large{max-width:100%}.feedback-columns{grid-template-columns:1fr}.action-buttons{flex-direction:column}}@media (prefers-color-scheme:dark){.stat-card.pending{background:#fbbf241a;border-color:#fbbf244d}.stat-card.corrected{background:#22c55e1a;border-color:#22c55e4d}.confidence-badge{background:#3b82f633;color:#93c5fd}.reviewed-badge{background:#22c55e33;color:#86efac}.status-badge.pending{background:#fbbf2433;color:#fcd34d}.status-badge.corrected{background:#3b82f633;color:#93c5fd}.status-badge.reviewed{background:#22c55e33;color:#86efac}.encouragement{background:linear-gradient(135deg,#fbbf2433,#f59e0b33)}.encouragement p{color:#fcd34d}}.ai-exercises-page{margin:0 auto;max-width:1400px;padding:1.5rem}.exercises-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.header-stats{display:flex;gap:1.5rem}.header-stats .stat-item{text-align:center}.header-stats .stat-value{color:var(--primary-color);display:block;font-size:1.5rem;font-weight:700}.header-stats .stat-label{color:var(--text-muted);font-size:.75rem}.exercises-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.empty-state{align-items:center;background:var(--bg-secondary);display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:4rem}.empty-state p{color:var(--text-secondary);margin:0 0 1rem}.create-set-btn{align-items:center;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s}.create-set-btn:hover{background:var(--primary-hover)}.filters-bar{align-items:center;gap:.75rem;margin-bottom:1.25rem}.filters-bar select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.filters-bar select:focus{border-color:var(--primary-color);outline:none}.results-count{margin-left:auto}.exercises-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.exercise-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;overflow:hidden;transition:all .2s}.exercise-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.exercise-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;padding:.875rem 1rem}.exercise-header,.type-badge{align-items:center;display:flex}.type-badge{color:var(--text-secondary);font-size:.8rem;gap:.375rem}.type-icon{font-size:1rem}.difficulty-badge{border-radius:12px;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .625rem}.exercise-body{padding:1rem}.subject-tag{background:var(--primary-color);border-radius:6px;display:inline-block;font-size:.7rem;font-weight:600;margin-bottom:.5rem;padding:.25rem .625rem}.exercise-question{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:.9rem;line-height:1.5;margin:0 0 .75rem;overflow:hidden}.topic-tag{background:var(--bg-secondary);border-radius:4px;color:var(--text-muted);display:inline-block;font-size:.7rem;padding:.125rem .5rem}.exercise-footer{align-items:center;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;padding:.75rem 1rem}.exercise-stats{display:flex;gap:1rem}.exercise-stats .stat{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:.25rem}.exercise-stats .icon{font-size:.875rem}.created-by{border-radius:4px;font-size:.7rem;padding:.125rem .5rem}.created-by.ai{background:#dbeafe;color:#1e40af}.created-by.teacher{background:#dcfce7;color:#166534}.generate-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 400px}.generate-form{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem}.generate-form h2{font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.form-group input,.form-group label,.generate-form h2{color:var(--text-primary)}.form-group input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:.9375rem;padding:.75rem 1rem;width:100%}.form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a;outline:none}.subject-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.subject-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.625rem .75rem;transition:all .2s}.subject-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.subject-btn.selected{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.difficulty-selector{display:flex;gap:.5rem}.diff-btn{background:#0000;border:2px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.8rem;padding:.5rem;transition:all .2s}.diff-btn:hover{opacity:.8}.diff-btn.selected{color:#fff}.count-selector{display:flex;gap:.5rem}.count-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.875rem;padding:.5rem;transition:all .2s}.count-btn.selected,.count-btn:hover{border-color:var(--primary-color)}.count-btn.selected{background:var(--primary-color);color:#fff}.types-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr)}.type-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;padding:.75rem .5rem;transition:all .2s}.type-btn.selected,.type-btn:hover{border-color:var(--primary-color)}.type-btn.selected{background:#6366f11a}.type-btn .type-icon{font-size:1.25rem}.type-btn .type-label{color:var(--text-secondary);font-size:.7rem;text-align:center}.type-btn.selected .type-label{color:var(--primary-color);font-weight:500}.generate-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;margin-top:1rem;padding:1rem;transition:all .2s;width:100%}.generate-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.generate-btn:disabled{cursor:not-allowed;opacity:.6}.progress-bar{background:var(--bg-secondary);margin-top:1rem}.progress-bar,.progress-fill{border-radius:3px}.generated-preview{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;display:flex;flex-direction:column;max-height:600px;padding:1.5rem}.generated-preview h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 1rem}.preview-list{display:flex;flex:1 1;flex-direction:column;gap:.75rem;overflow-y:auto}.preview-item{align-items:flex-start;background:var(--bg-secondary);border-radius:8px;display:flex;gap:.75rem;padding:.75rem}.preview-number{align-items:center;background:var(--primary-color);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.preview-content{flex:1 1;min-width:0}.preview-type{color:var(--text-muted);display:block;font-size:.7rem;margin-bottom:.25rem}.preview-question{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:.85rem;margin:0;overflow:hidden}.preview-points{color:var(--primary-color);font-size:.75rem;font-weight:600}.preview-actions{border-top:1px solid var(--border-color);gap:.75rem;margin-top:1rem;padding-top:1rem}.action-btn{flex:1 1}.action-btn.secondary{background:#0000;border:1px solid var(--border-color);color:var(--text-primary)}.action-btn.secondary:hover{background:var(--bg-hover)}.sets-container{padding:0}.sets-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.set-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;transition:all .2s}.set-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a}.set-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.difficulty-dot{border-radius:50%;height:12px;width:12px}.set-card h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.set-description{color:var(--text-secondary);font-size:.875rem;line-height:1.5;margin:0 0 1rem}.set-topics{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1rem}.topic-chip{background:var(--bg-secondary);border-radius:12px;color:var(--text-secondary);font-size:.75rem;padding:.25rem .625rem}.set-stats{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;justify-content:space-around;margin-bottom:1rem;padding:1rem 0}.set-stats .stat{align-items:center;display:flex;flex-direction:column;gap:.125rem}.set-stats .stat-value{color:var(--primary-color);font-size:1.125rem;font-weight:600}.set-stats .stat-label{color:var(--text-muted);font-size:.7rem}.set-footer{justify-content:space-between}.set-footer,.usage{align-items:center;display:flex}.usage{color:var(--text-muted);font-size:.8rem;gap:.375rem}.set-actions{display:flex;gap:.375rem}.icon-btn{align-items:center;background:var(--bg-secondary);border:none;border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.icon-btn:hover{background:var(--bg-hover)}.modal-content{max-width:600px}.modal-header{padding:1rem 1.5rem}.header-badges{align-items:center;display:flex;gap:.75rem}.exercise-detail{display:flex;flex-direction:column;gap:1.25rem}.detail-meta{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.detail-meta .subject{color:var(--primary-color);font-weight:500}.detail-meta .separator{color:var(--text-muted)}.detail-meta .topic{color:var(--text-secondary)}.answer-section h4,.explanation-section h4,.hints-section h4,.options-section h4,.question-section h4{color:var(--text-secondary);font-size:.8rem;font-weight:600;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.question-text{color:var(--text-primary);font-size:1rem;line-height:1.6;margin:0}.options-list{display:flex;flex-direction:column;gap:.5rem}.option-item{align-items:center;background:var(--bg-secondary);border:1px solid #0000;border-radius:8px;display:flex;gap:.75rem;padding:.75rem 1rem}.option-item.correct{background:#22c55e1a;border-color:#22c55e}.option-marker{align-items:center;display:flex;font-size:.875rem;height:20px;justify-content:center;width:20px}.option-item.correct .option-marker{color:#22c55e;font-weight:600}.option-text{color:var(--text-primary);font-size:.9rem}.answer-text{background:#22c55e1a;border-radius:8px;color:#166534;font-size:.9rem;font-weight:500;margin:0;padding:.75rem 1rem}.explanation-text{color:var(--text-primary);font-size:.9rem;line-height:1.6;margin:0}.hints-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.hints-list li{align-items:flex-start;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.5rem}.hint-icon{flex-shrink:0}.detail-stats{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;gap:1.5rem;padding:1rem 0}.detail-stats .stat-item{align-items:center;display:flex;gap:.375rem}.detail-stats .stat-icon{font-size:1rem}.detail-stats .stat-value{color:var(--text-secondary);font-size:.875rem}.detail-tags{display:flex;flex-wrap:wrap;gap:.375rem}.detail-tags .tag{border-radius:12px;color:var(--text-muted);font-size:.75rem;padding:.25rem .625rem}.detail-tags .tag,.modal-footer{background:var(--bg-secondary)}@media (max-width:1024px){.generate-container{grid-template-columns:1fr}.generated-preview{max-height:400px}}@media (max-width:768px){.ai-exercises-page{padding:1rem}.exercises-header{flex-direction:column}.exercises-tabs{overflow-x:auto;padding-bottom:.75rem}.tab-btn{white-space:nowrap}.filters-bar{align-items:stretch;flex-direction:column}.filters-bar select{width:100%}.results-count{margin-left:0;text-align:center}.exercises-grid{grid-template-columns:1fr}.subject-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.types-grid{grid-template-columns:repeat(2,1fr)}.sets-grid{grid-template-columns:1fr}.modal-content{margin:.5rem;max-height:95vh}.modal-footer{flex-direction:column}.action-btn{width:100%}}[data-theme=dark] .ai-exercises-page{color:#e2e8f0}[data-theme=dark] .header-info h1{color:#f8fafc}[data-theme=dark] .header-info p{color:#94a3b8}[data-theme=dark] .header-stats .stat-value{color:#818cf8}[data-theme=dark] .header-stats .stat-label{color:#94a3b8}[data-theme=dark] .exercises-tabs{border-bottom-color:#334155}[data-theme=dark] .tab-btn:hover{background:#334155;color:#f8fafc}[data-theme=dark] .tab-btn.active{background:#4f46e5}[data-theme=dark] .filters-bar select{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] .filters-bar select:focus{border-color:#4f46e5}[data-theme=dark] .results-count{color:#94a3b8}[data-theme=dark] .exercise-card{background:#1e293b;border-color:#334155}[data-theme=dark] .exercise-card:hover{border-color:#4f46e5;box-shadow:0 4px 12px #0000004d}[data-theme=dark] .exercise-header{background:#0f172a;border-bottom-color:#334155}[data-theme=dark] .type-badge{color:#94a3b8}[data-theme=dark] .exercise-question{color:#f8fafc}[data-theme=dark] .topic-tag{background:#334155;color:#94a3b8}[data-theme=dark] .exercise-footer{border-top-color:#334155}[data-theme=dark] .exercise-stats .stat{color:#94a3b8}[data-theme=dark] .created-by.ai{background:#3b82f633;color:#93c5fd}[data-theme=dark] .created-by.teacher{background:#22c55e33;color:#86efac}[data-theme=dark] .generate-form{background:#1e293b;border-color:#334155}[data-theme=dark] .generate-form h2{color:#f8fafc}[data-theme=dark] .form-group label{color:#e2e8f0}[data-theme=dark] .form-group input{background:#0f172a;border-color:#334155;color:#f8fafc}[data-theme=dark] .form-group input:focus{border-color:#4f46e5}[data-theme=dark] .subject-btn{background:#0f172a;border-color:#334155;color:#94a3b8}[data-theme=dark] .subject-btn:hover{border-color:#4f46e5;color:#818cf8}[data-theme=dark] .subject-btn.selected{background:#4f46e5;border-color:#4f46e5;color:#fff}[data-theme=dark] .count-btn,[data-theme=dark] .diff-btn{border-color:#334155;color:#94a3b8}[data-theme=dark] .count-btn{background:#0f172a}[data-theme=dark] .count-btn:hover{border-color:#4f46e5}[data-theme=dark] .count-btn.selected{background:#4f46e5;border-color:#4f46e5;color:#fff}[data-theme=dark] .type-btn{background:#0f172a;border-color:#334155}[data-theme=dark] .type-btn:hover{border-color:#4f46e5}[data-theme=dark] .type-btn.selected{background:#4f46e533;border-color:#4f46e5}[data-theme=dark] .type-btn .type-label{color:#94a3b8}[data-theme=dark] .type-btn.selected .type-label{color:#818cf8}[data-theme=dark] .generated-preview{background:#1e293b;border-color:#334155}[data-theme=dark] .generated-preview h3{color:#f8fafc}[data-theme=dark] .preview-item{background:#0f172a}[data-theme=dark] .preview-type{color:#94a3b8}[data-theme=dark] .preview-question{color:#f8fafc}[data-theme=dark] .preview-points{color:#818cf8}[data-theme=dark] .preview-actions{border-top-color:#334155}[data-theme=dark] .action-btn.secondary{border-color:#334155;color:#e2e8f0}[data-theme=dark] .action-btn.secondary:hover{background:#334155}[data-theme=dark] .set-card{background:#1e293b;border-color:#334155}[data-theme=dark] .set-card:hover{border-color:#4f46e5;box-shadow:0 4px 12px #0000004d}[data-theme=dark] .set-card h3{color:#f8fafc}[data-theme=dark] .set-description{color:#94a3b8}[data-theme=dark] .topic-chip{background:#334155;color:#94a3b8}[data-theme=dark] .set-stats{border-bottom-color:#334155;border-top-color:#334155}[data-theme=dark] .set-stats .stat-value{color:#818cf8}[data-theme=dark] .set-stats .stat-label,[data-theme=dark] .usage{color:#94a3b8}[data-theme=dark] .icon-btn{background:#334155;color:#e2e8f0}[data-theme=dark] .icon-btn:hover{background:#475569}[data-theme=dark] .modal-close{background:#334155}[data-theme=dark] .modal-close:hover{background:#475569;color:#f8fafc}[data-theme=dark] .detail-meta .subject{color:#818cf8}[data-theme=dark] .detail-meta .separator{color:#64748b}[data-theme=dark] .answer-section h4,[data-theme=dark] .detail-meta .topic,[data-theme=dark] .explanation-section h4,[data-theme=dark] .hints-section h4,[data-theme=dark] .options-section h4,[data-theme=dark] .question-section h4{color:#94a3b8}[data-theme=dark] .question-text{color:#f8fafc}[data-theme=dark] .option-item{background:#0f172a}[data-theme=dark] .option-item.correct{background:#22c55e26;border-color:#22c55e}[data-theme=dark] .option-text{color:#f8fafc}[data-theme=dark] .answer-text{background:#22c55e26;color:#86efac}[data-theme=dark] .explanation-text{color:#e2e8f0}[data-theme=dark] .hints-list li{color:#94a3b8}[data-theme=dark] .detail-stats{border-bottom-color:#334155;border-top-color:#334155}[data-theme=dark] .detail-stats .stat-value{color:#94a3b8}[data-theme=dark] .detail-tags .tag{background:#334155;color:#94a3b8}[data-theme=dark] .modal-footer{background:#0f172a;border-top-color:#334155}[data-theme=dark] .empty-state{background:#1e293b}[data-theme=dark] .empty-state p{color:#94a3b8}[data-theme=dark] .loading-spinner{border-color:#4f46e5 #334155 #334155}[data-theme=dark] .loading-container{color:#94a3b8}.predictive-analytics-page{margin:0 auto;max-width:1600px;padding:1.5rem}.analytics-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.header-info h1{font-size:1.75rem;font-weight:700}.header-info p{font-size:.9rem;margin:.25rem 0 0}.action-btn{background:var(--bg-secondary);border-radius:8px;padding:.625rem 1rem}.action-btn:hover{background:var(--bg-hover)}.action-btn.primary{background:var(--primary-color);border-color:var(--primary-color)}.action-btn.primary:hover{background:var(--primary-hover)}.action-btn.small{font-size:.8rem;padding:.375rem .75rem}.action-btn.success{background:#22c55e;border-color:#22c55e;color:#fff}.analytics-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.tab-btn{border-radius:8px;font-size:.875rem;padding:.625rem 1.25rem}.tab-btn:hover{background:var(--bg-secondary)}.tab-btn.active{background:var(--primary-color)}.tab-btn .badge{background:#f97316;border-radius:9px;font-weight:600;height:18px;min-width:18px;padding:0 4px;right:-4px;top:-4px}.tab-btn .badge.alert{background:#ef4444}.loading-container{gap:1rem}.loading-spinner{border:4px solid var(--border-color);border-top-color:var(--primary-color);height:48px;width:48px}.dashboard-content{display:flex;flex-direction:column;gap:1.5rem}.kpi-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.kpi-card{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:1rem;padding:1.25rem;position:relative}.kpi-card.warning{background:#f973160d;border-color:#f97316}.kpi-card.critical{background:#ef44440d;border-color:#ef4444}.kpi-card.info{background:#3b82f60d;border-color:#3b82f6}.kpi-icon{font-size:2rem}.kpi-content{display:flex;flex-direction:column}.kpi-value{color:var(--text-primary);font-size:1.75rem;font-weight:700}.kpi-label{color:var(--text-muted);font-size:.8rem}.kpi-trend{font-size:1.25rem;position:absolute;right:1rem;top:1rem}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.chart-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.chart-card.wide{grid-column:span 2}.chart-card h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 1.25rem}.risk-distribution{display:flex;flex-direction:column;gap:1rem}.distribution-item{display:flex;flex-direction:column;gap:.375rem}.distribution-bar-container{background:var(--bg-secondary);border-radius:4px;height:24px;overflow:hidden}.distribution-bar{border-radius:4px;height:100%;transition:width .5s ease}.distribution-label{align-items:center;display:flex;font-size:.8rem;gap:.5rem}.level-dot{border-radius:50%;height:10px;width:10px}.level-name{color:var(--text-secondary);flex:1 1}.level-count{color:var(--text-primary);font-weight:600}.factors-list{display:flex;flex-direction:column;gap:1rem}.factor-item{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;gap:1rem;padding:.75rem}.factor-rank{color:var(--primary-color);font-size:.875rem;font-weight:700;width:30px}.factor-info{display:flex;flex:1 1;flex-direction:column}.factor-name{color:var(--text-primary);font-size:.9rem;font-weight:500}.factor-students{color:var(--text-muted);font-size:.75rem}.factor-impact{align-items:center;display:flex;gap:.5rem;width:120px}.impact-bar{background:var(--bg-primary);border-radius:4px;flex:1 1;height:8px;overflow:hidden}.impact-fill{background:var(--primary-color);border-radius:4px;height:100%}.impact-value{color:var(--text-primary);font-size:.8rem;font-weight:600;text-align:right;width:35px}.trend-chart{height:150px;justify-content:space-around;padding:1rem 0}.trend-bar-group{align-items:center;display:flex;flex-direction:column;gap:.5rem}.trend-bars{align-items:flex-end;display:flex;gap:4px;height:120px}.trend-bar{width:20px}.trend-bar.risk{background:var(--primary-color)}.trend-bar.count{background:#f97316}.trend-label{color:var(--text-muted);font-size:.75rem}.chart-legend{border-top:1px solid var(--border-color);display:flex;gap:2rem;justify-content:center;margin-top:1rem;padding-top:1rem}.legend-item{color:var(--text-secondary);font-size:.8rem;gap:.5rem}.legend-color{border-radius:3px;height:12px;width:12px}.legend-color.risk{background:var(--primary-color)}.legend-color.count{background:#f97316}.class-comparison{display:flex;flex-direction:column;gap:.875rem}.class-item{background:var(--bg-secondary);border-radius:8px;padding:.75rem}.class-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.class-name{color:var(--text-primary);font-weight:600}.class-trend{font-size:1rem}.class-stats{color:var(--text-secondary);display:flex;font-size:.8rem;gap:1.5rem;margin-bottom:.5rem}.class-bar{background:var(--bg-primary);border-radius:3px;height:6px;overflow:hidden}.class-bar-fill{border-radius:3px;height:100%;transition:width .5s ease}.recent-alerts{display:flex;flex-direction:column;gap:.5rem}.alert-item{background:var(--bg-secondary);border-left:3px solid #0000;cursor:pointer;padding:.75rem;transition:all .2s}.alert-item:hover{background:var(--bg-hover)}.alert-item.critical{border-left-color:#ef4444}.alert-item.high{border-left-color:#f97316}.alert-item.medium{border-left-color:#eab308}.alert-item.read{opacity:.6}.alert-icon{font-size:1.25rem}.alert-content{display:flex;flex:1 1;flex-direction:column}.alert-title{color:var(--text-primary);font-size:.85rem;font-weight:500}.alert-student{color:var(--text-muted);font-size:.75rem}.alert-type{background:var(--bg-primary);border-radius:4px;color:var(--text-secondary);font-size:.7rem;padding:.125rem .5rem}.view-all-btn{background:#0000;border:1px dashed var(--border-color);border-radius:8px;color:var(--primary-color);cursor:pointer;font-size:.875rem;margin-top:.5rem;padding:.75rem;transition:all .2s;width:100%}.view-all-btn:hover{background:var(--bg-secondary)}.students-content{display:flex;flex-direction:column;gap:1rem}.students-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.filter-group{gap:.75rem}.filter-group label{color:var(--text-secondary)}.filter-group select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.875rem}.students-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.student-risk-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;padding:1.25rem;transition:all .2s}.student-risk-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.student-risk-card.critical{border-color:#ef4444}.student-risk-card.high{border-color:#f97316}.student-risk-card.medium{border-color:#eab308}.student-main{gap:1rem;margin-bottom:1rem}.student-avatar,.student-main{align-items:center;display:flex}.student-avatar{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;font-size:1.25rem;font-weight:600;height:48px;justify-content:center;width:48px}.student-avatar.large{font-size:1.5rem;height:64px;width:64px}.student-info{flex:1 1}.student-info h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .25rem}.student-class{color:var(--text-muted);font-size:.8rem}.risk-score-display{align-items:center;display:flex;gap:.5rem}.risk-score-circle{align-items:center;border:3px solid;border-radius:50%;display:flex;font-size:1.125rem;font-weight:700;height:48px;justify-content:center;width:48px}.risk-trend{font-size:1.25rem}.student-factors{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.factor-mini{align-items:center;display:flex;gap:.75rem}.factor-mini-name{color:var(--text-secondary);flex:1 1;font-size:.8rem}.factor-mini-bar{background:var(--bg-secondary);border-radius:3px;height:6px;overflow:hidden;width:80px}.factor-mini-fill{background:var(--primary-color);border-radius:3px;height:100%}.factor-mini-value{color:var(--text-muted);font-size:.75rem;font-weight:600;text-align:right;width:30px}.student-footer{border-top:1px solid var(--border-color);gap:1rem;padding-top:1rem}.risk-badge,.student-footer{align-items:center;display:flex}.risk-badge{border-radius:6px;font-size:.75rem;font-weight:600;gap:.375rem;padding:.25rem .625rem}.risk-badge.low{background:#22c55e1a;color:#166534}.risk-badge.medium{background:#eab3081a;color:#854d0e}.risk-badge.high{background:#f973161a;color:#9a3412}.risk-badge.critical{background:#ef44441a;color:#991b1b}.interventions-count,.predictions-count{color:var(--text-muted);font-size:.75rem}.alerts-content{display:flex;flex-direction:column;gap:1rem}.alerts-header{align-items:center;display:flex;justify-content:space-between}.alerts-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.unread-count{color:#ef4444;font-size:.875rem;font-weight:500}.alerts-list{display:flex;flex-direction:column;gap:1rem}.alert-card{background:var(--bg-primary);border:1px solid var(--border-color);border-left:4px solid;border-radius:12px;padding:1.25rem}.alert-card.critical{border-left-color:#ef4444}.alert-card.high{border-left-color:#f97316}.alert-card.medium{border-left-color:#eab308}.alert-card.low{border-left-color:#22c55e}.alert-card.read{opacity:.7}.alert-card-header{align-items:flex-start;display:flex;gap:1rem;margin-bottom:.75rem}.alert-severity-icon{font-size:1.5rem}.alert-card-info{flex:1 1}.alert-card-info h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .25rem}.severity-badge{border-radius:6px;font-size:.75rem;font-weight:600;padding:.25rem .625rem}.severity-badge.critical{background:#ef44441a;color:#991b1b}.severity-badge.high{background:#f973161a;color:#9a3412}.severity-badge.medium{background:#eab3081a;color:#854d0e}.alert-message{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0 0 1rem}.alert-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:1rem}.alert-type-badge{background:var(--bg-secondary);border-radius:4px;padding:.125rem .5rem}.alert-actions{border-top:1px solid var(--border-color);display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem}.alert-action-taken{align-items:center;background:#22c55e1a;border-radius:8px;color:#166534;display:flex;font-size:.85rem;gap:.5rem;margin-top:1rem;padding:.75rem}.action-icon{font-weight:700}.interventions-content{display:flex;flex-direction:column;gap:1rem}.interventions-header{align-items:center;display:flex;justify-content:space-between}.interventions-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0}.interventions-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.intervention-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.intervention-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.status-badge{font-weight:600}.status-badge.pending{background:#eab3081a;color:#854d0e}.status-badge.in_progress{background:#3b82f61a;color:#1e40af}.status-badge.completed{background:#22c55e1a;color:#166534}.status-badge.cancelled{background:#6b72801a;color:#374151}.intervention-date{color:var(--text-muted);font-size:.75rem}.intervention-card h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .5rem}.intervention-student{color:var(--text-secondary);font-size:.875rem;margin:0 0 .5rem}.intervention-description{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin:0 0 1rem}.intervention-meta{color:var(--text-muted);font-size:.8rem}.assigned-to{align-items:center;display:flex;gap:.375rem}.intervention-notes{border-top:1px solid var(--border-color);margin-top:.75rem;padding-top:.75rem}.notes-count{color:var(--text-muted);font-size:.8rem}.intervention-outcome{align-items:center;border-radius:8px;display:flex;font-size:.85rem;gap:.75rem;margin-top:1rem;padding:.75rem}.intervention-outcome.success{background:#22c55e1a;color:#166534}.intervention-outcome.failure{background:#ef44441a;color:#991b1b}.outcome-icon{font-size:1rem;font-weight:700}.outcome-text{flex:1 1}.risk-reduction{font-weight:600}.modal-content{box-shadow:0 20px 25px -5px #0000001a}.modal-content.large{max-width:800px}.student-modal-header{align-items:center;display:flex;flex:1 1;gap:1rem}.student-modal-info h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 .25rem}.risk-score-large{align-items:center;border:3px solid;border-radius:12px;display:flex;flex-direction:column;padding:.75rem 1.5rem}.score-value{font-size:2rem;font-weight:700}.score-label{font-size:.7rem;opacity:.8}.modal-close{background:var(--bg-secondary)}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.detail-section{margin-bottom:1.5rem}.detail-section:last-child{margin-bottom:0}.detail-section h3{color:var(--text-secondary);font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 1rem;text-transform:uppercase}.factors-detail{display:flex;flex-direction:column;gap:1rem}.factor-detail-item{background:var(--bg-secondary);border-radius:8px;padding:1rem}.factor-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.factor-category{background:var(--primary-color);border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:.125rem .5rem;text-transform:uppercase}.factor-description{color:var(--text-secondary);font-size:.85rem;margin:0 0 .75rem}.factor-values{color:var(--text-muted);display:flex;font-size:.8rem;gap:1.5rem;margin-bottom:.75rem}.factor-bar-large{background:var(--bg-primary);border-radius:4px;height:8px;overflow:hidden}.factor-bar-fill{background:var(--primary-color);border-radius:4px;height:100%}.predictions-list{display:flex;flex-direction:column;gap:1rem}.prediction-item{background:var(--bg-secondary);border-radius:8px;padding:1rem}.prediction-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.prediction-type{color:var(--text-primary);font-weight:600;text-transform:capitalize}.prediction-confidence{color:var(--text-muted);font-size:.8rem}.prediction-probability{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.prob-bar{background:var(--bg-primary);border-radius:6px;flex:1 1;height:12px;overflow:hidden}.prob-fill{border-radius:6px;height:100%}.prob-value{font-size:1.125rem;font-weight:700;width:50px}.prediction-timeframe{color:var(--text-muted);font-size:.8rem}.recommendations-list{display:flex;flex-direction:column;gap:1rem}.recommendation-item{background:var(--bg-secondary);border-radius:8px;padding:1rem}.recommendation-item.implemented{border-left:3px solid #22c55e}.recommendation-item.accepted{border-left:3px solid #3b82f6}.rec-header{display:flex;gap:.5rem;margin-bottom:.5rem}.priority-badge{border-radius:4px;font-size:.7rem;font-weight:600;padding:.125rem .5rem;text-transform:uppercase}.priority-badge.urgent{background:#ef44441a;color:#991b1b}.priority-badge.high{background:#f973161a;color:#9a3412}.priority-badge.medium{background:#eab3081a;color:#854d0e}.priority-badge.low{background:#22c55e1a;color:#166534}.rec-type{color:var(--text-muted);font-size:.75rem}.recommendation-item h4{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .375rem}.recommendation-item p{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin:0 0 .75rem}.rec-meta{color:var(--text-muted);display:flex;font-size:.8rem;gap:1rem}.rec-actions{border-top:1px solid var(--border-color);display:flex;gap:.75rem;margin-top:.75rem;padding-top:.75rem}@media (max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:span 1}}@media (max-width:768px){.predictive-analytics-page{padding:1rem}.analytics-header{flex-direction:column}.header-actions{width:100%}.action-btn{flex:1 1;justify-content:center}.analytics-tabs{overflow-x:auto;padding-bottom:.75rem}.tab-btn{white-space:nowrap}.kpi-grid{grid-template-columns:repeat(2,1fr)}.interventions-list,.students-list{grid-template-columns:1fr}.modal-content{margin:.5rem;max-height:95vh}.student-modal-header{align-items:flex-start;flex-direction:column}.risk-score-large{flex-direction:row;gap:.5rem;justify-content:center;width:100%}}@media (prefers-color-scheme:dark){.kpi-card.warning{background:#f973161a}.kpi-card.critical{background:#ef44441a}.kpi-card.info{background:#3b82f61a}.risk-badge.low{background:#22c55e26;color:#86efac}.risk-badge.medium{background:#eab30826;color:#fcd34d}.risk-badge.high{background:#f9731626;color:#fdba74}.risk-badge.critical{background:#ef444426;color:#fca5a5}.alert-action-taken,.intervention-outcome.success{background:#22c55e26;color:#86efac}.intervention-outcome.failure{background:#ef444426;color:#fca5a5}}.scan-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:10000}.scan-modal{animation:slideUp .3s ease-out;background:#fff;background:var(--bg-primary,#fff);border-radius:24px;box-shadow:0 25px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:700px;overflow:hidden;width:100%}.scan-modal-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#fff);background:linear-gradient(135deg,var(--bg-secondary,#f8fafc) 0,var(--bg-primary,#fff) 100%);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e2e8f0);display:flex;justify-content:space-between;padding:1rem 1.5rem}.scan-mode-tabs{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:12px;display:flex;gap:.5rem;padding:4px}.scan-mode-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.scan-mode-tab:hover:not(:disabled){background:#f1f5f9;background:var(--bg-hover,#f1f5f9);color:#1e293b;color:var(--text-primary,#1e293b)}.scan-mode-tab.active{background:linear-gradient(135deg,#6366f1,#7c3aed);box-shadow:0 4px 12px #6366f14d;color:#fff}.scan-mode-tab:disabled{cursor:not-allowed;opacity:.5}.tab-icon{font-size:1.1rem}.scan-modal-close{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:10px;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;font-size:1.5rem;height:36px;line-height:1;transition:all .2s ease;width:36px}.scan-modal-close:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:rotate(90deg)}.scan-steps{background:#f8fafc;background:var(--bg-secondary,#f8fafc);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e2e8f0);display:flex;gap:1rem;justify-content:center;padding:1.25rem}.scan-step{align-items:center;display:flex;gap:.5rem;position:relative}.scan-step:not(:last-child):after{background:#e2e8f0;background:var(--border-color,#e2e8f0);content:"";height:2px;left:100%;margin-left:.5rem;position:absolute;top:50%;transform:translateY(-50%);width:1rem}.step-number{background:#fff;background:var(--bg-primary,#fff);border:2px solid #e2e8f0;border:2px solid var(--border-color,#e2e8f0);color:#64748b;color:var(--text-secondary,#64748b);display:flex;font-size:.8rem;font-weight:600;height:28px;transition:all .3s ease;width:28px}.scan-step.active .step-number{background:linear-gradient(135deg,#6366f1,#7c3aed);border-color:#6366f1;box-shadow:0 0 0 4px #6366f133;color:#fff}.scan-step.completed .step-number{background:#22c55e;border-color:#22c55e;color:#fff}.step-label{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.8rem;font-weight:500}.scan-step.active .step-label,.scan-step.completed .step-label{color:#1e293b;color:var(--text-primary,#1e293b)}.scan-modal-content{flex:1 1;overflow-y:auto;padding:1.5rem}.scan-error{align-items:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:12px;color:#dc2626;display:flex;font-size:.9rem;gap:.75rem;margin-bottom:1rem;padding:1rem 1.25rem}.error-icon{font-size:1.25rem}.scan-capture-zone{align-items:center;background:linear-gradient(135deg,#f8fafc,#fff);background:linear-gradient(135deg,var(--bg-secondary,#f8fafc) 0,var(--bg-primary,#fff) 100%);border:2px dashed #e2e8f0;border:2px dashed var(--border-color,#e2e8f0);border-radius:16px;display:flex;flex-direction:column;padding:3rem 2rem;text-align:center;transition:all .3s ease}.scan-capture-zone:hover{background:#6366f108;border-color:#6366f1}.capture-icon{animation:float 3s ease-in-out infinite;font-size:4rem;margin-bottom:1rem}.scan-capture-zone h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.scan-capture-zone p{color:#64748b;color:var(--text-secondary,#64748b);font-size:.9rem;margin:0 0 1.5rem}.capture-buttons{display:flex;gap:1rem;margin-bottom:1.5rem}.capture-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.875rem 1.5rem;transition:all .2s ease}.capture-btn.camera{background:linear-gradient(135deg,#6366f1,#7c3aed);box-shadow:0 4px 15px #6366f14d;color:#fff}.capture-btn.camera:hover{box-shadow:0 6px 20px #6366f166;transform:translateY(-2px)}.capture-btn.file{background:#fff;background:var(--bg-primary,#fff);border:2px solid #e2e8f0;border:2px solid var(--border-color,#e2e8f0);color:#1e293b;color:var(--text-primary,#1e293b)}.capture-btn.file:hover{background:#f1f5f9;background:var(--bg-hover,#f1f5f9);border-color:#6366f1}.capture-hint{color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.8rem}.scan-preview{display:flex;flex-direction:column;gap:1.5rem}.preview-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.preview-item{aspect-ratio:3/4;border:2px solid #e2e8f0;border:2px solid var(--border-color,#e2e8f0);border-radius:12px;overflow:hidden;position:relative;transition:all .2s ease}.preview-item:hover{border-color:#6366f1;transform:scale(1.02)}.preview-item img{height:100%;object-fit:cover;width:100%}.preview-overlay{background:linear-gradient(0deg,#000c 0,#0000 50%);display:flex;flex-direction:column;inset:0;justify-content:flex-end;opacity:0;padding:.75rem;position:absolute;transition:opacity .2s ease}.preview-item:hover .preview-overlay{opacity:1}.page-number{color:#fff;font-size:.75rem;font-weight:600;margin-bottom:.5rem}.preview-actions{display:flex;gap:.25rem}.preview-action{background:#ffffffe6;border:none;border-radius:6px;cursor:pointer;font-size:.75rem;height:28px;transition:all .2s ease;width:28px}.preview-action:hover{transform:scale(1.1)}.preview-action.delete:hover{background:#ef4444}.add-more-btn{align-items:center;aspect-ratio:3/4;background:#0000;border:2px dashed #e2e8f0;border:2px dashed var(--border-color,#e2e8f0);border-radius:12px;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;display:flex;flex-direction:column;font-size:.85rem;gap:.5rem;justify-content:center;transition:all .2s ease}.add-more-btn span{font-size:2rem;line-height:1}.add-more-btn:hover{background:#6366f10d;border-color:#6366f1;color:#6366f1}.preview-footer{display:flex;gap:1rem;justify-content:space-between}.scan-options{display:flex;flex-direction:column;gap:1.5rem}.options-section{background:#f8fafc;background:var(--bg-secondary,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:12px;padding:1.25rem}.options-section h4{color:#1e293b;color:var(--text-primary,#1e293b);font-size:.95rem;font-weight:700;margin:0 0 1rem}.options-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.option-group{display:flex;flex-direction:column;gap:.375rem}.option-group.full-width{grid-column:1/-1}.option-group label{color:#64748b;color:var(--text-secondary,#64748b);font-size:.8rem;font-weight:600}.option-group input[type=email],.option-group input[type=text],.option-group select,.option-group textarea{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;color:#1e293b;color:var(--text-primary,#1e293b);font-size:.9rem;padding:.625rem .875rem;transition:all .2s ease}.option-group input:focus,.option-group select:focus,.option-group textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.option-group textarea{min-height:80px;resize:vertical}.option-checkbox{align-items:center;display:flex;gap:.75rem}.option-checkbox input[type=checkbox]{accent-color:#6366f1;cursor:pointer;height:18px;width:18px}.option-checkbox label{color:#1e293b;color:var(--text-primary,#1e293b);cursor:pointer;font-size:.875rem}.email-input-container{display:flex;gap:.5rem}.email-input-container input{flex:1 1}.add-email-btn{background:linear-gradient(135deg,#6366f1,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.25rem;height:40px;transition:all .2s ease;width:40px}.add-email-btn:hover{transform:scale(1.05)}.email-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.email-tag{align-items:center;background:linear-gradient(135deg,#6366f11a,#7c3aed1a);border:1px solid #6366f14d;border-radius:20px;color:#6366f1;display:flex;font-size:.8rem;gap:.375rem;padding:.375rem .75rem}.email-tag.cc{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border-color:#22c55e4d;color:#16a34a}.email-tag button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;line-height:1;opacity:.7;padding:0}.email-tag button:hover{opacity:1}.options-footer{display:flex;gap:1rem;justify-content:space-between;padding-top:1rem}.scan-sending{align-items:center;display:flex;flex-direction:column;padding:3rem;text-align:center}.sending-animation{animation:pulse 1s ease-in-out infinite;font-size:5rem;margin-bottom:1.5rem}.scan-sending h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1.25rem;font-weight:700;margin:0 0 1.5rem}.progress-bar{background:#e2e8f0;background:var(--border-color,#e2e8f0);margin-bottom:.75rem;max-width:300px;width:100%}.progress-fill{background:linear-gradient(90deg,#6366f1,#7c3aed 50%,#22c55e)}.progress-text{color:#64748b;color:var(--text-secondary,#64748b);font-weight:600;margin:0}.success-message{color:#22c55e;font-size:.9rem;margin-top:1rem}.btn-primary,.btn-secondary{border-radius:10px;display:flex;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#6366f1,#7c3aed);border:none;box-shadow:0 4px 15px #6366f14d}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #6366f166;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-secondary{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);color:#1e293b;color:var(--text-primary,#1e293b)}.btn-secondary:hover{background:#f1f5f9;background:var(--bg-hover,#f1f5f9);border-color:#64748b;border-color:var(--text-secondary,#64748b)}@media (max-width:640px){.scan-modal{border-radius:0;max-height:100%;max-width:100%}.scan-modal-header{padding:1rem}.scan-mode-tabs{flex:1 1}.scan-mode-tab{flex:1 1;font-size:.8rem;justify-content:center;padding:.5rem .75rem}.scan-steps{gap:.5rem;overflow-x:auto;padding:1rem}.step-label{display:none}.scan-modal-content{padding:1rem}.capture-buttons{flex-direction:column;width:100%}.capture-btn{justify-content:center;width:100%}.preview-grid{grid-template-columns:repeat(2,1fr)}.options-grid{grid-template-columns:1fr}.options-footer,.preview-footer{flex-direction:column}.btn-primary,.btn-secondary{justify-content:center;width:100%}}.document-manager-page{margin:0 auto;max-width:1600px;min-height:100vh;padding:1.5rem;position:relative}.drag-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#6366f1f2;bottom:0;display:flex;flex-direction:column;gap:1.5rem;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.drag-overlay-icon{animation:bounce .6s ease-in-out infinite;font-size:5rem}.drag-overlay h2{color:#fff;font-size:2rem;font-weight:700;margin:0}.drag-overlay p{color:#fffc;font-size:1.1rem;margin:0}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.notification-toast{align-items:center;animation:slideInRight .3s ease-out,fadeOut .3s ease-out 2.7s forwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;gap:.75rem;max-width:400px;padding:1rem 1.5rem;position:fixed;right:20px;top:20px;z-index:10000}.notification-toast.success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.notification-toast.error{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.notification-toast.info{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.notification-icon{flex-shrink:0;font-size:1.5rem}.notification-message{font-size:.95rem;font-weight:500;line-height:1.4}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fab{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);border:none;border-radius:50%;bottom:30px;box-shadow:0 8px 30px #6366f166;color:#fff;cursor:pointer;display:flex;height:64px;justify-content:center;position:fixed;right:30px;transition:all .3s cubic-bezier(.4,0,.2,1);width:64px;z-index:100}.fab:hover{box-shadow:0 12px 40px #6366f180;transform:scale(1.1) rotate(90deg)}.fab:active{transform:scale(.95)}.fab-icon{font-size:2rem;font-weight:300;line-height:1;transition:transform .3s ease}.upload-progress-container{display:flex;flex-direction:column;gap:1rem}.upload-progress-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1rem;transition:all .3s ease}.upload-progress-item.success{background:#22c55e0d;border-color:#22c55e}.upload-progress-item.error{background:#ef44440d;border-color:#ef4444}.upload-file-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.upload-file-name{align-items:center;color:var(--text-primary);display:flex;font-size:.9rem;font-weight:500;gap:.5rem}.upload-file-status{font-size:.8rem;font-weight:600}.upload-file-status.uploading{color:var(--primary-color)}.upload-file-status.success{color:#22c55e}.upload-file-status.error{color:#ef4444}.upload-progress-bar{background:var(--border-color);border-radius:3px;height:6px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg,var(--primary-color) 0,#7c3aed 100%);border-radius:3px;height:100%;position:relative;transition:width .3s ease}.upload-progress-fill:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.doc-quick-actions{background:linear-gradient(0deg,#000c 0,#0000);bottom:0;display:flex;gap:.5rem;justify-content:center;left:0;padding:.75rem;position:absolute;right:0;transform:translateY(100%);transition:transform .3s ease}.document-card:hover .doc-quick-actions{transform:translateY(0)}.quick-action-btn{align-items:center;background:#ffffffe6;border:none;border-radius:50%;box-shadow:0 2px 8px #0003;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s ease;width:36px}.quick-action-btn:hover{background:#fff;transform:scale(1.15)}.quick-action-btn:active{transform:scale(.95)}.dm-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.header-info h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--text-primary) 0,var(--primary-color) 100%);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2rem;font-weight:800;margin:0}.header-info p{color:var(--text-secondary);font-size:.95rem;margin:.5rem 0 0}.header-actions{align-items:center;gap:1rem}.search-bar input{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;color:var(--text-primary);font-size:.95rem;padding:.75rem 48px .75rem 1.25rem;transition:all .3s ease;width:320px}.search-bar input:focus{background:var(--bg-primary);border-color:var(--primary-color);box-shadow:0 0 0 4px #6366f11a}.search-bar input::placeholder{color:var(--text-muted)}.search-btn{background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);border-radius:8px;font-size:1rem;height:36px;position:absolute;right:6px;top:50%;transform:translateY(-50%);transition:all .2s ease;width:36px}.search-btn:hover{transform:translateY(-50%) scale(1.05)}.upload-btn{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);border:none;border-radius:12px;box-shadow:0 4px 15px #6366f14d;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.upload-btn:hover{box-shadow:0 8px 25px #6366f166;transform:translateY(-2px)}.upload-btn:active{transform:translateY(0)}.scan-btn,.scan-buttons{display:flex;gap:.5rem}.scan-btn{align-items:center;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-size:.85rem;font-weight:600;padding:.625rem 1rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.scan-btn:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.scan-btn.pdf{border-color:#ef4444;color:#ef4444}.scan-btn.pdf:hover{background:#ef4444;box-shadow:0 4px 15px #ef44444d;color:#fff}.scan-btn.email{border-color:#3b82f6;color:#3b82f6}.scan-btn.email:hover{background:#3b82f6;box-shadow:0 4px 15px #3b82f64d;color:#fff}.scan-btn .btn-icon{font-size:1rem}.scan-btn .btn-text{white-space:nowrap}.stats-bar{background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 4px 20px #0000000d;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;padding:1.25rem 1.75rem}.stat-item,.stats-bar{align-items:center;display:flex}.stat-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;gap:.875rem;padding:.5rem 1rem;transition:all .3s ease}.stat-item:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.stat-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:1.75rem}.stat-value{color:var(--text-primary);font-size:1.25rem;font-weight:800}.stat-label{color:var(--text-muted);font-size:.75rem;letter-spacing:.5px;text-transform:uppercase}.storage-bar{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:5px;flex:1 1;height:10px;min-width:200px;overflow:hidden;position:relative}.storage-fill{background:linear-gradient(90deg,#22c55e,#3b82f6 50%,#8b5cf6);border-radius:5px;height:100%;position:relative;transition:width .5s ease}.storage-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.storage-text{color:var(--text-secondary);font-size:.8rem;font-weight:600;position:absolute;right:0;top:-22px}.dm-tabs{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;margin-bottom:2rem;padding:.5rem}.dm-tabs,.tab-btn{display:flex;gap:.5rem}.tab-btn{align-items:center;border-radius:12px;color:var(--text-secondary);font-size:.9rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.tab-btn.active{background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);box-shadow:0 4px 15px #6366f14d;color:#fff}.tab-btn .badge{align-items:center;animation:pulse-badge 2s infinite;background:linear-gradient(135deg,#ef4444,#dc2626);border-radius:10px;box-shadow:0 2px 8px #ef444466;color:#fff;display:flex;font-size:.7rem;font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 5px;position:absolute;right:-6px;top:-6px}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1.5rem;height:400px;justify-content:center}.loading-spinner,.upload-spinner{animation:spin .8s cubic-bezier(.5,0,.5,1) infinite;border-bottom:4px solid var(--border-color);border-left:4px solid var(--border-color);border-radius:50%;border-right:4px solid #7c3aed;border-top-color:var(--border-color);border-top:4px solid var(--primary-color);height:56px;position:relative;width:56px}.loading-spinner:before,.upload-spinner:before{animation:spin 1.2s linear infinite reverse;border:3px solid #0000;border-radius:50%;border-top-color:#22c55e;bottom:6px;content:"";left:6px;position:absolute;right:6px;top:6px}.loading-container p{color:var(--text-secondary);font-size:1rem;font-weight:500}.empty-search,.empty-state{align-items:center;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-primary) 100%);border:2px dashed var(--border-color);border-radius:20px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:5rem 3rem;position:relative;text-align:center}.empty-search:before,.empty-state:before{animation:rotate-slow 20s linear infinite;background:radial-gradient(circle,#6366f108 0,#0000 50%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes rotate-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.empty-search h3,.empty-state h3{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 .75rem;position:relative}.empty-search p,.empty-state p{color:var(--text-secondary);font-size:1rem;line-height:1.6;margin:0 0 1.5rem;max-width:400px;position:relative}.empty-icon{animation:float 3s ease-in-out infinite;font-size:5rem;margin-bottom:1.5rem;position:relative}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-search .upload-btn,.empty-state .upload-btn{position:relative}.browse-content{display:flex;flex-direction:column;gap:1.5rem}.toolbar{justify-content:space-between}.breadcrumb,.toolbar{align-items:center;display:flex}.breadcrumb{gap:.5rem}.breadcrumb button{align-items:center;background:#0000;border:none;color:var(--primary-color);cursor:pointer;display:flex;font-size:.875rem;gap:.375rem;padding:.375rem .75rem}.breadcrumb button:hover{text-decoration:underline}.breadcrumb .separator{color:var(--text-muted)}.breadcrumb .current{color:var(--text-primary);font-weight:500}.view-toggle{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;padding:4px}.view-toggle button{background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:1rem;height:36px;transition:all .2s ease;width:36px}.view-toggle button:hover{background:var(--bg-hover);color:var(--text-primary)}.view-toggle button.active{background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);box-shadow:0 2px 8px #6366f14d;color:#fff}.documents-section h3,.folders-section h3{align-items:center;color:var(--text-secondary);display:flex;font-size:1rem;font-weight:700;gap:.75rem;letter-spacing:.5px;margin:0 0 1.25rem;text-transform:uppercase}.documents-section h3:after,.folders-section h3:after{background:linear-gradient(90deg,var(--border-color) 0,#0000 100%);content:"";flex:1 1;height:1px}.folders-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.folder-card{align-items:center;background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);border:2px solid var(--border-color);border-radius:16px;cursor:pointer;display:flex;gap:1rem;overflow:hidden;padding:1.25rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.folder-card:before{background:linear-gradient(135deg,#6366f11a,#0000);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.folder-card:hover{border-color:var(--primary-color);box-shadow:0 8px 25px #0000001f;transform:translateY(-4px)}.folder-card:hover:before{opacity:1}.folder-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:2.5rem;position:relative;transition:transform .3s ease;z-index:1}.folder-card:hover .folder-icon{transform:scale(1.1)}.folder-info{position:relative;z-index:1}.folder-info h4{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .375rem}.folder-count{color:var(--text-muted);font-size:.8rem;font-weight:500}.documents-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.document-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;cursor:pointer;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.document-card:before{background:linear-gradient(90deg,var(--primary-color) 0,#7c3aed 100%);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.document-card:hover{border-color:var(--primary-color);box-shadow:0 12px 30px #0000001f;transform:translateY(-6px)}.document-card:hover:before{transform:scaleX(1)}.doc-preview{align-items:center;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-hover) 100%);display:flex;height:150px;justify-content:center;overflow:hidden;position:relative}.doc-preview img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.document-card:hover .doc-preview img{transform:scale(1.05)}.doc-icon{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));font-size:3.5rem;transition:transform .3s ease}.document-card:hover .doc-icon{transform:scale(1.1)}.ocr-badge{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);border-radius:50%;box-shadow:0 2px 8px #6366f166;display:flex;font-size:.8rem;height:28px;justify-content:center;position:absolute;right:10px;top:10px;width:28px}.doc-info{padding:1.25rem}.doc-info h4{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-meta{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:.625rem}.doc-type{font-size:1.1rem}.documents-list{display:flex;flex-direction:column;gap:.625rem}.document-row{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;gap:1.25rem;padding:1rem 1.25rem;position:relative;transition:all .3s ease}.document-row:before{background:linear-gradient(180deg,var(--primary-color) 0,#7c3aed 100%);border-radius:0 4px 4px 0;content:"";height:0;left:0;position:absolute;top:50%;transform:translateY(-50%);transition:height .3s ease;width:4px}.document-row:hover{background:var(--bg-hover);border-color:var(--primary-color);transform:translateX(4px)}.document-row:hover:before{height:60%}.row-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:1.75rem}.row-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.row-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.row-owner{color:var(--text-muted);font-size:.8rem}.row-date,.row-size,.row-type{color:var(--text-secondary);font-size:.85rem;font-weight:500;width:100px}.row-status{border-radius:8px;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.375rem .75rem;text-transform:uppercase}.row-status.approved{background:linear-gradient(135deg,#22c55e26,#22c55e0d);color:#166534}.row-status.draft{background:linear-gradient(135deg,#eab30826,#eab3080d);color:#854d0e}.row-status.pending_review{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#1e40af}.row-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .2s ease}.document-row:hover .row-actions{opacity:1}.row-action-btn{align-items:center;background:var(--bg-secondary);border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.row-action-btn:hover{background:var(--primary-color);color:#fff;transform:scale(1.1)}.search-content{display:flex;flex-direction:column;gap:1.5rem}.search-header{align-items:center;display:flex;justify-content:space-between}.search-header h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0}.results-count{color:var(--text-muted);font-size:.875rem}.search-facets{background:var(--bg-secondary);border-radius:12px;padding:1rem}.facet-group h4{color:var(--text-secondary);font-size:.8rem;font-weight:600;margin:0 0 .75rem;text-transform:uppercase}.facet-items{display:flex;flex-wrap:wrap;gap:.5rem}.facet-item{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;font-size:.8rem;gap:.5rem;padding:.375rem .75rem;transition:all .2s}.facet-item:hover{border-color:var(--primary-color)}.facet-count{background:var(--bg-secondary);border-radius:4px;color:var(--text-muted);font-size:.7rem;padding:.125rem .375rem}.search-results{display:flex;flex-direction:column;gap:.75rem}.search-result-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .2s}.search-result-card:hover{background:var(--bg-hover);border-color:var(--primary-color)}.result-icon{flex-shrink:0;font-size:2rem}.result-content{flex:1 1}.result-content h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .5rem}.result-excerpt{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin:0 0 .75rem}.result-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.result-date,.result-type{color:var(--text-muted);font-size:.75rem}.result-tag{background:var(--bg-secondary);border-radius:4px;color:var(--text-secondary);font-size:.7rem;padding:.125rem .5rem}.templates-content h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 1.5rem}.templates-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.template-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;transition:all .2s}.template-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a}.template-preview{align-items:center;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-hover) 100%);display:flex;height:120px;justify-content:center}.template-icon{font-size:3rem}.template-info{padding:1rem}.template-info h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .375rem}.template-info p{color:var(--text-secondary);font-size:.85rem;margin:0 0 .75rem}.template-meta{color:var(--text-muted);display:flex;font-size:.75rem;justify-content:space-between}.use-template-btn{background:var(--bg-secondary);border:none;border-top:1px solid var(--border-color);color:var(--primary-color);cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem;transition:all .2s;width:100%}.use-template-btn:hover{background:var(--primary-color);color:#fff}.signatures-content h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 1.5rem}.signatures-list{display:flex;flex-direction:column;gap:1rem}.signature-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;gap:1.5rem;padding:1.25rem}.sig-doc-info,.signature-card{align-items:center;display:flex}.sig-doc-info{flex:1 1;gap:1rem}.sig-icon{font-size:2rem}.sig-details h4{color:var(--text-primary);font-size:.95rem;font-weight:600;margin:0 0 .25rem}.sig-owner{color:var(--text-muted);font-size:.8rem}.sig-status{display:flex;gap:1rem}.signer{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;gap:.5rem;padding:.5rem .75rem}.signer.signed{background:#22c55e1a}.signer.pending{background:#eab3081a}.signer-icon{font-size:1rem}.signer.signed .signer-icon{color:#22c55e}.signer.pending .signer-icon{color:#eab308}.signer-name{color:var(--text-primary);font-size:.85rem;font-weight:500}.signer-role{color:var(--text-muted);font-size:.75rem}.sign-btn{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.sign-btn:hover{background:var(--primary-hover)}.modal-overlay{animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009}.modal-content{animation:slideUp .3s ease-out;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:24px;box-shadow:0 25px 50px -12px #00000040}.modal-content.large{max-width:900px}.modal-header{align-items:flex-start;background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-primary) 100%);border-bottom:1px solid var(--border-color);padding:1.5rem 1.75rem}.doc-header-info{align-items:center;display:flex;gap:1.25rem}.doc-type-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:2.5rem}.doc-header-info h2{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0 0 .375rem}.doc-meta-info{color:var(--text-muted);font-size:.85rem}.modal-close{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);transition:all .2s ease}.modal-close:hover{border-color:#ef4444;transform:rotate(90deg)}.doc-detail{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.doc-preview-large{align-items:center;background:var(--bg-secondary);border-radius:12px;display:flex;justify-content:center;min-height:300px;overflow:hidden}.doc-preview-large img{max-height:400px;max-width:100%;object-fit:contain}.preview-placeholder{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:.5rem}.preview-placeholder span{font-size:4rem}.doc-details-panel{display:flex;flex-direction:column;gap:1.25rem}.detail-section h4{color:var(--text-secondary);font-size:.8rem;letter-spacing:.5px;margin:0 0 .75rem;text-transform:uppercase}.info-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-label{color:var(--text-muted);font-size:.75rem}.info-value{color:var(--text-primary);font-size:.9rem}.status-badge{border-radius:6px;padding:.25rem .625rem}.status-badge.approved{background:#22c55e1a;color:#166534}.status-badge.draft{background:#eab3081a;color:#854d0e}.tags-list{display:flex;flex-wrap:wrap;gap:.375rem}.tag{border-radius:6px;color:var(--text-secondary);padding:.25rem .625rem}.ocr-result,.tag{background:var(--bg-secondary)}.ocr-result{border-radius:8px;padding:1rem}.ocr-header{margin-bottom:.75rem}.ocr-status.success{color:#22c55e;font-size:.8rem;font-weight:500}.ocr-text{color:var(--text-secondary);font-size:.85rem;line-height:1.6;max-height:150px;overflow-y:auto}.ocr-pending{padding:1rem;text-align:center}.ocr-pending p{color:var(--text-secondary);font-size:.85rem;margin:0 0 1rem}.ocr-btn{align-items:center;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s}.ocr-btn:hover:not(:disabled){background:var(--primary-hover)}.ocr-btn:disabled{cursor:not-allowed;opacity:.7}.loading-icon{animation:pulse 1s infinite}.signatures-status{display:flex;flex-direction:column;gap:.5rem}.signature-item{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;gap:.75rem;padding:.625rem .875rem}.signature-item.signed{background:#22c55e1a}.signature-item.pending{background:#eab3081a}.sig-indicator{font-size:1rem;font-weight:600}.signature-item.signed .sig-indicator{color:#22c55e}.signature-item.pending .sig-indicator{color:#eab308}.sig-info{flex:1 1}.sig-name{color:var(--text-primary);display:block;font-size:.85rem;font-weight:500}.sig-date,.sig-role{color:var(--text-muted);font-size:.75rem}.modal-footer{background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-primary) 100%);border-top:1px solid var(--border-color);padding:1.25rem 1.75rem}.action-btn{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.action-btn:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.action-btn.primary{background:linear-gradient(135deg,var(--primary-color) 0,#7c3aed 100%);border:none;color:#fff}.action-btn.primary:hover{box-shadow:0 4px 15px #6366f166}.action-btn.danger{border-color:#ef44444d;color:#ef4444}.action-btn.danger:hover{background:#ef4444;border-color:#ef4444;color:#fff}.upload-zone{background:linear-gradient(135deg,var(--bg-secondary) 0,var(--bg-primary) 100%);border:2px dashed var(--border-color);border-radius:16px;cursor:pointer;overflow:hidden;padding:4rem 2rem;position:relative;text-align:center;transition:all .3s ease}.upload-zone:before{background:radial-gradient(circle at center,#6366f11a 0,#0000 70%);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.upload-zone:hover{background:linear-gradient(135deg,#6366f10d,#7c3aed0d);border-color:var(--primary-color);transform:scale(1.01)}.upload-zone:hover:before{opacity:1}.upload-zone.dragging{background:#6366f11a;border-color:var(--primary-color);box-shadow:0 0 30px #6366f133;transform:scale(1.02)}.upload-icon{animation:float 3s ease-in-out infinite;display:block;font-size:4rem;margin-bottom:1.5rem;position:relative}.upload-zone p{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 .75rem;position:relative}.upload-hint{color:var(--text-muted);font-size:.9rem;position:relative}.upload-formats{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.5rem;position:relative}.format-badge{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.75rem;font-weight:500;padding:.375rem .75rem}@media (max-width:1024px){.doc-detail{grid-template-columns:1fr}.doc-preview-large{min-height:200px}}@media (max-width:768px){.document-manager-page{padding:1rem}.dm-header{flex-direction:column}.header-info h1{font-size:1.5rem}.header-actions{flex-direction:column;width:100%}.search-bar,.search-bar input{width:100%}.upload-btn{justify-content:center;width:100%}.scan-buttons{flex-direction:row;width:100%}.scan-btn{flex:1 1;font-size:.8rem;justify-content:center;padding:.625rem .75rem}.scan-btn .btn-text{display:none}.stats-bar{flex-direction:column;gap:1rem;padding:1rem}.stat-item{justify-content:flex-start;width:100%}.storage-bar{width:100%}.dm-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:.375rem}.tab-btn{font-size:.8rem;padding:.625rem 1rem;white-space:nowrap}.folders-grid{grid-template-columns:1fr}.documents-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)}.document-card{border-radius:12px}.doc-preview{height:120px}.doc-quick-actions{opacity:.9;transform:translateY(0)}.document-row{flex-wrap:wrap;padding:.875rem 1rem}.row-date,.row-type{display:none}.row-actions{opacity:1}.signature-card{align-items:flex-start;flex-direction:column}.sig-status{flex-wrap:wrap}.modal-content{border-radius:16px;margin:.5rem;max-height:95vh}.modal-footer,.modal-header{padding:1rem 1.25rem}.modal-footer{flex-wrap:wrap}.action-btn{flex:1 1;justify-content:center;min-width:calc(50% - .375rem)}.fab{bottom:20px;height:56px;right:20px;width:56px}.fab-icon{font-size:1.75rem}.notification-toast{left:10px;max-width:none;right:10px}.empty-search,.empty-state{padding:3rem 1.5rem}.empty-icon{font-size:4rem}.upload-zone{padding:2.5rem 1.5rem}.upload-icon{font-size:3rem}}@media (max-width:480px){.documents-grid{grid-template-columns:1fr}.doc-preview{height:140px}.stat-item{padding:.625rem .875rem}.stat-value{font-size:1.1rem}}@media (prefers-color-scheme:dark){.row-status.approved{background:#22c55e26;color:#86efac}.row-status.draft{background:#eab30826;color:#fcd34d}.status-badge.approved{background:#22c55e26;color:#86efac}.status-badge.draft{background:#eab30826;color:#fcd34d}.signer.signed{background:#22c55e26}.signer.pending{background:#eab30826}.signature-item.signed{background:#22c55e26}.signature-item.pending{background:#eab30826}.quick-action-btn{background:#1e1e1ee6;color:#fff}.quick-action-btn:hover{background:var(--primary-color)}.fab{box-shadow:0 8px 30px #00000080}.notification-toast{box-shadow:0 10px 40px #0006}.upload-progress-item.success{background:#22c55e1a}.upload-progress-item.error{background:#ef44441a}}.document-manager-page ::-webkit-scrollbar{height:8px;width:8px}.document-manager-page ::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.document-manager-page ::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.document-manager-page ::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.action-btn:focus-visible,.document-card:focus-visible,.document-row:focus-visible,.fab:focus-visible,.folder-card:focus-visible,.tab-btn:focus-visible,.upload-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.hr-management{background:#f5f7fa;min-height:100vh;padding:1.5rem}.hr-header{margin-bottom:1.5rem}.hr-header h1{color:#1a1a2e;font-size:1.75rem;margin:0 0 .25rem}.hr-header p{color:#666;margin:0}.hr-tabs{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding:.5rem}.hr-tab{background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.hr-tab:hover{background:#f0f4f8;color:#333}.hr-tab.active{background:#4361ee;color:#fff}.hr-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:1.5rem}.hr-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:3rem}.hr-spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#4361ee;height:40px;margin-bottom:1rem;width:40px}.hr-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.5rem}.hr-stat-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;display:flex;gap:1rem;padding:1.25rem}.hr-stat-card.success{background:linear-gradient(135deg,#11998e,#38ef7d)}.hr-stat-card.danger{background:linear-gradient(135deg,#eb3349,#f45c43)}.hr-stat-card.warning{background:linear-gradient(135deg,#f093fb,#f5576c)}.hr-stat-card.info{background:linear-gradient(135deg,#4facfe,#00f2fe)}.hr-stat-icon{font-size:2rem}.hr-stat-content{display:flex;flex-direction:column}.hr-stat-value{font-size:1.75rem;font-weight:700}.hr-stat-label{font-size:.85rem;opacity:.9}.hr-dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.hr-dashboard-card{background:#f8fafc;border-radius:12px;padding:1.25rem}.hr-dashboard-card h3{color:#333;font-size:1rem;margin:0 0 1rem}.hr-attendance-gauge{display:flex;justify-content:center}.gauge-circle{height:120px;position:relative;width:120px}.gauge-circle svg{transform:rotate(-90deg)}.gauge-circle path{stroke-linecap:round}.gauge-value{color:#333;font-size:1.5rem;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.department-stats{display:flex;flex-direction:column;gap:.75rem}.department-row{align-items:center;display:flex;gap:.75rem}.dept-name{color:#666;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:120px}.dept-bar{background:#e0e0e0;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.dept-bar-fill{background:linear-gradient(90deg,#4361ee,#7c3aed);border-radius:4px;height:100%;transition:width .3s}.dept-count{color:#333;font-size:.85rem;font-weight:600;min-width:40px;text-align:right}.payroll-total{padding:1rem;text-align:center}.payroll-amount{color:#4361ee;display:block;font-size:1.75rem;font-weight:700}.payroll-period{color:#666;font-size:.85rem}.birthdays-list{display:flex;flex-direction:column;gap:.75rem}.birthday-item{align-items:center;background:#fff;border-radius:8px;display:flex;gap:.75rem;padding:.5rem}.birthday-photo{border-radius:50%;height:40px;object-fit:cover;width:40px}.birthday-info{display:flex;flex-direction:column}.birthday-name{color:#333;font-size:.9rem;font-weight:600}.birthday-date{color:#666;font-size:.8rem}.hr-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.hr-search input{border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;padding:.75rem 1rem;width:300px}.hr-search input:focus{border-color:#4361ee;outline:none}.hr-date-picker input,.hr-filters select,.hr-period-picker input{border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;padding:.75rem 1rem}.hr-date-picker,.hr-period-picker{align-items:center;display:flex;gap:.5rem}.hr-date-picker label,.hr-period-picker label{color:#666;font-size:.9rem}.hr-payroll-actions,.hr-quick-actions{display:flex;gap:.5rem}.hr-btn{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s}.hr-btn:hover{background:#f5f5f5}.hr-btn.primary{background:#4361ee;border-color:#4361ee;color:#fff}.hr-btn.primary:hover{background:#3651d4}.hr-btn.success{background:#10b981;border-color:#10b981;color:#fff}.hr-btn.success:hover{background:#059669}.hr-btn.danger{background:#ef4444;border-color:#ef4444;color:#fff}.hr-btn.danger:hover{background:#dc2626}.hr-btn.warning{background:#f59e0b;border-color:#f59e0b;color:#fff}.hr-table-container{overflow-x:auto}.hr-table{border-collapse:collapse;width:100%}.hr-table td,.hr-table th{border-bottom:1px solid #e0e0e0;padding:1rem;text-align:left}.hr-table th{color:#333;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.hr-table th,.hr-table tr:hover{background:#f8fafc}.employee-cell{align-items:center;display:flex;gap:.75rem}.employee-photo{border-radius:50%;height:40px;object-fit:cover;width:40px}.employee-info{display:flex;flex-direction:column}.employee-name{color:#333;font-weight:600}.employee-id{color:#666;font-size:.8rem}.hr-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.hr-badge.success{background:#dcfce7;color:#166534}.hr-badge.danger{background:#fee2e2;color:#991b1b}.hr-badge.warning{background:#fef3c7;color:#92400e}.hr-badge.info{background:#dbeafe;color:#1e40af}.hr-badge.default{background:#f3f4f6;color:#374151}.hr-actions{display:flex;gap:.5rem}.hr-action-btn{background:#f3f4f6;border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:.5rem;transition:all .2s}.hr-action-btn:hover{background:#e5e7eb}.notes-cell{color:#666;font-size:.85rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overtime{color:#f59e0b;font-weight:600}.hr-attendance-summary{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.summary-card{align-items:center;background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;padding:1rem 1.5rem}.summary-label{font-size:.85rem}.summary-value{font-size:1.5rem}.summary-value.success{color:#10b981}.summary-value.danger{color:#ef4444}.summary-value.warning{color:#f59e0b}.hr-leaves-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.hr-leave-card{background:#f8fafc;border:1px solid #e0e0e0;border-radius:12px;padding:1.25rem}.leave-header{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.leave-photo{border-radius:50%;height:48px;object-fit:cover;width:48px}.leave-employee{display:flex;flex-direction:column;gap:.25rem}.leave-name{color:#333;font-weight:600}.leave-body{border-top:1px solid #e0e0e0;padding-top:1rem}.leave-type{align-items:center;display:flex;font-weight:500;gap:.5rem;margin-bottom:.75rem}.leave-type-icon{font-size:1.25rem}.leave-dates{display:flex;gap:1rem;margin-bottom:.75rem}.leave-date{display:flex;flex-direction:column}.date-label{color:#666;font-size:.75rem}.date-value{color:#333;font-weight:600}.leave-days{background:#4361ee;border-radius:8px;color:#fff;margin-left:auto;padding:.5rem 1rem;text-align:center}.days-value{display:block;font-size:1.25rem;font-weight:700}.days-label{font-size:.75rem}.leave-reason{color:#666;font-size:.9rem;margin:.75rem 0}.leave-attachments{color:#4361ee;font-size:.85rem}.leave-actions{border-top:1px solid #e0e0e0;display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem}.leave-approval,.leave-rejection{border-radius:8px;font-size:.85rem;margin-top:1rem;padding:.75rem}.leave-approval{background:#dcfce7;color:#166534}.leave-rejection{background:#fee2e2;color:#991b1b}.payroll-summary-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.payroll-summary-card{background:#f8fafc;border-radius:12px;padding:1.25rem;text-align:center}.payroll-summary-card.highlight{background:linear-gradient(135deg,#4361ee,#7c3aed);color:#fff}.psc-label{color:inherit;display:block;font-size:.85rem;margin-bottom:.5rem;opacity:.8}.psc-value{font-size:1.5rem;font-weight:700}.deductions,.psc-value.danger{color:#ef4444}.net-salary{color:#10b981;font-weight:700}.hr-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.hr-modal{background:#fff;border-radius:16px;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.hr-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.hr-modal-header h2{color:#333;font-size:1.25rem;margin:0}.hr-modal-close{background:none;border:none;color:#666;cursor:pointer;font-size:1.5rem;padding:.25rem}.hr-modal-close:hover{color:#333}.hr-modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:.75rem;justify-content:flex-end;padding:1.25rem 1.5rem}.payslip-modal{max-width:900px}.payslip-content{max-height:calc(90vh - 150px);overflow-y:auto;padding:1.5rem}.payslip-header-info{border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.payslip-company h3{color:#333;margin:0 0 .5rem}.payslip-company p{color:#666;font-size:.9rem;margin:.25rem 0}.payslip-employee h4{color:#333;margin:0 0 .5rem}.payslip-employee p{color:#666;font-size:.9rem;margin:.25rem 0}.payslip-section{margin-bottom:1.5rem}.payslip-section h4{color:#333;font-size:1rem;margin:0 0 .75rem}.payslip-section.employer{background:#f8fafc;border-radius:8px;padding:1rem}.payslip-table{border-collapse:collapse;width:100%}.payslip-table td,.payslip-table th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.payslip-table th{font-size:.8rem;font-weight:600;text-transform:uppercase}.payslip-table .total-row,.payslip-table th{background:#f8fafc}.payslip-table .amount-cell{font-family:monospace;font-size:.95rem;text-align:right}.payslip-table .deduction{color:#ef4444}.payslip-net{align-items:center;background:linear-gradient(135deg,#4361ee,#7c3aed);border-radius:12px;color:#fff;display:flex;justify-content:space-between;margin:1.5rem 0;padding:1.5rem}.net-label{font-size:1.1rem;font-weight:600}.net-value{font-size:1.75rem;font-weight:700}.payslip-payment{background:#dcfce7;border-radius:8px;color:#166534;padding:1rem}.payslip-payment p{margin:.25rem 0}@media (prefers-color-scheme:dark){.hr-management{background:#0f172a}.hr-header h1{color:#f1f5f9}.hr-header p{color:#94a3b8}.hr-content,.hr-tabs{background:#1e293b}.hr-tab{color:#94a3b8}.hr-tab:hover{background:#334155;color:#f1f5f9}.hr-tab.active{background:#4361ee;color:#fff}.hr-dashboard-card,.hr-leave-card,.payroll-summary-card{background:#334155}.birthday-name,.date-value,.dept-count,.employee-name,.gauge-value,.hr-dashboard-card h3,.leave-name{color:#f1f5f9}.birthday-date,.dept-name,.employee-id,.leave-reason,.notes-cell{color:#94a3b8}.dept-bar{background:#475569}.birthday-item{background:#1e293b}.hr-table th{background:#334155;color:#f1f5f9}.hr-table td{border-color:#475569}.hr-table tr:hover{background:#334155}.hr-btn,.hr-date-picker input,.hr-filters select,.hr-period-picker input,.hr-search input{background:#334155;border-color:#475569;color:#f1f5f9}.hr-action-btn,.hr-btn:hover{background:#475569}.hr-action-btn:hover{background:#64748b}.hr-leave-card,.leave-actions,.leave-body{border-color:#475569}.summary-card{background:#334155}.summary-value{color:#f1f5f9}.hr-modal{background:#1e293b}.hr-modal-header{border-color:#475569}.hr-modal-header h2{color:#f1f5f9}.hr-modal-close{color:#94a3b8}.hr-modal-close:hover{color:#f1f5f9}.hr-modal-footer,.payslip-header-info{border-color:#475569}.payslip-company h3,.payslip-employee h4,.payslip-section h4{color:#f1f5f9}.payslip-company p,.payslip-employee p{color:#94a3b8}.payslip-table th{background:#334155;color:#f1f5f9}.payslip-table td{border-color:#475569;color:#f1f5f9}.payslip-section.employer,.payslip-table .total-row{background:#334155}}@media (max-width:768px){.hr-management{padding:1rem}.hr-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.hr-tab{font-size:.85rem;padding:.5rem 1rem}.hr-toolbar{align-items:stretch;flex-direction:column}.hr-search input{width:100%}.hr-stats-grid{grid-template-columns:repeat(2,1fr)}.hr-dashboard-grid,.hr-leaves-grid{grid-template-columns:1fr}.payroll-summary-cards{grid-template-columns:repeat(2,1fr)}.hr-table{font-size:.85rem}.hr-table td,.hr-table th{padding:.75rem .5rem}.hr-modal{margin:.5rem;max-height:95vh}.payslip-header-info{flex-direction:column;gap:1rem}.payslip-net{flex-direction:column;gap:.5rem;text-align:center}}.schedule-generator{background:#f5f7fa;min-height:100vh;padding:1.5rem}.schedule-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:1.5rem}.schedule-header,.schedule-title{align-items:center;display:flex;gap:1rem}.schedule-title h1{color:#1a1a2e;font-size:1.75rem;margin:0}.status-badge{padding:.35rem .75rem}.status-badge.draft{background:#f3f4f6;color:#6b7280}.status-badge.generating{background:#fef3c7;color:#92400e}.status-badge.generated{background:#dbeafe;color:#1e40af}.status-badge.published{background:#dcfce7;color:#166534}.schedule-actions{display:flex;flex-wrap:wrap;gap:.5rem}.schedule-btn{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s}.schedule-btn:hover{background:#f5f5f5}.schedule-btn:disabled{cursor:not-allowed;opacity:.5}.schedule-btn.primary{background:#4361ee;border-color:#4361ee;color:#fff}.schedule-btn.primary:hover{background:#3651d4}.schedule-tabs{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:.5rem;margin-bottom:1rem;overflow-x:auto;padding:.5rem}.schedule-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.schedule-tab:hover{background:#f0f4f8;color:#333}.schedule-tab.active{background:#4361ee;color:#fff}.conflict-count{background:#ef4444;border-radius:10px;color:#fff;font-size:.75rem;padding:.125rem .5rem}.schedule-toolbar{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding:1rem}.schedule-filters{display:flex;gap:.75rem}.schedule-filters select{background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;padding:.5rem 1rem}.view-toggle{background:#f3f4f6;border-radius:8px;display:flex;gap:.25rem;padding:.25rem}.view-btn{background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.view-btn:hover{color:#333}.view-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#4361ee}.schedule-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;min-height:500px;padding:1.5rem}.schedule-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:3rem}.schedule-week-view{overflow-x:auto}.schedule-grid{min-width:800px}.schedule-header{grid-gap:1px;background:#e0e0e0;border-radius:8px 8px 0 0;display:grid;gap:1px;grid-template-columns:80px repeat(5,1fr);overflow:hidden}.schedule-day-header,.schedule-time-header{background:#f8fafc;color:#333;font-weight:600;padding:.75rem;text-align:center}.schedule-body{background:#e0e0e0;display:flex;flex-direction:column;gap:1px}.schedule-row{grid-gap:1px;display:grid;gap:1px;grid-template-columns:80px repeat(5,1fr)}.schedule-time-cell{background:#f8fafc;color:#666;font-size:.85rem;font-weight:500;padding:.75rem;text-align:center}.schedule-cell{background:#fff;cursor:pointer;min-height:80px;padding:.25rem;transition:background .2s}.schedule-cell:hover{background:#f8fafc}.schedule-cell.empty{background:#fafafa}.schedule-slot{border-radius:6px;color:#fff;display:flex;flex-direction:column;font-size:.75rem;gap:.125rem;height:100%;overflow:hidden;padding:.5rem}.slot-subject{font-size:.8rem;font-weight:600}.slot-class,.slot-room,.slot-teacher{opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-day-view{margin:0 auto;max-width:600px}.day-selector{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.day-btn{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-weight:500;padding:.75rem 1.25rem;transition:all .2s}.day-btn.active,.day-btn:hover{border-color:#4361ee}.day-btn.active{background:#4361ee;color:#fff}.day-slots{gap:.75rem}.day-slot-row{align-items:stretch;display:flex;gap:1rem}.day-time{color:#666;font-weight:600;padding:1rem 0;text-align:right;width:60px}.day-slot-content{flex:1 1;min-height:80px}.day-slot-card{background:#fff;border:1px solid #e0e0e0;border-left:4px solid #4361ee;border-radius:8px;cursor:pointer;padding:1rem;transition:all .2s}.day-slot-card:hover{box-shadow:0 4px 12px #0000001a}.day-slot-main{display:flex;justify-content:space-between;margin-bottom:.5rem}.day-slot-subject{color:#333;font-weight:600}.day-slot-class{color:#666;font-size:.9rem}.day-slot-details{color:#666;display:flex;font-size:.85rem;gap:1rem}.day-slot-empty{align-items:center;background:#f8fafc;border:2px dashed #e0e0e0;border-radius:8px;color:#999;display:flex;height:100%;justify-content:center}.schedule-list-view{overflow-x:auto}.schedule-table{border-collapse:collapse;width:100%}.schedule-table td,.schedule-table th{border-bottom:1px solid #e0e0e0;padding:1rem;text-align:left}.schedule-table th{background:#f8fafc;color:#333;font-size:.85rem;font-weight:600;text-transform:uppercase}.schedule-table tr:hover{background:#f8fafc}.subject-badge{border-radius:20px;color:#fff;display:inline-block;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.schedule-action-btn{background:#f3f4f6;border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:.5rem;transition:all .2s}.schedule-action-btn:hover{background:#e5e7eb}.schedule-resources{padding:1rem 0}.resources-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.resource-section h3{color:#333;font-size:1.1rem;margin:0 0 1rem}.resource-list{display:flex;flex-direction:column;gap:.75rem}.resource-card{background:#f8fafc;border-radius:8px;padding:1rem}.resource-main{display:flex;justify-content:space-between;margin-bottom:.5rem}.resource-name{color:#333}.resource-detail{color:#666;font-size:.9rem}.resource-stats{color:#666;display:flex;font-size:.85rem;gap:1rem}.resource-stats .unavailable{color:#f59e0b}.resource-equipment{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.equipment-tag{background:#e0e0e0;border-radius:4px;color:#666;font-size:.75rem;padding:.25rem .5rem}.resource-subjects{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.subject-tag{border-radius:4px;color:#fff;font-size:.75rem;padding:.25rem .5rem}.schedule-conflicts{padding:1rem 0}.no-conflicts{padding:3rem;text-align:center}.no-conflicts-icon{display:block;font-size:4rem;margin-bottom:1rem}.no-conflicts h3{color:#10b981;margin:0 0 .5rem}.no-conflicts p{color:#666}.conflicts-list{display:flex;flex-direction:column;gap:1rem}.conflict-card{border-left:4px solid;border-radius:12px;padding:1.25rem}.conflict-card.error{background:#fef2f2;border-color:#ef4444}.conflict-card.warning{background:#fffbeb;border-color:#f59e0b}.conflict-card.info{background:#eff6ff;border-color:#3b82f6}.conflict-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.conflict-icon{font-size:1.25rem}.conflict-type{color:#333;font-weight:600}.conflict-severity{border-radius:4px;font-size:.75rem;font-weight:500;margin-left:auto;padding:.25rem .5rem}.conflict-severity.error{background:#fee2e2;color:#991b1b}.conflict-severity.warning{background:#fef3c7;color:#92400e}.conflict-severity.info{background:#dbeafe;color:#1e40af}.conflict-message{color:#333;margin:0 0 .75rem}.conflict-suggestion{color:#666;font-style:italic;margin:0 0 .75rem}.conflict-actions{display:flex;gap:.5rem}.conflict-btn{background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.conflict-btn:hover{background:#f5f5f5}.conflict-btn.primary{background:#4361ee;border-color:#4361ee;color:#fff}.schedule-statistics{padding:1rem 0}.stats-overview{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#f8fafc;text-align:center}.stat-card.highlight{background:linear-gradient(135deg,#4361ee,#7c3aed);color:#fff}.stat-value{font-size:2.5rem;margin-bottom:.25rem}.stat-label{opacity:.8}.stat-detail,.stat-label{color:inherit;display:block}.stat-detail{font-size:.8rem;margin-top:.25rem;opacity:.6}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.stats-section{background:#f8fafc;border-radius:12px;padding:1.25rem}.stats-section.full-width{grid-column:1/-1}.stats-section h3{color:#333;font-size:1rem;margin:0 0 1rem}.stats-bars{display:flex;flex-direction:column;gap:.75rem}.stats-bar-item{align-items:center;display:flex;gap:.75rem}.bar-label{color:#666;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100px}.bar-container{background:#e0e0e0;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.bar-fill{background:#4361ee;border-radius:4px;height:100%;transition:width .3s}.bar-value{color:#333;font-size:.85rem;font-weight:600;text-align:right;width:60px}.subject-distribution{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.subject-stat{align-items:center;background:#fff;border-radius:6px;display:flex;gap:.75rem;padding:.5rem}.subject-color{border-radius:3px;height:12px;width:12px}.subject-name{color:#333;flex:1 1;font-size:.9rem}.subject-hours{color:#666;font-size:.85rem}.subject-hours .missing{color:#ef4444;margin-left:.25rem}.generation-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.generation-modal{background:#fff;border-radius:16px;max-width:500px;padding:2rem;text-align:center;width:90%}.generation-modal h2{color:#333;margin:0 0 1.5rem}.generation-progress{margin-bottom:1.5rem}.progress-bar{border-radius:6px;height:12px;margin-bottom:.5rem}.progress-fill{background:linear-gradient(90deg,#4361ee,#7c3aed);border-radius:6px;transition:width .3s}.progress-text{font-size:.9rem}.generation-stats{display:flex;gap:2rem;justify-content:center;margin-bottom:1.5rem}.gen-stat{text-align:center}.gen-stat-label{color:#666;display:block;font-size:.8rem;margin-bottom:.25rem}.gen-stat-value{color:#4361ee;font-size:1.5rem;font-weight:700}.generation-hint{color:#666;font-size:.9rem}.modal-header{border-bottom:1px solid #e0e0e0}.modal-header h2{color:#333}.modal-body ul{margin:1rem 0;padding-left:1.5rem}.modal-body li{color:#333;margin:.5rem 0}.modal-body .warning{background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;color:#92400e;margin-top:1rem;padding:1rem}.modal-footer{border-top:1px solid #e0e0e0;padding:1.25rem 1.5rem}@media (prefers-color-scheme:dark){.schedule-generator{background:#0f172a}.schedule-title h1{color:#f1f5f9}.schedule-content,.schedule-tabs,.schedule-toolbar{background:#1e293b}.schedule-tab{color:#94a3b8}.schedule-filters select,.schedule-tab:hover{background:#334155;color:#f1f5f9}.schedule-filters select{border-color:#475569}.view-toggle{background:#334155}.view-btn.active{background:#1e293b;color:#4361ee}.schedule-btn{background:#334155;border-color:#475569;color:#f1f5f9}.schedule-btn:hover{background:#475569}.schedule-day-header,.schedule-time-cell,.schedule-time-header{background:#334155;color:#f1f5f9}.schedule-cell{background:#1e293b}.schedule-cell.empty,.schedule-cell:hover{background:#334155}.schedule-body,.schedule-header{background:#475569}.day-btn{color:#f1f5f9}.day-btn,.day-slot-card{background:#334155;border-color:#475569}.day-slot-subject{color:#f1f5f9}.day-slot-empty{background:#334155;border-color:#475569;color:#94a3b8}.schedule-table th{background:#334155;color:#f1f5f9}.schedule-table td{border-color:#475569}.resource-card,.schedule-table tr:hover,.stat-card,.stats-section{background:#334155}.conflict-message,.conflict-type,.resource-name,.stats-section h3{color:#f1f5f9}.equipment-tag{color:#94a3b8}.bar-container,.equipment-tag{background:#475569}.subject-stat{background:#1e293b}.subject-name{color:#f1f5f9}.generation-modal,.modal{background:#1e293b}.modal-header{border-color:#475569}.generation-modal h2,.modal-body li,.modal-header h2{color:#f1f5f9}.modal-footer{border-color:#475569}.progress-bar{background:#475569}}@media (max-width:768px){.schedule-generator{padding:1rem}.schedule-header{align-items:flex-start;flex-direction:column}.schedule-actions{width:100%}.schedule-tabs{overflow-x:auto}.schedule-filters,.schedule-toolbar{flex-direction:column}.schedule-filters,.schedule-filters select{width:100%}.schedule-week-view{overflow-x:scroll}.resources-grid,.stats-grid{grid-template-columns:1fr}.generation-stats{flex-direction:column;gap:1rem}}.marketplace{background:#f5f7fa;min-height:100vh;padding:1.5rem}.marketplace-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.marketplace-title h1{color:#1a1a2e;font-size:1.75rem;margin:0 0 .25rem}.marketplace-title p{color:#666;margin:0}.marketplace-stats{display:flex;gap:2rem}.mp-stat{text-align:center}.mp-stat-value{color:#4361ee;display:block;font-size:1.5rem;font-weight:700}.mp-stat-label{color:#666;font-size:.85rem}.marketplace-nav{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding:.5rem}.nav-btn{background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.nav-btn:hover{background:#f0f4f8;color:#333}.nav-btn.active{background:#4361ee;color:#fff}.marketplace-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;min-height:500px;padding:1.5rem}.marketplace-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:3rem}.spinner{border:3px solid #e0e0e0;border-top-color:#4361ee;height:40px;margin-bottom:1rem;width:40px}.marketplace-filters{margin-bottom:1.5rem}.search-bar{display:flex;gap:.5rem;margin-bottom:1rem}.search-bar input{border-radius:10px;flex:1 1;padding:.875rem 1rem;transition:border-color .2s}.search-bar input:focus{border-color:#4361ee}.search-btn{background:#4361ee;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.25rem;padding:0 1.5rem;transition:background .2s}.search-btn:hover{background:#3651d4}.filter-row{display:flex;flex-wrap:wrap;gap:.75rem}.filter-row select{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.9rem;min-width:150px;padding:.625rem 1rem}.results-header{margin-bottom:1rem}.results-count{color:#666;font-size:.9rem}.listings-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.listing-card{background:#f8fafc;border:1px solid #0000;border-radius:12px;cursor:pointer;padding:1.25rem;transition:all .2s}.listing-card:hover{border-color:#4361ee;box-shadow:0 4px 12px #4361ee26}.listing-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.listing-tutor{align-items:center;display:flex;gap:.75rem}.tutor-avatar{border-radius:50%;height:48px;object-fit:cover;width:48px}.tutor-info{align-items:center;display:flex;gap:.5rem}.tutor-name{color:#333;font-weight:600}.verified-badge{align-items:center;background:#10b981;border-radius:50%;color:#fff;display:inline-flex;font-size:.7rem;height:18px;justify-content:center;width:18px}.featured-badge{background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .5rem}.listing-title{color:#1a1a2e;font-size:1.1rem;line-height:1.3;margin:0 0 .75rem}.listing-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.tag{border-radius:4px;font-size:.75rem;padding:.25rem .5rem}.tag.subject{background:#dbeafe;color:#1e40af}.tag.level{background:#dcfce7;color:#166534}.tag.type{background:#f3e8ff;color:#7c3aed}.listing-description{color:#666;font-size:.9rem;line-height:1.5;margin:0 0 .75rem}.listing-meta{margin-bottom:.75rem}.listing-rating{align-items:center;display:flex;gap:.25rem}.star{color:#e0e0e0;font-size:1rem}.star.filled{color:#f59e0b}.rating-value{color:#333;font-weight:600;margin-left:.25rem}.rating-count{color:#666;font-size:.85rem}.listing-footer{align-items:center;border-top:1px solid #e0e0e0;display:flex;justify-content:space-between;padding-top:.75rem}.listing-duration{color:#666;font-size:.9rem}.listing-price{color:#4361ee;font-size:1.25rem;font-weight:700}.bookings-tabs{border-bottom:1px solid #e0e0e0;display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem}.booking-tab{background:#0000;border:none;color:#666;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;position:relative}.booking-tab.active{color:#4361ee;font-weight:600}.booking-tab.active:after{background:#4361ee;border-radius:3px 3px 0 0;bottom:-1rem;content:"";height:3px;left:0;position:absolute;right:0}.bookings-list{display:flex;flex-direction:column;gap:1rem}.booking-card{background:#f8fafc;border-radius:12px;padding:1.25rem}.booking-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.booking-tutor{align-items:center;display:flex;gap:.75rem}.booking-avatar{border-radius:50%;height:48px;object-fit:cover;width:48px}.booking-tutor-info{display:flex;flex-direction:column}.booking-tutor-name{color:#333;font-weight:600}.booking-listing-title{color:#666;font-size:.85rem}.booking-status{border-radius:20px;font-size:.8rem;font-weight:500;padding:.35rem .75rem}.booking-status.pending{background:#fef3c7;color:#92400e}.booking-status.confirmed{background:#dcfce7;color:#166534}.booking-status.completed{background:#dbeafe;color:#1e40af}.booking-status.cancelled{background:#fee2e2;color:#991b1b}.booking-details{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.booking-detail{align-items:center;display:flex;gap:.5rem}.detail-icon{font-size:1rem}.detail-value{color:#333;font-size:.9rem}.booking-actions{display:flex;flex-wrap:wrap;gap:.5rem}.booking-btn{background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#333;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s}.booking-btn:hover{background:#f5f5f5}.booking-btn.primary{background:#4361ee;border-color:#4361ee;color:#fff}.booking-btn.primary:hover{background:#3651d4}.booking-btn.danger{background:#fee2e2;border-color:#fecaca;color:#991b1b}.coming-soon{padding:4rem 2rem;text-align:center}.coming-soon span{display:block;font-size:4rem;margin-bottom:1rem}.coming-soon h3{color:#333;margin:0 0 .5rem}.coming-soon p{color:#666}.modal{border-radius:16px;max-width:800px;overflow:hidden;position:relative}.modal-close{background:#f3f4f6;border-radius:50%;color:#666;height:36px;position:absolute;right:1rem;top:1rem;width:36px;z-index:10}.modal-close:hover{background:#e5e7eb}.listing-modal-content{max-height:90vh;overflow-y:auto;padding:1.5rem}.modal-tutor-section{border-bottom:1px solid #e0e0e0;display:flex;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.modal-tutor-photo{border-radius:50%;height:100px;object-fit:cover;width:100px}.modal-tutor-info h2{align-items:center;display:flex;gap:.5rem;margin:0 0 .5rem}.tutor-headline{color:#666;margin:0 0 .75rem}.tutor-stats{display:flex;flex-wrap:wrap;gap:1rem}.tutor-stats .stat{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.25rem}.modal-course-section{margin-bottom:1.5rem}.modal-course-section h3{color:#1a1a2e;margin:0 0 .75rem}.course-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.course-description{color:#333;line-height:1.6;margin:0 0 1rem}.course-includes,.course-requirements{margin-bottom:1rem}.course-includes h4,.course-requirements h4{color:#333;font-size:.95rem;margin:0 0 .5rem}.course-includes ul,.course-requirements ul{margin:0;padding-left:1.25rem}.course-includes li,.course-requirements li{color:#666;margin:.25rem 0}.course-includes li{color:#10b981}.modal-bio-section{background:#f8fafc;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}.modal-bio-section h4{color:#333;margin:0 0 .75rem}.modal-bio-section p{color:#666;line-height:1.6;margin:0 0 1rem}.tutor-credentials{display:flex;flex-direction:column;gap:.5rem}.credential{color:#666;font-size:.9rem}.credential strong{color:#333}.modal-reviews-section{margin-bottom:1.5rem}.modal-reviews-section h4{color:#333;margin:0 0 1rem}.reviews-list{display:flex;flex-direction:column;gap:1rem}.review-card{background:#f8fafc;border-radius:8px;padding:1rem}.review-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.review-avatar{border-radius:50%;height:40px;width:40px}.review-meta{flex:1 1}.review-author{color:#333;display:block;font-weight:600}.review-date{color:#666;font-size:.8rem}.review-rating{display:flex}.review-title{color:#333;font-size:.95rem;margin:0 0 .5rem}.review-content{color:#666;font-size:.9rem;line-height:1.5;margin:0}.tutor-response{background:#fff;border-radius:6px;font-size:.85rem;margin-top:.75rem;padding:.75rem}.tutor-response strong{color:#4361ee}.tutor-response p{color:#666;margin:.5rem 0 0}.no-reviews{color:#666;padding:1rem;text-align:center}.modal-cta-section{background:linear-gradient(135deg,#4361ee,#7c3aed);border-radius:12px;color:#fff;padding:1.5rem;text-align:center}.price-display{margin-bottom:1rem}.price-label{display:block;font-size:.85rem;opacity:.9}.price-value{display:block;font-size:2rem;font-weight:700}.price-duration{font-size:.9rem;opacity:.9}.book-btn,.message-btn{border:none;border-radius:8px;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin-bottom:.5rem;padding:1rem;transition:all .2s;width:100%}.book-btn{background:#fff;color:#4361ee}.book-btn:hover{background:#f0f4f8}.message-btn{background:#fff3;border:2px solid #ffffff4d;color:#fff}.message-btn:hover{background:#ffffff4d}@media (prefers-color-scheme:dark){.marketplace{background:#0f172a}.marketplace-title h1{color:#f1f5f9}.marketplace-title p{color:#94a3b8}.marketplace-content,.marketplace-nav{background:#1e293b}.nav-btn{color:#94a3b8}.nav-btn:hover{background:#334155;color:#f1f5f9}.filter-row select,.search-bar input{background:#334155;border-color:#475569;color:#f1f5f9}.listing-card{background:#334155}.listing-card:hover{border-color:#4361ee}.listing-title,.tutor-name{color:#f1f5f9}.listing-description,.listing-duration,.rating-count{color:#94a3b8}.bookings-tabs,.listing-footer{border-color:#475569}.booking-tab{color:#94a3b8}.booking-card{background:#334155}.booking-tutor-name,.detail-value{color:#f1f5f9}.booking-listing-title{color:#94a3b8}.booking-btn{background:#1e293b;border-color:#475569;color:#f1f5f9}.booking-btn:hover{background:#475569}.coming-soon h3{color:#f1f5f9}.coming-soon p{color:#94a3b8}.modal{background:#1e293b}.modal-close{background:#334155;color:#94a3b8}.modal-tutor-section{border-color:#475569}.modal-course-section h3,.modal-tutor-info h2{color:#f1f5f9}.course-description,.credential,.tutor-headline{color:#94a3b8}.modal-bio-section,.review-card{background:#334155}.review-author,.review-title{color:#f1f5f9}.tutor-response{background:#1e293b}.star{color:#475569}}@media (max-width:768px){.marketplace{padding:1rem}.marketplace-header{align-items:flex-start;flex-direction:column}.marketplace-stats{justify-content:space-between;width:100%}.marketplace-nav{overflow-x:auto}.nav-btn{font-size:.85rem;padding:.5rem 1rem}.filter-row{flex-direction:column}.filter-row select{width:100%}.listings-grid{grid-template-columns:1fr}.modal{margin:.5rem;max-height:95vh}.modal-tutor-section{align-items:center;flex-direction:column;text-align:center}.tutor-stats{justify-content:center}.booking-details{grid-template-columns:1fr}}.external-resources-page{background-color:#f5f5f5;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.external-resources-page.loading{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{border:4px solid #e0e0e0;border-top-color:#1e3a5f;margin-bottom:20px}.resources-header{background:linear-gradient(135deg,#1e3a5f,#2e7d32);border-radius:20px;box-shadow:0 10px 30px #1e3a5f33;color:#fff;margin-bottom:30px;padding:50px 20px;text-align:center}.resources-header h1{font-size:2.8rem;font-weight:700;margin-bottom:12px}.resources-header p{font-size:1.15rem;margin:0 auto;max-width:600px;opacity:.9}.resources-filters{margin-bottom:35px}.level-tabs{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:20px}.level-tab{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:30px;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:8px;padding:14px 22px;transition:all .3s ease}.level-tab:hover{background:#f5f5f5;border-color:#1e3a5f;transform:translateY(-2px)}.level-tab.active{background:#1e3a5f;border-color:#1e3a5f;box-shadow:0 4px 15px #1e3a5f4d;color:#fff}.level-icon{font-size:1.3rem}.secondary-filters{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.category-select{background:#fff;border:2px solid #e0e0e0;border-radius:25px;cursor:pointer;font-size:1rem;min-width:180px;padding:12px 20px;transition:border-color .3s}.category-select:focus{border-color:#1e3a5f;outline:none}.search-bar{max-width:400px;position:relative;width:100%}.search-bar input{border:2px solid #e0e0e0;border-radius:30px;font-size:1rem;padding:14px 45px 14px 20px;transition:border-color .3s,box-shadow .3s;width:100%}.search-bar input:focus{border-color:#1e3a5f;box-shadow:0 0 0 3px #1e3a5f1a;outline:none}.clear-search{background:none;border:none;color:#999;cursor:pointer;font-size:18px;padding:5px;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.clear-search:hover{color:#666}.africa-toggle{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:25px;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:8px;padding:12px 20px;transition:all .3s}.africa-toggle:hover{background:#e8f5e9;border-color:#2e7d32}.africa-toggle.active{background:#2e7d32;border-color:#2e7d32;color:#fff}section{margin-bottom:45px}section h2{color:#1e3a5f;font-size:1.6rem;font-weight:600}.section-header,section h2{margin-bottom:20px}.resource-count{color:#666;font-size:.95rem}.featured-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.resources-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.resource-card{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 15px #0000000f;cursor:pointer;display:flex;flex-direction:column;padding:22px;position:relative;transition:all .3s ease}.resource-card:hover{border-color:#1e3a5f;box-shadow:0 12px 35px #0000001f;transform:translateY(-6px)}.resource-card.featured{border:2px solid gold}.featured-badge{background:linear-gradient(135deg,gold,#ffb300);border-radius:15px;box-shadow:0 3px 10px #ffd7004d;color:#333;font-size:.75rem;font-weight:700;padding:6px 14px;position:absolute;right:20px;top:-10px}.resource-logo{border-radius:14px;height:65px;margin-bottom:16px;overflow:hidden;width:65px}.resource-logo img{height:100%;object-fit:contain;width:100%}.logo-placeholder{align-items:center;background:linear-gradient(135deg,#1e3a5f,#2e7d32);color:#fff;display:flex;font-size:1.7rem;font-weight:700;height:100%;justify-content:center;width:100%}.resource-content{flex:1 1}.resource-name{color:#1e3a5f;font-size:1.15rem;font-weight:600;margin-bottom:5px}.resource-platform{color:#666;font-size:.9rem;margin-bottom:12px}.resource-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#555;display:-webkit-box;font-size:.88rem;line-height:1.5;margin-bottom:14px;overflow:hidden}.resource-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tag{border-radius:15px;font-size:.78rem;font-weight:500;padding:5px 12px}.subject-tag{background:#e3f2fd;color:#1565c0}.resource-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.africa-badge,.cert-badge,.language-badge,.type-badge{border-radius:12px;font-size:.72rem;font-weight:600;padding:5px 12px}.type-badge{color:#fff}.language-badge{background:#f5f5f5;font-size:1rem;padding:4px 8px}.cert-badge{background:#fff3e0;color:#e65100}.africa-badge{background:#e8f5e9;color:#2e7d32}.resource-rating{align-items:center;color:#ffb300;display:flex;font-size:.9rem;gap:5px}.rating-value{color:#666;font-size:.85rem}.access-btn{background:linear-gradient(135deg,#1e3a5f,#2e4a6f);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:16px;padding:14px;transition:all .3s;width:100%}.access-btn:hover{background:linear-gradient(135deg,#2e7d32,#388e3c);transform:scale(1.02)}.africa-section{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:20px;margin-top:20px;padding:35px}.africa-section h2{color:#2e7d32}.africa-section p{color:#558b2f;margin-bottom:25px;margin-top:-10px}.empty-state{border-radius:16px;padding:80px 20px}.empty-icon{margin-bottom:20px}.empty-state h3{color:#333;font-size:1.4rem;margin-bottom:10px}.empty-state p{color:#666}@media (max-width:1024px){.resources-header h1{font-size:2.2rem}.level-tabs{gap:10px}.level-tab{padding:12px 18px}}@media (max-width:768px){.external-resources-page{padding:15px}.resources-header{padding:35px 20px}.resources-header h1{font-size:1.9rem}.resources-header p{font-size:1rem}.level-tabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:12px}.level-tab{flex-shrink:0;padding:10px 16px;white-space:nowrap}.level-label{display:none}.level-tab.active .level-label{display:inline}.secondary-filters{flex-direction:column;gap:12px}.africa-toggle,.category-select,.search-bar{max-width:none;width:100%}.featured-grid,.resources-grid{grid-template-columns:1fr}.africa-section{border-radius:16px;padding:25px 20px}section h2{font-size:1.3rem}.section-header{align-items:flex-start;flex-direction:column;gap:8px}}@media (max-width:480px){.resources-header h1{font-size:1.6rem}.level-tab{font-size:.9rem;padding:8px 14px}.level-icon{font-size:1.1rem}.resource-card{padding:18px}.resource-name{font-size:1.05rem}.resource-description{font-size:.85rem}.access-btn{font-size:.9rem;padding:12px}}.resource-card{animation:fadeIn .4s ease-out}.resource-card:nth-child(2){animation-delay:.05s}.resource-card:nth-child(3){animation-delay:.1s}.resource-card:nth-child(4){animation-delay:.15s}.resource-card:nth-child(5){animation-delay:.2s}.resource-card:nth-child(6){animation-delay:.25s}@media print{.access-btn,.resources-filters{display:none}.resource-card{border:1px solid #ddd;box-shadow:none;break-inside:avoid;page-break-inside:avoid}}.appointments-page{margin:0 auto;max-width:1200px;padding:1.5rem}.appointments-header{margin-bottom:2rem}.appointments-header .header-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.appointments-header h1{color:var(--color-text-primary);font-size:1.75rem;margin:0}.appointments-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.filter-group{align-items:center;gap:.5rem}.filter-group label{color:var(--color-text-secondary)}.filter-group select{background:#fff;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;padding:.5rem 1rem}.appointment-date{align-items:center;background:var(--color-primary);color:#fff;display:flex;flex-direction:column;justify-content:center;min-width:80px;padding:1rem 1.5rem}.appointment-date .day{font-size:1.75rem;font-weight:700;line-height:1}.appointment-date .month{font-size:.875rem;opacity:.9;text-transform:uppercase}.appointment-date .time{border-top:1px solid #ffffff4d;font-size:.875rem;margin-top:.5rem;padding-top:.5rem}.appointment-details{flex:1 1;padding:1rem 1.5rem}.appointment-header h3{color:var(--color-text-primary);font-size:1.1rem;margin:0}.appointment-badge{border-radius:20px;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.appointment-location,.appointment-student,.appointment-with{color:var(--color-text-secondary);font-size:.9rem;margin:.25rem 0}.appointment-description{margin-top:.5rem}.step-header{margin-bottom:2rem}.step-number{background:var(--color-primary);font-size:1.25rem;margin-bottom:1rem}.step-header h2{color:var(--color-text-primary);font-size:1.5rem;margin:0 0 .5rem}.step-header p{color:var(--color-text-secondary)}.teachers-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.teacher-card{align-items:center;background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000000f;cursor:pointer;display:flex;gap:1rem;padding:1rem 1.5rem;transition:transform .2s,box-shadow .2s,border-color .2s}.teacher-card:hover{border-color:var(--color-primary);box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.teacher-avatar{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:1.25rem;font-weight:600;height:50px;justify-content:center;width:50px}.teacher-info{flex:1 1}.teacher-info h3{color:var(--color-text-primary);font-size:1rem;margin:0}.teacher-info p{color:var(--color-text-secondary);font-size:.875rem;margin:.25rem 0}.slots-count{background:#e8f5e9;border-radius:4px;color:#2e7d32;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.select-arrow{color:var(--color-primary);font-size:1.5rem;opacity:0;transition:opacity .2s,transform .2s}.teacher-card:hover .select-arrow{opacity:1;transform:translateX(4px)}.slots-container{display:flex;flex-direction:column;gap:1.5rem}.day-slots{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.day-header{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:1rem;margin:0 0 1rem;padding-bottom:.5rem;text-transform:capitalize}.slots-grid{display:flex;flex-wrap:wrap;gap:.5rem}.slot-button{align-items:center;background:#fff;border:2px solid var(--color-border);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;min-width:80px;padding:.75rem 1rem;transition:all .2s}.slot-button:hover{background:#f8f9fa;border-color:var(--color-primary)}.slot-button.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.slot-time{font-size:1rem}.slot-duration{font-size:.75rem;opacity:.8}.slot-virtual{font-size:.875rem;margin-top:.25rem}.appointment-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin:0 auto;max-width:600px;padding:2rem}.appointment-summary{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.summary-item{border-bottom:1px solid #e9ecef;padding:.5rem 0}.summary-value{font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:.75rem}.form-actions{border-top:1px solid var(--color-border);display:flex;gap:1rem;justify-content:space-between;margin-top:2rem;padding-top:1.5rem}.btn-danger{background:#e74c3c}.btn-danger:hover:not(:disabled){background:#c0392b}.btn-sm{font-size:.875rem}@media (max-width:768px){.appointments-page{padding:1rem}.appointments-header .header-content{align-items:flex-start;flex-direction:column}.appointment-card,.appointments-filters{flex-direction:column}.appointment-date{flex-direction:row;gap:1rem;padding:.75rem 1rem}.appointment-date .time{border-left:1px solid #ffffff4d;border-top:none;margin-top:0;padding-left:1rem;padding-top:0}.appointment-actions{border-top:1px solid var(--color-border);flex-direction:row;padding:.75rem 1rem}.teachers-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.teacher-availability-page{margin:0 auto;max-width:1400px;padding:1.5rem}.header-description{color:var(--color-text-secondary);margin:.5rem 0 0}.pending-section{margin-bottom:2rem}.pending-section h2{color:var(--color-text-primary);font-size:1.25rem;margin:0 0 1rem}.pending-list{display:flex;flex-direction:column;gap:1rem}.pending-card{align-items:flex-start;background:#fff;border-left:4px solid #f39c12;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;gap:1rem;justify-content:space-between;padding:1.25rem}.pending-info{flex:1 1}.pending-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.5rem}.pending-date{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.virtual-badge{border-radius:4px;padding:.125rem .5rem}.pending-info h3{color:var(--color-text-primary);font-size:1rem;margin:0 0 .25rem}.pending-info p{color:var(--color-text-secondary);font-size:.875rem;margin:0}.pending-description{color:var(--color-text-tertiary)!important;font-style:italic;margin-top:.5rem!important}.pending-actions{display:flex;flex-direction:column;gap:.5rem}.availability-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.availability-section h2{color:var(--color-text-primary);font-size:1.25rem;margin:0 0 1.5rem}.empty-state p{margin:0 0 1.5rem}.availability-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(6,1fr)}.day-column{min-width:0}.day-header{background:var(--color-primary);border-radius:8px 8px 0 0;color:#fff;font-size:.9rem;font-weight:600;padding:.75rem;text-align:center}.day-slots{background:#f8f9fa;border-radius:0 0 8px 8px;display:flex;flex-direction:column;gap:.5rem;min-height:150px;padding:.5rem}.no-slots{color:var(--color-text-tertiary);padding:2rem;text-align:center}.availability-slot{background:#fff;border-radius:6px;box-shadow:0 1px 3px #00000014;padding:.75rem;transition:transform .2s}.availability-slot:hover{transform:translateY(-1px)}.availability-slot.inactive{background:#e9ecef;opacity:.5}.slot-time{color:var(--color-text-primary);font-size:.9rem;font-weight:600;margin-bottom:.25rem}.slot-details{color:var(--color-text-secondary);display:flex;font-size:.75rem;gap:.5rem;margin-bottom:.5rem}.slot-actions{display:flex;gap:.25rem;justify-content:flex-end}.btn-icon{background:none;border:none;cursor:pointer;font-size:.875rem;opacity:.7;padding:.25rem;transition:opacity .2s}.btn-icon:hover{opacity:1}.form-group input,.form-group select{border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;padding:.625rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary)}@media (max-width:992px){.availability-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.teacher-availability-page{padding:1rem}.page-header .header-content{align-items:flex-start;flex-direction:column}.availability-grid{grid-template-columns:repeat(2,1fr)}.pending-card{flex-direction:column}.pending-actions{flex-direction:row;width:100%}.pending-actions .btn{flex:1 1}.form-row{grid-template-columns:1fr}}@media (max-width:480px){.availability-grid{grid-template-columns:1fr}.day-slots{min-height:auto}}.teacher-dashboard-page{margin:0 auto;max-width:1400px;padding:1.5rem}.stats-grid{margin-bottom:2rem}.stat-card.stat-week{border-left-color:#2ecc71}.stat-card.stat-month{border-left-color:#9b59b6}.tab-content{min-height:300px}.appointments-list{display:flex;flex-direction:column;gap:1rem}.appointment-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;overflow:hidden;transition:transform .2s,box-shadow .2s}.appointment-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.appointment-card.convocation{border-left:4px solid #e74c3c}.appointment-date-block{align-items:center;background:var(--color-primary);color:#fff;display:flex;flex-direction:column;justify-content:center;min-width:100px;padding:1rem 1.25rem;text-align:center}.appointment-date-block .date{font-size:.875rem;font-weight:500;text-transform:capitalize}.appointment-date-block .time{font-size:1.25rem;font-weight:700;margin-top:.25rem}.appointment-date-block .time-until{border-top:1px solid #ffffff4d;font-size:.75rem;margin-top:.5rem;opacity:.9;padding-top:.5rem}.appointment-content{flex:1 1;padding:1rem 1.5rem}.appointment-header{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.appointment-header h4{color:var(--color-text-primary);font-size:1.1rem;margin:0}.status-badge{font-size:.75rem}.badge-warning{background:#fff3cd;color:#856404}.badge-success{background:#d4edda;color:#155724}.badge-danger{background:#f8d7da;color:#721c24}.badge-secondary{background:#e9ecef;color:#495057}.convocation-badge{background:#e74c3c;color:#fff}.convocation-badge,.virtual-badge{border-radius:20px;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.virtual-badge{background:#e3f2fd;color:#1976d2}.appointment-meta{color:var(--color-text-secondary);display:flex;flex-wrap:wrap;font-size:.9rem;gap:1rem}.appointment-meta p{margin:0}.appointment-description{color:var(--color-text-tertiary);font-size:.875rem;font-style:italic;margin-top:.75rem}.convocation-reason{background:#fff3cd;border-radius:6px;color:#856404;font-size:.875rem;margin-top:.75rem;padding:.75rem}.appointment-actions{border-left:1px solid #e9ecef;display:flex;flex-direction:column;gap:.5rem;justify-content:center;min-width:130px;padding:1rem}.empty-state h3{color:var(--color-text-primary)}.modal-content.modal-large{max-width:650px}.btn-success{background:#28a745}.btn-success:hover:not(:disabled){background:#218838}@media (max-width:992px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.teacher-dashboard-page{padding:1rem}.dashboard-header .header-content{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr}.dashboard-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.tab-btn{font-size:.875rem;padding:.75rem 1rem;white-space:nowrap}.appointment-card{flex-direction:column}.appointment-date-block{flex-direction:row;gap:1rem;padding:.75rem 1rem}.appointment-date-block .time-until{border-left:1px solid #ffffff4d;border-top:none;margin-top:0;padding-left:1rem;padding-top:0}.appointment-actions{border-left:none;border-top:1px solid #e9ecef;flex-direction:row;flex-wrap:wrap;min-width:auto}.appointment-actions .btn{flex:1 1;min-width:100px}.form-row{grid-template-columns:1fr}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:1rem}.stat-value{font-size:1.5rem}}.admin-dashboard-page{margin:0 auto;max-width:1400px;padding:1.5rem}.dashboard-header{margin-bottom:2rem}.dashboard-header .header-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.dashboard-header h1{color:var(--color-text-primary);font-size:1.75rem;margin:0}.stats-grid{margin-bottom:1.5rem}.stat-card{border-left:4px solid #0000;box-shadow:0 2px 8px #0000000f}.stat-card.stat-today{border-left-color:#3498db}.stat-card.stat-pending{border-left-color:#f39c12}.stat-card.stat-meetings{border-left-color:#2ecc71}.stat-card.stat-alerts{border-left-color:#e74c3c}.stat-icon{opacity:.8}.stat-content{display:flex;flex-direction:column}.stat-value{color:var(--color-text-primary);font-size:1.75rem;line-height:1}.stat-label{color:var(--color-text-secondary);font-size:.875rem;margin-top:.25rem}.alerts-banner{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.alert-item{align-items:center;border-radius:8px;display:flex;font-size:.9rem;gap:.75rem;padding:.75rem 1rem}.alert-item.alert-high{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alert-item.alert-medium{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.alert-item.alert-low{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.alert-icon{font-size:1rem}.alert-message{flex:1 1}.dashboard-tabs{border-bottom:2px solid #e9ecef;display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:0}.tab-content{min-height:400px}.overview-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.overview-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.overview-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1rem}.empty-text{color:var(--color-text-tertiary);font-style:italic;padding:2rem;text-align:center}.mini-list{display:flex;flex-direction:column;gap:.75rem}.mini-card{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:1rem;padding:.75rem}.mini-time{color:var(--color-primary);font-weight:600;min-width:50px}.mini-content{display:flex;flex:1 1;flex-direction:column;gap:.125rem}.mini-content strong{color:var(--color-text-primary);font-size:.9rem}.mini-content span{color:var(--color-text-secondary);font-size:.8rem}.mini-badge{border-radius:4px;font-size:.7rem;font-weight:500;padding:.25rem .5rem}.mini-badge.convocation{background:#fef2f2;color:#dc2626}.mini-card.meeting-card{padding:1rem}.mini-date{align-items:center;display:flex;flex-direction:column;min-width:70px}.mini-date .day{color:var(--color-text-secondary);font-size:.8rem}.mini-date .time{color:var(--color-primary);font-size:.9rem;font-weight:600}.mini-stats{align-items:center;display:flex;flex-direction:column;min-width:60px}.confirm-rate{color:#16a34a;font-size:1.25rem;font-weight:700}.confirm-label{color:var(--color-text-tertiary);font-size:.7rem}.teacher-ranking{display:flex;flex-direction:column;gap:.5rem}.ranking-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;gap:.75rem;padding:.5rem .75rem}.ranking-item .rank{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.ranking-item .name{flex:1 1;font-size:.9rem}.ranking-item .count{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.section-header h3{color:var(--color-text-primary);font-size:1.25rem;margin:0}.meetings-list{display:flex;flex-direction:column;gap:1rem}.meeting-card-full{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.meeting-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.meeting-info h4{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 .25rem}.meeting-type{color:var(--color-text-secondary);font-size:.85rem}.meeting-datetime{text-align:right}.meeting-datetime .date{color:var(--color-text-secondary);display:block;font-size:.9rem}.meeting-datetime .time{color:var(--color-primary);display:block;font-size:1.1rem;font-weight:600}.meeting-stats{border-bottom:1px solid #e9ecef;border-top:1px solid #e9ecef;display:flex;gap:2rem;margin-bottom:1rem;padding:1rem 0}.meeting-stats .stat{align-items:center;display:flex;flex-direction:column}.meeting-stats .stat .value{font-size:1.5rem;font-weight:700}.meeting-stats .stat .label{color:var(--color-text-secondary);font-size:.75rem}.meeting-stats .stat.confirmed .value{color:#16a34a}.meeting-stats .stat.pending .value{color:#f59e0b}.meeting-stats .stat.declined .value{color:#dc2626}.meeting-stats .stat.total .value{color:var(--color-text-primary)}.meeting-actions{display:flex;flex-wrap:wrap;gap:.75rem}.no-response-list{display:flex;flex-direction:column;gap:1rem}.no-response-card{align-items:center;background:#fff;border-left:4px solid #f59e0b;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;justify-content:space-between;padding:1.25rem}.no-response-info{flex:1 1}.type-badge{background:#e5e7eb;border-radius:4px;color:#374151;display:inline-block;font-size:.7rem;font-weight:500;margin-right:.5rem;padding:.25rem .5rem}.no-response-info strong{color:var(--color-text-primary);font-size:1rem}.no-response-info p{color:var(--color-text-secondary);font-size:.875rem;margin:.25rem 0}.hours-since{color:#f59e0b;font-size:.8rem;font-weight:500}.no-response-actions{display:flex;gap:.5rem}.empty-state{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.empty-icon{display:block;font-size:3rem}.empty-state h4{color:var(--color-text-primary);margin:0 0 .5rem}.empty-state p{color:var(--color-text-secondary)}.modal-content{border-radius:12px;width:100%}.modal-header{background:#fff;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-close{background:none;color:var(--color-text-secondary);font-size:1.5rem;line-height:1;padding:0}.modal-close:hover{color:var(--color-text-primary)}.modal-content form{padding:1.5rem}.form-row{grid-template-columns:repeat(2,1fr)}.form-group label{color:var(--color-text-primary)}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;padding:.625rem;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary)}.form-hint{color:var(--color-text-tertiary);display:block;font-size:.8rem;margin-top:.25rem}.checkbox-list{display:flex;flex-direction:column;max-height:150px}.checkbox-grid,.checkbox-list{background:#f8f9fa;border-radius:6px;gap:.5rem;overflow-y:auto;padding:.5rem}.checkbox-grid{grid-gap:.5rem;display:grid;grid-template-columns:repeat(3,1fr);max-height:200px}.checkbox-item{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:.5rem;padding:.25rem}.checkbox-item input[type=checkbox]{width:auto}.checkbox-group{margin-bottom:.75rem}.checkbox-group label{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:.5rem}.checkbox-group input[type=checkbox]{width:auto}.modal-actions{border-top:1px solid var(--color-border);display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1rem}.btn-secondary{background:#e9ecef;color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:#dee2e6}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background:#e0a800}@media (max-width:992px){.stats-grid{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.admin-dashboard-page{padding:1rem}.dashboard-header .header-content{align-items:flex-start;flex-direction:column}.header-actions{width:100%}.header-actions .btn{flex:1 1}.stats-grid{grid-template-columns:1fr 1fr}.dashboard-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.tab-btn{font-size:.875rem;padding:.75rem 1rem;white-space:nowrap}.meeting-header{flex-direction:column;gap:.75rem}.meeting-datetime{text-align:left}.meeting-stats{flex-wrap:wrap;gap:1rem}.meeting-actions{flex-direction:column}.meeting-actions .btn{width:100%}.no-response-card{align-items:flex-start;flex-direction:column;gap:1rem}.no-response-actions{width:100%}.no-response-actions .btn{flex:1 1}.form-row{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr 1fr}}@media (max-width:480px){.checkbox-grid,.stats-grid{grid-template-columns:1fr}}.statistics-page{margin:0 auto;max-width:1200px;padding:1.5rem}.page-header .header-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.page-header h1{color:var(--color-text-primary);font-size:1.75rem;margin:0}.period-selector{background:#e9ecef;border-radius:8px;display:flex;gap:.25rem;padding:.25rem}.period-btn{background:#0000;border:none;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.period-btn:hover{color:var(--color-text-primary)}.period-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:var(--color-primary)}.tabs{border-bottom:2px solid #e9ecef}.tab-btn{background:none;color:var(--color-text-secondary);font-size:.95rem;padding:.75rem 1.5rem;position:relative;transition:color .2s}.tab-btn.active,.tab-btn:hover{color:var(--color-primary)}.tab-btn.active:after{background:var(--color-primary);bottom:-2px;content:"";height:2px;left:0;position:absolute;right:0}.overview-content{display:flex;flex-direction:column;gap:2rem}.summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}.summary-card{background:#fff;border-radius:12px;border-top:4px solid #0000;box-shadow:0 2px 8px #0000000f;padding:1.5rem;text-align:center}.summary-card.total{border-top-color:var(--color-primary)}.summary-card.completed{border-top-color:#27ae60}.summary-card.pending{border-top-color:#3498db}.summary-card.no-shows{border-top-color:#e74c3c}.summary-value{color:var(--color-text-primary);display:block;font-size:2.5rem;font-weight:700;line-height:1}.summary-label{color:var(--color-text-secondary);display:block;font-size:.875rem;margin-top:.5rem}.rates-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.rates-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1.5rem}.rates-grid{display:flex;gap:2rem;justify-content:space-around}.rate-card{flex-direction:column;gap:.75rem}.rate-card,.rate-circle{align-items:center;display:flex}.rate-circle{background:conic-gradient(#27ae60 0 var(--rate),#e9ecef var(--rate) 100%);border-radius:50%;height:100px;justify-content:center;position:relative;width:100px}.rate-card.warning .rate-circle{background:conic-gradient(#e74c3c 0 var(--rate),#e9ecef var(--rate) 100%)}.rate-circle:before{background:#fff;border-radius:50%;content:"";height:80px;position:absolute;width:80px}.rate-value{color:var(--color-text-primary);font-size:1.25rem;font-weight:700;position:relative}.rate-label{color:var(--color-text-secondary);font-size:.9rem}.trend-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.trend-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1.5rem}.trend-chart{align-items:flex-end;display:flex;gap:.5rem;height:200px;padding:0 .5rem}.trend-bar-container{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.trend-bar{align-items:flex-start;background:linear-gradient(to top,var(--color-primary),#5dade2);border-radius:4px 4px 0 0;display:flex;justify-content:center;max-width:40px;min-height:20px;transition:height .3s ease;width:100%}.trend-value{color:#fff;font-size:.75rem;font-weight:600;padding-top:4px}.trend-label{color:var(--color-text-tertiary);font-size:.7rem;margin-top:.5rem}.breakdown-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.breakdown-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.breakdown-section h3{color:var(--color-text-primary);font-size:1rem;margin:0 0 1rem}.breakdown-items{display:flex;flex-direction:column;gap:.75rem}.breakdown-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.breakdown-item.convocation{background:#fef2f2}.breakdown-item.virtual{background:#e8f5e9}.breakdown-label{color:var(--color-text-secondary);font-size:.9rem}.breakdown-value{color:var(--color-text-primary);font-size:1.25rem;font-weight:700}.duration-display{align-items:baseline;display:flex;gap:.25rem;justify-content:center}.duration-value{color:var(--color-primary);font-size:3rem;font-weight:700}.duration-unit{color:var(--color-text-secondary);font-size:1.25rem}.popular-hours-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.popular-hours-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1rem}.hours-list{display:flex;flex-wrap:wrap;gap:1rem}.hour-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;min-width:80px;padding:1rem}.hour-time{color:var(--color-primary);font-size:1.1rem;font-weight:600}.hour-count{color:var(--color-text-secondary);font-size:.8rem;margin-top:.25rem}.top-teachers-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.top-teachers-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1rem}.teachers-table{overflow-x:auto}.teachers-table table{border-collapse:collapse;width:100%}.teachers-table td,.teachers-table th{border-bottom:1px solid #e9ecef;padding:.75rem;text-align:left}.teachers-table th{color:var(--color-text-secondary);font-size:.8rem;font-weight:600;text-transform:uppercase}.teachers-table td{color:var(--color-text-primary);font-size:.9rem}.completion-rate{border-radius:4px;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.completion-rate.good{background:#d4edda;color:#155724}.completion-rate.medium{background:#fff3cd;color:#856404}.completion-rate.low{background:#f8d7da;color:#721c24}.suggestions-content{display:flex;flex-direction:column;gap:2rem}.suggestion-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.suggestion-section h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 1rem}.empty-suggestions{color:var(--color-text-secondary);padding:2rem;text-align:center}.empty-suggestions small{color:var(--color-text-tertiary);display:block;margin-top:.5rem}.suggestions-list{display:flex;flex-direction:column;gap:.75rem}.suggestion-card{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:1rem}.suggestion-info h4{color:var(--color-text-primary);font-size:1rem;margin:0}.suggestion-info p{color:var(--color-text-secondary);font-size:.875rem;margin:.25rem 0 0}.absence-count,.grade-drop{display:inline-block;font-size:.8rem;font-weight:500;margin-top:.5rem}.absence-count{color:#e74c3c}.grade-drop{color:#f39c12}.pending-badge{background:#fff3cd;border-radius:6px;color:#856404;font-size:.8rem;font-weight:500;padding:.5rem 1rem}.export-content{padding:1rem 0}.export-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}.export-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:2rem;text-align:center}.export-icon{font-size:3rem;margin-bottom:1rem}.export-card h3{color:var(--color-text-primary);font-size:1.1rem;margin:0 0 .75rem}.export-card p{color:var(--color-text-secondary);font-size:.9rem;margin:0 0 1rem}.export-note{color:var(--color-text-tertiary);font-size:.8rem;font-style:italic}.export-note.coming-soon{color:var(--color-primary)}.btn{font-size:.9rem;padding:.625rem 1.25rem}.btn-primary{background:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-danger{background:#dc3545}.btn-danger:hover:not(:disabled){background:#c82333}.btn-sm{font-size:.8rem}.btn:disabled{opacity:.6}@media (max-width:992px){.summary-grid{grid-template-columns:repeat(2,1fr)}.breakdown-grid,.export-section{grid-template-columns:1fr}}@media (max-width:768px){.statistics-page{padding:1rem}.page-header .header-content{align-items:flex-start;flex-direction:column}.period-selector{justify-content:center;width:100%}.rates-grid{align-items:center;flex-direction:column;gap:1.5rem}.trend-chart{overflow-x:auto;padding-bottom:.5rem}.trend-bar-container{min-width:50px}.suggestion-card{align-items:flex-start;flex-direction:column;gap:1rem}.suggestion-actions,.suggestion-actions .btn{width:100%}}@media (max-width:480px){.summary-grid{grid-template-columns:1fr}.summary-card{padding:1rem}.summary-value{font-size:2rem}}.registration-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.registration-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:900px;overflow:hidden;width:100%}.registration-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:24px 32px;text-align:center}.logo{align-items:center;display:flex;gap:12px;justify-content:center}.logo-icon{font-size:32px}.logo-text{color:#fff;font-size:24px;font-weight:700}.progress-bar{background:#e0e0e0;height:6px;position:relative}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2)}.progress-text{color:#666;font-size:12px;position:absolute;right:16px;top:12px}.registration-content{padding:32px}.step-header{margin-bottom:32px;text-align:center}.step-header h1,.step-header h2{color:#333;font-weight:700;margin:0 0 8px}.step-header h1{font-size:28px}.step-header h2{font-size:24px}.step-header p{color:#666;font-size:14px;margin:0}.pathway-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-bottom:32px}.pathway-card{background:#f8f9fa;border:2px solid #0000;border-radius:12px;cursor:pointer;padding:24px;text-align:center;transition:all .2s ease}.pathway-card:hover{border-color:#667eea;transform:translateY(-2px)}.pathway-card.selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.pathway-icon{font-size:48px;margin-bottom:16px}.pathway-card h3{color:#333;font-size:18px;margin:0 0 8px}.pathway-card p{color:#666;font-size:13px;line-height:1.5;margin:0 0 16px}.pathway-features{color:#888;font-size:12px;list-style:none;margin:0;padding:0}.pathway-features li{padding:4px 0}.pathway-features li:before{color:#4caf50;content:"✓ "}.login-link{color:#666;font-size:14px;text-align:center}.login-link a{color:#667eea;font-weight:600;text-decoration:none}.login-link a:hover{text-decoration:underline}.countries-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:24px}.country-card{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;padding:16px;text-align:center;transition:all .2s ease}.country-card:hover{border-color:#667eea}.country-card.selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.country-flag{display:block;font-size:32px;margin-bottom:8px}.country-name{color:#333;display:block;font-size:14px;font-weight:600}.country-currency{color:#888;display:block;font-size:11px;margin-top:4px}.country-info{background:#f0f4ff;border-radius:8px;display:flex;gap:40px;justify-content:center;margin-bottom:24px;padding:16px}.info-item{text-align:center}.info-label{color:#666;display:block;font-size:11px;text-transform:uppercase}.info-value{color:#333;display:block;font-size:16px;font-weight:600;margin-top:4px}.school-types-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:32px}.school-type-card{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;padding:20px 12px;text-align:center;transition:all .2s ease}.school-type-card:hover{border-color:#667eea}.school-type-card.selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.type-icon{display:block;font-size:32px;margin-bottom:8px}.type-label{color:#333;font-size:13px;font-weight:600}.legal-status-section{border-top:1px solid #eee;margin-top:32px;padding-top:24px}.legal-status-section h3{color:#333;font-size:16px;margin:0 0 16px}.legal-status-options{display:flex;flex-direction:column;gap:12px}.legal-status-option{align-items:flex-start;background:#f8f9fa;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.legal-status-option:hover{border-color:#667eea}.legal-status-option.selected{background:#667eea0d;border-color:#667eea}.legal-status-option input{margin-top:3px}.option-content{display:flex;flex-direction:column}.option-label{color:#333;font-weight:600}.option-description{color:#666;font-size:12px}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.form-group.full-width{grid-column:1/-1}.form-group label{font-size:14px;font-weight:600;margin-bottom:6px}.form-input,.form-select{border:1px solid #ddd;border-radius:8px;font-size:15px;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26;outline:none}.form-hint{color:#888;font-size:12px;margin-top:4px}.checkbox-label{align-items:center;color:#666;cursor:pointer;display:flex;font-size:13px;gap:8px;margin-top:8px}.checkbox-label input{height:16px;width:16px}.password-requirements{display:flex;gap:12px;margin-top:8px}.password-requirements span{background:#f5f5f5;border-radius:4px;color:#999;font-size:11px;padding:2px 8px}.password-requirements span.valid{background:#e8f5e9;color:#4caf50}.confirmation-summary{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:24px}.summary-section{background:#f8f9fa;border-radius:12px;padding:20px}.summary-section h3{color:#333;font-size:16px;margin:0 0 16px}.summary-item{border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:8px 0}.summary-item:last-child{border-bottom:none}.summary-label{color:#666;font-size:13px}.summary-value{color:#333;font-size:13px;font-weight:600}.offer-box{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;grid-column:1/-1;padding:24px;text-align:center}.offer-badge{background:#fff3;border-radius:20px;display:inline-block;font-size:12px;font-weight:600;margin-bottom:12px;padding:4px 12px}.offer-box h4{font-size:24px;margin:0 0 16px}.offer-box ul{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;list-style:none;margin:0 0 16px;padding:0}.offer-box li{font-size:14px}.offer-box li:before{content:"✓ "}.offer-after{font-size:12px;margin:0;opacity:.8}.terms-section{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.terms-section a{color:#667eea}.activation-form{margin:0 auto 24px;max-width:500px}.activation-input{font-family:monospace;font-size:18px!important;letter-spacing:2px;text-align:center}.btn-verify{margin-top:12px;width:100%}.code-validation{align-items:center;border-radius:8px;display:flex;gap:16px;margin-top:16px;padding:16px}.code-validation.valid{background:#e8f5e9;border:1px solid #4caf50}.code-validation.invalid{background:#ffebee;border:1px solid #f44336}.validation-icon{align-items:center;border-radius:50%;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.code-validation.valid .validation-icon{background:#4caf50;color:#fff}.code-validation.invalid .validation-icon{background:#f44336;color:#fff}.validation-content h4{font-size:16px;margin:0 0 4px}.code-validation.valid .validation-content h4{color:#2e7d32}.code-validation.invalid .validation-content h4{color:#c62828}.validation-content p{color:#666;font-size:13px;margin:0}.step-actions{border-top:1px solid #eee;display:flex;gap:16px;justify-content:space-between;margin-top:32px;padding-top:24px}.btn{font-size:15px;gap:8px;padding:12px 24px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover:not(:disabled){background:#e0e0e0}.btn-lg{font-size:16px;padding:14px 32px}.error-message{background:#ffebee;border:1px solid #f44336;border-radius:8px;color:#c62828;font-size:14px;margin-top:16px;padding:12px 16px}[data-theme=dark] .registration-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}[data-theme=dark] .registration-container{background:#1e293b;box-shadow:0 20px 60px #0006}[data-theme=dark] .step-header h1,[data-theme=dark] .step-header h2{color:#f8fafc}[data-theme=dark] .step-header p{color:#94a3b8}[data-theme=dark] .country-card,[data-theme=dark] .pathway-card,[data-theme=dark] .school-type-card{background:#0f172a;border-color:#334155}[data-theme=dark] .country-card:hover,[data-theme=dark] .pathway-card:hover,[data-theme=dark] .school-type-card:hover{border-color:#60a5fa}[data-theme=dark] .country-card.selected,[data-theme=dark] .pathway-card.selected,[data-theme=dark] .school-type-card.selected{background:#60a5fa1a;border-color:#60a5fa}[data-theme=dark] .country-name,[data-theme=dark] .pathway-card h3,[data-theme=dark] .type-label{color:#f8fafc}[data-theme=dark] .country-currency,[data-theme=dark] .pathway-card p,[data-theme=dark] .pathway-features{color:#94a3b8}[data-theme=dark] .progress-bar{background:#334155}[data-theme=dark] .progress-text{color:#94a3b8}[data-theme=dark] .form-group label{color:#f8fafc}[data-theme=dark] .form-input,[data-theme=dark] .form-select{background:#0f172a;border-color:#334155;color:#f8fafc}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-select:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa26}[data-theme=dark] .form-hint{color:#64748b}[data-theme=dark] .summary-section{background:#0f172a}[data-theme=dark] .summary-section h3{color:#f8fafc}[data-theme=dark] .summary-item{border-bottom-color:#334155}[data-theme=dark] .summary-label{color:#94a3b8}[data-theme=dark] .summary-value{color:#f8fafc}[data-theme=dark] .legal-status-section{border-top-color:#334155}[data-theme=dark] .legal-status-section h3{color:#f8fafc}[data-theme=dark] .legal-status-option{background:#0f172a;border-color:#334155}[data-theme=dark] .legal-status-option:hover{border-color:#60a5fa}[data-theme=dark] .legal-status-option.selected{background:#60a5fa1a;border-color:#60a5fa}[data-theme=dark] .option-label{color:#f8fafc}[data-theme=dark] .checkbox-label,[data-theme=dark] .option-description{color:#94a3b8}[data-theme=dark] .country-info{background:#60a5fa1a}[data-theme=dark] .info-label{color:#94a3b8}[data-theme=dark] .btn-secondary,[data-theme=dark] .info-value{color:#f8fafc}[data-theme=dark] .btn-secondary:hover:not(:disabled){background:#475569}[data-theme=dark] .step-actions{border-top-color:#334155}[data-theme=dark] .login-link{color:#94a3b8}[data-theme=dark] .login-link a{color:#60a5fa}[data-theme=dark] .password-requirements span{background:#334155;color:#94a3b8}[data-theme=dark] .password-requirements span.valid{background:#22c55e33;color:#4ade80}[data-theme=dark] .error-message{background:#ef444426;border-color:#ef4444;color:#fca5a5}[data-theme=dark] .code-validation.valid{background:#22c55e26;border-color:#22c55e}[data-theme=dark] .code-validation.invalid{background:#ef444426;border-color:#ef4444}[data-theme=dark] .code-validation.valid .validation-content h4{color:#4ade80}[data-theme=dark] .code-validation.invalid .validation-content h4{color:#fca5a5}[data-theme=dark] .validation-content p{color:#94a3b8}@media (max-width:768px){.registration-page{padding:10px}.registration-content{padding:20px}.pathway-cards{grid-template-columns:1fr}.countries-grid{grid-template-columns:repeat(3,1fr)}.school-types-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:auto}.confirmation-summary{grid-template-columns:1fr}.offer-box ul{flex-direction:column;gap:8px}.step-actions{flex-direction:column-reverse}.btn{width:100%}}.admin-approval-page{margin:0 auto;max-width:1400px;min-height:100vh;padding:2rem}.page-header{margin-bottom:2rem}.page-header h1{color:#1e293b;color:var(--text-primary,#1e293b);font-size:2rem;font-weight:700;margin:0 0 .5rem}.page-header p{color:#64748b;color:var(--text-secondary,#64748b);margin:0}.alert{align-items:center;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}.alert-danger{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert button{background:none;border:none;color:inherit;cursor:pointer;font-size:1.5rem;opacity:.7}.alert button:hover{opacity:1}.tabs{border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-color,#e2e8f0);margin-bottom:1.5rem}.tab,.tabs{display:flex;gap:.5rem}.tab{align-items:center;background:none;border:none;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;position:relative;transition:color .2s}.tab:hover{color:#1e293b;color:var(--text-primary,#1e293b)}.tab.active{color:#2563eb;color:var(--primary-color,#2563eb)}.tab.active:after{background:#2563eb;background:var(--primary-color,#2563eb);bottom:-2px;content:"";height:2px;left:0;position:absolute;right:0}.tab .badge{margin-left:.25rem}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.badge-warning{background:#fef3c7;color:#b45309}.badge-success{background:#d1fae5;color:#047857}.badge-danger{background:#fee2e2;color:#dc2626}.badge-secondary{background:#f1f5f9;color:#64748b}.filters-bar{align-items:flex-end;background:#f8fafc;background:var(--bg-secondary,#f8fafc);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{color:#64748b;color:var(--text-secondary,#64748b);font-size:.875rem;font-weight:500}.filter-input,.filter-select{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:6px;color:#1e293b;color:var(--text-primary,#1e293b);font-size:.875rem;min-width:150px;padding:.5rem .75rem}.filter-input{min-width:200px}.filter-input:focus,.filter-select:focus{border-color:#2563eb;border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 3px #2563eb1a;outline:none}.btn{border:none;border-radius:6px;font-size:.875rem;font-weight:500;padding:.5rem 1rem}.btn-primary{background:#2563eb;background:var(--primary-color,#2563eb)}.btn-primary:hover{background:#1d4ed8;background:var(--primary-hover,#1d4ed8)}.btn-success{background:#059669;color:#fff}.btn-success:hover{background:#047857}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-secondary{background:#f1f5f9;color:#475569}.btn-secondary:hover{background:#e2e8f0}.btn-sm{font-size:.75rem;padding:.375rem .75rem}.btn:disabled{cursor:not-allowed;opacity:.5}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top:4px solid var(--primary-color,#2563eb);height:48px;width:48px}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1.25rem;margin:0 0 .5rem}.empty-state p{color:#64748b;color:var(--text-secondary,#64748b);margin:0}.requests-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.request-card{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:12px;padding:1.5rem;transition:box-shadow .2s}.request-card:hover{box-shadow:0 4px 12px #00000014}.request-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.request-header h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1.125rem;font-weight:600;margin:0}.request-info{display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;font-size:.875rem;gap:.5rem}.info-row .label{color:#64748b;color:var(--text-secondary,#64748b);min-width:100px}.info-row .value{color:#1e293b;color:var(--text-primary,#1e293b);flex:1 1}.info-row .value.code{background:#f1f5f9;border-radius:4px;font-family:monospace;padding:.125rem .5rem}.info-row.rejection{background:#fef2f2;border-radius:6px;flex-direction:column;margin-top:.5rem;padding:.75rem}.info-row.rejection .label{color:#dc2626;font-weight:500}.request-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color,#e2e8f0);display:flex;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem}.request-actions .btn{flex:1 1;justify-content:center}.section-header{margin-bottom:1.5rem}.section-header h2{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1.25rem;font-weight:600;margin:0}.codes-table-container{overflow-x:auto}.codes-table{border-collapse:collapse;width:100%}.codes-table td,.codes-table th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e2e8f0);padding:.75rem 1rem;text-align:left}.codes-table th{background:#f8fafc;background:var(--bg-secondary,#f8fafc);color:#64748b;color:var(--text-secondary,#64748b);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.codes-table td{color:#1e293b;color:var(--text-primary,#1e293b);font-size:.875rem}.codes-table tr.used{opacity:.6}.code-cell{font-family:monospace;font-weight:600;letter-spacing:.05em}.stats-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.stat-card{background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);padding:1.5rem}.stat-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.stat-header h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:1rem;font-weight:600;margin:0}.division-type{background:#f1f5f9;background:var(--bg-secondary,#f1f5f9);border-radius:4px;color:#64748b;color:var(--text-secondary,#64748b);font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:uppercase}.stat-metrics{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.metric{border-radius:8px;padding:.75rem;text-align:center}.metric.pending{background:#fef3c7}.metric.approved{background:#d1fae5}.metric.rejected{background:#fee2e2}.metric.total{background:#dbeafe}.metric-value{color:#1e293b;color:var(--text-primary,#1e293b);display:block;font-size:1.5rem;font-weight:700}.metric-label{color:#64748b;color:var(--text-secondary,#64748b);display:block;font-size:.75rem;margin-top:.25rem}.modal-overlay{padding:1rem}.modal{background:#fff;background:var(--bg-primary,#fff);border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color,#e2e8f0)}.modal-header h2{color:#1e293b;color:var(--text-primary,#1e293b)}.close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#64748b;color:var(--text-secondary,#64748b);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;width:32px}.close-btn:hover{background:#f1f5f9;background:var(--bg-secondary,#f1f5f9)}.close-btn:hover,.modal-body p{color:#1e293b;color:var(--text-primary,#1e293b)}.modal-body p{margin:0 0 1rem}.modal-body p strong{color:#2563eb;color:var(--primary-color,#2563eb)}.modal-footer{background:var(--bg-secondary,#f8fafc);border-radius:0 0 12px 12px;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color,#e2e8f0)}.form-group{margin-bottom:1rem}.form-group input,.form-group label,.form-group textarea{color:#1e293b;color:var(--text-primary,#1e293b);font-size:.875rem}.form-group input,.form-group textarea{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:6px;font-family:inherit;padding:.75rem;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#2563eb;border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group small{color:#64748b;color:var(--text-secondary,#64748b);display:block;font-size:.75rem;margin-top:.25rem}@media (prefers-color-scheme:dark){.admin-approval-page{--bg-primary:#1e293b;--bg-secondary:#0f172a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--border-color:#334155;--primary-color:#3b82f6;--primary-hover:#2563eb}.modal,.request-card,.stat-card{background:#1e293b;border-color:#334155}.codes-table th,.filters-bar{background:#0f172a}.filter-input,.filter-select,.form-group input,.form-group textarea{background:#0f172a;border-color:#334155;color:#f1f5f9}.btn-secondary{background:#334155;color:#f1f5f9}.btn-secondary:hover{background:#475569}.info-row .value.code{background:#334155}.modal-footer{background:#0f172a}.metric.pending{background:#fbbf2433}.metric.approved{background:#10b98133}.metric.rejected{background:#ef444433}.metric.total{background:#3b82f633}.codes-table tr.used{opacity:.5}}@media (max-width:768px){.admin-approval-page{padding:1rem}.filters-bar{align-items:stretch;flex-direction:column}.filter-input,.filter-select{min-width:auto;width:100%}.requests-grid,.stats-grid{grid-template-columns:1fr}.stat-metrics{grid-template-columns:repeat(2,1fr)}.tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.tab{white-space:nowrap}.modal{margin:.5rem;max-height:calc(100vh - 1rem)}}.administration-page{margin:0 auto;max-width:1400px;padding:1.5rem}.access-denied{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh;text-align:center}.access-denied .denied-icon{font-size:4rem}.access-denied h2{color:#ef4444;color:var(--color-danger,#ef4444);font-size:1.5rem}.access-denied p{color:#6b7280;color:var(--color-text-secondary,#6b7280)}.btn-back{background:#3b82f6;background:var(--color-primary,#3b82f6);border-radius:8px;color:#fff;padding:.75rem 1.5rem;text-decoration:none;transition:background .2s}.btn-back:hover{background:#2563eb;background:var(--color-primary-dark,#2563eb)}.admin-header{background:linear-gradient(135deg,#3b82f6,#8b5cf6);background:linear-gradient(135deg,var(--color-primary,#3b82f6) 0,var(--color-secondary,#8b5cf6) 100%);border-radius:16px;color:#fff;margin-bottom:1.5rem;padding:2rem}.header-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.header-title h1{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.header-title p{font-size:.95rem;opacity:.9}.header-actions{display:flex;gap:.75rem}.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s}.btn-primary{background:#fff;color:#3b82f6;color:var(--color-primary,#3b82f6)}.btn-primary:hover{background:#f8fafc;transform:translateY(-1px)}.btn-secondary{background:#fff3;border:1px solid #ffffff4d;color:#fff}.btn-secondary:hover{background:#ffffff4d}.admin-tabs{border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--color-border,#e5e7eb);display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:0}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#6b7280;color:var(--color-text-secondary,#6b7280);cursor:pointer;font-weight:500;margin-bottom:-2px;padding:.875rem 1.25rem;transition:all .2s;white-space:nowrap}.tab-btn.active,.tab-btn:hover{color:#3b82f6;color:var(--color-primary,#3b82f6)}.tab-btn.active{border-bottom-color:#3b82f6;border-bottom-color:var(--color-primary,#3b82f6)}.stats-section{margin-bottom:2rem}.stats-grid{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{align-items:center;background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;gap:1rem;overflow:hidden;padding:1.25rem;position:relative;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-card:before{content:"";height:100%;left:0;position:absolute;top:0;width:4px}.stat-card.primary:before{background:#3b82f6;background:var(--color-primary,#3b82f6)}.stat-card.success:before{background:#10b981;background:var(--color-success,#10b981)}.stat-card.info:before{background:#06b6d4;background:var(--color-info,#06b6d4)}.stat-card.warning:before{background:#f59e0b;background:var(--color-warning,#f59e0b)}.stat-card.danger:before{background:#ef4444;background:var(--color-danger,#ef4444)}.stat-card.accent:before{background:#8b5cf6;background:var(--color-accent,#8b5cf6)}.stat-icon{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:10px;display:flex;font-size:2rem;height:50px;justify-content:center;width:50px}.stat-content{flex:1 1}.stat-value{color:#1f2937;color:var(--color-text,#1f2937);display:block;font-size:1.5rem;font-weight:700}.stat-label{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.85rem}.stat-trend{background:#d1fae5;background:var(--color-success-light,#d1fae5);border-radius:4px;color:#10b981;color:var(--color-success,#10b981);font-size:.75rem;padding:.25rem .5rem}.stat-trend.positive{background:#d1fae5;color:#10b981}.stat-trend.negative{background:#fee2e2;color:#ef4444}.quick-actions-section{margin-bottom:2rem}.section-title{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.25rem;font-weight:600;margin-bottom:1rem}.quick-actions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.quick-action-card{align-items:center;background:#fff;background:var(--color-surface,#fff);border-left:4px solid var(--action-color,var(--color-primary));border-radius:12px;box-shadow:0 1px 3px #0000001a;color:#1f2937;color:var(--color-text,#1f2937);display:flex;gap:1rem;padding:1.25rem;text-decoration:none;transition:all .2s}.quick-action-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.quick-action-card .action-icon{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:10px;display:flex;font-size:1.75rem;height:48px;justify-content:center;width:48px}.quick-action-card .action-content h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.quick-action-card .action-content p{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.85rem}.quick-action-card .action-arrow{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:1.25rem;margin-left:auto;transition:transform .2s}.quick-action-card:hover .action-arrow{transform:translateX(4px)}.activity-section{margin-bottom:2rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.view-all-link{color:#3b82f6;color:var(--color-primary,#3b82f6);font-size:.9rem;font-weight:500;text-decoration:none}.view-all-link:hover{text-decoration:underline}.activity-list{background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.activity-item{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);display:flex;gap:1rem;padding:1rem 1.25rem;transition:background .2s}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:#f8fafc;background:var(--color-background,#f8fafc)}.activity-icon{align-items:center;border-radius:10px;color:#fff;display:flex;font-size:1.25rem;height:40px;justify-content:center;width:40px}.activity-content{flex:1 1}.activity-content h4{font-size:.95rem;font-weight:600;margin-bottom:.25rem}.activity-content p{font-size:.85rem}.activity-content p,.activity-time{color:#6b7280;color:var(--color-text-secondary,#6b7280)}.activity-time{font-size:.8rem;white-space:nowrap}.students-section{background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.section-actions{gap:1rem}.search-box,.section-actions{align-items:center;display:flex}.search-box{background:#f8fafc;background:var(--color-background,#f8fafc);border:1px solid #e5e7eb;border:1px solid var(--color-border,#e5e7eb);border-radius:8px;gap:.5rem;padding:.5rem 1rem}.search-box .search-icon{color:#6b7280;color:var(--color-text-secondary,#6b7280)}.search-box input{background:#0000;border:none;font-size:.9rem;min-width:200px;outline:none}.students-table-container{margin-top:1rem;overflow-x:auto}.students-table{border-collapse:collapse;width:100%}.students-table td,.students-table th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);padding:.875rem 1rem;text-align:left}.students-table th{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.students-table tbody tr:hover{background:#f8fafc;background:var(--color-background,#f8fafc)}.student-name{align-items:center;display:flex;gap:.75rem}.student-name .avatar{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:50%;display:flex;height:32px;justify-content:center;width:32px}.status-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.status-badge.active{background:#d1fae5;color:#10b981}.status-badge.pending{background:#fef3c7;color:#f59e0b}.status-badge.inactive{background:#fee2e2;color:#ef4444}.table-actions{display:flex;gap:.5rem}.action-btn{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border:none;border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.action-btn:hover{background:#3b82f6;background:var(--color-primary,#3b82f6);color:#fff}.action-btn.view:hover{background:#06b6d4;background:var(--color-info,#06b6d4)}.action-btn.edit:hover{background:#f59e0b;background:var(--color-warning,#f59e0b)}.empty-state{color:#6b7280;color:var(--color-text-secondary,#6b7280);padding:3rem;text-align:center}.empty-state .empty-icon{display:block;font-size:3rem;margin-bottom:1rem}.pagination{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--color-border,#e5e7eb);display:flex;gap:1rem;justify-content:center;margin-top:1.5rem;padding-top:1rem}.pagination-btn{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--color-border,#e5e7eb);border-radius:6px;cursor:pointer;padding:.5rem 1rem;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#3b82f6;background:var(--color-primary,#3b82f6);border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);color:#fff}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-info{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.9rem}.enrollments-section{background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.enrollments-overview{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:1.5rem 0}.enrollment-card{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:12px;display:flex;gap:1rem;padding:1.25rem}.enrollment-card .card-icon{align-items:center;border-radius:10px;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.enrollment-card .card-icon.pending{background:#fef3c7}.enrollment-card .card-icon.approved{background:#d1fae5}.enrollment-card .card-icon.incomplete{background:#dbeafe}.enrollment-card .card-value{display:block;font-size:1.5rem;font-weight:700}.enrollment-card .card-label{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.85rem}.info-message{align-items:flex-start;background:#dbeafe;border-radius:8px;color:#1e40af;display:flex;gap:.75rem;padding:1rem}.info-message .info-icon{font-size:1.25rem}.info-message a{color:#1e40af;font-weight:500}.payments-section{background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.payments-overview{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:1.5rem 0}.payment-summary-card{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:12px;padding:1.5rem}.payment-summary-card h3{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.9rem;font-weight:500;margin-bottom:.5rem}.payment-summary-card .amount{display:block;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.payment-summary-card .count,.payment-summary-card .period{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.8rem}.payment-summary-card.total{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.payment-summary-card.total h3{color:#ffffffe6}.payment-summary-card.total .period{color:#fffc}.payment-summary-card.pending{background:#fef3c7}.payment-summary-card.pending .amount{color:#b45309}.progress-bar{background:#e5e7eb;background:var(--color-border,#e5e7eb);border-radius:4px;height:8px;margin-top:.5rem;overflow:hidden}.progress-fill{background:#10b981;background:var(--color-success,#10b981);border-radius:4px;height:100%;transition:width .3s ease}.payment-actions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:1.5rem}.payment-action-card{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:12px;color:#1f2937;color:var(--color-text,#1f2937);display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;text-decoration:none;transition:all .2s}.payment-action-card:hover{background:#3b82f6;background:var(--color-primary,#3b82f6);color:#fff;transform:translateY(-2px)}.payment-action-card .action-icon{font-size:2rem}.payment-action-card .action-label{font-size:.9rem;font-weight:500}@media (max-width:768px){.administration-page{padding:1rem}.header-content{flex-direction:column;text-align:center}.header-actions{justify-content:center;width:100%}.admin-tabs{-webkit-overflow-scrolling:touch;justify-content:flex-start}.section-header{align-items:flex-start;flex-direction:column;gap:1rem}.section-actions{flex-direction:column;width:100%}.search-box{width:100%}.search-box input{min-width:auto;width:100%}.quick-actions-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}.student-name.clickable{cursor:pointer;transition:all .2s}.student-name.clickable:hover{color:#3b82f6;color:var(--color-primary,#3b82f6)}.student-name.clickable:hover .avatar{box-shadow:0 2px 8px #3b82f64d;transform:scale(1.1)}.student-name .avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}.student-name .name-text{font-weight:500}.action-btn.payment:hover{background:#10b981;background:var(--color-success,#10b981)}.modal-content.modal-large{max-width:700px;width:95%}.form-steps{background:#f8fafc;background:var(--color-background,#f8fafc);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);display:flex;gap:2rem;justify-content:center;padding:1rem 1.5rem}.form-steps .step{align-items:center;cursor:pointer;display:flex;gap:.5rem;opacity:.5;transition:all .2s}.form-steps .step.active{opacity:1}.form-steps .step-number{align-items:center;background:#e5e7eb;background:var(--color-border,#e5e7eb);border-radius:50%;display:flex;font-size:.85rem;font-weight:600;height:28px;justify-content:center;width:28px}.form-steps .step.active .step-number{background:#3b82f6;background:var(--color-primary,#3b82f6);color:#fff}.form-steps .step-label{font-size:.9rem;font-weight:500}.photo-upload-section{display:flex;justify-content:center;margin-bottom:1.5rem}.photo-preview{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border:3px dashed #e5e7eb;border:3px dashed var(--color-border,#e5e7eb);border-radius:50%;cursor:pointer;display:flex;height:120px;justify-content:center;overflow:hidden;transition:all .2s;width:120px}.photo-preview:hover{background:#3b82f60d;border-color:#3b82f6;border-color:var(--color-primary,#3b82f6)}.photo-preview img{height:100%;object-fit:cover;width:100%}.photo-placeholder{color:#6b7280;color:var(--color-text-secondary,#6b7280);text-align:center}.photo-placeholder span{display:block;font-size:2rem;margin-bottom:.25rem}.photo-placeholder p{font-size:.8rem;margin:0}.form-section{animation:fadeIn .3s ease}.form-section-title{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.1rem;font-weight:600;margin-bottom:1rem}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.form-group textarea{border:1px solid #e5e7eb;border:1px solid var(--color-border,#e5e7eb);border-radius:8px;font-family:inherit;font-size:.95rem;min-height:80px;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group textarea:focus{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.student-profile{padding:0}.profile-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.profile-header,.profile-photo{align-items:center;display:flex}.profile-photo{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:50%;flex-shrink:0;height:100px;justify-content:center;overflow:hidden;width:100px}.profile-photo img{height:100%;object-fit:cover;width:100%}.photo-placeholder-large{font-size:3rem}.profile-info h3{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.profile-info .matricule{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-family:monospace;font-size:.9rem;margin-bottom:.5rem}.profile-details{display:flex;flex-direction:column;gap:1.5rem}.detail-section{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:12px;padding:1.25rem}.detail-section h4{color:#1f2937;color:var(--color-text,#1f2937);font-size:1rem;font-weight:600;margin-bottom:1rem}.detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item.full-width{grid-column:1/-1}.detail-item .label{color:#6b7280;color:var(--color-text-secondary,#6b7280);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.detail-item .value{color:#1f2937;color:var(--color-text,#1f2937);font-size:.95rem;font-weight:500}.modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease;background:#fff;background:var(--color-surface,#fff);border-radius:16px;box-shadow:0 20px 40px #0003;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border,#e5e7eb);display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.modal-close{align-items:center;background:#f8fafc;background:var(--color-background,#f8fafc);border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;transition:all .2s;width:32px}.modal-close:hover{background:#ef4444;background:var(--color-danger,#ef4444);color:#fff}.modal-body{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:#1f2937;color:var(--color-text,#1f2937);display:block;margin-bottom:.5rem}.form-group input,.form-group select{background:#fff;background:var(--color-surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--color-border,#e5e7eb);border-radius:8px;font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group input::placeholder{color:#9ca3af;color:var(--color-text-secondary,#9ca3af)}.modal-footer{background:#f8fafc;background:var(--color-background,#f8fafc);border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;border-top:1px solid var(--color-border,#e5e7eb);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.btn-cancel,.btn-confirm{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-cancel{background:#f3f4f6;background:var(--color-background,#f3f4f6);color:#6b7280;color:var(--color-text-secondary,#6b7280)}.btn-cancel:hover{background:#e5e7eb;background:var(--color-border,#e5e7eb)}.btn-confirm{background:#3b82f6;background:var(--color-primary,#3b82f6);color:#fff}.btn-confirm:hover{background:#2563eb;background:var(--color-primary-dark,#2563eb);transform:translateY(-1px)}@media (prefers-color-scheme:dark){.administration-page{--color-surface:#1f2937;--color-background:#111827;--color-text:#f9fafb;--color-text-secondary:#9ca3af;--color-border:#374151}.modal-content{background:#1f2937}.form-group input,.form-group select{background:#111827;color:#f9fafb}}.classroom-plan-page{margin:0 auto;max-width:1600px;min-height:calc(100vh - 70px);padding:1.5rem}.classroom-plan-header{align-items:center;background:linear-gradient(135deg,#0066b3,#004a82);border-radius:16px;box-shadow:0 4px 20px #0066b34d;color:#fff;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.classroom-plan-header h1{align-items:center;display:flex;font-size:1.4rem;font-weight:700;gap:.5rem;margin:0}.header-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.class-selector{background:#ffffff26;border:2px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;min-width:140px;outline:none;padding:.5rem 1rem}.class-selector option{background:#fff;color:#333}.class-selector:focus{border-color:#fff9}.btn-config,.btn-print{align-items:center;background:#ffffff26;border:2px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:.4rem;padding:.5rem 1rem;transition:all .2s}.btn-config:hover,.btn-print:hover{background:#ffffff40;border-color:#ffffff80}.save-indicator{align-items:center;animation:fadeInOut 2s forwards;display:flex;font-size:.8rem;gap:.3rem;opacity:.8}@keyframes fadeInOut{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.classroom-plan-body{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:1fr 310px}.config-overlay{animation:fadeIn .2s;background:#0006;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.config-panel{animation:slideInLeft .3s ease-out;background:#fff;box-shadow:4px 0 30px #00000026;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:360px;z-index:1001}@keyframes slideInLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.config-panel-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.config-panel-header h3{align-items:center;display:flex;font-size:1.1rem;font-weight:700;gap:.5rem;margin:0}.config-close{background:none;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:1.3rem;padding:.25rem}.config-close:hover{background:#e9ecef}.config-panel-body{flex:1 1;overflow-y:auto;padding:1.5rem}.config-group{margin-bottom:1.5rem}.config-group label{color:#555;display:block;font-size:.85rem;font-weight:600;margin-bottom:.5rem}.config-slider-row{align-items:center;display:flex;gap:.75rem}.config-slider-row input[type=range]{accent-color:#0066b3;flex:1 1;height:6px}.config-slider-value{align-items:center;background:#0066b3;border-radius:10px;color:#fff;display:flex;font-size:.95rem;font-weight:700;height:36px;justify-content:center;min-width:36px}.config-radio-group{display:flex;gap:.5rem}.config-radio-option{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:600;justify-content:center;padding:.6rem;transition:all .2s}.config-radio-option.active{background:#e8f4fd;border-color:#0066b3;color:#0066b3}.config-radio-option:hover:not(.active){background:#f8f9fa;border-color:#adb5bd}.config-desk-group{display:flex;gap:.5rem}.config-desk-option{background:#fff;border:2px solid #dee2e6;border-radius:10px;cursor:pointer;flex:1 1;font-size:.8rem;font-weight:600;padding:.5rem;text-align:center;transition:all .2s}.config-desk-option.active{background:#e8f4fd;border-color:#0066b3;color:#0066b3}.config-desk-option:hover:not(.active){border-color:#adb5bd}.btn-reset{align-items:center;background:#fff;border:2px solid #c62828;border-radius:10px;color:#c62828;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.4rem;justify-content:center;margin-top:1rem;padding:.7rem;transition:all .2s;width:100%}.btn-reset:hover{background:#c62828;color:#fff}.classroom-grid-container{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;min-height:500px;padding:2rem}.teacher-desk-area{margin-bottom:2rem;text-align:center}.teacher-desk-label{color:#999;font-size:.7rem;letter-spacing:3px;margin-bottom:.5rem;text-transform:uppercase}.teacher-desk{align-items:center;background:linear-gradient(135deg,#0066b3,#004a82);border-radius:12px;box-shadow:0 4px 15px #0066b34d;color:#fff;display:inline-flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 2.5rem}.classroom-rows{align-items:center;display:flex;flex-direction:column;gap:1.25rem}.classroom-row{display:flex;gap:1rem;justify-content:center;width:100%}.classroom-table{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;display:flex;gap:.35rem;padding:.5rem;position:relative;transition:all .2s}.classroom-table:after{background:#0000000a;border-radius:12px;bottom:-3px;content:"";height:100%;left:3px;position:absolute;right:-3px;z-index:-1}.seat-card{align-items:center;border-radius:10px;cursor:grab;display:flex;flex-direction:column;justify-content:center;min-height:100px;overflow:hidden;position:relative;transition:all .2s;width:90px}.seat-card:active{cursor:grabbing}.seat-card--empty{background:#f8f9fa80;border:2px dashed #ced4da;cursor:default}.seat-card--empty .seat-empty-icon{color:#ced4da;font-size:1.5rem}.seat-card--occupied{background:#fff;border:2px solid #e9ecef;box-shadow:0 1px 4px #0000000f}.seat-card--occupied:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-3px);z-index:10}.seat-card[data-performance=excellent]{background:#f0fdf4;border-left:4px solid #228b22}.seat-card[data-performance=good]{background:#eff6ff;border-left:4px solid #1565c0}.seat-card[data-performance=average]{background:#fffbeb;border-left:4px solid #f9a825}.seat-card[data-performance=struggling]{background:#fef2f2;border-left:4px solid #c62828}.seat-avatar{align-items:center;background:linear-gradient(135deg,#0066b3,#4caf50);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:40px;justify-content:center;margin-bottom:.25rem;overflow:hidden;width:40px}.seat-avatar img{height:100%;object-fit:cover;width:100%}.seat-name{color:#333;font-size:.65rem;font-weight:600;line-height:1.2;max-width:80px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.payment-alert{font-size:.7rem;line-height:1;position:absolute;right:3px;top:3px}.payment-alert--urgent:after{animation:pulse 1.5s infinite;background:#c62828;border-radius:50%;content:"";height:7px;position:absolute;right:-2px;top:-2px;width:7px}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}to{opacity:1;transform:scale(1)}}.seat-tooltip{background:#1a1a2e;border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 4px 12px #0003;color:#fff;font-size:.72rem;opacity:0;padding:.5rem .75rem;pointer-events:none;transition:opacity .15s;white-space:nowrap;z-index:100}.seat-tooltip,.seat-tooltip:after{left:50%;position:absolute;transform:translateX(-50%)}.seat-tooltip:after{border:5px solid #0000;border-top-color:#1a1a2e;content:"";top:100%}.seat-card--occupied:hover .seat-tooltip{opacity:1}.seat-card--drag-over{background:#0066b30f!important;border:2px dashed #0066b3!important;transform:scale(1.03)}.seat-card--dragging{opacity:.3}.drag-overlay-card{background:#fff;border:2px solid #0066b3;border-radius:10px;box-shadow:0 12px 35px #0066b34d;cursor:grabbing;flex-direction:column;min-height:100px;transform:rotate(3deg);width:90px}.drag-overlay-card,.drag-overlay-card .seat-avatar{align-items:center;display:flex;justify-content:center}.drag-overlay-card .seat-avatar{background:linear-gradient(135deg,#0066b3,#4caf50);border-radius:50%;color:#fff;font-size:.75rem;font-weight:700;height:40px;margin-bottom:.25rem;width:40px}.drag-overlay-card .seat-name{color:#333;font-size:.65rem;font-weight:600;text-align:center}.classroom-plan-sidebar{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;display:flex;flex-direction:column;max-height:calc(100vh - 180px);position:-webkit-sticky;position:sticky;top:90px}.sidebar-header{border-bottom:1px solid #e9ecef;padding:1rem 1.25rem}.sidebar-title{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.sidebar-title h3{align-items:center;display:flex;font-size:1rem;font-weight:700;gap:.4rem;margin:0}.sidebar-counter{background:#0066b3;border-radius:20px;color:#fff;font-size:.75rem;font-weight:700;padding:.15rem .5rem}.sidebar-search{position:relative}.sidebar-search input{border:2px solid #e9ecef;border-radius:10px;box-sizing:border-box;font-size:.85rem;outline:none;padding:.5rem .75rem .5rem 2rem;transition:border-color .2s;width:100%}.sidebar-search input:focus{border-color:#0066b3}.sidebar-search-icon{color:#999;font-size:.8rem;left:.6rem;position:absolute;top:50%;transform:translateY(-50%)}.sidebar-filters{border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:.4rem;padding:.75rem 1.25rem}.filter-chip{background:#fff;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;font-size:.7rem;font-weight:600;padding:.25rem .6rem;transition:all .2s;white-space:nowrap}.filter-chip.active{background:#0066b3;border-color:#0066b3;color:#fff}.filter-chip:hover:not(.active){border-color:#0066b3;color:#0066b3}.sidebar-student-list{flex:1 1;overflow-y:auto;padding:.75rem}.sidebar-student-card{align-items:center;background:#fff;border:2px solid #f0f0f0;border-radius:10px;cursor:grab;display:flex;gap:.6rem;margin-bottom:.5rem;padding:.6rem;transition:all .2s}.sidebar-student-card:hover{background:#f7fbff;border-color:#0066b3;transform:translateX(3px)}.sidebar-student-card:active{cursor:grabbing}.sidebar-student-card--dragging{opacity:.3}.sidebar-student-avatar{align-items:center;background:linear-gradient(135deg,#0066b3,#4caf50);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.65rem;font-weight:700;height:36px;justify-content:center;overflow:hidden;width:36px}.sidebar-student-avatar img{height:100%;object-fit:cover;width:100%}.sidebar-student-info{flex:1 1;min-width:0}.sidebar-student-name{color:#333;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-student-matricule{color:#999;font-size:.65rem}.sidebar-student-badges{align-items:center;display:flex;flex-shrink:0;gap:.25rem}.performance-dot{border-radius:50%;height:10px;width:10px}.performance-dot--excellent{background:#228b22}.performance-dot--good{background:#1565c0}.performance-dot--average{background:#f9a825}.performance-dot--struggling{background:#c62828}.performance-dot--unknown{background:#ced4da}.sidebar-payment-icon{font-size:.75rem}.sidebar-empty{color:#999;padding:2rem 1rem;text-align:center}.sidebar-empty-icon{font-size:2rem;margin-bottom:.5rem}.sidebar-empty p{font-size:.85rem;margin:0}.classroom-legend{background:#f8f9fa;border-radius:10px;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1.5rem;padding:.75rem}.classroom-legend,.legend-item{align-items:center;display:flex}.legend-item{color:#555;font-size:.72rem;font-weight:600;gap:.35rem}.legend-color{border-radius:4px;height:14px;width:14px}.legend-color--excellent{background:#228b22}.legend-color--good{background:#1565c0}.legend-color--average{background:#f9a825}.legend-color--struggling{background:#c62828}.classroom-empty-state{align-items:center;color:#999;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.classroom-empty-state .empty-icon{font-size:4rem;margin-bottom:1rem}.classroom-empty-state h3{color:#555;font-size:1.2rem;margin:0 0 .5rem}.classroom-empty-state p{font-size:.9rem;margin:0 0 1.5rem}.btn-start-config{align-items:center;background:#0066b3;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.4rem;padding:.7rem 1.5rem;transition:all .2s}.btn-start-config:hover{background:#004a82;box-shadow:0 4px 12px #0066b34d;transform:translateY(-2px)}@media print{.btn-config,.btn-print,.classroom-legend,.classroom-plan-header .header-controls,.classroom-plan-sidebar,.config-overlay,.config-panel{display:none!important}.classroom-plan-page{padding:0}.classroom-plan-header{background:none!important;border-bottom:2px solid #333;border-radius:0;box-shadow:none!important;color:#333!important;padding:.5rem!important}.classroom-plan-body{display:block}.classroom-grid-container{border:1px solid #ccc;box-shadow:none}.seat-card--occupied{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-info{color:#666;display:block!important;font-size:.8rem;margin-top:1rem;text-align:center}}.print-info{display:none}@media (max-width:1024px){.classroom-plan-body{grid-template-columns:1fr}.classroom-plan-sidebar{max-height:400px;position:static}.config-panel{width:300px}}@media (max-width:768px){.classroom-plan-header{align-items:flex-start;flex-direction:column}.header-controls{width:100%}.classroom-table{gap:.25rem;padding:.35rem}.seat-card{min-height:80px;width:70px}.seat-avatar{font-size:.6rem;height:30px;width:30px}.seat-name{font-size:.55rem}}.mobile-tap-banner{align-items:center;animation:slideDown .25s ease-out;background:linear-gradient(135deg,#0066b3,#0080e0);border-radius:12px;box-shadow:0 4px 16px #0066b359;color:#fff;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tap-banner-content{align-items:center;display:flex;flex:1 1;gap:.6rem;min-width:0}.tap-banner-avatar{align-items:center;background:#ffffff40;border:2px solid #ffffff80;border-radius:50%;display:flex;flex-shrink:0;font-size:.7rem;font-weight:700;height:36px;justify-content:center;width:36px}.tap-banner-info{display:flex;flex-direction:column;min-width:0}.tap-banner-info strong{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tap-banner-info span{font-size:.7rem;opacity:.85}.tap-banner-actions{display:flex;flex-shrink:0;gap:.4rem}.tap-btn-cancel,.tap-btn-remove{background:#ffffff26;border:2px solid #fff6;border-radius:8px;color:#fff;cursor:pointer;font-size:.75rem;font-weight:600;padding:.4rem .75rem;white-space:nowrap}.tap-btn-remove{background:#ff6b6b40;border-color:#ff6b6b}.tap-btn-remove:active{background:#ff6b6b80}.tap-btn-cancel:active{background:#ffffff4d}.sidebar-student-card--selected{background:#e8f4fd!important;border-color:#0066b3!important;box-shadow:0 0 0 3px #0066b333;transform:scale(.97)}.seat-card--tap-target{animation:tapPulse 1.5s ease-in-out infinite;background:#0066b314!important;border-color:#0066b3!important;border-style:dashed!important}@keyframes tapPulse{0%,to{box-shadow:0 0 0 0 #0066b34d}50%{box-shadow:0 0 0 6px #0066b300}}.mobile-fab{align-items:center;background:linear-gradient(135deg,#0066b3,#004a82);border:none;border-radius:28px;bottom:24px;box-shadow:0 6px 24px #0066b373;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.4rem;height:56px;justify-content:center;min-width:56px;padding:0 1.25rem;position:fixed;right:20px;transition:transform .2s,box-shadow .2s;width:auto;z-index:900}.mobile-fab:active{box-shadow:0 3px 12px #0066b359;transform:scale(.95)}.mobile-sidebar-overlay{animation:fadeIn .2s;background:#00000073;bottom:0;left:0;position:fixed;right:0;top:0;z-index:950}.mobile-sidebar-sheet{animation:sheetSlideUp .3s ease-out;background:#fff;border-radius:20px 20px 0 0;bottom:0;box-shadow:0 -4px 30px #0003;display:flex;flex-direction:column;left:0;max-height:75vh;position:fixed;right:0;z-index:960}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-sheet-handle{cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:12px 0 4px}.sheet-handle-bar{background:#ccc;border-radius:2px;height:4px;width:40px}.mobile-sidebar-sheet .sidebar-student-list{-webkit-overflow-scrolling:touch;max-height:calc(75vh - 200px);overflow-y:auto;padding-bottom:20px}.mobile-sidebar-sheet .sidebar-student-card{min-height:52px}.config-panel--mobile{border-radius:0;width:100%!important}.config-panel--mobile .config-panel-body{padding-bottom:2rem}@media (max-width:768px){.classroom-plan-page{padding:.75rem .75rem 90px}.classroom-plan-header{border-radius:12px;margin-bottom:.75rem;padding:.75rem 1rem}.classroom-plan-header h1{font-size:1.1rem}.header-controls{gap:.5rem}.class-selector{font-size:.85rem;min-width:100px;padding:.4rem .6rem}.btn-config{font-size:.8rem;padding:.4rem .6rem}.classroom-grid-container{-webkit-overflow-scrolling:touch;border-radius:12px;min-height:auto;overflow-x:auto;padding:1rem}.classroom-row{gap:.5rem}.teacher-desk-area{margin-bottom:1rem}.teacher-desk{font-size:.8rem;padding:.5rem 1.5rem}.classroom-rows{gap:.75rem}.seat-card{-webkit-tap-highlight-color:transparent;min-height:72px;touch-action:manipulation;width:64px}.seat-card--empty{cursor:pointer}.seat-avatar{font-size:.55rem;height:28px;width:28px}.seat-name{font-size:.5rem;max-width:58px}.classroom-legend{gap:.5rem;margin-top:1rem;padding:.5rem}.legend-item{font-size:.65rem}.classroom-plan-body{grid-template-columns:1fr}.classroom-plan-sidebar{display:none}.filter-chip{font-size:.75rem;padding:.4rem .75rem}.mobile-sidebar-sheet .sidebar-student-card{gap:.75rem;padding:.75rem}.mobile-sidebar-sheet .sidebar-student-avatar{font-size:.7rem;height:40px;width:40px}.mobile-sidebar-sheet .sidebar-student-name{font-size:.9rem}.mobile-sidebar-sheet .sidebar-student-matricule{font-size:.7rem}}@media (max-width:380px){.seat-card{min-height:60px;width:52px}.seat-avatar{font-size:.5rem;height:24px;width:24px}.seat-name{font-size:.45rem;max-width:46px}.classroom-table{gap:.2rem;padding:.25rem}.mobile-tap-banner{flex-wrap:wrap;padding:.6rem .75rem}.tap-banner-info strong{font-size:.78rem}}[data-theme=dark] .classroom-plan-page{color:#e2e8f0}[data-theme=dark] .classroom-plan-header{background:linear-gradient(135deg,#1e40af,#1e3a5f);box-shadow:0 4px 20px #0006}[data-theme=dark] .class-selector{background:#ffffff1a;border-color:#fff3}[data-theme=dark] .classroom-grid-container{background:#1e293b;box-shadow:0 2px 12px #0006}[data-theme=dark] .classroom-table{background:#253347;border-color:#334155}[data-theme=dark] .classroom-table:after{background:#00000026}[data-theme=dark] .seat-card--empty{background:#1e293b80;border-color:#334155}[data-theme=dark] .seat-card--empty .seat-empty-icon{color:#475569}[data-theme=dark] .seat-card--occupied{background:#1e293b;border-color:#334155;box-shadow:0 1px 4px #0003}[data-theme=dark] .seat-card--occupied:hover{box-shadow:0 6px 20px #0000004d}[data-theme=dark] .seat-card[data-performance=excellent]{background:#228b221f;border-left-color:#34d399}[data-theme=dark] .seat-card[data-performance=good]{background:#1565c01f;border-left-color:#60a5fa}[data-theme=dark] .seat-card[data-performance=average]{background:#f9a8251f;border-left-color:#fbbf24}[data-theme=dark] .seat-card[data-performance=struggling]{background:#c628281f;border-left-color:#f87171}[data-theme=dark] .seat-name{color:#e2e8f0}[data-theme=dark] .seat-tooltip{background:#0f172a;box-shadow:0 4px 12px #0006}[data-theme=dark] .seat-tooltip:after{border-top-color:#0f172a}[data-theme=dark] .teacher-desk{background:linear-gradient(135deg,#1e40af,#1e3a5f);box-shadow:0 4px 15px #0000004d}[data-theme=dark] .teacher-desk-label{color:#64748b}[data-theme=dark] .seat-card--drag-over{background:#60a5fa14!important;border-color:#60a5fa!important}[data-theme=dark] .drag-overlay-card{background:#1e293b;border-color:#60a5fa;box-shadow:0 12px 35px #00000080}[data-theme=dark] .drag-overlay-card .seat-name{color:#e2e8f0}[data-theme=dark] .classroom-plan-sidebar{background:#1e293b;box-shadow:0 2px 12px #0006}[data-theme=dark] .sidebar-header{border-bottom-color:#334155}[data-theme=dark] .sidebar-title h3{color:#e2e8f0}[data-theme=dark] .sidebar-search input{background:#0f172a;border-color:#334155;color:#e2e8f0}[data-theme=dark] .sidebar-search input::placeholder{color:#64748b}[data-theme=dark] .sidebar-filters{border-bottom-color:#334155}[data-theme=dark] .filter-chip{background:#0f172a;border-color:#334155;color:#cbd5e1}[data-theme=dark] .filter-chip.active{background:#1e40af;border-color:#1e40af;color:#fff}[data-theme=dark] .filter-chip:hover:not(.active){border-color:#60a5fa;color:#60a5fa}[data-theme=dark] .sidebar-student-card{background:#0f172a;border-color:#334155}[data-theme=dark] .sidebar-student-card:hover{background:#1a2744;border-color:#60a5fa}[data-theme=dark] .sidebar-student-name{color:#e2e8f0}[data-theme=dark] .sidebar-empty,[data-theme=dark] .sidebar-student-matricule{color:#64748b}[data-theme=dark] .classroom-legend{background:#1e293b}[data-theme=dark] .legend-item{color:#cbd5e1}[data-theme=dark] .classroom-empty-state{color:#64748b}[data-theme=dark] .classroom-empty-state h3{color:#e2e8f0}[data-theme=dark] .config-panel{background:#1e293b;box-shadow:4px 0 30px #0006}[data-theme=dark] .config-panel-header{background:#0f172a;border-bottom-color:#334155}[data-theme=dark] .config-panel-header h3{color:#e2e8f0}[data-theme=dark] .config-close{color:#94a3b8}[data-theme=dark] .config-close:hover{background:#334155}[data-theme=dark] .config-group label{color:#94a3b8}[data-theme=dark] .config-slider-row input[type=range]{accent-color:#60a5fa}[data-theme=dark] .config-radio-option{background:#0f172a;border-color:#334155;color:#cbd5e1}[data-theme=dark] .config-radio-option.active{background:#3b82f626;border-color:#3b82f6;color:#60a5fa}[data-theme=dark] .config-desk-option{background:#0f172a;border-color:#334155;color:#cbd5e1}[data-theme=dark] .config-desk-option.active{background:#3b82f626;border-color:#3b82f6;color:#60a5fa}[data-theme=dark] .config-overlay{background:#0009}[data-theme=dark] .btn-reset{background:#0000;border-color:#f87171;color:#f87171}[data-theme=dark] .btn-reset:hover{background:#f87171;color:#fff}[data-theme=dark] .mobile-sidebar-sheet{background:#1e293b}[data-theme=dark] .sheet-handle-bar{background:#475569}[data-theme=dark] .mobile-sidebar-overlay{background:#000000a6}[data-theme=dark] .mobile-tap-banner{background:linear-gradient(135deg,#1e3a5f,#0f172a);box-shadow:0 4px 16px #00000080}[data-theme=dark] .sidebar-student-card--selected{background:#1a2744!important;border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f633}[data-theme=dark] .seat-card--tap-target{background:#3b82f614!important;border-color:#3b82f6!important}.student-modal-overlay{align-items:center;animation:fadeIn .2s;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:2000}.student-modal{animation:modalSlideUp .3s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000040;max-height:85vh;max-width:440px;overflow-y:auto;width:100%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.student-modal-header{padding:1.5rem 1.5rem 1rem;position:relative;text-align:center}.student-modal-close{align-items:center;background:#f1f5f9;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:1.1rem;height:32px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s;width:32px}.student-modal-close:hover{background:#e2e8f0;color:#1e293b}.student-modal-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:1.4rem;font-weight:700;height:72px;justify-content:center;margin:0 auto .75rem;overflow:hidden;width:72px}.student-modal-avatar img{height:100%;object-fit:cover;width:100%}.student-modal-avatar--M{background:linear-gradient(135deg,#0066b3,#1e88e5)}.student-modal-avatar--F{background:linear-gradient(135deg,#e91e63,#f06292)}.student-modal-header h2{color:#1e293b;font-size:1.2rem;font-weight:700;margin:0 0 .25rem}.student-modal-header .student-modal-matricule{color:#64748b;font-size:.8rem}.student-modal-header .student-modal-class{background:#eef2ff;border-radius:20px;color:#3b82f6;display:inline-block;font-size:.75rem;font-weight:600;margin-top:.4rem;padding:.2rem .75rem}.student-modal-perf{align-items:center;border-radius:20px;display:inline-flex;font-size:.78rem;font-weight:600;gap:.4rem;margin-top:.5rem;padding:.3rem .75rem}.student-modal-perf--excellent{background:#dcfce7;color:#166534}.student-modal-perf--good{background:#dbeafe;color:#1e40af}.student-modal-perf--average{background:#fef3c7;color:#92400e}.student-modal-perf--struggling{background:#fee2e2;color:#991b1b}.student-modal-perf--unknown{background:#f1f5f9;color:#64748b}.student-modal-body{padding:0 1.5rem 1.5rem}.student-modal-section{margin-bottom:1rem}.student-modal-section-title{border-bottom:1px solid #f1f5f9;color:#94a3b8;font-size:.7rem;font-weight:700;letter-spacing:1.5px;margin-bottom:.5rem;padding-bottom:.35rem;text-transform:uppercase}.student-modal-row{align-items:center;display:flex;justify-content:space-between;padding:.4rem 0}.student-modal-label{color:#64748b;font-size:.82rem}.student-modal-value{color:#1e293b;font-size:.82rem;font-weight:600}.student-modal-payment{align-items:center;border-radius:10px;display:flex;justify-content:space-between;margin-top:.5rem;padding:.75rem}.student-modal-payment--ok{background:#dcfce7;color:#166534}.student-modal-payment--late{background:#fef3c7;color:#92400e}.student-modal-payment--defaulting{background:#fee2e2;color:#991b1b}.student-modal-payment-label{font-size:.82rem;font-weight:600}.student-modal-payment-amount{font-size:.9rem;font-weight:700}.student-modal-actions{display:flex;gap:.5rem;padding:0 1.5rem 1.5rem}.student-modal-actions button{align-items:center;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:.82rem;font-weight:600;gap:.3rem;justify-content:center;padding:.6rem;transition:all .2s}.btn-modal-unseat{background:#fff;border:2px solid #e2e8f0;color:#64748b}.btn-modal-unseat:hover{background:#fef2f2;border-color:#f87171;color:#ef4444}.btn-modal-close{background:#0066b3;border:2px solid #0066b3;color:#fff}.btn-modal-close:hover{background:#004a82;border-color:#004a82}[data-theme=dark] .student-modal{background:#1e293b}[data-theme=dark] .student-modal-close{background:#334155;color:#94a3b8}[data-theme=dark] .student-modal-close:hover{background:#475569;color:#e2e8f0}[data-theme=dark] .student-modal-header h2{color:#f8fafc}[data-theme=dark] .student-modal-header .student-modal-matricule{color:#94a3b8}[data-theme=dark] .student-modal-header .student-modal-class{background:#3b82f626;color:#60a5fa}[data-theme=dark] .student-modal-perf--excellent{background:#228b2226;color:#34d399}[data-theme=dark] .student-modal-perf--good{background:#3b82f626;color:#60a5fa}[data-theme=dark] .student-modal-perf--average{background:#f9a82526;color:#fbbf24}[data-theme=dark] .student-modal-perf--struggling{background:#ef444426;color:#f87171}[data-theme=dark] .student-modal-perf--unknown{background:#64748b26;color:#94a3b8}[data-theme=dark] .student-modal-section-title{border-bottom-color:#334155;color:#64748b}[data-theme=dark] .student-modal-label{color:#94a3b8}[data-theme=dark] .student-modal-value{color:#e2e8f0}[data-theme=dark] .student-modal-payment--ok{background:#228b221f;color:#34d399}[data-theme=dark] .student-modal-payment--late{background:#f9a8251f;color:#fbbf24}[data-theme=dark] .student-modal-payment--defaulting{background:#ef44441f;color:#f87171}[data-theme=dark] .btn-modal-unseat{background:#0f172a;border-color:#334155;color:#94a3b8}[data-theme=dark] .btn-modal-unseat:hover{background:#ef44441a;border-color:#f87171;color:#f87171}[data-theme=dark] .btn-modal-close{background:#3b82f6;border-color:#3b82f6}[data-theme=dark] .btn-modal-close:hover{background:#2563eb;border-color:#2563eb}[data-theme=dark] .student-modal-overlay{background:#000000b3}.legal-page{background:#f8f9fa;background:var(--color-background,#f8f9fa);display:flex;flex-direction:column;min-height:100vh}.legal-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.legal-header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.legal-logo{align-items:center;color:#1a1a5e;color:var(--color-primary,#1a1a5e);display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;text-decoration:none}.legal-logo .logo-icon{font-size:1.5rem}.legal-nav{display:flex;gap:2rem}.legal-nav a{color:#555;font-weight:500;text-decoration:none;transition:color .2s}.legal-nav a:hover{color:#1a1a5e;color:var(--color-primary,#1a1a5e)}.legal-content{flex:1 1;padding:3rem 2rem}.legal-container{margin:0 auto;max-width:900px}.legal-container h1{color:#1a1a5e;color:var(--color-primary,#1a1a5e);font-size:2.5rem;margin-bottom:.5rem}.legal-updated{color:#666;font-size:.9rem;margin-bottom:2rem}.legal-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin:2.5rem 0;padding:2rem}.legal-section h2{border-bottom:2px solid #228b22;border-bottom:2px solid var(--color-secondary,#228b22);color:#1a1a5e;color:var(--color-primary,#1a1a5e);font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem}.legal-section h3{color:#333;font-size:1.2rem;margin:1.5rem 0 .75rem}.legal-section p{color:#444;line-height:1.7;margin-bottom:1rem}.legal-section ul{margin:1rem 0;padding-left:1.5rem}.legal-section li{color:#444;line-height:1.8;margin-bottom:.5rem}.legal-section a{color:#228b22;color:var(--color-secondary,#228b22);text-decoration:none}.legal-section a:hover{text-decoration:underline}.legal-section address{color:#444;font-style:normal;line-height:1.8}.cookie-table{border-collapse:collapse;margin:1rem 0;width:100%}.cookie-table td,.cookie-table th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.cookie-table th{background:#f5f5f5;color:#333;font-weight:600}.cookie-table td{color:#555}.legal-footer{background:#1a1a5e;background:var(--color-primary,#1a1a5e);color:#fff;padding:1.5rem 2rem}.legal-footer-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1200px}.legal-footer p{margin:0;opacity:.9}.legal-footer-links{display:flex;gap:1.5rem}.legal-footer-links a{color:#fff;opacity:.8;text-decoration:none;transition:opacity .2s}.legal-footer-links a:hover{opacity:1}.about-hero,.careers-hero,.contact-hero,.demo-hero,.features-hero,.pricing-hero{margin-bottom:3rem;text-align:center}.about-tagline,.careers-tagline,.contact-tagline,.demo-tagline,.features-tagline,.pricing-tagline{color:#555;font-size:1.5rem;margin:0}.benefits-grid,.values-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:1.5rem}.benefit-card,.value-card{background:#f8f9fa;border-radius:12px;padding:1.5rem;text-align:center}.benefit-icon,.value-icon{display:block;font-size:2.5rem;margin-bottom:1rem}.benefit-card h3,.value-card h3{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.benefit-card p,.value-card p{color:#666;font-size:.9rem;margin:0}.stats-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(4,1fr);margin-top:2rem}.stat-item{text-align:center}.stat-number{color:#228b22;color:var(--color-secondary,#228b22);display:block;font-size:2.5rem;font-weight:700}.stat-label{color:#666;font-size:.9rem}.cta-section{background:linear-gradient(135deg,#1a1a5e,#2a2a7e);background:linear-gradient(135deg,var(--color-primary,#1a1a5e) 0,#2a2a7e 100%);color:#fff;text-align:center}.cta-section h2{border-color:#fff;color:#fff}.cta-section p{color:#ffffffe6}.cta-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.perks-list{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));list-style:none;padding:0}.perks-list li{padding:.5rem 0}.jobs-list{display:flex;flex-direction:column;gap:1rem}.job-card{align-items:center;background:#f8f9fa;border-left:4px solid #228b22;border-left:4px solid var(--color-secondary,#228b22);border-radius:8px;display:flex;justify-content:space-between;padding:1.25rem}.job-info h3{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.job-meta{color:#666;display:flex;font-size:.85rem;gap:1.5rem}.careers-email a{font-size:1.25rem;font-weight:600}.process-steps{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-top:1.5rem}.process-step{background:#f8f9fa;border-radius:8px;padding:1.5rem 1rem;text-align:center}.step-number{align-items:center;background:#228b22;background:var(--color-secondary,#228b22);border-radius:50%;color:#fff;display:inline-flex;font-weight:700;height:40px;justify-content:center;margin-bottom:.75rem;width:40px}.process-step h4{color:#333;margin:0 0 .5rem}.process-step p{color:#666;font-size:.85rem;margin:0}.contact-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1.5fr}.contact-form-section h2,.contact-info h2{margin-top:0}.contact-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:1rem;padding:1.25rem}.contact-icon{display:block;font-size:1.5rem;margin-bottom:.5rem}.contact-card h3{color:#1a1a5e;color:var(--color-primary,#1a1a5e);font-size:1rem;margin:0 0 .5rem}.contact-card a{color:#228b22;color:var(--color-secondary,#228b22);font-weight:500;text-decoration:none}.contact-card p{margin:.25rem 0 0}.contact-card p,.contact-hours{color:#666;font-size:.85rem}.contact-form-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:2rem}.contact-form,.demo-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#333;font-size:.9rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#228b22;border-color:var(--color-secondary,#228b22);box-shadow:0 0 0 3px #228b221a;outline:none}.form-group textarea{min-height:120px;resize:vertical}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-success{padding:3rem 2rem;text-align:center}.success-icon{align-items:center;background:#228b22;background:var(--color-secondary,#228b22);border-radius:50%;color:#fff;display:inline-flex;font-size:2rem;height:60px;justify-content:center;margin-bottom:1rem;width:60px}.form-success h3{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.form-success p{color:#666;margin-bottom:1.5rem}.faq-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1rem}.faq-item{background:#f8f9fa;border-radius:8px;padding:1.25rem}.faq-item h4{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.faq-item p{font-size:.9rem;margin:0}.features-list{display:flex;flex-direction:column;gap:1.5rem}.feature-detail-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:2rem}.feature-header{align-items:flex-start;display:flex;gap:1.5rem;margin-bottom:1.5rem}.feature-icon-large{flex-shrink:0;font-size:3rem}.feature-header h2{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.feature-header p{color:#666;margin:0}.feature-details-list{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));list-style:none;margin:0;padding:0}.feature-details-list li{color:#444;padding:.25rem 0}.pricing-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);margin:2rem 0}.pricing-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;padding:2rem;position:relative}.pricing-card.highlighted{border:2px solid #228b22;border:2px solid var(--color-secondary,#228b22);transform:scale(1.02)}.popular-badge{background:#228b22;background:var(--color-secondary,#228b22);border-radius:20px;color:#fff;font-size:.8rem;font-weight:600;left:50%;padding:.25rem 1rem;position:absolute;top:-12px;transform:translateX(-50%)}.pricing-card h2{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin:0 0 .5rem}.pricing-amount{margin:1rem 0}.pricing-amount .price{color:#1a1a5e;color:var(--color-primary,#1a1a5e);font-size:2.5rem;font-weight:700}.pricing-amount .period,.pricing-description{color:#666;font-size:.9rem}.pricing-description{margin-bottom:1.5rem}.pricing-features{flex:1 1;list-style:none;margin:0 0 2rem;padding:0}.pricing-features li{border-bottom:1px solid #f0f0f0;color:#444;padding:.5rem 0}.pricing-features li:last-child{border-bottom:none}.demo-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1.5fr;margin-top:2rem}.demo-benefits{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:2rem}.demo-benefits h2{color:#1a1a5e;color:var(--color-primary,#1a1a5e);margin-top:0}.demo-benefits ul{list-style:none;margin:1.5rem 0;padding:0}.demo-benefits li{border-bottom:1px solid #f0f0f0;font-size:1.1rem;padding:.75rem 0}.demo-duration{background:#f8f9fa;border-radius:8px;color:#555;font-weight:500;padding:.75rem;text-align:center}.demo-form-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:2rem}.demo-form h2{margin-top:0}.demo-testimonial{background:#fff;border-left:4px solid #228b22;border-left:4px solid var(--color-secondary,#228b22);border-radius:12px;color:#444;font-size:1.1rem;font-style:italic;margin:0;padding:2rem}.demo-testimonial cite{color:#1a1a5e;color:var(--color-primary,#1a1a5e);display:block;font-style:normal;font-weight:600;margin-top:1rem}.btn{align-items:center;border:2px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s}.btn-primary{background:#228b22;background:var(--color-secondary,#228b22);border-color:#228b22;border-color:var(--color-secondary,#228b22);color:#fff}.btn-primary:hover{background:#1a6b1a;border-color:#1a6b1a}.btn-outline{background:#0000;border-color:#1a1a5e;border-color:var(--color-primary,#1a1a5e);color:#1a1a5e;color:var(--color-primary,#1a1a5e)}.btn-outline:hover{background:#1a1a5e;background:var(--color-primary,#1a1a5e);color:#fff}.btn-lg{font-size:1.1rem;padding:1rem 2rem}.btn-sm{font-size:.9rem;padding:.5rem 1rem}.btn-block{width:100%}@media (max-width:992px){.pricing-grid{grid-template-columns:1fr}.pricing-card.highlighted{transform:none}.process-steps,.stats-grid{grid-template-columns:repeat(2,1fr)}.contact-grid,.demo-content{grid-template-columns:1fr}}@media (max-width:768px){.legal-header-content{flex-direction:column;gap:1rem}.legal-nav{flex-wrap:wrap;gap:1rem;justify-content:center}.legal-container h1{font-size:2rem}.legal-section{padding:1.5rem}.form-row{grid-template-columns:1fr}.cta-buttons,.job-card{flex-direction:column}.job-card{align-items:flex-start;gap:1rem}.job-meta{flex-wrap:wrap}.process-steps{grid-template-columns:1fr}.legal-footer-content{flex-direction:column;text-align:center}}:root{--ocre:#ff9800;--vert-foret:#4caf50;--rouge-terre:#e65100;--bleu-indigo:#0066b3;--or:#ff9800;--blanc-casse:#fff;--noir-charbon:#1c1c1c;--or-rgb:255,152,0;--vert-foret-rgb:76,175,80;--bleu-indigo-rgb:0,102,179;--ocre-rgb:255,152,0;--color-background:#f8fafc;--color-background-secondary:#f1f5f9;--color-text-primary:#1e293b;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--color-surface:#fff;--card-background:#fff}:root.dark-theme,[data-theme=dark]{--color-background:#0f172a;--color-background-secondary:#1e293b;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-border:#334155;--color-surface:#1e293b;--card-background:#1e293b;--blanc-casse:#0f172a;--noir-charbon:#f8fafc}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--color-background);color:#1e293b;color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s ease,color .3s ease}.App{min-height:100vh}body.african-pattern-bg{position:relative}body.african-pattern-bg:before{background-image:repeating-linear-gradient(45deg,#0000,#0000 30px,#ff980005 0,#ff980005 60px),repeating-linear-gradient(-45deg,#0000,#0000 30px,#4caf5005 0,#4caf5005 60px);background-image:repeating-linear-gradient(45deg,#0000,#0000 30px,rgba(var(--or-rgb),.02) 30px,rgba(var(--or-rgb),.02) 60px),repeating-linear-gradient(-45deg,#0000,#0000 30px,rgba(var(--vert-foret-rgb),.02) 30px,rgba(var(--vert-foret-rgb),.02) 60px);bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:-1}h1,h2,h3,h4,h5,h6{font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:600;line-height:1.2}p{line-height:1.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.container{margin:0 auto;max-width:1200px;padding:0 1rem}.text-center{text-align:center}.loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:5px solid #fff;border-top:5px solid #ff9800;border:5px solid var(--blanc-casse);border-radius:50%;border-top-color:var(--or);height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:1200px){.container{max-width:960px}}@media (max-width:768px){.container{max-width:720px}}@media (max-width:576px){.container{max-width:540px}}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#fff;background:var(--blanc-casse)}::-webkit-scrollbar-thumb{background:#ff9800;background:var(--or);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#ff9800;background:var(--ocre)}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid #ff9800;outline:3px solid var(--or);outline-offset:2px}[data-theme=dark] .layout-main{background:#0f172a}[data-theme=dark] .analytics-card,[data-theme=dark] .appointment-card,[data-theme=dark] .billing-content,[data-theme=dark] .card-body,[data-theme=dark] .content-area,[data-theme=dark] .course-card,[data-theme=dark] .course-detail-modal,[data-theme=dark] .document-card,[data-theme=dark] .edit-modal,[data-theme=dark] .el-stat-card,[data-theme=dark] .follow-up-card,[data-theme=dark] .form-modal,[data-theme=dark] .hr-card,[data-theme=dark] .inbox-panel,[data-theme=dark] .invoice-card,[data-theme=dark] .main-content,[data-theme=dark] .marketplace-card,[data-theme=dark] .meeting-card,[data-theme=dark] .message-detail-panel,[data-theme=dark] .message-item,[data-theme=dark] .message-list-container,[data-theme=dark] .message-preview,[data-theme=dark] .messages-page .inbox-panel,[data-theme=dark] .messages-page .message-detail,[data-theme=dark] .messages-page .message-list,[data-theme=dark] .modal-body,[data-theme=dark] .modal-content,[data-theme=dark] .modal-footer,[data-theme=dark] .modal-header,[data-theme=dark] .page-content,[data-theme=dark] .panel-body,[data-theme=dark] .payment-card,[data-theme=dark] .payment-modal,[data-theme=dark] .product-card,[data-theme=dark] .reminder-card,[data-theme=dark] .resource-card,[data-theme=dark] .schedule-card,[data-theme=dark] .site-card,[data-theme=dark] .stat-card,[data-theme=dark] .student-card,[data-theme=dark] .summary-card,[data-theme=dark] .tab-content,[data-theme=dark] .teacher-card,[data-theme=dark] .transfer-card,[data-theme=dark] .vc-stat-card,[data-theme=dark] .virtual-class-card{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] input[type=date],[data-theme=dark] input[type=email],[data-theme=dark] input[type=file],[data-theme=dark] input[type=number],[data-theme=dark] input[type=password],[data-theme=dark] input[type=search],[data-theme=dark] input[type=tel],[data-theme=dark] input[type=text],[data-theme=dark] input[type=url],[data-theme=dark] select,[data-theme=dark] textarea{background:#0f172a;border-color:#334155;color:#e2e8f0}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#64748b}[data-theme=dark] select option{background:#1e293b;color:#e2e8f0}[data-theme=dark] table{border-color:#334155}[data-theme=dark] th{background:#0f172a;border-color:#334155;color:#cbd5e1}[data-theme=dark] td{border-color:#334155;color:#e2e8f0}[data-theme=dark] tr:hover td{background:#3b82f60d}[data-theme=dark] tbody tr:nth-child(2n) td{background:#0f172a4d}[data-theme=dark] .btn-outline,[data-theme=dark] button.btn-outline{background:#0000;border-color:#334155;color:#cbd5e1}[data-theme=dark] .btn-outline:hover{background:#3b82f61a;border-color:#60a5fa;color:#60a5fa}[data-theme=dark] .tab-button,[data-theme=dark] .tab-item,[data-theme=dark] .tabs-nav button{color:#94a3b8}[data-theme=dark] .tab-button.active,[data-theme=dark] .tab-item.active,[data-theme=dark] .tabs-nav button.active{border-color:#60a5fa;color:#60a5fa}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6{color:#f8fafc}[data-theme=dark] label,[data-theme=dark] p{color:#cbd5e1}[data-theme=dark] .box,[data-theme=dark] .card,[data-theme=dark] .content-card,[data-theme=dark] .data-card,[data-theme=dark] .detail-card,[data-theme=dark] .form-section,[data-theme=dark] .info-card,[data-theme=dark] .list-card,[data-theme=dark] .panel,[data-theme=dark] .section-card,[data-theme=dark] .stats-card{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] hr{border-color:#334155}[data-theme=dark] .dropdown-menu,[data-theme=dark] .popover,[data-theme=dark] .tooltip-content{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] .badge,[data-theme=dark] .chip,[data-theme=dark] .tag{color:#e2e8f0}[data-theme=dark] .messages-content,[data-theme=dark] .messages-sidebar{background:#1e293b;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .message-item:hover{background:#253347}[data-theme=dark] .message-item.selected{background:#3b82f61f}[data-theme=dark] .message-item.unread{background:#3b82f60f}[data-theme=dark] .message-body,[data-theme=dark] .message-subject{color:#e2e8f0}[data-theme=dark] .empty-messages,[data-theme=dark] .message-date,[data-theme=dark] .message-meta,[data-theme=dark] .no-message-selected{color:#94a3b8}[data-theme=dark] .tabs{border-bottom-color:#334155}[data-theme=dark] .tab{color:#94a3b8}[data-theme=dark] .tab:hover{background:#253347}[data-theme=dark] .tab.active{color:#60a5fa}[data-theme=dark] .message-view-header{border-bottom-color:#334155}[data-theme=dark] .billing-content,[data-theme=dark] .summary-card{background:#1e293b;box-shadow:0 2px 8px #0000004d;color:#e2e8f0}[data-theme=dark] .summary-card .card-label,[data-theme=dark] .summary-card .card-subtitle{color:#94a3b8}[data-theme=dark] .summary-card .card-value{color:#f8fafc}[data-theme=dark] .tab-btn{background:#0000;color:#94a3b8}[data-theme=dark] .tab-btn:hover{background:#253347}[data-theme=dark] .tab-btn.active{background:#3b82f6;color:#fff}[data-theme=dark] .billing-tabs{border-bottom-color:#334155}[data-theme=dark] .history-table-container,[data-theme=dark] .timeline-content{background:#1e293b;border-color:#334155}[data-theme=dark] .data-import-export-page .stat-card,[data-theme=dark] .data-import-export-page .tab-content{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] .data-import-export-page .stat-content{color:#e2e8f0}[data-theme=dark] .history-content{background:#1e293b;border-color:#334155}[data-theme=dark] .vc-stat-card{background:#1e293b;box-shadow:0 2px 8px #0000004d;color:#e2e8f0}[data-theme=dark] .vc-stat-content{color:#e2e8f0}[data-theme=dark] .virtual-class-card{background:#1e293b;border-color:#334155}[data-theme=dark] .el-stat-card{background:#1e293b;box-shadow:0 2px 8px #0000004d;color:#e2e8f0}[data-theme=dark] .el-stat-content{color:#e2e8f0}[data-theme=dark] .course-card{background:#1e293b;border-color:#334155;color:#e2e8f0}[data-theme=dark] .course-content{color:#e2e8f0}[data-theme=dark] .course-detail-modal{background:#1e293b;color:#e2e8f0}[data-theme=dark] .page-header h1{color:#60a5fa}[data-theme=dark] .page-header p{color:#94a3b8}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal-content{background:#1e293b;box-shadow:0 20px 60px #00000080;color:#e2e8f0}[data-theme=dark] .modal-header{border-bottom-color:#334155}[data-theme=dark] .modal-header h2{color:#60a5fa}[data-theme=dark] .modal-close{color:#94a3b8}[data-theme=dark] .modal-close:hover{color:#e2e8f0}[data-theme=dark] .form-group input,[data-theme=dark] .form-group select,[data-theme=dark] .form-group textarea{background:#0f172a;border-color:#334155;color:#e2e8f0}[data-theme=dark] .form-group label{color:#cbd5e1}[data-theme=dark] .btn-secondary{background:#334155;color:#e2e8f0}[data-theme=dark] .btn-secondary:hover{background:#475569}[data-theme=dark] .accounting-page,[data-theme=dark] .admin-dashboard-page,[data-theme=dark] .administration-page,[data-theme=dark] .ai-correction-page,[data-theme=dark] .ai-exercises-page,[data-theme=dark] .ai-tutor-page,[data-theme=dark] .analytics-page,[data-theme=dark] .appointment-stats-page,[data-theme=dark] .appointments-page,[data-theme=dark] .attendance-page,[data-theme=dark] .billing-page,[data-theme=dark] .children-page,[data-theme=dark] .classroom-plan-page,[data-theme=dark] .courses-page,[data-theme=dark] .data-management-page,[data-theme=dark] .document-manager-page,[data-theme=dark] .elearning-container,[data-theme=dark] .elearning-page,[data-theme=dark] .external-resources-page,[data-theme=dark] .government-page,[data-theme=dark] .grades-page,[data-theme=dark] .hr-management-page,[data-theme=dark] .internal-meetings-page,[data-theme=dark] .invoicing-page,[data-theme=dark] .legal-page,[data-theme=dark] .map-page,[data-theme=dark] .marketplace-page,[data-theme=dark] .messages-container,[data-theme=dark] .my-courses-page,[data-theme=dark] .platform-admin-page,[data-theme=dark] .profile-page,[data-theme=dark] .registration-page,[data-theme=dark] .reminders-page,[data-theme=dark] .schedule-page,[data-theme=dark] .school-sites-page,[data-theme=dark] .settings-page,[data-theme=dark] .student-follow-up-page,[data-theme=dark] .teacher-availability-page,[data-theme=dark] .teacher-dashboard-page,[data-theme=dark] .transfer-manager-page,[data-theme=dark] .video-conference-page,[data-theme=dark] .whatsapp-page{color:#e2e8f0}[data-theme=dark] ::-webkit-scrollbar-track{background:#0f172a}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#334155}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#475569}[data-theme=dark] a:focus,[data-theme=dark] button:focus,[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{outline-color:#60a5fa}@media print{body{background:#fff;color:#000}body:before{display:none}}