@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap");:root{--ink:#142033;--muted:#647087;--line:#dde4ed;--bg:#f5f7fb;--panel:#fff;--nav:#0c2447;--blue:#1f63d7;--teal:#08a8a0;--red:#d9475c;--amber:#e9a126;--green:#2b9566;--shadow:0 10px 35px rgba(20,32,51,.08)}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:DM Sans,Arial,sans-serif}button,input,select,textarea{font:inherit}a,button{transition:.18s ease}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}b,h1,h2,h3,strong{font-family:Manrope,sans-serif}h1{font-size:clamp(1.8rem,3vw,2.5rem);letter-spacing:-.04em;margin:0 0 6px}h2{letter-spacing:-.025em}p{line-height:1.6}p,small{color:var(--muted)}.center-screen,.signin{min-height:100vh;display:grid;place-items:center;align-content:center;gap:26px;padding:24px;background:radial-gradient(circle at 20% 20%,#dbeafe 0,transparent 32%),radial-gradient(circle at 80% 70%,#d4f7f0 0,transparent 28%),#f8fafc}.center-screen p{margin:0}.spinner{width:34px;height:34px;border:3px solid #cdd9ea;border-top:3px solid var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.brand{display:flex;align-items:center;gap:12px}.brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:white;background:linear-gradient(145deg,var(--blue),var(--teal));font-size:25px;font-family:Georgia}.brand div{display:flex;flex-direction:column}.brand b{font-size:16px}.brand small{font-size:9px;font-weight:800;letter-spacing:.18em;color:#8291a6}.signin>.brand{position:absolute;top:28px;left:32px}.signin-card{width:min(560px,100%);padding:56px;background:white;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);text-align:center}.signin-card h1{font-size:clamp(2.3rem,6vw,4.4rem);margin:20px 0}.signin-card p{font-size:18px}.signin-card small{display:block;margin-top:18px}.error{padding:12px;background:#fff0f2;color:#a3293a;border-radius:10px;margin:12px 0}.auth-form{display:grid;gap:13px;text-align:left;margin-top:24px}.auth-form label,.signin-card>label{display:grid;gap:6px;font-size:13px;font-weight:700;text-align:left}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#eef2f7;border-radius:10px}.auth-tabs button,.text-button{border:0;background:transparent;color:var(--muted);padding:9px;border-radius:8px;font-weight:700}.auth-tabs button.active{background:white;color:var(--blue);box-shadow:0 2px 8px #ccd5e3}.text-button{color:var(--blue)}.success{padding:12px;background:#e4f8ed;color:#21704e;border-radius:10px}.account>.text-button{font-size:12px;margin-left:8px}.button.google{gap:10px;background:white;color:#30343b;border:1px solid #cbd2dc}.button.google:hover{background:#f7f9fc}.button.google span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font:800 14px Arial;color:#4285f4}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.auth-divider:after,.auth-divider:before{content:"";height:1px;background:var(--line);flex:1}.shell{display:grid;grid-template:"head head" 72px "side main" calc(100vh - 72px)/244px 1fr}.shell>header{grid-area:head;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:32px;z-index:4}.shell>aside{grid-area:side;background:var(--nav);color:#fff;padding:26px 14px;display:flex;flex-direction:column;justify-content:space-between;overflow:auto}.shell>main{grid-area:main;padding:36px clamp(20px,4vw,56px);overflow:auto;max-width:1600px;width:100%;margin:auto}.portal-switch{display:flex;background:#eef2f7;border-radius:10px;padding:3px;margin-right:auto}.portal-switch button{border:0;background:transparent;border-radius:8px;padding:8px 16px;color:var(--muted);font-weight:700}.portal-switch button.active{background:white;color:var(--blue);box-shadow:0 2px 8px #ccd5e3}.account{display:flex;align-items:center;gap:9px}.account>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#d9e8ff;color:var(--blue);font-weight:800}.account div{display:flex;flex-direction:column;font-size:12px}.account a{font-size:12px;margin-left:10px;color:var(--muted)}aside nav{display:grid;gap:7px}aside nav button{display:flex;align-items:center;gap:13px;border:0;background:transparent;color:#b8c9df;padding:12px 14px;border-radius:10px;font-weight:600;text-align:left}aside nav button i{font-style:normal;width:20px;text-align:center;font-size:18px}aside nav button.active,aside nav button:hover{background:#183a67;color:white}.side-note{padding:15px;border:1px solid #294a75;border-radius:12px;display:flex;flex-direction:column}.side-note small{color:#9db0c9;margin-top:5px;word-break:break-all}.toast{position:fixed;z-index:30;right:26px;top:90px;background:#132b4e;color:white;padding:13px 20px;border-radius:11px;box-shadow:var(--shadow)}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.heading p{margin:0}.heading>div:last-child{display:flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;border:0;text-decoration:none;border-radius:10px;padding:11px 17px;font-weight:700}.button.primary{background:var(--blue);color:#fff}.button.primary:hover{background:#174da9;transform:translateY(-1px)}.button.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.button.light{background:white;color:var(--nav)}.button.danger{background:var(--red);color:#fff}.button.wide{width:100%}.badge{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:#e8f0ff;color:#1e5fca;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.badge.green{background:#dcf7e9;color:#1d8053}.badge.amber{background:#fff1d5;color:#9b6500}.badge.red{background:#ffe1e5;color:#ae3043}.badge.gray{background:#edf0f4;color:#637084}.announcement{background:#fff6dc;border:1px solid #f1da99;padding:12px 16px;border-radius:10px;margin:-8px 0 20px;color:#705817}.question-image{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:18px auto;border-radius:10px;border:1px solid var(--line);background:#fff}.metrics{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:15px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:14px;padding:19px;box-shadow:0 4px 16px rgba(20,32,51,.04);display:flex;flex-direction:column;gap:7px}.metric strong{font-size:27px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 5px 20px rgba(20,32,51,.04)}.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.feature{background:linear-gradient(125deg,#0e376d,#17616c);color:#fff;overflow:hidden;position:relative}.feature p{color:#d3e4ef}.progress{height:8px;background:#e7edf4;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:var(--teal)}.audit{display:flex;flex-direction:column;border-top:1px solid var(--line);padding:11px 0}.audit:first-of-type{border:0}.empty{padding:70px 24px;text-align:center;border:1px dashed #c4cfdd;border-radius:17px;background:#fafcff}.empty>span{display:grid;place-items:center;margin:auto;width:52px;height:52px;border-radius:50%;background:#e6efff;color:var(--blue);font-size:28px}.card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.question-summary{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.question-summary:last-child{border:0}.question-summary h3{font-size:15px;margin:4px 0;line-height:1.5}.question-summary p{margin:0;font-size:12px}.question-summary>div>b{font-size:11px;color:var(--blue)}.test-card h2{margin-bottom:5px}.setup{display:grid;grid-template-columns:repeat(3,1fr) 1.2fr;gap:17px;align-items:end}.editor label,.form-grid label,.setup label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px}.setup-summary{height:100%;padding:18px;border-radius:12px;background:#eff5ff;display:flex;flex-direction:column}.setup-summary b{font-size:30px}.setup-summary button{margin-top:auto}input,select,textarea{width:100%;border:1px solid #cfd8e5;background:white;border-radius:9px;padding:11px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #deebff}textarea{min-height:120px;resize:vertical}.runner{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px}.question-card>small{font-weight:700;color:var(--blue)}.question-card>h2{font-size:20px;line-height:1.65;margin:16px 0 24px}.numeric{display:flex;flex-direction:column;gap:8px;font-weight:700}.numeric input{font-size:20px;max-width:300px}.options{display:grid;gap:10px}.options label{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.options label:has(input:checked){border-color:var(--blue);background:#eef5ff}.options input{width:auto}.options b{display:grid;place-items:center;width:27px;height:27px;background:#eef1f5;border-radius:7px}.question-card details{margin-top:20px;padding:13px;background:#fff8e7;border-radius:9px}.question-card summary{font-weight:700;cursor:pointer}.runner-actions{display:flex;justify-content:space-between;margin-top:25px}.palette h3{margin-top:0}.palette>div{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.palette button{aspect-ratio:1;border:1px solid var(--line);background:#f4f6f9;border-radius:8px}.palette button.current{border:2px solid var(--blue)}.palette button.answered{background:#dcf7e9;color:#17633f}.palette button.review{box-shadow:inset 0 -4px var(--amber)}.solutions{display:grid;gap:15px}.solution{border-left:5px solid var(--red)}.solution.correct{border-left-color:var(--green)}.solution h3{font-size:16px;line-height:1.5}.test-instructions{max-width:720px;margin:auto}.test-instructions dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.test-instructions dl div{padding:15px;background:#f3f6fa;border-radius:10px}.test-instructions dt{color:var(--muted)}.test-instructions dd{margin:5px 0 0;font-weight:800}.test-instructions .button{margin-right:10px}.test-bar{position:sticky;top:-36px;z-index:3;margin:-36px -56px 25px;padding:15px 56px;background:#122b4f;color:white;display:flex;align-items:center;gap:25px}.test-bar>span{margin-left:auto}.test-bar strong{font-size:20px;margin-left:7px}.table{background:white;border:1px solid var(--line);border-radius:14px;overflow:auto}.tr{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:15px;align-items:center;padding:14px 18px;border-top:1px solid var(--line);min-width:720px}.tr:first-child{border:0}.tr.head{background:#edf2f8;color:#59677b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.tr span{display:flex;flex-direction:column}.tr small{margin-top:3px}.tr.qrow{grid-template-columns:2.6fr 1fr 1.2fr .8fr .8fr 1.6fr}.row-actions{flex-direction:row!important;gap:7px;flex-wrap:wrap}.row-actions button,.student-row>button{border:0;background:#edf4ff;color:var(--blue);padding:7px;border-radius:7px}.search{max-width:520px;margin-bottom:15px}.editor{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:18px}.editor aside,.editor section{display:grid;gap:16px;height:max-content}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.drop{display:grid;place-items:center;text-align:center;padding:60px;border:2px dashed #b8c7db;background:white;border-radius:17px;cursor:pointer}.drop input{display:none}.drop>span{font-size:36px;color:var(--blue)}.drop h2{margin-bottom:0}.error-list{padding:15px 20px;background:#fff0f2;border:1px solid #f0c3ca;border-radius:12px}.error-list p{color:#a42f40;margin:5px}.import-preview{margin-top:20px}.builder{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px}.select-question{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:14px 0}.select-question input{width:auto}.select-question span{display:flex;flex-direction:column;font-size:13px}.summary{text-align:center;height:max-content;position:sticky;top:0}.summary>strong{display:block;font-size:44px;color:var(--blue)}.student-row{grid-template-columns:2fr 1fr .8fr .8fr .8fr .8fr}.heat{display:grid;grid-template-columns:1.4fr 3fr .5fr .8fr;gap:15px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.heat>div{height:9px;background:#ecf0f4;border-radius:8px;overflow:hidden}.heat i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--amber),var(--green))}@media(max-width:950px){.shell{grid-template:"head" 66px "main" 1fr/1fr}.shell>header{padding:0 16px}.shell>aside{position:fixed;z-index:8;bottom:0;left:0;right:0;padding:8px;background:var(--nav)}.shell>aside nav{display:flex;overflow:auto}.shell>aside nav button{min-width:max-content;padding:9px 12px}.side-note{display:none}.shell>main{padding:28px 18px 90px}.account a,.account div{display:none}.brand b{font-size:13px}.brand small{font-size:7px}.metrics{grid-template-columns:repeat(2,1fr)}.builder,.dashboard-grid,.editor,.runner{grid-template-columns:1fr}.setup{grid-template-columns:repeat(2,1fr)}.palette{order:-1}.palette>div{grid-template-columns:repeat(10,1fr)}.summary{position:static}.test-bar{top:-28px;margin:-28px -18px 20px;padding:12px 18px}.test-bar>b{display:none}}@media(max-width:600px){.shell>header{gap:10px}.brand>span{width:34px;height:34px}.portal-switch button{padding:7px 10px}.heading{align-items:flex-start;flex-direction:column}.heading>div:last-child{width:100%;flex-wrap:wrap}.dashboard-grid,.form-grid,.metrics,.setup{grid-template-columns:1fr}.signin-card{padding:34px 24px}.test-instructions dl{grid-template-columns:1fr}.palette>div{grid-template-columns:repeat(5,1fr)}.runner-actions{gap:8px;flex-wrap:wrap}.test-bar{flex-wrap:wrap}.test-bar>span{margin-left:0}.heat{grid-template-columns:1fr .4fr}.heat>div{grid-column:1/-1;order:3}.heat small{display:none}}