@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--font-heading:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:10px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1);--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--primary:262 80% 58%;--primary-hover:262 80% 66%;--primary-glow:#8a63e259;--secondary:218 85% 60%;--secondary-hover:218 85% 68%;--accent:325 88% 58%;--success:152 65% 42%;--warning:36 95% 50%;--danger:350 78% 52%}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:230 40% 6%;--bg-base-alt:228 35% 9%;--bg-elevated:228 32% 12%;--bg-overlay:228 30% 9%;--bg-input:228 35% 7%;--surface-1:0 0% 100% / .025;--surface-2:0 0% 100% / .045;--surface-3:0 0% 100% / .07;--surface-4:0 0% 100% / .1;--surface-5:0 0% 100% / .14;--surface-strong:0 0% 100% / .2;--border-subtle:0 0% 100% / .07;--border-default:0 0% 100% / .12;--border-strong:0 0% 100% / .22;--text-primary:0 0% 98%;--text-secondary:228 15% 78%;--text-muted:228 10% 58%;--header-bg:#121626b8;--glass-bg:#161c2d8c;--glass-bg-strong:#161c2dbf;--scrim:#00000080;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 8px 24px -8px #0000008c;--shadow-lg:0 18px 40px -12px #000000a6, 0 1px 1px 0 #ffffff0a inset;--orb-primary:#8a2be229;--orb-secondary:#5282eb1f;--orb-accent:#ff14930f;--tint-secondary:#5282eb1a;--tint-secondary-border:#5282eb3d;--tint-accent:#e846a00f;--tint-accent-border:#e846a02e;--tint-success:#2eaf6e1a;--tint-success-border:#2eaf6e38;--tint-danger:#dc3c581a;--tint-danger-border:#dc3c5838;--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a8b1c7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:220 30% 97%;--bg-base-alt:220 25% 94%;--bg-elevated:0 0% 100%;--bg-overlay:220 28% 99%;--bg-input:220 30% 99%;--surface-1:222 47% 11% / .025;--surface-2:222 47% 11% / .045;--surface-3:222 47% 11% / .065;--surface-4:222 47% 11% / .09;--surface-5:222 47% 11% / .13;--surface-strong:222 47% 11% / .2;--border-subtle:222 47% 11% / .08;--border-default:222 47% 11% / .14;--border-strong:222 47% 11% / .24;--text-primary:222 36% 14%;--text-secondary:222 18% 32%;--text-muted:222 12% 50%;--header-bg:#ffffffc7;--glass-bg:#ffffffb8;--glass-bg-strong:#ffffffeb;--scrim:#0f172a59;--shadow-sm:0 1px 3px #0f172a14;--shadow-md:0 6px 18px -6px #0f172a24;--shadow-lg:0 18px 36px -12px #0f172a2e, 0 1px 1px 0 #ffffffb3 inset;--orb-primary:#8a2be21a;--orb-secondary:#3664d214;--orb-accent:#ff14930d;--tint-secondary:#3664d21a;--tint-secondary-border:#3664d24d;--tint-accent:#d8328c12;--tint-accent-border:#d8328c38;--tint-success:#1e8c5a1a;--tint-success-border:#1e8c5a40;--tint-danger:#c82d4b14;--tint-danger-border:#c82d4b38;--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2350586c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:hsl(var(--bg-base));width:100%;height:100%;color:hsl(var(--text-primary));font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}body{background-image:radial-gradient(at 0% 0%, var(--orb-primary) 0px, transparent 50%), radial-gradient(at 100% 100%, var(--orb-secondary) 0px, transparent 50%), radial-gradient(at 50% 50%, var(--orb-accent) 0px, transparent 60%);background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:hsl(var(--text-primary));font-weight:700;line-height:1.25}a{color:hsl(var(--secondary));transition:var(--transition-fast);text-decoration:none}a:hover{color:hsl(var(--secondary-hover))}button{font-family:var(--font-body);cursor:pointer;color:inherit;background:0 0;border:none;outline:none;font-weight:500}::selection{background:hsla(var(--primary) / .4);color:hsl(var(--text-primary))}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px)saturate(140%);border:1px solid hsl(var(--border-subtle));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:var(--transition-smooth);padding:2rem}.glass-panel:hover{border-color:hsl(var(--border-default))}.glass-panel-strong{background:var(--glass-bg-strong)}.btn-primary{background:linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--accent)) 100%);color:#fff;border-radius:var(--radius-md);letter-spacing:.01em;box-shadow:0 4px 14px var(--primary-glow);transition:var(--transition-smooth);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;line-height:1.2;display:inline-flex}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px hsla(var(--primary) / .5), 0 0 10px hsla(var(--accent) / .3);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:hsl(var(--surface-2));border:1px solid hsl(var(--border-default));color:hsl(var(--text-primary));border-radius:var(--radius-md);transition:var(--transition-smooth);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;line-height:1.2;display:inline-flex}.btn-secondary:hover:not(:disabled){background:hsl(var(--surface-4));border-color:hsl(var(--border-strong));transform:translateY(-1px)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:linear-gradient(135deg, hsl(var(--danger)) 0%, #c11532 100%);color:#fff;border-radius:var(--radius-md);box-shadow:0 4px 14px hsla(var(--danger) / .3);transition:var(--transition-smooth);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;display:inline-flex}.btn-danger:hover:not(:disabled){box-shadow:0 6px 20px hsla(var(--danger) / .5);transform:translateY(-1px)}.btn-ghost{color:hsl(var(--text-secondary));border-radius:var(--radius-md);transition:var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:.4rem;padding:.5rem .9rem;font-weight:500;display:inline-flex}.btn-ghost:hover:not(:disabled){background:hsl(var(--surface-3));color:hsl(var(--text-primary))}.btn-tab{color:hsl(var(--text-secondary));transition:var(--transition-fast);background:padding-box padding-box;border:0;border-radius:10px;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.92rem;font-weight:500;line-height:1.2;display:inline-flex}.btn-tab:hover:not(.btn-tab-active){background:hsl(var(--surface-2));color:hsl(var(--text-primary))}.btn-tab-active{background:linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--accent)) 100%);color:#fff;box-shadow:inset 0 1px #ffffff2e}.btn-icon{border-radius:var(--radius-md);background:hsl(var(--surface-2));border:1px solid hsl(var(--border-default));width:40px;height:40px;color:hsl(var(--text-primary));transition:var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:hsl(var(--surface-4));border-color:hsl(var(--border-strong));transform:translateY(-1px)}.form-group{flex-direction:column;gap:.45rem;margin-bottom:1.5rem;display:flex}.form-label{color:hsl(var(--text-secondary));letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:600}.form-hint{color:hsl(var(--text-muted));margin-top:.1rem;font-size:.78rem}.form-input,.form-textarea,.form-select{background:hsl(var(--bg-input));border:1px solid hsl(var(--border-default));border-radius:var(--radius-md);color:hsl(var(--text-primary));font-family:var(--font-body);transition:var(--transition-fast);width:100%;box-shadow:var(--shadow-sm);padding:.7rem .95rem;font-size:1rem;line-height:1.4}.form-input::placeholder,.form-textarea::placeholder{color:hsl(var(--text-muted));opacity:.8}.form-input:hover:not(:focus):not(:disabled),.form-textarea:hover:not(:focus):not(:disabled),.form-select:hover:not(:focus):not(:disabled){border-color:hsl(var(--border-strong))}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:hsl(var(--secondary));box-shadow:0 0 0 3px hsla(var(--secondary) / .18);outline:none}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{opacity:.55;cursor:not-allowed}.form-textarea{resize:vertical;min-height:120px;font-family:var(--font-body)}.form-select,select.form-input{appearance:none;background-image:var(--select-chevron);cursor:pointer;background-position:right .9rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2.4rem}.form-select::-ms-expand{display:none}.form-input-sm,.form-select-sm{border-radius:var(--radius-sm);padding:.4rem .7rem;font-size:.85rem}.form-select-sm{background-position:right .55rem center;background-size:14px 14px;padding-right:1.9rem}.form-input[type=number]{-moz-appearance:textfield}.form-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-stepper{background:hsl(var(--bg-input));border:1px solid hsl(var(--border-default));border-radius:var(--radius-md);transition:var(--transition-fast);width:100%;box-shadow:var(--shadow-sm);align-items:stretch;display:inline-flex;overflow:hidden}.number-stepper:focus-within{border-color:hsl(var(--secondary));box-shadow:0 0 0 3px hsla(var(--secondary) / .18)}.number-stepper input{color:hsl(var(--text-primary));font-family:var(--font-body);text-align:left;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:.7rem .95rem;font-size:1rem}.number-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-stepper>div{border-left:1px solid hsl(var(--border-default));flex-direction:column;width:32px;display:flex}.number-stepper button{background:hsl(var(--surface-2));color:hsl(var(--text-secondary));transition:var(--transition-fast);-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:center;min-height:0;display:inline-flex}.number-stepper>div>button:first-child{border-bottom:1px solid hsl(var(--border-default))}.number-stepper button:hover:not(:disabled){background:hsl(var(--surface-4));color:hsl(var(--text-primary))}.number-stepper button:disabled{opacity:.35;cursor:not-allowed}input[type=checkbox],input[type=radio],input[type=range]{accent-color:hsl(var(--primary))}.container{width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem;display:grid}.app-header{background:var(--header-bg);-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid hsl(var(--border-subtle));z-index:50;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.5rem;display:flex;position:sticky;top:0}.app-header__brand{align-items:center;gap:.85rem;display:flex}.app-header__actions{align-items:center;gap:.6rem;display:flex}.brand-mark{font-family:var(--font-heading);background:linear-gradient(135deg, hsl(var(--secondary)) 0%, hsl(var(--accent)) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.65rem;font-weight:800}.app-footer{text-align:center;color:hsl(var(--text-muted));border-top:1px solid hsl(var(--border-subtle));margin-top:3rem;padding:1.5rem;font-size:.85rem}.tab-bar{background:hsl(var(--surface-1));border:1px solid hsl(var(--border-subtle));border-radius:var(--radius-md);flex-wrap:wrap;gap:.35rem;width:fit-content;padding:.35rem;display:flex}.data-table{border-collapse:collapse;width:100%;font-size:.93rem}.data-table thead tr{border-bottom:1px solid hsl(var(--border-default));text-align:left;color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.data-table th{padding:.75rem;font-weight:600}.data-table tbody tr{border-bottom:1px solid hsl(var(--border-subtle));transition:background-color .15s}.data-table tbody tr:hover{background:hsl(var(--surface-1))}.data-table td{padding:.85rem .75rem}.simulation-canvas-container{z-index:1;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0;overflow:hidden}@keyframes breathe{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid hsl(var(--surface-3));border-top-color:hsl(var(--secondary));border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.spinner-sm{border-width:2px;width:22px;height:22px}.spinner-lg{border-width:4px;width:56px;height:56px}.glow-orb{filter:blur(120px);z-index:1;pointer-events:none;border-radius:50%;animation:10s ease-in-out infinite breathe;position:absolute}.glow-orb-primary{background:hsl(var(--primary));opacity:.35;width:500px;height:500px;top:-100px;left:-100px}.glow-orb-secondary{background:hsl(var(--secondary));opacity:.3;width:450px;height:450px;animation-delay:-5s;bottom:-100px;right:-100px}[data-theme=light] .glow-orb-primary,[data-theme=light] .glow-orb-secondary{opacity:.22}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--surface-4));background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--surface-strong));background-clip:padding-box;border:2px solid #0000}.badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-student{background:var(--tint-secondary);color:hsl(var(--secondary));border:1px solid var(--tint-secondary-border)}.badge-lecturer{background:hsla(var(--primary) / .1);color:hsl(var(--primary-hover));border:1px solid hsla(var(--primary) / .25)}.badge-admin{background:var(--tint-accent);color:hsl(var(--accent));border:1px solid var(--tint-accent-border)}.badge-success{background:var(--tint-success);color:hsl(var(--success));border:1px solid var(--tint-success-border)}.badge-danger{background:var(--tint-danger);color:hsl(var(--danger));border:1px solid var(--tint-danger-border)}.metric-card{text-align:center;padding:1.75rem 1.5rem}.metric-card__label{color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.metric-card__value{font-size:2.6rem;font-weight:800;font-family:var(--font-heading);letter-spacing:-.02em;margin:.5rem 0 .3rem;line-height:1.05}.metric-card__unit{color:hsl(var(--text-secondary));margin-left:.2rem;font-size:1.1rem;font-weight:600}.metric-card__caption{color:hsl(var(--text-muted));font-size:.82rem}.callout{border-radius:var(--radius-md);border:1px solid hsl(var(--border-subtle));background:hsl(var(--surface-1));color:hsl(var(--text-secondary));align-items:flex-start;gap:.6rem;padding:.9rem 1.1rem;font-size:.88rem;line-height:1.5;display:flex}.callout-info{background:var(--tint-secondary);border-color:var(--tint-secondary-border)}.callout-warn{background:var(--tint-accent);border-color:var(--tint-accent-border)}.callout-danger{background:var(--tint-danger);border-color:var(--tint-danger-border)}.callout-success{background:var(--tint-success);border-color:var(--tint-success-border)}.chip{background:hsl(var(--surface-3));border:1px solid hsl(var(--border-default));color:hsl(var(--text-primary));border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .8rem;font-size:.88rem;display:inline-flex}.chip__remove{width:18px;height:18px;color:hsl(var(--text-muted));transition:var(--transition-fast);background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.chip__remove:hover{background:var(--tint-danger);color:hsl(var(--danger))}.score-pill{border-radius:var(--radius-sm);background:hsla(var(--secondary) / .1);border:1px solid;padding:.28rem .65rem;font-size:.9rem;font-weight:700;display:inline-block}@media (max-width:900px){.container{padding:1.25rem 1rem}.glass-panel{border-radius:var(--radius-md);padding:1.5rem}.app-header{gap:.6rem;padding:.75rem 1rem}.brand-mark{font-size:1.4rem}.dashboard-grid{grid-template-columns:1fr;gap:1rem}.metric-card__value{font-size:2.2rem}[style*=minmax\(450px],[style*=minmax\(420px],[style*=minmax\(400px]{grid-template-columns:1fr!important}}@media (max-width:640px){html,body{font-size:15px}.container{padding:1rem .85rem}.glass-panel{padding:1.1rem}.app-header{flex-wrap:wrap;gap:.45rem;padding:.65rem .85rem}.app-header__brand{flex:1;gap:.55rem;min-width:0}.app-header__actions{gap:.4rem}.brand-mark{font-size:1.25rem}.badge{letter-spacing:.04em;padding:.22rem .55rem;font-size:.68rem}.btn-primary,.btn-secondary,.btn-danger{padding:.65rem 1.1rem;font-size:.92rem}.btn-icon{width:38px;height:38px}.tab-bar{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.btn-tab{white-space:nowrap;flex-shrink:0;padding:.5rem .85rem;font-size:.88rem}.data-table{font-size:.85rem}.data-table th,.data-table td{padding:.55rem .5rem}.data-table thead tr{font-size:.7rem}.form-label{font-size:.72rem}.form-input,.form-textarea,.form-select{padding:.65rem .85rem;font-size:.95rem}.metric-card{padding:1.3rem 1rem}.metric-card__value{font-size:1.9rem}h1{font-size:1.5rem}h2{font-size:1.2rem}.glow-orb-primary,.glow-orb-secondary{width:280px;height:280px}.app-footer{margin-top:1.5rem;padding:1rem;font-size:.78rem}}@media (max-width:400px){.glass-panel{padding:.95rem}.brand-mark{font-size:1.1rem}.btn-primary,.btn-secondary,.btn-danger{padding:.6rem .9rem;font-size:.88rem}}.icon-inline{vertical-align:middle;justify-content:center;align-items:center;width:1.1em;height:1.1em;margin-right:.35rem;display:inline-flex}.logo-container{filter:drop-shadow(0 4px 12px #8a63e226);transition:transform .4s cubic-bezier(.34,1.56,.64,1),filter .4s}.logo-container:hover{filter:drop-shadow(0 12px 28px #8a63e280)drop-shadow(0 4px 10px #00bfff4d);transform:translateY(-6px)scale(1.08)}
