/* OBX UI Premium 1.9.1 — solo capa visual. Sin dependencias de red ni cambios al backend. */
/* Login — dos columnas corporativas; SVG tecnológico local y animación GPU-friendly. */
.obx-login-v191.login-page{
  position:relative;isolation:isolate;display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(410px,.89fr);
  align-items:center;justify-content:center;column-gap:0;
  min-height:100svh;height:auto;overflow:visible;padding:clamp(12px,2.4vw,33px);
  background:radial-gradient(ellipse at 9% 17%,#14517b 0,transparent 48%),
    linear-gradient(140deg,#081c34 0%,#10345d 68%,#075579 100%);
}
.obx-login-v191.login-page::before{display:none!important;content:none!important}
.obx-login-hero{
  position:relative;align-self:stretch;min-height:625px;overflow:hidden;isolation:isolate;
  border-radius:24px 0 0 24px;background:radial-gradient(ellipse at 67% 43%,#0b4d76 0,#0b2b4e 41%,#091b32 88%);
  border:1px solid rgba(98,213,234,.15);border-right:0;color:#fff;
}
.obx-login-hero:before,.obx-login-hero:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0}
.obx-login-hero:before{
  background:radial-gradient(circle at 30% 20%,rgba(25,166,200,.12) 0 1px,transparent 2px),
  radial-gradient(circle at 70% 45%,rgba(105,246,244,.13),transparent 36%);
  background-size:64px 64px,auto;
  opacity:.9
}
.obx-login-hero:after{inset:auto -40% -44% -20%;height:70%;border-radius:50%;border-top:1px solid rgba(51,218,238,.22);transform:rotate(-11deg);box-shadow:0 -19px 60px rgba(9,135,195,.13)}
.obx-login-grid{position:absolute;inset:0;pointer-events:none;opacity:.38;background-image:linear-gradient(rgba(77,182,218,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(77,182,218,.12) 1px,transparent 1px);background-size:65px 65px;mask-image:linear-gradient(90deg,#000,transparent 90%)}
.obx-login-hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;min-height:625px;padding:36px clamp(28px,3.2vw,57px)}
.obx-hero-brand{position:relative;z-index:3;align-self:start;display:flex;flex-direction:column;gap:0}
.obx-hero-brand-mark{font-size:clamp(37px,5vw,72px);font-weight:900;letter-spacing:-.08em;font-style:italic;line-height:1;color:#f9fcff;text-shadow:0 0 28px rgba(18,184,174,.18)}
.obx-hero-brand small{font-size:11px;letter-spacing:.08em;color:#bcdae8;margin-top:8px}
.obx-network-stage{position:absolute;z-index:0;inset:10% -8% 4% 12%;pointer-events:none}
.obx-network-art{display:block;width:100%;height:100%;max-height:750px;overflow:visible;filter:drop-shadow(0 0 18px rgba(12,161,208,.13))}
.obx-orbit-spin{transform-origin:330px 270px;animation:obx-orbit-rotate 48s linear infinite}
.obx-orbit-b{animation-duration:68s;animation-direction:reverse}
.obx-globe-sphere{animation:obx-globe-breathe 7s ease-in-out infinite;transform-origin:330px 270px}
.obx-scan-line{animation:obx-scan-pulse 4.5s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
.obx-wave-line{stroke-dasharray:18 8;animation:obx-wave-shift 25s linear infinite}
.obx-wave-two{animation-duration:36s;animation-direction:reverse}
@keyframes obx-orbit-rotate{to{transform:rotate(360deg)}}
@keyframes obx-globe-breathe{50%{transform:scale(1.022);opacity:.76}}
@keyframes obx-scan-pulse{0%,100%{transform:translateY(-47px);opacity:.08}50%{transform:translateY(85px);opacity:.88}}
@keyframes obx-wave-shift{to{stroke-dashoffset:-520}}
.obx-hero-chip{position:absolute;z-index:2;display:flex;align-items:center;gap:10px;
  padding:11px 13px;border-radius:13px;color:#e9fcff;
  border:1px solid rgba(64,216,231,.25);background:rgba(6,37,64,.55);
  box-shadow:0 7px 32px rgba(0,10,32,.16);backdrop-filter:blur(5px);font-size:12px;
  animation:obx-chip-hover 8s ease-in-out infinite}
.obx-hero-chip .obx-ico{color:#58eee8;width:24px;height:24px;flex-basis:24px}
.obx-hero-chip b,.obx-hero-chip small{display:block}.obx-hero-chip b{font-size:11px}.obx-hero-chip small{margin-top:2px;font-size:10px;color:#a4d0e4}
.obx-chip-one{left:4%;top:12%}.obx-chip-two{right:4%;top:37%;animation-delay:-2s}.obx-chip-three{right:6%;bottom:21%;animation-delay:-4s}
@keyframes obx-chip-hover{50%{transform:translateY(-5px)}}
.obx-hero-copy{position:relative;z-index:2;margin-top:auto;max-width:590px;padding-top:140px}
.obx-hero-kicker{font-size:10px;letter-spacing:.32em;color:#80e6e5;font-weight:800;margin:0 0 12px}
.obx-hero-copy h2{font-size:clamp(33px,3.6vw,55px);color:#fff;font-weight:850;line-height:1.03;letter-spacing:-.055em;margin:0 0 14px;text-wrap:balance}
.obx-hero-copy h2 span,.obx-hero-copy h2 em{font-style:normal;color:#4edbe5}
.obx-hero-copy>p:not(.obx-hero-kicker){font-size:14px;line-height:1.5;color:#caddec;max-width:480px;margin:0}
.obx-hero-features{margin-top:24px;display:flex;align-items:center;flex-wrap:wrap;gap:15px 21px}
.obx-hero-features span{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:650;color:#c1e3ed}
.obx-hero-features svg{height:17px;width:17px;flex-basis:17px;color:#48e1df}
/* Acceso de administración: sin scrollbar anidada. */
.obx-login-card.login-card{position:relative;align-self:center;z-index:2;margin:0;width:100%;max-width:560px;max-height:none!important;overflow:visible!important;
  border-radius:0 24px 24px 0;border:1px solid #e5edf7;padding:clamp(25px,3vw,45px) clamp(27px,3.1vw,51px);
  background:#fff;box-shadow:0 22px 64px rgba(4,20,39,.28);color:#10233f}
.obx-login-card-content{max-width:455px;margin:0 auto}
.obx-login-card .logo-login{display:block;width:146px;height:56px;margin:0 0 6px;object-position:left}
.obx-login-card .eyebrow{margin:4px 0 13px;color:#087eae;letter-spacing:.23em}
.obx-login-card h1{font-size:clamp(27px,3vw,36px);margin:0 0 7px;line-height:1.14;letter-spacing:-.05em}
.obx-login-card .obx-login-intro{font-size:13px;line-height:1.5;margin:0 0 12px}
.obx-login-card form{display:grid;gap:7px;margin-top:16px}
.obx-login-card form label{font-size:12px;font-weight:750;color:#193653}
.obx-login-field{position:relative;display:flex;align-items:center;margin-bottom:4px}
.obx-login-field>.obx-ico{position:absolute;left:15px;width:19px;height:19px;color:#667e9a;pointer-events:none}
.obx-login-card .obx-login-field input{min-height:46px;height:46px;padding:9px 43px;border-radius:11px;border:1px solid #d7e4ef;background:#f9fbfd;color:#1a3654}
.obx-login-card .obx-login-field input:focus{border-color:#087eae;box-shadow:0 0 0 3px rgba(18,184,174,.17)}
.obx-password-show{position:absolute;right:8px;border:0;background:transparent;color:#50758e;display:grid;place-items:center;min-width:35px;min-height:35px;border-radius:8px;padding:6px}
.obx-password-show:hover{background:#e9f5fa}
.obx-login-card .obx-login-submit{min-height:46px;height:46px;margin:7px 0 0;border-radius:11px;background:linear-gradient(110deg,#087eae,#086ca2);font-size:14px}
.obx-login-submit svg{width:18px;height:18px;flex-basis:18px}
.obx-login-separator{position:relative;text-align:center;font-size:10px;letter-spacing:.13em;font-weight:750;color:#788da0;margin:19px 0 12px}
.obx-login-separator:before{content:"";height:1px;background:#dfe7ef;position:absolute;top:50%;left:0;right:0}
.obx-login-separator span{position:relative;padding:0 12px;background:#fff}
.obx-login-card .login-quick-links{display:grid;gap:9px;margin:0}
.obx-login-card .login-quick-link{min-height:58px;padding:9px 12px;gap:11px;border-radius:12px;background:#fbfcfe}
.obx-login-card .login-quick-link .obx-quick-icon{width:36px;height:36px;flex:0 0 36px;background:#e8f4fc;color:#087eae;display:grid;place-items:center;border-radius:10px}
.obx-login-card .login-quick-link:nth-child(2) .obx-quick-icon{background:#e6f8f3;color:#149e91}
.obx-login-card .login-quick-link>svg{width:15px;height:15px;flex:0 0 15px;color:#426e93}
.obx-login-card .login-quick-link strong{font-size:12.5px;color:#102d4e}
.obx-login-card .login-quick-link small{font-size:10.5px;margin-top:2px}
.obx-login-card .error{margin:4px 0 0;min-height:0}
.obx-login-footer{display:flex;align-items:center;gap:7px;border-top:1px solid #e7edf3;margin:13px 0 0!important;padding:12px 0 0;color:#68829b;font-size:10px}
.obx-login-footer svg{height:15px;width:15px;flex:0 0 15px;color:#287aa2}
.obx-login-theme{position:absolute;top:13px;right:17px;width:32px;height:32px;padding:5px;border-radius:10px;border:1px solid #e0e9f0;background:#fff;display:grid;place-items:center;color:#286c92;z-index:5}
.obx-login-theme:hover{background:#e9f7fb}
/* Dashboard: el mismo lenguaje de red, métricas verificables y ningún dato de tendencia inventado. */
#pageHome .obx-dashboard-hero{position:relative;isolation:isolate;overflow:hidden;min-height:138px;margin:0 0 18px;
  padding:22px 26px;border:1px solid rgba(28,139,193,.2);border-radius:18px;
  background:radial-gradient(ellipse at 78% 0%,rgba(30,155,198,.55),transparent 56%),
  linear-gradient(110deg,#102b4d,#0e456d 72%,#087eae);color:#fff;box-shadow:0 10px 27px rgba(16,35,63,.09)}
#pageHome .obx-dashboard-hero:after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-120px -90px -120px 44%;background-image:radial-gradient(circle at center,transparent 15%,rgba(24,207,219,.16) 15.2%,transparent 15.8%),repeating-radial-gradient(circle at 58% 50%,transparent 0 43px,rgba(95,234,235,.1) 44px 45px,transparent 46px 78px);transform:rotate(-15deg);opacity:.8}
#pageHome .obx-dashboard-hero .eyebrow{color:#85e9ec;font-size:10px}
#pageHome .obx-dashboard-hero h2{color:#fff;font-size:clamp(24px,2.5vw,33px);margin:6px 0 5px;line-height:1.12}
#pageHome .obx-dashboard-hero p{color:#cce2ef;font-size:12.5px;line-height:1.5;max-width:610px}
.obx-dashboard-hero-text{position:relative;z-index:2;min-width:0}
.obx-hero-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin:14px 0 0}
.obx-hero-metadata>span{display:flex;align-items:center;gap:7px;font-size:11px;color:#bce3ed;font-weight:650}
.obx-hero-metadata svg{width:15px;height:15px;flex:0 0 15px;color:#58e6e2}
.obx-dashboard-hero-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.obx-dashboard-orb{width:135px;height:115px;position:relative;margin-right:4px;flex:0 0 135px}
.obx-dashboard-orb:before{content:"";position:absolute;inset:9px 17px;border-radius:50%;border:1px solid rgba(75,240,236,.6);box-shadow:0 0 45px rgba(32,206,232,.18),inset 0 0 26px rgba(32,206,232,.16);background:radial-gradient(circle at 46% 43%,rgba(74,224,230,.4),transparent 56%)}
.obx-dashboard-orb:after{content:"";position:absolute;inset:19px 27px;border-radius:50%;border:1px dashed rgba(125,246,244,.55);animation:obx-orbit-rotate 25s linear infinite}
.obx-dashboard-orb>span:nth-child(1){position:absolute;inset:28px 35px;border-radius:50%;border:1px solid rgba(100,219,234,.28)}
.obx-dashboard-orb>span:nth-child(2){position:absolute;inset:10px 17px;border-radius:50%;transform:rotate(35deg) scaleX(.32);border:2px solid rgba(50,226,235,.23)}
.obx-dashboard-orb>span:nth-child(3){position:absolute;inset:10px 17px;border-radius:50%;transform:rotate(-35deg) scaleY(.32);border:2px solid rgba(50,226,235,.23)}
.obx-dashboard-kiosk-link{z-index:2;position:relative;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(125deg,#087eae,#12a7b8);color:#fff;text-decoration:none;font-size:12px;font-weight:750;padding:12px 15px;border-radius:11px;white-space:nowrap;box-shadow:0 4px 15px rgba(0,12,26,.14)}
.obx-dashboard-kiosk-link:hover{transform:translateY(-2px);color:#fff}
.obx-dashboard-kiosk-link svg{width:17px;height:17px;flex:0 0 17px}
#pageHome .stats{margin:0 0 20px;gap:15px}
#pageHome .obx-dashboard-stats .stat{border:1px solid var(--obx-line);border-top:3px solid #2088dc;border-radius:15px;background:linear-gradient(120deg,#fff,#f7fbff);min-height:151px;padding:20px;box-shadow:0 6px 19px rgba(16,35,63,.055)}
#pageHome .obx-dashboard-stats .stat:nth-child(2){border-top-color:#10b89d;background:linear-gradient(120deg,#fff,#f4fcf9)}
#pageHome .obx-dashboard-stats .stat:nth-child(3){border-top-color:#8661d8;background:linear-gradient(120deg,#fff,#faf8ff)}
#pageHome .obx-dashboard-stats .stat:nth-child(4){border-top-color:#ed9e49;background:linear-gradient(120deg,#fff,#fff9f2)}
#pageHome .obx-dashboard-stats .stat:before{display:none}
#pageHome .obx-dashboard-stats .stat .obx-kpi-icon{display:grid;place-items:center;float:right;width:40px;height:40px;border-radius:13px;background:rgba(32,136,220,.11);color:#2088dc}
#pageHome .obx-dashboard-stats .stat:nth-child(2) .obx-kpi-icon{background:rgba(16,184,157,.13);color:#119d86}
#pageHome .obx-dashboard-stats .stat:nth-child(3) .obx-kpi-icon{background:rgba(134,97,216,.12);color:#815fc9}
#pageHome .obx-dashboard-stats .stat:nth-child(4) .obx-kpi-icon{background:rgba(237,158,73,.13);color:#dc8639}
#pageHome .obx-dashboard-stats .stat .obx-kpi-icon svg{width:21px;height:21px;flex:0 0 21px}
#pageHome .obx-dashboard-stats .stat>span:not(.obx-kpi-icon){display:block;padding:7px 0 0;max-width:calc(100% - 48px);font-size:11.5px}
#pageHome .obx-dashboard-stats .stat strong{font-size:38px;line-height:1.12;margin:12px 0 9px;color:var(--obx-navy)}
#pageHome .obx-dashboard-stats .stat small{font-size:11px;display:block;line-height:1.4}
#pageHome .weekly-panel{box-shadow:0 8px 28px rgba(16,35,63,.05)}
#pageHome .weekly-panel>.panelhead h3{font-size:20px}
#pageHome .obx-weekly-insight{background:linear-gradient(120deg,rgba(8,126,174,.07),rgba(18,184,174,.035))}
/* Tema oscuro: respetar contraste en el login y cards, sin afectar tokens funcionales. */
html[data-obx-theme="dark"] .obx-login-card.login-card{background:#1a2b40;border-color:#36516d;color:#eaf4ff}
html[data-obx-theme="dark"] .obx-login-card h1,html[data-obx-theme="dark"] .obx-login-card label,html[data-obx-theme="dark"] .obx-login-card .login-quick-link strong{color:#eef7ff}
html[data-obx-theme="dark"] .obx-login-separator span{background:#1a2b40}
html[data-obx-theme="dark"] .obx-login-card .login-quick-link{background:#233a51}
html[data-obx-theme="dark"] .obx-login-card .obx-login-field input{background:#223a51;color:#eaf4ff;border-color:#46647d}
html[data-obx-theme="dark"] .obx-login-theme{background:#223a51;color:#a5e9e9;border-color:#4b6580}
html[data-obx-theme="dark"] #pageHome .obx-dashboard-stats .stat:nth-child(n){background:var(--obx-surface)}
html[data-obx-theme="dark"] #pageHome .obx-dashboard-stats .stat strong{color:var(--obx-ink)}
/* Responsividad y accesibilidad. */
@media(max-width:1180px){.obx-login-v191.login-page{grid-template-columns:minmax(0,1fr) minmax(390px,.96fr)}.obx-hero-chip{display:none}.obx-hero-copy{padding-top:190px}.obx-login-hero-inner{padding:27px 29px}}
@media(max-width:890px){.obx-login-v191.login-page{grid-template-columns:minmax(0,580px);justify-items:center;padding:18px}.obx-login-hero{display:none}.obx-login-card.login-card{border-radius:20px;width:100%;max-width:580px;padding:28px clamp(20px,5vw,40px)}.obx-dashboard-orb{display:none}}
@media(max-width:700px){#pageHome .obx-dashboard-hero{min-height:auto;padding:20px;border-radius:14px;align-items:start;gap:10px;flex-wrap:wrap}#pageHome .obx-dashboard-hero h2{font-size:24px}.obx-dashboard-hero-right{margin-left:0}.obx-dashboard-kiosk-link{padding:10px 12px}#pageHome .obx-dashboard-stats .stat{padding:15px;min-height:140px}#pageHome .obx-dashboard-stats .stat strong{font-size:29px}#pageHome .obx-dashboard-stats .stat .obx-kpi-icon{width:29px;height:29px}#pageHome .obx-dashboard-stats .stat .obx-kpi-icon svg{width:17px;height:17px;flex-basis:17px}}
@media(max-width:440px){.obx-login-v191.login-page{padding:10px}.obx-login-card.login-card{padding:28px 20px}.obx-login-card h1{font-size:29px}.obx-login-card .logo-login{width:125px;height:49px}.obx-login-card .login-quick-link small{font-size:10px}#pageHome .obx-dashboard-stats .stat .obx-kpi-icon{float:none;margin-bottom:2px}#pageHome .obx-dashboard-stats .stat>span:not(.obx-kpi-icon){max-width:none;padding:0}}
@media(max-height:760px) and (min-width:891px){.obx-login-v191.login-page{padding:12px}.obx-login-hero,.obx-login-hero-inner{min-height:650px}.obx-login-card.login-card{padding:24px 32px}.obx-login-card .logo-login{height:45px;width:125px}.obx-login-card .eyebrow{margin:0 0 8px}.obx-login-card h1{margin:0 0 5px;font-size:29px}.obx-login-card form{margin-top:9px;gap:5px}.obx-login-card .login-quick-link{min-height:52px}.obx-login-separator{margin:12px 0 9px}.obx-login-footer{margin-top:7px!important;padding-top:7px}.obx-login-card .obx-login-field input{height:41px;min-height:41px}.obx-login-card .obx-login-submit{height:42px;min-height:42px}}
@media(prefers-reduced-motion:reduce){.obx-login-hero *,#pageHome .obx-dashboard-hero *{animation:none!important}.obx-login-v191.login-page{scroll-behavior:auto}}
