/* =====================================================================
   PORTAL — mismo estilo oscuro del sitio (2026-09-23)
   Se aplica a las páginas de entrada y menús del portal (body.portal):
   entrar.php, index.php, ventas/index.php, administracion/index.php, existencia/index.php.
   Las herramientas (cierre de caja, nómina, inventario, usuarios, catálogo,
   ventas/existencia) NO usan este archivo todavía.
   Va después de css/styles.css; el fondo del mes lo ponen css/temas.css + js/tema.js.
   ===================================================================== */
body.portal{
  --store-color:#7fd6f5; --store-color-dark:#12A8E0; --blue:#7fd6f5;
  --surface:rgba(255,255,255,.08); --text:#f3f6f9; --text-muted:#b6c2ce; --border:rgba(255,255,255,.16);
  --glow:18,168,224;
  background:#0b1826 !important;color:#f3f6f9;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}

/* fondo con líneas de luz (mismo del sitio) */
body.portal .aura{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#12283f 0%,#0d1e31 45%,#0a1726 100%)}
body.portal .aura::before{content:"";position:absolute;inset:-20%;background:radial-gradient(45% 35% at 72% 22%,rgba(var(--glow),.2),transparent 70%),radial-gradient(40% 40% at 10% 80%,rgba(var(--glow),.1),transparent 70%)}
body.portal .aura svg{position:absolute;width:140%;height:140%;left:-20%;top:-20%;opacity:.6;animation:portalDrift 30s ease-in-out infinite alternate}
body.portal .aura path{fill:none;stroke:url(#lgHome);stroke-width:1.3}
body.portal .aura .blur path{stroke-width:7;filter:blur(9px);opacity:.5}
@keyframes portalDrift{from{transform:translate3d(0,0,0) rotate(0)}to{transform:translate3d(-3%,2%,0) rotate(4deg)}}
body.portal .flag-svg,body.portal .confeti{display:none}
body.portal main,body.portal .portal-topbar{position:relative;z-index:1}

/* barra superior del portal */
body.portal .portal-topbar{position:sticky;top:0;z-index:50;max-width:none;margin:0;padding:12px max(20px,calc((100vw - 1200px)/2));
  background:rgba(8,20,34,.62);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(255,255,255,.09)}
body.portal .portal-logo-mini{color:#fff;font-weight:700}
body.portal .portal-logo-mini img{width:32px;height:32px;border:1px solid rgba(255,255,255,.2)}
body.portal .portal-back{color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);padding:7px 14px;border-radius:999px;font-weight:600}
body.portal .portal-back:hover{background:rgba(255,255,255,.14);color:#fff}

/* saludo + cerrar sesión */
body.portal .portal-userbar{color:#c9d4df;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 12px 10px 18px}
body.portal .portal-userbar button{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 14px}
body.portal .portal-userbar button:hover{text-decoration:none;background:rgba(255,255,255,.18)}

/* título */
body.portal .portal-hero .eyebrow{color:#7fd6f5;letter-spacing:.2em;font-size:.72rem}
body.portal .portal-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:900;letter-spacing:-.04em;color:#fff;text-shadow:0 4px 24px rgba(18,168,224,.35)}
body.portal .portal-hero p{color:#b6c2ce}

/* tarjetas de secciones */
body.portal .feature-tile{border:1px solid rgba(255,255,255,.14);border-radius:26px;box-shadow:0 20px 50px rgba(0,0,0,.35);transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .4s}
body.portal .feature-tile:hover{transform:translateY(-6px);border-color:rgba(127,214,245,.5);box-shadow:0 26px 60px rgba(0,0,0,.45),0 0 40px rgba(18,168,224,.18)}
body.portal .feature-tile.tile-dark{background:radial-gradient(120% 100% at 15% 0%,rgba(127,214,245,.22) 0%,rgba(18,40,63,.9) 55%,rgba(8,18,30,.95) 100%)}
body.portal .feature-tile.tile-red{background:radial-gradient(120% 100% at 85% 0%,#3cc0ee 0%,#0b7fb0 50%,#062a40 100%)}
body.portal .feature-tag{color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2)}
body.portal .feature-desc{color:rgba(255,255,255,.78)}
body.portal .feature-link{color:#fff}

/* pantalla de ingreso / contraseña */
body.portal .portal-gate{background:transparent !important}
body.portal .portal-gate-box{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 60px rgba(18,168,224,.18);border-radius:26px;color:#fff}
body.portal .portal-gate-logo{border-radius:50%;border:2px solid rgba(255,255,255,.4);background:#fff}
body.portal .portal-gate-box h2{color:#fff;font-size:1.5rem;letter-spacing:-.02em}
body.portal .portal-gate-box p{color:#c9d4df}
body.portal .portal-gate-box input{background:rgba(0,0,0,.3);color:#fff;border:1px solid rgba(255,255,255,.2)}
body.portal .portal-gate-box input::placeholder{color:#8fa0b0}
body.portal .portal-gate-box input:focus{border-color:#7fd6f5;box-shadow:0 0 0 4px rgba(18,168,224,.2)}
body.portal .portal-gate-box button{background:#fff;color:#0b1826}
body.portal .portal-gate-error{color:#ff9a9a !important}
body.portal .portal-gate-aviso{background:rgba(255,120,120,.14);color:#ffd0d0;border:1px solid rgba(255,120,120,.3)}

/* existencia (buscador sencillo) */
body.portal .search-box{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}
body.portal .search-box input{background:none;color:#fff;border:0}
body.portal .exist-setup-note,body.portal .exist-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);box-shadow:none;backdrop-filter:blur(12px)}
body.portal .exist-card-title{color:#fff}
body.portal .exist-own-badge{background:linear-gradient(180deg,#3cc0ee,#0b7fb0)}
body.portal .exist-own-badge.zero{background:rgba(255,255,255,.1);color:#b6c2ce}
body.portal .exist-other-row{border-top-color:rgba(255,255,255,.14)}
body.portal .exist-other-chip{background:rgba(255,255,255,.1);color:#e6edf4}
body.portal .empty-state{color:#b6c2ce}

@media (prefers-reduced-motion:reduce){body.portal .aura svg{animation:none}}
