:root{--bg:#f6f8fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#d7dde8;--blue:#2357d9;--blue-dark:#1841a5;--green:#16845b;--amber:#b86b16;--focus:#7aa7ff}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Arial,Apple SD Gothic Neo,Malgun Gothic,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 48px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.eyebrow{color:var(--green);margin:0 0 4px;font-size:13px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:28px;line-height:1.25}h2{margin-bottom:0;font-size:20px}h3{margin-bottom:12px;font-size:16px}.status-pill,.toast{color:#0c6b48;background:#eaf6f1;border:1px solid #b7decf;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;font-size:14px;display:inline-flex}.toast{z-index:10;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #14203724}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:0 10px 28px #1420370f}.login-panel{grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);gap:20px;display:grid}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tabs button,.primary,.secondary,.item-row{border-radius:8px;align-items:center;gap:8px;min-height:40px;display:inline-flex}.tabs button{color:#344054;background:#eef2f7;border:1px solid #0000;padding:10px 14px}.tabs button.active{color:var(--blue);background:#eaf0ff;border-color:#b9c9ff;font-weight:700}.section-title{align-items:center;gap:10px;margin-bottom:18px;display:flex}.section-title svg{color:var(--blue)}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.grid-form.wide{grid-template-columns:repeat(4,minmax(0,1fr))}label{color:#344054;gap:6px;font-size:13px;font-weight:700;display:grid}input,select,textarea{color:var(--ink);background:#fff;border:1px solid #cbd3df;border-radius:8px;outline:none;width:100%;min-height:42px;padding:10px 11px}textarea{resize:vertical;line-height:1.55}input:focus,select:focus,textarea:focus,button:focus-visible{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px #7aa7ff3d}.span-2{grid-column:span 2}.choice-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.button-row{flex-wrap:wrap;gap:10px;display:flex}.primary,.secondary{border:1px solid #0000;justify-content:center;padding:10px 14px;font-weight:700}.primary{background:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark)}.primary:disabled{cursor:not-allowed;background:#95a4bd}.secondary{color:#2b3854;background:#fff;border-color:#cbd3df}.secondary:hover{border-color:var(--blue);color:var(--blue)}.muted{color:var(--muted);margin-bottom:0;line-height:1.55}.split-layout{grid-template-columns:minmax(280px,.95fr) minmax(260px,1.05fr);gap:18px;display:grid}.inline-form{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px;display:flex}.inline-form label{min-width:220px}.item-list{border:1px solid var(--line);border-radius:8px;padding:16px}.item-row{color:var(--ink);background:#fff;border:1px solid #d9dfeb;justify-content:flex-start;width:100%;margin-bottom:8px;padding:9px 10px}.item-row span{color:#475467;text-align:center;background:#eef2f7;border-radius:6px;min-width:34px;padding:3px 6px}.item-row strong{overflow-wrap:anywhere;text-align:left;flex:1}.item-row em{color:var(--amber);font-size:12px;font-style:normal}.data-row,.metric-row{border-bottom:1px solid #edf1f7;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 0;display:grid}.data-row:last-child,.metric-row:last-child{border-bottom:0}.data-row span,.metric-row span,.recommendation span,.metric-card span{color:var(--muted)}.data-row em,.metric-row em{color:var(--amber);font-size:12px;font-style:normal}.report-grid{grid-template-columns:minmax(220px,.7fr) repeat(3,minmax(220px,1fr));gap:16px;display:grid}.score-panel,.domain-table,.metric-card{border:1px solid var(--line);border-radius:8px;padding:16px}.score-panel{align-content:center;min-height:180px;display:grid}.score-panel strong{font-size:52px;line-height:1}.score-panel span{color:var(--muted);font-weight:700}.recommendation{border-bottom:1px solid #edf1f7;gap:5px;padding:10px 0;display:grid}.recommendation:last-child{border-bottom:0}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.metric-card{gap:8px;display:grid}.metric-card strong{font-size:24px}.student-assessment{gap:18px;display:grid}.student-progress,.student-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.student-meta{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.student-meta span{color:#344054;background:#eef2f7;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700}.student-passage,.student-question{border:1px solid var(--line);border-radius:8px;padding:16px}.student-passage{background:#f8fafd}.student-passage p{white-space:pre-wrap;margin-bottom:0;line-height:1.75}.student-choice-list{gap:10px;display:grid}.student-choice{color:var(--ink);text-align:left;background:#fff;border:1px solid #d9dfeb;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:12px;display:grid}.student-choice span{color:#475467;text-align:center;background:#eef2f7;border-radius:6px;min-width:34px;padding:5px 7px}.student-choice strong{font-weight:600}.student-choice.selected{color:var(--blue);background:#eaf0ff;border-color:#9db6ff}.table-wrap{border:1px solid var(--line);border-radius:8px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid #edf1f7;padding:11px 12px}th{color:#344054;background:#f2f5fa;font-size:13px}@media (max-width:860px){.topbar,.login-panel,.split-layout,.student-progress,.student-actions{grid-template-columns:1fr;align-items:stretch}.topbar,.student-progress,.student-actions{display:grid}.student-meta{justify-content:flex-start}.grid-form,.grid-form.wide,.choice-grid,.report-grid,.summary-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}
