:root{--bg:#fff;--ink:#202124;--muted:#6f7378;--line:#d8dadd;--soft:#f5f5f5;--soft2:#eef6ff;--blue:#1676d2;--blue2:#2f76ee;--green:#bdf3d9;--greenLine:#56c992;--bar:#efefef;--danger:#d93025;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);overflow:auto}button,input{font:inherit}button{cursor:pointer}.portal-shell{min-height:100%;display:flex;flex-direction:column;background:#fff}.portal-body{flex:1;width:min(1420px,94vw);margin:0 auto;display:flex;flex-direction:column}.portal-version{height:34px;display:flex;align-items:center;gap:8px;color:#9aa0a6;font-size:15px}.tiny-logo{width:22px;height:22px;border-radius:2px;object-fit:contain}.stepper{display:flex;align-items:stretch;border-bottom:2px solid #e7e7e7;width:max-content;max-width:100%;height:112px}.step{width:140px;background:#f5f5f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#777;border-bottom:6px solid transparent;font-weight:700}.step.active{background:#eaf4ff;color:var(--blue);border-bottom-color:var(--blue)}.step.done{border-bottom-color:#333}.step-icon{font-size:31px;line-height:1}.screen{flex:1;position:relative;border-bottom:2px solid #e7e7e7;display:none;padding:46px 42px 32px}.screen.active{display:block}.brand{display:flex;align-items:center;gap:10px;margin-bottom:34px}.brand img{height:32px}.brand-text{font-size:32px;font-weight:800;color:#1e9be6}.brand-text span{font-weight:300;color:#6bbbe8}.title{font-size:38px;margin:0 0 28px;font-weight:800;letter-spacing:-.02em}.lead{font-size:20px;line-height:1.45;color:#666;max-width:760px;margin:0 0 24px}.form-area{margin-top:24px;display:grid;grid-template-columns:150px 320px;gap:14px 22px;align-items:center}.form-area label{text-align:right;font-weight:700;color:#555}.form-area input{height:48px;border:2px solid #dcdcdc;padding:8px 12px;font-size:20px;outline:none}.form-area input:focus{border-color:#71a7f7;box-shadow:0 0 0 2px rgba(47,118,238,.15)}.password-wrap{position:relative}.password-wrap input{width:100%;padding-right:44px}.eye{position:absolute;right:9px;top:6px;border:0;background:transparent;font-size:24px;color:#666}.test-table{width:620px;margin-top:54px;border-collapse:collapse;font-size:20px}.test-table th{background:#f0f0f0;text-align:left;padding:16px 18px}.test-table td{border-bottom:1px solid #ececec;padding:14px 18px}.test-row{cursor:pointer}.test-row.selected{background:#b9dbff}.radio-dot{width:24px;height:24px;border:2px solid #bbb;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:14px;position:relative}.selected .radio-dot{border-color:var(--blue)}.selected .radio-dot:after{content:"";position:absolute;inset:5px;background:var(--blue);border-radius:50%}.status-live{display:inline-block;min-width:190px;text-align:center;border:2px solid var(--greenLine);background:var(--green);color:#14613f;border-radius:6px;padding:5px 14px;font-weight:700}.pin-box{margin-top:18px;display:flex;gap:12px;align-items:center}.pin-box input{width:170px;height:42px;border:2px solid #ddd;padding:8px}.bottom-action{height:92px;display:flex;align-items:center;justify-content:flex-end;gap:32px;width:min(1420px,94vw);margin:0 auto;color:#777;font-size:18px}.primary-btn{min-width:210px;height:52px;border:0;background:var(--blue2);color:#fff;font-weight:800;font-size:20px}.primary-btn:disabled{background:#f1f1f1;color:#ddd;cursor:not-allowed}.secondary-btn{border:0;background:transparent;color:#333;font-size:18px}.workspace{position:fixed;inset:0;height:auto;display:none;flex-direction:column;background:#f7f7f7;z-index:500}.workspace.active{display:flex}.workspace-top{height:54px;background:#fff;border-bottom:1px solid #d8d8d8;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:19px;font-weight:800}.exam-frame-wrap{flex:1;position:relative;background:#fff}.exam-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}.workspace-bottom{height:64px;background:#e9e9e9;border-top:1px solid #aaa;display:flex;align-items:center;gap:18px;padding:0 20px}.bottom-logo{height:33px}.bottom-spacer{flex:1}.candidate-pill{font-size:18px;font-weight:800}.round-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid #aaa}.sys-btn{width:46px;height:46px;border:1px solid #c8c8c8;background:#f4f4f4;font-size:25px}.clock{font-size:25px;font-weight:800;letter-spacing:.08em}.modal{position:fixed;inset:0;background:rgba(0,0,0,.42);display:none;align-items:center;justify-content:center;z-index:1000}.modal.open{display:flex}.modal-box{width:min(420px,92vw);background:#fff;border-radius:6px;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.22);text-align:center}.spinner{width:38px;height:38px;border:4px solid rgba(0,0,0,.15);border-top-color:var(--blue);border-radius:50%;margin:0 auto 18px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-avatar{width:68px;height:68px;border-radius:50%;object-fit:cover;margin:0 auto 14px;display:none}.modal-avatar.show{display:block}.retry{margin-top:18px;border:0;background:#111;color:#fff;padding:10px 18px;border-radius:4px}.lang-selector{position:fixed;left:22px;bottom:18px;display:flex;gap:8px;z-index:2000}.lang-selector a{text-decoration:none;color:#555;border:1px solid #d5d5d5;background:#fff;border-radius:999px;padding:7px 13px;font-size:13px}.lang-selector a.active{background:#111;color:#fff}.hidden{display:none!important}@media(max-width:850px){.portal-body,.bottom-action{width:100%}.portal-version{padding-left:12px}.stepper{width:100%;height:88px;overflow-x:auto}.step{min-width:120px}.screen{padding:26px 20px}.title{font-size:30px}.form-area{grid-template-columns:1fr}.form-area label{text-align:left}.test-table{width:100%;font-size:16px}.status-live{min-width:100px}.bottom-action{padding:0 16px}.primary-btn{min-width:150px}.workspace-bottom{gap:10px}.candidate-pill{display:none}.clock{font-size:18px}}

/* EduVera iframe session + loading polish */
.test-loading-cell{padding:22px!important;color:#666;font-weight:700}.mini-loader{display:inline-block;width:18px;height:18px;border:3px solid rgba(0,0,0,.16);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:10px}.lang-selector{left:22px!important;right:auto!important;bottom:18px}.title .welcome-name{display:inline-block}.no-tests{color:#777;font-weight:700}.test-row.missing-url{opacity:.55}.workspace .exam-frame{-webkit-user-select:none;user-select:none}

/* EduVera no-PIN + scroll fix */
.no-pin{margin-top:16px}.no-pin label,.no-pin input{display:none!important}.portal-shell{min-height:100vh}.screen.active{min-height:560px}.test-table{max-width:100%}.bottom-action{position:sticky;bottom:0;background:#fff;z-index:30}.workspace.active{overflow:hidden}


/* EduVera fixed-frame layout: only middle content scrolls */
html,body{height:100%!important;min-height:0!important;overflow:hidden!important}.portal-shell{height:100vh!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}.portal-body{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}.portal-version,.stepper{flex:0 0 auto!important}.screen.active{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important}.bottom-action{flex:0 0 92px!important;position:relative!important;bottom:auto!important;background:#fff!important;z-index:40!important}.lang-selector{left:22px!important;right:auto!important;bottom:18px!important}.form-area{grid-template-columns:150px 320px}.form-area .password-wrap{grid-column:2}.form-area label+input#studentId{grid-column:2}.test-table{margin-bottom:90px}@media(max-width:850px){.form-area{grid-template-columns:1fr}.form-area .password-wrap,.form-area label+input#studentId{grid-column:auto}.bottom-action{height:88px!important}}


/* EduVera OCD polish synced for EN and VI */
.workspace-top{display:flex;align-items:center;justify-content:flex-start}
.workspace-top .secondary-btn{display:none!important}
.bottom-brand{display:flex;align-items:baseline;gap:6px;min-width:220px;white-space:nowrap}
.bottom-brand .bottom-logo{height:30px;width:auto;display:block}
.brand-assessment{font-size:20px;font-weight:400;color:#8f9aa3;letter-spacing:-.02em;line-height:1}
.battery-group{display:flex;align-items:center;gap:8px;min-width:92px;justify-content:flex-end}
.battery-icon{width:34px;height:18px;color:#111;display:block;flex:0 0 auto}
.battery-shell,.battery-tip{fill:none;stroke:currentColor;stroke-width:1.8}
.battery-fill{fill:currentColor;transition:width .25s ease}
.battery-readout{font-size:21px!important;font-weight:800!important;color:#232323!important;min-width:42px!important;text-align:right!important}
.sys-btn{display:grid;place-items:center}
.sys-btn svg{width:25px;height:25px;display:block;color:#111}
.volume-pop{position:absolute;right:70px;bottom:64px;display:none;align-items:center;gap:10px;background:#fff;border:1px solid #cfcfcf;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:10px 12px;font-size:13px;z-index:20}
.volume-pop.open{display:flex}
.volume-pop input{width:150px}
.volume-pop label{font-weight:700;white-space:nowrap}
.volume-pop span{min-width:42px;text-align:right}
.workspace-bottom{overflow:visible}
@media(max-width:900px){.bottom-brand{min-width:200px!important}.brand-assessment{font-size:17px!important}.bottom-brand .bottom-logo{height:28px!important}.battery-group{min-width:78px;gap:6px}.battery-icon{width:30px;height:16px}.battery-readout{font-size:17px!important}.sys-btn svg{width:21px;height:21px}.volume-pop{right:52px;bottom:58px}.volume-pop input{width:100px}}
