:root{
  --brand:#145c3b;--brand-dark:#0d462d;--gold:#c59a45;--bg:#f5f7f5;--surface:#fff;--text:#1c2621;--muted:#6b756f;--border:#dfe5e1;--danger:#a33a3a;--warning:#9a6a24;--success:#25704b;
  --shadow:0 10px 30px rgba(21,48,35,.08);--radius:18px;--max:1180px
}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
a{color:inherit}.shell{min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;position:sticky;top:0;z-index:30}.topbar-inner{width:min(var(--max),calc(100% - 36px));margin:auto;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.01em}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800}.brand small{display:block;color:var(--muted);font-weight:500;font-size:11px}.nav{display:flex;align-items:center;gap:4px;margin-left:auto}.nav button{border:0;background:transparent;padding:10px 13px;border-radius:10px;color:var(--muted)}.nav button.active,.nav button:hover{background:#eef5f1;color:var(--brand);font-weight:700}.user-chip{display:flex;align-items:center;gap:9px;padding-left:12px;border-left:1px solid var(--border)}.avatar{width:34px;height:34px;border-radius:50%;background:#e9f2ed;color:var(--brand);display:grid;place-items:center;font-weight:800}.main{width:min(var(--max),calc(100% - 36px));margin:30px auto 90px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--brand);margin-bottom:6px}.page-head h1,.section-head h2{margin:0}.page-head p,.muted{color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:1px solid var(--border);background:#fff;color:var(--text);padding:11px 15px;border-radius:11px;font-weight:700}.btn:hover{border-color:#bbc9c0}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#182019}.btn.danger{color:var(--danger);border-color:#e4c1c1}.btn.small{padding:8px 11px;font-size:13px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1.25fr .75fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 1px 0 rgba(0,0,0,.01)}.panel.flat{box-shadow:none}.section{margin-top:26px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}.section-head p{margin:4px 0 0;color:var(--muted)}.metric{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;font-size:26px;margin-top:8px}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.subject-card{border:1px solid var(--border);background:#fff;border-radius:16px;padding:18px;text-align:left;display:block;width:100%;position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--subject)}.subject-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.subject-card .code{font-weight:900;color:var(--subject)}.subject-card h3{margin:6px 0 15px;font-size:17px}.subject-card .meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.ai-box{border-left:4px solid var(--gold);background:#fffcf5}.ai-box h3{margin:2px 0 8px}.ai-box p{margin:0;line-height:1.55}.list{display:grid;gap:10px}.row{display:grid;grid-template-columns:1.35fr .8fr .75fr auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.row strong,.row small{display:block}.row small{color:var(--muted);margin-top:3px}.status{font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px;background:#edf1ef;color:#506059;white-space:nowrap}.status.pending{background:#fff3dc;color:#805c15}.status.accepted{background:#e7f4ec;color:#226340}.status.rejected{background:#f8e7e7;color:#8d3030}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px;border-bottom:1px solid var(--border)}.data-table td{padding:13px 10px;border-bottom:1px solid var(--border);vertical-align:top}.data-table tr.clickable:hover{background:#f7faf8;cursor:pointer}.filters{display:grid;grid-template-columns:1.3fr repeat(3,.8fr);gap:10px;margin-bottom:16px}.field label{display:block;font-size:12px;font-weight:800;color:#53625a;margin-bottom:6px}.field input,.field select,.field textarea,.filters input,.filters select{width:100%;border:1px solid #ccd6d0;background:#fff;border-radius:10px;padding:11px 12px;color:var(--text)}.field textarea{min-height:120px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid .wide{grid-column:1/-1}.chapter-checks{display:flex;gap:8px;flex-wrap:wrap}.chapter-check{border:1px solid var(--border);background:#fff;padding:9px 11px;border-radius:10px}.chapter-check.selected{background:#edf5f0;border-color:#8db39d;color:var(--brand);font-weight:800}.qb-card{display:grid;grid-template-columns:1fr auto;gap:12px;padding:15px;border:1px solid var(--border);border-radius:14px;margin-bottom:10px;background:#fff}.qb-card.selected{border-color:#7daa8e;background:#f3f8f5}.qb-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.tag{font-size:11px;padding:4px 7px;border-radius:8px;background:#f0f3f1;color:#5a665f}.exam-shell{min-height:100vh;background:#f4f6f4}.exam-top{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--border)}.exam-top-inner{width:min(1050px,calc(100% - 28px));margin:auto;height:68px;display:flex;align-items:center;gap:16px}.exam-top .timer{margin-left:auto;font-weight:900;color:var(--brand)}.exam-main{width:min(1050px,calc(100% - 28px));margin:24px auto 100px}.question-wrap{display:grid;grid-template-columns:220px 1fr;gap:18px}.question-nav{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px;height:max-content;position:sticky;top:92px}.qnums{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.qnums button{aspect-ratio:1;border:1px solid var(--border);background:#fff;border-radius:9px}.qnums button.active{background:var(--brand);color:#fff;border-color:var(--brand)}.question-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:24px}.question-card h2{margin-top:0}.scenario{background:#f6f8f6;border-left:3px solid var(--brand);padding:15px;border-radius:10px;line-height:1.55;margin:14px 0}.options{display:grid;gap:10px}.option{border:1px solid var(--border);padding:13px;border-radius:11px;display:flex;gap:10px;align-items:flex-start}.option.selected{border-color:#77a48a;background:#f1f7f3}.answer-mode{display:flex;gap:9px;margin:18px 0}.answer-mode button{flex:1}.answer-box textarea{width:100%;min-height:230px;border:1px solid #cbd5ce;border-radius:12px;padding:14px;line-height:1.5}.upload-zone{border:1.5px dashed #aebeb4;border-radius:14px;padding:22px;text-align:center;background:#fafcfb}.bottom-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.login-page{min-height:100vh;display:grid;place-items:center;background:#f2f5f3;padding:20px}.login-card{width:min(390px,100%);background:#fff;border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:var(--shadow)}.login-brand{text-align:center;margin-bottom:24px}.login-brand .brand-mark{margin:0 auto 12px;width:48px;height:48px}.login-brand h1{font-size:23px;margin:0}.login-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f0f3f1;padding:4px;border-radius:11px;margin-bottom:18px}.login-tabs button{border:0;background:transparent;border-radius:8px;padding:9px;font-weight:700;color:var(--muted)}.login-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 1px 5px rgba(0,0,0,.07)}.login-card .field{margin-bottom:13px}.login-card .btn{width:100%;margin-top:4px}.login-note{text-align:center;color:var(--muted);font-size:12px;margin:15px 0 0}.profile-head{display:flex;align-items:center;gap:15px}.profile-avatar{width:58px;height:58px;border-radius:16px;background:#e9f2ed;color:var(--brand);font-size:20px;display:grid;place-items:center;font-weight:900}.attempt-card{border:1px solid var(--border);border-radius:14px;padding:15px;margin-bottom:10px}.attempt-card .score{font-size:24px;font-weight:900;color:var(--brand)}.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed #cbd5cf;border-radius:14px}.toast{position:fixed;right:20px;bottom:20px;background:#18241e;color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(8px);transition:.2s;z-index:90}.toast.show{opacity:1;transform:none}.modal-backdrop{position:fixed;inset:0;background:rgba(15,25,19,.46);display:grid;place-items:center;padding:18px;z-index:80}.modal{width:min(560px,100%);max-height:85vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.18)}.modal h2{margin-top:0}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}.mobile-nav{display:none}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.subject-heading{padding:22px;border-radius:18px;background:var(--soft);border:1px solid color-mix(in srgb,var(--subject) 20%,white)}.subject-heading h1{color:var(--subject);margin:2px 0 4px}.subject-heading p{margin:0;color:#5d6861}.progress{height:8px;background:#edf0ee;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--subject);border-radius:inherit}
@media(max-width:900px){.grid.two,.grid.three,.grid.four,.kpi-strip{grid-template-columns:1fr 1fr}.subject-grid{grid-template-columns:1fr 1fr}.question-wrap{grid-template-columns:1fr}.question-nav{position:static}.qnums{grid-template-columns:repeat(8,1fr)}.filters{grid-template-columns:1fr 1fr}.nav{display:none}.main{margin-bottom:100px}.mobile-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:#fff;padding:12px 5px;font-size:11px;color:var(--muted)}.mobile-nav button.active{color:var(--brand);font-weight:900}.user-chip{margin-left:auto}}
@media(max-width:640px){.topbar{height:62px}.topbar-inner,.main{width:min(100% - 24px,var(--max))}.brand small,.user-chip span{display:none}.main{margin-top:20px}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.grid.two,.grid.three,.grid.four,.kpi-strip,.subject-grid,.form-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.panel{padding:16px;border-radius:15px}.row{grid-template-columns:1fr auto}.row>*:nth-child(2),.row>*:nth-child(3){display:none}.qnums{grid-template-columns:repeat(6,1fr)}.question-card{padding:17px}.answer-mode{flex-direction:column}.bottom-actions{position:sticky;bottom:10px;background:#fff;padding:9px;border:1px solid var(--border);border-radius:13px}.exam-top-inner{height:60px}.exam-top .brand span{display:none}.subject-heading{padding:17px}.table-wrap{margin:0 -16px;padding:0 16px}.modal{align-self:end;border-radius:18px 18px 0 0;margin-bottom:-18px}.login-card{padding:24px}.qb-card{grid-template-columns:1fr}.qb-card .btn{width:100%}}
@media print{.no-print,.topbar,.main,.mobile-nav,.modal-backdrop,.toast{display:none!important}.print-paper{display:block!important}body{background:#fff}.print-paper{font-family:Georgia,serif;color:#000;padding:15mm}.print-paper h1{text-align:center}.print-paper .pq{break-inside:avoid;margin:18px 0}.print-paper footer{margin-top:30px;border-top:1px solid #999;padding-top:8px;font-size:10px}}

/* Teacher-controlled academic catalogue and Question Bank import */
.catalog-manager{margin-bottom:22px}.catalog-grid{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}.catalog-table{min-width:680px}.catalog-table td{vertical-align:middle}.catalog-link{border:0;background:transparent;text-align:left;padding:0;color:inherit}.catalog-link small{display:block;color:var(--muted);margin-top:4px}.catalog-actions{white-space:nowrap;text-align:right}.catalog-actions .btn{margin:2px}.selected-row{background:#f0f7f3}.catalog-chapters{border-top:1px solid var(--border);padding-top:22px}.catalog-chapters h3{margin:0}.import-modal{width:min(720px,100%)}.import-zone{margin-top:18px}.import-progress,.import-errors,.import-ready{border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:18px;background:#fafcfb}.import-errors{border-color:#e4c1c1;background:#fff8f8;color:#6f2b2b}.import-errors ol{max-height:260px;overflow:auto;padding-left:22px}.import-ready h3{margin:12px 0}.import-kpis{grid-template-columns:repeat(4,1fr)}.import-kpis .metric{padding:13px}.import-kpis .metric strong{font-size:21px}

@media(max-width:980px){.catalog-grid{grid-template-columns:1fr}.catalog-chapters{border-left:0;border-top:1px solid var(--border);padding:20px 0 0}.import-kpis{grid-template-columns:repeat(2,1fr)}}

/* Profile, login-about and attempt-history refinements */
.login-stack{width:min(430px,100%);display:grid;gap:14px}.login-about{background:transparent;text-align:center;padding:0 12px;color:var(--muted);font-size:12.5px;line-height:1.5}.login-about p{margin:5px 0 0}.login-about strong{color:var(--text)}
.profile-form{margin-top:20px}.rule{border:0;border-top:1px solid var(--border);margin:22px 0}.privacy-note{margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}
.history-grid{display:grid;gap:10px}.history-card{display:grid;grid-template-columns:1.5fr auto auto auto;gap:12px;align-items:center;border-bottom:1px solid var(--border);padding:12px 0}.history-card p{margin:4px 0 0;color:var(--muted)}
.attempt-link{display:block;width:100%;text-align:left;background:#fff;color:inherit}.attempt-link:hover{border-color:#9eb5a7;background:#fbfdfc}
.stored-question{padding:18px 0;border-bottom:1px solid var(--border)}.stored-question:last-child{border-bottom:0}.answer-review{background:#f7faf8;border:1px solid var(--border);border-radius:12px;padding:15px;margin-top:10px}.answer-content{line-height:1.65;margin-top:7px;white-space:normal}.paper-note{background:#fffaf0}.answer-empty{color:var(--muted);font-style:italic;margin-top:10px}.assessment-filters{grid-template-columns:1.5fr .75fr .75fr}
@media(max-width:640px){.login-page{align-items:start;padding-top:8vh}.login-stack{width:100%}.login-about{padding:0 8px}.history-card{grid-template-columns:1fr auto}.history-card .btn{grid-column:1/-1;width:100%}.assessment-filters{grid-template-columns:1fr}.stored-question .section-head{align-items:flex-start}}

@media(max-width:900px){.mobile-nav{overflow-x:auto;grid-auto-columns:minmax(72px,1fr)}.mobile-nav button{min-width:72px}}

/* Split login, first-login password setup and simplified header */
.topbar-inner{
  display:grid;
  grid-template-columns:minmax(205px,240px) minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
}
.topbar-brand{min-width:0}
.topbar-brand>div:last-child{min-width:0}
.topbar-brand small{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{margin-left:0;justify-content:center;min-width:0;gap:3px}
.nav button{white-space:nowrap;padding:10px 12px}
.logout-area{display:flex;justify-content:flex-end;align-items:center}

.login-page.login-modern{
  min-height:100vh;
  display:grid;
  place-items:center;
  background:#101713;
  padding:8px;
}
.login-frame{
  width:min(1480px,100%);
  min-height:calc(100vh - 16px);
  display:grid;
  grid-template-columns:minmax(0,1.48fr) minmax(390px,.98fr);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.18);
}
.login-about-panel{
  color:#fff;
  background:
    radial-gradient(circle at 91% 94%,transparent 0 175px,rgba(197,154,69,.64) 176px 177px,transparent 178px),
    linear-gradient(145deg,#0c4c34 0%,#0b432f 62%,#0a3d2c 100%);
  padding:clamp(38px,5vw,78px);
  position:relative;
}
.login-about-inner{height:100%;max-width:790px;margin:auto;display:flex;flex-direction:column}
.login-about-brand{display:flex;align-items:center;gap:22px;margin-bottom:clamp(52px,8vh,90px)}
.login-dss-mark{width:88px;height:88px;border-radius:16px;background:var(--gold);color:#123d2b;display:grid;place-items:center;font-size:24px;font-weight:900;letter-spacing:.04em;flex:0 0 auto}
.login-about-brand h1{margin:7px 0 0;font-size:clamp(30px,3vw,48px);letter-spacing:-.025em}
.login-kicker{font-size:12px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:#edf7f1}
.gold-text{color:#e2bd6f}
.login-about-copy{max-width:730px}
.login-about-copy h2{font-size:clamp(40px,5vw,72px);line-height:.98;letter-spacing:-.045em;margin:16px 0 28px;max-width:700px}
.login-about-copy p{font-size:clamp(16px,1.45vw,20px);line-height:1.65;color:#e3eee8;margin:0 0 16px;max-width:720px}
.login-about-copy p strong{color:#fff}
.login-about-points{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.2)}
.login-about-points div{display:grid;gap:6px}
.login-about-points strong{color:#fff;font-size:14px}
.login-about-points span{color:#bcd1c6;font-size:12.5px;line-height:1.45}
.login-about-footer{margin-top:auto;padding-top:34px;display:flex;justify-content:space-between;gap:18px;color:#bcd1c6;font-size:12px;border-top:1px solid rgba(255,255,255,.15)}
.login-about-footer strong{color:#fff}

.login-access-panel{background:#fff;display:grid;place-items:center;padding:clamp(36px,5vw,72px)}
.login-access-inner{width:min(500px,100%)}
.login-access-inner>.eyebrow{margin-bottom:14px}
.login-access-inner h2{font-size:clamp(38px,4vw,58px);letter-spacing:-.035em;margin:0 0 28px}
.login-access-inner .login-tabs{margin:0 0 26px}
.login-access-inner .field{margin-bottom:17px}
.login-access-inner .field label{font-size:13px}
.login-access-inner .field input{padding:15px 16px;border-radius:12px;font-size:16px}
.login-submit{width:100%;padding:14px 18px;margin-top:4px;font-size:16px}
.login-access-note{font-size:12.5px;line-height:1.55;color:var(--muted);margin:24px 0 0}

.password-setup-page{min-height:100vh;display:grid;place-items:center;background:#eef3f0;padding:20px}
.password-setup-card{width:min(470px,100%);background:#fff;border:1px solid var(--border);border-radius:22px;padding:32px;box-shadow:var(--shadow)}
.password-setup-card>.brand{margin-bottom:30px}
.password-setup-card h1{font-size:30px;margin:6px 0 12px;letter-spacing:-.025em}
.password-setup-card>p{color:var(--muted);line-height:1.6;margin-bottom:22px}
.password-setup-card .field{margin-bottom:14px}
.password-setup-card form .btn{width:100%;margin-top:5px}
.text-btn{border:0;background:transparent;width:100%;margin-top:10px;color:var(--muted)}
.onboarding-page{align-items:start;padding-block:36px}
.onboarding-card{width:min(900px,100%)}
.onboarding-card .history-grid{margin-bottom:20px}
.attempt-entry-form{margin-top:20px;padding:20px;border:1px solid var(--border);border-radius:16px;background:#f8faf9}
.attempt-entry-form .field textarea{min-height:76px}
.onboarding-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}
.onboarding-actions .btn{width:auto;margin-top:0}
.credential-box{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;align-items:center;background:#f3f7f5;border:1px solid var(--border);border-radius:14px;padding:18px;margin:20px 0}
.credential-box span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.credential-box strong,.credential-box code{font-size:18px;font-weight:900;overflow-wrap:anywhere}

@media(max-width:1050px){
  .topbar-inner{grid-template-columns:minmax(180px,210px) minmax(0,1fr) auto;gap:12px}
  .nav button{padding:9px 8px;font-size:13px}
  .login-frame{grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr)}
  .login-about-panel{padding:48px 42px}
  .login-about-points{grid-template-columns:1fr}
  .login-about-points div{grid-template-columns:145px 1fr;gap:12px}
}

@media(max-width:900px){
  .topbar-inner{display:flex;gap:14px}
  .logout-area{margin-left:auto}
  .login-page.login-modern{padding:0;background:#fff;place-items:stretch}
  .login-frame{min-height:100vh;border-radius:0;grid-template-columns:1fr;box-shadow:none}
  .login-access-panel{order:1;min-height:67vh;padding:48px 28px}
  .login-about-panel{order:2;padding:44px 28px}
  .login-about-inner{max-width:620px}
  .login-about-brand{margin-bottom:35px}
  .login-about-copy h2{font-size:42px;max-width:560px}
  .login-about-copy p{font-size:16px}
  .login-about-footer{margin-top:38px}
}

@media(max-width:640px){
  .topbar-brand small{display:block;max-width:155px;font-size:10px}
  .topbar-brand .brand-mark{width:35px;height:35px;border-radius:10px}
  .logout-area .btn{padding:8px 10px}
  .login-access-panel{padding:42px 22px;min-height:62vh}
  .login-access-inner h2{font-size:42px;margin-bottom:22px}
  .login-about-panel{padding:38px 22px}
  .login-dss-mark{width:64px;height:64px;font-size:18px}
  .login-about-brand{gap:15px;margin-bottom:30px}
  .login-about-brand h1{font-size:29px}
  .login-about-copy h2{font-size:36px}
  .login-about-points div{grid-template-columns:1fr}
  .login-about-footer{flex-direction:column;gap:4px}
  .password-setup-card{padding:24px}
  .onboarding-actions{align-items:stretch;flex-direction:column-reverse}
  .onboarding-actions .btn{width:100%}
  .credential-box{grid-template-columns:1fr}
}

/* Service connection indicator */
.api-connection{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:13px;font-weight:700;color:var(--muted)}
.api-connection span{width:9px;height:9px;border-radius:50%;background:#9aa5a0;box-shadow:0 0 0 4px rgba(154,165,160,.12)}
.api-connection.connected{color:#145c3b}.api-connection.connected span{background:#1e8a57;box-shadow:0 0 0 4px rgba(30,138,87,.12)}
.api-connection.checking span{background:#c99b32;box-shadow:0 0 0 4px rgba(201,155,50,.12)}
.api-connection.error{color:#9b2c2c}.api-connection.error span{background:#c74444;box-shadow:0 0 0 4px rgba(199,68,68,.12)}

/* Private written-answer uploads and AI marking reports */
.answer-upload{margin-top:14px;text-align:left}.answer-upload>p{margin:5px 0 13px;color:var(--muted);font-size:13px}.answer-upload input[type=file]{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px}.uploaded-files{display:grid;gap:8px;margin-top:12px}.uploaded-file{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.uploaded-file span,.uploaded-file small{display:block}.uploaded-file small{color:var(--muted);margin-top:3px}.ai-report{border-left:4px solid var(--gold)}.ai-report ul{margin:9px 0 0;padding-left:20px}.ai-report li{margin:6px 0;line-height:1.45}.ai-question-report{margin-top:14px;padding:13px;border:1px solid #dfc995;border-radius:12px;background:#fffaf0}.ai-question-report p{margin:6px 0}.ai-question-report small{color:var(--muted)}
@media(max-width:640px){.uploaded-file{align-items:flex-start;flex-direction:column}.uploaded-file .actions,.uploaded-file>.btn{width:100%}.uploaded-file .actions .btn,.uploaded-file>.btn{flex:1}.ai-report .grid.two{grid-template-columns:1fr}}
