*{box-sizing:border-box}body{color:#22252b;background:#f4f5f7;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}:root{--purple:#573c99;--purple-deep:#391f5e;--teal:#19a1b1;--border:#dfe1e6;--bg-panel:#fff;--bg-app:#f4f5f7;--text-muted:#6b7280;--danger:#c0392b;--radius:10px}.login-screen{background:linear-gradient(135deg, var(--purple-deep), var(--purple));justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:16px;flex-direction:column;gap:14px;width:340px;padding:40px;display:flex;box-shadow:0 20px 60px #00000040}.login-card h1{color:var(--purple-deep);margin:0;font-size:1.3rem}.login-sub{color:var(--text-muted);margin:0 0 8px;font-size:.9rem}.login-card label{color:#333;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;display:flex}.login-card input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:.95rem}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 18px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover{background:var(--purple-deep)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-outline{color:var(--purple);border:1.5px solid var(--purple);background:#fff}.btn-danger{color:var(--danger);border:1.5px solid var(--danger);background:#fff}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-link{color:var(--purple);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.85rem}.btn-icon{color:#999;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:.9rem}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--purple-deep);color:#fff;flex-direction:column;flex-shrink:0;width:230px;padding:20px 0;display:flex}.sidebar-brand{padding:0 20px 20px;font-size:1rem;font-weight:700}.sidebar nav{flex-direction:column;flex:1;display:flex}.nav-group-label{text-transform:uppercase;letter-spacing:.06em;color:#b7a7d9;padding:16px 20px 6px;font-size:.7rem}.nav-link{color:#e3d6f5;padding:8px 20px;font-size:.88rem;text-decoration:none}.nav-link:hover{background:#ffffff0f}.nav-link.active{color:#fff;background:#ffffff1f;font-weight:600}.sidebar-user{border-top:1px solid #ffffff1f;flex-direction:column;gap:6px;padding:16px 20px;display:flex}.sidebar-user-name{font-size:.85rem}.sidebar-user .btn-link{color:#d8c8ef}.main-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:#fff;justify-content:flex-end;gap:10px;padding:14px 28px;display:flex}.publish-note{color:#256029;background:#e6f7e9;padding:10px 28px;font-size:.88rem}.main-content{flex:1;padding:28px;overflow-y:auto}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:380px;padding:24px;display:flex}.modal h3{margin:0}.modal p{color:var(--text-muted);margin:0;font-size:.9rem}.modal label{flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;display:flex}.modal input{border:1px solid var(--border);border-radius:6px;padding:8px 10px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.dashboard{grid-template-columns:1fr 1fr;align-items:start;gap:28px;display:grid}.dashboard-sections h2{margin:0 0 4px}.muted{color:var(--text-muted);font-size:.88rem}.section-cards{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.section-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:14px 16px;text-decoration:none;display:block}.section-card:hover{border-color:var(--purple);box-shadow:0 2px 10px #573c991f}.section-card-label{color:var(--purple-deep);margin-bottom:4px;font-weight:700}.section-card-desc{color:var(--text-muted);font-size:.82rem}.dashboard-preview{position:sticky;top:0}.preview-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.preview-header h3{margin:0}.preview-iframe{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;height:78vh}.editor-page{max-width:760px}.editor-header{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.editor-header h2{margin:0}.editor-form{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:24px;display:flex}.editor-form h4{color:var(--purple-deep);margin:8px 0 -4px}.field{flex-direction:column;flex:1;gap:6px;display:flex}.field-label{color:#333;font-size:.82rem;font-weight:600}.field input[type=text],.field input[type=email],.field input[type=datetime-local],.field textarea,.field select{border:1px solid var(--border);border-radius:7px;padding:9px 11px;font-family:inherit;font-size:.92rem}.field-row{gap:16px;display:flex}.list-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.list-row input{border:1px solid var(--border);border-radius:6px;flex:1;padding:8px 10px}.feature-edit-block{border:1px solid var(--border);background:#fafafd;border-radius:8px;flex-direction:column;gap:10px;padding:14px;display:flex}.org-logo-thumb{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:6px;flex-shrink:0;max-width:140px;height:56px;padding:6px}.editor-actions{align-items:center;gap:14px;margin-top:18px;display:flex}.save-confirm{color:#256029;font-size:.88rem;font-weight:600}.form-error{color:var(--danger);background:#fdecea;border-radius:6px;padding:10px 12px;font-size:.85rem}.lecturers-table{border-collapse:collapse;background:var(--bg-panel);border-radius:var(--radius);width:100%;overflow:hidden}.lecturers-table th{text-align:left;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.78rem}.lecturers-table td{border-bottom:1px solid var(--border);padding:10px 14px;font-size:.9rem}.lecturers-table a{color:var(--purple);font-weight:600;text-decoration:none}.thumb{object-fit:cover;border-radius:4px;width:40px;height:50px;display:block}.thumb-empty{color:#999;text-align:center;background:#eee;justify-content:center;align-items:center;font-size:.6rem;display:flex}.photo-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);max-width:760px;margin-top:20px;padding:20px}.photo-panel h4{margin-top:0}.photo-preview{border-radius:8px;width:180px;margin-bottom:12px;display:block;box-shadow:0 4px 14px #0000001f}.loading-screen{min-height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}
