:root{--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-surface-hover:#e2e8f0;--bg-card:#fff;--bg-input:#fff;--border-subtle:#e2e8f0;--border-medium:#cbd5e1;--border-focus:#2563eb;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--success:#059669;--success-bg:#ecfdf5;--warning:#d97706;--warning-bg:#fffbeb;--danger:#dc2626;--danger-hover:#b91c1c;--danger-bg:#fef2f2;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 25px -3px #00000014, 0 4px 6px -4px #0000000a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--header-height:64px;--sidebar-width:350px}[data-theme=dark]{--bg-app:#0b0f19;--bg-surface:#111827;--bg-surface-elevated:#1f2937;--bg-surface-hover:#374151;--bg-card:#162032;--bg-input:#0f172a;--border-subtle:#ffffff17;--border-medium:#ffffff29;--border-focus:#3b82f6;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--primary:#3b82f6;--primary-hover:#2563eb;--primary-light:#3b82f626;--success:#10b981;--success-bg:#10b98126;--warning:#f59e0b;--warning-bg:#f59e0b26;--danger:#ef4444;--danger-hover:#dc2626;--danger-bg:#ef444426}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}.app-container{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{height:var(--header-height);background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:40;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 1.5rem;display:flex}.header-brand{align-items:center;gap:.85rem;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary) 0%, #4338ca 100%);border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 2px 8px #2563eb40}.brand-title{color:var(--text-primary);font-size:1.15rem;font-weight:700;line-height:1.2}.brand-subtitle{color:var(--text-secondary);font-size:.75rem;font-weight:500;display:block}.header-actions{align-items:center;gap:.6rem;display:flex}.app-workspace{height:calc(100vh - var(--header-height));flex:1;display:flex;position:relative;overflow:hidden}.sidebar-teachers{width:var(--sidebar-width);background-color:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:25;flex-direction:column;flex-shrink:0;min-width:320px;max-width:380px;height:100%;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex}.sidebar-header{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.sidebar-stats{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle);background-color:var(--bg-surface-elevated);justify-content:space-between;align-items:center;padding:.55rem 1rem;font-size:.75rem;font-weight:600;display:flex}.teachers-list{flex-direction:column;flex:1;gap:.5rem;padding:.75rem;display:flex;overflow-y:auto}.editor-panel{background-color:var(--bg-app);flex-direction:column;flex:1;height:100%;display:flex;position:relative;overflow:hidden}.editor-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.15rem 2rem;display:flex;box-shadow:0 1px 2px #00000005}.editor-heading{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.15rem;font-size:1.35rem;font-weight:700}.editor-subtext{color:var(--text-secondary);font-size:.85rem}.editor-top-actions{flex-shrink:0;align-items:center;gap:.65rem;display:flex}.editor-tabs{background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:.25rem;padding:0 2rem;display:flex;overflow-x:auto}.tab-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;padding:.85rem 1.15rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--primary-light)}.editor-form{flex:1;padding:2rem 2rem 6.5rem;overflow-y:auto}.form-grid-layout{grid-template-columns:1fr 280px;gap:2rem;display:grid}.form-col-inputs{flex-direction:column;gap:1.25rem;display:flex}.form-row-2{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-primary);font-size:.85rem;font-weight:600}.form-label.required:after{content:" *";color:var(--danger)}.field-hint{color:var(--text-muted);font-size:.75rem;line-height:1.4}.form-control{background-color:var(--bg-input);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);outline:none;padding:.65rem .85rem;font-size:.875rem;transition:all .2s}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}textarea.form-control{resize:vertical;min-height:85px}.editor-bottom-bar{background-color:var(--bg-surface);border-top:1px solid var(--border-subtle);z-index:20;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #0000000d}.btn{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 10px #2563eb40}.btn-secondary{background-color:var(--bg-surface);color:var(--text-primary);border-color:var(--border-medium)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-surface-elevated)}.btn-danger{background-color:var(--danger-bg);color:var(--danger);border-color:#fca5a5}.btn-danger:hover:not(:disabled){background-color:var(--danger);color:#fff}.btn-icon{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-medium);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex}.btn-icon:hover{background:var(--bg-surface-elevated);color:var(--text-primary)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background-color:#0f172a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;max-width:540px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-card.lg{max-width:800px}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{color:var(--text-primary);font-size:1.15rem;font-weight:700}.modal-body{max-height:70vh;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-subtle);background-color:var(--bg-surface-elevated);justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}@media (max-width:900px){.app-header{padding:0 1rem}.app-workspace{position:relative}.sidebar-teachers{z-index:25;border-right:none;width:100%;min-width:0;max-width:100%;position:absolute;inset:0}.editor-panel{z-index:20;width:100%;transition:transform .25s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:translate(100%)}.app-workspace.view-editor .sidebar-teachers{pointer-events:none;transform:translate(-100%)}.app-workspace.view-editor .editor-panel{z-index:30;transform:translate(0)}.form-grid-layout,.form-row-2{grid-template-columns:1fr}.editor-header{flex-direction:column;align-items:flex-start;padding:1rem}.editor-top-actions{justify-content:flex-end;width:100%}.editor-form{padding:1rem 1rem 6.5rem}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}
