
/* Keep authenticated portal completely out of the document flow until OTP login succeeds. */
#appView[hidden],#loginView[hidden],[hidden]{display:none !important}
body.auth-locked{overflow:hidden}
:root{--navy:#071a2f;--navy2:#0d2943;--blue:#0878e8;--blue2:#1b92f2;--gold:#e4ad27;--bg:#f4f7fb;--card:#fff;--text:#102a43;--muted:#718398;--line:#e2e9f0;--success:#16835a;--danger:#c83a34;--shadow:0 12px 34px rgba(18,49,78,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit}.login-view{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 10%,rgba(27,146,242,.18),transparent 34%),linear-gradient(145deg,#06172a,#0b3151)}.login-card{width:min(100%,470px);background:#fff;border:1px solid rgba(255,255,255,.5);border-radius:24px;padding:40px;box-shadow:0 28px 80px rgba(0,0,0,.25)}.brand,.sidebar-brand{display:flex;align-items:center;gap:11px;font-family:"Space Grotesk",Inter,sans-serif;font-weight:700}.brand{margin-bottom:42px}.brand-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#1b92f2,#e4ad27);box-shadow:0 0 0 5px rgba(27,146,242,.08)}.eyebrow,.page-kicker{font-size:10px;letter-spacing:2px;font-weight:800;color:#6f8499}.login-card h1{font:700 36px "Space Grotesk",Inter,sans-serif;margin:8px 0}.muted{color:var(--muted);font-size:14px;line-height:1.7}.stack{display:grid;gap:14px;margin-top:24px}label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#34536c}input,select,textarea{width:100%;border:1px solid #cfdbe5;border-radius:10px;background:#fff;padding:12px 13px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,120,232,.1)}textarea{min-height:110px;resize:vertical}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:800;font-size:12px;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 8px 18px rgba(8,120,232,.18)}.btn.secondary{background:#edf3f8;color:#31536d}.btn.danger{background:#fff0ef;color:var(--danger)}.btn.wide{width:100%;padding:13px}.link-btn,.text-btn{border:0;background:transparent;color:var(--blue);font-weight:800;font-size:12px}.login-note{margin:22px 0 0;text-align:center;color:#93a1af;font-size:11px;line-height:1.6}.login-step{animation:loginFade .22s ease}.login-step[hidden]{display:none}.login-step h1{letter-spacing:-1px}.back-link{border:0;background:transparent;padding:0 0 20px;color:#5c7890;font-size:12px;font-weight:800}.back-link:hover{color:var(--blue)}.otp-input{text-align:center;letter-spacing:8px;font-size:22px;font-weight:800;padding:14px}.login-card{padding:34px}.login-card .brand{margin-bottom:34px}@keyframes loginFade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.alert{padding:11px 13px;border-radius:9px;font-size:12px;font-weight:700}.alert.info{background:#eef7ff;color:#075a9d;border:1px solid #d2e8fa}.alert.ok{background:#eaf8f2;color:var(--success);border:1px solid #c6ead9}.alert.err{background:#fff0ef;color:var(--danger);border:1px solid #f3cecb}.app-view{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#fff;padding:24px 16px;display:flex;flex-direction:column}.sidebar-brand{padding:7px 12px 30px}.sidebar-brand small{display:block;color:#91a8bc;font:500 10px Inter;margin-top:3px}.side-nav{display:grid;gap:4px}.nav-item,.side-link{width:100%;border:0;background:transparent;color:#a9bfd1;text-align:left;border-radius:9px;padding:11px 12px;display:flex;align-items:center;gap:11px;font-size:12px;font-weight:700;text-decoration:none}.nav-item span{width:20px;text-align:center;font-size:15px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--gold)}.sidebar-bottom{margin-top:auto;display:grid;gap:4px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}.danger-link{color:#e8a7a4}.main-area{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.topbar h2{font:700 21px "Space Grotesk",Inter,sans-serif;margin:3px 0 0}.status-pill,.profile-pill{font-size:11px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:#60758a;background:#fff}.status-pill{display:flex;gap:7px;align-items:center}.status-pill i{width:7px;height:7px;border-radius:50%;background:#e3a82c}.status-pill.ok i{background:#23a36d}.icon-btn{border:1px solid var(--line);background:#fff;color:#47647d;border-radius:9px;width:35px;height:35px}.mobile-only{display:none}.content{padding:28px;max-width:1500px;margin:auto}.section{display:none}.section.active{display:block}.welcome-row,.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.welcome-row h1,.section-head h1{font:700 28px "Space Grotesk",Inter,sans-serif;margin:0 0 5px}.welcome-row p,.section-head p{margin:0;color:var(--muted);font-size:13px}.head-actions{display:flex;gap:9px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:20px;text-align:left;box-shadow:var(--shadow);transition:.18s}.stat-card:hover{transform:translateY(-2px);border-color:#c9dff0}.stat-card span{font-size:10px;font-weight:800;letter-spacing:1.3px;color:#7990a4}.stat-card strong{display:block;font:700 34px "Space Grotesk";margin:8px 0 3px;color:#0b75d7}.stat-card small{color:#8a9bad;font-size:11px}.stat-card small b{color:#16835a}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.card-head,.toolbar,.preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card h3{font:700 16px "Space Grotesk";margin:0 0 4px}.card-head p{margin:0;color:var(--muted);font-size:11px}.mini-list{margin-top:16px;display:grid}.mini-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0;border-top:1px solid #edf1f5}.mini-item:first-child{border-top:0}.mini-item strong{font-size:12px}.mini-item span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.mini-badge{align-self:start;padding:5px 8px;border-radius:999px;background:#eef4f8;color:#5b7187;font-size:9px;font-weight:800}.upload-card{padding:22px}.upload-copy{display:flex;align-items:center;gap:12px;margin-bottom:16px}.upload-copy h3{margin:0 0 4px}.upload-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.upload-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eef7ff;color:var(--blue);font-size:21px}.dropzone{min-height:120px;border:1.5px dashed #bdd1e1;border-radius:12px;background:#f9fbfd;display:grid;place-items:center;align-content:center;text-align:center;gap:6px;color:#49677f;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--blue);background:#f0f8ff}.dropzone input{display:none}.dropzone b{color:var(--blue)}.dropzone small{font-size:10px;color:#93a1af;font-weight:500}.toolbar{justify-content:flex-start;flex-wrap:wrap;margin-bottom:15px}.search-box{display:flex;align-items:center;gap:7px;flex:1;min-width:240px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 11px}.search-box span{color:#8ca0b2;font-size:18px}.search-box input{border:0;box-shadow:none;padding-left:2px}.toolbar select{width:auto;min-width:145px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.table-wrap.compact{max-height:310px;margin:12px 0 14px}.table-wrap table{width:100%;border-collapse:collapse;min-width:780px}.table-wrap th{background:#f7f9fb;color:#718398;text-transform:uppercase;letter-spacing:.7px;font-size:9px;padding:11px 12px;text-align:left;white-space:nowrap}.table-wrap td{padding:12px;border-top:1px solid #edf1f5;font-size:11px;color:#39566e;vertical-align:top}.table-wrap tr:hover td{background:#fbfdff}.job-cell strong,.candidate-cell strong{display:block;color:#173752;font-size:12px}.job-cell small,.candidate-cell small{color:#8b9bab}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{background:#edf4f8;border-radius:999px;padding:4px 7px;color:#5d7489;font-size:9px;white-space:nowrap}.status-select{width:auto;min-width:118px;padding:7px 9px;font-size:10px}.status-badge{display:inline-block;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:800;text-transform:capitalize;background:#eef3f7;color:#62778a}.status-published,.status-selected,.status-resolved{background:#e9f8f1;color:#157550}.status-new{background:#eef7ff;color:#0868ae}.status-screening,.status-in_progress,.status-interview{background:#fff7e6;color:#9b6a08}.status-shortlisted{background:#f1edff;color:#6650a4}.status-rejected,.status-closed{background:#fff0ef;color:#b43631}.row-actions{display:flex;gap:5px;justify-content:flex-end}.small-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:800;color:#4b657b}.small-btn:hover{border-color:#bcd3e4}.small-btn.danger{color:var(--danger);background:#fff7f6}.preview-head{margin-bottom:8px}.preview-head strong{font-size:12px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-card{min-height:230px}.wide-chart{grid-column:1/-1}.bars{display:grid;gap:11px;margin-top:18px}.bar-row{display:grid;grid-template-columns:120px 1fr 35px;align-items:center;gap:9px;font-size:10px;color:#61778d}.bar-track{height:9px;background:#edf2f6;border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),#57b2ff);border-radius:99px}.empty{padding:25px;text-align:center;color:#8a9aaa;font-size:11px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px}.modal[hidden]{display:none}.modal-backdrop{position:absolute;inset:0;background:rgba(4,18,32,.58);backdrop-filter:blur(3px)}.modal-dialog{position:relative;width:min(100%,720px);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.3);padding:22px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.modal-head h3{font:700 21px "Space Grotesk";margin:4px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-box{background:#f7f9fb;border-radius:10px;padding:11px}.detail-box span{display:block;color:#8a9aaa;font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.7px;margin-bottom:4px}.detail-box strong{font-size:11px;white-space:pre-wrap;word-break:break-word}.detail-box.full{grid-column:1/-1}.danger-note{background:#fff6f5;border:1px solid #f2d1cd;color:#9d3933;padding:11px;border-radius:10px;font-size:11px;line-height:1.5}
@media(max-width:1050px){.app-view{grid-template-columns:210px 1fr}.stat-grid{grid-template-columns:1fr 1fr}.two-col,.analytics-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-view{display:block}.sidebar{position:fixed;z-index:60;left:-260px;width:250px;transition:.2s}.sidebar.open{left:0}.mobile-only{display:inline-block}.topbar{padding:0 16px}.topbar-right .profile-pill{display:none}.status-pill{font-size:9px}.content{padding:18px}.welcome-row,.section-head{align-items:flex-start;flex-direction:column}.stat-grid{grid-template-columns:1fr 1fr}.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full,.detail-box.full{grid-column:auto}.login-card{padding:30px 24px}.login-card h1{font-size:30px}.head-actions{width:100%}.head-actions .btn{flex:1}.bar-row{grid-template-columns:90px 1fr 25px}}
@media(max-width:500px){.stat-grid{grid-template-columns:1fr}.card{padding:15px}.dropzone{min-height:105px}.toolbar select{width:100%}.search-box{min-width:100%}}

.toast{position:fixed;right:22px;bottom:22px;z-index:200;max-width:min(420px,calc(100vw - 44px));background:#102a43;color:#fff;border-radius:10px;padding:12px 15px;font-size:12px;font-weight:700;box-shadow:0 16px 35px rgba(0,0,0,.22);transform:translateY(18px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:none;opacity:1}.toast.err{background:#9f332e}.toast.ok{background:#166f50}

/* Application status requires an explicit second confirmation before the existing backend update/email mechanism runs. */
.status-confirm-wrap{display:inline-flex;align-items:center;gap:6px;min-width:0}
.status-confirm-actions{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.status-confirm-btn,.status-cancel-btn{width:30px;height:30px;border-radius:7px;border:1px solid;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;line-height:1;cursor:pointer;padding:0;transition:.16s ease}
.status-confirm-btn{border-color:#b9dfcf;background:#effaf5;color:#16835a}
.status-confirm-btn:hover{background:#dff5eb;border-color:#8bcdb4;transform:translateY(-1px)}
.status-cancel-btn{border-color:#e3c8c5;background:#fff7f6;color:#b44b42}
.status-cancel-btn:hover{background:#ffefed;border-color:#dca39d;transform:translateY(-1px)}
.status-confirm-btn:disabled{opacity:.55;cursor:wait;transform:none}

/* Role-based recruitment analytics */
#roleAnalyticsTable{min-width:760px}
#roleAnalyticsTable td strong{color:#173752;font-size:12px}
#roleAnalyticsTable td{vertical-align:middle}

/* Recruitment ownership and director workload */
#applicationsTable{min-width:1050px}.app-check,#selectAllApplications{width:16px;height:16px;accent-color:var(--blue)}#selectedApplicationCount{font-weight:700;white-space:nowrap}.admin-work-stats{margin-bottom:16px}.admin-work-stats .stat-card{padding:16px}

.approval-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}.approval-hero h3{font:700 20px "Space Grotesk";margin:7px 0}.approval-hero p{max-width:760px;color:var(--muted);font-size:12px;line-height:1.65;margin:0}.approval-count{min-width:110px;text-align:center;background:#eef7ff;border:1px solid #cfe3f4;border-radius:14px;padding:16px}.approval-count strong{display:block;font:700 32px "Space Grotesk";color:#1268c9}.approval-count span{font-size:10px;color:#5f7689;font-weight:800}.login-divider{display:flex;align-items:center;gap:10px;color:#8b9bab;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin:18px 0 10px}.login-divider:before,.login-divider:after{content:"";height:1px;background:#e1e9ef;flex:1}
@media(max-width:760px){.approval-hero{align-items:flex-start;flex-direction:column}.approval-count{width:100%;box-sizing:border-box}}


.toolbar #applicationSelectionHint{display:none}@media(min-width:1100px){.toolbar #applicationSelectionHint{display:inline-block}}

.feedback-rating{display:flex;align-items:center;gap:7px;white-space:nowrap}.feedback-rating span{color:#e7ad22;letter-spacing:1px;font-size:14px}.feedback-rating small{color:#647b90;font-weight:800}
