:root{--bg: #0f172a;--bg-gradient: radial-gradient(circle at top, rgba(59,130,246,.25), transparent 60%), radial-gradient(circle at 20% 20%, rgba(244,114,182,.2), transparent 55%), #020617;--surface: #ffffff;--surface-alt: #f8fafc;--primary: #2563eb;--primary-dark: #1d4ed8;--text: #0f172a;--muted: #6b7280;--border: rgba(15,23,42,.08);--shadow: 0 25px 60px rgba(15,23,42,.25)}*{box-sizing:border-box;font-family:Inter,SF Pro Display,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont}body{margin:0;min-height:100vh;background:var(--bg-gradient);color:var(--text)}.app-shell{min-height:100vh;display:flex;flex-direction:column;color:var(--text)}.topnav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:18px 48px;background:#020617b3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.brand{font-weight:700;font-size:20px;letter-spacing:.5px}.brand span{font-size:14px;font-weight:400;margin-left:6px;opacity:.7}.nav-title{display:flex;align-items:center;gap:16px;flex:1}.nav-title h2{margin:0;font-size:20px}.nav-title .eyebrow{margin:0;color:#ffffffb3;font-size:13px;text-transform:uppercase;letter-spacing:1px}.nav-actions{display:flex;gap:12px;align-items:center}.topnav .btn-ghost{border-color:#ffffff4d;color:#fff}.topnav .btn-primary{box-shadow:none}.main-content{flex:1;width:100%;max-width:1200px;margin:40px auto;padding:0 32px 80px}button,input,textarea,select{font:inherit}button{border:none;cursor:pointer;border-radius:999px;padding:8px 18px;background:var(--surface-alt);color:var(--text)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 10px 30px #2563eb66}.btn-secondary{background:#2563eb1f;color:var(--primary);border:1px solid rgba(37,99,235,.4);display:inline-flex;align-items:center;gap:6px}.btn-ghost{background:transparent;color:var(--text);border:1px solid rgba(15,23,42,.2)}.btn-danger{background:#ef44441f;color:#b91c1c;border:1px solid rgba(239,68,68,.4)}.btn-link{background:transparent;color:var(--primary);padding:0;border-radius:0}.btn-link.danger{color:#dc2626}.btn-link:hover{text-decoration:underline}.icon-button{border-radius:50%;width:36px;height:36px;background:#0f172a26;color:inherit}.icon-button:hover{background:#0f172a4d}.card{background:var(--surface);border-radius:24px;padding:28px;box-shadow:var(--shadow);border:1px solid var(--border)}.hero{display:flex;justify-content:space-between;align-items:center;gap:24px}.hero h1{margin:8px 0}.hero-metrics{display:flex;gap:24px}.hero-metrics span{font-size:13px;color:var(--muted)}.hero-metrics strong{font-size:28px}.page{display:flex;flex-direction:column;gap:24px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:22px}.section-header h3{margin:0}.section-header p{margin:4px 0 0}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.course-card{border:1px solid rgba(15,23,42,.08);border-radius:20px;padding:18px;background:var(--surface-alt);cursor:pointer;transition:transform .2s ease,border .2s ease}.course-card:hover{transform:translateY(-4px);border-color:var(--primary)}.course-card__head{display:flex;justify-content:space-between;align-items:center}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.form-grid.single{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.form-grid label{display:flex;flex-direction:column;font-size:14px;color:var(--muted);gap:6px}.form-grid input,.form-grid textarea,.form-grid select{padding:12px;border-radius:14px;border:1px solid rgba(15,23,42,.12);background:var(--surface-alt)}.form-grid textarea{min-height:100px;resize:vertical}.form-grid textarea{grid-column:1 / -1}.form-grid button{justify-self:start}.table-card{padding:0;overflow:hidden}.table-card .section-header{padding:24px 28px 0}.table-wrapper{overflow-x:auto;padding:0 28px 28px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(15,23,42,.08)}.table tr:last-child td{border-bottom:none}.table-title{font-weight:600}.tiny{font-size:12px}.split-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.material-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.material-list li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(15,23,42,.08)}.material-list li:last-child{border-bottom:none}.material-actions{display:flex;gap:8px;align-items:center}.tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#2563eb1f;color:var(--primary);font-size:12px}.alert{padding:12px 16px;border-radius:12px;margin:12px 0;font-size:14px}.alert.success{background:#22c55e26;color:#15803d}.alert.danger{background:#f43f5e26;color:#be123c}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:40px 20px;z-index:100;overflow-y:auto}.modal-dialog{background:var(--surface);border-radius:28px;width:min(960px,95vw);max-height:90vh;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal-dialog.large{width:min(1100px,96vw)}.modal-header{padding:24px 28px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--surface);z-index:2}.modal-scroll{padding:0 28px 28px;overflow:auto}.modal-scroll hr{border:none;border-top:1px solid var(--border);margin:24px 0}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px}.login-card{max-width:420px;width:100%}.login-card input{margin-bottom:12px}.login-card .wide{width:100%;justify-content:center}.assignment-hero{background:linear-gradient(135deg,#2563eb1f,#7c3aed1f)}.material-list strong{display:block}.material-list span{font-size:12px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:12px;color:var(--muted);margin:0}.btn-secondary>input[type=file],.btn-primary>input[type=file]{display:none}.table-wrapper::-webkit-scrollbar,.modal-scroll::-webkit-scrollbar{height:6px;width:6px}.table-wrapper::-webkit-scrollbar-thumb,.modal-scroll::-webkit-scrollbar-thumb{background:#0f172a33;border-radius:999px}.score-input{width:70px;border-radius:12px;border:1px solid rgba(15,23,42,.2);padding:6px 10px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.15)}.toolbar .spacer{flex:1}.action-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.material-list button{border:1px solid rgba(37,99,235,.3);border-radius:999px;padding:6px 14px}@media (max-width: 768px){.topnav{flex-direction:column;align-items:flex-start;padding:16px 24px}.nav-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.main-content{padding:0 16px 60px}.hero{flex-direction:column;align-items:flex-start}.modal-dialog{width:100%}}
