:root{--navy:#11142f;--blue:#17366b;--royal:#0b55b6;--ink:#1b2841;--muted:#76829b;--line:#e6eaf2;--bg:#f5f7fb;--gold:#c49238;--green:#14966e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 'Segoe UI',Inter,Arial,sans-serif}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px}h2{letter-spacing:-.4px}a{color:var(--royal);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.brand{font-weight:900;font-size:24px;letter-spacing:-1.4px;color:var(--navy);display:block}.brand span{color:var(--royal)}.brand small{display:block;font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}.eyebrow{font-weight:750;color:var(--royal);font-size:10px;letter-spacing:2px;margin-bottom:7px}.muted{color:var(--muted)}.fine{font-size:12px;color:var(--muted)}.authbg{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 85% 15%,#e5eeff,transparent 35%),linear-gradient(135deg,#eef3fc,#fafbfd)}.login-card{background:#fff;padding:44px;width:min(440px,100%);border:1px solid var(--line);box-shadow:0 20px 65px #14254d15;border-radius:22px}.login-card .brand{margin-bottom:32px}.login-card h1{margin:0 0 7px}.login-card form{margin-top:26px}.login-card .fine{text-align:center;margin:24px 0 0}label{display:block;font-size:13px;font-weight:700;margin:0 0 14px}input,select{width:100%;display:block;margin-top:6px;border:1px solid #dce2eb;border-radius:10px;padding:11px 12px;background:white;outline:none;color:var(--ink)}input:focus,select:focus{border-color:var(--royal);box-shadow:0 0 0 3px #0b55b615}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:11px 16px;font-weight:750;border-radius:10px;text-align:center;min-height:42px;white-space:normal}.btn.primary{background:var(--royal);color:white}.btn.dark{background:var(--navy);color:white;width:100%}.btn.outline{background:white;border-color:#d8dfeb;color:var(--blue)}.btn.warn{background:#fff7e7;border-color:#efcd86;color:#926007}.btn.disabled{background:#edf0f4;color:#9da6b5}.login-card .btn{width:100%}.alert,.success{background:#fff0f0;border:1px solid #f6c3c3;color:#9c2930;padding:12px;border-radius:10px;margin:16px 0}.success{background:#eaf9f1;border-color:#b9e5cd;color:#196745}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:var(--navy);color:#f6f8ff;padding:34px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{color:white;margin:0 0 44px}.sidebar .brand span{color:#7dbafa}.sidebar .brand small{color:#a8b6d0}.side-label{font-size:10px;letter-spacing:2px;color:#7d8dac;font-weight:750;margin:0 10px 14px}.nav{display:block;color:#bfc9de;padding:12px 13px;border-radius:10px;margin:3px 0;font-weight:650}.nav.on,.nav:hover{background:#25375a;color:white}.side-bottom{margin-top:auto;border-top:1px solid #39435c;padding-top:20px;display:flex;flex-direction:column}.side-bottom small{color:#a5b1ca}.side-bottom a{color:#a8d0ff;font-size:13px;margin-top:12px}.content{flex:1;min-width:0;padding:30px clamp(18px,4vw,64px) 55px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar h1{margin:0}.avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#dce9fc;color:var(--blue);font-weight:800}.hero{border-radius:18px;padding:32px 36px;color:white;background:linear-gradient(110deg,#11142f 0%,#17366b 80%,#2667a0);margin-bottom:22px}.hero .eyebrow{color:#98cef9}.hero h2{font-size:26px;margin:0 0 7px}.hero p{color:#c9d9f3;margin:0}.statgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 34px}.stat,.panel,.pkg{border:1px solid var(--line);background:white;border-radius:14px;padding:22px}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:30px;letter-spacing:-1px;margin:8px 0 2px;color:var(--navy)}.section-head{display:flex;justify-content:space-between;align-items:end;margin:28px 0 16px}.section-head h2{font-size:20px;margin:0}.section-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.packagegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:15px}.pkg-top{display:flex;justify-content:space-between;gap:5px}.pill{display:inline-block;background:#ecf3ff;color:#2059a4;border-radius:6px;padding:4px 8px;font-size:10px;letter-spacing:.4px;font-weight:800}.pill.gold{color:#95651f;background:#fff1cf}.pkg h3{font-size:17px;margin:22px 0 5px}.pkg p{color:var(--muted);font-size:13px;margin-bottom:19px}.pkg .btn{width:100%}.panel h2{font-size:19px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#73819a;font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:#f9fafd}td,th{padding:14px 15px;border-bottom:1px solid var(--line)}tr:last-child td{border:0}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.actioncard h3{margin:0 0 7px}.actioncard p{margin:0;color:var(--muted)}.review{margin-bottom:12px}.review p{white-space:pre-line;margin:10px 0}.notice{margin:20px 0}.exambody{background:#f3f5fa}.examhead{background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:15px max(24px,5vw);gap:15px}.examhead .brand{font-size:20px}.examhead .brand small{font-size:9px}.timebox{font-size:11px;font-weight:800;letter-spacing:1px;color:var(--muted);text-align:right}.timebox strong{display:block;font-size:24px;color:var(--navy)}.examwrap{max-width:1280px;margin:32px auto;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.questionbox,.numberbox{border-radius:16px;background:white;border:1px solid var(--line);padding:28px}.questionmeta{display:flex;justify-content:space-between;align-items:center;gap:10px}.questionbox h2{font-size:19px;line-height:1.8;margin:34px 0 25px;white-space:pre-wrap}.choice{display:flex;align-items:flex-start;gap:15px;width:100%;text-align:left;border:1px solid var(--line);background:white;border-radius:10px;padding:15px;margin:10px 0;color:var(--ink)}.choice b{display:grid;place-items:center;width:26px;height:26px;background:#edf2fa;border-radius:6px;color:var(--blue);flex:none}.choice.selected{border-color:var(--royal);background:#eff6ff}.choice.selected b{background:var(--royal);color:white}.qbottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:35px;flex-wrap:wrap}.qbottom .muted{font-size:11px}.numberbox h3{font-size:16px}.numberbox #numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.num{border-radius:7px;border:1px solid #d8dfe9;background:#fff;height:40px;color:var(--blue);font-weight:800;position:relative}.num.answered{background:#e6f8f0;border-color:#8ed5b6;color:#167650}.num.current{outline:2px solid var(--royal);outline-offset:1px}.num.flagged:after{content:'★';position:absolute;top:-6px;right:-4px;color:#e6a03a;font-size:11px}.legend{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0;color:var(--muted);font-size:11px}.numberbox .dark{margin-top:10px}@media(max-width:1000px){.sidebar{width:205px;padding:25px 14px}.examwrap{grid-template-columns:1fr}.numberbox{order:-1}.numberbox #numbers{grid-template-columns:repeat(10,1fr)}}@media(max-width:700px){.shell{display:block}.sidebar{height:auto;position:static;width:auto;padding:14px 16px;display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.sidebar .brand{margin:0 auto 0 0;font-size:19px}.sidebar .side-label,.side-bottom{display:none}.sidebar .nav{font-size:12px;padding:7px 8px;margin:0}.content{padding:20px 15px 35px}.topbar h1{font-size:23px}.hero{padding:23px}.hero h2{font-size:21px}.statgrid{gap:8px}.stat{padding:15px}.stat strong{font-size:24px}.stat span,.stat small{font-size:10px}.twocol{grid-template-columns:1fr}.examhead{padding:12px 16px}.examwrap{margin:15px auto;padding:0 12px;gap:12px}.questionbox,.numberbox{padding:17px}.numberbox #numbers{grid-template-columns:repeat(10,1fr);gap:4px}.num{height:30px;font-size:11px}.questionbox h2{font-size:17px;margin:20px 0}.choice{padding:12px}.questionmeta .btn{font-size:11px}}

/* SIAPIK institutional refresh — ink #11142F, navy #17366B, royal #0B55B6, sky #4A9FD7, emerald #14966E */
:root{--navy:#11142F;--blue:#17366B;--royal:#0B55B6;--sky:#4A9FD7;--green:#14966E;--ink:#11142F;--bg:#F4F7FB;--line:#DFE6F0;--muted:#64748B}
:focus-visible{outline:3px solid #4A9FD7!important;outline-offset:3px} .choice{font-size:16px;min-height:62px;line-height:1.65;transition:border-color .15s,background-color .15s,transform .15s;align-items:center}.choice:hover{border-color:#4A9FD7;background:#F5F9FF}.choice.selected{box-shadow:inset 3px 0 0 #0B55B6}.choice b{width:35px;height:35px;min-width:35px;border-radius:9px}.questionbox{box-shadow:0 10px 35px #11142F0A}.questionbox h2{font-weight:600;font-size:20px;letter-spacing:0;line-height:1.8;overflow-wrap:anywhere}.examhead{position:sticky;top:0;z-index:30;box-shadow:0 2px 16px #11142F09}.examwrap{margin-top:24px}.timebox strong{font-variant-numeric:tabular-nums}.timebox.urgent strong{color:#BA3030}.save-indicator{display:inline-flex;align-items:center;gap:5px}.exam-mobile-bar{display:none}.exam-screen-overlay{display:none}.exam-progress{height:5px;background:#E5EBF4;overflow:hidden}.exam-progress-fill{height:100%;background:linear-gradient(90deg,#0B55B6,#14966E);width:0%;transition:width .2s}.exam-stat{font-size:12px;color:#64748B;line-height:1.6;margin-top:12px}.questionbox .qbottom{border-top:1px solid #E8EDF5;padding-top:19px} .examfootnote{font-size:11px;color:#64748B;margin-top:10px}.numberbox{position:sticky;top:96px;box-shadow:0 10px 35px #11142F08} 
@media(max-width:1000px){.numberbox{position:static;order:0}.examwrap{display:block;max-width:850px}.numberbox{margin-top:14px}.exam-mobile-bar{display:flex;position:sticky;bottom:0;background:#FFF;box-shadow:0 -6px 25px #11142F16;border-top:1px solid var(--line);padding:10px max(12px,env(safe-area-inset-left));gap:10px;z-index:40}.exam-mobile-bar button{flex:1}.exam-mobile-bar .btn{min-height:48px}}
@media(max-width:700px){body.exambody{background:#F4F7FB}.examhead{padding:12px 15px}.examhead .brand{font-size:18px}.examhead .muted{font-size:11px;display:block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timebox{font-size:10px}.timebox strong{font-size:22px}.examwrap{padding:0 10px;margin:12px auto 95px}.questionbox{padding:17px 16px 22px;border-radius:14px}.numberbox{padding:18px 15px}.questionbox h2{font-size:17px;line-height:1.8;margin:22px 0 19px}.choice{padding:13px 12px;gap:11px;min-height:62px;margin:9px 0;font-size:15px;border-radius:12px}.choice b{width:32px;height:32px;min-width:32px}.questionmeta{flex-wrap:wrap}.questionmeta .btn{padding:8px 10px;min-height:39px}.qbottom #prev,.qbottom #next{min-height:44px;flex:1}.qbottom #saveStatus{order:3;flex:0 0 100%;text-align:center}.numberbox #numbers{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.num{height:40px;font-size:12px}.hero{background:linear-gradient(125deg,#11142F,#17366B)}.sidebar{position:relative}.sidebar .brand{max-width:130px}.sidebar .nav{font-size:12px}.statgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:370px){.numberbox #numbers{grid-template-columns:repeat(5,minmax(0,1fr))}.questionbox h2{font-size:16px}.examhead .muted{max-width:145px}}
@media(prefers-reduced-motion:reduce){.choice,.exam-progress-fill{transition:none}}

/* V1.2: focused mobile exam reading, safe areas, reachable controls */
.exambody{font-size:16px}.questionbox{max-width:100%;min-width:0}.questionbox h2{font-weight:600;white-space:pre-wrap;tab-size:4}.choice{touch-action:manipulation;cursor:pointer}.choice:active{transform:scale(.995)}.choice span{overflow-wrap:anywhere;white-space:pre-wrap}.num{touch-action:manipulation}.exam-mobile-bar{padding-bottom:max(10px,env(safe-area-inset-bottom))}.qbottom{scroll-margin-bottom:75px}#saveStatus{min-width:145px;text-align:center}.exam-progress-fill{transition:width .15s}
@media(max-width:700px){.examhead{align-items:center;min-height:68px}.examwrap{margin-bottom:110px}.questionbox h2{font-size:18px;line-height:1.75;white-space:pre-wrap}.choice{font-size:16px;min-height:68px;padding:15px 13px}.choice b{height:36px;min-width:36px}.exam-mobile-bar{position:fixed;left:0;right:0;bottom:0;padding-left:14px;padding-right:14px}.exam-mobile-bar .btn{min-height:50px}.numberbox{scroll-margin-top:100px}}

/* V1.3 — keterbacaan dan ergonomi sentuh siswa */
.exambody{--reading-width:800px}.questionbox h2{max-width:75ch;text-wrap:pretty}.choice{transition:background .15s,border-color .15s;line-height:1.65}.choice:focus-visible{outline:3px solid #4A9FD7;outline-offset:2px}.examhead{backdrop-filter:saturate(140%)}
@media(max-width:700px){.questionbox h2{font-size:18px;line-height:1.85;letter-spacing:0}.choice{border-width:1.5px;min-height:72px;align-items:center}.choice.selected{box-shadow:inset 4px 0 #0B55B6}.qbottom .btn{min-height:49px}.exam-mobile-bar{box-shadow:0 -7px 23px #11142f15}}

/* V2 — exam experience, adapted from published Pusmendik simulation flow */
.exam-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.font-control{margin:0;display:flex;align-items:center;gap:9px;font-size:12px;color:var(--blue)}.font-control select{width:auto;min-width:112px;margin:0;padding:7px 24px 7px 9px;font-size:13px}.exam-question-content{--question-size:20px;--option-size:16px}.exam-question-content h2{font-size:var(--question-size)}.exam-question-content .choice{font-size:var(--option-size)}[data-exam-font=large] .exam-question-content{--question-size:24px;--option-size:19px}[data-exam-font=xlarge] .exam-question-content{--question-size:28px;--option-size:22px}.legend-dot{width:11px;height:11px;border-radius:3px;display:inline-block;margin-right:5px;border:1px solid #cad4e5}.legend-dot.done{background:#167650}.legend-dot.unsure{background:#e9a837}.legend-dot.active{background:#0B55B6}.legend-dot.none{background:white}.legend span{display:inline-flex;align-items:center}.num.answered{background:#167650;color:white;border-color:#167650}.num.flagged{background:#f6d992;color:#604309;border-color:#ecc267}.num.current{outline:3px solid #0B55B6;outline-offset:2px}.exam-modal[hidden]{display:none!important}.exam-modal{position:fixed;inset:0;z-index:110;background:#0e1c38a8;display:grid;place-items:center;padding:20px}.exam-modal-card{width:min(490px,100%);background:#fff;border-radius:18px;box-shadow:0 35px 100px #0004;padding:30px}.exam-modal-card h2{font-size:23px;margin:9px 0}.modal-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;color:var(--royal)}.modal-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.modal-actions button{flex:1}.modal-open{overflow:hidden}.timebox{min-width:125px}.exam-mobile-bar{gap:10px}
@media(max-width:700px){.exam-tools{width:100%;justify-content:space-between}.font-control{font-size:11px}.font-control select{min-width:100px}.exam-question-content{--question-size:18px;--option-size:16px}[data-exam-font=large] .exam-question-content{--question-size:21px;--option-size:18px}[data-exam-font=xlarge] .exam-question-content{--question-size:24px;--option-size:20px}.exam-modal-card{padding:23px 19px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.questionmeta{align-items:center}}

/* Formal CBT exam interface */
.exambody{
    --exam-navy:#102a43;
    --exam-blue:#155eef;
    --exam-blue-dark:#124ab4;
    --exam-slate:#334e68;
    --exam-muted:#627d98;
    --exam-line:#d9e2ec;
    --exam-soft:#f4f7fa;
    --exam-success:#147d64;
    --exam-warning:#ad6b00;
    min-height:100vh;
    background:#eef2f6;
    color:#172b4d;
    font-family:"Segoe UI",Arial,sans-serif;
}
.exambody .btn{
    min-height:44px;
    border-radius:6px;
    padding:10px 17px;
    font-size:14px;
    font-weight:650;
    letter-spacing:.01em;
}
.exambody .btn.primary{background:var(--exam-blue);border-color:var(--exam-blue);box-shadow:0 1px 2px #102a4320}
.exambody .btn.primary:hover{background:var(--exam-blue-dark);border-color:var(--exam-blue-dark)}
.exambody .btn.dark{background:var(--exam-navy);border-color:var(--exam-navy)}
.exambody .btn.outline{border-color:#bcccdc;color:var(--exam-slate);background:#fff}
.exambody .btn.outline:hover{border-color:#829ab1;background:#f8fafc}
.exambody .btn.warn{background:#fff8e8;border-color:#ddb65b;color:#7c4a00}
.exambody button:disabled{opacity:.42}
.examhead{
    position:sticky;
    top:0;
    z-index:30;
    padding:0;
    display:block;
    background:#fff;
    border:0;
    box-shadow:0 1px 0 #cbd5e1,0 4px 14px #102a430a;
    backdrop-filter:none;
}
.examhead-main{
    min-height:82px;
    max-width:1360px;
    margin:0 auto;
    padding:12px 32px;
    display:grid;
    grid-template-columns:minmax(245px,.8fr) minmax(300px,1.45fr) minmax(150px,.55fr);
    align-items:center;
    gap:30px;
}
.exam-identity{display:flex;align-items:center;gap:13px;min-width:0}
.exam-mark{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    flex:none;
    border:1px solid var(--exam-navy);
    background:var(--exam-navy);
    color:#fff;
    font-size:13px;
    font-weight:800;
    letter-spacing:.08em;
}
.exam-institution{color:var(--exam-navy);font-size:13px;font-weight:750;letter-spacing:.04em}
.exam-room-label{margin-top:2px;color:var(--exam-muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.exam-session{min-width:0;padding-left:28px;border-left:1px solid var(--exam-line);display:flex;flex-direction:column}
.exam-session-label{margin-bottom:2px;color:var(--exam-muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.exam-session strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--exam-navy);font-size:15px;font-weight:700}
.exam-session>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--exam-muted);font-size:12px}
.timebox{
    min-width:145px;
    padding-left:26px;
    border-left:1px solid var(--exam-line);
    color:var(--exam-muted);
    text-align:right;
    letter-spacing:.08em;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
}
.timebox strong{display:block;margin:0;color:var(--exam-navy);font-size:27px;font-weight:750;line-height:1.05;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.timebox small{font-size:9px;font-weight:600;letter-spacing:.1em;color:#829ab1}
.timebox.urgent strong{color:#b42318}
.exam-progress{height:4px;background:#e6ecf2}
.exam-progress-fill{height:100%;background:var(--exam-blue);transition:width .2s ease}
.examwrap{
    width:min(1360px,100%);
    max-width:none;
    margin:0 auto;
    padding:28px 32px 56px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 316px;
    gap:22px;
    align-items:start;
}
.questionbox,.numberbox{
    background:#fff;
    border:1px solid #d5dee8;
    border-radius:8px;
    box-shadow:0 3px 12px #102a4308;
}
.questionbox{min-height:640px;padding:0;display:flex;flex-direction:column;overflow:hidden}
.questionmeta{
    min-height:76px;
    padding:15px 26px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border-bottom:1px solid var(--exam-line);
    background:#fbfcfd;
}
.question-position{display:flex;flex-direction:column;gap:3px}
.question-kicker,.aside-kicker{font-size:10px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--exam-muted)}
.questionbox .pill{
    display:block;
    padding:0;
    background:transparent;
    color:var(--exam-navy);
    border-radius:0;
    font-size:14px;
    font-weight:750;
    letter-spacing:.02em;
}
.exam-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.font-control{margin:0;display:flex;align-items:center;gap:8px;color:var(--exam-muted);font-size:12px;font-weight:600}
.font-control select{
    width:auto;
    min-width:116px;
    height:40px;
    margin:0;
    padding:7px 28px 7px 10px;
    border-color:#bcccdc;
    border-radius:5px;
    color:var(--exam-slate);
    font-size:13px;
}
.flag-button{min-width:158px}
.flag-button::before{content:"◇";margin-right:8px;font-size:14px}
.flag-button.warn::before{content:"◆";color:var(--exam-warning)}
.exam-question-content{
    --question-size:20px;
    --option-size:16px;
    width:min(850px,100%);
    margin:0 auto;
    padding:42px 38px 34px;
    flex:1;
}
.exam-question-content h1{
    max-width:none;
    margin:0 0 30px;
    color:#102a43;
    font-size:var(--question-size);
    font-weight:600;
    line-height:1.75;
    letter-spacing:0;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    text-wrap:pretty;
}
[data-exam-font=large] .exam-question-content{--question-size:24px;--option-size:19px}
[data-exam-font=xlarge] .exam-question-content{--question-size:28px;--option-size:22px}
.exam-choices{display:grid;gap:10px}
.choice{
    width:100%;
    min-height:62px;
    margin:0;
    padding:13px 16px;
    display:flex;
    align-items:center;
    gap:14px;
    border:1px solid #cbd5e1;
    border-radius:6px;
    background:#fff;
    color:#243b53;
    font-size:var(--option-size);
    line-height:1.55;
    text-align:left;
    box-shadow:none;
    transition:border-color .15s,background-color .15s,box-shadow .15s;
}
.choice:hover{border-color:#829ab1;background:#f8fafc}
.choice b{
    width:34px;
    height:34px;
    min-width:34px;
    display:grid;
    place-items:center;
    border:1px solid #bcccdc;
    border-radius:50%;
    background:#fff;
    color:var(--exam-slate);
    font-size:13px;
    font-weight:750;
}
.choice.selected{border-color:var(--exam-blue);background:#f1f6ff;box-shadow:inset 3px 0 0 var(--exam-blue)}
.choice.selected b{border-color:var(--exam-blue);background:var(--exam-blue);color:#fff}
.choice:active{transform:none}
.qbottom{
    min-height:78px;
    margin:0;
    padding:16px 26px;
    display:grid;
    grid-template-columns:minmax(130px,auto) 1fr minmax(130px,auto);
    align-items:center;
    gap:18px;
    border-top:1px solid var(--exam-line)!important;
    background:#fbfcfd;
}
.exam-nav-button{gap:8px;min-width:138px}
.save-status{position:relative;justify-self:center;padding-left:17px;color:var(--exam-success);font-size:12px;text-align:center}
.save-status::before{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;border-radius:50%;background:currentColor;transform:translateY(-50%)}
.save-status[data-state=saving],.save-status[data-state=pending]{color:#526b84}
.save-status[data-state=error]{color:#b42318}
.numberbox{position:sticky;top:110px;padding:22px}
.numberbox-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.numberbox h2{margin:2px 0 0;color:var(--exam-navy);font-size:18px;font-weight:700;letter-spacing:0}
.numberbox-count{padding:4px 8px;border:1px solid var(--exam-line);background:#f8fafc;color:var(--exam-slate);font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}
.numberbox-hint{margin:13px 0 17px;color:var(--exam-muted);font-size:12px}
.numberbox #numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.num{
    width:100%;
    height:39px;
    padding:0;
    border:1px solid #bcccdc;
    border-radius:4px;
    background:#fff;
    color:var(--exam-slate);
    font-size:12px;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    box-shadow:none;
}
.num:hover{border-color:#627d98;background:#f8fafc}
.num.answered{border-color:var(--exam-success);background:var(--exam-success);color:#fff}
.num.flagged{border-color:#c98a19;background:#fff0c7;color:#754c00}
.num.current{outline:2px solid var(--exam-blue);outline-offset:2px}
.num.flagged::after{content:"";top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:#9b6200}
.exam-stat{margin:17px 0 0;padding:12px 0;border-top:1px solid var(--exam-line);border-bottom:1px solid var(--exam-line);color:var(--exam-slate);font-size:11px;font-weight:600;line-height:1.5}
.legend{margin:15px 0 19px;display:grid;grid-template-columns:1fr 1fr;gap:9px 8px;color:var(--exam-muted);font-size:10px}
.legend span{display:flex;align-items:center}
.legend-dot{width:12px;height:12px;margin-right:6px;border:1px solid #bcccdc;border-radius:2px;background:#fff}
.legend-dot.done{border-color:var(--exam-success);background:var(--exam-success)}
.legend-dot.unsure{border-color:#c98a19;background:#fff0c7}
.legend-dot.active{border:2px solid var(--exam-blue);background:#fff}
.numberbox-submit{padding-top:17px;border-top:1px solid var(--exam-line)}
.numberbox .dark{width:100%;margin:0}
.examfootnote{margin:10px 3px 0;color:var(--exam-muted);font-size:10px;line-height:1.5;text-align:center}
.exam-mobile-bar{display:none}
.exam-modal{background:#102a43bf;backdrop-filter:blur(2px)}
.exam-modal-card{width:min(480px,100%);padding:32px;border:1px solid #d5dee8;border-radius:8px;box-shadow:0 25px 65px #06182c55;text-align:center}
.modal-icon{width:44px;height:44px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:#e7f6f1;color:var(--exam-success);font-size:21px;font-weight:800}
.modal-eyebrow{color:var(--exam-muted);font-size:10px;letter-spacing:.14em}
.exam-modal-card h2{margin:7px 0 10px;color:var(--exam-navy);font-size:24px}
.confirm-stats{margin:0 0 13px;padding:13px;background:#f4f7fa;color:var(--exam-slate);font-size:13px;font-weight:650}
.exam-modal-card .muted{font-size:13px;line-height:1.6}
.modal-actions{margin-top:23px;display:grid;grid-template-columns:1fr 1fr;gap:10px}

@media(max-width:1000px){
    .examhead-main{grid-template-columns:minmax(205px,.75fr) minmax(220px,1fr) 140px;padding-inline:22px;gap:18px}
    .exam-session{padding-left:18px}
    .timebox{padding-left:18px}
    .examwrap{max-width:850px;padding:22px 20px 110px;display:block}
    .numberbox{position:static;margin-top:16px}
    .numberbox #numbers{grid-template-columns:repeat(10,1fr)}
    .exam-mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;padding:10px 18px max(10px,env(safe-area-inset-bottom));border-top:1px solid #cbd5e1;background:#fff;box-shadow:0 -4px 14px #102a4314}
    .exam-mobile-bar .btn{flex:1;min-height:48px}
}

@media(max-width:700px){
    .examhead-main{min-height:70px;padding:10px 14px;display:grid;grid-template-columns:1fr auto;gap:12px}
    .exam-mark{width:41px;height:41px;font-size:11px}
    .exam-institution{font-size:12px}
    .exam-room-label{font-size:9px}
    .exam-session{display:none}
    .timebox{min-width:106px;padding-left:12px}
    .timebox strong{font-size:23px}
    .timebox small{display:none}
    .examwrap{padding:12px 9px 104px;margin:0 auto}
    .questionbox{min-height:calc(100vh - 190px);border-radius:6px}
    .questionmeta{min-height:0;padding:13px 14px;align-items:flex-start;flex-wrap:wrap}
    .question-position{padding-top:3px}
    .question-kicker{font-size:9px}
    .questionbox .pill{font-size:13px}
    .exam-tools{width:auto;justify-content:flex-end;gap:6px}
    .font-control>span{display:none}
    .font-control select{min-width:92px;height:38px;font-size:12px}
    .flag-button{min-width:0;min-height:38px!important;padding:7px 9px!important;font-size:11px!important}
    .flag-button::before{margin-right:5px}
    .exam-question-content{--question-size:18px;--option-size:15px;padding:27px 15px 25px}
    [data-exam-font=large] .exam-question-content{--question-size:21px;--option-size:18px}
    [data-exam-font=xlarge] .exam-question-content{--question-size:24px;--option-size:20px}
    .exam-question-content h1{margin-bottom:23px;line-height:1.75}
    .exam-choices{gap:9px}
    .choice{min-height:64px;padding:12px;gap:11px;border-radius:5px}
    .choice b{width:33px;height:33px;min-width:33px}
    .qbottom{min-height:72px;padding:12px 14px;grid-template-columns:1fr 1fr;gap:9px}
    .exam-nav-button{min-width:0;padding:9px 8px!important;font-size:12px!important}
    .save-status{grid-column:1/-1;grid-row:2;justify-self:center;font-size:10px}
    .numberbox{padding:18px 14px;scroll-margin-top:84px}
    .numberbox #numbers{grid-template-columns:repeat(7,1fr);gap:7px}
    .num{height:38px}
    .exam-modal-card{padding:26px 18px;border-radius:7px}
    .modal-actions{grid-template-columns:1fr}
}

@media(max-width:390px){
    .questionmeta{display:block}
    .exam-tools{margin-top:11px;justify-content:space-between}
    .numberbox #numbers{grid-template-columns:repeat(5,1fr)}
}

@media(prefers-reduced-motion:reduce){
    .exam-progress-fill,.choice{transition:none}
}

/* RPL application identity */
.brand.brand-with-logo{
    display:flex;
    align-items:center;
    gap:12px;
    letter-spacing:0;
}
.brand-logo{
    width:50px;
    height:58px;
    flex:none;
    object-fit:contain;
}
.brand-copy{display:block;min-width:0;line-height:1.05;color:inherit!important}
.brand-copy>strong{display:block;font-size:22px;font-weight:900;letter-spacing:-1.2px;color:inherit}
.brand-copy>strong>span{color:var(--royal)}
.brand-copy>small{margin-top:5px}
.sidebar .brand-with-logo{margin-bottom:38px;color:#fff}
.sidebar .brand-logo{width:48px;height:55px}
.sidebar .brand-copy>strong>span{color:#7dbafa}
.login-card .login-brand{margin-bottom:28px}
.login-brand .brand-logo{width:70px;height:80px}
.login-brand .brand-copy>strong{font-size:27px}
.exam-logo{width:48px;height:54px;flex:none;object-fit:contain}

@media(max-width:700px){
    .sidebar .brand-with-logo{max-width:none;margin-right:auto}
    .sidebar .brand-logo{width:38px;height:44px}
    .sidebar .brand-copy>strong{font-size:18px}
    .sidebar .brand-copy>small{font-size:8px}
    .exam-logo{width:40px;height:46px}
}

/* Institutional application shell — adapted from the SETARA layout language */
:root{
    --navy:#111c35;
    --blue:#173b67;
    --royal:#165dab;
    --sky:#4a90c2;
    --ink:#14243a;
    --muted:#68788d;
    --line:#dce4ed;
    --bg:#f1f5f9;
    --gold:#c69a2b;
    --green:#187658;
    --red:#b63d4b;
    --radius:8px;
    --sidebar-width:246px;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-size:14px}
.icon{display:inline-block;flex:none;vertical-align:middle}
.shell{display:flex;min-height:100vh}
.sidebar{
    position:fixed;
    inset:0 auto 0 0;
    z-index:50;
    width:var(--sidebar-width);
    height:100vh;
    padding:23px 14px 18px;
    overflow-y:auto;
    border-top:3px solid var(--gold);
    background:var(--navy);
    color:#fff;
}
.sidebar .brand-with-logo{margin:0 7px 26px;padding:0 5px 22px;border-bottom:1px solid #ffffff1a}
.sidebar .brand-logo{width:47px;height:54px}
.sidebar .brand-copy>strong{font-size:21px;letter-spacing:-.8px}
.sidebar .brand-copy>small{color:#aebbd0;font-size:8px;letter-spacing:1.6px}
.side-label{margin:0 12px 10px;color:#8090aa;font-size:9px;letter-spacing:1.7px}
.side-nav{display:grid;gap:4px}
.nav{
    display:flex;
    align-items:center;
    gap:12px;
    margin:0;
    padding:11px 12px;
    border-radius:6px;
    color:#c8d2e2;
    font-size:13px;
    font-weight:600;
}
.nav .icon{width:18px;height:18px}
.nav:hover,.nav.on{background:#ffffff12;color:#fff}
.nav.on{border-left:3px solid var(--gold);padding-left:9px}
.side-bottom{margin-top:auto;padding:17px 10px 0;border-top:1px solid #ffffff1a}
.side-bottom>span{font-size:13px;font-weight:700}
.side-bottom small{margin-top:2px;color:#9cabc1;font-size:10px}
.side-bottom a{display:flex;align-items:center;gap:8px;margin-top:13px;color:#c5d8ee;font-size:12px}
.side-bottom .icon{width:16px;height:16px}
.content-shell{display:flex;min-width:0;min-height:100vh;margin-left:var(--sidebar-width);flex:1;flex-direction:column}
.topbar{
    min-height:72px;
    margin:0;
    padding:10px 34px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    border-bottom:1px solid var(--line);
    background:#fff;
}
.topbar-title{min-width:0}
.topbar-title small{display:block;margin-bottom:1px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:1.1px}
.topbar-title strong{display:block;overflow:hidden;color:var(--navy);font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.topbar-user{display:flex;align-items:center;gap:10px;min-width:0}
.avatar{width:38px;height:38px;flex:none;border-radius:50%;background:#e1eaf5;color:var(--blue);font-size:13px}
.topbar-user-copy{display:flex;min-width:0;flex-direction:column}
.topbar-user-copy strong{max-width:190px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.topbar-user-copy small{color:var(--muted);font-size:10px}
.menu-toggle{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy)}
.nav-backdrop{position:fixed;inset:0;z-index:45;background:#0714268f}
.content{width:100%;max-width:1480px;margin:0 auto;padding:28px 34px 52px;flex:1}
.page-footer{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin-top:auto;
    padding:19px 24px;
    border-top:1px solid var(--line);
    color:#718197;
    background:#f8fafc;
    font-size:11px;
    text-align:center;
}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:23px}
.page-heading .eyebrow{margin-bottom:5px;color:#526b84;font-size:9px;letter-spacing:1.5px}
.page-heading h1{margin:0;color:var(--navy);font-size:25px;letter-spacing:-.5px}
.page-heading p{max-width:650px;margin:5px 0 0;color:var(--muted);font-size:13px}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.btn{gap:8px;min-height:40px;padding:9px 14px;border-radius:6px;font-size:13px;font-weight:700}
.btn.primary{background:var(--royal);border-color:var(--royal)}
.btn.primary:hover{background:#124d8d}
.btn.outline{border-color:#c7d2df;color:var(--blue);background:#fff}
.btn.outline:hover{border-color:#8da1b7;background:#f8fafc}
.btn.danger{border-color:var(--red);background:var(--red);color:#fff}
.btn.disabled{border-color:#e1e6ec;background:#eef1f4;color:#8e99a7}
.btn .icon{width:17px;height:17px}
.btn.is-loading{pointer-events:none;opacity:.7}
.panel,.pkg,.stat{
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:0 4px 18px #14243a08;
}
.panel{padding:22px}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}
.panel-head h2{margin:3px 0 0;color:var(--navy);font-size:17px}
.card-kicker{color:#6b7f95;font-size:9px;font-weight:800;letter-spacing:1.2px}
.hero{
    min-height:150px;
    margin-bottom:20px;
    padding:27px 31px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border:0;
    border-radius:var(--radius);
    background:var(--navy);
    color:#fff;
    box-shadow:none;
}
.hero .eyebrow{color:#d8bb66}
.hero h2{margin:2px 0 5px;font-size:24px}
.hero p{margin:0;color:#c2cee0;font-size:13px}
.hero-mark{display:grid;place-items:center;width:72px;height:72px;flex:none;border:1px solid #ffffff33;color:#d8bb66;font-size:17px;font-weight:800;letter-spacing:2px}
.hero-detail{min-width:130px;padding-left:28px;border-left:1px solid #ffffff2b;text-align:right}
.hero-detail span,.hero-detail small{display:block;color:#becbe0;font-size:10px}
.hero-detail strong{display:block;margin:2px 0;color:#fff;font-size:32px;line-height:1}
.statgrid{gap:14px;margin:20px 0 29px}
.stat{padding:19px 20px}
.stat span,.stat small{font-size:11px}
.stat strong{margin:4px 0 0;color:var(--navy);font-size:28px}
.stat .stat-text{font-size:20px;letter-spacing:0}
.section-head{margin:28px 0 13px}
.section-head h2{color:var(--navy);font-size:18px}
.section-head p{font-size:12px}
.section-link,.table-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700}
.section-link .icon,.table-link .icon{width:15px;height:15px}
.packagegrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.pkg{display:flex;min-height:245px;padding:20px;flex-direction:column}
.pkg-top{align-items:center}
.pkg h3{margin:22px 0 15px;color:var(--navy);font-size:17px}
.pkg form{margin-top:auto}
.pkg .btn{width:100%}
.package-meta{margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.package-meta div{padding:10px 4px}
.package-meta div+div{padding-left:14px;border-left:1px solid var(--line)}
.package-meta dt{color:var(--muted);font-size:10px}
.package-meta dd{margin:2px 0 0;color:var(--navy);font-size:12px;font-weight:700}
.schedule-note{margin:-6px 0 15px!important;color:var(--muted)!important;font-size:10px!important}
.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}
.status-blue{background:#eaf2fb;color:#245c93}
.status-green{background:#e8f6f0;color:#12694d}
.status-gold{background:#fff4d4;color:#755400}
.status-red{background:#fae9ec;color:#9f3040}
.status-muted{background:#edf1f5;color:#5f7082}
.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.actioncard{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:0;color:var(--ink)}
.actioncard:hover{border-color:#aebed0;box-shadow:0 7px 20px #14243a10}
.actioncard h3{margin:0 0 4px;color:var(--navy);font-size:15px}
.actioncard p{font-size:11px}
.actioncard>.icon{width:17px}
.action-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d5e0eb;border-radius:6px;background:#f4f7fb;color:var(--blue)}
.action-icon .icon{width:20px;height:20px}
.filterbar,.page-size-form{display:flex;align-items:flex-end;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.filter-search{min-width:230px;flex:1}
.filterbar label,.compact-field{margin:0}
.filterbar label>span,.compact-field>span{display:block;margin-bottom:5px;color:#596b7e;font-size:10px;font-weight:700}
.filterbar input,.filterbar select,.compact-field select{height:40px;margin:0;border-radius:6px;padding:8px 10px;font-size:12px}
.compact-field{min-width:128px}
.tablewrap{width:100%;overflow-x:auto}
table.data-table{min-width:620px}
table.data-table th{padding:11px 13px;border-bottom:1px solid #d7e0e9;background:#f5f8fb;color:#5c6f84;font-size:10px;letter-spacing:.5px}
table.data-table td{padding:13px;border-bottom:1px solid #edf1f5;color:#263b52;font-size:12px}
table.data-table tbody tr:hover{background:#fbfcfe}
.empty-state{padding:23px;color:var(--muted);font-size:12px;text-align:center}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;padding-top:16px;border-top:1px solid var(--line)}
.pagination-summary{margin:0;color:var(--muted);font-size:11px}
.pagination-summary strong{color:var(--blue)}
.pagination-pages{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.page-link{min-width:34px;height:34px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #ced8e3;border-radius:5px;background:#fff;color:#3c536b;font-size:11px;font-weight:700}
.page-link:hover{border-color:#849ab1}
.page-link.active{border-color:var(--royal);background:var(--royal);color:#fff}
.page-link.disabled{color:#a0acb8;background:#f3f5f7;pointer-events:none}
.page-link .icon{width:14px;height:14px}
.page-ellipsis{padding:0 3px;color:#8391a1}
.package-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
.package-setting{margin:0}
.package-setting form{margin-top:0}
.package-setting .btn{width:100%}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row label{min-width:0}
label{color:#32485f;font-size:12px;font-weight:700}
input,select{border-color:#cbd6e1;border-radius:6px}
input:focus,select:focus{border-color:var(--royal);box-shadow:0 0 0 3px #165dab18}
.form-help{margin:-2px 0 18px;color:var(--muted);font-size:11px}
.flash-source{margin-bottom:18px;border-radius:6px;font-size:12px}
.js-enhanced .flash-source{display:none}
.crud-dialog{
    width:min(520px,calc(100% - 28px));
    max-height:calc(100vh - 30px);
    padding:0;
    border:1px solid #d3dde7;
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    box-shadow:0 25px 70px #07172c55;
}
.crud-dialog::backdrop{background:#091a31b5;backdrop-filter:blur(2px)}
.crud-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:20px 22px 16px;border-bottom:1px solid var(--line);background:#f8fafc}
.crud-dialog-head h2{margin:3px 0 4px;color:var(--navy);font-size:19px}
.crud-dialog-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.dialog-eyebrow{color:#61758b;font-size:9px;font-weight:800;letter-spacing:1.3px}
.modal-close{display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid #ced9e3;border-radius:5px;background:#fff;color:#425a72}
.modal-close .icon{width:17px;height:17px}
.crud-dialog-body{padding:21px 22px;overflow-y:auto}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.modal-callout{margin:0 0 18px;padding:12px 13px;border:1px solid #dce5ed;border-left:3px solid var(--royal);background:#f4f7fa}
.modal-callout strong,.modal-callout span{display:block}
.modal-callout strong{color:var(--navy);font-size:12px}
.modal-callout span{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.5}
.sweet-open{overflow:hidden}
.sweet-layer{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px;background:#091a31bd;opacity:0;transition:opacity .16s}
.sweet-layer.visible{opacity:1}
.sweet-layer.closing{opacity:0}
.sweet-card{width:min(430px,100%);padding:27px;border:1px solid #d4dee8;border-radius:8px;background:#fff;box-shadow:0 25px 70px #07172c55;transform:translateY(8px);transition:transform .16s}
.sweet-layer.visible .sweet-card{transform:translateY(0)}
.sweet-body{display:flex;align-items:flex-start;gap:15px}
.sweet-copy h2{margin:0 0 6px;color:var(--navy);font-size:19px}
.sweet-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.sweet-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%}
.sweet-icon svg{width:22px;height:22px}
.sweet-icon.sweet-warning{background:#fff4d8;color:#8a6200}
.sweet-icon.sweet-success{background:#e7f6ef;color:var(--green)}
.sweet-icon.sweet-error{background:#fae9ec;color:var(--red)}
.sweet-icon.sweet-info{background:#eaf2fb;color:var(--royal)}
.sweet-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}
.sweet-toast-wrap{position:fixed;top:18px;right:18px;z-index:10000;width:min(390px,calc(100% - 36px))}
.sweet-toast{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #d6e0e9;border-left:4px solid var(--royal);border-radius:7px;background:#fff;box-shadow:0 13px 38px #07172c2b;opacity:0;transform:translateY(-8px);transition:.18s}
.sweet-toast.visible{opacity:1;transform:translateY(0)}
.sweet-toast.sweet-success{border-left-color:var(--green)}
.sweet-toast.sweet-error{border-left-color:var(--red)}
.sweet-toast .sweet-icon{width:32px;height:32px}
.sweet-toast .sweet-icon svg{width:17px;height:17px}
.sweet-toast-content h2{margin:0 0 2px;color:var(--navy);font-size:13px}
.sweet-toast-content p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.result-summary{display:grid;grid-template-columns:1fr 190px;margin-bottom:18px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}
.result-identity{padding:24px 27px}
.result-identity h2{margin:3px 0 6px;color:var(--navy);font-size:22px}
.result-identity p{margin:0;color:var(--muted);font-size:12px}
.result-score{display:grid;place-items:center;padding:18px;border-left:1px solid var(--line);background:#f7f9fb;text-align:center}
.result-score span,.result-score small{color:var(--muted);font-size:10px}
.result-score strong{color:var(--royal);font-size:38px;line-height:1.1}
.review-heading{align-items:center}
.review-heading .page-size-form{margin:0}
.review-list{display:grid;gap:12px}
.review-card{margin:0}
.review-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.review-card-head h3{margin:3px 0 0;color:var(--navy);font-size:15px}
.review-question{font-size:13px;line-height:1.7;white-space:pre-line}
.review-options{display:grid;gap:7px;margin:15px 0}
.review-option{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fbfcfe;color:#42566c;font-size:12px}
.review-option>b{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;background:#edf2f7;color:var(--blue)}
.review-option>small{color:var(--muted);font-size:10px}
.review-option.is-key{border-color:#9ed7bf;background:#eff9f5}
.review-option.is-key>b{background:#167650;color:#fff}
.review-option.is-selected:not(.is-key),.review-option.is-wrong{border-color:#e2a9b1;background:#fdf3f4}
.review-option.is-selected:not(.is-key)>b,.review-option.is-wrong>b{background:#a33243;color:#fff}
.answer-comparison{display:grid;grid-template-columns:1fr 1fr;margin:18px 0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.answer-comparison>div{padding:12px 14px;background:#f8fafc}
.answer-comparison>div+div{border-left:1px solid var(--line)}
.answer-comparison span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px}
.answer-comparison strong{display:block;margin-top:4px;color:var(--navy);font-size:14px}
.review-explanation{padding:14px 15px;border-left:3px solid var(--royal);background:#f3f7fb}
.review-explanation strong{font-size:11px}
.review-explanation p{margin:4px 0 0;color:#42566c;font-size:12px;line-height:1.6}
.page-end-action{margin:23px 0 0}
.authbg{min-height:100vh;display:block;padding:0;background:#edf2f7}
.auth-shell{min-height:100vh;display:flex;flex-direction:column}
.login-card{width:min(430px,calc(100% - 30px));margin:auto;padding:35px;border-radius:9px;box-shadow:0 15px 50px #14243a12}
.login-brand .brand-logo{width:65px;height:74px}
.login-card h1{font-size:25px}
.login-card .muted{font-size:12px}
.login-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px;padding-top:17px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}
.login-card-footer strong{color:#365a7c;font-size:10px;text-align:right}
.auth-footer{display:flex;align-items:center;justify-content:center;gap:7px;padding:16px;color:#738397;font-size:10px}
.auth-footer span+span::before{content:"·";margin-right:7px}
.exam-footer{display:flex;justify-content:center;gap:7px;padding:16px 20px 25px;color:#718197;font-size:10px}
.exam-footer span+span::before{content:"·";margin-right:7px}
.question-type-line{display:flex;align-items:center;gap:10px;margin:22px 0 -12px;color:#60748a;font-size:12px;line-height:1.45}
.question-type-line .status-pill{flex:none}
.choice-multiple b{border-radius:4px}
.choice-multiple.selected b::after{content:"✓";font-size:15px}
.choice-multiple.selected b{font-size:0}
.category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:10px 0;padding:14px 15px;border:1px solid var(--line);border-radius:10px;background:#fff}
.category-statement{display:flex;align-items:flex-start;gap:12px;color:var(--ink);font-size:15px;line-height:1.6}
.category-statement b{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:6px;background:#edf2fa;color:var(--blue);font-size:12px}
.category-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.category-answer{min-width:72px;padding:8px 10px;border:1px solid #cad5e1;border-radius:6px;background:#fff;color:#486078;font-size:12px;font-weight:700}
.category-answer:hover{border-color:#4a9fd7;background:#f5f9ff}
.category-answer.selected{border-color:var(--royal);background:var(--royal);color:#fff}

@media(max-width:1000px){
    .action-grid{grid-template-columns:1fr}
    .package-settings{grid-template-columns:1fr}
}

@media(max-width:780px){
    :root{--sidebar-width:270px}
    body.menu-open{overflow:hidden}
    .sidebar{
        position:fixed;
        inset:0 auto 0 0;
        width:min(86vw,var(--sidebar-width));
        height:100vh;
        height:100dvh;
        padding:23px 14px max(18px,env(safe-area-inset-bottom));
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        flex-wrap:nowrap;
        overflow-y:auto;
        transform:translateX(-105%);
        transition:transform .2s ease;
        box-shadow:8px 0 28px #07142642;
    }
    .menu-open .sidebar{transform:translateX(0)}
    .sidebar .brand-with-logo{width:auto;max-width:none;margin:0 7px 26px;padding:0 5px 22px}
    .sidebar .side-label{display:block;margin:0 12px 10px}
    .sidebar .side-nav{display:grid;width:100%;gap:4px}
    .sidebar .nav{display:flex;margin:0;padding:11px 12px;font-size:13px}
    .sidebar .nav.on{padding-left:9px}
    .sidebar .side-bottom{display:flex;margin-top:auto;padding:17px 10px 0;flex-direction:column;align-items:stretch}
    .content-shell{margin-left:0}
    .topbar{min-height:66px;padding:9px 15px}
    .menu-toggle{display:grid;place-items:center}
    .topbar-user-copy{display:none}
    .content{padding:20px 14px 40px}
    .page-heading{align-items:stretch;flex-direction:column}
    .page-heading h1{font-size:22px}
    .page-actions{justify-content:flex-start}
    .page-actions .btn{flex:1}
    .hero{padding:23px 21px}
    .statgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .stat{padding:14px 12px}
    .stat strong{font-size:23px}
    .stat span,.stat small{font-size:9px}
    .packagegrid{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
    .pagination{align-items:flex-start;flex-direction:column}
    .pagination-pages{justify-content:flex-start;width:100%}
    .page-nav span{display:none}
    .result-summary{grid-template-columns:1fr 120px}
    .result-identity{padding:20px}
    .result-score strong{font-size:32px}
}

@media(max-width:620px){
    .filterbar{align-items:stretch;flex-direction:column}
    .filter-search,.compact-field{width:100%}
    .filterbar .btn{width:100%}
    .panel{padding:16px}
    .tablewrap{overflow:visible}
    table.data-table{min-width:0}
    table.data-table thead{display:none}
    table.data-table,table.data-table tbody,table.data-table tr,table.data-table td{display:block;width:100%}
    table.data-table tr{padding:10px 0;border-bottom:1px solid var(--line)}
    table.data-table tr:last-child{border-bottom:0}
    table.data-table td{display:grid;grid-template-columns:minmax(105px,40%) 1fr;gap:10px;padding:7px 3px;border:0;background:transparent}
    table.data-table td::before{content:attr(data-label);color:#718197;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
    table.data-table td[colspan]{display:block}
    table.data-table td[colspan]::before{display:none}
    table.data-table tbody tr:hover{background:transparent}
    .hero-mark{display:none}
    .hero-detail{min-width:92px;padding-left:15px}
    .result-summary{display:block}
    .result-score{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-left:0;text-align:left}
    .result-score strong{font-size:28px}
    .answer-comparison{grid-template-columns:1fr}
    .answer-comparison>div+div{border-top:1px solid var(--line);border-left:0}
    .review-option{grid-template-columns:30px minmax(0,1fr)}
    .review-option>small{grid-column:2}
    .review-heading{align-items:stretch;flex-direction:column}
    .review-heading .page-size-form{margin-top:10px}
    .dialog-actions{flex-direction:column-reverse}
    .dialog-actions .btn{width:100%}
    .sweet-actions{flex-direction:column-reverse}
    .sweet-actions .btn{width:100%}
    .page-footer,.auth-footer{flex-direction:column;gap:2px}
    .footer-separator,.auth-footer span+span::before{display:none}
    .question-type-line{align-items:flex-start;flex-direction:column;gap:6px}
    .category-row{grid-template-columns:1fr;gap:12px;padding:13px}
    .category-controls{width:100%}
    .category-answer{min-height:42px}
}

/* ============================================================
   LOGIN SIMTKA — centered institutional identity
   Only affects the login page, not the sidebar or CBT exam pages.
   ============================================================ */
.authbg .login-card .login-brand.brand-with-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin: 0 auto 22px;
    text-align: center;
}

.authbg .login-card .login-brand .brand-logo {
    display: block;
    width: 72px;
    height: 82px;
    margin: 0 auto;
    flex: none;
    object-fit: contain;
}

.authbg .login-card .login-brand .brand-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    line-height: 1.15;
    text-align: center;
}

.authbg .login-card .login-brand .brand-copy > strong {
    display: block;
    font-size: 27px;
    line-height: 1.15;
    text-align: center;
}

.authbg .login-card .login-brand .brand-copy > small {
    display: block;
    margin-top: 6px;
    text-align: center;
}

.authbg .login-card > .eyebrow,
.authbg .login-card > h1,
.authbg .login-card > p.muted {
    width: 100%;
    text-align: center;
}

.authbg .login-card > .eyebrow {
    margin-bottom: 12px;
    line-height: 1.6;
}

.authbg .login-card > h1 {
    margin: 0 0 10px;
}

.authbg .login-card > p.muted {
    max-width: 365px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.65;
}

/* Form labels deliberately remain left-aligned for readability. */
@media (max-width: 480px) {
    .authbg .login-card {
        padding: 28px 22px;
    }

    .authbg .login-card .login-brand .brand-logo {
        width: 65px;
        height: 74px;
    }

    .authbg .login-card .login-brand .brand-copy > strong {
        font-size: 25px;
    }
}
