:root{
  --navy:#061a34;--navy2:#0b2447;--blue:#123c78;--blue2:#225ca6;
  --gold:#d9a844;--gold2:#f1d28b;--cream:#fff8e9;--paper:#fffdf8;--bg:#edf3fb;
  --ink:#101a2d;--muted:#69748b;--line:#d8c9a3;--soft-line:#d8e1ee;--green:#1f7a4d;--red:#b42318;
  --shadow:0 24px 70px rgba(6,26,52,.22);--radius:26px;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 88% 0,#dfeaff 0,transparent 32rem),var(--bg)}
.login-page{background:#061a34;overflow-x:hidden}.menu-page{background:radial-gradient(circle at 85% 0,#e7efff 0,transparent 32rem),linear-gradient(180deg,#f4f7fc,#eef3fb)}
button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-header{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;border-bottom:1px solid rgba(255,255,255,.14);position:sticky;top:0;z-index:10;box-shadow:0 8px 28px rgba(6,26,52,.18)}
.login-page .app-header{position:absolute;left:0;right:0;background:linear-gradient(180deg,rgba(4,17,36,.8),rgba(4,17,36,0));border-bottom:0;box-shadow:none}.header-inner{max-width:1180px;margin:auto;min-height:72px;padding:12px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.brand-mark{width:45px;height:45px;border-radius:14px;background:linear-gradient(145deg,#f8d978,#c79528);color:var(--navy);font-family:Georgia,serif;font-size:29px;font-weight:900;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 8px 20px rgba(0,0,0,.22)}.brand strong,.brand small{display:block}.brand strong{font-size:17px;letter-spacing:.01em}.brand small{font-size:12px;opacity:.78;margin-top:2px}.user-chip{display:flex;align-items:center;gap:8px;min-width:0}.user-name{font-weight:800;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge{font-size:10px;font-weight:900;letter-spacing:.05em;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.15)}.page-shell{max-width:1180px;margin:auto;padding:28px 20px 46px}.login-page .page-shell{max-width:none;min-height:100vh;padding:0}.flash-stack{position:relative;z-index:30;max-width:760px;margin:92px auto 0;display:grid;gap:8px;padding:0 20px}.menu-page .flash-stack{margin:0 0 18px;padding:0}.flash{padding:12px 14px;border-radius:14px;border:1px solid var(--soft-line);background:#fff}.flash.error{border-color:#f3b6b2;background:#fff4f3;color:#8f231b}.flash.ok{border-color:#acd7bd;background:#f0faf4;color:#17603d}
.royal-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr);position:relative;background:var(--navy)}.login-art{position:relative;min-height:100vh;background-image:url('/static/img/portal-hero.jpg');background-size:cover;background-position:left center;overflow:hidden}.login-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,37,.08),rgba(5,18,37,.16) 55%,rgba(5,18,37,.72));pointer-events:none}.art-shade{position:absolute;inset:0;background:radial-gradient(circle at 30% 18%,rgba(255,222,146,.24),transparent 20rem),linear-gradient(180deg,rgba(3,12,27,.05) 40%,rgba(3,12,27,.46) 100%)}.art-copy{position:absolute;left:8%;bottom:7%;z-index:2;color:#fff;max-width:520px;text-shadow:0 4px 18px rgba(0,0,0,.36)}.gold-kicker,.eyebrow{display:inline-block;font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:900}.gold-kicker,.eyebrow.gold{color:var(--gold2)}.art-copy h1{font-family:Georgia,"Times New Roman",serif;text-transform:uppercase;letter-spacing:.035em;font-size:clamp(48px,6vw,88px);line-height:.92;margin:12px 0 4px;color:#f8d98b}.art-copy p{font-family:Georgia,"Times New Roman",serif;font-size:clamp(22px,2.4vw,34px);margin:0 0 26px;color:#fff8e9}.art-plaque{display:flex;align-items:center;gap:16px;max-width:520px;padding:18px 20px;border:2px solid rgba(239,198,104,.8);border-radius:18px;background:linear-gradient(135deg,rgba(8,32,67,.9),rgba(12,42,82,.82));box-shadow:0 18px 40px rgba(0,0,0,.28)}.plaque-crown{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#f7d675,#bd861c);display:grid;place-items:center;color:#071b37;font-size:30px}.art-plaque strong{font-family:Georgia,"Times New Roman",serif;font-size:22px;display:block}.art-plaque small{display:block;margin-top:4px;color:#e8edf6;font-size:15px}.login-side{display:flex;align-items:center;justify-content:center;padding:110px 5vw 48px;background:radial-gradient(circle at 95% 0,rgba(32,91,166,.25),transparent 26rem),linear-gradient(135deg,#071b37,#0d2b55)}.royal-card{position:relative;background:linear-gradient(180deg,rgba(255,253,248,.98),rgba(255,248,233,.96));border:1px solid rgba(214,168,67,.62);border-radius:34px;box-shadow:var(--shadow);}.royal-card:before{content:"";position:absolute;inset:9px;border:1px solid rgba(214,168,67,.55);border-radius:26px;pointer-events:none}.login-card{width:min(100%,520px);padding:38px 40px 34px;display:grid;gap:18px}.login-crest{width:82px;height:82px;margin:0 auto 2px;border-radius:26px;background:linear-gradient(145deg,#0b2a55,#071b37);border:3px solid var(--gold);box-shadow:0 12px 28px rgba(6,26,52,.22),inset 0 0 0 1px rgba(255,255,255,.18);display:grid;place-items:center}.login-crest span{font-family:Georgia,"Times New Roman",serif;color:var(--gold2);font-weight:900;font-size:40px}.login-heading{text-align:center}.login-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:42px;margin:12px 0 8px;color:var(--navy);letter-spacing:-.02em}.muted{margin:0;color:var(--muted);line-height:1.45}label{display:grid;gap:7px;font-weight:850;color:#27354f}input{width:100%;border:1px solid #c8d3e3;border-radius:13px;padding:14px 15px;background:#fff;color:var(--ink);font-size:16px;outline:none;box-shadow:inset 0 1px 2px rgba(6,26,52,.04)}input:focus{border-color:var(--blue2);box-shadow:0 0 0 4px rgba(43,93,162,.14)}.btn{border:0;border-radius:14px;padding:13px 18px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .13s ease,box-shadow .13s ease,opacity .13s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.primary{background:linear-gradient(135deg,#0d2c58,var(--navy));color:#fff;box-shadow:0 13px 27px rgba(6,26,52,.28)}.secondary{background:#fff;color:var(--blue);border:1px solid var(--soft-line)}.ghost{background:#eef3fb;color:var(--navy)}.version{text-align:center;color:#9a8d70;font-size:12px;margin:0}.lock-icon{font-size:17px;color:var(--gold2)}
.dashboard-hero{position:relative;overflow:hidden;display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px;border-radius:28px;padding:34px;background:linear-gradient(135deg,rgba(6,26,52,.96),rgba(16,58,116,.92)),url('/static/img/portal-hero.jpg');background-size:cover;background-position:center 42%;color:#fff;box-shadow:0 20px 45px rgba(6,26,52,.18)}.dashboard-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 10%,rgba(245,203,112,.25),transparent 16rem);pointer-events:none}.dashboard-hero>*{position:relative;z-index:1}.dashboard-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,5vw,54px);line-height:1.02;margin:8px 0 10px;color:#fff8e9}.dashboard-hero p{font-size:18px;color:#dbe6f7;margin:0}.apps-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.app-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--soft-line);border-radius:var(--radius);box-shadow:0 14px 38px rgba(6,26,52,.09);padding:26px;min-height:280px;display:flex;flex-direction:column;align-items:flex-start}.app-card:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,var(--gold),#f4db96)}.app-card.rifas:before{background:linear-gradient(90deg,#7d59bc,#d2b6ff)}.app-card.disabled{opacity:.6}.app-icon{width:68px;height:68px;border-radius:22px;background:#fff6df;border:1px solid #efd89c;display:grid;place-items:center;font-size:34px;margin-bottom:22px}.rifas .app-icon{background:#f3edff;border-color:#d9c5ff}.app-copy{flex:1}.app-copy h2{font-family:Georgia,"Times New Roman",serif;font-size:31px;margin:0 0 8px;color:var(--navy)}.app-copy p{font-size:16px;color:var(--muted);line-height:1.5;margin:0}.app-open{width:100%;background:var(--navy);color:#fff;margin-top:24px}.rifas .app-open{background:#51347d}.status-card{margin-top:20px;padding:18px 20px;border:1px solid var(--soft-line);border-radius:18px;background:rgba(255,255,255,.88);display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 10px 30px rgba(6,26,52,.06)}.status-card strong,.status-card span,.status-card small{display:block}.status-card span{color:var(--muted);margin-top:2px}.status-card small{color:#99a2b2;margin-top:4px;overflow-wrap:anywhere}.ios-tip{margin-top:14px;border:1px solid #f0d38a;border-radius:14px;background:#fff9e9;padding:13px 15px;display:grid;gap:3px}.ios-tip span{color:#66572e}.ios-tip.neutral{border-color:#cfd9ea;background:#f8fbff}.ios-tip.neutral span{color:var(--muted)}.error-card{max-width:650px;margin:60px auto;padding:38px;text-align:center}.error-code{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--red)}.error-card h1{color:var(--navy);font-family:Georgia,"Times New Roman",serif}.error-card p{color:var(--muted);line-height:1.55}.login-progress{display:flex;align-items:center;gap:10px;border:1px solid #d2c18f;background:#fff9e7;color:var(--navy);border-radius:13px;padding:11px 12px;font-weight:800;line-height:1.35}.login-progress[hidden]{display:none}.progress-dot{width:10px;height:10px;border-radius:999px;background:var(--gold);box-shadow:0 0 0 0 rgba(217,168,68,.42);animation:pulseLogin 1.1s ease-out infinite;flex:0 0 auto}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:999px;display:none;animation:spinLogin .8s linear infinite}.login-submit.is-loading .btn-spinner{display:inline-block}.login-card.is-submitting input{background:#f8fafc}@keyframes spinLogin{to{transform:rotate(360deg)}}@keyframes pulseLogin{0%{box-shadow:0 0 0 0 rgba(217,168,68,.42)}70%{box-shadow:0 0 0 10px rgba(217,168,68,0)}100%{box-shadow:0 0 0 0 rgba(217,168,68,0)}}
@media(max-width:980px){.royal-login{grid-template-columns:1fr}.login-art{min-height:430px;background-position:left 34%}.login-art:after{background:linear-gradient(180deg,rgba(5,18,37,.03),rgba(5,18,37,.35) 55%,rgba(5,18,37,.84))}.art-copy{left:24px;right:24px;bottom:28px;max-width:720px}.login-side{min-height:auto;padding:34px 18px 42px}.login-card{width:min(100%,560px)}}
@media(max-width:760px){.page-shell{padding:22px 14px 36px}.login-page .page-shell{padding:0}.header-inner{padding:10px 14px}.user-name{display:none}.royal-login{min-height:100vh}.login-art{min-height:390px;background-position:12% center}.art-copy h1{font-size:48px}.art-copy p{font-size:21px}.art-plaque{padding:14px 15px}.art-plaque strong{font-size:19px}.plaque-crown{width:42px;height:42px;font-size:25px}.login-card{padding:30px 24px 26px;border-radius:26px}.login-card:before{border-radius:20px}.login-heading h2{font-size:34px}.login-crest{width:72px;height:72px}.apps-grid{grid-template-columns:1fr}.app-card{min-height:235px}.dashboard-hero{align-items:flex-start;flex-direction:column;padding:28px 22px}.status-card{align-items:stretch;flex-direction:column}.status-card .btn{width:100%}.flash-stack{margin-top:82px}}
@media(max-width:430px){.brand strong{font-size:15px}.brand small{font-size:11px}.brand-mark{width:42px;height:42px}.login-art{min-height:360px}.art-copy h1{font-size:42px}.art-plaque small{font-size:13px}.login-heading h2{font-size:31px}.dashboard-hero h1{font-size:33px}}

/* v0.1.5: pantalla de acceso profesional independiente, sin depender de base.html */
.standalone-login-page{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:#061a34;
  color:#0b1d3a;
}
.rg-login-stage{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  background:#061a34;
}
.rg-visual{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background-image:url('/static/img/portal-scene.jpg');
  background-size:cover;
  background-position:center center;
}
.rg-visual:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 28% 15%,rgba(255,222,146,.20),transparent 18rem),
    linear-gradient(90deg,rgba(4,15,32,.08),rgba(4,15,32,.18) 42%,rgba(4,15,32,.78) 100%),
    linear-gradient(180deg,rgba(4,15,32,.02) 45%,rgba(4,15,32,.52));
}
.rg-visual-overlay{position:absolute;inset:0;box-shadow:inset -40px 0 90px rgba(6,26,52,.42)}
.rg-visual-content{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:7vh 7vw 7vh 7vw;
  color:#fff;
  text-shadow:0 4px 18px rgba(0,0,0,.38);
}
.rg-title-lockup{max-width:640px;text-align:center;align-self:center;margin-top:1vh}
.rg-crown{font-size:60px;color:#f1d28b;line-height:1;margin-bottom:6px}
.rg-title-lines span{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(58px,7vw,104px);
  font-weight:900;
  line-height:.86;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#f4d58a;
}
.rg-title-lines strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,3.6vw,50px);
  letter-spacing:.20em;
  color:#f7dda1;
  margin-top:12px;
}
.rg-title-lockup p{
  margin:10px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:clamp(16px,1.55vw,24px);
  color:#fff5dc;
}
.rg-plaque{
  align-self:flex-start;
  max-width:560px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:18px 22px;
  border:2px solid rgba(239,198,104,.82);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(8,32,67,.94),rgba(12,42,82,.84));
  box-shadow:0 18px 45px rgba(0,0,0,.30);
}
.rg-plaque-icon{
  width:54px;height:54px;border-radius:15px;
  background:linear-gradient(145deg,#f7d675,#bd861c);
  display:grid;place-items:center;
  color:#071b37;font-size:31px;flex:0 0 auto;
}
.rg-plaque strong{font-family:Georgia,"Times New Roman",serif;font-size:25px;color:#fff;display:block}
.rg-plaque small{display:block;margin-top:4px;color:#dfe8f7;font-size:15px}
.rg-login-panel{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7vh 5vw;
  background:
    radial-gradient(circle at 100% 0,rgba(62,132,220,.22),transparent 28rem),
    linear-gradient(135deg,#071b37,#0b264d 58%,#061a34);
}
.rg-card{
  width:min(100%,540px);
  position:relative;
  display:grid;
  gap:18px;
  padding:42px 44px 34px;
  border-radius:34px;
  background:linear-gradient(180deg,rgba(255,253,248,.985),rgba(255,248,233,.965));
  border:1px solid rgba(214,168,67,.68);
  box-shadow:0 30px 80px rgba(0,0,0,.28);
}
.rg-card:before{
  content:"";position:absolute;inset:9px;border-radius:26px;border:1px solid rgba(214,168,67,.55);pointer-events:none;
}
.rg-crest{
  width:86px;height:86px;border-radius:28px;margin:0 auto;
  background:linear-gradient(145deg,#0b2a55,#071b37);
  border:3px solid #d9a844;
  box-shadow:0 12px 28px rgba(6,26,52,.22),inset 0 0 0 1px rgba(255,255,255,.18);
  display:grid;place-items:center;
}
.rg-crest span{font-family:Georgia,"Times New Roman",serif;color:#f1d28b;font-weight:900;font-size:42px}
.rg-card-heading{text-align:center;margin-bottom:4px}
.rg-card-heading span{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:900;
  color:#123c78;
  position:relative;
}
.rg-card-heading span:before,.rg-card-heading span:after{content:"";display:inline-block;vertical-align:middle;width:54px;height:1px;background:#d1a34e;margin:0 12px 3px}
.rg-card-heading h1{font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:1.04;margin:13px 0 8px;color:#061a34;letter-spacing:-.02em}
.rg-card-heading p{margin:0;color:#6b7285;font-size:17px}
.rg-field{display:grid;gap:8px;font-weight:900;color:#1c2e4d;position:relative;z-index:1}
.rg-field span{display:flex;align-items:center;gap:8px}
.rg-field input{width:100%;border:1px solid #c8d3e3;border-radius:13px;padding:15px 16px;background:#fff;color:#101a2d;font-size:16px;outline:none;box-shadow:inset 0 1px 2px rgba(6,26,52,.04)}
.rg-field input:focus{border-color:#225ca6;box-shadow:0 0 0 4px rgba(43,93,162,.14)}
.rg-submit{position:relative;z-index:1;border:0;border-radius:14px;padding:15px 18px;font-weight:950;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#0d2c58,#061a34);color:#fff;box-shadow:0 15px 30px rgba(6,26,52,.30);font-size:18px}
.rg-submit:disabled{opacity:.72;cursor:wait}.rg-lock{font-size:17px;color:#f1d28b}.rg-login-progress{position:relative;z-index:1}.rg-flashes{position:relative;z-index:1;display:grid;gap:8px}.rg-flashes .flash{margin:0}.standalone-login-page .version{position:relative;z-index:1;text-align:center;color:#9a8d70;font-size:12px;margin:0}.standalone-login-page .btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:999px;display:none;animation:spinLogin .8s linear infinite}.rg-submit.is-loading .btn-spinner{display:inline-block}
@media(max-width:1050px){
  .rg-login-stage{grid-template-columns:1fr}.rg-visual{min-height:48vh}.rg-login-panel{min-height:auto;padding:32px 18px 46px}.rg-visual-content{padding:46px 28px 30px}.rg-title-lockup{align-self:flex-start;text-align:left;max-width:720px}.rg-plaque{max-width:620px}
}
@media(max-width:640px){
  .rg-visual{min-height:380px;background-position:35% center}.rg-title-lines span{font-size:46px}.rg-title-lines strong{font-size:27px}.rg-title-lockup p{font-size:14px}.rg-plaque{padding:14px 15px;gap:12px}.rg-plaque-icon{width:44px;height:44px;font-size:25px}.rg-plaque strong{font-size:20px}.rg-plaque small{font-size:13px}.rg-card{padding:32px 24px 27px;border-radius:26px}.rg-card:before{border-radius:19px}.rg-card-heading h1{font-size:34px}.rg-card-heading span:before,.rg-card-heading span:after{width:28px;margin-left:8px;margin-right:8px}.rg-crest{width:74px;height:74px}.rg-crest span{font-size:36px}
}

/* v0.1.6: hero limpio + login real. La imagen no contiene formulario ni textos duplicados. */
.portal-login-v016{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:#061a34;
  color:#061a34;
}
.v016-stage{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  background:#061a34;
}
.v016-hero{
  position:relative;
  min-height:100vh;
  background-image:linear-gradient(90deg,rgba(4,15,32,.02),rgba(4,15,32,.08) 68%,rgba(4,15,32,.62)),url('/static/img/portal-hero-clean.jpg');
  background-size:cover;
  background-position:center center;
  box-shadow:inset -36px 0 90px rgba(6,26,52,.48);
}
.v016-access{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(28px,6vh,70px) clamp(22px,5vw,78px);
  background:
    radial-gradient(circle at 100% 0,rgba(52,115,195,.20),transparent 25rem),
    linear-gradient(135deg,#071b37 0%,#0a254c 58%,#061a34 100%);
}
.v016-card{
  position:relative;
  width:min(100%,560px);
  display:grid;
  gap:18px;
  padding:46px 48px 34px;
  border-radius:36px;
  background:linear-gradient(180deg,rgba(255,253,248,.99),rgba(255,248,233,.97));
  border:1px solid rgba(214,168,67,.74);
  box-shadow:0 34px 88px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.42) inset;
}
.v016-card:before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(214,168,67,.58);
  border-radius:27px;
  pointer-events:none;
}
.v016-card > *{position:relative;z-index:1}
.v016-crest{
  width:88px;
  height:88px;
  margin:0 auto 2px;
  display:grid;
  place-items:center;
  border-radius:28px;
  background:linear-gradient(145deg,#0b2a55,#071b37);
  border:3px solid #d9a844;
  box-shadow:0 14px 32px rgba(6,26,52,.24),inset 0 0 0 1px rgba(255,255,255,.18);
}
.v016-crest span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:43px;
  font-weight:900;
  color:#f1d28b;
  line-height:1;
}
.v016-heading{text-align:center;margin:0 0 4px}
.v016-kicker{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  color:#123c78;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:950;
}
.v016-kicker span{display:block;width:58px;height:1px;background:linear-gradient(90deg,transparent,#d1a34e)}
.v016-kicker span:last-child{background:linear-gradient(90deg,#d1a34e,transparent)}
.v016-heading h1{
  margin:16px 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(38px,3.2vw,50px);
  line-height:1.02;
  letter-spacing:-.025em;
  color:#061a34;
}
.v016-heading p{margin:0;color:#6b7285;font-size:17px}
.v016-field{display:grid;gap:8px;font-weight:900;color:#1c2e4d}
.v016-field > span{font-size:16px}
.v016-control{
  display:grid;
  grid-template-columns:42px 1fr;
  align-items:center;
  min-height:66px;
  border:1px solid rgba(193,151,69,.75);
  border-radius:13px;
  background:rgba(255,255,255,.86);
  box-shadow:inset 0 1px 2px rgba(6,26,52,.04);
  overflow:hidden;
}
.v016-control:focus-within{border-color:#225ca6;box-shadow:0 0 0 4px rgba(43,93,162,.14)}
.v016-ico{display:grid;place-items:center;font-size:16px;color:#082144;opacity:.96}
.v016-control input{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:17px 16px 17px 6px!important;
  height:64px;
  font-size:17px;
  outline:none;
}
.v016-control input:focus{box-shadow:none!important}
.v016-submit{
  min-height:66px;
  border:1px solid rgba(217,168,68,.92);
  border-radius:15px;
  padding:15px 22px;
  margin-top:8px;
  background:linear-gradient(135deg,#0d2c58,#061a34);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-size:22px;
  font-weight:950;
  font-family:Georgia,"Times New Roman",serif;
  cursor:pointer;
  box-shadow:0 16px 34px rgba(6,26,52,.32), inset 0 0 0 1px rgba(255,255,255,.08);
}
.v016-submit:hover{filter:brightness(1.04)}
.v016-submit:disabled{opacity:.72;cursor:wait}
.v016-submit-orn{width:58px;height:1px;background:linear-gradient(90deg,transparent,#d9a844,transparent)}
.v016-lock{font-family:Inter,ui-sans-serif,sans-serif;color:#f1d28b;font-size:18px;line-height:1}
.v016-progress{margin-top:0}
.v016-footer{
  margin-top:18px;
  text-align:center;
  color:#061a34;
  display:grid;
  gap:4px;
}
.v016-footer span{
  display:block;
  width:66%;
  height:1px;
  background:linear-gradient(90deg,transparent,#d1a34e,transparent);
  margin:0 auto 10px;
}
.v016-footer strong{font-family:Georgia,"Times New Roman",serif;font-size:17px}
.v016-footer small{display:block;color:#a06c18;letter-spacing:.13em;text-transform:uppercase;font-size:11px}
.portal-login-v016 .version{text-align:center;color:#9a8d70;font-size:12px;margin:0}
.portal-login-v016 .flash{margin:0;text-align:left}.portal-login-v016 .rg-flashes{display:grid;gap:8px}
.portal-login-v016 .btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:999px;display:none;animation:spinLogin .8s linear infinite}.v016-submit.is-loading .btn-spinner{display:inline-block}
@media(max-width:1080px){
  .v016-stage{grid-template-columns:1fr}.v016-hero{min-height:42vh;background-position:center 38%;box-shadow:inset 0 -50px 90px rgba(6,26,52,.46)}.v016-access{min-height:auto;padding:30px 18px 46px}.v016-card{width:min(100%,620px)}
}
@media(max-width:640px){
  .v016-hero{min-height:330px;background-position:center center}.v016-access{padding:22px 14px 36px}.v016-card{padding:32px 24px 27px;border-radius:27px}.v016-card:before{border-radius:20px}.v016-crest{width:74px;height:74px;border-radius:23px}.v016-crest span{font-size:36px}.v016-kicker{font-size:10px;gap:8px;letter-spacing:.12em}.v016-kicker span{width:30px}.v016-heading h1{font-size:34px}.v016-heading p{font-size:15px}.v016-control{min-height:60px;grid-template-columns:38px 1fr}.v016-control input{height:58px;font-size:16px}.v016-submit{min-height:60px;font-size:20px}.v016-submit-orn{display:none}.v016-footer span{width:72%}
}

/* v0.1.7: panel principal reorganizado. Usuario y salida en cabecera; instalación en apartado propio. */
.user-session-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:0;
}
.logout-form{margin:0;display:flex;align-items:center}
.header-logout{
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);
  color:#fff;
  border-radius:999px;
  padding:9px 13px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.header-logout:hover{background:rgba(255,255,255,.18)}
.portal-panel-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
  border-radius:28px;
  padding:34px;
  background:
    radial-gradient(circle at 85% 12%,rgba(245,203,112,.26),transparent 16rem),
    linear-gradient(135deg,rgba(6,26,52,.97),rgba(16,58,116,.93)),
    url('/static/img/portal-hero-clean.jpg');
  background-size:cover;
  background-position:center 45%;
  color:#fff;
  box-shadow:0 20px 45px rgba(6,26,52,.18);
}
.portal-panel-hero h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(34px,5vw,54px);
  line-height:1.02;
  margin:8px 0 10px;
  color:#fff8e9;
}
.portal-panel-hero p{font-size:18px;color:#dbe6f7;margin:0}
.pending-card{
  border:1px solid rgba(216,225,238,.9);
  background:rgba(255,255,255,.86);
  border-radius:22px;
  padding:18px 20px;
  margin-bottom:20px;
  box-shadow:0 10px 30px rgba(6,26,52,.06);
}
.pending-head{display:flex;align-items:center;gap:14px}
.pending-icon{
  width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;
  color:#0f5f3f;background:#e8f8ef;border:1px solid #bde4cb;font-weight:950;
}
.pending-card h2{font-family:Georgia,"Times New Roman",serif;font-size:25px;margin:0 0 4px;color:var(--navy)}
.pending-card p{margin:0;color:var(--muted);line-height:1.45}
.pending-card.has-pending{
  border-color:rgba(221,143,38,.42);
  background:linear-gradient(135deg,#fffdf7,#fff7e8);
}
.pending-card.empty-pending{
  border-color:rgba(181,218,195,.75);
  background:linear-gradient(135deg,#ffffff,#f1fbf5);
}
.pending-card.has-pending .pending-icon{
  color:#8a4b00;
  background:#fff3d6;
  border-color:#f0cf82;
}
.pending-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.pending-item{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:15px 16px;
  border-radius:18px;
  border:1px solid rgba(216,225,238,.9);
  background:rgba(255,255,255,.78);
  text-decoration:none;
  color:var(--navy);
  transition:.16s ease;
}
.pending-item:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(6,26,52,.08)}
.pending-item.warning{border-color:rgba(236,175,69,.58);background:#fffaf0}
.pending-item.info{border-color:rgba(158,190,232,.65);background:#f5f9ff}
.pending-item-kind{font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#6b7285}
.pending-item strong{font-size:24px;line-height:1;color:var(--navy)}
.pending-item span:last-child{font-size:14px;line-height:1.35;color:var(--muted)}
@media(max-width:760px){.pending-summary-grid{grid-template-columns:1fr}.pending-item strong{font-size:22px}}

.install-entry-card{
  margin-top:20px;
  padding:22px;
  border:1px solid rgba(216,225,238,.92);
  border-radius:22px;
  background:linear-gradient(135deg,#fffdf8,#f5f9ff);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 12px 34px rgba(6,26,52,.07);
}
.install-entry-copy{display:flex;align-items:center;gap:16px;min-width:0}
.install-entry-icon{
  width:58px;height:58px;border-radius:19px;
  background:#fff6df;border:1px solid #efd89c;
  display:grid;place-items:center;font-size:29px;flex:0 0 auto;
}
.install-entry-card h2{font-family:Georgia,"Times New Roman",serif;margin:0 0 5px;color:var(--navy);font-size:27px}
.install-entry-card p{margin:0;color:var(--muted);line-height:1.45}

.install-entry-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.install-status{margin:8px 0 0!important;font-size:14px;font-weight:800;color:#6b7285}
.install-status[data-state="ok"]{color:#0f6b45}
.install-status[data-state="warn"]{color:#9a5b00}
.direct-install-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
  padding:22px;
  border-radius:22px;
  background:linear-gradient(135deg,#fffdf8,#eef6ff);
  border:1px solid rgba(216,225,238,.92);
  box-shadow:0 12px 34px rgba(6,26,52,.07);
}
.direct-install-card h2{font-family:Georgia,"Times New Roman",serif;margin:0 0 6px;color:var(--navy);font-size:28px}
.direct-install-card p{margin:0;color:var(--muted);line-height:1.45}

.install-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
  padding:30px;
  border-radius:26px;
  color:#fff;
  background:linear-gradient(135deg,var(--navy),var(--blue));
  box-shadow:0 18px 42px rgba(6,26,52,.16);
}
.install-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(33px,4.5vw,52px);margin:8px 0 8px;color:#fff8e9;line-height:1.04}
.install-hero p{margin:0;color:#dbe6f7;font-size:17px;max-width:780px;line-height:1.5}
.back-menu{color:#fff;border-color:rgba(255,255,255,.45);white-space:nowrap}
.install-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.install-card{
  background:#fff;
  border:1px solid var(--soft-line);
  border-radius:var(--radius);
  box-shadow:0 14px 38px rgba(6,26,52,.09);
  padding:28px;
  position:relative;
  overflow:hidden;
}
.install-card:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,var(--gold),#f4db96)}
.install-card-icon{width:66px;height:66px;border-radius:22px;background:#fff6df;border:1px solid #efd89c;display:grid;place-items:center;font-size:33px;margin-bottom:18px}
.install-card h2{font-family:Georgia,"Times New Roman",serif;font-size:31px;margin:0 0 14px;color:var(--navy)}
.install-card ol{margin:0;padding-left:21px;color:#29364d;line-height:1.65}
.install-card li+li{margin-top:8px}.install-now{margin-top:22px;width:100%;background:var(--navy);color:#fff}.install-now[hidden]{display:none}
@media(max-width:760px){
  .user-session-actions{gap:8px}.role-badge{display:none}.header-logout{padding:8px 11px}.portal-panel-hero{padding:28px 22px}.pending-head{align-items:flex-start}.install-entry-card{align-items:stretch;flex-direction:column}.install-entry-actions{width:100%;flex-direction:column;align-items:stretch}.install-entry-card .btn,.direct-install-card .btn{width:100%;justify-content:center}.direct-install-card{align-items:stretch;flex-direction:column}.install-hero{align-items:stretch;flex-direction:column;padding:25px 22px}.install-grid{grid-template-columns:1fr}.back-menu{width:100%;justify-content:center}
}
@media(max-width:430px){
  .portal-panel-hero h1{font-size:33px}.portal-panel-hero p,.install-hero p{font-size:15px}.pending-card,.install-entry-card,.install-card{border-radius:20px}.install-entry-copy{align-items:flex-start}.install-entry-card h2{font-size:23px}
}
/* v0.6.0 · Tesorería visible solo para ADMIN/SUPERADMIN */
.app-card.tesoreria:before{background:linear-gradient(90deg,#0f7a61,#79c9b2)}
.tesoreria .app-icon{background:#eaf8f4;border-color:#acdaca;color:#0f6c57;font-family:Georgia,"Times New Roman",serif;font-weight:900}
.tesoreria .app-open{background:#0f6c57}


/* v0.7.0 · Resumen personal, navegación persistente e iconografía Rey Gaspar */
.rg-icon{width:1.5rem;height:1.5rem;display:block}
.app-header{z-index:100}
.header-main-row{min-height:58px;padding-top:7px;padding-bottom:7px}
.brand-crown{background:linear-gradient(145deg,#f8d978,#c79528);display:grid;place-items:center}
.brand-svg{width:30px;height:30px;display:block;color:#071b37}
.logout-svg{width:18px;height:18px;display:block}
.header-logout{display:inline-flex;align-items:center;gap:7px}
.portal-access-nav{border-top:1px solid rgba(255,255,255,.12);background:rgba(4,20,43,.94);backdrop-filter:blur(12px)}
.portal-access-track{max-width:1180px;margin:auto;display:flex;align-items:stretch;gap:4px;padding:5px 16px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
.portal-access-track::-webkit-scrollbar{display:none}
.portal-nav-item{position:relative;min-width:max-content;display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:12px;color:#dbe6f7;text-decoration:none;font-size:13px;font-weight:900;line-height:1;transition:background .15s ease,color .15s ease}
.portal-nav-item:hover{background:rgba(255,255,255,.10);color:#fff}
.portal-nav-item.active{background:linear-gradient(135deg,#f3d37e,#c89429);color:#071b37;box-shadow:0 5px 14px rgba(0,0,0,.18)}
.portal-nav-icon{width:23px;height:23px;display:grid;place-items:center;flex:0 0 auto}
.portal-nav-icon .rg-icon{width:22px;height:22px}
.portal-v070 .page-shell{padding-top:22px}
.personal-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,390px);align-items:stretch;gap:22px;margin-bottom:24px;border-radius:28px;padding:32px;background:radial-gradient(circle at 84% 8%,rgba(245,203,112,.28),transparent 17rem),linear-gradient(135deg,rgba(6,26,52,.98),rgba(16,58,116,.94)),url('/static/img/portal-hero-clean.jpg');background-size:cover;background-position:center 45%;color:#fff;box-shadow:0 20px 45px rgba(6,26,52,.18)}
.personal-hero-copy{align-self:center;min-width:0}
.personal-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,5vw,52px);line-height:1.02;margin:8px 0 10px;color:#fff8e9}
.personal-hero p{max-width:700px;font-size:17px;line-height:1.5;color:#dbe6f7;margin:0}
.responsibility-total{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:22px 24px;border:1px solid rgba(244,211,126,.62);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.07));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 15px 35px rgba(0,0,0,.15)}
.responsibility-total>span{font-size:12px;text-transform:uppercase;letter-spacing:.10em;font-weight:950;color:#f5d98f}
.responsibility-total strong{display:block;margin:8px 0 6px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,5vw,52px);line-height:1;color:#fff}
.responsibility-total small{color:#dbe6f7;line-height:1.4}
.responsibility-total.clear{border-color:rgba(127,214,163,.55);background:linear-gradient(145deg,rgba(29,121,78,.35),rgba(255,255,255,.06))}
.responsibility-total.partial{border-color:rgba(238,178,76,.65);background:linear-gradient(145deg,rgba(154,91,0,.32),rgba(255,255,255,.06))}
.custody-section,.alerts-panel{margin-bottom:24px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px;padding:0 2px}
.section-heading.compact{margin-bottom:12px}
.section-kicker{display:block;margin-bottom:3px;color:#9b6c16;font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:950}
.section-heading h2{margin:0;color:var(--navy);font-family:Georgia,"Times New Roman",serif;font-size:clamp(25px,3.2vw,34px)}
.summary-time{font-size:12px;color:var(--muted);white-space:nowrap}
.custody-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.custody-card{position:relative;min-width:0;display:flex;flex-direction:column;padding:19px;border-radius:21px;background:#fff;border:1px solid var(--soft-line);box-shadow:0 12px 31px rgba(6,26,52,.075);overflow:hidden}
.custody-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#d5a343,#f2d88e)}
.custody-card.papeletas:before{background:linear-gradient(90deg,#1f5da8,#77a9e2)}
.custody-card.rifas:before{background:linear-gradient(90deg,#7450ab,#c2a1ec)}
.custody-card.loteria:before{background:linear-gradient(90deg,#b48822,#f0d171)}
.custody-card.vales:before{background:linear-gradient(90deg,#0f7a61,#79c9b2)}
.custody-card-head{display:flex;align-items:center;gap:12px;min-height:52px}
.custody-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#123c78;background:#eef5ff;border:1px solid #cfdef2}
.custody-card.rifas .custody-icon{color:#62418f;background:#f4effc;border-color:#dfcff3}
.custody-card.loteria .custody-icon{color:#8b6413;background:#fff8e3;border-color:#ead394}
.custody-card.vales .custody-icon{color:#0e6955;background:#eaf8f4;border-color:#b7dfd3}
.custody-icon .rg-icon{width:29px;height:29px}
.custody-card h3{font-family:Georgia,"Times New Roman",serif;font-size:20px;line-height:1.05;margin:0 0 5px;color:var(--navy)}
.custody-state{display:inline-block;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase;color:#945b00}
.custody-state.ok{color:#14714c}.custody-state.error{color:#9d3027}
.custody-amount{display:block;margin:20px 0 7px;color:var(--navy);font-family:Georgia,"Times New Roman",serif;font-size:33px;line-height:1}
.custody-card p{min-height:42px;margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.45}
.custody-link{margin-top:auto;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;color:#154a8d;text-decoration:none;font-size:13px;font-weight:900}
.custody-link:hover{text-decoration:underline}.muted-link{color:#8d96a6}.muted-link:hover{text-decoration:none}
.custody-card.settled{background:linear-gradient(180deg,#fff,#f7fcf9)}
.custody-card.unavailable{background:linear-gradient(180deg,#fff,#fff8f6);border-color:#ead2cd}
.custody-card.unavailable:before{background:#c76558}
.unavailable-text{color:#a16f69}
.source-warning{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px;padding:17px 19px;border:1px solid #edc477;border-radius:19px;background:#fff9e9;color:#6d4700}
.source-warning-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto}.source-warning-icon .rg-icon{width:30px;height:30px}
.source-warning h2{font-family:Georgia,"Times New Roman",serif;margin:0 0 4px;font-size:22px;color:#6d4700}.source-warning p{margin:3px 0;line-height:1.4}
.alerts-grid{display:grid;gap:9px}
.alert-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--soft-line);border-radius:17px;background:#fff;text-decoration:none;color:var(--navy);box-shadow:0 7px 22px rgba(6,26,52,.05)}
.alert-row.warning{border-color:#ead199;background:#fffaf0}.alert-row.info{border-color:#cadbf0;background:#f7faff}
.alert-row-icon{width:36px;height:36px;display:grid;place-items:center;color:#9b6500}.alert-row-icon .rg-icon{width:26px;height:26px}
.alert-copy{display:grid;gap:3px}.alert-copy strong{font-size:15px}.alert-copy small{color:var(--muted);line-height:1.35}
.alert-value{font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:900;white-space:nowrap}
.all-clear-row{display:flex;align-items:center;gap:12px;padding:15px 17px;border:1px solid #bcdcc8;border-radius:17px;background:#f3fbf6;color:#17603d}.all-clear-row span{width:32px;height:32px;border-radius:11px;background:#dff3e7;display:grid;place-items:center;font-weight:950}.all-clear-row p{margin:0}.all-clear-row.neutral{border-color:#d4deeb;background:#f7f9fc;color:#667085}.all-clear-row.neutral span{background:#e9eef5}
.install-entry-icon.themed{color:#8b6413}.install-entry-icon.themed .rg-icon{width:31px;height:31px}
@media(max-width:980px){.custody-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.personal-hero{grid-template-columns:1fr}.responsibility-total{max-width:none}}
@media(max-width:760px){.header-main-row{min-height:52px}.brand-mark{width:39px;height:39px;border-radius:12px}.brand-svg{width:25px;height:25px}.brand strong{font-size:15px}.brand small{display:none}.header-logout span{display:none}.header-logout{width:38px;height:38px;padding:0;justify-content:center}.portal-access-track{padding:5px 10px}.portal-nav-item{padding:7px 10px;font-size:12px}.portal-nav-icon{width:21px;height:21px}.portal-v070 .page-shell{padding-top:14px}.personal-hero{padding:24px 20px;border-radius:22px;gap:17px}.personal-hero p{font-size:15px}.responsibility-total{padding:19px 20px}.section-heading{align-items:flex-start;flex-direction:column;gap:5px}.summary-time{white-space:normal}.alert-row{grid-template-columns:36px minmax(0,1fr)}.alert-value{grid-column:2;font-size:19px}.custody-card p{min-height:0}}
@media(max-width:520px){.user-chip{display:none}.portal-nav-item{flex-direction:column;gap:3px;min-width:72px;padding:6px 8px;font-size:10px}.portal-nav-icon .rg-icon{width:20px;height:20px}.custody-grid{grid-template-columns:1fr}.custody-card{padding:17px}.personal-hero h1{font-size:32px}.responsibility-total strong{font-size:40px}.section-heading h2{font-size:27px}}


/* v0.7.1 · Accesos protagonistas y transición visible entre aplicaciones */
.portal-v071 .page-shell{padding-top:20px}
.portal-v071 .personal-hero{margin-bottom:20px;padding:27px 30px;grid-template-columns:minmax(0,1fr) minmax(250px,350px)}
.portal-v071 .personal-hero h1{font-size:clamp(34px,4.6vw,48px)}
.portal-v071 .personal-hero p{font-size:16px;max-width:620px}
.portal-v071 .responsibility-total{padding:19px 22px}
.portal-v071 .responsibility-total strong{font-size:clamp(34px,4.5vw,47px)}

.portal-access-track{gap:8px;padding:8px 16px}
.portal-nav-item{gap:10px;padding:8px 15px;border:1px solid transparent;border-radius:15px;font-size:14px}
.portal-nav-item:hover{border-color:rgba(255,255,255,.15)}
.portal-nav-icon{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)}
.portal-nav-icon .rg-icon{width:28px;height:28px;stroke-width:3.4}
.portal-nav-item.active .portal-nav-icon{background:rgba(7,27,55,.13);border-color:rgba(7,27,55,.18)}

.launcher-section{margin:0 0 28px;padding:23px;border:1px solid #d7e1ef;border-radius:25px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 14px 36px rgba(6,26,52,.08)}
.launcher-heading{align-items:center;margin-bottom:17px}
.launcher-heading p{margin:0;max-width:430px;color:var(--muted);font-size:14px;line-height:1.45;text-align:right}
.portal-launcher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}
.portal-launch-card{position:relative;min-height:112px;display:grid;grid-template-columns:72px minmax(0,1fr) 30px;align-items:center;gap:16px;padding:17px 18px;border:1px solid #cbd9eb;border-radius:21px;background:#fff;color:var(--navy);text-decoration:none;box-shadow:0 10px 25px rgba(6,26,52,.075);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.portal-launch-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;border-radius:21px 21px 0 0;background:linear-gradient(90deg,#d5a343,#f2d88e)}
.portal-launch-card.papeletas:before{background:linear-gradient(90deg,#1f5da8,#77a9e2)}
.portal-launch-card.rifas:before{background:linear-gradient(90deg,#7450ab,#c2a1ec)}
.portal-launch-card.tesoreria:before{background:linear-gradient(90deg,#b48822,#f0d171)}
.portal-launch-card:hover{transform:translateY(-3px);box-shadow:0 17px 35px rgba(6,26,52,.14);border-color:#9fb7d7}
.portal-launch-card:focus-visible{outline:4px solid rgba(34,92,166,.24);outline-offset:2px}
.portal-launch-icon{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;color:#123c78;background:linear-gradient(145deg,#eef5ff,#dceaff);border:1px solid #bfd3ec;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 9px 18px rgba(6,26,52,.10)}
.portal-launch-card.rifas .portal-launch-icon{color:#62418f;background:linear-gradient(145deg,#f7f1ff,#eadffc);border-color:#d7c3f1}
.portal-launch-card.tesoreria .portal-launch-icon{color:#8b6413;background:linear-gradient(145deg,#fff8e3,#f5e8bd);border-color:#e2c875}
.portal-launch-icon .rg-icon{width:46px;height:46px;stroke-width:3.5}
.portal-launch-copy{display:grid;gap:7px;min-width:0}
.portal-launch-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1;color:var(--navy)}
.portal-launch-copy small{color:var(--muted);font-size:14px;line-height:1.3}
.portal-launch-arrow{width:30px;height:30px;border-radius:999px;background:#edf3fb;display:grid;place-items:center;font-size:20px;font-weight:900;color:#174b8d}

.portal-v071 .custody-icon{width:58px;height:58px;border-radius:18px}
.portal-v071 .custody-icon .rg-icon{width:35px;height:35px;stroke-width:3.4}
.portal-v071 .custody-card-head{min-height:60px}

.zone-transition[hidden]{display:none!important}
.zone-transition{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:rgba(4,17,36,.82);backdrop-filter:blur(9px);animation:zoneFadeIn .15s ease both}
.zone-transition-card{width:min(92vw,460px);display:grid;grid-template-columns:84px minmax(0,1fr) 36px;align-items:center;gap:18px;padding:24px;border:1px solid rgba(241,210,139,.72);border-radius:27px;background:linear-gradient(145deg,#0c2b58,#061a34);color:#fff;box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.08)}
.zone-transition-icon{width:84px;height:84px;border-radius:25px;display:grid;place-items:center;background:linear-gradient(145deg,#f6d878,#bd871e);color:#071b37;box-shadow:0 12px 30px rgba(0,0,0,.25),inset 0 0 0 1px rgba(255,255,255,.6)}
.zone-svg{display:none;width:52px;height:52px;stroke-width:3.5}
.zone-transition[data-zone="papeletas"] .zone-svg-papeletas,
.zone-transition[data-zone="rifas"] .zone-svg-rifas,
.zone-transition[data-zone="tesoreria"] .zone-svg-tesoreria,
.zone-transition[data-zone="loteria"] .zone-svg-loteria,
.zone-transition[data-zone="vale"] .zone-svg-vale{display:block}
.zone-transition[data-zone="resumen"] .zone-svg-default,
.zone-transition:not([data-zone]) .zone-svg-default{display:block}
.zone-transition-copy{min-width:0}
.zone-transition-copy>span{display:block;color:#f1d28b;font-size:11px;font-weight:950;letter-spacing:.13em;text-transform:uppercase}
.zone-transition-copy h2{margin:6px 0 5px;font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.05;color:#fff8e9}
.zone-transition-copy p{margin:0;color:#dbe6f7;font-size:14px;line-height:1.4}
.zone-transition-spinner{width:30px;height:30px;border:3px solid rgba(255,255,255,.25);border-top-color:#f1d28b;border-radius:999px;animation:zoneSpin .8s linear infinite}
body.zone-navigation-active{overflow:hidden}
@keyframes zoneSpin{to{transform:rotate(360deg)}}
@keyframes zoneFadeIn{from{opacity:0}to{opacity:1}}

@media(max-width:760px){
  .portal-v071 .page-shell{padding-top:13px}
  .portal-access-track{gap:5px;padding:7px 10px}
  .portal-nav-item{flex-direction:column;gap:4px;min-width:86px;padding:7px 9px;font-size:11px}
  .portal-nav-icon{width:36px;height:36px;border-radius:12px}
  .portal-nav-icon .rg-icon{width:27px;height:27px}
  .portal-v071 .personal-hero{padding:22px 20px;grid-template-columns:1fr}
  .launcher-section{padding:18px;border-radius:21px}
  .launcher-heading{align-items:flex-start}
  .launcher-heading p{text-align:left;max-width:none}
  .portal-launcher-grid{grid-template-columns:1fr}
  .portal-launch-card{min-height:96px;grid-template-columns:60px minmax(0,1fr) 28px;padding:14px}
  .portal-launch-icon{width:60px;height:60px;border-radius:19px}
  .portal-launch-icon .rg-icon{width:39px;height:39px}
  .portal-launch-copy strong{font-size:24px}
  .zone-transition-card{grid-template-columns:68px minmax(0,1fr);gap:15px;padding:20px}
  .zone-transition-icon{width:68px;height:68px;border-radius:21px}
  .zone-svg{width:43px;height:43px}
  .zone-transition-spinner{grid-column:1/-1;justify-self:center;width:28px;height:28px}
  .zone-transition-copy h2{font-size:26px}
}
@media(max-width:420px){
  .portal-nav-item{min-width:79px}
  .launcher-section{padding:15px}
  .portal-launch-card{grid-template-columns:56px minmax(0,1fr) 25px;gap:12px}
  .portal-launch-icon{width:56px;height:56px}
  .portal-launch-icon .rg-icon{width:36px;height:36px}
  .portal-launch-copy strong{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.portal-launch-card,.zone-transition{animation:none;transition:none}.zone-transition-spinner{animation-duration:1.5s}}


/* v0.7.2 · Puente de navegación: el Portal permanece como origen del historial */
.entering-page{min-height:100vh;margin:0;background:radial-gradient(circle at 50% 15%,#174b8d 0,#071b37 42%,#031126 100%);color:#fff;font-family:Arial,sans-serif}
.entering-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.entering-card{width:min(92vw,470px);display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 28px 27px;border:1px solid rgba(241,210,139,.7);border-radius:29px;background:linear-gradient(145deg,rgba(13,45,91,.98),rgba(5,24,49,.98));box-shadow:0 30px 85px rgba(0,0,0,.44),inset 0 0 0 1px rgba(255,255,255,.07)}
.entering-brand{color:#f1d28b;font-size:12px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.entering-symbol{width:92px;height:92px;margin:22px 0 17px;border-radius:28px;display:grid;place-items:center;color:#071b37;background:linear-gradient(145deg,#f6d878,#bd871e);box-shadow:0 15px 34px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.65)}
.entering-svg{width:57px;height:57px;display:block;stroke-width:3.5}
.entering-card h1{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(29px,7vw,39px);line-height:1.05;color:#fff8e9}
.entering-card p{margin:0;color:#dbe6f7;font-size:16px}
.entering-spinner{width:34px;height:34px;margin:24px 0 17px;border:4px solid rgba(255,255,255,.22);border-top-color:#f1d28b;border-radius:50%;animation:zoneSpin .8s linear infinite}
.entering-manual,.entering-back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:13px;text-decoration:none;font-weight:900}
.entering-manual{padding:0 20px;background:#f0d17f;color:#071b37}
.entering-back{margin-top:10px;padding:0 15px;color:#dbe6f7;border:1px solid rgba(255,255,255,.2)}
@media(max-width:520px){.entering-card{padding:29px 20px 23px}.entering-symbol{width:82px;height:82px}.entering-svg{width:51px;height:51px}}

/* RG_PORTAL_FAMILY_PARTICIPATION_CSS_V1_0_0 */
.family-participation-section {
  margin-top: 1rem;
}

.family-participation-hero {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.1rem;
  border: 1px solid rgba(176, 128, 32, 0.24);
  border-radius: 1.1rem;
  background: linear-gradient(145deg, #fffaf0, #ffffff 58%);
  box-shadow: 0 0.9rem 2.2rem rgba(24, 47, 82, 0.08);
}

.family-participation-hero h1,
.family-participation-hero h2 {
  margin: 0.2rem 0;
  color: #082951;
}

.family-code {
  color: #6a7890;
  font-size: 0.82rem;
  font-weight: 800;
}

.family-financial-state {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: #fff0cf;
  color: #775412;
  font-weight: 900;
}

.family-financial-state.clear {
  background: #e4f6eb;
  color: #17683c;
}

.family-financial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin-top: 0.8rem;
}

.family-financial-grid article {
  padding: 0.95rem;
  border: 1px solid rgba(18, 56, 109, 0.12);
  border-radius: 0.9rem;
  background: #fff;
}

.family-financial-grid span,
.family-financial-grid strong,
.family-financial-grid small {
  display: block;
}

.family-financial-grid span {
  color: #66768c;
  font-size: 0.76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.family-financial-grid strong {
  margin: 0.25rem 0;
  color: #092d5a;
  font-size: 1.55rem;
}

.family-member-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.family-member-card {
  padding: 1rem;
  border: 1px solid rgba(18, 56, 109, 0.15);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 0.75rem 1.8rem rgba(18, 56, 109, 0.06);
}

.family-member-card.current-user {
  border-color: rgba(176, 128, 32, 0.48);
  box-shadow: 0 0.9rem 2rem rgba(176, 128, 32, 0.11);
}

.family-member-heading {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  justify-content: space-between;
}

.family-member-heading h3 {
  margin: 0.15rem 0 0;
  color: #082951;
}

.family-member-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.family-member-tag {
  display: inline-flex;
  padding: 0.32rem 0.58rem;
  border-radius: 999px;
  background: #eef3f9;
  color: #37516f;
  font-size: 0.72rem;
  font-weight: 850;
}

.family-member-tag.primary {
  background: #fff0cf;
  color: #775412;
}

.family-member-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 0.9rem;
}

.family-member-totals span {
  padding: 0.7rem;
  border-radius: 0.75rem;
  background: #f5f8fc;
}

.family-member-totals small,
.family-member-totals strong {
  display: block;
}

.family-member-totals small {
  color: #68788f;
  font-size: 0.7rem;
  font-weight: 850;
  text-transform: uppercase;
}

.family-member-totals strong {
  margin-top: 0.16rem;
  color: #092d5a;
}

.family-months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.family-month {
  padding: 0.55rem;
  border-radius: 0.7rem;
  background: #fff2e8;
  color: #85502d;
}

.family-month.paid {
  background: #e9f7ef;
  color: #1d6840;
}

.family-month strong,
.family-month small {
  display: block;
}

.family-month small {
  margin-top: 0.12rem;
  font-size: 0.7rem;
}

.family-payment-details {
  margin-top: 0.8rem;
  border-top: 1px solid rgba(18, 56, 109, 0.12);
  padding-top: 0.75rem;
}

.family-payment-details summary {
  cursor: pointer;
  color: #1b4f86;
  font-weight: 850;
}

.family-payment-list {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.6rem;
}

.family-payment-list p {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.65rem;
  background: #f5f8fc;
  color: #475a74;
}

.family-link-pending {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px dashed rgba(18, 56, 109, 0.24);
  border-radius: 1rem;
  background: #f8fafc;
  color: #4f6077;
}

@media (max-width: 760px) {
  .family-participation-hero,
  .family-member-heading {
    display: grid;
  }

  .family-financial-state {
    justify-self: start;
  }

  .family-financial-grid,
  .family-member-totals {
    grid-template-columns: 1fr;
  }

  .family-months {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
