:root{--primary:#08065c;--primary-hover:#050344;--primary-secondary:#302a9b;--accent:#ffca05;--accent-soft:#fff3b0;--background:#f5f6ff;--surface:#fff;--surface-alt:#f0f1ff;--surface-accent:#fff9df;--text-primary:#08065c;--text-body:#242447;--text-secondary:#666780;--border:#e2e4f0;--success:#22a06b;--error:#dc4545;--warning:#f59e0b;--shadow-soft:0 12px 28px #08065c14}*{box-sizing:border-box}html{background:var(--background);color:var(--text-body);font-family:Nunito,Segoe UI,sans-serif}body{background:var(--background);min-height:100vh;color:var(--text-body);margin:0;font-family:Nunito,Segoe UI,sans-serif}button,input,select,textarea,.MuiTypography-root,.MuiButton-root,.MuiInputLabel-root,.MuiInputBase-root,.MuiChip-root,.MuiTableCell-root,.MuiMenuItem-root{font-family:Nunito,Segoe UI,sans-serif!important}a{color:inherit}.shell{max-width:1100px;margin:0 auto;padding:28px 20px}.top{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.brand{color:var(--text-primary);font-size:22px;font-weight:900}.pill{background:var(--surface-alt);color:var(--primary);border-radius:999px;padding:9px 14px;font-weight:800}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:8px;padding:24px}.hero{border:1px solid var(--border);background:linear-gradient(135deg,#302a9b0f,#ffca0524)}.grid{gap:18px;display:grid}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{gap:8px;margin-bottom:16px;display:grid}.label{color:var(--text-primary);font-weight:800}.input,.select,.textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-body);border-radius:8px;outline:none;padding:13px 15px}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary-secondary);box-shadow:0 0 0 3px #302a9b1f}.btn{cursor:pointer;border:0;border-radius:14px;padding:13px 18px;font-weight:900}.primary{background:var(--primary);color:var(--surface)}.primary:hover,.btn.primary:hover{background:var(--primary-hover)}.green{background:var(--success);color:var(--surface)}.drop{border:2px dashed var(--border);text-align:center;background:var(--surface-alt);border-radius:8px;place-items:center;gap:8px;padding:34px;display:grid}.bigemoji{font-size:46px}.score{color:var(--primary);font-size:56px;font-weight:1000}.stat{font-size:30px;font-weight:1000}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:14px 10px}.badge{border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800;display:inline-flex}.ok{color:var(--success);background:#22a06b1f}.wait{color:var(--warning);background:#f59e0b24}.nav{flex-wrap:wrap;gap:10px;display:flex}.nav a{color:var(--primary);font-weight:800;text-decoration:none}.feedback{background:var(--surface-alt);border-radius:18px;padding:16px;line-height:1.65}.rating{border-bottom:1px solid var(--border);justify-content:space-between;padding:12px 0;display:flex}.muted{color:var(--text-secondary)}.field-stack,.assignment-list{gap:16px;display:grid}.assignment-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:18px}.assignment-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.assignment-header h3{color:var(--text-primary);margin:0 0 8px;font-size:20px}.status-badge{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.status-badge.pending{color:var(--warning);background:#f59e0b1f}.status-badge.submitted{color:var(--success);background:#22a06b1f}.status-badge.expired{color:var(--error);background:#dc45451f}.meta-row{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px;display:flex}.result-box{background:var(--surface-alt);border-radius:16px;margin-top:16px;padding:12px}.result-head-row{justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13px;font-weight:800;display:flex}.student-video{background:#000;border-radius:12px;width:100%;max-height:240px;margin-top:8px;display:block}.feedback-box{background:var(--surface);border-radius:12px;margin-top:12px;padding:12px}.feedback-box p{margin:8px 0 0;line-height:1.6}.submission-panel{margin-top:14px}.upload-box{margin-bottom:12px}.list-stack{gap:10px;margin-top:16px;display:grid}.mini-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.mini-card span{color:var(--text-primary);font-weight:700}.mini-card small{color:var(--text-secondary);display:block}.teacher-feedback-box{gap:8px;display:grid}.teacher-feedback-box p{margin:0;line-height:1.5}.auth-card{max-width:520px;margin:80px auto}.stack-form{gap:12px;display:grid}.inline-form{flex-wrap:wrap;gap:10px;display:flex}.btn.small{border-radius:12px;padding:8px 12px;font-size:12px}.teacher-card{padding:22px}.teacher-stack{gap:18px;margin-top:20px;display:grid}.empty.small{padding:20px}.landing-shell{background:radial-gradient(circle at top left, #ffca0529, transparent 28%), var(--background);min-height:100vh;color:var(--text-primary)}.landing-inner{max-width:1200px;margin:0 auto;padding:32px 20px 64px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:38px;display:flex}.brand-wrap{align-items:center;gap:14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-secondary) 100%);width:52px;height:52px;color:var(--surface);box-shadow:var(--shadow-soft);border-radius:16px;place-items:center;font-size:28px;font-weight:900;display:grid}.brand-name{color:var(--text-primary);font-size:clamp(1.4rem,2vw,2rem);font-weight:900}.brand-sub{color:var(--text-secondary);letter-spacing:.14em;font-size:.72rem;font-weight:800}.nav-links{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nav-links a,.primary-btn,.secondary-btn{text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s}.primary-btn,.secondary-btn{border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;padding:.9rem 1.4rem;font-weight:800;display:inline-flex}.primary-btn{background:var(--primary);color:var(--surface);box-shadow:0 16px 26px #08065c29}.primary-btn:hover,.secondary-btn:hover,.nav-links a:hover{filter:brightness(.98);transform:translateY(-1px)}.secondary-btn{background:var(--surface);color:var(--primary);border-color:var(--border)}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:stretch;gap:22px;display:grid}.hero-copy,.hero-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:8px}.hero-copy{padding:clamp(24px,4vw,46px)}.eyebrow{background:var(--surface-alt);color:var(--primary);letter-spacing:.12em;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:900;display:inline-block}.hero-copy h1{color:var(--text-primary);margin:16px 0 14px;font-size:clamp(2.2rem,5vw,4rem);line-height:1.08}.hero-copy p{color:var(--text-body);margin:0;font-size:1.05rem;line-height:1.7}.cta-row{flex-wrap:wrap;gap:16px;margin-top:28px;display:flex}.hero-panel{gap:18px;padding:24px;display:grid}.panel-highlight{color:var(--surface);background:linear-gradient(135deg,#08065cf5,#302a9bf5);border-radius:8px;padding:22px}.panel-label{letter-spacing:.12em;color:#ffffffb8;margin-bottom:10px;font-size:12px;font-weight:800}.panel-stat{font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.1}.panel-text{color:#ffffffd9;margin-top:6px;line-height:1.6}.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.mini-card{background:var(--surface-alt);flex-direction:column;align-items:flex-start;gap:8px;display:flex}.mini-label{color:var(--text-secondary);font-weight:700}.mini-card strong{color:var(--text-primary);font-size:1.8rem}.success-card{background:#22a06b14}.assignment-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px}.assignment-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.assignment-head h2{color:var(--text-primary);margin:6px 0 0;font-size:1.3rem}.assignment-label{color:var(--primary-secondary);letter-spacing:.12em;font-size:12px;font-weight:800}.assignment-card p{color:var(--text-body);margin:12px 0 0;line-height:1.6}.status-badge{color:var(--primary);background:#ffca0526;border-radius:999px;justify-content:center;align-items:center;padding:7px 12px;font-size:12px;font-weight:800;display:inline-flex}@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}@media (max-width:760px){.two,.three{grid-template-columns:1fr}.shell{padding:18px 14px}.card{padding:18px}.score{font-size:46px}.assignment-header,.meta-row,.inline-form,.teacher-header,.topbar{flex-direction:column;align-items:flex-start}.teacher-header{width:100%}.landing-inner{padding-inline:16px}.brand-wrap{align-items:flex-start}}
:root{--primary:#08065c;--primary-hover:#050344;--primary-secondary:#302a9b;--accent:#ffca05;--accent-soft:#fff3b0;--background:#f5f6ff;--surface:#fff;--surface-alt:#f0f1ff;--surface-accent:#fff9df;--text-primary:#08065c;--text-body:#242447;--text-secondary:#666780;--border:#e2e4f0;--success:#22a06b;--error:#dc4545;--warning:#f59e0b;--shadow-soft:0 12px 28px #08065c14;--shadow-card:0 18px 40px #08065c14;--ink:var(--text-body);--muted:var(--text-secondary);--blue:var(--primary);--bg:var(--background);--card:var(--surface);--green:var(--success);--yellow:var(--accent);--purple:var(--primary-secondary);--navy:var(--primary);--soft:var(--surface-alt);--primary-navy:var(--primary);--dark-navy:var(--primary-hover);--secondary-blue-purple:var(--primary-secondary);--primary-yellow:var(--accent);--yellow-hover:#e6b600;--light-yellow:var(--accent-soft);--surface-blue:var(--surface-alt);--surface-yellow:var(--surface-accent);--text-on-navy-muted:#ffffffb8}html,body{background:var(--background);color:var(--text-body)}body{background:var(--background);min-height:100vh}.primary,.primary-btn,.MuiButton-containedPrimary{background:var(--primary)!important;color:var(--surface)!important}.MuiButton-root,.btn,.primary-btn,.secondary-btn{border-radius:14px!important}.primary:hover,.primary-btn:hover,.MuiButton-containedPrimary:hover{background:var(--primary-hover)!important}.secondary-btn,.MuiButton-outlined,.MuiButton-text{background:var(--surface)!important;color:var(--primary)!important;border-color:var(--border)!important}.accent-btn,.MuiButton-colorSecondary,button[type=button].accent,button[type=submit].accent{background:var(--accent)!important;color:var(--primary)!important}.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline,.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:var(--primary-secondary)!important;border-width:2px!important}.MuiInputBase-root,.MuiOutlinedInput-root,.MuiInputBase-input,.MuiSelect-select,.MuiChip-root,.MuiPaper-root,.MuiCard-root{transition:border-color .16s,background-color .16s,box-shadow .16s}.MuiOutlinedInput-root,.input,.select,.textarea{border-radius:8px}.MuiPaper-root,.MuiCard-root,.card,.assignment-card,.hero-copy,.hero-panel,.table-wrap,.data-table,.table-card,.result-box,.feedback,.feedback-box,.soft-panel{border-radius:8px!important}.table-wrap,.data-table,.table-card,.MuiTableContainer-root{overflow:hidden}.MuiChip-root,.badge,.status-badge,.pill{border-radius:999px}.MuiButton-root.Mui-disabled{background-color:var(--border)!important;color:var(--text-secondary)!important}.MuiCircularProgress-root{color:var(--primary-secondary)}.sidebar{background:linear-gradient(180deg, var(--primary) 0%, var(--primary-hover) 100%);border-color:#ffffff14}.sidebar nav a.active{color:var(--surface);background:#ffffff1a}.drop,.card,.MuiPaper-root,.MuiCard-root{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft)}.drop:hover,.drop-selected{border-color:var(--primary-secondary);background:var(--surface-alt)}@media (prefers-reduced-motion:no-preference){button,a,.card,.drop,.MuiPaper-root,.MuiCard-root{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}}
