/* CMC NEXCOR 2027 — v159 Faculty / Presenter credential UI. */
.nx159-approval{margin-top:20px;padding:20px;border:1px solid #d7dced;border-left:4px solid #34349c;border-radius:8px;background:#f8f9ff}
.nx159-approval h3{margin-top:0;color:#292d77}
.nx159-review{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:12px}
.nx159-review label{display:flex;align-items:center;gap:8px;flex:1 1 280px}
.nx159-review input{width:18px;height:18px}
.nx159-scan-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px}
.nx159-scan-layout>*{min-width:0}
.nx159-scan video{display:block;max-width:100%;width:100%;max-height:400px;object-fit:contain;background:#10182e;border-radius:8px}
.nx159-scan video[hidden]{display:none}
.nx159-scan input{width:100%;min-width:0;box-sizing:border-box;margin:10px 0}
.nx159-result{padding:18px 20px;margin-top:20px;border-radius:8px;border-left:5px solid #25824b;background:#edf9f2;color:#114d31;font-weight:650}
.nx159-result.nx159-already{border-color:#c88a20;background:#fff5db;color:#765007}
.nx159-result.nx159-fail{border-color:#ba3636;background:#fff0f0;color:#8d2121}
@media(max-width:850px){.nx159-scan-layout{grid-template-columns:1fr}.nx159-approval{padding:14px}}

/* v160 — Match the established Venue Check-In layout and result dialogs. */
.nx160-scan{max-width:100%;overflow:visible}
.nx160-scan h2{margin:0 0 14px;color:#182b47;font-size:1.2rem}
.nx160-scan .nx160-camera-area{max-width:680px}
.nx160-scan video:not([hidden]){display:block;width:min(100%,650px);max-height:420px;object-fit:contain;background:#101827;border-radius:9px;margin:12px 0;outline:0}
.nx160-scan video[hidden]{display:none!important}
.nx160-scan .toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.nx160-scan form{max-width:680px;margin-top:14px}
.nx160-scan form label{display:block;font-weight:650;margin-bottom:7px}
.nx160-scan form input{width:100%;box-sizing:border-box;margin:0;max-width:100%}
.nx160-scan .actions{margin:12px 0 0}
.nx160-scan .nx160-help{margin-top:15px}
.nx160-overlay{position:fixed;inset:0;z-index:100050;background:rgba(10,21,45,.68);display:grid;place-items:center;padding:18px}
.nx160-dialog{position:relative;width:min(100%,490px);box-sizing:border-box;padding:30px;text-align:center;background:#fff;color:#1b2940;border-radius:14px;box-shadow:0 22px 65px rgba(0,0,0,.3)}
.nx160-symbol{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:32px;font-weight:750}
.nx160-success .nx160-symbol{background:#e6f7ef;color:#146c43}
.nx160-already{border:2px solid #e0a527;background:#fffbeb}
.nx160-already .nx160-symbol{background:#fef0bb;color:#805300}
.nx160-failure .nx160-symbol{background:#fff0ed;color:#b42318}
.nx160-dialog h2{margin:0 0 10px;font-size:23px;color:#1b2940}
.nx160-dialog p{margin:0 0 22px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.nx160-already #nx160-description{background:#fff2c2;border-left:4px solid #b87912;border-radius:5px;padding:14px 16px;font-weight:650;color:#754500}
.nx160-close{position:absolute;right:12px;top:9px;border:0;background:transparent;color:#576174;font-size:27px;cursor:pointer}
.nx160-confirm{background:#292d77;color:#fff;border:0;border-radius:7px;padding:12px 30px;font-weight:650;cursor:pointer;min-width:130px}
.nx160-close:focus-visible,.nx160-confirm:focus-visible{outline:3px solid #80aaff;outline-offset:3px}
@media(max-width:600px){.nx160-dialog{padding:22px 18px}.nx160-scan .toolbar button{flex:1 1 130px}}

/* v165 — Mobile popup stacking/centering safeguard (even with global Admin styles). */
body > .nx160-overlay {position:fixed!important;inset:0!important;z-index:2147483000!important;display:grid!important;place-items:center!important;overflow-y:auto!important;padding:16px!important;box-sizing:border-box!important;background:rgba(10,21,45,.68)!important;}
body > .nx160-overlay > .nx160-dialog {position:relative!important;display:block!important;width:min(100%,490px)!important;max-width:490px!important;margin:auto!important;padding:clamp(18px,4vw,30px)!important;box-sizing:border-box!important;background:#fff!important;color:#1b2940!important;border-radius:14px!important;text-align:center!important;box-shadow:0 22px 65px rgba(0,0,0,.3)!important;}
body > .nx160-overlay > .nx160-already {background:#fffbeb!important;}
body.nx160-modal-open {overflow:hidden!important;}

/* v191 — Presenter PPT approval: accessible, responsive branded confirmation dialog. */
body.nx191-approval-open{overflow:hidden!important}
body > .nx191-approval-overlay{position:fixed!important;inset:0!important;z-index:2147483010!important;display:grid!important;place-items:center!important;overflow-y:auto!important;padding:16px!important;background:rgba(12,23,47,.65)!important;box-sizing:border-box!important}
body > .nx191-approval-overlay .nx191-approval-dialog{position:relative!important;width:min(100%,540px)!important;max-width:540px!important;margin:auto!important;padding:clamp(20px,4vw,32px)!important;background:#fff!important;color:#1b2940!important;border:1px solid #dee4ef!important;border-top:4px solid #34349c!important;border-radius:12px!important;box-shadow:0 24px 75px rgba(12,23,47,.3)!important;box-sizing:border-box!important;text-align:left!important;max-height:calc(100dvh - 32px)!important;overflow-y:auto!important}
.nx191-approval-top{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding-right:16px}
.nx191-approval-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;background:#eef0fc;border-radius:12px;color:#292d77;font-size:25px;font-weight:800}
.nx191-approval-eyebrow{color:#5b6280;letter-spacing:.08em;font-size:10px;font-weight:750;margin-bottom:5px}
.nx191-approval-dialog #nx191-approval-heading{font-size:clamp(18px,3vw,23px)!important;line-height:1.25!important;margin:0!important;color:#182844!important}
.nx191-approval-dialog #nx191-approval-details{font-size:14px;line-height:1.65;color:#42516a;margin:0 0 17px}
.nx191-approval-detail{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:12px 14px;background:#f4f6fc;border:1px solid #e4e8f2;border-radius:8px;margin:0 0 10px;font-size:13px}
.nx191-approval-detail span{color:#53617c}.nx191-approval-detail strong{color:#292d77;overflow-wrap:anywhere;text-align:right}
.nx191-approval-note{padding:12px 14px;border-left:3px solid #f18126;background:#fff8f2;color:#68421c;font-size:12px;line-height:1.55;border-radius:4px;margin:16px 0}
.nx191-approval-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.nx191-approval-actions button{min-height:43px;padding:10px 18px;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer}
.nx191-approval-cancel{background:#fff;border:1px solid #cbd5e4;color:#263850}
.nx191-approval-accept{background:#292d77;border:1px solid #292d77;color:#fff}
.nx191-approval-close{position:absolute!important;right:12px;top:10px;background:transparent!important;border:0!important;padding:5px 9px!important;font-size:25px!important;color:#66758a!important;cursor:pointer}
.nx191-approval-dialog button:focus-visible{outline:3px solid #87b3ff!important;outline-offset:2px!important}
@media(max-width:480px){.nx191-approval-top{align-items:flex-start}.nx191-approval-actions{flex-direction:column-reverse}.nx191-approval-actions button{width:100%}.nx191-approval-detail{align-items:flex-start;flex-direction:column;gap:5px}.nx191-approval-detail strong{text-align:left}}
@media(prefers-reduced-motion:no-preference){.nx191-approval-dialog{animation:nx191-appear .16s ease-out}}@keyframes nx191-appear{from{opacity:.5;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
