/* OBX UI Premium 1.9: terminal autónoma. Se preserva la lógica facial/QR previa. */
:root{--kp-blue:#087eae;--kp-teal:#12b8ae;--kp-navy:#10233f;--kp-line:#dbe6ef}
body{background:#eef4f9;font-family:'Segoe UI Variable','Segoe UI',system-ui,sans-serif;color:#10233f}main{max-width:1440px;padding:16px}header{gap:18px;border:1px solid var(--kp-line);border-radius:17px;padding:13px 22px;box-shadow:0 5px 20px #10233f0b}header img{width:105px;max-height:53px}header h1{font-size:24px;letter-spacing:-.035em}header .muted{font-size:13px}.obx-kiosk-clock{font-size:12px;font-weight:650;color:#087eae;margin-top:5px;font-variant-numeric:tabular-nums}
.card{border:1px solid var(--kp-line);box-shadow:0 7px 24px rgba(16,35,63,.055);border-radius:16px;padding:19px}.card h2{letter-spacing:-.03em}.kiosk-toolbar{border:1px solid #bfdae9;box-shadow:0 6px 20px rgba(16,35,63,.08);border-radius:14px;padding:10px 13px;background:#fff}.kiosk-toolbar button{font-weight:730;min-height:47px;border-radius:10px;transition:background .2s,transform .2s}.kiosk-toolbar button:hover{transform:translateY(-1px)}button:not(.outline){background:linear-gradient(110deg,#087eae,#0d699e)}button.outline{border-color:#cadbe7;color:#174364}.kiosk-toolbar .actions{flex:1 1 440px}#cameraModeInfo{color:#50708b;font-size:12px;line-height:1.5}
#camera{background:radial-gradient(circle at center,#17445b,#071927 80%);border:1px solid #204b60}video{object-fit:cover}.status{padding:24px;border:1px solid #ddeaf3;background:#f0f6fa;border-radius:13px}.status b{font-size:20px}.status.success{background:#e2faf1;border-color:#94dfc3}.status.fail{background:#fff1e7;border-color:#f4cfb6}.reason{border:1px solid #ead9a6}.actions button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #12b8ae;outline-offset:2px}.card .small{line-height:1.6}#qrPane{background:#edf8fc;border:1px solid #cae4f0}#qrImage{border-radius:15px;box-shadow:0 6px 24px #14385524}
html:fullscreen main{padding:7px;max-width:none}html:fullscreen header{padding:6px 14px}html:fullscreen .kiosk-toolbar{top:2px;padding:8px 10px}
@media(max-width:760px){main{padding:8px}header{padding:12px;gap:12px}header img{width:85px}header h1{font-size:20px}.kiosk-toolbar .actions{flex:1 1 100%}.kiosk-toolbar button{font-size:13px;min-width:0!important;flex:1;padding:9px 10px}.card{padding:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}


/* OBX V1.9.3 — Terminal premium estática. Conserva controles y eventos de kiosk.js. */
:root{--kp-line:#dbe8f3;--kp-card-shadow:0 12px 30px rgba(16,35,63,.075)}
body{margin:0;background:linear-gradient(135deg,#f5fafe 0%,#ecf5fc 48%,#edf4fb 100%);color:#10233f}
main#kioskMain{max-width:1560px;margin:auto;padding:15px 20px 26px}
.kp-overline{color:#087eae;letter-spacing:.19em;font-size:12px;font-weight:850}
.kiosk-premium-header{display:flex;align-items:center;gap:18px;padding:13px 24px;border:0;background:rgba(255,255,255,.95);box-shadow:var(--kp-card-shadow);border-radius:18px;min-height:100px}
.kp-header-brand{display:flex;align-items:center;gap:23px;min-width:250px;flex:1 1 auto}
.kp-header-brand img{width:115px;height:70px;object-fit:contain}
.kp-header-brand h1{font-size:clamp(23px,2vw,30px);line-height:1.15;margin:5px 0 4px}
.kp-header-brand .muted{font-size:13px}
.kp-header-right{display:flex;align-items:center;gap:16px;flex:0 1 auto;min-width:0}
.kp-terminal-controls{display:flex;align-items:center;gap:7px;max-width:260px;flex-wrap:wrap;justify-content:flex-end}
.kp-terminal-controls button{padding:7px 10px;font-size:11px;max-width:135px;min-height:34px;line-height:1.25}
.obx-kiosk-clock{margin:0;flex:none;min-width:310px;border:1px solid #cde0f2;border-radius:14px;background:#f3f9fe;padding:9px 15px;text-align:center;white-space:nowrap;color:#10233f;font-variant-numeric:tabular-nums;line-height:1.12}
.kp-clock-date{font-weight:550;color:#476b8a;font-size:14px;margin:0 0 3px}
.kp-clock-line{display:flex;align-items:baseline;justify-content:center;gap:6px}
.kp-clock-digits{font-weight:850;font-size:clamp(35px,3.6vw,52px);letter-spacing:-.05em;line-height:1.07}
.kp-clock-ampm{font-size:17px;font-weight:800;white-space:nowrap}
/* Estado previo a autorización: una tarjeta centrada y sin cabecera duplicada. */
body.kiosk-activation #kioskHeader{display:none}
body.kiosk-activation main#kioskMain{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;max-width:none;background:radial-gradient(circle at 50% 44%,rgba(18,184,174,.065) 0,transparent 45%),repeating-radial-gradient(circle at 50% 50%,transparent 0,transparent 126px,rgba(8,126,174,.045) 127px,transparent 128px)}
.kp-activation-card{width:min(100%,560px);max-width:560px;margin:15px auto;padding:32px clamp(24px,3vw,48px);text-align:center;border:1px solid #cbddec;border-radius:22px;box-shadow:0 20px 55px rgba(16,35,63,.13);box-sizing:border-box;background:#fff}
.kp-activation-logo{display:block;object-fit:contain;width:125px;height:84px;margin:-8px auto 5px}
.kp-activation-card h2{font-size:clamp(23px,2.3vw,31px);line-height:1.18;letter-spacing:-.035em;margin:15px 0 8px;color:#10233f}
.kp-activation-subtitle{font-size:15px;color:#647e96;margin:0 0 16px}
.kp-activation-icon{width:58px;height:58px;margin:0 auto 9px;border-radius:50%;display:grid;place-items:center;background:#edf7fb;color:#087eae;border:1px solid #d9ebf5}
.kp-activation-icon svg{width:27px;height:27px}
.kp-activation-card form{text-align:left}
.kp-activation-card form label{font-size:14px;margin:12px 0 7px;color:#10233f}
.kp-field{position:relative;display:flex;align-items:center}
.kp-field-icon{position:absolute;left:16px;display:flex;color:#6485a4;pointer-events:none}
.kp-field-icon svg{width:20px;height:20px}
.kp-field input{padding:14px 56px 14px 47px;min-height:52px;font-size:15px;border:1px solid #c8d9ea;border-radius:12px;background:#fbfdff}
.kp-field input:focus{outline:2px solid #12b8ae;outline-offset:1px;border-color:#12b8ae}
.kp-show-password{position:absolute;right:5px;min-width:45px;background:transparent!important;color:#557694;font-size:13px;padding:8px 7px}
.kp-show-password:hover{color:#10233f}
.kp-authorize-button{display:flex;justify-content:center;align-items:center;gap:14px;width:100%;min-height:54px;margin-top:23px;background:linear-gradient(105deg,#08669d,#08acae)!important;box-shadow:0 8px 15px #087eae25}
.kp-authorize-button span{font-size:23px;line-height:1}
.kp-activation-footer{margin:15px 0 0;color:#6b859b;font-size:11px;line-height:1.5}
#loginMessage:empty{display:none}
#loginMessage:not(:empty){background:#fff0ed;border-radius:9px;padding:10px;font-size:13px}
/* Panel autorizado */
#kioskBox .kp-kiosk-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(350px,.94fr);gap:16px;align-items:stretch}
#kioskBox .kp-kiosk-grid>.card{min-width:0;flex:none;margin-top:14px;padding:18px;border:1px solid #d5e6f4;box-shadow:var(--kp-card-shadow)}
.kiosk-toolbar{position:sticky;top:6px;z-index:15;flex-wrap:nowrap;justify-content:space-between;gap:13px;margin-top:13px;border:1px solid #d5e6f4;background:#fff;border-radius:17px;padding:11px 15px;box-shadow:var(--kp-card-shadow)}
.kiosk-toolbar .actions{flex:1 1 auto;display:flex;gap:9px;min-width:0;flex-wrap:nowrap}
.kiosk-toolbar .actions button{flex:0 1 auto;min-width:140px;min-height:49px;padding:9px 18px;font-size:15px;white-space:nowrap;border-radius:11px}
.kiosk-toolbar #startCamera{background:linear-gradient(105deg,#086aa8,#0bbcb7)}
#cameraModeInfo{margin:0;flex:0 1 330px;font-size:12px;line-height:1.4;color:#416885;border-left:1px solid #d5e6f4;padding-left:13px}
.kp-section-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.kp-section-title h2{margin:0!important;line-height:1.3!important;font-size:20px!important}
.kp-section-title p{margin:3px 0 0;line-height:1.35;font-weight:450}
.kp-title-icon{display:grid;place-items:center;width:45px;height:45px;flex:0 0 45px;border-radius:13px;background:#edf7ff;color:#087eae;font-size:23px}
.kp-camera-frame{position:relative;border-radius:15px;overflow:hidden;background:#09243a;border:1px solid #1e4b67}
#kioskBox .kp-camera-frame video{display:block;width:100%;height:clamp(220px,37vh,465px);max-height:none;min-height:0;margin:0;border:0;border-radius:0;object-fit:cover;background:radial-gradient(circle at center,#17455d,#071a30 85%)}
.kp-camera-guides{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:.65}
.kp-camera-guides:before{content:"";width:33%;height:64%;max-width:240px;border:1px solid #1cbfc088;border-radius:48%;box-shadow:0 0 35px #12b8ae11}
.kp-camera-guides span{position:absolute;width:24px;height:24px;border-color:#41e4df;border-style:solid;border-width:0}
.kp-camera-guides span:nth-child(1){top:18%;left:32%;border-top-width:3px;border-left-width:3px;border-top-left-radius:9px}
.kp-camera-guides span:nth-child(2){top:18%;right:32%;border-top-width:3px;border-right-width:3px;border-top-right-radius:9px}
.kp-camera-guides span:nth-child(3){bottom:18%;left:32%;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:9px}
.kp-camera-guides span:nth-child(4){bottom:18%;right:32%;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:9px}
.kp-movement-row{display:flex;align-items:center;gap:20px;margin-top:12px}
.kp-movement-select{flex:1 1 45%;min-width:220px}
.kp-movement-row label{margin:0 0 6px;font-size:13px}
.kp-movement-row select{padding:10px 13px;font-size:14px}
.kp-movement-hint{flex:1 1 55%;line-height:1.45!important;margin:0;padding-left:16px;border-left:1px solid #d9e7f2}
.kp-status-heading{display:flex;align-items:center;gap:15px}
.kp-face-emblem{display:grid;place-items:center;flex:0 0 108px;height:108px;border-radius:50%;background:#edf8ff;border:1px solid #d2e9f8;color:#087eae}
.kp-face-emblem svg{width:60px;height:60px}
.kp-status-body{min-width:0;flex:1}
.kp-status-label{font-size:11px;font-weight:800;letter-spacing:.15em;color:#4389a2;margin-bottom:9px}
.kp-status-card .status{padding:0;margin:0;background:transparent;border:0;box-shadow:none}
.kp-status-card .status b{font-size:clamp(19px,2vw,27px);line-height:1.22;letter-spacing:-.025em}
.kp-status-card .status p{margin:6px 0 0;font-size:14px;line-height:1.45;color:#53758e}
.kp-status-card .status.success{background:#e6f8f0;border:1px solid #99d9b9;border-radius:10px;padding:12px}
.kp-status-card .status.fail{background:#fff0e5;border:1px solid #f4cfb6;border-radius:10px;padding:12px}
.kp-information{margin-top:20px;border-top:1px solid #d5e6f4;padding-top:14px}
.kp-information-title{font-size:16px;font-weight:750;margin-bottom:6px}
.kp-info-row{display:flex;gap:11px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #e2ecf4}
.kp-info-row:last-child{border:0}
.kp-info-icon{display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;border-radius:10px;background:#eaf7fa;color:#087eae;font-weight:750;font-size:18px}
.kp-info-row strong{font-size:13px;display:block}
.kp-info-row p{margin:4px 0 0;color:#5d7890;font-size:12px;line-height:1.4}
@media(max-width:1120px){.kp-header-right{gap:8px}.kp-terminal-controls{max-width:180px}.obx-kiosk-clock{min-width:245px;padding:9px}.kp-clock-digits{font-size:38px}.kp-header-brand img{width:85px}.kp-header-brand{gap:10px}.kp-kiosk-grid{grid-template-columns:minmax(0,1fr) minmax(290px,.85fr)!important}#cameraModeInfo{flex-basis:190px}}
@media(max-width:800px){main#kioskMain{padding:9px}.kiosk-premium-header{flex-wrap:wrap;padding:12px}.kp-header-brand{flex-basis:100%}.kp-header-right{width:100%;justify-content:space-between}.kp-header-brand h1{font-size:22px}.obx-kiosk-clock{min-width:220px}.kp-clock-digits{font-size:37px}#kioskBox .kp-kiosk-grid{grid-template-columns:1fr!important}.kiosk-toolbar{flex-wrap:wrap}.kiosk-toolbar .actions{width:100%;flex:1 1 100%}.kiosk-toolbar .actions button{flex:1 1 30%;min-width:0;white-space:normal;font-size:13px}#cameraModeInfo{border-left:0;padding:0;flex:1 1 auto}#kioskBox .kp-camera-frame video{height:33vh}.kp-face-emblem{flex-basis:85px;height:85px}.kp-face-emblem svg{width:50px;height:50px}}
@media(max-width:540px){body.kiosk-activation main#kioskMain{padding:9px}.kp-activation-card{padding:21px 18px}.kp-activation-card h2{font-size:23px}.kp-activation-logo{height:65px}.kp-activation-icon{width:48px;height:48px}.kiosk-premium-header{gap:7px}.kp-header-right{flex-wrap:wrap;justify-content:center}.kp-terminal-controls{order:2;max-width:none;justify-content:center}.obx-kiosk-clock{order:1;min-width:min(100%,290px)}.kp-clock-digits{font-size:40px}.kp-movement-row{flex-direction:column;align-items:stretch}.kp-movement-hint{padding:0;border:0}.kp-status-heading{align-items:flex-start}.kp-face-emblem{flex:0 0 65px;height:65px}.kp-face-emblem svg{width:40px;height:40px}.kiosk-toolbar .actions button{padding:9px 5px;font-size:12px}#kioskBox .kp-camera-frame video{height:28vh}}
@media(max-height:720px) and (min-width:801px){.kiosk-premium-header{min-height:78px;padding:8px 15px}.kp-header-brand img{height:50px}.kp-clock-digits{font-size:39px}#kioskBox .kp-camera-frame video{height:33vh}.kp-info-row{padding:6px 0}#kioskBox .kp-kiosk-grid>.card{padding:12px}}
@media(prefers-reduced-motion:reduce){.kp-activation-card,.kiosk-toolbar,.kp-camera-guides{animation:none!important;transition:none!important}}
