@import url("assets/osse-palette.css?v=osse-df-login-1");
@import url("assets/osse-agua-viva.css?v=osse-df-login-1");
html{font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}
body{color:var(--brand-dark);background:var(--bg)}
header{background:var(--brand);color:var(--header-text)}
nav a{color:var(--on-brand)}
h1,h2{color:var(--brand-dark)}
button,.button{background:var(--brand)}
.tab.active{background:var(--brand);border-color:var(--brand)}
.bar{background:var(--brand)}
.timeline-dot.blue,.badge-blue{background:var(--brand)}
.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--info-soft);border-left:5px solid var(--brand);border-radius:12px;padding:18px 20px;margin:0 0 22px;box-shadow:0 3px 12px rgba(var(--shadow-rgb), 0.094)}
.welcome-banner strong{font-size:22px;color:var(--brand-dark)}
.welcome-banner span{color:var(--brand-dark);opacity:.82}
.loginbox h1{color:var(--brand);margin-top:0}
.loginbox button{background:var(--brand)}
@media(max-width:600px){.welcome-banner{align-items:flex-start;flex-direction:column}}
*{box-sizing:border-box}body{margin:0}header{background:var(--header-bg);color:var(--header-text);padding:18px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:2}header small{display:block;opacity:.75;margin-top:4px}nav{display:flex;gap:14px;flex-wrap:wrap}nav a{color:var(--on-brand);text-decoration:none;font-size:14px}main{max-width:1180px;margin:30px auto;padding:0 20px}h1{font-size:30px}h2{margin-top:8px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card,.panel,.action{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 16px rgba(var(--shadow-rgb), 0.063)}.card{padding:20px}.card span,.card small{display:block;color:var(--muted)}.card b{display:block;font-size:30px;margin:8px 0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.action{padding:22px;text-decoration:none;color:var(--ink)}.action b,.action span{display:block}.action span{color:var(--muted);margin-top:8px}.panel{padding:22px;margin-top:20px}.search{display:flex;gap:10px;margin-bottom:20px}.search input{flex:1}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:180px}label{display:block;font-weight:600;margin:12px 0}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;padding:11px;border:1px solid var(--line-strong);border-radius:8px;margin-top:6px;background:var(--surface)}textarea{min-height:90px;resize:vertical}button,.button{display:inline-block;border:0;background:var(--brand);color:var(--on-brand);padding:11px 18px;border-radius:8px;cursor:pointer;text-decoration:none;margin:12px 8px 0 0}.secondary{background:var(--surface);color:var(--brand);border-color:var(--brand)}.success,.error,.notice{padding:13px;border-radius:8px;margin:14px 0}.success{background:var(--success-soft);color:var(--success)}.error{background:var(--danger-soft);color:var(--danger)}.notice{background:var(--info-soft);color:var(--ink)}.muted{color:var(--muted)}.gline{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px;background:var(--surface);border-radius:10px;margin-bottom:10px}.gline input{margin:0}table{width:100%;border-collapse:collapse;margin-top:10px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:14px}.login{min-height:100vh;display:grid;place-items:center}.loginbox{width:min(420px,92vw);background:var(--surface);padding:32px;border-radius:16px;box-shadow:0 12px 40px rgba(var(--shadow-rgb), 0.125)}.loginbox button{width:100%}@media(max-width:800px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.gline{grid-template-columns:1fr}.panel{padding:16px}}@media(max-width:500px){.cards{grid-template-columns:1fr}header{align-items:flex-start;flex-direction:column}}
.cards.compact{margin:18px 0}.cards.compact .card{padding:14px}.cards.compact .card b{font-size:24px}.check{font-weight:400;display:flex;gap:8px;align-items:center}.check input{width:auto;margin:0}.gcard{border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0;background:var(--surface)}.ghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.linkbtn{background:transparent;color:var(--danger);padding:4px 8px;margin:0}.payment{background:var(--surface);border-radius:10px;padding:4px 12px;margin:8px 0}.searchbtn{margin-top:6px}.search label{flex:1}.search label input{margin-top:6px}.gcard textarea{min-height:55px}.gcard select,.gcard input{margin-top:6px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{padding:9px 13px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--surface)}.tab.active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}
.chart{margin-top:14px}.barrow{display:flex;gap:10px;align-items:center;margin:8px 0}.day{width:58px;font-size:12px;color:var(--muted)}.barwrap{flex:1}.bar{height:22px;background:var(--brand);border-radius:5px;min-width:2px;margin-bottom:4px;position:relative;transition:width .2s}.bar.alt{background:var(--accent)}.bar span{display:block;color:var(--on-brand);font-size:11px;padding:3px 7px;white-space:nowrap}.chart{overflow-x:auto}@media(max-width:700px){.barrow{min-width:420px}}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.page-heading h1{margin-bottom:6px}.search-panel{margin-bottom:20px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:15px}.section-title h2{margin:0}.badge{display:inline-flex;min-width:28px;height:28px;align-items:center;justify-content:center;padding:0 9px;border-radius:999px;background:var(--info-soft);color:var(--ink);font-weight:700}.button.small{font-size:13px;padding:7px 10px;margin:0}.search-label{display:block;font-weight:600;margin:0;flex:1}.global-search{align-items:flex-end}.global-search label{flex:1;margin:0}.global-search button{margin:0}@media(max-width:900px){.quick-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.quick-grid{grid-template-columns:1fr}.page-heading{display:block}}
.account-details{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.account-details>div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px}.account-details span{display:block;color:var(--muted);font-size:12px}.account-details b{display:block;margin-top:5px}.timeline-list{position:relative;margin-top:18px}.timeline-list:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--surface)}.timeline-item{display:grid;grid-template-columns:22px 1fr;gap:14px;position:relative;margin:0 0 18px}.timeline-dot{width:22px;height:22px;border-radius:50%;border:4px solid var(--line);box-shadow:0 0 0 1px var(--brand);z-index:1}.timeline-dot.blue,.badge-blue{background:var(--brand)}.timeline-dot.green,.badge-green{background:var(--success)}.timeline-dot.gray,.badge-gray{background:var(--brand)}.timeline-dot.purple,.badge-purple{background:var(--brand)}.timeline-dot.orange,.badge-orange{background:var(--accent)}.timeline-dot.teal,.badge-teal{background:var(--ink)}.timeline-dot.indigo,.badge-indigo{background:var(--brand)}.timeline-dot.red,.badge-red{background:var(--danger)}.timeline-content{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.timeline-meta{display:flex;justify-content:space-between;gap:12px;align-items:center}.timeline-meta time{font-size:12px;color:var(--muted)}.badge[class*="badge-"]{color:var(--on-brand);border-radius:999px;min-width:auto;height:auto;padding:4px 8px;font-size:12px}.timeline-content h3{margin:10px 0 6px;font-size:16px}.timeline-content p{margin:0 0 8px;white-space:normal}@media(max-width:950px){.account-details{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.account-details{grid-template-columns:1fr}.timeline-meta{align-items:flex-start;flex-direction:column}}
.person-details{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.person-details>div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px}.person-details span{display:block;color:var(--muted);font-size:12px}.person-details b{display:block;margin-top:5px;word-break:break-word}.person-stats{grid-template-columns:repeat(4,1fr)}.filter-panel{background:var(--surface);box-shadow:none;margin:16px 0 0;padding:14px}.filter-panel button{margin-top:4px}@media(max-width:950px){.person-details{grid-template-columns:repeat(2,1fr)}.person-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.person-details{grid-template-columns:1fr}.person-stats{grid-template-columns:1fr}}
.permission-form{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.permission-form small{display:block;margin-top:4px}
.statlink{text-decoration:none;color:inherit}.statlink:hover{border-color:var(--line)}.due-late{color:var(--danger)}.badge-orange{background:var(--accent-soft);color:var(--accent-ink)}.button.small{font-size:13px;padding:7px 10px;margin:0}
.notice-list{display:grid;gap:12px}.notice-unread{border-left:4px solid currentColor}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.due-late{font-weight:700}

/* V38 - nueva identidad visual: azul + naranja */
button,.button{background:var(--brand)}
button.secondary,.secondary{background:var(--surface);color:var(--brand);border-color:var(--brand)}
.tab.active{background:var(--brand);border-color:var(--brand)}
.bar.alt{background:var(--accent)}
.timeline-dot.orange,.badge-orange{background:var(--accent)}
.welcome-banner{background:var(--info-soft);border-left-color:var(--accent)}
.welcome-banner strong{color:var(--brand)}
.notice{background:var(--info-soft)}

/* V40 - identidad visual Obras Sanitarias y nuevo inicio de sesión */

body{color:var(--ink);background:var(--bg)}
header{background:var(--brand);color:var(--header-text)}
button,.button{background:var(--brand)}
button.secondary,.secondary{background:var(--surface);color:var(--brand);border-color:var(--brand)}
.tab.active{background:var(--brand);border-color:var(--brand)}
.bar{background:var(--brand)}
.bar.alt{background:var(--accent)}
.timeline-dot.blue,.badge-blue{background:var(--brand)}
.timeline-dot.orange,.badge-orange{background:var(--accent)}
.welcome-banner{background:var(--surface);border-left-color:var(--accent)}
.welcome-banner strong{color:var(--brand)}
.notice{background:var(--info-soft)}

.login-page{
  min-height:100vh;
  margin:0;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,var(--surface) 0%,var(--surface) 48%,var(--surface) 100%);
  color:var(--ink);
}
.login-shell{
  position:relative;
  z-index:2;
  width:min(1440px,100%);
  min-height:100vh;
  margin:0 auto;
  padding:48px 56px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.login-brand{text-align:center;margin-bottom:24px}
.login-brand img{
  width:min(520px,42vw);
  max-height:190px;
  object-fit:contain;
  display:inline-block;
}
.login-layout{
  display:grid;
  grid-template-columns:1fr minmax(440px,620px) 1fr;
  gap:38px;
  align-items:center;
}
.loginbox{
  width:100%;
  background:rgba(var(--surface-rgb), 0.94);
  border:1px solid var(--line);
  border-radius:20px;
  padding:42px 52px 30px;
  box-shadow:0 18px 50px rgba(var(--shadow-rgb), 0.16);
  backdrop-filter:blur(5px);
}
.loginbox h1{font-size:32px;margin:0 0 5px;color:var(--ink)}
.login-subtitle{margin:0 0 27px;font-size:18px;color:var(--muted)}
.login-field{
  position:relative;
  display:flex;
  align-items:center;
  margin:0 0 16px;
  font-weight:400;
}
.login-field input{
  height:58px;
  margin:0;
  padding:0 54px 0 58px;
  border:1px solid var(--line-strong);
  border-radius:10px;
  color:var(--ink);
  font-size:17px;
  box-shadow:inset 0 1px 2px rgba(var(--shadow-rgb), 0.03);
}
.login-field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--shadow-rgb), 0.12)}
.login-field input::placeholder{color:var(--muted)}
.login-icon{position:absolute;left:20px;color:var(--muted);font-size:18px;z-index:1}
.password-toggle{
  position:absolute;
  right:8px;
  top:8px;
  margin:0;
  width:42px;
  height:42px;
  padding:0;
  background:transparent;
  color:var(--muted);
  border-radius:8px;
}
.password-toggle:hover{background:var(--info-soft);color:var(--brand)}
.login-submit{
  width:100%;
  height:58px;
  margin:12px 0 0;
  border-radius:10px;
  font-size:18px;
  font-weight:700;
  background:var(--brand);
  box-shadow:0 8px 18px rgba(var(--shadow-rgb), 0.2);
}
.login-submit:hover{background:var(--brand-dark)}
.login-submit span{font-size:26px;line-height:0;vertical-align:-2px;margin-left:8px}
.login-error{margin:0 0 16px}
.login-tagline{display:flex;align-items:center;gap:18px;justify-content:center;margin-top:27px;color:var(--muted);font-size:16px}
.login-tagline span{height:1px;width:88px;background:var(--brand)}
.login-features{display:flex;flex-direction:column;gap:27px;padding-left:10px}
.login-feature{display:flex;align-items:center;gap:17px;color:var(--brand)}
.feature-icon{width:52px;text-align:center;font-size:31px;line-height:1;font-weight:700}
.feature-wave{font-size:38px}
.feature-people{font-size:16px;letter-spacing:-3px}
.login-feature strong,.login-feature small{display:block}
.login-feature strong{font-size:17px}
.login-feature small{font-size:16px;margin-top:3px;color:var(--muted)}
.login-message{font-size:29px;line-height:1.12;color:var(--brand);padding-left:10px;position:relative}
.login-message strong{font-size:41px;line-height:1.03}
.login-message i{display:block;width:49px;height:8px;border-radius:99px;background:var(--accent);margin-top:13px}
.login-watermark{position:absolute;right:-45px;top:100px;font-size:280px;font-weight:900;letter-spacing:-35px;color:rgba(var(--brand-rgb), 0.045);line-height:1;z-index:0;user-select:none}
.login-wave{position:absolute;z-index:1;pointer-events:none;border-radius:50%;transform:rotate(-8deg)}
.login-wave-blue{width:120%;height:210px;left:-8%;bottom:-128px;background:var(--brand);box-shadow:0 -20px 0 rgba(var(--surface-rgb), 0.92),0 -31px 0 rgba(var(--shadow-rgb), 0.22)}
.login-wave-orange{width:78%;height:16px;right:-5%;bottom:100px;background:var(--accent);transform:rotate(-12deg);border-radius:99px}
.login-footer{text-align:center;margin-top:28px;color:var(--muted);font-size:14px;position:relative;z-index:3}
.login-footer span{display:block;width:28px;height:4px;background:var(--accent);border-radius:99px;margin:7px auto 0}
@media(max-width:1050px){
  .login-shell{padding:30px 28px}
  .login-layout{grid-template-columns:1fr minmax(420px,560px);gap:25px}
  .login-features{display:none}
  .login-message{justify-self:center}
}
@media(max-width:700px){
  .login-shell{padding:24px 16px 28px;justify-content:flex-start}
  .login-brand{margin-bottom:10px}
  .login-brand img{width:min(430px,92vw);max-height:145px}
  .login-layout{display:block}
  .login-message{display:none}
  .loginbox{padding:30px 22px 24px;border-radius:16px}
  .loginbox h1{font-size:28px}
  .login-subtitle{font-size:16px}
  .login-tagline{font-size:14px;gap:10px}
  .login-tagline span{width:45px}
  .login-wave-blue{height:145px;bottom:-90px}
  .login-wave-orange{bottom:68px}
  .login-footer{margin-top:22px}
}

/* V41 - rediseño final del inicio de sesión Obras Sanitarias */

.login-page{
  min-height:100vh;
  margin:0;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,var(--surface) 0%,var(--surface) 47%,var(--surface) 100%);
  color:var(--ink);
}
.login-shell{
  position:relative;
  z-index:5;
  width:min(1420px,100%);
  min-height:100vh;
  margin:0 auto;
  padding:42px 54px 30px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.login-brand{text-align:center;margin:0 0 22px;line-height:0}
.login-brand img{
  width:min(420px,31vw);
  max-height:148px;
  object-fit:contain;
  display:inline-block;
}
.login-layout{
  display:grid;
  grid-template-columns:minmax(245px,1fr) minmax(500px,620px) minmax(245px,1fr);
  gap:42px;
  align-items:center;
}
.loginbox{
  width:100%;
  background:rgba(var(--surface-rgb), 0.96);
  border:1px solid var(--line);
  border-radius:19px;
  padding:38px 48px 28px;
  box-shadow:0 18px 48px rgba(var(--shadow-rgb), 0.14);
  backdrop-filter:blur(5px);
}
.loginbox h1{font-size:32px;line-height:1.15;margin:0 0 6px;color:var(--ink)}
.login-subtitle{margin:0 0 27px;font-size:18px;line-height:1.4;color:var(--muted)}
.login-field{
  position:relative;
  display:block;
  margin:0 0 16px;
  padding:0;
}
.login-field input{
  display:block;
  width:100%;
  height:58px;
  margin:0;
  padding:0 56px 0 58px;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:var(--surface);
  color:var(--ink);
  font-size:17px;
  line-height:58px;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
}
.login-field input:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(var(--shadow-rgb), 0.11);
}
.login-field input::placeholder{color:var(--muted);opacity:1}
.login-icon{
  position:absolute;
  left:19px;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:24px;
  color:var(--muted);
  z-index:2;
  pointer-events:none;
}
.login-icon svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.password-toggle{
  position:absolute;
  right:9px;
  top:8px;
  z-index:3;
  width:42px;
  height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  background:transparent !important;
  color:var(--muted);
  border-radius:8px;
  cursor:pointer;
  box-shadow:none;
}
.password-toggle:hover{background:var(--info-soft) !important;color:var(--brand)}
.password-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.eye-icon{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.login-submit{
  width:100%;
  height:58px;
  margin:12px 0 0;
  border:0;
  border-radius:10px;
  font-size:18px;
  font-weight:700;
  color:var(--on-brand);
  background:var(--brand);
  box-shadow:0 8px 18px rgba(var(--shadow-rgb), 0.2);
}
.login-submit:hover{background:var(--brand-dark)}
.login-submit span{font-size:27px;line-height:0;vertical-align:-2px;margin-left:8px}
.login-error{margin:0 0 16px}
.login-tagline{display:flex;align-items:center;gap:18px;justify-content:center;margin-top:27px;color:var(--muted);font-size:16px;white-space:nowrap}
.login-tagline span{height:1px;width:86px;background:var(--brand);flex:0 0 auto}
.login-features{display:flex;flex-direction:column;gap:27px;padding-left:7px}
.login-feature{display:flex;align-items:center;gap:17px;color:var(--brand)}
.feature-icon{width:58px;height:58px;display:grid;place-items:center;flex:0 0 58px}
.feature-icon svg{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.login-feature:first-child .feature-icon svg{fill:currentColor;stroke:none}
.login-feature strong,.login-feature small{display:block}
.login-feature strong{font-size:17px;line-height:1.2}
.login-feature small{font-size:16px;line-height:1.35;margin-top:3px;color:var(--muted)}
.login-message{font-size:30px;line-height:1.08;color:var(--muted);padding-left:12px;position:relative}
.login-message strong{font-size:43px;line-height:1.02}
.login-message i{display:block;width:49px;height:8px;border-radius:99px;background:var(--accent);margin-top:14px}
.login-bg-mark{
  position:absolute;
  right:-38px;
  top:116px;
  font-size:280px;
  font-weight:900;
  letter-spacing:-34px;
  line-height:1;
  color:rgba(var(--brand-rgb), 0.045);
  z-index:1;
  user-select:none;
}
.login-curve{position:absolute;pointer-events:none;z-index:2;border-radius:50%}
.login-curve-blue{width:124%;height:205px;left:-11%;bottom:-128px;background:var(--brand);transform:rotate(-1deg);box-shadow:0 -18px 0 rgba(var(--surface-rgb), 0.98),0 -29px 0 rgba(var(--shadow-rgb), 0.2)}
.login-curve-orange{width:73%;height:15px;right:-4%;bottom:103px;background:var(--accent-soft);transform:rotate(-11deg);border-radius:99px}
.login-curve-light{width:85%;height:15px;right:-3%;bottom:88px;background:var(--info-soft);transform:rotate(-5deg);border-radius:99px}
.login-footer{text-align:center;margin-top:24px;color:var(--muted);font-size:14px;line-height:1.45;position:relative;z-index:6}
.login-footer span{display:block;width:28px;height:4px;background:var(--accent-soft);border-radius:99px;margin:7px auto 0}
@media(max-width:1050px){
  .login-shell{padding:30px 28px}
  .login-brand img{width:min(390px,38vw)}
  .login-layout{grid-template-columns:1fr minmax(440px,560px);gap:28px}
  .login-features{display:none}
  .login-message{justify-self:center}
}
@media(max-width:700px){
  .login-shell{padding:22px 16px 26px;justify-content:flex-start}
  .login-brand{margin-bottom:10px}
  .login-brand img{width:min(390px,92vw);max-height:125px}
  .login-layout{display:block}
  .loginbox{padding:30px 22px 24px;border-radius:16px}
  .loginbox h1{font-size:28px}
  .login-subtitle{font-size:16px}
  .login-tagline{font-size:14px;gap:10px}
  .login-tagline span{width:45px}
  .login-message{display:none}
  .login-curve-blue{height:145px;bottom:-90px}
  .login-curve-orange{bottom:68px}
  .login-curve-light{bottom:56px}
  .login-footer{margin-top:20px}
}

/* V42 - ajuste definitivo del login: escala y proporciones del mockup aprobado */
.login-page{
  width:100%;
  height:100vh;
  min-height:620px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--surface) 0%,var(--surface) 48%,var(--surface) 100%);
}
.login-shell{
  width:min(1664px,100%);
  height:100vh;
  min-height:620px;
  margin:0 auto;
  padding:48px 0 18px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.login-brand{
  height:180px;
  margin:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  line-height:0;
  position:relative;
  z-index:6;
}
.login-brand img{
  width:470px;
  max-width:470px;
  height:auto;
  max-height:166px;
  object-fit:contain;
  display:block;
}
.login-layout{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:330px 625px 330px;
  column-gap:100px;
  align-items:center;
  width:1485px;
  max-width:100%;
  margin:0 auto;
  position:relative;
  z-index:5;
}
.login-features{
  display:flex;
  flex-direction:column;
  gap:27px;
  padding:0;
  align-self:center;
}
.login-feature{gap:17px;min-height:58px}
.feature-icon{width:58px;height:58px;flex:0 0 58px}
.login-feature strong{font-size:17px}
.login-feature small{font-size:16px}
.loginbox{
  width:625px;
  min-height:470px;
  padding:38px 48px 28px;
  margin:0;
  border-radius:19px;
  background:rgba(var(--surface-rgb), 0.97);
  border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(var(--shadow-rgb), 0.14);
  position:relative;
  z-index:6;
}
.loginbox h1{font-size:32px;line-height:1.15;margin:0 0 6px;color:var(--ink)}
.login-subtitle{font-size:18px;line-height:1.4;margin:0 0 27px;color:var(--muted)}
.login-field{position:relative;display:block;width:100%;height:58px;margin:0 0 16px;padding:0}
.login-field input{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:58px;
  margin:0;
  padding:0 56px 0 58px;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:var(--surface);
  color:var(--ink);
  font-size:17px;
  line-height:58px;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
}
/* Evita que la regla legacy .loginbox button { width:100% } deforme el botón del ojo. */
.loginbox .password-toggle{
  position:absolute;
  z-index:4;
  right:9px;
  top:8px;
  width:42px !important;
  min-width:42px;
  max-width:42px;
  height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  background:transparent !important;
  color:var(--muted);
  border-radius:8px;
  cursor:pointer;
  box-shadow:none;
}
.loginbox .password-toggle:hover{background:var(--info-soft) !important;color:var(--brand)}
.loginbox .password-toggle svg{width:22px;height:22px}
.login-submit{
  width:100%;
  height:58px;
  margin:12px 0 0;
  border:0;
  border-radius:10px;
  font-size:18px;
  font-weight:700;
  color:var(--on-brand);
  background:var(--brand);
  box-shadow:0 8px 18px rgba(var(--shadow-rgb), 0.2);
}
.login-submit:hover{background:var(--brand-dark)}
.login-tagline{margin-top:27px;font-size:16px;gap:18px}
.login-message{font-size:30px;line-height:1.08;padding:0 0 0 8px;align-self:center}
.login-message strong{font-size:43px;line-height:1.02}
.login-message i{width:49px;height:8px;margin-top:14px}
.login-bg-mark{
  right:-35px;
  top:132px;
  font-size:280px;
  letter-spacing:-34px;
}
.login-curve-blue{width:124%;height:205px;left:-11%;bottom:-128px}
.login-curve-orange{width:73%;height:15px;right:-4%;bottom:103px}
.login-curve-light{width:85%;height:15px;right:-3%;bottom:88px}
.login-footer{margin-top:23px;font-size:14px;line-height:1.45}

@media(max-width:1550px){
  .login-shell{padding-left:28px;padding-right:28px}
  .login-layout{grid-template-columns:minmax(270px,1fr) 625px minmax(270px,1fr);width:100%;column-gap:70px}
}
@media(max-width:1200px){
  .login-shell{padding:32px 28px 18px}
  .login-brand{height:145px}
  .login-brand img{width:410px;max-width:410px;max-height:145px}
  .login-layout{grid-template-columns:1fr 560px;column-gap:38px}
  .login-features{display:none}
  .loginbox{width:560px}
}
@media(max-width:700px){
  .login-page{height:auto;min-height:100vh;overflow:auto}
  .login-shell{height:auto;min-height:100vh;padding:24px 16px 28px}
  .login-brand{height:125px;margin-bottom:4px}
  .login-brand img{width:min(390px,92vw);max-width:390px;max-height:125px}
  .login-layout{display:block;width:100%;}
  .loginbox{width:100%;min-height:0;padding:30px 22px 24px;border-radius:16px}
  .loginbox h1{font-size:28px}
  .login-subtitle{font-size:16px}
  .login-message{display:none}
  .login-tagline{font-size:14px;gap:10px}
  .login-tagline span{width:45px}
  .login-footer{margin-top:20px}
  .login-curve-blue{height:145px;bottom:-90px}
  .login-curve-orange{bottom:68px}
  .login-curve-light{bottom:56px}
}


/* V44 - composición del login ajustada a la proporción del diseño aprobado */
@media (min-width: 701px){
  .login-page{
    min-height:100vh;
    height:100vh;
    overflow:hidden;
  }
  .login-shell{
    width:1664px;
    max-width:none;
    height:936px;
    min-height:936px;
    padding:48px 56px 0;
    position:absolute;
    left:50%;
    top:0;
    margin:0;
    transform:translateX(-50%) scale(clamp(.78, calc(100vh / 936), 1));
    transform-origin:top center;
  }
  .login-brand{height:180px;margin:0}
  .login-brand img{width:470px;max-width:470px;max-height:166px}
  .login-layout{
    width:1485px;
    max-width:none;
    grid-template-columns:330px 625px 330px;
    column-gap:100px;
    margin:0 auto;
  }
  .loginbox{width:625px;min-height:470px;padding:38px 48px 28px}
  .login-footer{
    position:absolute;
    left:50%;
    bottom:76px;
    transform:translateX(-50%);
    width:420px;
    margin:0;
    color:var(--muted);
    z-index:20;
  }
  .login-curve-blue{z-index:2;width:124%;height:205px;left:-11%;bottom:-128px}
  .login-curve-orange{z-index:3;width:73%;height:15px;right:-4%;bottom:103px}
  .login-curve-light{z-index:3;width:85%;height:15px;right:-3%;bottom:88px}
}

@media (max-width:700px){
  .login-footer{position:relative;transform:none;left:auto;bottom:auto}
}

/* V46 - corrección definitiva de composición: sin escalado ni posicionamiento absoluto */
@media (min-width:701px){
  .login-page{width:100%;height:100vh;min-height:620px;overflow:hidden;position:relative;}
  .login-shell{
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    transform-origin:initial;
    width:100%;
    max-width:1664px;
    height:100vh;
    min-height:620px;
    margin:0 auto;
    padding:28px 56px 0;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
  .login-brand{height:155px;margin:0 0 8px;display:flex;align-items:flex-start;justify-content:center;}
  .login-brand img{width:380px;max-width:380px;max-height:145px;height:auto;object-fit:contain;}
  .login-layout{
    width:100%;
    max-width:1480px;
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(250px,1fr) minmax(500px,625px) minmax(250px,1fr);
    column-gap:54px;
    align-items:center;
  }
  .login-features{gap:24px;padding-left:0;}
  .login-feature{gap:14px;min-height:58px;}
  .feature-icon{width:56px;height:56px;flex-basis:56px;}
  .loginbox{width:625px;min-height:0;padding:34px 48px 26px;}
  .loginbox h1{font-size:30px;}
  .login-subtitle{font-size:17px;margin-bottom:25px;}
  .login-field{height:56px;margin-bottom:15px;}
  .login-field input{height:56px;line-height:56px;font-size:16px;}
  .login-submit{height:56px;font-size:17px;margin-top:11px;}
  .login-tagline{margin-top:24px;font-size:15px;gap:16px;}
  .login-message{font-size:28px;padding-left:0;}
  .login-message strong{font-size:40px;}
  .login-footer{
    position:absolute;
    left:50%;
    bottom:58px;
    transform:translateX(-50%);
    width:360px;
    margin:0;
    font-size:13px;
    line-height:1.4;
    z-index:6;
  }
}
@media (min-width:701px) and (max-height:820px){
  .login-shell{padding-top:18px;}
  .login-brand{height:135px;margin-bottom:4px;}
  .login-brand img{width:340px;max-width:340px;max-height:125px;}
  .login-layout{column-gap:48px;}
  .login-features{gap:18px;}
  .loginbox{padding-top:28px;padding-bottom:22px;}
  .loginbox h1{font-size:28px;}
  .login-subtitle{font-size:16px;margin-bottom:21px;}
  .login-field,.login-field input{height:52px;}
  .login-field input{line-height:52px;}
  .password-toggle{top:5px;}
  .login-submit{height:52px;}
  .login-tagline{margin-top:20px;font-size:14px;}
  .login-footer{bottom:42px;font-size:12px;}
}

/* V47 - ajuste final del pie del login: mantener el texto sobre una zona limpia y legible */
.login-curve-blue{bottom:-188px}
.login-curve-orange{bottom:72px}
.login-curve-light{bottom:58px}
.login-footer{
  z-index:10;
  margin-top:24px;
  padding:0 12px 4px;
  color:var(--ink);
  text-shadow:0 1px 0 rgba(var(--surface-rgb), 0.95);
}
.login-footer span{position:relative;z-index:2}
@media(max-width:700px){
  .login-curve-blue{bottom:-125px}
  .login-curve-orange{bottom:55px}
  .login-curve-light{bottom:43px}
  .login-footer{margin-top:20px;padding-bottom:3px}
}

/* V48 - cabecera de gestión: más limpia, moderna y usable */
header{
  background:var(--surface);
  color:var(--brand-dark);
  padding:12px 28px;
  min-height:74px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--line);
  box-shadow:0 3px 16px rgba(var(--shadow-rgb), 0.08);
}
header > div:first-child{
  flex:0 0 auto;
  min-width:285px;
  padding-left:12px;
  border-left:4px solid var(--accent);
}
header > div:first-child strong{
  display:block;
  color:var(--brand);
  font-size:16px;
  line-height:1.2;
  letter-spacing:-.1px;
}
header > div:first-child small{
  display:block;
  color:var(--muted);
  opacity:1;
  margin-top:5px;
  font-size:12px;
  line-height:1.2;
}
nav{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:5px;
  flex:1 1 auto;
  flex-wrap:nowrap;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  padding:3px 0;
}
nav::-webkit-scrollbar{display:none}
nav a{
  color:var(--brand);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  padding:9px 10px;
  border-radius:8px;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
nav a:hover{
  color:var(--brand);
  background:var(--info-soft);
}
nav a:last-child{
  color:var(--accent-text);
  background:var(--accent-soft);
  margin-left:4px;
}
nav a:last-child:hover{background:var(--accent-soft);color:var(--accent-text)}
@media(max-width:1050px){
  header{padding:10px 18px;gap:14px}
  header > div:first-child{min-width:245px}
  nav a{font-size:12px;padding:8px 8px}
}
@media(max-width:700px){
  header{align-items:stretch;flex-direction:column;padding:11px 14px;gap:8px}
  header > div:first-child{min-width:0}
  nav{justify-content:flex-start;width:100%}
}


/* V49 - evitar que el menú oculte el comienzo de sus enlaces al desbordar */
header > div:first-child{flex:0 1 300px;min-width:250px}
header nav{flex:1 1 0;min-width:0;justify-content:flex-start;overflow-x:auto}
header nav a{flex:0 0 auto}
@media(max-width:1050px){header > div:first-child{flex:0 1 250px;min-width:220px}}
@media(max-width:700px){header > div:first-child{flex:0 0 auto;min-width:0;width:100%}}

/* V52: aligned DNI lookup action */
.search-action{display:flex;align-items:flex-end;padding-bottom:0;}
.search-action .searchbtn{margin:0;height:52px;white-space:nowrap;}


/* V53 - búsqueda de DNI independiente de la validación de la atención */
.search-action{display:flex;align-items:flex-end;flex:0 0 auto;min-width:140px}
.search-action .searchbtn{margin:0 0 12px 0;height:46px;white-space:nowrap}
@media(max-width:700px){.search-action{min-width:100%;}.search-action .searchbtn{width:100%;margin:0 0 4px 0}}

/* V54 - datos personales solo de consulta y mejor jerarquía de gestiones */
.contact-readonly{margin-top:8px;margin-bottom:8px}
.readonly-field{flex:1;min-width:180px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.readonly-field span{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:4px}
.readonly-field strong{display:block;font-size:16px;color:var(--ink);font-weight:600;min-height:20px}
#rows{margin-top:10px}
#rows .gcard{box-shadow:0 3px 12px rgba(var(--shadow-rgb), 0.07);border-color:var(--line)}

/* V64: formularios específicos de tareas internas */
.task-specific{display:none;margin-top:18px;padding:4px 0}
.check-fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0 0;background:var(--surface)}
.check-fieldset legend{padding:0 8px;font-weight:700;color:var(--ink)}
.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.check-item{display:flex!important;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}
.check-item input{width:auto!important;margin:0}
.check-item span{font-weight:500}
.conditional-field{display:none;margin-top:14px;padding:14px;border-radius:10px;background:var(--surface)}
.task-common{margin:18px 0}
@media (max-width:900px){.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.check-grid{grid-template-columns:1fr}}

/* V65 - botón de consulta de Seguimiento de gestiones: tamaño proporcional al formulario */
.followup-filters > button{
  flex:0 0 150px;
  width:150px;
  align-self:flex-end;
  margin:12px 0 0 0;
  white-space:nowrap;
}
@media(max-width:700px){
  .followup-filters > button{
    flex:1 1 100%;
    width:100%;
    margin-top:4px;
  }
}

/* V68 - Panel de control: meses en español y botón de filtro proporcionado */
.dashboard-filters{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(150px,.8fr) auto;
  gap:12px;
  align-items:end;
}
.dashboard-filters > label{min-width:0;margin:12px 0 0}
.dashboard-filter-action{display:flex;align-items:end}
.dashboard-filter-action button{margin:0;white-space:nowrap;min-width:170px}
@media(max-width:800px){
  .dashboard-filters{grid-template-columns:1fr 1fr}
  .dashboard-filter-action{grid-column:1 / -1}
  .dashboard-filter-action button{width:100%}
}
@media(max-width:500px){
  .dashboard-filters{grid-template-columns:1fr}
  .dashboard-filter-action{grid-column:auto}
}

/* V72 - Panel: vista de oficina actual por defecto y comparativo solo cuando se solicita vista global */
.dashboard-filter-action{justify-content:flex-start}
.dashboard-filter-action button{min-width:165px;padding-left:22px;padding-right:22px}
.dashboard-comparison-note{margin:0 0 10px}
@media(max-width:800px){.dashboard-filter-action button{width:100%}}

/* V74 - navegación y cierre de sesión */
header nav{gap:10px;align-items:center}
header nav a{font-size:13.5px;white-space:nowrap}
header nav a.logout-link{background:var(--surface);color:var(--brand)!important;padding:8px 12px;border-radius:9px;font-weight:700;border-color:var(--brand)}
header nav a.logout-link:hover{background:var(--brand-dark);color:var(--on-brand)!important;border-color:var(--brand)}
@media(max-width:1200px){header nav{gap:7px}header nav a{font-size:12.5px;padding:6px 5px}}

/* V91 - Cuenta: reglas funcionales de V81, sin modificar el diseño del login. */
.account-conditional-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;flex:1;min-width:0;}
.account-picker-map{height:300px;margin:12px 0 8px;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.account-geo-picker{align-items:center;}
.geo-map-actions{display:flex;justify-content:flex-end;}
.map-selection-note{margin:6px 0 10px;color:var(--muted);font-size:13px;}
@media(max-width:800px){.account-conditional-row{grid-template-columns:1fr}.account-picker-map{height:260px}}

/* V102 - navegación compacta con menús desplegables */
header{position:sticky;top:0;z-index:1000}
header nav{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
header nav>a,header nav .nav-dropdown-toggle{color:var(--header-text);text-decoration:none;font-size:13px;font-weight:600;line-height:1;white-space:nowrap;border:0;background:transparent;padding:9px 10px;border-radius:8px;cursor:pointer;margin:0}
header nav>a:hover,header nav .nav-dropdown-toggle:hover,header nav .nav-dropdown.open>.nav-dropdown-toggle{background:rgba(var(--surface-rgb), 0.13)}
.nav-dropdown{position:relative;display:inline-flex;align-items:center}
.nav-dropdown-toggle{display:inline-flex!important;align-items:center;gap:6px}
.nav-icon{font-size:14px;opacity:.9}
.nav-chevron{font-size:10px;opacity:.8;transition:transform .15s ease}
.nav-dropdown:hover .nav-chevron,.nav-dropdown.open .nav-chevron{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;right:0;top:calc(100% + 7px);min-width:205px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 32px rgba(var(--shadow-rgb), 0.18);display:none;z-index:1001}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:flex;flex-direction:column}
.nav-dropdown-menu a{display:block!important;color:var(--ink)!important;text-decoration:none!important;padding:9px 11px!important;border-radius:7px;font-size:13px!important;white-space:nowrap}
.nav-dropdown-menu a:hover{background:var(--info-soft);color:var(--brand)!important}
header nav>a.logout-link{background:var(--surface);padding:9px 12px;color:var(--brand);border-color:var(--brand)}
header nav>a.logout-link:hover{background:var(--brand-dark);color:var(--on-brand);border-color:var(--brand)}
@media(max-width:1100px){
  header{padding:14px 18px}
  header nav{gap:3px}
  header nav>a,header nav .nav-dropdown-toggle{font-size:12px;padding:8px 7px}
  .nav-dropdown-menu{min-width:190px}
}
@media(max-width:850px){
  header{align-items:flex-start;flex-direction:column}
  header nav{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .nav-dropdown-menu{left:0;right:auto}
}

/* V103 - rediseño integral de la página de inicio y navegación */
body.home-page{background:var(--surface);color:var(--ink)}
body.home-page header{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 5px 22px rgba(var(--shadow-rgb), 0.08);padding:12px 26px 10px;gap:20px}
body.home-page header > div:first-child{border-left:4px solid var(--accent);padding-left:13px;min-width:280px}
body.home-page header > div:first-child strong{font-size:17px;color:var(--brand)}
body.home-page header > div:first-child small{color:var(--muted)}
body.home-page header nav{background:var(--brand);border-radius:12px;padding:5px;gap:3px;overflow:visible;justify-content:flex-start}
body.home-page header nav>a,body.home-page header nav .nav-dropdown-toggle{color:var(--header-text)!important;background:transparent;font-size:12.5px;padding:9px 10px;border-radius:8px}
body.home-page header nav>a:hover,body.home-page header nav .nav-dropdown-toggle:hover,body.home-page header nav .nav-dropdown.open>.nav-dropdown-toggle{background:rgba(var(--surface-rgb), 0.15);color:var(--header-text)!important}
body.home-page header nav>a.logout-link{background:var(--surface);margin-left:3px;color:var(--brand)!important;border-color:var(--brand)}
body.home-page .nav-dropdown-menu{top:calc(100% + 5px);right:0}
.home-main{max-width:1280px;margin:0 auto;padding:28px 28px 0}
.home-hero{position:relative;min-height:205px;border-radius:22px;overflow:hidden;background:linear-gradient(120deg,var(--header-bg) 0%,var(--header-bg) 58%,var(--header-bg) 100%);color:var(--on-brand);padding:34px 42px;display:flex;align-items:center;box-shadow:0 12px 30px rgba(var(--shadow-rgb), 0.18)}
.home-hero:after{content:"";position:absolute;right:-120px;bottom:-150px;width:520px;height:360px;border:1px solid rgba(var(--surface-rgb), 0.17);border-radius:50%;box-shadow:0 -35px 0 -34px rgba(var(--surface-rgb), 0.12),0 -72px 0 -71px rgba(var(--surface-rgb), 0.1)}
.hero-copy{position:relative;z-index:2;max-width:760px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;opacity:.9;display:flex;align-items:center;gap:8px}.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.hero-copy h1{margin:8px 0 8px;color:var(--header-text);font-size:34px;line-height:1.1}.hero-copy p{margin:0;max-width:650px;font-size:16px;line-height:1.55;color:var(--header-text)}.hero-meta{margin-top:17px;display:flex;gap:9px;align-items:center;font-size:12px;color:var(--header-text)}.hero-water{position:absolute;right:70px;top:26px;width:210px;height:150px;opacity:.17}.water-ring{position:absolute;width:145px;height:145px;border:2px solid var(--line);border-radius:50%;right:20px;top:-10px}.water-drop{position:absolute;right:78px;top:35px;font-size:80px;color:var(--on-brand);transform:rotate(180deg)}
.home-search{margin:20px 0 0;padding:20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(var(--shadow-rgb), 0.07);display:flex;align-items:center;gap:28px}.search-intro{display:flex;align-items:center;gap:13px;min-width:390px}.search-icon{width:42px;height:42px;border-radius:12px;background:var(--surface);color:var(--brand);display:grid;place-items:center;font-size:25px;font-weight:700}.search-intro h2{font-size:17px;margin:0;color:var(--ink)}.search-intro p{margin:3px 0 0;color:var(--muted);font-size:12px}.home-search .global-search{flex:1;margin:0}.home-search .global-search label{margin:0}.home-search input{height:45px;margin-top:5px}.home-search button{height:45px;margin:0;min-width:100px}
.home-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 6px 18px rgba(var(--shadow-rgb), 0.05)}.stat-icon{width:43px;height:43px;flex:0 0 43px;border-radius:12px;background:var(--surface);color:var(--brand);display:grid;place-items:center;font-size:16px;font-weight:800}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;color:var(--ink);font-size:25px;line-height:1.15;margin:2px 0}.stat-money .stat-icon{background:var(--accent-soft);color:var(--accent-text)}.stat-money strong{font-size:20px}
.home-section{margin:26px 0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:13px}.section-kicker{font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--brand);margin-bottom:4px}.section-head h2{margin:0;color:var(--ink);font-size:22px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.outline-button{background:var(--surface)!important;color:var(--brand)!important;border:1px solid var(--line);padding:9px 14px;margin:0;border-color:var(--brand)}.month-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.month-grid>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 17px;position:relative;overflow:hidden}.month-grid span{display:block;color:var(--muted);font-size:12px}.month-grid b{display:block;color:var(--ink);font-size:26px;margin-top:5px}.month-grid i{display:block;width:32px;height:3px;background:var(--accent);border-radius:3px;margin-top:12px}
.operations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.operation-card{min-height:92px;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:15px 16px;display:grid;grid-template-columns:42px 1fr 18px;gap:13px;align-items:center;text-decoration:none;color:var(--ink);transition:transform .16s,box-shadow .16s,border-color .16s}.operation-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(var(--shadow-rgb), 0.1);border-color:var(--line)}.operation-card.primary{border-color:var(--line);background:linear-gradient(135deg,var(--surface),var(--surface))}.operation-icon{width:42px;height:42px;border-radius:12px;background:var(--surface);color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:800}.operation-card.primary .operation-icon{background:var(--brand);color:var(--on-brand)}.operation-card b{display:block;font-size:14px;color:var(--ink)}.operation-card small{display:block;color:var(--muted);font-size:11.5px;line-height:1.35;margin-top:3px}.operation-arrow{color:var(--muted);font-size:19px;text-align:right}.home-footer{position:relative;margin:42px -28px 0;min-height:120px;background:var(--header-bg);color:var(--header-text);display:flex;justify-content:center;align-items:flex-end;padding:42px 20px 24px;text-align:center;overflow:hidden}.home-footer:before{content:"";position:absolute;left:-5%;right:-5%;top:-55px;height:105px;background:var(--surface);border-radius:50% 50% 0 0/100% 100% 0 0}.home-footer:after{content:"";position:absolute;left:-5%;right:-5%;top:-41px;height:75px;border-top:4px solid var(--accent);border-radius:50% 50% 0 0/100% 100% 0 0}.home-footer>div:not(.footer-wave){position:relative;z-index:2}.home-footer strong,.home-footer span{display:block;font-size:12px}.home-footer>div strong{font-size:13px}.footer-accent{position:absolute!important;bottom:12px;width:38px;height:4px;background:var(--accent);border-radius:4px}
@media(max-width:1100px){.home-search{align-items:stretch;flex-direction:column;gap:12px}.search-intro{min-width:0}.home-stats{grid-template-columns:repeat(2,1fr)}.month-grid{grid-template-columns:repeat(3,1fr)}.operations-grid{grid-template-columns:repeat(2,1fr)}.hero-water{right:10px;opacity:.1}}
@media(max-width:850px){body.home-page header nav{overflow-x:auto}.home-main{padding:18px 16px 0}.home-hero{padding:28px 24px}.hero-copy h1{font-size:29px}.month-grid{grid-template-columns:repeat(2,1fr)}.operations-grid{grid-template-columns:1fr}.home-footer{margin-left:-16px;margin-right:-16px}}
@media(max-width:600px){.home-hero{min-height:220px}.home-stats{grid-template-columns:1fr}.month-grid{grid-template-columns:1fr}.search-intro{align-items:flex-start}.home-search .global-search{flex-direction:column}.home-search .global-search button{width:100%}.home-footer{min-height:105px}}

/* V104 — sistema visual integral para módulos internos */

html{background:var(--bg)}
body{font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%);min-height:100vh}
header{
  position:sticky;top:0;z-index:50;
  padding:0;
  display:flex;flex-direction:column;align-items:stretch;gap:0;
  background:var(--surface);color:var(--brand-dark);
  border-bottom:1px solid var(--line);
  box-shadow:0 6px 22px rgba(var(--shadow-rgb), 0.08)
}
header>div:first-child{padding:15px 28px 13px;display:flex;align-items:center;gap:14px;position:relative}
header>div:first-child:before{content:"";width:5px;height:38px;background:var(--accent);border-radius:5px;display:block;flex:0 0 auto}
header strong{font-size:18px;color:var(--brand);letter-spacing:-.2px}
header small{color:var(--muted);opacity:1!important;font-size:13px;margin-top:3px}
header nav{min-height:48px;padding:0 24px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:linear-gradient(90deg,var(--header-bg) 0%,var(--header-bg) 55%,var(--header-bg) 100%)}
header nav>a, header nav .nav-dropdown-toggle{color:var(--header-text)!important;text-decoration:none;font-size:14px;font-weight:650;padding:10px 13px;border-radius:8px;border:0;background:transparent;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
header nav>a:hover, header nav .nav-dropdown-toggle:hover, header nav .nav-dropdown.open .nav-dropdown-toggle{background:rgba(var(--surface-rgb), 0.14)}
header nav>a:first-child{background:rgba(var(--surface-rgb), 0.12)}
.nav-dropdown{position:relative;display:inline-flex;align-items:center}
.nav-dropdown-toggle .nav-icon{font-size:15px;opacity:.9}.nav-chevron{font-size:11px;opacity:.75;margin-left:1px}
.nav-dropdown-menu{position:absolute;left:0;top:calc(100% + 5px);min-width:220px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 34px rgba(var(--shadow-rgb), 0.18);display:none;z-index:100}
.nav-dropdown-menu a{display:block;color:var(--ink)!important;background:var(--surface)!important;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:550;text-decoration:none;white-space:nowrap}
.nav-dropdown-menu a:hover{background:var(--info-soft)!important;color:var(--brand)!important}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:block}
header nav>a.logout-link{margin-left:auto;background:var(--surface)!important;color:var(--brand)!important;font-weight:750;border-color:var(--brand)}
header nav>a.logout-link:hover{background:var(--brand-dark)!important;color:var(--on-brand);border-color:var(--brand)}
main{max-width:1280px;margin:30px auto 0;padding:0 24px}
.page-heading{margin-bottom:22px;padding:4px 2px 0}.page-heading h1{font-size:30px;letter-spacing:-.5px;margin:0 0 6px;color:var(--brand-dark)}
.page-heading p{margin:0;color:var(--muted)}
h1,h2,h3{color:var(--brand-dark)}
h2{font-size:21px}
.panel,.card,.action,.gcard{background:rgba(var(--surface-rgb), 0.96);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(var(--shadow-rgb), 0.08)}
.panel{padding:24px;margin-top:18px;position:relative;overflow:hidden}.panel:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent),var(--brand));opacity:.9}
.card{padding:20px}.card:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(var(--shadow-rgb), 0.11)}
.cards{gap:18px}.cards .card b{color:var(--brand);font-size:28px}.card span,.card small{color:var(--muted)}
.quick-grid{gap:16px}.action{padding:20px;transition:.18s ease;border-top:3px solid var(--brand)}.action:hover{transform:translateY(-2px);border-color:var(--line);box-shadow:0 12px 30px rgba(var(--shadow-rgb), 0.12)}.action b{color:var(--brand-dark);font-size:16px}.action span{color:var(--muted)}
input,select,textarea{border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);padding:11px 12px;box-shadow:0 1px 2px rgba(var(--shadow-rgb), 0.03)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--shadow-rgb), 0.11)}
label{color:var(--muted);font-size:14px}button,.button{background:var(--brand);border-radius:9px;font-weight:650;box-shadow:0 5px 12px rgba(var(--shadow-rgb), 0.13)}button:hover,.button:hover{background:var(--brand-dark)}.secondary{background:var(--surface)!important;color:var(--brand);border-color:var(--brand)}.secondary:hover{background:var(--brand-dark)!important;color:var(--on-brand);border-color:var(--brand)}
.tabs{gap:7px}.tab{border-color:var(--line);background:var(--surface);color:var(--brand-dark);font-weight:600}.tab:hover{border-color:var(--line);background:var(--info-soft)}
.tab.active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
table{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}th{background:var(--surface);color:var(--brand-dark);font-weight:750;border-bottom:1px solid var(--line)}td{color:var(--ink);border-bottom:1px solid var(--line)}tr:hover td{background:var(--surface)}
.notice{background:var(--info-soft);color:var(--muted);border-left:4px solid var(--brand)}.success{background:var(--success-soft);border-left:4px solid var(--line)}.error{background:var(--danger-soft);border-left:4px solid var(--line)}
.badge{background:var(--info-soft);color:var(--brand-dark)}
.account-details>div,.person-details>div{background:var(--surface);border-color:var(--line)}
.gcard{padding:18px}.gcard:hover{border-color:var(--line)}
.timeline-list:before{background:var(--info-soft)}.timeline-content{background:var(--surface);border-color:var(--line)}
.filter-panel{background:var(--surface);border:1px solid var(--line)}
.search{gap:12px}.search input{min-height:44px}.search button{min-height:44px}
.welcome-banner{border-left:5px solid var(--accent);background:linear-gradient(90deg,var(--surface),var(--surface));border-radius:14px;box-shadow:0 8px 25px rgba(var(--shadow-rgb), 0.07)}

/* Pie institucional animado */
.site-footer{max-width:1280px;margin:52px auto 24px;padding:0 24px}
.site-footer-inner{background:var(--surface);border:1px solid var(--line);border-radius:18px 18px 0 0;overflow:hidden;box-shadow:0 -4px 22px rgba(var(--shadow-rgb), 0.06)}
.site-footer-gif{display:block;width:min(620px,82%);height:auto;margin:0 auto;padding:12px 0 4px}
.site-footer-band{background:linear-gradient(135deg,var(--header-bg),var(--header-bg));color:var(--header-text);text-align:center;padding:15px 20px 17px;border-top:4px solid var(--accent)}
.site-footer-band strong{font-size:14px}.site-footer-band small{display:block;margin-top:4px;opacity:.86;font-size:12px}
.site-footer-mark{width:28px;height:4px;border-radius:99px;background:var(--accent);margin:8px auto 0}

/* Formularios y bloques de datos */
form.panel>h2, .panel>.section-title h2{margin-top:4px}.row-actions{gap:8px}.button.small{box-shadow:none}
.ghead{color:var(--brand-dark)}
.map-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center}.account-map{border:1px solid var(--line);border-radius:14px;overflow:hidden}

@media(max-width:900px){header nav{padding:7px 12px}header nav>a,header nav .nav-dropdown-toggle{font-size:13px;padding:9px 10px}.nav-dropdown-menu{position:fixed;left:12px;right:12px;top:106px;min-width:0}.cards{grid-template-columns:repeat(2,1fr)}main{padding:0 16px}.site-footer{padding:0 16px}.map-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){header>div:first-child{padding:13px 16px}header nav{gap:2px}.cards{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.panel{padding:18px}.page-heading h1{font-size:25px}header nav>a.logout-link{margin-left:0}.site-footer{margin-top:35px}}

/* V105 — interfaz institucional minimalista y navegación estable */

body{background:var(--surface);color:var(--ink)}
header{position:sticky;top:0;z-index:1000;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 3px 14px rgba(var(--shadow-rgb), 0.07)}
.site-header-main{min-height:70px;padding:10px 28px;display:flex!important;align-items:center;gap:18px!important}
.site-brand{display:flex;align-items:center;flex:0 0 auto;text-decoration:none}
.site-brand img{display:block;width:178px;height:auto;max-height:52px;object-fit:contain;object-position:left center}
.site-context{border-left:1px solid var(--line);padding-left:18px;min-width:0}
.site-context strong{display:block;color:var(--brand-dark);font-size:17px;line-height:1.2}
.site-context small{display:block;color:var(--muted)!important;font-size:12.5px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site-user{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;color:var(--brand-dark)}
.site-user span{font-weight:700;font-size:13px}.site-user small{color:var(--muted);font-size:11px;margin-top:3px}
header nav{min-height:46px!important;padding:0 24px!important;display:flex!important;align-items:center!important;gap:3px!important;flex-wrap:nowrap!important;background:var(--header-bg)!important;border-top:1px solid rgba(var(--surface-rgb), 0.08)}
header nav>a,header nav .nav-dropdown-toggle{color:var(--header-text)!important;font-size:13px!important;font-weight:650!important;padding:9px 11px!important;border-radius:7px!important;background:transparent!important;box-shadow:none!important}
header nav>a:hover,header nav .nav-dropdown-toggle:hover,header nav .nav-dropdown.open .nav-dropdown-toggle{background:rgba(var(--surface-rgb), 0.12)!important}
.nav-dropdown{position:relative;display:inline-flex;align-items:center;height:46px}
.nav-dropdown-menu{position:absolute!important;left:0!important;right:auto!important;top:44px!important;min-width:220px;padding:7px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 12px 28px rgba(var(--shadow-rgb), 0.15)!important;display:none!important;z-index:1100!important}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:flex!important;flex-direction:column!important}
.nav-dropdown-menu a{color:var(--brand)!important;background:var(--surface)!important;padding:9px 11px!important;border-radius:7px!important;font-size:13px!important;font-weight:550!important}
.nav-dropdown-menu a:hover{background:var(--info-soft)!important;color:var(--brand)!important}
header nav>a.logout-link{margin-left:auto!important;background:var(--surface)!important;color:var(--brand)!important;padding:9px 13px!important;border-color:var(--brand)}
header nav>a.logout-link:hover{background:var(--brand-dark)!important;color:var(--on-brand);border-color:var(--brand)}

/* Inicio: menos elementos decorativos y más aire visual */
body.home-page main.home-main{max-width:1240px;margin:28px auto 0;padding:0 24px}
.home-hero{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:18px!important;box-shadow:0 5px 18px rgba(var(--shadow-rgb), 0.06)!important;min-height:178px!important;padding:30px 34px!important;position:relative!important;overflow:hidden!important}
.home-hero:after{content:"";position:absolute;right:-90px;top:-120px;width:390px;height:390px;border:1px solid var(--line);border-radius:50%;opacity:.8}
.hero-copy{position:relative;z-index:2;max-width:820px}.eyebrow{color:var(--muted)!important;font-size:11px!important;letter-spacing:1.4px!important}.eyebrow-dot{background:var(--accent)!important}
.hero-copy h1{font-size:31px!important;color:var(--brand-dark)!important;margin:10px 0 7px!important}.hero-copy p{font-size:15px!important;color:var(--muted)!important;max-width:760px}.hero-meta{color:var(--muted)!important}
.hero-water{position:absolute!important;right:45px!important;top:35px!important;width:180px!important;height:120px!important;opacity:.55!important}.water-ring{width:112px!important;height:112px!important;border:1px solid var(--line)!important;border-radius:50%!important;position:absolute;right:0;top:0}.water-drop{display:none!important}
.home-search.panel{background:var(--surface)!important;border-radius:15px!important;box-shadow:0 4px 16px rgba(var(--shadow-rgb), 0.045)!important;padding:18px 20px!important}.home-search .search-intro h2{font-size:18px!important}.home-search .search-intro p{font-size:12.5px!important}.search-icon{background:var(--surface)!important;color:var(--brand)!important}
.home-stats{gap:12px!important}.stat-card{background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:none!important;border-radius:13px!important;padding:16px!important}.stat-card .stat-icon{background:var(--surface)!important;color:var(--brand)!important}
.home-section{margin-top:28px!important}.section-kicker{color:var(--muted)!important;font-size:10px!important;letter-spacing:1.3px!important}.section-head h2{font-size:21px!important}.section-head p{color:var(--muted)!important}
.month-grid{gap:10px!important}.month-grid>div{background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:none!important;border-radius:12px!important}
.operations-grid{grid-template-columns:repeat(4,1fr)!important;gap:10px!important}.operation-card{min-height:84px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:none!important;padding:13px 14px!important}.operation-card:hover{transform:translateY(-1px)!important;box-shadow:0 7px 18px rgba(var(--shadow-rgb), 0.08)!important}.operation-card.primary{border-color:var(--line)!important;background:var(--surface)!important}.operation-icon{width:38px!important;height:38px!important;border-radius:10px!important;background:var(--surface)!important;color:var(--brand)!important}.operation-card.primary .operation-icon{background:var(--brand)!important;color:var(--on-brand)!important}

/* Pie sin GIF: institucional, liviano y nítido */
.site-footer{max-width:1240px!important;margin:46px auto 24px!important;padding:0 24px!important}
.site-footer-inner{display:none!important}.site-footer{position:relative;overflow:hidden;border-radius:18px;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 16px rgba(var(--shadow-rgb), 0.05);min-height:116px}
.footer-water{position:absolute;left:-5%;right:-5%;top:-48px;height:105px;overflow:hidden}
.footer-water span{position:absolute;left:-5%;width:110%;height:80px;border-radius:50%;border-top:3px solid var(--brand);transform:rotate(-2deg)}
.footer-water span:first-child{top:28px;border-top-color:var(--accent);border-top-width:3px}.footer-water span:last-child{top:38px;border-top-color:var(--brand);border-top-width:18px;opacity:.95}
.site-footer-content{position:relative;z-index:2;min-height:116px;display:flex;align-items:flex-end;justify-content:center;gap:14px;padding:48px 20px 17px;text-align:left;color:var(--header-text)}
.site-footer-content:before{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:72px;background:var(--header-bg)}
.footer-logo{width:86px;height:auto;filter:brightness(0) invert(1);opacity:.95}.site-footer-content strong{display:block;font-size:13px}.site-footer-content small{display:block;font-size:11.5px;margin-top:3px;opacity:.85}

@media(max-width:900px){.site-header-main{padding:9px 16px}.site-brand img{width:150px}.site-context{padding-left:12px}.site-user{display:none}header nav{overflow-x:auto!important}.nav-dropdown-menu{position:fixed!important;top:116px!important;left:12px!important;right:12px!important}.operations-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:600px){.site-brand img{width:130px}.site-context strong{font-size:15px}.site-context small{font-size:11px}.home-hero{padding:24px 22px!important}.hero-copy h1{font-size:26px!important}.hero-water{display:none}.operations-grid{grid-template-columns:1fr!important}.site-footer{margin-left:16px!important;margin-right:16px!important}}

/* V106 — cabecera rediseñada: compacta, limpia y estable */
body.home-page header,
header{
  position:sticky!important;
  top:0!important;
  z-index:2000!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:0!important;
  width:100%!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:0 4px 18px rgba(var(--shadow-rgb), 0.07)!important;
}
header>.site-header-main,
body.home-page header>.site-header-main{
  width:100%!important;
  height:82px!important;
  min-height:82px!important;
  padding:10px 38px!important;
  margin:0!important;
  display:flex!important;
  flex:0 0 82px!important;
  align-items:center!important;
  gap:0!important;
  background:var(--surface)!important;
  border:0!important;
}
header>.site-header-main:before,
body.home-page header>.site-header-main:before{display:none!important}
.site-brand{height:60px!important;display:flex!important;align-items:center!important;flex:0 0 auto!important;padding:0!important;border:0!important}
.site-brand img{display:block!important;width:205px!important;height:auto!important;max-height:58px!important;object-fit:contain!important;object-position:left center!important}
.site-context{height:48px!important;margin-left:26px!important;padding:0 0 0 26px!important;border-left:1px solid var(--line)!important;display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important}
.site-context strong{display:block!important;margin:0!important;color:var(--brand)!important;font-size:19px!important;font-weight:750!important;line-height:1.15!important;letter-spacing:-.2px!important}
.site-context small{display:block!important;margin:4px 0 0!important;color:var(--muted)!important;font-size:13px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.site-user{margin-left:auto!important;padding-right:24px!important;display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:center!important;color:var(--ink)!important;line-height:1.15!important}
.site-user span{font-size:14px!important;font-weight:750!important;color:var(--ink)!important}
.site-user small{font-size:12px!important;color:var(--muted)!important;margin:4px 0 0!important}
header>.site-header-main:after{content:"";height:48px;width:1px;background:var(--info-soft);display:block;order:4;margin-right:26px}
header nav,
body.home-page header nav{
  position:relative!important;
  width:100%!important;
  min-height:52px!important;
  height:52px!important;
  flex:0 0 52px!important;
  margin:0!important;
  padding:0 38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:2px!important;
  flex-wrap:nowrap!important;
  overflow:visible!important;
  background:var(--header-bg)!important;
  border:0!important;
  border-radius:0!important;
}
header nav>a,
header nav .nav-dropdown-toggle,
body.home-page header nav>a,
body.home-page header nav .nav-dropdown-toggle{
  position:relative!important;
  height:52px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 14px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--header-text)!important;
  font-size:14px!important;
  font-weight:650!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
header nav>a:hover,
header nav .nav-dropdown-toggle:hover,
header nav .nav-dropdown.open>.nav-dropdown-toggle,
body.home-page header nav>a:hover,
body.home-page header nav .nav-dropdown-toggle:hover,
body.home-page header nav .nav-dropdown.open>.nav-dropdown-toggle{background:rgba(var(--surface-rgb), 0.11)!important;color:var(--header-text)!important}
header nav>a:first-child{background:transparent!important}
header nav>a:first-child:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:4px;background:var(--accent);border-radius:4px 4px 0 0}
.nav-dropdown{position:relative!important;display:inline-flex!important;align-items:center!important;height:52px!important;margin:0!important;padding:0!important}
.nav-dropdown-toggle{gap:7px!important}
.nav-icon{font-size:16px!important;opacity:.95!important;line-height:1!important}
.nav-chevron{font-size:10px!important;opacity:.78!important;transition:transform .15s ease!important}
.nav-dropdown:hover .nav-chevron,.nav-dropdown.open .nav-chevron{transform:rotate(180deg)!important}
.nav-dropdown-menu,
body.home-page .nav-dropdown-menu{
  position:absolute!important;
  left:0!important;
  right:auto!important;
  top:52px!important;
  min-width:225px!important;
  margin:0!important;
  padding:7px!important;
  background:var(--surface)!important;
  border:1px solid var(--line)!important;
  border-radius:0 0 11px 11px!important;
  box-shadow:0 14px 30px rgba(var(--shadow-rgb), 0.17)!important;
  display:none!important;
  z-index:3000!important;
}
.nav-dropdown-menu:before{content:"";position:absolute;left:0;right:0;top:-9px;height:10px;background:transparent!important}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{display:flex!important;flex-direction:column!important}
.nav-dropdown-menu a,
body.home-page .nav-dropdown-menu a{
  width:100%!important;
  height:auto!important;
  min-height:38px!important;
  display:flex!important;
  align-items:center!important;
  padding:9px 12px!important;
  margin:0!important;
  border-radius:7px!important;
  background:var(--surface)!important;
  color:var(--brand)!important;
  font-size:13px!important;
  font-weight:550!important;
  line-height:1.2!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.nav-dropdown-menu a:hover{background:var(--info-soft)!important;color:var(--brand)!important}
header nav>a.logout-link,
body.home-page header nav>a.logout-link{
  height:38px!important;
  margin:0 0 0 auto!important;
  padding:0 18px!important;
  border-radius:9px!important;
  background:var(--surface)!important;
  color:var(--brand)!important;
  font-size:13px!important;
  font-weight:750!important;
  align-self:center!important;border-color:var(--brand)}
header nav>a.logout-link:hover{background:var(--brand-dark)!important;color:var(--on-brand);border-color:var(--brand)}
@media(max-width:1050px){
  header>.site-header-main{padding:9px 22px!important}
  .site-brand img{width:180px!important}
  .site-context{margin-left:18px!important;padding-left:18px!important}
  .site-context strong{font-size:17px!important}
  header nav{padding:0 20px!important}
  header nav>a,header nav .nav-dropdown-toggle{font-size:13px!important;padding:0 10px!important}
}
@media(max-width:800px){
  header>.site-header-main{height:70px!important;min-height:70px!important;flex-basis:70px!important;padding:8px 16px!important}
  .site-brand img{width:155px!important;max-height:48px!important}
  .site-context{margin-left:14px!important;padding-left:14px!important}
  .site-context small{max-width:260px!important}
  .site-user,header>.site-header-main:after{display:none!important}
  header nav{height:48px!important;min-height:48px!important;flex-basis:48px!important;padding:0 12px!important;overflow-x:auto!important;overflow-y:visible!important}
  header nav>a,header nav .nav-dropdown-toggle{height:48px!important;font-size:12px!important;padding:0 9px!important}
  .nav-dropdown{height:48px!important}
  .nav-dropdown-menu{top:48px!important}
}
@media(max-width:560px){
  .site-brand img{width:135px!important}
  .site-context strong{font-size:15px!important}
  .site-context small{font-size:10.5px!important;max-width:190px!important}
}

/* V109: confirmación de cuenta ya actualizada en SISA */
#accountAlreadyUpdated{accent-color:var(--accent)}

/* V115 — encabezado de Nueva atención: contexto alineado a la derecha */
.attention-page-header > .site-header-main .site-context{
  margin-left:auto!important;
  margin-right:0!important;
  padding-left:26px!important;
  text-align:right!important;
  align-items:flex-end!important;
  border-left:1px solid var(--line)!important;
}
.attention-page-header > .site-header-main .site-context strong,
.attention-page-header > .site-header-main .site-context small{
  text-align:right!important;
}
.attention-page-header > .site-header-main:after{display:none!important}
.history-group{margin-top:1.25rem;padding:1.1rem 0 0;border-top:1px solid var(--line)}.history-group:first-of-type{border-top:0;padding-top:0}.history-group h3{margin-bottom:.25rem}

/* V121 — tarjetas de acción de Administración y mantenimiento */
.action{display:block!important;width:100%!important;min-height:78px!important}

/* V121 — notificaciones visibles desde la pantalla inicial */
.home-notice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.home-notice-card{display:grid;grid-template-columns:10px 1fr 20px;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:14px 15px;text-decoration:none;color:var(--ink)}.home-notice-card:hover{border-color:var(--line);box-shadow:0 8px 20px rgba(var(--shadow-rgb), 0.08)}.home-notice-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:5px}.home-notice-card b{display:block;font-size:13px}.home-notice-card small{display:block;color:var(--muted);font-size:11.5px;line-height:1.4;margin-top:3px}.home-notice-card time{display:block;color:var(--muted);font-size:10.5px;margin-top:5px}.home-notice-card>strong{color:var(--muted);font-size:18px}@media(max-width:700px){.home-notice-grid{grid-template-columns:1fr}}

/* V127 — acceso directo a Nueva atención en el encabezado de inicio */
.hero-action{position:absolute;right:42px;top:50%;transform:translateY(-50%);z-index:4}
.hero-new-attention{background:var(--brand)!important;color:var(--on-brand)!important;border:0!important;border-radius:10px!important;padding:12px 20px!important;font-weight:800!important;box-shadow:0 7px 18px rgba(var(--shadow-rgb), 0.12)!important;white-space:nowrap}
.hero-new-attention:hover{filter:brightness(.97);transform:translateY(-1px)}
@media(max-width:850px){.hero-action{right:24px;top:auto;bottom:24px;transform:none}.hero-copy{padding-right:0}.home-hero{padding-bottom:76px!important}}
@media(max-width:600px){.hero-action{left:22px;right:auto;bottom:20px}.hero-new-attention{width:100%;text-align:center}.home-hero{padding-bottom:76px!important}}

/* V133: relaciones fijadas automáticamente cuando la persona es Titular. */
#rows select.auto-locked{background:var(--surface)!important;color:var(--muted)!important;font-weight:700;cursor:not-allowed;pointer-events:none;opacity:1}
#rows select.auto-locked option{background:var(--surface);color:var(--ink)}
#rows label:has(select.auto-locked){position:relative}
#rows label:has(select.auto-locked)::after{content:'Fijado automáticamente';display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:4px}


/* V191 — campanita de notificaciones integrada en la cabecera */
.notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 18px 0 16px;border:1px solid var(--line);border-radius:9px;text-decoration:none!important;color:var(--muted)!important;background:var(--surface);box-shadow:0 2px 7px rgba(var(--shadow-rgb), 0.08);flex:0 0 36px;align-self:center;transition:background .15s ease,box-shadow .15s ease}
.notification-bell:hover,.notification-bell.has-unread:hover{background:var(--info-soft);box-shadow:0 4px 10px rgba(var(--shadow-rgb), 0.12)}
.notification-bell-icon{display:flex;align-items:center;justify-content:center;width:19px;height:19px}
.notification-bell-icon svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-bell-count{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--on-brand);font-size:10px;font-weight:800;line-height:18px;text-align:center;border:2px solid var(--line);box-shadow:0 2px 5px rgba(var(--shadow-rgb), 0.12)}
.notification-bell-count[hidden]{display:none!important}
@media(max-width:900px){.notification-bell{width:34px;height:34px;flex-basis:34px;margin:0 10px 0 12px}.notification-bell-icon,.notification-bell-icon svg{width:18px;height:18px}.notification-bell-count{top:-6px;right:-6px}}

/* V3.17.15 · Cajones por departamento/localidad + acciones de cuentas responsive */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll table{min-width:1050px}
.table-scroll .row-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;min-width:max-content}
.table-scroll .row-actions .button{white-space:nowrap}
.drawer-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:14px}
.drawer-choice{display:flex;flex-direction:column;gap:5px;justify-content:center;min-height:66px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:0 3px 10px rgba(var(--shadow-rgb), 0.06);transition:.15s ease}
.drawer-choice:hover{border-color:var(--brand);transform:translateY(-1px)}
.drawer-choice.selected{border-color:var(--brand);box-shadow:0 0 0 2px rgba(var(--shadow-rgb), 0.12);background:var(--info-soft)}
.drawer-choice small{color:var(--muted);font-size:12px}
.drawer-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px}
.drawer-button-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px;box-shadow:0 4px 14px rgba(var(--shadow-rgb), 0.06)}
.drawer-button-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.drawer-button-head b{display:block;font-size:17px}.drawer-button-head small{display:block;color:var(--muted);margin-top:4px}.drawer-button-head>strong{font-size:28px;color:var(--brand)}
.drawer-range{margin-top:12px;padding:9px 10px;border-radius:8px;background:var(--surface);color:var(--muted);font-size:13px}
.drawer-free{min-height:20px;margin-top:8px;color:var(--muted);font-size:13px}
@media(max-width:600px){.drawer-choice-grid,.drawer-buttons{grid-template-columns:1fr}.drawer-button-card{padding:14px}}

.account-filters{align-items:flex-end}.account-filter-action{display:flex;align-items:flex-start;min-width:180px;padding-top:24px}.account-filter-action button{margin:0;align-self:flex-start;white-space:nowrap}

/* V3.17.19 — Corrección visual definitiva del selector de filtros y cajones */
.account-filters{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) minmax(280px,1fr) auto!important;
  gap:16px!important;
  align-items:end!important;
  width:100%!important;
}
.account-filters > label{
  min-width:0!important;
  margin:0!important;
}
.account-filters > label > select{
  width:100%!important;
  box-sizing:border-box!important;
}
.account-filter-action{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  height:100%!important;
}
.account-filter-action button{
  margin:0!important;
  height:52px!important;
  min-width:172px!important;
  white-space:nowrap!important;
  align-self:flex-end!important;
}

.drawer-buttons{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important;
  gap:16px!important;
  margin-top:18px!important;
}
.drawer-button-card,
.drawer-button-card:visited,
.drawer-button-card:hover,
.drawer-button-card:active{
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-height:150px!important;
  padding:18px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  text-decoration:none!important;
  box-shadow:0 3px 10px rgba(var(--shadow-rgb), 0.055)!important;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease!important;
}
.drawer-button-card:hover{
  border-color:var(--line)!important;
  box-shadow:0 7px 18px rgba(var(--shadow-rgb), 0.1)!important;
  transform:translateY(-1px)!important;
}
.drawer-button-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  min-height:42px!important;
}
.drawer-button-head b{
  display:block!important;
  margin:0!important;
  color:var(--brand)!important;
  font-size:18px!important;
  line-height:1.2!important;
  text-decoration:none!important;
}
.drawer-button-head small{
  display:block!important;
  margin-top:5px!important;
  color:var(--muted)!important;
  font-size:13px!important;
  line-height:1.2!important;
  text-decoration:none!important;
}
.drawer-button-head>strong{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  margin:0!important;
  border-radius:50%!important;
  background:var(--surface)!important;
  color:var(--brand)!important;
  font-size:18px!important;
  line-height:1!important;
  text-decoration:none!important;
}
.drawer-range{
  margin-top:16px!important;
  padding:10px 12px!important;
  border:1px solid var(--line)!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--muted)!important;
  font-size:13px!important;
  line-height:1.3!important;
  text-decoration:none!important;
}
.drawer-free{
  min-height:0!important;
  margin-top:10px!important;
  color:var(--muted)!important;
  font-size:12px!important;
  line-height:1.3!important;
  text-decoration:none!important;
}

@media(max-width:850px){
  .account-filters{grid-template-columns:1fr 1fr!important}
  .account-filter-action{grid-column:1 / -1!important}
  .account-filter-action button{width:100%!important}
}
@media(max-width:560px){
  .account-filters{grid-template-columns:1fr!important}
  .account-filter-action{grid-column:auto!important}
}


/* Shared semantic colors for states present in older templates. */
a { color: var(--brand); }
a:hover { color: var(--brand-dark); }
input,select,textarea { color: var(--ink); }
input::placeholder,textarea::placeholder { color: var(--muted); opacity: 1; }
.tab.active { background: var(--info-soft); color: var(--info-ink); }
.bar.alt { background: var(--accent-soft); }
.bar.alt span { color: var(--accent-ink); }
.badge[class*="badge-"].badge-blue { background: var(--info-soft); color: var(--info-ink); }
.badge[class*="badge-"].badge-orange { background: var(--accent-soft); color: var(--accent-ink); }
.badge[class*="badge-"].badge-green { background: var(--success-soft); color: var(--success); }
.badge[class*="badge-"].badge-red,.notification-bell-count { background: var(--danger-soft); color: var(--danger); }
.badge[class*="badge-"].badge-gray,.badge[class*="badge-"].badge-teal { background: var(--bg); color: var(--ink); }
.login-v101-logo-wrap { background: var(--paper-bg); }
.osse-desktop-login-message,.osse-desktop-login-message h2 { color: var(--photo-ink) !important; }

@media print {
  :root,:root[data-theme] { color-scheme: light; }
  body:has(.report-table-wrap) {
    --bg: var(--paper-bg);
    --surface: var(--paper-bg);
    --ink: var(--paper-ink);
    --muted: var(--paper-muted);
    --line: var(--paper-line);
    --brand: var(--paper-blue);
    --info-soft: var(--paper-soft);
    color: var(--paper-ink);
  }
}
