/* MEDHUB INDEX · Ingreso premium oscuro · Intervención exclusivamente visual */
/* La autenticación y los roles continúan gobernados por sync-client.js y /api/index. */
/* La presentación con el logo se muestra una vez autenticado el usuario. */
#index-auth{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;overflow:auto;box-sizing:border-box;padding:40px 18px;background:radial-gradient(ellipse 74% 54% at 50% 74%,rgba(12,54,113,.36),transparent 78%),radial-gradient(ellipse 65% 75% at 85% 15%,rgba(9,41,88,.38),transparent 80%),linear-gradient(140deg,#020711 0%,#041329 49%,#020813 100%);color:#d9e8fa;font-family:inherit;isolation:isolate}
#index-auth[hidden]{display:none!important}
#index-auth::before,#index-auth::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:clamp(340px,56vw,850px);height:clamp(370px,65vw,900px);border-radius:50%;opacity:.65;filter:drop-shadow(0 0 24px rgba(28,95,184,.13));animation:index-login-drift 18s ease-in-out infinite alternate}
#index-auth::before{left:-39vw;top:17%;border-right:1px solid rgba(65,146,248,.43);box-shadow:25px 0 80px -65px rgba(52,130,242,.32)}
#index-auth::after{right:-39vw;top:20%;border-left:1px solid rgba(182,138,110,.47);animation-duration:21s;animation-direction:alternate-reverse}
.index-login-shell{position:relative;z-index:1;width:min(100%,440px);text-align:center;animation:index-login-arrive 1.05s ease-out both}
.index-login-heading{margin-bottom:31px}
#index-auth .index-login-heading h2{font-family:"Helvetica Neue",Arial,sans-serif;font-size:clamp(27px,3.7vw,37px);font-weight:200;letter-spacing:.37em;text-indent:.37em;line-height:1.15;color:#e7f1ff;margin:0 0 14px}
#index-auth .index-login-heading p{font-size:10px;letter-spacing:.34em;font-weight:300;color:#aabed8;margin:0;white-space:nowrap}
#index-auth .card{position:relative;box-sizing:border-box;width:100%;padding:37px 35px 26px;border-radius:21px;border:1px solid rgba(118,165,228,.32);background:linear-gradient(145deg,rgba(19,42,75,.54),rgba(6,19,42,.71));box-shadow:0 24px 85px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035);text-align:left;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
#index-auth .card::before{content:"";position:absolute;top:-1px;left:31%;right:31%;height:1px;background:linear-gradient(90deg,transparent,#478eea,transparent);box-shadow:0 0 15px #358bff}
#index-auth .index-login-label{display:block;margin:0 0 9px 3px;font-size:9px;letter-spacing:.21em;font-weight:400;color:#92afd1}
#index-auth input,#index-auth select{appearance:none;display:block;box-sizing:border-box;width:100%;height:49px;margin:0 0 22px;padding:0 16px;border:1px solid rgba(111,157,208,.27);border-radius:10px;outline:0;background:rgba(10,32,63,.64);color:#dceafb;font:300 13px "Helvetica Neue",Arial,sans-serif;letter-spacing:.025em}
#index-auth select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%239cbee5' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-right:40px;cursor:pointer}
#index-auth select option{background:#0a203d;color:#e4edfc}
#index-auth input::placeholder{color:#7d96b4}
#index-auth input:focus,#index-auth select:focus{border-color:#498edc;box-shadow:0 0 0 3px rgba(63,138,229,.10)}
#index-auth #index-login{width:100%;height:49px;border:1px solid rgba(76,156,253,.8);border-radius:10px;background:linear-gradient(115deg,#07347c,#1259bf 70%,#1f74e7);box-shadow:0 8px 25px rgba(5,58,140,.24);font-size:12px;font-weight:400;letter-spacing:.3em;text-indent:.3em;color:#eef6ff;cursor:pointer;transition:filter .22s,transform .22s,box-shadow .22s}
#index-auth #index-login span{margin-left:14px;font-size:19px;font-weight:200;vertical-align:-1px}
#index-auth #index-login:hover{filter:brightness(1.14);transform:translateY(-1px);box-shadow:0 10px 30px rgba(13,85,187,.39)}
#index-auth #index-login:focus-visible{outline:2px solid #9fc7fb;outline-offset:3px}
#index-auth .error{min-height:16px;margin:13px 0 0;text-align:center;color:#f4a9aa;font-size:11px;line-height:1.4}
@keyframes index-login-arrive{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@keyframes index-login-drift{from{transform:translateX(-8px) rotate(-4deg)}to{transform:translateX(11px) rotate(4deg)}}
@media(max-width:550px){#index-auth{padding:26px 18px}.index-login-shell{width:min(100%,370px)}.index-login-heading{margin-bottom:26px}#index-auth .index-login-heading h2{font-size:29px}#index-auth .index-login-heading p{font-size:8px;letter-spacing:.22em}#index-auth .card{padding:27px 23px 19px}#index-auth::before{left:-80vw}#index-auth::after{right:-80vw}}
@media(max-height:550px){#index-auth{align-items:flex-start}.index-login-heading{margin-bottom:16px}#index-auth .card{padding-top:18px;padding-bottom:12px}#index-auth input,#index-auth select{height:42px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){#index-auth::before,#index-auth::after,.index-login-shell{animation:none}#index-auth #index-login{transition:none}}
/* Existing access administration modal remains unchanged. */
.index-modal{position:fixed;inset:0;z-index:999998;background:#17110f80;display:flex;align-items:center;justify-content:center}.index-modal[hidden]{display:none}.index-modal>section{background:white;padding:26px;border-radius:14px;width:min(450px,90vw)}.index-modal input,.index-modal select{padding:10px;margin:8px 0;width:100%;box-sizing:border-box}.index-modal button{border:0;border-radius:8px;padding:11px 20px;background:#84766f;color:#fff;cursor:pointer}.sync-state{font-size:11px;color:#6b6b64;margin:7px 0}
