:root{
  --bg:#ffffff; --panel:#fafbfc; --ink:#1a1f29; --muted:#6b7280; --line:#e6e8ec;
  --brand:#2563eb; --brand-soft:#eaf1ff; --navy:#111827;
  --ok:#16a34a; --warn:#d97706; --danger:#ef4444;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0b0f17; --panel:#151b26; --ink:#f3f5f8; --muted:#9ca3af; --line:#293244;
  --brand-soft:#12203c; --navy:#111827;
}
*{box-sizing:border-box}
h1,h2,p{margin:0}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.hidden{display:none !important}
.muted{color:var(--muted);font-size:13px}

/* ---------- Login (flat) ---------- */
.login{display:grid;width:min(940px,calc(100vw - 32px));min-height:100vh;margin:0 auto;grid-template-columns:1fr 380px;align-items:center;gap:0}
.login .brand{display:flex;flex-direction:column;justify-content:flex-end;min-height:440px;padding:44px;border:1px solid var(--line);border-right:0;border-radius:16px 0 0 16px;background:var(--navy);color:#fff}
.brand .eyebrow{align-self:flex-start;margin-bottom:16px;padding:6px 12px;border-radius:6px;background:rgba(255,255,255,.1);color:#e5e7eb;font-size:12px;font-weight:700;letter-spacing:.08em}
.brand h1{font-size:clamp(28px,4vw,40px);line-height:1.1}
.brand p{margin-top:16px;max-width:320px;color:#c8cdd6;font-size:15px;line-height:1.55}
.login .card{min-height:440px;display:flex;flex-direction:column;justify-content:center;padding:40px 34px;border:1px solid var(--line);border-radius:0 16px 16px 0;background:#fff}
label{display:block;color:#4b5563;font-size:13px;font-weight:600;margin-top:14px}
input,select{width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:14px}
textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:14px/1.5 "Segoe UI",Roboto,Arial,sans-serif;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand)}
button{min-height:42px;padding:0 18px;border:0;border-radius:8px;background:var(--brand);color:#fff;cursor:pointer;font-size:14px;font-weight:600}
button:hover{filter:brightness(.95)}
.card button{width:100%;margin-top:20px;height:44px}
.card .register-evaluator-button{margin-top:10px;border:1px solid #d5dae2;background:#fff;color:#253047;display:flex;align-items:center;justify-content:center;gap:9px}
.card .register-evaluator-button:hover{filter:none;border-color:#9aa4b4;background:#f7f8fa}
.register-evaluator-button svg{width:18px;height:18px;stroke-width:2}
.message{min-height:20px;margin-top:12px;color:var(--danger);font-size:13px}

/* ---------- Evaluator registration ---------- */
.registration-view{min-height:100vh;background:#f5f7fa;color:#182033}
.registration-header{height:72px;padding:0 clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #dfe3e9;background:#fff}
.registration-brand{display:flex;align-items:center;gap:12px}
.registration-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#111827;color:#fff;font-size:11px;font-weight:800}
.registration-brand strong,.registration-brand span{display:block}
.registration-brand strong{font-size:15px}
.registration-brand div span{margin-top:3px;color:#7a8392;font-size:12px}
.registration-back{min-height:38px;padding:0 13px;display:flex;align-items:center;gap:8px;border:1px solid #dfe3e9;background:#fff;color:#3f4a5d}
.registration-back:hover{filter:none;background:#f6f7f9}
.registration-back svg{width:17px;height:17px}
.registration-main{width:min(1320px,calc(100% - 40px));margin:0 auto;padding:36px 0 54px}
.registration-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.section-kicker{display:block;margin-bottom:8px;color:#e45f16;font-size:12px;font-weight:750;text-transform:uppercase}
.registration-intro h1{font-size:30px;line-height:1.2}
.registration-intro p{margin-top:7px;color:#687386;font-size:14px}
.step-count{flex:0 0 auto;padding:7px 11px;border:1px solid #d9dee6;border-radius:7px;background:#fff;color:#596477;font-size:12px;font-weight:650}
.registration-steps{display:grid;grid-template-columns:repeat(8,minmax(130px,1fr));border:1px solid #dfe3e9;background:#fff;overflow-x:auto}
.registration-step{position:relative;min-height:68px;padding:13px 12px;display:flex;align-items:center;gap:9px;color:#818999;border-right:1px solid #e7eaf0;white-space:nowrap}
.registration-step:last-child{border-right:0}
.registration-step span{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border:1px solid #bac1cc;border-radius:50%;font-size:11px;font-weight:700}
.registration-step b{font-size:12px;font-weight:600}
.registration-step.active{color:#164fb8;background:#f2f6ff;box-shadow:inset 0 -3px 0 #2f67cc}
.registration-step.active span{border-color:#2f67cc;background:#2f67cc;color:#fff}
.registration-step.complete{color:#196b41;background:#f4fbf7}
.registration-step.complete span{border-color:#1d8a55;background:#1d8a55;color:#fff}
.registration-form{margin-top:20px;padding:28px;border:1px solid #dfe3e9;background:#fff;box-shadow:0 10px 30px rgba(29,39,58,.045)}
.form-section-heading{display:flex;align-items:center;gap:13px;padding-bottom:20px;border-bottom:1px solid #e7eaf0}
.form-section-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#eef4ff;color:#2f67cc}
.form-section-icon svg{width:22px;height:22px;stroke-width:1.9}
.form-section-heading h2{font-size:18px}
.form-section-heading p{margin-top:4px;color:#778194;font-size:13px}
.registration-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;margin-top:8px}
.registration-fields label{color:#343e50;font-size:13px}
.registration-fields label em{color:#d92d20;font-style:normal}
.registration-fields input,.registration-fields select{height:44px;border-radius:6px;border-color:#d9dee6;background:#fff}
.registration-fields input:focus,.registration-fields select:focus,.registration-fields textarea:focus{border-color:#2f67cc;box-shadow:0 0 0 3px rgba(47,103,204,.1)}
.registration-fields textarea{min-height:82px;border-radius:6px;border-color:#d9dee6}
.field-wide{grid-column:1/-1}
.profile-upload{min-height:78px;margin-top:24px;padding:14px 16px;display:flex;align-items:center;gap:13px;border:1px dashed #8fa9d9;background:#f8faff;color:#344054;cursor:pointer}
.profile-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upload-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#e8f0ff;color:#2f67cc}
.upload-icon svg{width:21px;height:21px}
.upload-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.upload-copy b{font-size:13px}
.upload-copy small{color:#7a8495;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-action{margin-left:auto;padding:8px 11px;border:1px solid #cfd6e1;border-radius:6px;background:#fff;color:#354052;font-size:12px;font-weight:650}
.registration-message{min-height:22px;margin-top:14px;color:#d92d20;font-size:13px}
.registration-message.success{color:#147a3d}
.registration-actions{margin-top:2px;padding-top:18px;border-top:1px solid #e7eaf0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.registration-actions>span{display:flex;align-items:center;gap:8px;color:#697386;font-size:12px}
.registration-actions>span svg{width:17px;height:17px;color:#18864b}
.registration-actions button{min-width:190px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:6px;background:#2f62bc}
.registration-actions button svg{width:17px;height:17px}
.registration-actions button:disabled{cursor:wait;opacity:.65}
.registration-actions .step-back-button{min-width:105px;border:1px solid #d5dae2;background:#fff;color:#414b5d}
.registration-actions .step-back-button:hover{filter:none;background:#f6f7f9}
.address-icon{background:#e9f8f3;color:#147a56}
.education-icon{background:#fff5df;color:#a45d09}
.experience-icon{background:#f2edff;color:#6941c6}
.bank-icon{background:#e8f7f0;color:#16734b}
.specialization-icon{background:#fff1e6;color:#b54708}
.security-icon{background:#eaf0ff;color:#315fbd}
.emarking-icon{background:#f3eefd;color:#7047b8}
.bank-international{align-self:end;min-height:44px;margin:20px 0 0}
.specialization-field{margin-top:8px}
.specialization-field label em{color:#d92d20;font-style:normal}
.specialization-field select{height:46px;border-color:#d9dee6}
.repeatable-entries{display:flex;flex-direction:column;gap:16px;margin-top:20px}
.repeatable-entry{padding:20px;border:1px solid #d9dee6;background:#fbfcfd}
.entry-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}
.entry-heading strong{color:#2c3648;font-size:14px}
.entry-remove{min-height:34px;padding:0 8px;display:flex;align-items:center;gap:6px;border:0;background:transparent;color:#b42318;font-size:12px}
.entry-remove:hover{filter:none;background:#fff1f0}
.entry-remove svg{width:16px;height:16px}
.entry-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px}
.entry-fields label em{color:#d92d20;font-style:normal}
.entry-fields input,.entry-fields select{height:42px;border-radius:6px;border-color:#d9dee6}
.education-entry .document-upload,.experience-entry .document-upload{grid-column:1/-1}
.document-upload{min-height:58px;margin-top:14px;padding:10px 12px;display:flex;align-items:center;gap:10px;border:1px dashed #8fa9d9;background:#f6f9ff;color:#334155;cursor:pointer}
.document-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.document-upload svg{width:19px;height:19px;color:#2f67cc}
.document-upload span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.document-upload b{margin-left:auto;color:#2f62bc;font-size:12px}
.add-entry-button{min-height:38px;margin:14px 0 0 auto;padding:0 11px;display:flex;align-items:center;gap:7px;border:1px solid #cbd5e1;background:#fff;color:#2455a8}
.add-entry-button:hover{filter:none;background:#f6f9ff}
.add-entry-button svg{width:16px;height:16px}
.split-heading{justify-content:space-between}
.heading-copy{display:flex;align-items:center;gap:13px}
.inline-check{margin:0;padding:8px 10px;display:flex;align-items:center;gap:8px;border:1px solid #d7dce4;border-radius:6px;color:#3c4658;cursor:pointer}
.inline-check input,.current-work-check input{width:16px;height:16px;margin:0;padding:0;accent-color:#2f62bc}
.inline-check span{font-size:12px}
.experience-entry.no-experience-disabled{display:none}
.date-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.current-work-check{min-height:42px;margin:6px 0 0;display:flex;align-items:center;gap:8px;color:#3c4658;font-size:12px}
.current-work-check input{flex:0 0 auto}
.registration-success{margin-top:20px;padding:58px 24px;border:1px solid #dfe3e9;background:#fff;text-align:center}
.success-icon{width:62px;height:62px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:#eaf8f0;color:#178348}
.success-icon svg{width:30px;height:30px}
.registration-success h2{font-size:24px}
.registration-success p{margin-top:14px;color:#697386;font-size:13px}
.registration-success>strong{display:block;margin-top:8px;color:#174a9f;font-size:26px}
.registration-success>small{display:block;max-width:500px;margin:12px auto 24px;color:#727c8e;line-height:1.5}
.registration-success button{background:#202b3d}
.confirmation-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.56);backdrop-filter:blur(2px)}
.confirmation-dialog{position:relative;width:min(520px,100%);padding:38px 38px 32px;border:1px solid #dfe3e9;border-radius:10px;background:#fff;color:#182033;text-align:center;box-shadow:0 24px 70px rgba(15,23,42,.24)}
.confirmation-close{position:absolute;top:15px;right:15px;width:36px;height:36px;min-height:36px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:#98a2b3}
.confirmation-close:hover{filter:none;background:#f3f4f6;color:#344054}
.confirmation-close svg{width:21px;height:21px}
.confirmation-icon{width:48px;height:48px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:#edf3ff;color:#2f62bc}
.confirmation-icon svg{width:25px;height:25px}
.confirmation-dialog h2{font-size:27px}
.confirmation-dialog p{margin-top:10px;color:#667085;font-size:14px}
.confirmation-actions{margin-top:28px;display:flex;align-items:center;justify-content:center;gap:12px}
.confirmation-actions button{min-width:170px;border-radius:6px}
.confirmation-cancel{border:1px solid #d5dae2;background:#fff;color:#667085}
.confirmation-cancel:hover{filter:none;background:#f6f7f9;color:#344054}
.confirmation-proceed{display:flex;align-items:center;justify-content:center;gap:8px;background:#2f5fb4}
.confirmation-proceed svg{width:17px;height:17px}
.identity-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.identity-upload-card{min-width:0;padding:18px;border:1px solid #d9dee6;background:#fbfcfd}
.identity-upload-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.identity-upload-heading strong{font-size:14px}
.identity-side{padding:4px 8px;border-radius:5px;background:#eaf0ff;color:#315fbd;font-size:11px;font-weight:750;text-transform:uppercase}
.identity-preview{width:100%;height:210px;margin-bottom:14px;display:block;border:1px solid #d7dce4;background:#edf0f4;object-fit:contain}
.identity-upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.identity-upload-actions>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.identity-file-button,.camera-trigger{min-width:0;min-height:42px;margin:0;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cfd6e1;border-radius:6px;background:#fff;color:#344054;cursor:pointer;font-size:12px;font-weight:650}
.identity-file-button:hover,.camera-trigger:hover{filter:none;border-color:#94a3b8;background:#f7f9fc}
.identity-file-button svg,.camera-trigger svg{flex:0 0 auto;width:17px;height:17px;color:#315fbd}
.identity-file-button span,.camera-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camera-overlay{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.72);backdrop-filter:blur(3px)}
.camera-dialog{width:min(760px,100%);padding:22px;border:1px solid #d9dee6;border-radius:10px;background:#fff;color:#182033;box-shadow:0 26px 80px rgba(15,23,42,.32)}
.camera-dialog-head{position:relative;display:flex;justify-content:space-between;gap:20px;margin-bottom:16px;padding-right:42px}
.camera-dialog-head h2{font-size:22px}
.camera-dialog-head .confirmation-close{top:-7px;right:-7px}
.camera-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#111827}
.camera-stage video,.camera-stage canvas,.camera-stage>img{width:100%;height:100%;display:block;object-fit:contain}
.camera-guide{position:absolute;inset:9%;display:grid;place-items:end center;border:2px dashed rgba(255,255,255,.78);pointer-events:none}
.camera-guide span{margin-bottom:8px;padding:5px 8px;border-radius:4px;background:rgba(15,23,42,.72);color:#fff;font-size:11px}
.camera-status{min-height:20px;margin-top:10px;color:#667085;font-size:12px}
.camera-status.error{color:#b42318}
.camera-actions{margin-top:14px;display:flex;justify-content:flex-end;gap:10px}
.camera-actions button{min-width:130px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:6px}
.camera-actions button svg{width:17px;height:17px}

/* ---------- App shell (flat) ---------- */
.shell2{display:flex;min-height:100vh}
.sidebar{position:sticky;top:0;z-index:30;width:238px;height:100vh;flex:0 0 238px;background:#fbfcfe;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px;box-shadow:4px 0 18px rgba(17,24,39,.025);transition:width .22s ease,flex-basis .22s ease,transform .22s ease}
.side-logo{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 14px;color:var(--ink);font-size:15px;border-bottom:1px solid var(--line);margin-bottom:14px}
.side-brand{min-width:0;display:flex;align-items:center;gap:10px;overflow:hidden;white-space:nowrap}
.brand-name{font-size:14px;letter-spacing:0}
.logo-badge{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800;font-size:11px;border-radius:10px;letter-spacing:.04em;box-shadow:0 7px 16px rgba(17,24,39,.14)}
.sidebar-toggle,.mobile-menu-button{width:36px;height:36px;min-height:36px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;color:#4b5563;box-shadow:0 1px 2px rgba(17,24,39,.04)}
.sidebar-toggle:hover,.mobile-menu-button:hover{filter:none;background:#f3f5f8;color:var(--ink)}
.sidebar-toggle svg,.mobile-menu-button svg{width:18px;height:18px;stroke-width:2}
.side-nav{min-height:0;flex:1 1 auto;display:flex;flex-direction:column;gap:5px;overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.side-nav::-webkit-scrollbar{width:5px}
.side-nav::-webkit-scrollbar-thumb{border-radius:5px;background:#cbd5e1}
.side-nav::-webkit-scrollbar-track{background:transparent}
.nav-item{min-height:46px;display:flex;align-items:center;gap:13px;padding:0 13px;border-radius:10px;color:#5d6675;text-decoration:none;cursor:pointer;font-size:14px;font-weight:550;white-space:nowrap;overflow:hidden;transition:background .14s ease,color .14s ease,transform .14s ease,box-shadow .14s ease}
.nav-item i,.nav-item svg{flex:0 0 auto;width:20px;height:20px;stroke-width:1.9}
.nav-item:hover{background:#f1f4f8;color:var(--ink);transform:translateX(2px)}
.nav-item.active{background:var(--navy);color:#fff;font-weight:650;box-shadow:0 8px 18px rgba(17,24,39,.14)}
.side-foot{margin-top:auto;padding:14px 10px 4px;color:#9aa2af;font-size:11px;white-space:nowrap;overflow:hidden}
.shell2.sidebar-collapsed .sidebar{width:76px;flex-basis:76px}
.shell2.sidebar-collapsed .side-logo{justify-content:center;padding-left:0;padding-right:0}
.shell2.sidebar-collapsed .side-brand{display:none}
.shell2.sidebar-collapsed .sidebar-toggle svg{transform:rotate(180deg)}
.shell2.sidebar-collapsed .nav-item{justify-content:center;padding:0}
.shell2.sidebar-collapsed .nav-item span,.shell2.sidebar-collapsed .side-foot{display:none}
.shell2.sidebar-collapsed .nav-item:hover{transform:translateY(-1px)}
.sidebar-backdrop{display:none}

.content{flex:1;min-width:0;padding:24px 30px;overflow:auto;background:var(--bg)}
.content-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.page-heading{display:flex;align-items:center;gap:12px}
.mobile-menu-button{display:none}
.content-top h1{font-size:22px;font-weight:700}
.user-chip{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:6px 10px 6px 14px;font-size:13px;line-height:1.15;background:#fff}
.avatar{width:34px;height:34px;border-radius:8px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.ghost{background:#fff;color:#374151;border:1px solid var(--line)}
.ghost:hover{background:var(--panel)}
.theme-toggle{width:38px;min-width:38px;height:38px;min-height:38px;padding:0;display:grid;place-items:center}
.theme-icon{grid-area:1/1;display:grid;place-items:center}
.theme-icon svg{width:18px;height:18px;stroke-width:2}
.theme-icon-sun{display:none}
:root[data-theme="dark"] .theme-icon-moon{display:none}
:root[data-theme="dark"] .theme-icon-sun{display:grid}
.home-button{height:38px;min-height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 12px}
.home-button svg{width:17px;height:17px;stroke-width:2}

/* ---------- Feature cards (gradient) ---------- */
.feature-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.feature{--glow:#2563eb;position:relative;min-height:132px;padding:20px 22px;border:1px solid rgba(255,255,255,.08);border-radius:16px;color:#fff;cursor:pointer;display:flex;align-items:center;gap:16px;overflow:hidden;isolation:isolate;background:var(--navy);box-shadow:0 12px 26px rgba(16,24,40,.16);transition:transform .18s ease,box-shadow .2s ease}
.feature::before{content:"";position:absolute;right:-30px;bottom:-55px;width:200px;height:200px;border-radius:50%;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--glow) 78%,transparent),transparent 68%);opacity:.55;animation:featGlowA 5s ease-in-out infinite alternate}
.feature::after{content:"";position:absolute;left:-45px;top:-65px;width:180px;height:180px;border-radius:50%;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--glow) 45%,transparent),transparent 70%);opacity:.32;animation:featGlowB 7s ease-in-out infinite alternate}
@keyframes featGlowA{0%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(-80px,-46px) scale(1.18);opacity:.7}100%{transform:translate(-30px,-92px) scale(1.05);opacity:.5}}
@keyframes featGlowB{0%{transform:translate(0,0) scale(1);opacity:.28}50%{transform:translate(70px,52px) scale(1.2);opacity:.45}100%{transform:translate(104px,20px) scale(1.06);opacity:.28}}
@media (prefers-reduced-motion:reduce){.feature::before,.feature::after{animation:none}}
.feature:hover{transform:translateY(-4px);box-shadow:0 22px 44px -14px color-mix(in srgb,var(--glow) 55%,transparent)}
.feature.blue{--glow:#2563eb}
.feature.amber{--glow:#0ea5e9}
.feature.purple{--glow:#6d5efc}
.feature.green{--glow:#3b82f6}
/* each card floats on its own path/tempo — smooth but distinct */
.feature.blue::before{animation:glowBlueA 6s ease-in-out infinite alternate}
.feature.blue::after{animation:glowBlueB 8s ease-in-out infinite alternate}
.feature.amber::before{animation:glowAmberA 5s ease-in-out infinite alternate}
.feature.amber::after{animation:glowAmberB 9s ease-in-out infinite alternate}
.feature.purple::before{animation:glowPurpleA 7s ease-in-out infinite alternate}
.feature.purple::after{animation:glowPurpleB 6.5s ease-in-out infinite alternate}
@keyframes glowBlueA{0%{transform:translate(0,0) scale(1);opacity:.5}100%{transform:translate(-95px,-70px) scale(1.22);opacity:.72}}
@keyframes glowBlueB{0%{transform:translate(0,0) scale(1);opacity:.28}100%{transform:translate(120px,30px) scale(1.18);opacity:.46}}
@keyframes glowAmberA{0%{transform:translate(-10px,0) scale(1.1);opacity:.55}50%{transform:translate(-70px,-30px) scale(.95);opacity:.42}100%{transform:translate(-20px,-80px) scale(1.2);opacity:.7}}
@keyframes glowAmberB{0%{transform:translate(90px,10px) scale(1);opacity:.3}100%{transform:translate(-10px,60px) scale(1.25);opacity:.5}}
@keyframes glowPurpleA{0%{transform:translate(0,-20px) scale(1.05);opacity:.5}50%{transform:translate(-90px,-60px) scale(1.25);opacity:.7}100%{transform:translate(-40px,-10px) scale(1);opacity:.5}}
@keyframes glowPurpleB{0%{transform:translate(60px,50px) scale(1.15);opacity:.4}50%{transform:translate(110px,0) scale(1);opacity:.28}100%{transform:translate(40px,70px) scale(1.22);opacity:.48}}
.fc-ic{flex:0 0 auto;width:58px;height:58px;border:1px solid rgba(255,255,255,.38);border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);backdrop-filter:blur(8px)}
.fc-ic svg{width:29px;height:29px;stroke-width:1.9}
.fc-txt{min-width:0;padding-right:38px}
.fc-txt strong{display:block;color:#fff;font-size:18px;line-height:1.25}
.fc-txt span{display:block;margin-top:6px;color:rgba(255,255,255,.82);font-size:13px;line-height:1.35}
.fc-tag{position:absolute;top:14px;right:14px;font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.34);backdrop-filter:blur(8px)}

.tiles-title{margin:30px 0 14px;font-size:14px;font-weight:750;color:#344054;letter-spacing:.015em}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{--tile-surface:#fff;--tile-line:#dbe5f3;--tile-accent:#2563eb;--tile-icon:#e8f1ff;--tile-dark:#17213a;position:relative;min-height:180px;padding:20px;border:1px solid #e3e7ed;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;cursor:pointer;background:#fff;color:var(--ink);box-shadow:0 3px 9px rgba(31,41,55,.065);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.tile{border:1.5px solid #aab1bd}
.tile:hover{transform:translateY(-3px);border-color:#8b93a1;box-shadow:0 13px 28px rgba(31,41,55,.11)}
.tile-copy{min-width:0;margin-top:auto;padding-right:18px}
.tile-copy strong{display:block;color:#182230;font-size:17px;line-height:1.25;letter-spacing:-.01em}
.tile-copy small{display:block;margin-top:7px;color:#727c8c;font-size:14px;line-height:1.4}
.tic{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--tile-icon);color:var(--tile-accent)}
.tic svg{width:20px;height:20px;stroke-width:1.9}
.tile-meta{display:flex;align-items:center;margin-top:auto;padding-top:14px}.tile-meta span{padding:4px 9px;border-radius:999px;background:var(--tile-icon);color:var(--tile-accent);font-size:10px;font-weight:750;letter-spacing:.025em;text-transform:uppercase}
.tile-arrow{position:absolute;top:20px;right:18px;width:16px;height:16px;color:#c0c6d0;transition:color .16s ease,transform .16s ease}.tile:hover .tile-arrow{color:var(--tile-accent);transform:translate(2px,-2px)}
/* experimental dark tile — same accent scheme, static (no glow animation) */
.tile.tile-dark{background:linear-gradient(160deg,color-mix(in srgb,var(--tile-accent) 24%,#243146),#243146 62%);border-color:rgba(255,255,255,.11);color:#fff}
.tile.tile-dark::before{content:"";position:absolute;right:-45px;top:-55px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tile-accent) 55%,transparent),transparent 68%);opacity:.32;pointer-events:none}
.tile.tile-dark .tic{background:color-mix(in srgb,var(--tile-accent) 34%,transparent);color:#fff;border:1px solid rgba(255,255,255,.14)}
.tile.tile-dark .tile-copy strong{color:#fff}
.tile.tile-dark .tile-copy small{color:rgba(255,255,255,.72)}
.tile.tile-dark .tile-meta span{background:color-mix(in srgb,var(--tile-accent) 42%,transparent);color:#fff}
.tile.tile-dark .tile-arrow{color:rgba(255,255,255,.6)}
.tile.tile-dark:hover{border-color:color-mix(in srgb,var(--tile-accent) 55%,transparent);box-shadow:0 20px 38px -16px color-mix(in srgb,var(--tile-accent) 55%,transparent)}
.tile.tile-dark:hover .tile-arrow{color:#fff}
.tone-blue{--tile-surface:#f7faff;--tile-line:#cbdcf5;--tile-accent:#3568ed;--tile-icon:#e6efff;--tile-dark:#17213a}
.tone-violet{--tile-surface:#faf8ff;--tile-line:#ddd2fb;--tile-accent:#7954e8;--tile-icon:#eee9ff;--tile-dark:#251b3b}
.tone-orange{--tile-surface:#fff9f5;--tile-line:#eed9ca;--tile-accent:#c45f22;--tile-icon:#f9e9dd;--tile-dark:#302019}
.tone-green{--tile-surface:#f6fbf8;--tile-line:#cce9d6;--tile-accent:#268657;--tile-icon:#e4f5ea;--tile-dark:#142d24}
.tone-amber{--tile-surface:#fffaf1;--tile-line:#edddba;--tile-accent:#b76a0b;--tile-icon:#faedcf;--tile-dark:#312617}
.tone-cyan{--tile-surface:#f5fbfc;--tile-line:#c7e5eb;--tile-accent:#27839b;--tile-icon:#e1f5f8;--tile-dark:#132d36}
.tone-rose{--tile-surface:#fff8f9;--tile-line:#efd1d6;--tile-accent:#c32d4a;--tile-icon:#fbe6e9;--tile-dark:#351923}
.tone-indigo{--tile-surface:#f7f8ff;--tile-line:#d3d8fb;--tile-accent:#5261df;--tile-icon:#e9ebff;--tile-dark:#1d2140}
.tone-slate{--tile-surface:#f7f9fb;--tile-line:#d5dce5;--tile-accent:#4a596f;--tile-icon:#e9edf2;--tile-dark:#202733}
.tile.disabled{cursor:default;opacity:.5}
.tile.disabled:hover{transform:none}
.tic.grey{background:#f1f3f6;color:#9aa2af}

/* ---------- Frames + placeholder (flat) ---------- */
.frame{width:100%;height:calc(100vh - 150px);border:1px solid var(--line);border-radius:12px;background:#fff}
.placeholder{background:#fff;border:1px dashed #d1d5db;border-radius:12px;padding:70px 20px;text-align:center}
.placeholder .ph-ic{font-size:44px}
.placeholder .ph-ic svg{width:42px;height:42px;stroke-width:1.7;color:var(--brand)}
.placeholder h2{margin-top:10px;font-size:20px}
.placeholder p{margin-top:6px;color:var(--muted)}

/* ---------- User management (flat) ---------- */
.um-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;align-items:end;background:var(--bg);padding:22px;border-radius:16px;border:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.um-form label{display:flex;flex-direction:column;gap:7px;margin:0;font-size:12px;font-weight:650;color:var(--ink)}
.um-form input,.um-form select{width:100%;min-width:0;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
.um-form input:focus,.um-form select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.um-form .message{grid-column:1/-1;margin:0;font-size:12.5px;color:var(--muted)}
.um-btn{height:42px;padding:0 20px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-weight:650;cursor:pointer;white-space:nowrap;transition:transform .14s ease,box-shadow .16s ease}
.um-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px color-mix(in srgb,var(--brand) 65%,transparent)}
.um-btn.mini{height:32px;padding:0 12px;font-size:12px;font-weight:600;background:var(--bg);color:var(--ink);border:1px solid var(--line)}
.um-btn.mini:hover{border-color:#aab1bd;transform:none;box-shadow:none}
.um-btn.grey{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.um-btn.grey:hover{border-color:#aab1bd;background:var(--bg)}
.umtable{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:13.5px}
.umtable th{text-align:left;padding:13px 16px;color:var(--muted);background:var(--panel);border-bottom:1px solid var(--line);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.umtable td{padding:14px 16px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}
.umtable tr:last-child td{border-bottom:0}
.umtable tbody tr:hover td{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.umtable select{width:auto;height:36px;margin:0;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit;text-transform:capitalize}
.um-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:700;text-transform:capitalize}
.um-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.um-badge.active{background:#e7f6ec;color:#15803d}
.um-badge.disabled{background:#fdeaea;color:#b42318}

/* ---------- Evaluator management ---------- */
.evaluator-workspace{background:transparent}
.evaluator-module-menu{width:100%;margin:0;padding:24px 16px 48px}
.evaluator-menu-heading{margin-bottom:26px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.evaluator-menu-heading h2{margin:5px 0 6px;font-size:28px;line-height:1.15}.evaluator-menu-heading p{color:var(--muted);font-size:13px}
.evaluator-menu-status{min-height:34px;padding:0 11px;display:inline-flex;align-items:center;gap:7px;border:1px solid #d9dee7;border-radius:7px;background:#fff;color:#667085;font-size:11px;font-weight:650;white-space:nowrap}.evaluator-menu-status svg{width:15px;height:15px;color:#21865b}
.evaluator-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:16px}
/* Dark accent cards — same language as the Modules tiles on Services. */
.evaluator-module-card{--accent:#4f7bf7;position:relative;min-height:0;padding:20px;display:flex;flex-direction:column;align-items:stretch;
  border:1.5px solid rgba(255,255,255,.11);border-radius:20px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 24%,#243146),#243146 62%);
  color:#fff;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.06);
  transition:transform .2s ease,box-shadow .22s ease,border-color .2s ease}
.evaluator-module-card::before{content:"";position:absolute;right:-45px;top:-55px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 55%,transparent),transparent 68%);opacity:.32;pointer-events:none}
.evaluator-module-card>*{position:relative;z-index:1}
.evaluator-module-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);
  box-shadow:0 22px 44px -18px color-mix(in srgb,var(--accent) 55%,transparent)}
.evaluator-module-card.dashboard{--accent:#4f7bf7}
.evaluator-module-card.approved{--accent:#12b76a}
.evaluator-module-card.pending{--accent:#f79009}
.evaluator-module-card.rejected{--accent:#f04438}
.module-card-top{display:flex;align-items:center;gap:10px;width:100%}
.module-card-icon{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;
  background:color-mix(in srgb,var(--accent) 34%,transparent);color:#fff;border:1px solid rgba(255,255,255,.14)}
.module-card-icon svg{width:19px;height:19px;stroke-width:2}
.module-card-label{color:rgba(255,255,255,.72);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.module-card-arrow{width:16px;height:16px;margin-left:auto;color:rgba(255,255,255,.6);transition:transform .16s ease,color .16s ease}
.evaluator-module-card:hover .module-card-arrow{color:#fff;transform:translate(2px,-2px)}
.module-card-copy{display:block;margin-top:16px}
.module-card-copy strong{display:block;color:#fff;font-size:17px;font-weight:750;line-height:1.25;letter-spacing:-.01em}
.module-card-copy small{display:block;margin-top:5px;color:rgba(255,255,255,.72);font-size:12.5px;line-height:1.4}
.module-card-metric{display:flex;align-items:baseline;gap:7px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(255,255,255,.14)}
.module-card-metric b{color:#fff;font-size:26px;line-height:1;font-weight:780;font-variant-numeric:tabular-nums}
.module-card-metric span{color:rgba(255,255,255,.7);font-size:11px;font-weight:600}
.evaluator-main{min-width:0;padding:26px;background:transparent}
.panel-heading-with-back{display:flex;align-items:flex-start;gap:12px}.back-to-evaluator-menu{width:38px;height:38px;min-height:38px;flex:0 0 auto;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475467}.back-to-evaluator-menu:hover{filter:none;background:#f2f4f7}.back-to-evaluator-menu svg{width:18px;height:18px}
.evaluator-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.evaluator-panel-heading h2{margin:3px 0 4px;font-size:24px;line-height:1.2}
.evaluator-panel-heading p{color:var(--muted);font-size:13px}
.section-kicker{color:#b54708;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.icon-command{width:38px;height:38px;min-height:38px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;color:#475467}
.icon-command:hover{background:#f2f4f7;filter:none}
.icon-command svg{width:18px;height:18px}
.evaluator-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.evaluator-kpi{min-height:126px;padding:18px;border:1px solid var(--line);border-left:4px solid #64748b;border-radius:8px;background:#fff;display:flex;align-items:flex-start;gap:14px}
.evaluator-kpi .kpi-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:#eef2f6;color:#475569}
.evaluator-kpi .kpi-icon svg{width:21px;height:21px;stroke-width:1.9}
.evaluator-kpi small,.evaluator-kpi em{display:block;color:var(--muted);font-style:normal;font-size:12px}
.evaluator-kpi strong{display:block;margin:4px 0 5px;color:#101828;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.evaluator-kpi.approved{border-left-color:#16a34a}.evaluator-kpi.approved .kpi-icon{background:#eaf8ef;color:#15803d}
.evaluator-kpi.pending{border-left-color:#d97706}.evaluator-kpi.pending .kpi-icon{background:#fff6e5;color:#b45309}
.evaluator-kpi.rejected{border-left-color:#dc2626}.evaluator-kpi.rejected .kpi-icon{background:#fff0f0;color:#b91c1c}
.evaluator-dashboard-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;margin-bottom:16px}
.evaluator-data-panel{padding:20px;border:1px solid var(--line);border-radius:8px;background:#fff}
.data-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}
.data-panel-heading h3{font-size:15px;margin-bottom:3px}.data-panel-heading p{color:var(--muted);font-size:12px}
.data-panel-heading>svg{width:20px;height:20px;color:#98a2b3}
.status-chart{min-height:188px;display:flex;align-items:flex-end;justify-content:center;gap:12%;padding:8px 22px 0;border-bottom:1px solid var(--line)}
.status-column{height:174px;min-width:72px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;color:#667085;font-size:11px}
.status-column strong{color:#344054;font-size:13px}
.status-bar{width:48px;min-height:4px;border-radius:5px 5px 0 0;background:#94a3b8;transition:height .25s ease}
.status-column.approved .status-bar{background:#22a06b}.status-column.pending .status-bar{background:#e59a26}.status-column.rejected .status-bar{background:#df5b5b}
.specialization-metrics{display:flex;flex-direction:column;gap:13px;max-height:205px;overflow:auto;padding-right:5px}
.specialization-row{display:grid;grid-template-columns:minmax(90px,1fr) 2fr auto;align-items:center;gap:12px;font-size:12px}
.specialization-row strong{overflow:hidden;text-overflow:ellipsis;color:#344054;font-size:12px}
.specialization-track{height:8px;border-radius:5px;background:#eef1f5;overflow:hidden}
.specialization-fill{height:100%;border-radius:5px;background:#64748b}
.specialization-row span{min-width:24px;text-align:right;color:#667085;font-variant-numeric:tabular-nums}
.recent-panel{padding-bottom:8px}.text-command{min-height:34px;padding:0;background:transparent;color:#b54708;display:flex;align-items:center;gap:6px}.text-command:hover{filter:none;color:#7a2e0e}.text-command svg{width:15px;height:15px}
.evaluator-table-wrap{width:100%;overflow:auto}
.evaluator-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}
.evaluator-table th{padding:11px 12px;border-bottom:1px solid var(--line);color:#667085;background:#f9fafb;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.evaluator-table td{padding:12px;border-bottom:1px solid #eef0f3;color:#475467}
.evaluator-table tbody tr:hover td{background:#fcfcfd}.evaluator-table tbody tr:last-child td{border-bottom:0}
.evaluator-table td strong{display:block;color:#1d2939;font-size:13px}.evaluator-table td small{display:block;margin-top:3px;color:#98a2b3;font-size:11px}
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:5px;font-size:11px;font-weight:700;text-transform:capitalize}
.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status-pill.approved{background:#eaf8ef;color:#15803d}.status-pill.pending{background:#fff6e5;color:#b45309}.status-pill.rejected{background:#fff0f0;color:#b91c1c}
.table-profile-button{width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center;border:1px solid #d0d5dd;border-radius:6px;background:#fff;color:#475467}
.table-profile-button:hover{background:#f2f4f7;filter:none}.table-profile-button svg{width:16px;height:16px}
.profile-list-heading{align-items:center}.profile-count{padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#475467;font-size:12px;font-weight:650}
.evaluator-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(170px,.7fr) minmax(190px,.8fr) auto;gap:10px;align-items:end;margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}
.evaluator-filters label>span{display:block;color:#667085;font-size:11px;font-weight:650}.evaluator-filters input,.evaluator-filters select{height:38px;margin-top:5px}
.search-field{position:relative}.search-field svg{position:absolute;left:12px;bottom:10px;width:17px;height:17px;color:#98a2b3;pointer-events:none}.search-field input{padding-left:38px}
.filter-clear{height:38px;min-height:38px;padding:0 13px;border:1px solid var(--line);background:#fff;color:#475467;display:flex;align-items:center;gap:7px}.filter-clear:hover{filter:none;background:#f2f4f7}.filter-clear svg{width:15px;height:15px}
.profile-table-wrap{border:1px solid var(--line);border-radius:8px;background:#fff}.profile-table th,.profile-table td{padding:13px 14px}
.empty-table{text-align:center!important;padding:42px 20px!important;color:#98a2b3!important}
.profile-overlay{position:fixed;inset:0;z-index:90;padding:28px;display:grid;place-items:center;background:rgba(17,24,39,.56);backdrop-filter:blur(3px)}
.profile-dialog{width:min(1040px,100%);max-height:calc(100vh - 56px);display:flex;flex-direction:column;border:1px solid #d0d5dd;border-radius:8px;background:#fff;box-shadow:0 24px 70px rgba(17,24,39,.24);overflow:hidden}
.profile-dialog-header{padding:18px 22px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}
.profile-dialog-header h2{margin-top:3px;font-size:22px}.profile-dialog-content{min-height:0;padding:20px 22px;overflow:auto;background:#f8fafc}
.profile-identity{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}
.profile-identity-main{display:flex;align-items:center;gap:13px}.profile-initial{width:50px;height:50px;display:grid;place-items:center;border-radius:8px;background:#111827;color:#fff;font-size:18px;font-weight:750}.profile-identity h3{font-size:18px}.profile-identity p{margin-top:4px;color:#667085;font-size:12px}
.profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-section{padding:17px;border:1px solid var(--line);border-radius:8px;background:#fff}.profile-section.full{grid-column:1/-1}.profile-section h4{display:flex;align-items:center;gap:8px;margin-bottom:13px;color:#1d2939;font-size:14px}.profile-section h4 svg{width:17px;height:17px;color:#b54708}
.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.detail-item small{display:block;color:#98a2b3;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.detail-item span{display:block;margin-top:4px;color:#344054;font-size:13px;overflow-wrap:anywhere}
.profile-record{padding:10px 0;border-top:1px solid #eef0f3}.profile-record:first-of-type{padding-top:0;border-top:0}.profile-record strong{display:block;color:#344054;font-size:13px}.profile-record p{margin-top:4px;color:#667085;font-size:12px;line-height:1.45}
.profile-review-footer{padding:16px 22px;display:grid;grid-template-columns:minmax(300px,1fr) auto;align-items:end;gap:18px;border-top:1px solid var(--line);background:#fff}.review-note span{display:block;color:#344054;font-size:12px;font-weight:650}.review-note small{color:#98a2b3;font-weight:400}.review-note textarea{min-height:62px;margin-top:6px}
.profile-review-actions{display:flex;align-items:center;gap:8px}.profile-review-actions .message{max-width:220px;margin:0}.reject-command{background:#fff;color:#b42318;border:1px solid #f0b5b0}.reject-command:hover{filter:none;background:#fff5f4}.approve-command{background:#15803d}.approve-command:hover{background:#166534}.reject-command,.approve-command{display:flex;align-items:center;gap:7px}.reject-command svg,.approve-command svg{width:17px;height:17px}

/* ---------- Attendance dashboard ---------- */
.attendance-dashboard{display:flex;flex-direction:column;gap:16px}
.attendance-summary-band{min-height:260px;display:grid;grid-template-columns:minmax(0,1fr) 270px;border-radius:8px;overflow:hidden;background:#28579d;color:#fff;box-shadow:0 12px 28px rgba(32,67,126,.15)}
.attendance-summary-main{min-width:0;padding:26px 30px}.attendance-summary-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.attendance-summary-heading h2{margin-top:5px;color:#fff;font-size:22px}.attendance-eyebrow{color:#bed4fb;font-size:11px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.preview-data-badge{min-height:30px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:rgba(255,255,255,.08);color:#eaf1ff;font-size:11px;font-weight:650;white-space:nowrap}.preview-data-badge svg{width:14px;height:14px}
.attendance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:58px}.attendance-kpi{min-width:0;padding-left:16px;border-left:1px solid rgba(255,255,255,.25)}.attendance-kpi:first-child{padding-left:0;border-left:0}.attendance-kpi>span{display:block;color:#c7d9fa;font-size:11px;font-weight:650}.attendance-kpi strong{display:block;margin:7px 0 6px;color:#fff;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.attendance-kpi small{display:block;color:#c7d9fa;font-size:11px}.attendance-kpi.rate strong{color:#c9f3db}
.attendance-date-control{padding:26px 24px;border-left:1px solid rgba(255,255,255,.18);background:rgba(8,31,72,.16)}.attendance-date-control>label{display:block;color:#c7d9fa;font-size:11px;font-weight:650}.attendance-date-control input{height:40px;margin-top:7px;border-color:rgba(255,255,255,.28);background:#fff;color:#1d2939}
.attendance-period-control{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:12px;padding:4px;border-radius:7px;background:rgba(8,31,72,.24)}.attendance-period-control button{min-height:32px;padding:0 8px;border-radius:5px;background:transparent;color:#c7d9fa;font-size:11px}.attendance-period-control button:hover{filter:none;background:rgba(255,255,255,.08)}.attendance-period-control button.active{background:#fff;color:#234a88}
.attendance-date-note{display:flex;align-items:center;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}.attendance-date-note>svg{width:20px;height:20px;color:#c7d9fa}.attendance-date-note span{display:flex;flex-direction:column}.attendance-date-note b{font-size:13px}.attendance-date-note small{margin-top:3px;color:#c7d9fa;font-size:10px}
.attendance-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.attendance-panel{padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 2px 7px rgba(16,24,40,.04)}
.attendance-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.attendance-panel-heading h3{margin-top:4px;color:#1d2939;font-size:17px}.attendance-panel-heading .icon-command{width:34px;height:34px;min-height:34px}
.daily-attendance-body{min-height:205px;display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:22px}.daily-stat-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.daily-stat-list>div{padding:12px 14px;border-left:3px solid #a8b2c2;background:#f8fafc}.daily-stat-list>div:nth-child(2){border-left-color:#22a06b}.daily-stat-list>div:nth-child(3){border-left-color:#e59a26}.daily-stat-list span{display:block;color:#667085;font-size:11px;font-weight:650}.daily-stat-list strong{display:block;margin:7px 0 5px;color:#101828;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}.daily-stat-list small{display:block;color:#98a2b3;font-size:10px;line-height:1.35}
.attendance-donut-wrap{display:flex;align-items:center;justify-content:center;gap:16px}.attendance-donut{width:128px;height:128px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#22a06b 0 89%,#f2c363 89% 100%)}.attendance-donut::before{content:"";grid-area:1/1;width:86px;height:86px;border-radius:50%;background:#fff}.attendance-donut>span{grid-area:1/1;z-index:1;text-align:center}.attendance-donut b{display:block;color:#101828;font-size:22px}.attendance-donut small{display:block;margin-top:2px;color:#667085;font-size:9px}.attendance-legend{display:flex;flex-direction:column;gap:10px}.attendance-legend>span{display:grid;grid-template-columns:8px auto auto;align-items:center;gap:6px;color:#667085;font-size:10px}.attendance-legend i{width:8px;height:8px;border-radius:2px;background:#22a06b}.attendance-legend .pending i{background:#f2c363}.attendance-legend b{color:#344054;font-size:10px}
.trend-change{display:inline-flex;align-items:center;gap:5px;color:#15803d;font-size:11px;font-weight:700}.trend-change svg{width:15px;height:15px}
.attendance-bar-chart{position:relative;height:205px;padding:18px 6px 26px;display:flex;align-items:flex-end;justify-content:space-around;gap:10px;border-bottom:1px solid var(--line)}.chart-grid-lines{position:absolute;inset:18px 0 26px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.chart-grid-lines i{display:block;border-top:1px dashed #e4e7ec}.attendance-bar{position:relative;z-index:1;width:min(42px,10%);height:var(--bar);min-height:8px;border-radius:5px 5px 0 0;background:#9fb8df;transition:height .2s ease}.attendance-bar.active{background:#28579d}.attendance-bar span{position:absolute;left:50%;bottom:-23px;transform:translateX(-50%);color:#667085;font-size:10px}.attendance-bar b{position:absolute;left:50%;top:-18px;transform:translateX(-50%);color:#667085;font-size:9px}
.center-heading{align-items:end}.attendance-filters{display:flex;gap:9px}.attendance-filters label{margin:0}.attendance-filters label>span{display:block;color:#667085;font-size:10px;font-weight:650}.attendance-filters select{width:150px;height:36px;margin-top:4px;font-size:11px}
.center-performance-list{display:flex;flex-direction:column}.center-performance-row{min-height:66px;display:grid;grid-template-columns:190px minmax(180px,1fr) 54px 105px;align-items:center;gap:18px;border-top:1px solid #eef0f3}.center-performance-row:first-child{border-top:0}.center-performance-row>div:first-child{display:flex;flex-direction:column}.center-performance-row strong{color:#1d2939;font-size:12px}.center-performance-row small{margin-top:3px;color:#98a2b3;font-size:10px}.center-progress{height:8px;border-radius:5px;background:#eef1f5;overflow:hidden}.center-progress span{display:block;height:100%;border-radius:5px;background:#3b6fb6}.center-performance-row>b{color:#344054;font-size:13px;font-variant-numeric:tabular-nums}.center-performance-row em{color:#667085;font-size:10px;font-style:normal;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Scanning production dashboard ---------- */
.scanning-dashboard{display:flex;flex-direction:column;gap:16px}
.scanning-command-band{padding:26px 28px;border-radius:8px;background:#173f48;color:#fff;box-shadow:0 12px 28px rgba(23,63,72,.16)}
.scanning-band-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:22px}.scanning-band-heading h2{margin:4px 0 5px;color:#fff;font-size:22px}.scanning-band-heading p{color:#bcd2d6;font-size:12px}.scanning-eyebrow{color:#91c2cb;font-size:11px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.scanning-band-actions{display:flex;align-items:end;gap:10px}.scanning-band-actions label{margin:0}.scanning-band-actions label>span{display:block;color:#bcd2d6;font-size:10px;font-weight:650}.scanning-band-actions select{width:170px;height:38px;margin-top:5px;border-color:rgba(255,255,255,.25);background:#fff;color:#1d2939;font-size:11px}
.scanning-primary-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:38px}.scanning-primary-kpi{min-height:100px;padding:5px 28px;display:flex;align-items:flex-start;gap:14px;border-left:1px solid rgba(255,255,255,.18)}.scanning-primary-kpi:first-child{padding-left:0;border-left:0}.scanning-kpi-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.1);color:#d5eef2}.scanning-kpi-icon svg{width:21px;height:21px}.scanning-primary-kpi small{display:block;color:#bcd2d6;font-size:11px;font-weight:650}.scanning-primary-kpi strong{display:block;margin:7px 0 5px;color:#fff;font-size:32px;line-height:1;font-variant-numeric:tabular-nums}.scanning-primary-kpi em{display:block;color:#bcd2d6;font-size:10px;font-style:normal}.scanning-primary-kpi.copies strong{color:#bcf1d3}.scanning-primary-kpi.images strong{color:#c9e2ff}
.scanning-progress-row{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}.scanning-progress-copy{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.scanning-progress-copy>span{display:flex;flex-direction:column}.scanning-progress-copy b{font-size:12px}.scanning-progress-copy em{margin-top:3px;color:#bcd2d6;font-size:10px;font-style:normal}.scanning-progress-copy>strong{font-size:14px}.scanning-progress-track{height:8px;margin-top:10px;border-radius:5px;background:rgba(255,255,255,.13);overflow:hidden}.scanning-progress-track span{display:block;height:100%;border-radius:5px;background:#57c18a}
.scanning-secondary-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.scanning-secondary-kpis article{min-height:112px;padding:18px;display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 2px 7px rgba(16,24,40,.04)}.scanning-secondary-kpis article>span{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:#e8f3f5;color:#287383}.scanning-secondary-kpis svg{width:19px;height:19px}.scanning-secondary-kpis small,.scanning-secondary-kpis em{display:block;color:#667085;font-size:10px;font-style:normal}.scanning-secondary-kpis strong{display:block;margin:6px 0;color:#1d2939;font-size:21px;line-height:1;font-variant-numeric:tabular-nums}
.scanning-analytics-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);gap:16px}.scanning-panel{padding:22px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 2px 7px rgba(16,24,40,.04)}.scanning-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.scanning-panel-heading h3{margin-top:4px;color:#1d2939;font-size:17px}.scanning-panel-heading p{margin-top:4px;color:#667085;font-size:11px}
.throughput-legend{display:flex;align-items:center;gap:12px;padding-top:4px}.throughput-legend span{display:flex;align-items:center;gap:5px;color:#667085;font-size:10px}.throughput-legend i{width:8px;height:8px;border-radius:2px;background:#35a66d}.throughput-legend .images i{background:#82a9d9}
.scanning-throughput-chart{position:relative;height:250px;margin-top:14px;padding:25px 8px 30px;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;border-bottom:1px solid var(--line)}.scanning-chart-grid{position:absolute;inset:25px 0 30px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.scanning-chart-grid i{border-top:1px dashed #e4e7ec}.throughput-day{position:relative;z-index:1;width:min(66px,12%);height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.throughput-bars{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}.throughput-bars i{width:18px;height:var(--height);min-height:5px;border-radius:4px 4px 0 0;background:#82a9d9}.throughput-bars i.copies{background:#57b987}.throughput-day.active .throughput-bars i.copies{background:#158d57}.throughput-day span{position:absolute;bottom:-24px;color:#667085;font-size:9px}.throughput-day>b{position:absolute;top:-18px;color:#475467;font-size:9px}
.scanning-workload-body{min-height:265px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.scanning-donut{width:148px;height:148px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#35a66d 0 26.3%,#e8edf2 26.3% 100%)}.scanning-donut::before{content:"";grid-area:1/1;width:100px;height:100px;border-radius:50%;background:#fff}.scanning-donut span{grid-area:1/1;z-index:1;text-align:center}.scanning-donut b{display:block;color:#1d2939;font-size:25px}.scanning-donut small{display:block;margin-top:3px;color:#667085;font-size:10px}.scanning-workload-stats{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.scanning-workload-stats>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:6px;color:#667085;font-size:9px}.scanning-workload-stats i{width:7px;height:7px;border-radius:2px;background:#98a2b3}.scanning-workload-stats .complete i{background:#35a66d}.scanning-workload-stats .remaining i{background:#d5dce5}.scanning-workload-stats b{color:#344054;font-size:10px;font-variant-numeric:tabular-nums}
.fleet-heading{align-items:flex-start;margin-bottom:16px}.fleet-heading .icon-command{width:34px;height:34px;min-height:34px}.scanner-fleet-table-wrap{overflow:auto}.scanner-fleet-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.scanner-fleet-table th{padding:10px 12px;border-bottom:1px solid var(--line);background:#f8fafc;color:#667085;text-align:left;font-size:9px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.scanner-fleet-table td{padding:12px;border-bottom:1px solid #eef0f3;color:#475467}.scanner-fleet-table tbody tr:last-child td{border-bottom:0}.scanner-fleet-table td strong{display:block;color:#1d2939;font-size:11px}.scanner-fleet-table td small{display:block;margin-top:3px;color:#98a2b3;font-size:9px}.scanner-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;font-size:9px;font-weight:700}.scanner-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.scanner-status.online{background:#e8f6ee;color:#15803d}.scanner-status.attention{background:#fff4df;color:#b45309}

/* ---------- Dark theme ---------- */
:root[data-theme="dark"] body,
:root[data-theme="dark"] .content{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] .sidebar{background:#111722;box-shadow:4px 0 22px rgba(0,0,0,.18)}
:root[data-theme="dark"] .side-logo,
:root[data-theme="dark"] .side-brand{color:var(--ink)}
:root[data-theme="dark"] .logo-badge{background:var(--brand)}
:root[data-theme="dark"] .sidebar-toggle,
:root[data-theme="dark"] .mobile-menu-button,
:root[data-theme="dark"] .ghost{background:#151b26;color:#e5e7eb;border-color:var(--line)}
:root[data-theme="dark"] .sidebar-toggle:hover,
:root[data-theme="dark"] .mobile-menu-button:hover,
:root[data-theme="dark"] .ghost:hover{background:#202938;color:#fff}
:root[data-theme="dark"] .nav-item{color:#aeb7c5}
:root[data-theme="dark"] .side-nav{scrollbar-color:#46536a transparent}
:root[data-theme="dark"] .side-nav::-webkit-scrollbar-thumb{background:#46536a}
:root[data-theme="dark"] .nav-item:hover{background:#1c2432;color:#fff}
:root[data-theme="dark"] .nav-item.active{background:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.24)}
:root[data-theme="dark"] .user-chip,
:root[data-theme="dark"] .login .card,
:root[data-theme="dark"] .um-form,
:root[data-theme="dark"] .umtable,
:root[data-theme="dark"] .placeholder{background:#111722;color:var(--ink)}
:root[data-theme="dark"] input,
:root[data-theme="dark"] select{background:#0f1520;color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] .umtable th{background:#151b26;color:#aeb7c5}
:root[data-theme="dark"] .umtable td{border-color:#202938}
:root[data-theme="dark"] .umtable tr:hover td{background:#151b26}
:root[data-theme="dark"] .tiles-title{color:#d8dee8}
:root[data-theme="dark"] .tile{background:var(--tile-dark);border-color:#344054;color:var(--ink)}
:root[data-theme="dark"] .tile:hover{background:#171e2a;border-color:var(--tile-accent)}
:root[data-theme="dark"] .tile-copy strong{color:#f3f5f8}
:root[data-theme="dark"] .tile-copy small{color:#aeb7c5}
:root[data-theme="dark"] .tic{background:#1b2433;border-color:#354156;color:var(--tile-accent)}
:root[data-theme="dark"] .frame{background:#111722;border-color:var(--line)}
:root[data-theme="dark"] .card .register-evaluator-button{background:#151b26;color:#e5e7eb;border-color:#344054}
:root[data-theme="dark"] .card .register-evaluator-button:hover{background:#202938}
:root[data-theme="dark"] .registration-view{background:#0b0f17;color:#f3f5f8}
:root[data-theme="dark"] .registration-header,
:root[data-theme="dark"] .registration-steps,
:root[data-theme="dark"] .registration-form,
:root[data-theme="dark"] .registration-success{background:#111722;border-color:#293244}
:root[data-theme="dark"] .registration-back,
:root[data-theme="dark"] .step-count,
:root[data-theme="dark"] .upload-action{background:#151b26;color:#e5e7eb;border-color:#344054}
:root[data-theme="dark"] .registration-step{border-color:#293244;color:#929bad}
:root[data-theme="dark"] .registration-step.active{background:#17233b;color:#8fb7ff}
:root[data-theme="dark"] .form-section-heading,
:root[data-theme="dark"] .registration-actions{border-color:#293244}
:root[data-theme="dark"] .registration-fields label{color:#d5dae3}
:root[data-theme="dark"] .registration-fields input,
:root[data-theme="dark"] .registration-fields select,
:root[data-theme="dark"] .registration-fields textarea,
:root[data-theme="dark"] .entry-fields input,
:root[data-theme="dark"] .entry-fields select{background:#0f1520;border-color:#344054;color:#f3f5f8}
:root[data-theme="dark"] .profile-upload{background:#111c30;border-color:#52698e;color:#e5e7eb}
:root[data-theme="dark"] .registration-step.complete{background:#11251d;color:#69d29c}
:root[data-theme="dark"] .repeatable-entry{background:#0f1520;border-color:#344054}
:root[data-theme="dark"] .entry-heading strong{color:#eef1f6}
:root[data-theme="dark"] .document-upload{background:#111c30;border-color:#52698e;color:#d9dfeb}
:root[data-theme="dark"] .add-entry-button,
:root[data-theme="dark"] .registration-actions .step-back-button,
:root[data-theme="dark"] .inline-check{background:#151b26;color:#e5e7eb;border-color:#344054}
:root[data-theme="dark"] .confirmation-dialog{background:#111722;color:#f3f5f8;border-color:#344054}
:root[data-theme="dark"] .confirmation-dialog p{color:#aab3c2}
:root[data-theme="dark"] .confirmation-cancel{background:#151b26;color:#d7dde7;border-color:#344054}
:root[data-theme="dark"] .confirmation-close:hover{background:#202938;color:#fff}
:root[data-theme="dark"] .identity-upload-card{background:#0f1520;border-color:#344054}
:root[data-theme="dark"] .identity-file-button,
:root[data-theme="dark"] .camera-trigger{background:#151b26;color:#e5e7eb;border-color:#344054}
:root[data-theme="dark"] .camera-dialog{background:#111722;color:#f3f5f8;border-color:#344054}
:root[data-theme="dark"] .camera-status{color:#aab3c2}
:root[data-theme="dark"] .evaluator-workspace,
:root[data-theme="dark"] .evaluator-data-panel,
:root[data-theme="dark"] .evaluator-kpi,
:root[data-theme="dark"] .profile-count,
:root[data-theme="dark"] .evaluator-filters,
:root[data-theme="dark"] .profile-table-wrap,
:root[data-theme="dark"] .profile-dialog,
:root[data-theme="dark"] .profile-identity,
:root[data-theme="dark"] .profile-section,
:root[data-theme="dark"] .profile-review-footer{background:#111722;border-color:var(--line);color:var(--ink)}
:root[data-theme="dark"] .evaluator-module-menu{background:#0b0f17}
:root[data-theme="dark"] .evaluator-workspace{background:#0b0f17}
/* The evaluator cards are dark in both themes — only the status chip changes. */
:root[data-theme="dark"] .evaluator-menu-status{background:#111722;border-color:#344054;color:#aeb7c5}
:root[data-theme="dark"] .evaluator-main,:root[data-theme="dark"] .profile-dialog-content{background:#0b0f17}
:root[data-theme="dark"] .evaluator-kpi strong,:root[data-theme="dark"] .evaluator-table td strong,:root[data-theme="dark"] .profile-identity h3,:root[data-theme="dark"] .profile-section h4,:root[data-theme="dark"] .profile-record strong{color:#f3f5f8}
:root[data-theme="dark"] .evaluator-table th{background:#151b26;color:#aeb7c5;border-color:var(--line)}
:root[data-theme="dark"] .evaluator-table td{color:#aeb7c5;border-color:#202938}:root[data-theme="dark"] .evaluator-table tbody tr:hover td{background:#151b26}
:root[data-theme="dark"] .icon-command,:root[data-theme="dark"] .filter-clear,:root[data-theme="dark"] .table-profile-button,:root[data-theme="dark"] .back-to-evaluator-menu{background:#151b26;color:#d7dde7;border-color:#344054}
:root[data-theme="dark"] .specialization-track{background:#273142}:root[data-theme="dark"] .specialization-row strong,:root[data-theme="dark"] .status-column strong,:root[data-theme="dark"] .detail-item span{color:#d7dde7}
:root[data-theme="dark"] .profile-initial{background:var(--brand)}:root[data-theme="dark"] .profile-review-footer textarea{background:#0f1520;color:#fff;border-color:#344054}
:root[data-theme="dark"] .attendance-panel{background:#111722;border-color:#293244;color:#f3f5f8}
:root[data-theme="dark"] .attendance-panel-heading h3,:root[data-theme="dark"] .daily-stat-list strong,:root[data-theme="dark"] .attendance-donut b,:root[data-theme="dark"] .attendance-legend b,:root[data-theme="dark"] .center-performance-row strong,:root[data-theme="dark"] .center-performance-row>b{color:#f3f5f8}
:root[data-theme="dark"] .daily-stat-list>div{background:#151b26}:root[data-theme="dark"] .attendance-donut::before{background:#111722}:root[data-theme="dark"] .chart-grid-lines i{border-color:#293244}
:root[data-theme="dark"] .center-performance-row{border-color:#202938}:root[data-theme="dark"] .center-progress{background:#273142}:root[data-theme="dark"] .attendance-date-control input{background:#fff;color:#1d2939;border-color:rgba(255,255,255,.28)}
:root[data-theme="dark"] .scanning-secondary-kpis article,:root[data-theme="dark"] .scanning-panel{background:#111722;border-color:#293244;color:#f3f5f8}
:root[data-theme="dark"] .scanning-secondary-kpis strong,:root[data-theme="dark"] .scanning-panel-heading h3,:root[data-theme="dark"] .scanning-donut b,:root[data-theme="dark"] .scanning-workload-stats b,:root[data-theme="dark"] .scanner-fleet-table td strong{color:#f3f5f8}
:root[data-theme="dark"] .scanning-chart-grid i,:root[data-theme="dark"] .scanner-fleet-table td{border-color:#202938}:root[data-theme="dark"] .scanning-donut::before{background:#111722}:root[data-theme="dark"] .scanning-donut{background:conic-gradient(#35a66d 0 26.3%,#273142 26.3% 100%)}
:root[data-theme="dark"] .scanner-fleet-table th{background:#151b26;color:#aeb7c5;border-color:#293244}:root[data-theme="dark"] .scanner-fleet-table td{color:#aeb7c5}:root[data-theme="dark"] .scanning-band-actions select{background:#fff;color:#1d2939}

/* ---------- Top bar ---------- */
.content-top{min-height:76px;margin:-24px -30px 28px;padding:0 30px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);box-shadow:0 2px 10px rgba(16,24,40,.035)}
.content-top h1{color:#101828;font-size:20px;line-height:1.2}
.content-top .page-heading>.mobile-menu-button+div p{margin-top:3px}
.content-top .muted{color:#7a8493}
.content-top .user-chip{gap:18px;padding:0;border:0;background:transparent;color:var(--ink)}
.top-identity{min-height:44px;padding-right:18px;display:flex;align-items:center;gap:10px;border-right:1px solid var(--line)}
.top-identity b{display:block;color:#1d2939;font-size:13px}.top-identity .muted{display:block;margin-top:3px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.top-actions{display:flex;align-items:center;gap:7px}
.content-top .ghost{height:38px;min-height:38px;border:1px solid #d7dce3;background:#fff;color:#475467;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.content-top .ghost:hover{background:#f5f7f9;color:#101828;filter:none}
.content-top .home-button{background:#242932;border-color:#242932;color:#fff}.content-top .home-button:hover{background:#343a45;color:#fff}
.logout-button{display:inline-flex;align-items:center;gap:7px}.logout-button svg{width:16px;height:16px}
:root[data-theme="dark"] .content-top{background:#111722;border-color:#293244;color:#f3f5f8;box-shadow:0 2px 12px rgba(0,0,0,.18)}
:root[data-theme="dark"] .content-top h1,:root[data-theme="dark"] .top-identity b{color:#f3f5f8}
:root[data-theme="dark"] .top-identity{border-color:#344054}
:root[data-theme="dark"] .content-top .user-chip{background:transparent;color:#f3f5f8}
:root[data-theme="dark"] .content-top .ghost{border-color:#344054;background:#151b26;color:#d7dde7}
:root[data-theme="dark"] .content-top .ghost:hover{background:#202938;color:#fff}
:root[data-theme="dark"] .content-top .home-button{background:var(--brand);border-color:var(--brand);color:#fff}

@media (max-width:1100px){.feature-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1240px){.evaluator-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.evaluator-dashboard-grid{grid-template-columns:1fr}.evaluator-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-clear{justify-content:center}}
@media (max-width:1280px){.attendance-dashboard-grid{grid-template-columns:1fr}}
@media (max-width:1200px){.scanning-secondary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.scanning-analytics-grid{grid-template-columns:1fr}}
@media (max-width:1150px){.attendance-summary-band{grid-template-columns:1fr}.attendance-date-control{display:grid;grid-template-columns:1fr 1.2fr;align-items:end;gap:10px 14px;border-left:0;border-top:1px solid rgba(255,255,255,.18)}.attendance-date-control>label{grid-column:1}.attendance-date-control input{grid-column:1}.attendance-period-control{grid-column:2;grid-row:1/3;margin-top:0}.attendance-date-note{grid-column:1/-1;margin-top:5px}.attendance-kpis{margin-top:36px}}
@media (max-width:980px){.evaluator-module-menu{padding:20px}.evaluator-main{padding:20px}.profile-review-footer{grid-template-columns:1fr}.profile-review-actions{justify-content:flex-end}}
@media (max-width:1120px){.registration-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:920px){.entry-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.date-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-upload-grid{grid-template-columns:1fr}.identity-preview{height:190px}}
@media (max-width:760px){.attendance-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.attendance-kpi:nth-child(3){padding-left:0;border-left:0}.daily-attendance-body{grid-template-columns:1fr}.attendance-filters{display:grid;grid-template-columns:1fr 1fr}.attendance-filters select{width:100%}.center-heading{align-items:flex-start;flex-direction:column}.center-performance-row{grid-template-columns:120px minmax(110px,1fr) 42px}.center-performance-row em{display:none}}
@media (max-width:760px){.scanning-band-heading{align-items:flex-start;flex-direction:column}.scanning-band-actions{width:100%;justify-content:space-between}.scanning-primary-kpis{grid-template-columns:1fr;margin-top:28px}.scanning-primary-kpi,.scanning-primary-kpi:first-child{min-height:auto;padding:16px 0;border-left:0;border-top:1px solid rgba(255,255,255,.18)}.scanning-primary-kpi:first-child{border-top:0}.scanning-workload-stats{grid-template-columns:1fr}}
@media (max-width:960px){.login{grid-template-columns:1fr}.content{padding:22px 18px}.content-top{margin:-22px -18px 24px;padding:0 18px}.sidebar{position:fixed;left:0;width:238px;flex-basis:238px;transform:translateX(-102%);box-shadow:18px 0 44px rgba(17,24,39,.18)}.shell2.sidebar-collapsed .sidebar{width:238px;flex-basis:238px}.shell2.sidebar-collapsed .side-logo{justify-content:space-between}.shell2.sidebar-collapsed .side-brand{display:flex}.shell2.sidebar-collapsed .nav-item{justify-content:flex-start;padding:0 13px}.shell2.sidebar-collapsed .nav-item span,.shell2.sidebar-collapsed .side-foot{display:block}.sidebar-toggle{display:none}.mobile-menu-button{display:grid}.shell2.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;z-index:20;min-height:0;padding:0;border:0;border-radius:0;background:rgba(17,24,39,.36);backdrop-filter:blur(2px)}.shell2.sidebar-open .sidebar-backdrop{display:block}}
@media (max-width:680px){.feature-row{grid-template-columns:1fr}.feature{min-height:124px;padding:18px 20px}.tiles{grid-template-columns:1fr}.tile{min-height:121px}.content-top .user-chip{gap:8px}.top-identity{padding-right:10px}.top-identity>div:last-child{display:none}.theme-toggle{width:36px;min-width:36px}.home-button{width:36px;min-width:36px;padding:0}.home-button span,.logout-button span{display:none}.logout-button{width:36px;min-width:36px;padding:0;justify-content:center}}
@media (max-width:680px){.evaluator-module-menu{padding:16px}.evaluator-module-grid{grid-template-columns:1fr}.evaluator-module-card{min-height:154px}.evaluator-main{padding:16px}.evaluator-kpis{grid-template-columns:1fr}.evaluator-kpi{min-height:102px}.evaluator-filters{grid-template-columns:1fr}.profile-detail-grid,.detail-list{grid-template-columns:1fr}.profile-section.full{grid-column:auto}.profile-overlay{padding:10px}.profile-dialog{max-height:calc(100vh - 20px)}.profile-review-actions{align-items:stretch;flex-direction:column}.profile-review-actions button{width:100%;justify-content:center}.profile-review-actions .message{max-width:none}.profile-identity{align-items:flex-start;flex-direction:column}}
@media (max-width:560px){.attendance-summary-main,.attendance-date-control{padding:20px}.attendance-summary-heading{align-items:flex-start;flex-direction:column}.attendance-kpis{grid-template-columns:1fr;margin-top:30px}.attendance-kpi,.attendance-kpi:nth-child(3){padding:12px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.2)}.attendance-kpi:first-child{padding-top:0;border-top:0}.attendance-date-control{display:block}.attendance-period-control{margin-top:12px}.attendance-date-note{margin-top:20px}.attendance-panel{padding:18px}.daily-stat-list{grid-template-columns:1fr}.attendance-filters{grid-template-columns:1fr}.center-performance-row{grid-template-columns:100px minmax(90px,1fr) 40px;gap:10px}}
@media (max-width:560px){.scanning-command-band{padding:22px 20px}.scanning-band-actions{align-items:stretch;flex-direction:column}.scanning-band-actions label,.scanning-band-actions select{width:100%}.scanning-secondary-kpis{grid-template-columns:1fr}.scanning-panel{padding:18px}.throughput-legend{display:none}.scanning-throughput-chart{gap:5px}.throughput-bars i{width:11px}.scanner-fleet-panel{padding-left:0;padding-right:0}.fleet-heading{padding:0 18px}}
@media (max-width:680px){.registration-header{height:auto;min-height:68px;padding:12px 16px}.registration-brand div{display:none}.registration-back span{display:none}.registration-main{width:min(100% - 24px,1320px);padding:24px 0 36px}.registration-intro{align-items:flex-start}.registration-intro h1{font-size:24px}.registration-intro p{font-size:13px}.registration-fields,.entry-fields,.date-row{grid-template-columns:1fr}.registration-form{padding:20px 16px}.form-section-heading,.heading-copy{align-items:flex-start}.split-heading{align-items:flex-start;flex-direction:column}.profile-upload{align-items:flex-start}.upload-action{display:none}.registration-actions{align-items:stretch;flex-direction:column-reverse}.registration-actions button{width:100%}.document-upload b{display:none}}
@media (max-width:540px){.confirmation-dialog{padding:34px 20px 22px}.confirmation-actions{align-items:stretch;flex-direction:column-reverse}.confirmation-actions button{width:100%}.confirmation-dialog h2{font-size:23px}}
@media (max-width:540px){.identity-upload-actions{grid-template-columns:1fr}.camera-dialog{padding:16px}.camera-actions{align-items:stretch;flex-direction:column-reverse}.camera-actions button{width:100%}.camera-guide{inset:6%}}

/* ---- E-Marking dashboard (modern) ---- */
.emarking-wrap{width:100%;margin:0;padding:26px 18px 52px;display:flex;flex-direction:column;gap:22px}

/* hero + chart row */
.em-hero-row{display:grid;grid-template-columns:minmax(230px,1fr) 2fr;gap:16px}
.em-hero{position:relative;display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:20px;background:var(--navy);color:#fff;min-height:180px;overflow:hidden}
.em-hero::after{content:"";position:absolute;right:-40px;bottom:-50px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.55),transparent 70%);opacity:.6;pointer-events:none}
.em-hero-stats{position:relative;z-index:1;display:flex;align-items:stretch;gap:22px;margin-top:auto}
.em-hero-stat{flex:1;min-width:0;display:flex;flex-direction:column}
.em-hero-sep{width:1px;background:rgba(255,255,255,.16);flex:0 0 auto}
.em-hero-label{position:relative;z-index:1;font-size:13px;font-weight:600;color:#c7cfdd}
.em-hero strong{position:relative;z-index:1;margin-top:10px;font-size:44px;line-height:1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.em-hero-stat em{margin-top:6px;color:rgba(255,255,255,.6);font-size:11.5px;font-style:normal;font-weight:550;line-height:1.35}
.em-hero-link{position:relative;z-index:1;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:0;color:#cbd5e1;font:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.em-hero-link:hover{color:#fff}.em-hero-link svg{width:16px;height:16px;transition:transform .16s ease}.em-hero-link:hover svg{transform:translateX(3px)}
.em-chart-card{border:1px solid var(--line);border-radius:20px;background:var(--bg);padding:20px;display:flex;flex-direction:column}
.em-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:6px}
.em-chart-head h4{margin:0;font-size:15px}.em-chart-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.em-chart-note{color:var(--muted);font-size:12px;white-space:nowrap}.em-chart-note b{color:var(--ink);font-size:16px;font-weight:750}
.em-chart{flex:1;display:flex;align-items:flex-end;gap:12px;padding-top:12px}
.em-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:150px}
.em-bar-track{--bc:#2563eb;width:100%;max-width:52px;min-height:8px;border-radius:8px;background:color-mix(in srgb,var(--bc) 15%,transparent);display:flex;align-items:flex-end;overflow:hidden;transition:height .5s ease}
.em-bar-col[data-subject="urdu"] .em-bar-track{--bc:#4f7bf7}.em-bar-col[data-subject="english"] .em-bar-track{--bc:#875bf7}.em-bar-col[data-subject="science"] .em-bar-track{--bc:#12b76a}.em-bar-col[data-subject="maths"] .em-bar-track{--bc:#f79009}
.em-bar-fill{width:100%;background:var(--bc);border-radius:7px;transition:height .6s ease}
.em-bar-val{font-size:13px;font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums}
.em-bar-lbl{font-size:11px;color:var(--muted);font-weight:600}
/* mini stat cards (2x2 grid beside the hero, or standalone row) */
.em-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.em-mini-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.em-mini{border:1px solid var(--line);border-radius:16px;background:var(--bg);padding:18px}
.em-mini-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.em-mini-top small{color:var(--muted);font-size:13.5px;font-weight:650}
.em-mini-ic{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border-radius:9px}.em-mini-ic svg{width:17px;height:17px}
.em-mini-ic.alloted{background:color-mix(in srgb,#2563eb 13%,transparent);color:#2563eb}
.em-mini-ic.marked{background:color-mix(in srgb,#12b76a 13%,transparent);color:#12b76a}
.em-mini-ic.remaining{background:color-mix(in srgb,#f79009 13%,transparent);color:#f79009}
.em-mini-ic.markers{background:color-mix(in srgb,#875bf7 13%,transparent);color:#875bf7}
.em-mini strong{display:block;margin:14px 0 3px;font-size:36px;line-height:1;font-weight:780;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}
.em-mini em{color:var(--muted);font-size:13px;font-style:normal;font-weight:550}
:root[data-theme="dark"] .em-chart-card,:root[data-theme="dark"] .em-mini{background:#111722;border-color:#293244}
:root[data-theme="dark"] .em-chart-head h4,:root[data-theme="dark"] .em-mini strong,:root[data-theme="dark"] .em-bar-val,:root[data-theme="dark"] .em-chart-note b{color:#f3f5f8}
@media (max-width:820px){.em-hero-row{grid-template-columns:1fr}.em-hero{min-height:0}.em-hero strong{font-size:42px}}

/* gradient-glow stat cards */
.em-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.em-stat{--accent:#4f7bf7;position:relative;display:flex;align-items:center;gap:16px;padding:22px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 9%,var(--bg)),var(--bg) 62%);overflow:hidden;transition:transform .2s ease,box-shadow .22s ease}
.em-stat::after{content:"";position:absolute;right:-42px;bottom:-52px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 42%,transparent),transparent 70%);opacity:.5;pointer-events:none}
.em-stat:hover{transform:translateY(-4px);box-shadow:0 20px 40px -18px color-mix(in srgb,var(--accent) 60%,transparent)}
.em-stat.total{--accent:#4f7bf7}.em-stat.marked{--accent:#12b76a}.em-stat.remaining{--accent:#f79009}.em-stat.markers{--accent:#875bf7}
.em-stat-ic{position:relative;z-index:1;width:50px;height:50px;flex:0 0 auto;display:grid;place-items:center;border-radius:15px;background:linear-gradient(150deg,var(--accent),color-mix(in srgb,var(--accent) 62%,#000));color:#fff;box-shadow:0 8px 18px -6px color-mix(in srgb,var(--accent) 65%,transparent)}
.em-stat-ic svg{width:24px;height:24px;stroke-width:2}
.em-stat>div{position:relative;z-index:1}
.em-stat small{display:block;color:var(--muted);font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em}
.em-stat strong{display:block;margin:3px 0 2px;color:var(--ink);font-size:32px;line-height:1;font-weight:780;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.em-stat em{color:var(--muted);font-size:11.5px;font-style:normal;font-weight:550}

/* panel */
.em-panel{border:1px solid var(--line);border-radius:22px;background:var(--bg);padding:24px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.em-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.em-panel-head h3{margin:0;font-size:17px;letter-spacing:-.01em}.em-panel-head p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.em-live{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,#12b76a 13%,transparent);color:#0a7a4a;font-size:11px;font-weight:700;white-space:nowrap}
.em-live-dot{width:8px;height:8px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 0 rgba(18,183,106,.5);animation:emPulse 1.8s ease-out infinite}
@keyframes emPulse{0%{box-shadow:0 0 0 0 rgba(18,183,106,.5)}70%{box-shadow:0 0 0 8px rgba(18,183,106,0)}100%{box-shadow:0 0 0 0 rgba(18,183,106,0)}}

/* subject cards with progress ring */
.em-subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.em-subject{--sac:#4f7bf7;position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--bg);overflow:hidden;transition:transform .2s ease,box-shadow .22s ease,border-color .2s ease}
.em-subject::before{content:"";position:absolute;inset:0 0 auto 0;height:130px;background:radial-gradient(120% 80% at 50% -28%,color-mix(in srgb,var(--sac) 17%,transparent),transparent 70%);pointer-events:none}
.em-subject:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 22px 44px -20px color-mix(in srgb,var(--sac) 55%,transparent)}
.em-subject[data-subject="urdu"]{--sac:#4f7bf7}.em-subject[data-subject="english"]{--sac:#875bf7}.em-subject[data-subject="science"]{--sac:#12b76a}.em-subject[data-subject="maths"]{--sac:#f79009}
.em-subject-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.em-subject-top h4{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700}
.em-subject-top h4::before{content:"";width:10px;height:10px;border-radius:4px;background:var(--sac)}
/* active markers by subject */
.em-markers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.em-marker{--sac:#4f7bf7;position:relative;border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--bg);overflow:hidden;transition:transform .2s ease,box-shadow .22s ease,border-color .2s ease}
.em-marker::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--sac);opacity:.85}
.em-marker:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 18px 36px -18px color-mix(in srgb,var(--sac) 55%,transparent)}
.em-marker[data-subject="urdu"]{--sac:#4f7bf7}.em-marker[data-subject="english"]{--sac:#875bf7}.em-marker[data-subject="science"]{--sac:#12b76a}.em-marker[data-subject="maths"]{--sac:#f79009}
.em-marker-head{display:flex;align-items:center;gap:8px}
.em-marker-dot{width:10px;height:10px;border-radius:4px;background:var(--sac)}
.em-marker-head h5{margin:0;flex:1;font-size:14px;font-weight:700}
.em-marker-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.em-marker.on .em-marker-status{display:inline-flex;align-items:center;gap:5px;color:color-mix(in srgb,var(--sac) 74%,#000)}
.em-marker.on .em-marker-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sac);animation:emPulse 1.8s ease-out infinite}
.em-marker-count{display:flex;align-items:baseline;gap:6px;margin:14px 0 5px}
.em-marker-count b{color:var(--sac);font-size:34px;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.em-marker-count span{color:var(--muted);font-size:16px;font-weight:650;font-variant-numeric:tabular-nums}
.em-marker-foot{color:var(--muted);font-size:11px;font-weight:600}
.em-ring-wrap{position:relative;z-index:1;align-self:center;width:130px;height:130px;margin:18px 0 20px}
.em-ring{width:100%;height:100%;transform:rotate(-90deg)}
.em-ring-bg{fill:none;stroke:var(--line);stroke-width:11}
.em-ring-fg{fill:none;stroke:var(--sac);stroke-width:11;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}
.em-ring-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.em-ring-label b{color:var(--ink);font-size:28px;font-weight:780;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.em-ring-label span{color:var(--muted);font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.06em}
.em-subject-nums{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.em-subject-nums div{padding:10px 6px;border-radius:13px;background:var(--panel);text-align:center}
.em-subject-nums b{display:block;color:var(--ink);font-size:18px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1}
.em-subject-nums small{display:block;margin-top:4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.03em}

/* dark */
:root[data-theme="dark"] .em-stat{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 18%,#0e1420),#0e1420 62%);border-color:#293244}
:root[data-theme="dark"] .em-panel,:root[data-theme="dark"] .em-subject,:root[data-theme="dark"] .em-marker{background:#0e1420;border-color:#293244}
:root[data-theme="dark"] .em-marker-head h5{color:#f3f5f8}
:root[data-theme="dark"] .em-marker.on .em-marker-status{color:color-mix(in srgb,var(--sac) 72%,#fff)}
:root[data-theme="dark"] .em-stat strong,:root[data-theme="dark"] .em-ring-label b,:root[data-theme="dark"] .em-subject-nums b,:root[data-theme="dark"] .em-panel-head h3,:root[data-theme="dark"] .em-subject-top h4{color:#f3f5f8}
:root[data-theme="dark"] .em-ring-bg{stroke:#293244}
:root[data-theme="dark"] .em-subject-nums div{background:#151d29;border-color:#293244}
:root[data-theme="dark"] .em-markers-pill{color:color-mix(in srgb,var(--sac) 72%,#fff)}
@media (max-width:680px){.emarking-wrap{padding:16px}.em-subject-grid{grid-template-columns:1fr}}

/* ---- Allotment ---- */
.allot-table-wrap{overflow-x:auto}
.allot-table{width:100%;border-collapse:collapse;font-size:13.5px}
.allot-table thead th{text-align:left;padding:10px 14px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap}
.allot-table tbody td{padding:14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}
.allot-table tbody tr:last-child td{border-bottom:0}
.allot-table tbody tr:hover{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.allot-table tbody td b{font-weight:750;font-variant-numeric:tabular-nums}
.allot-subject{display:inline-flex;align-items:center;gap:9px;font-weight:700}
.allot-dot{width:10px;height:10px;border-radius:4px;flex:0 0 auto}
.allot-actions{white-space:nowrap}
.allot-link{border:0;background:none;padding:0;font:inherit;font-weight:650;color:var(--brand);cursor:pointer}
.allot-link:hover:not(:disabled){text-decoration:underline}
.allot-link.ghost{color:var(--muted)}
.allot-link:disabled{color:#b4bbc6;cursor:not-allowed}
.allot-sep{margin:0 9px;color:var(--line)}
:root[data-theme="dark"] .allot-table tbody tr:hover{background:rgba(255,255,255,.03)}

.um-subject{display:inline-flex;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);font-size:11px;font-weight:700;text-transform:capitalize}
.um-muted{color:var(--muted)}

/* ---- Allot Papers modal ---- */
.allot-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(16,24,40,.5)}
.allot-modal.hidden{display:none}
.allot-dialog{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 60px -20px rgba(16,24,40,.5)}
.allot-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.allot-dialog-head h2{margin:0;font-size:20px}
.allot-close{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--muted);cursor:pointer}
.allot-close:hover{border-color:#aab1bd}.allot-close svg{width:18px;height:18px}
.allot-dialog-body{padding:22px}
.allot-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.allot-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:var(--ink)}
.allot-field input,.allot-field select{height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
.allot-field input:focus,.allot-field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.allot-field input[readonly]{background:var(--panel);color:var(--muted)}
.allot-check{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:13px;color:var(--ink);cursor:pointer}
.allot-msg{margin:14px 0 0;font-size:12.5px;color:var(--muted);min-height:16px}
.allot-msg.err{color:#d92d20}.allot-msg.ok{color:#15803d}
.allot-dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}
.allot-btn{height:42px;padding:0 20px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-weight:650;cursor:pointer;transition:transform .14s ease,box-shadow .16s ease}
.allot-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px color-mix(in srgb,var(--brand) 65%,transparent)}
.allot-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.allot-btn.ghost{background:var(--bg);color:var(--ink);border:1px solid var(--line)}
.allot-btn.ghost:hover{border-color:#aab1bd;transform:none;box-shadow:none}
@media (max-width:560px){.allot-fields{grid-template-columns:1fr}}

/* ---- Rubrics & Paper Management ---- */
.rub-wrap{width:100%;padding:26px 18px 52px;display:flex;flex-direction:column;gap:18px}
.rub-panel{border:1px solid var(--line);border-radius:18px;background:var(--bg);padding:20px}
.rub-panel-head{margin-bottom:14px}
.rub-panel-head h3{margin:0;font-size:16px}
.rub-panel-head p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.rub-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.rub-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:var(--ink)}
.rub-field select,.rub-field input,.rub-field textarea{width:100%;padding:0 12px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
.rub-field textarea{height:auto;padding:10px 12px;resize:vertical;font:inherit}
.rub-field select:disabled{opacity:.55;cursor:not-allowed}
.rub-field select:focus,.rub-field input:focus,.rub-field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.rub-msg{margin:14px 2px 0;font-size:12.5px;color:var(--muted);min-height:16px}
.rub-msg.err{color:#d92d20}.rub-msg.ok{color:#15803d}
.rub-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:start}
.rub-image-wrap{border:1px solid var(--line);border-radius:14px;background:var(--panel);min-height:340px;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto}
.rub-image{max-width:100%;height:auto;border-radius:8px;background:#fff}
.rub-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}
.rub-list{display:flex;flex-direction:column;gap:10px;min-height:120px}
.rub-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.rub-item-body{flex:1;min-width:0}
.rub-item-body p{margin:0;font-size:13px;line-height:1.4;color:var(--ink);word-break:break-word}
.rub-marks{flex:0 0 auto;min-width:42px;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand);font-size:13px;font-weight:750;text-align:center;font-variant-numeric:tabular-nums}
.rub-del{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--muted);cursor:pointer}
.rub-del:hover{border-color:#f0a3a3;color:#d92d20}.rub-del svg{width:15px;height:15px}
.rub-total{margin-top:4px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.rub-total b{color:var(--ink)}
.rub-form{display:grid;grid-template-columns:1fr 110px auto;gap:12px;align-items:end;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.rub-form.hidden{display:none}
.rub-btn{height:42px;padding:0 18px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-weight:650;cursor:pointer;transition:transform .14s ease,box-shadow .16s ease}
.rub-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px color-mix(in srgb,var(--brand) 65%,transparent)}
:root[data-theme="dark"] .rub-panel{background:#111722;border-color:#293244}
:root[data-theme="dark"] .rub-image-wrap,:root[data-theme="dark"] .rub-item{background:#0e1420;border-color:#293244}
@media (max-width:960px){.rub-grid{grid-template-columns:1fr}}
@media (max-width:560px){.rub-wrap{padding:16px}.rub-form{grid-template-columns:1fr}}

/* rubric total-marks allocation */
.rub-total-box{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.rub-total-box.hidden{display:none}
.rub-total-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.rub-field.narrow{flex:0 0 auto;width:118px}
.rub-alloc{display:block;margin-top:12px;color:var(--muted);font-size:12px;font-weight:600}
.rub-alloc.full{color:#15803d}
.rub-alloc.warn{color:#b54708}

/* rubrics — questions overview table */
.rub-panel.hidden{display:none}
.rub-qlist-wrap{overflow-x:auto}
.rub-qtable{width:100%;border-collapse:collapse;font-size:13.5px}
.rub-qtable thead th{text-align:left;padding:10px 14px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap}
.rub-qtable tbody td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}
.rub-qtable tbody tr:last-child td{border-bottom:0}
.rub-qtable tbody tr:hover td{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.rub-qtable tbody tr.active td{background:color-mix(in srgb,var(--brand) 8%,transparent)}
.rub-qname{font-weight:700}
.rub-qactions{text-align:right}
.rub-eye{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--brand);cursor:pointer}
.rub-eye:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.rub-eye svg{width:16px;height:16px}
.rub-pill{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}
.rub-pill.ok{background:#e7f6ec;color:#15803d}
.rub-pill.warn{background:#fdf0da;color:#b45309}
.rub-pill.muted{background:var(--panel);color:var(--muted)}
/* rubric inline edit */
.rub-edit{flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--muted);cursor:pointer}
.rub-edit:hover{border-color:var(--brand);color:var(--brand)}
.rub-edit svg{width:15px;height:15px}
.rub-edit.save{color:#15803d}.rub-edit.save:hover{border-color:#15803d}
.rub-item.editing{align-items:flex-start}
.rub-edit-desc{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px;resize:vertical}
.rub-edit-marks{width:74px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit;text-align:center}
.rub-edit-desc:focus,.rub-edit-marks:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
:root[data-theme="dark"] .rub-qtable tbody tr:hover td{background:rgba(255,255,255,.03)}

/* rubric view/edit popup */
.rub-edit-dialog{width:min(920px,100%)}
.rub-edit-sub{margin:4px 0 0;color:var(--muted);font-size:12px}
.rub-edit-body{max-height:min(70vh,640px);overflow:auto}
.rub-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.rub-edit-grid .rub-image-wrap{min-height:260px;margin:0}
.rub-edit-side{display:flex;flex-direction:column;gap:12px}
.rub-edit-rows{display:flex;flex-direction:column;gap:10px}
.rub-edit-row{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.rub-edit-row .rub-edit-desc{flex:1;min-width:0}
:root[data-theme="dark"] .rub-edit-row{background:#0e1420;border-color:#293244}
#rubEditAdd{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}
#rubEditAdd svg{width:15px;height:15px}
@media (max-width:760px){.rub-edit-grid{grid-template-columns:1fr}}

/* rubrics — save & next part */
.rub-btn.next{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:#e7f6ec;color:#15803d;border:1px solid #b7e4c7;font-weight:700}
.rub-btn.next:hover{background:#d8f0e1;border-color:#15803d;transform:translateY(-1px);box-shadow:0 10px 20px -10px rgba(21,128,61,.5)}
.rub-btn.next:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.rub-btn.next.hidden{display:none}
.rub-btn.next svg{width:15px;height:15px}
:root[data-theme="dark"] .rub-btn.next{background:color-mix(in srgb,#22c55e 16%,transparent);color:#4ade80;border-color:color-mix(in srgb,#22c55e 35%,transparent)}

/* generic alert popup */
.app-alert-dialog{width:min(460px,100%)}
.app-alert-head{display:flex;align-items:center;gap:11px}
.app-alert-head h2{margin:0;font-size:17px}
.app-alert-icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:#fdeaea;color:#d92d20}
.app-alert-icon svg{width:19px;height:19px}
.app-alert-msg{margin:0;color:var(--ink);font-size:14px;line-height:1.5}
:root[data-theme="dark"] .app-alert-icon{background:color-mix(in srgb,#ef4444 18%,transparent);color:#f87171}

/* rubrics — sub tabs */
.rub-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
/* Dark accent tabs — same language as the Modules tiles. */
.rub-tab{--tint:#4f7bf7;position:relative;display:flex;align-items:center;gap:14px;padding:17px 20px;
  border:1.5px solid rgba(255,255,255,.11);border-radius:16px;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 18%,#243146),#243146 62%);
  color:#fff;text-align:left;cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,box-shadow .18s ease,background .2s ease}
.rub-tab[data-rub-tab="settings"]{--tint:#875bf7}
.rub-tab::before{content:"";position:absolute;right:-45px;top:-55px;width:170px;height:170px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--tint) 55%,transparent),transparent 68%);opacity:.28;pointer-events:none}
.rub-tab>*{position:relative;z-index:1}
.rub-tab:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tint) 50%,transparent)}
.rub-tab.active{border-color:var(--tint);
  background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 34%,#243146),#243146 66%);
  box-shadow:0 18px 34px -16px color-mix(in srgb,var(--tint) 70%,transparent)}
.rub-tab.active::before{opacity:.45}
.rub-tab-ic{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;
  background:color-mix(in srgb,var(--tint) 34%,transparent);color:#fff;border:1px solid rgba(255,255,255,.14);
  transition:background .2s ease,box-shadow .2s ease}
.rub-tab-ic svg{width:20px;height:20px;stroke-width:2}
.rub-tab.active .rub-tab-ic{background:var(--tint);box-shadow:0 8px 16px -6px color-mix(in srgb,var(--tint) 70%,transparent)}
.rub-tab-txt strong{display:block;font-size:16px;font-weight:750;line-height:1.2;letter-spacing:-.01em;color:#fff}
.rub-tab-txt small{display:block;margin-top:4px;font-size:12.5px;font-weight:500;line-height:1.35;color:rgba(255,255,255,.72)}
.rub-field.hidden,.rub-grid.hidden{display:none}

/* ---- E-marker home ---- */
.marker-home{width:100%;padding:28px 22px 52px}
.marker-greet h2{margin:0;font-size:24px;letter-spacing:-.01em}
.marker-greet p{margin:6px 0 0;color:var(--muted);font-size:13.5px}
.marker-tiles{margin-top:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:820px}
@media (max-width:680px){.marker-home{padding:18px 16px 40px}.marker-tiles{grid-template-columns:1fr}}

/* ---- Paper Checking (marker workspace) ---- */
.pc-wrap{width:100%;padding:26px 22px 52px;display:flex;flex-direction:column;gap:16px}
.pc-wrap.hidden,#pcAdmin.hidden{display:none}
.pc-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:22px;border:1.5px solid rgba(255,255,255,.11);border-radius:20px;overflow:hidden;position:relative;
  background:linear-gradient(160deg,color-mix(in srgb,#4f7bf7 24%,#243146),#243146 62%);color:#fff}
.pc-head::before{content:"";position:absolute;right:-45px;top:-55px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,#4f7bf7 55%,transparent),transparent 68%);opacity:.32;pointer-events:none}
.pc-avail{position:relative;z-index:1}
.pc-avail-label{display:block;font-size:13px;font-weight:600;color:#c7cfdd}
.pc-avail strong{display:block;margin:8px 0 4px;font-size:44px;line-height:1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pc-avail em{color:rgba(255,255,255,.6);font-size:12px;font-style:normal;font-weight:550}
.pc-getbatch{position:relative;z-index:1;display:inline-flex;align-items:center;gap:9px;height:46px;padding:0 22px;border:0;border-radius:12px;
  background:#12b76a;color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:transform .14s ease,box-shadow .16s ease,opacity .16s ease}
.pc-getbatch:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 26px -10px rgba(18,183,106,.6)}
.pc-getbatch:disabled{opacity:.45;cursor:not-allowed}
.pc-getbatch svg{width:17px;height:17px}
.pc-batches{display:flex;flex-direction:column;gap:12px}
.pc-empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:13.5px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}
.pc-batch{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 20px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}
.pc-batch.done{border-color:color-mix(in srgb,#12b76a 35%,transparent)}
.pc-batch-q{font-size:15px;font-weight:750;color:var(--ink);min-width:120px}
.pc-batch-sub{color:var(--muted);font-size:12.5px;text-transform:capitalize}
.pc-batch-stat{color:var(--muted);font-size:13px}.pc-batch-stat b{color:var(--ink);font-weight:750}
.pc-batch-state{font-size:13px;font-weight:700}
.pc-batch-state.ok{color:#15803d}.pc-batch-state.pending{color:#b45309}
.pc-batch-actions{margin-left:auto;display:flex;gap:10px}
.pc-batch-actions .rub-btn{height:38px;padding:0 16px;font-size:13px}
.pc-batch-dialog{width:min(720px,100%)}
.pc-batch-body{max-height:min(64vh,560px);overflow:auto}
:root[data-theme="dark"] .pc-batch,:root[data-theme="dark"] .pc-empty{background:#111722;border-color:#293244}
@media (max-width:680px){.pc-wrap{padding:16px}.pc-batch-actions{margin-left:0;width:100%}}

/* ---- Marking screen ---- */
.pc-mark{width:100%;padding:20px 22px 44px;display:flex;flex-direction:column;gap:14px}
.pc-mark.hidden{display:none}
.pc-mark-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pc-mark-bar .rub-btn{height:38px;padding:0 14px;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.pc-mark-bar .rub-btn svg{width:15px;height:15px}
.pc-mark-chip{padding:7px 14px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);font-size:13px;font-weight:750}
.pc-mark-progress{margin-left:auto;color:var(--muted);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.pc-mark-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start}
.pc-mark-answer{border:1px solid var(--line);border-radius:18px;background:var(--panel);min-height:60vh;display:flex;align-items:center;justify-content:center;padding:14px;overflow:auto}
.pc-answer-img{max-width:100%;height:auto;border-radius:10px;background:#fff}
.pc-mark-side{border:1px solid var(--line);border-radius:18px;background:var(--bg);padding:18px;display:flex;flex-direction:column;gap:14px}
.pc-mark-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pc-mark-head h3{margin:0;font-size:16px}
.pc-mark-max{padding:5px 12px;border-radius:999px;background:var(--panel);color:var(--ink);font-size:14px;font-weight:780;font-variant-numeric:tabular-nums}
.pc-rubrics{display:flex;flex-direction:column;gap:9px;max-height:38vh;overflow:auto}
.pc-rubric{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease}
.pc-rubric:hover{border-color:#aab1bd}
.pc-rubric.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.pc-rubric-marks{flex:0 0 auto;min-width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--brand) 13%,transparent);color:var(--brand);font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.pc-rubric.on .pc-rubric-marks{background:var(--brand);color:#fff}
.pc-rubric-desc{font-size:13px;line-height:1.4}
.pc-remarks{margin:0}
.pc-mark-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pc-act{height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-weight:650;cursor:pointer}
.pc-act:hover{border-color:#aab1bd}
.pc-act.warn{border-color:#f0c48a;background:#fdf6ec;color:#b45309}
.pc-act.primary{grid-column:1/-1;border:0;background:var(--brand);color:#fff;font-weight:700}
.pc-act.primary:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px color-mix(in srgb,var(--brand) 65%,transparent)}
:root[data-theme="dark"] .pc-mark-answer{background:#0e1420;border-color:#293244}
:root[data-theme="dark"] .pc-mark-side,:root[data-theme="dark"] .pc-rubric{background:#111722;border-color:#293244}
:root[data-theme="dark"] .pc-act.warn{background:color-mix(in srgb,#f79009 14%,transparent);border-color:color-mix(in srgb,#f79009 35%,transparent);color:#fbbf24}
@media (max-width:960px){.pc-mark-grid{grid-template-columns:1fr}}

/* ---- E-marker access switch (master, Approved tab) ---- */
.profile-head-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.lock-box{display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.lock-box.hidden{display:none}
.lock-txt strong{display:block;font-size:13px;font-weight:700;color:var(--ink)}
.lock-txt small{display:block;margin-top:2px;font-size:11.5px;color:var(--muted)}
.lock-txt small.warn{color:#b45309;font-weight:650}
.switch{position:relative;display:inline-flex;flex:0 0 auto;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch-track{width:46px;height:26px;border-radius:999px;background:#cbd2dc;transition:background .18s ease;display:block;position:relative}
.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(16,24,40,.25);transition:transform .18s ease}
.switch input:checked + .switch-track{background:#12b76a}
.switch input:checked + .switch-track .switch-knob{transform:translateX(20px)}
.switch input:disabled + .switch-track{opacity:.6;cursor:not-allowed}
:root[data-theme="dark"] .lock-box{background:#111722;border-color:#293244}
:root[data-theme="dark"] .switch-track{background:#3a4557}

/* ---- Answer zoom pane ---- */
.pc-answer-pane{display:flex;flex-direction:column;gap:8px;min-width:0}
.pc-zoom{display:flex;align-items:center;gap:8px}
.pc-zoom-btn{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.pc-zoom-btn.wide{width:auto;padding:0 12px;font-size:12.5px}
.pc-zoom-btn:hover{border-color:var(--brand);color:var(--brand)}
.pc-zoom-pct{min-width:52px;text-align:center;color:var(--muted);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
.pc-zoom-hint{margin-left:auto;color:var(--muted);font-size:11.5px}
.pc-mark-answer{cursor:grab}
.pc-mark-answer.grabbing{cursor:grabbing}
.pc-answer-img{transform-origin:center center;transition:transform .08s linear;user-select:none;-webkit-user-drag:none}
@media (max-width:960px){.pc-zoom-hint{display:none}}

/* ---- Proctoring self-view (Paper Checking) --------------------------------
   Fixed to the viewport bottom-LEFT: the marking actions (Submit & Next, Not
   Attempted) sit bottom-right, and the preview covered them there.
   Preview only: never recorded, stored or uploaded. */
.pc-cam{position:fixed;left:20px;bottom:20px;z-index:60;width:210px;border-radius:14px;
  overflow:hidden;background:#0b1220;border:1px solid rgba(255,255,255,.18);
  box-shadow:0 10px 30px rgba(2,8,23,.38)}
.pc-cam.hidden{display:none}
.pc-cam-video{display:block;width:100%;height:150px;object-fit:cover;background:#0b1220;
  transform:scaleX(-1)}                 /* mirror: a self-view should read like a mirror */
.pc-cam-bar{display:flex;align-items:center;gap:7px;padding:6px 10px;background:rgba(2,8,23,.92)}
.pc-cam-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;flex:none;
  animation:pcCamPulse 2s ease-in-out infinite}
@keyframes pcCamPulse{0%,100%{opacity:1}50%{opacity:.35}}
.pc-cam-label{color:#cbd5e1;font-size:11px;font-weight:600;letter-spacing:.01em}
@media (prefers-reduced-motion:reduce){.pc-cam-dot{animation:none}}
@media (max-width:900px){.pc-cam{width:150px}.pc-cam-video{height:108px}}

/* Blocking gate shown when camera permission is missing or the stream drops. */
.pc-cam-gate{position:fixed;inset:0;z-index:70;display:flex;align-items:center;
  justify-content:center;background:rgba(2,8,23,.62);backdrop-filter:blur(3px);padding:20px}
.pc-cam-gate.hidden{display:none}
.pc-cam-gate-card{width:min(460px,100%);background:var(--bg);border:1px solid var(--line);
  border-radius:18px;padding:26px;text-align:center;box-shadow:0 22px 60px rgba(2,8,23,.35)}
.pc-cam-gate-ic{width:34px;height:34px;color:#ef4444;margin-bottom:6px}
.pc-cam-gate-card h3{margin:6px 0 8px;font-size:18px}
.pc-cam-gate-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.pc-cam-gate-acts{display:flex;gap:10px;justify-content:center;margin-top:18px}
.pc-cam-help{margin-top:12px !important;font-size:12.5px}
.pc-cam-help.err{color:#ef4444}
/* Presence warning: self-view turns red when the marker is not in frame. */
.pc-cam.warn{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.35),0 10px 30px rgba(2,8,23,.38)}
.pc-cam.warn .pc-cam-bar{background:#7f1d1d}
.pc-cam.warn .pc-cam-label{color:#fecaca}

/* ---- Consent notice + reason-specific proctoring gates -------------------- */
.pc-cam-gate-ic.ok{color:#16a34a}
.pc-cam-gate-ic.warn{color:#f59e0b}
.pc-consent-card{width:min(560px,100%);text-align:left}
.pc-consent-card h3,.pc-consent-card .pc-cam-gate-ic{display:block}
.pc-consent-card h3{text-align:left}
.pc-consent-lead{margin:0 0 14px !important}
.pc-consent-list{margin:0;padding:0 0 0 18px;color:var(--muted);font-size:13.5px;line-height:1.65}
.pc-consent-list li{margin:7px 0}
.pc-consent-list b{color:var(--ink);font-weight:700}
.pc-cam-gate-acts{flex-wrap:wrap}
.pc-cam-gate-acts .hidden{display:none}

/* ---- "Keep me signed in" on the login card -------------------------------
   The global input rule sizes fields to 100%/42px, which would blow a checkbox
   up to the full card width, so the box is sized explicitly here. */
.remember-row{display:flex;align-items:center;gap:9px;margin-top:16px;
  color:#374151;font-size:13.5px;font-weight:600;cursor:pointer}
.remember-row input[type="checkbox"]{width:16px;height:16px;margin:0;flex:none;
  accent-color:var(--navy);cursor:pointer}
.remember-row span{cursor:pointer}
.remember-hint{margin:5px 0 0 25px;color:var(--muted);font-size:12px}

/* Inactivity warning shown for the last minute before an idle sign-out. */
.idle-warn{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;
  max-width:min(520px,92vw);padding:12px 18px;border-radius:12px;
  background:#7f1d1d;color:#fee2e2;font-size:13.5px;font-weight:600;text-align:center;
  box-shadow:0 12px 34px rgba(2,8,23,.4);cursor:pointer}
