/* Prueba visual original inspirada en la claridad y el azul del kit HiTaxi.
   Esta capa se puede retirar sin alterar el flujo ni los datos del panel. */
:root{--ink:#182d55;--deep:#11285a;--lime:#dbeaff;--cream:#fff;--line:#dce6f6;--muted:#647795;--peach:#ffeddf;--sky:#e9f2ff;color:#182d55;background:#f4f7fd}
body{background:radial-gradient(circle at 80% -10%,#dceaff 0,transparent 38%),linear-gradient(140deg,#f9fbff,#eef4ff 55%,#f7f9ff);color:#182d55;font-family:'DM Sans',sans-serif}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-color:#ffb84d}

/* Acceso: una portada azul con una ruta sencilla y un formulario muy claro. */
.topbar{background:linear-gradient(164deg,#102d75 0%,#123e9e 58%,#0b2361 100%);border-right-color:#ffffff22;box-shadow:12px 0 35px #163b8317}
.topbar::after{background:#ffffff30}
.brand>span:last-child{color:#bcd7ff}
.brandmark{background:#fff;color:#1855c8;border-radius:12px;box-shadow:0 7px 18px #071e5750}
.top-actions,.top-actions>span:not(.role-pill){color:#dce8ff}
.role-pill{background:#ffffff20;color:#fff}
.quiet{background:#ffffff16;border-color:#ffffff38;color:#fff}
.quiet:hover{background:#ffffff29}
.login{max-width:1120px;min-height:650px;margin:4vh auto;border:1px solid #dbe6fa;border-radius:34px;background:#fff;box-shadow:0 30px 90px #2452a925;grid-template-columns:1.07fr .93fr}
.login-copy{position:relative;overflow:hidden;justify-content:flex-start;padding:74px 62px;background:radial-gradient(circle at 86% 12%,#66aaff75,transparent 35%),linear-gradient(155deg,#0b3aa1,#236de0 62%,#0e479e)}
.login-copy::before{content:'';position:absolute;right:-80px;bottom:-130px;width:360px;height:360px;border:1px solid #ffffff4a;border-radius:50%;box-shadow:0 0 0 38px #ffffff0b,0 0 0 76px #ffffff0a}
.login-copy .eyebrow{position:relative;color:#c9dcff;letter-spacing:2.4px}
.login-copy h1{position:relative;color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;line-height:1.05;font-size:clamp(40px,4vw,50px);letter-spacing:-2.2px;max-width:550px;margin:30px 0 22px}
.login-copy p{position:relative;color:#dfebff;font-size:17px;line-height:1.65;max-width:470px}
.login-route{position:relative;align-self:stretch;height:178px;margin-top:auto;overflow:hidden;isolation:isolate}
.login-route::before{content:'';position:absolute;left:55px;right:55px;top:80px;border-top:3px dashed #b2d2ff;transform:rotate(-9deg);opacity:.9}
.login-route::after{content:'';position:absolute;left:34%;top:28px;width:94px;height:94px;border:1px solid #ffffff50;border-radius:50%;box-shadow:0 0 0 24px #ffffff12,0 0 0 48px #ffffff0b}
.login-route span{position:absolute;display:grid;place-items:center;z-index:1}
.route-start{left:26px;top:78px;width:20px;height:20px;border:5px solid #fff;border-radius:50%;background:#63b4ff;box-shadow:0 0 0 9px #ffffff25}
.route-end{right:24px;top:22px;width:68px;height:68px;border-radius:20px;background:#fff;color:#1656cb;font-size:42px;font-weight:700;box-shadow:0 16px 28px #07255b55}
.login-form{padding:65px clamp(34px,5vw,68px);background:linear-gradient(#fff,#fbfcff)}
.login-form::before{content:'BIENVENIDO DE NUEVO';display:block;margin-bottom:31px;color:#1c58c6;font-size:11px;font-weight:700;letter-spacing:2px}
.login-form label{color:#243c63}
.login-form input{border:1px solid #cbd9f1;border-radius:15px;background:#f9fbff;color:#182d55;box-shadow:0 3px 9px #1d4b9b08}
.login-form input:focus{border-color:#3779df;background:#fff}
.remember{color:#596d8c}.remember input{accent-color:#205fce}
.text-action,.reveal{color:#1a5bc7}
.login-help{color:#607593}
.primary,.record-contact,.save-follow-up,.send-email{background:#1a5ed2;color:#fff;box-shadow:0 9px 22px #1a5ed229}
.primary:hover,.record-contact:hover,.save-follow-up:hover,.send-email:hover{background:#0e4dbb}
.login-form .primary{margin-top:25px;border-radius:15px;min-height:58px}

/* Panel: navegación definida, contenido aireado y jerarquía azul/blanco. */
main{padding-top:34px}
.heading-row{min-height:200px;align-items:center;border-radius:29px;background:radial-gradient(circle at 75% 10%,#73b9ff8a,transparent 36%),linear-gradient(115deg,#123d9d 0%,#1e63d4 60%,#3b8aea 100%);box-shadow:0 20px 48px #1c55b62d}
.heading-row::after{color:#ffffff16;font-family:'DM Sans',sans-serif;font-weight:700;top:-23px;right:18px;letter-spacing:-16px}
.heading-row .eyebrow,.heading-row h1,.heading-row p{color:#fff}
.heading-row .eyebrow{color:#c8deff}
.dashboard h1{font-family:'DM Sans',sans-serif;font-weight:700;letter-spacing:-2px;font-size:clamp(36px,4vw,52px);line-height:1.06}
.heading-row p{color:#e1edff}
.secondary{border:1px solid #ffffff55;background:#fff;color:#1855bd;box-shadow:0 10px 24px #092f7d2c}
.dashboard-tabs{background:#e9f0fc;border:1px solid #dce6f8;border-radius:18px;padding:6px}
.dashboard-tab{color:#526b94;border-radius:13px}
.dashboard-tab.is-active{background:#fff;color:#164db4;box-shadow:0 4px 13px #1d4b9b16}
.dashboard-tab span{background:#dceaff;color:#164db4}
.eyebrow{color:#3862a5}
.today-intro,.panel-card,.summary-grid article,.summary-card{background:#fff;border-color:#e0e8f6;box-shadow:0 12px 35px #214d980d}
.today-intro{border-radius:25px}
.today-intro h2,.panel-title h2,.return-heading h3{color:#1d365f;font-family:'DM Sans',sans-serif;font-weight:700;letter-spacing:-.8px}
.today-intro p,.panel-title p,.today-context,.footnote{color:#657895}
.today-total,.count{background:#e9f1ff;color:#1553bf;border-radius:13px}
.today-filters button{border-radius:11px}
.today-filters button.is-active{background:#1a5ed2;color:#fff}
.today-person,.visitor,.request,.milestone-alert,.overdue-alert{border-color:#e5ecf8}
.today-person:hover,.visitor:hover{background:#f7faff}
.detail-button,.today-show-more{border-color:#c6d8f4;background:#f5f9ff;color:#1755c0}
.detail-button:hover,.today-show-more:hover{background:#e9f2ff}
.panel-disclosure>.panel-title{border-color:#e2eafa}
.panel-disclosure>.panel-title::after{color:#3a6fc3}
.summary-grid article:first-child{background:linear-gradient(140deg,#1549b3,#2d78df);color:#fff}
.summary-grid article:first-child span{color:#d8e7ff}
.summary-grid article:first-child::after{color:#fff}
.summary-grid span,.journey-metric span,.journey-metric small{color:#617796}
.summary-grid article:nth-child(3),.alert-summary{background:#fff6e5!important}
.summary-grid article:nth-child(4),.journey-metric:nth-child(3){background:#e6f2ff}
.journey-metric{background:#f1f6ff;color:#1d365f}
.journey-metric:nth-child(2){background:#eaf2ff}
.return-funnel{background:#dce7f8;border-color:#dce7f8}
.return-panel,.return-panel.panel-disclosure{background:#fff;border-color:#e0e8f6}
.contact-impact,.detail-summary article{background:#f1f6ff}
.role,.status{background:#e7f0ff;color:#2158af}
.access-dialog,.visitor-dialog,.journey-dialog{background:#fff;color:#1d365f}
.access-dialog::backdrop,.visitor-dialog::backdrop,.journey-dialog::backdrop{background:#081e53b8}

@media(max-width:1100px){.topbar{box-shadow:0 10px 25px #163b8317}.quiet{background:#ffffff1d;color:#fff;border-color:#ffffff42}.role-pill{background:#ffffff26;color:#fff}}
@media(max-width:800px){.login{margin:14px auto}.login-copy{min-height:340px;padding:48px 40px}.login-route{height:105px}.login-route::before{top:58px}.route-start{top:54px}.route-end{top:10px}}
@media(max-width:620px){main{padding-top:14px}.login{margin:0 auto;min-height:0;border-radius:25px}.login-copy{min-height:305px;padding:36px 28px}.login-copy h1{font-size:42px;letter-spacing:-1.8px;margin:22px 0 12px}.login-copy p{font-size:14px}.login-route{height:84px}.login-route::before{top:48px;left:35px;right:35px}.route-start{top:44px;left:14px}.route-end{width:54px;height:54px;top:2px;right:13px;font-size:32px}.login-form{padding:32px 25px}.heading-row{min-height:190px;padding:25px 22px}.heading-row::after{font-size:96px;right:18px;top:4px}.dashboard h1{font-size:38px}.dashboard-tabs{width:100%}.dashboard-tab{font-size:12px;padding:10px 11px}.today-intro h2,.panel-title h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.login-route::after{box-shadow:none}}

/* Acceso móvil: una sola tarjeta clara, con la jerarquía de la referencia. */
.login-title-mobile,.login-emblem{display:none}
.top-actions[hidden]{display:none!important}
.entry-transition{--entry-bg:#edf7ff;background:radial-gradient(circle at 50% 28%,#fff 0%,#eaf7ff 48%,#c7e9fb 100%);color:#17316b}
.entry-walk svg{color:#17316b}
.entry-message span,.entry-loading{color:#356c9a}
.entry-loading span{border-color:#bbdcf2;border-top-color:#17316b}
@media(max-width:620px){
  body:has(.login:not([hidden])){background:#e8f5fc}
  body:has(.login:not([hidden])) .topbar{justify-content:center;background:transparent;box-shadow:none;border:0;min-height:72px;padding:14px 12px}
  body:has(.login:not([hidden])) .brand{color:#183565}
  body:has(.login:not([hidden])) .brand>span:last-child{color:#2469a6}
  body:has(.login:not([hidden])) main{padding:0 16px 30px}
  .login{display:flex;flex-direction:column;width:min(100%,390px);margin:0 auto;border:0;border-radius:25px;background:linear-gradient(165deg,#4ac0e4 0%,#2d9bd0 38%,#2565b6 100%);box-shadow:0 20px 48px #164f9d35;overflow:hidden}
  .login-copy{min-height:0;padding:30px 26px 15px;align-items:center;justify-content:flex-start;text-align:center;background:transparent}
  .login-copy::before{width:185px;height:185px;right:calc(50% - 92px);top:100px;bottom:auto;border-color:#ffffff35;box-shadow:0 0 0 20px #ffffff0a,0 0 0 41px #ffffff08}
  .login-copy .eyebrow,.login-copy p,.login-route,.login-title-desktop{display:none}
  .login-title-mobile{display:inline}
  .login-copy h1{margin:0 0 26px;color:#142e5c;font-size:29px;line-height:1.15;letter-spacing:-.8px}
  .login-copy h1::after{content:'';display:block;width:46px;height:3px;margin:13px auto 0;border-radius:5px;background:#153b6a}
  .login-emblem{position:relative;display:grid;place-items:center;width:124px;height:124px;border-radius:50%;background:#e8f8ff16;color:#fff;box-shadow:inset 0 0 0 1px #ffffff38,0 12px 25px #0d4d8533}
  .login-emblem::before,.login-emblem::after{content:'';position:absolute;border-radius:50%}
  .login-emblem::before{inset:-11px;border:1px solid #ffffff47}
  .login-emblem::after{width:24px;height:24px;left:-11px;bottom:5px;background:#183366;box-shadow:0 8px 14px #1338705e}
  .login-emblem svg{width:88px;height:88px}
  .login-form{padding:17px 36px 28px;background:transparent;justify-content:flex-start;color:#fff}
  .login-form::before{display:none}
  .login-form label{color:#f4fbff;font-size:13px;font-weight:600;margin-bottom:2px}
  .login-form input:not([type=checkbox]){min-height:43px;padding:9px 2px;border:0;border-bottom:2px solid #eaf7ffca;border-radius:0;background:transparent;color:#fff;font-size:16px;box-shadow:none}
  .login-form input:not([type=checkbox]):focus{border-color:#fff;background:transparent;outline-offset:2px}
  .login-form input::placeholder{color:#e2f3ffb5}
  .login-form .label-row{margin-top:18px;align-items:center;gap:8px}
  .login-form .label-row label{white-space:nowrap}
  .login-form .text-action,.login-form .reveal{color:#fff;font-size:11px}
  .login-form .text-action{text-align:right;text-decoration:underline;text-underline-offset:2px}
  .login-form .remember{margin-top:18px!important;color:#edf8ff!important;font-size:12px;line-height:1.35}
  .login-form .remember input{flex:0 0 auto;accent-color:#17316b}
  .login-form .primary{min-height:50px;justify-content:center;gap:12px;margin-top:23px;border-radius:999px;background:#183363;box-shadow:0 10px 20px #15335d55;color:#fff}
  .login-form .primary:hover{background:#10274f}
  .login-form .primary span{position:absolute;right:calc(50% - 74px)}
  .login-help{color:#e8f5ff;text-align:center;font-size:11px;line-height:1.4;margin-top:18px}
  .login-form .notice{color:#17316b;background:#eef8ff}
  .login-form .notice[data-kind=error]{color:#922f25;background:#fff3ef}
}
@media(max-width:360px){body:has(.login:not([hidden])) main{padding-inline:10px}.login-copy{padding-top:25px}.login-form{padding-inline:25px}.login-form .label-row{flex-wrap:wrap}}

/* El acceso en PC conserva la misma tarjeta azul del móvil. */
@media(min-width:621px){
  body:has(.login:not([hidden])){background:#e8f5fc}
  body:has(.login:not([hidden])) .topbar{position:relative;inset:auto;width:auto;min-height:70px;padding:16px 24px;flex-direction:row;align-items:center;justify-content:center;background:transparent;box-shadow:none;border:0}
  body:has(.login:not([hidden])) .topbar::after{display:none}
  body:has(.login:not([hidden])) .brand{color:#183565}
  body:has(.login:not([hidden])) .brand>span:last-child{color:#2469a6}
  body:has(.login:not([hidden])) main{max-width:none;margin:0;padding:18px 24px 56px}
  .login{display:flex;flex-direction:column;width:min(100%,440px);max-width:440px;min-height:0;margin:0 auto;border:0;border-radius:27px;background:linear-gradient(165deg,#4ac0e4 0%,#2d9bd0 38%,#2565b6 100%);box-shadow:0 24px 65px #164f9d35;overflow:hidden}
  .login-copy{min-height:0;padding:28px 32px 15px;align-items:center;justify-content:flex-start;text-align:center;background:transparent}
  .login-copy::before{width:205px;height:205px;right:calc(50% - 102px);top:109px;bottom:auto;border-color:#ffffff35;box-shadow:0 0 0 20px #ffffff0a,0 0 0 42px #ffffff08}
  .login-copy .eyebrow,.login-copy p,.login-route,.login-title-desktop{display:none}
  .login-title-mobile{display:inline}
  .login-copy h1{margin:0 0 21px;color:#142e5c;font-size:33px;line-height:1.15;letter-spacing:-.8px}
  .login-copy h1::after{content:'';display:block;width:50px;height:3px;margin:14px auto 0;border-radius:5px;background:#153b6a}
  .login-emblem{position:relative;display:grid;place-items:center;width:126px;height:126px;border-radius:50%;background:#e8f8ff16;color:#fff;box-shadow:inset 0 0 0 1px #ffffff38,0 12px 25px #0d4d8533}
  .login-emblem::before,.login-emblem::after{content:'';position:absolute;border-radius:50%}
  .login-emblem::before{inset:-11px;border:1px solid #ffffff47}
  .login-emblem::after{width:25px;height:25px;left:-11px;bottom:6px;background:#183366;box-shadow:0 8px 14px #1338705e}
  .login-emblem svg{width:98px;height:98px}
  .login-form{padding:20px 44px 26px;background:transparent;justify-content:flex-start;color:#fff}
  .login-form::before{display:none}
  .login-form label{color:#f4fbff;font-size:14px;font-weight:600;margin-bottom:3px}
  .login-form input:not([type=checkbox]){min-height:46px;padding:9px 2px;border:0;border-bottom:2px solid #eaf7ffca;border-radius:0;background:transparent;color:#fff;font-size:17px;box-shadow:none}
  .login-form input:not([type=checkbox]):focus{border-color:#fff;background:transparent;outline-offset:2px}
  .login-form input::placeholder{color:#e2f3ffb5}
  .login-form .label-row{margin-top:20px;align-items:center;gap:8px}
  .login-form .text-action,.login-form .reveal{color:#fff;font-size:12px}
  .login-form .text-action{text-align:right;text-decoration:underline;text-underline-offset:2px}
  .login-form .remember{margin-top:20px!important;color:#edf8ff!important;font-size:13px;line-height:1.4}
  .login-form .remember input{flex:0 0 auto;accent-color:#17316b}
  .login-form .primary{position:relative;min-height:54px;justify-content:center;gap:12px;margin-top:26px;border-radius:999px;background:#183363;box-shadow:0 10px 20px #15335d55;color:#fff}
  .login-form .primary:hover{background:#10274f}
  .login-form .primary span{position:absolute;right:22px}
  .login-help{color:#e8f5ff;text-align:center;font-size:12px;line-height:1.45;margin-top:20px}
  .login-form .notice{color:#17316b;background:#eef8ff}
  .login-form .notice[data-kind=error]{color:#922f25;background:#fff3ef}
}
