:root{--blue:#102c5b;--wine:#8d2555;--ink:#1c304b;--light:#f3f5fa}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--light);font:15px system-ui,-apple-system,Segoe UI,Arial,sans-serif}h1,h2{margin-top:0}a{color:var(--wine)}button,input,select,textarea{font:inherit}button{background:var(--wine);border:0;color:white;border-radius:8px;padding:11px 18px;cursor:pointer}button:hover{filter:brightness(.9)}button.secondary{background:#e9edf5;color:#213b62}.layout{display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside{background:var(--blue);color:white;padding:28px 17px;display:flex;flex-direction:column}aside .brand{font-size:20px;font-weight:800;margin:0 0 32px 8px;letter-spacing:1px}aside .brand span{color:#e5bace}aside .brand small{display:block;font-size:11px;font-weight:400;color:#b6c8e6;letter-spacing:0;margin-top:6px}nav{display:grid;gap:5px}nav a{color:#dae5f7;text-decoration:none;padding:12px 13px;border-radius:8px}nav a:hover,nav a.active{background:var(--wine);color:white}.foot{margin-top:auto;font-size:12px;line-height:1.8;color:#b7cbe8;padding:18px 8px;border-top:1px solid #ffffff24}main{padding:35px;min-width:0;max-width:1500px;width:100%}header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:26px}header .toolbar{display:flex;align-items:center;gap:15px;font-size:12px}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:#718097}.hero{padding:32px;background:linear-gradient(115deg,#153b74,#8d2555);color:#fff;border-radius:15px}.hero .eyebrow{color:#e9c2d5}.hero h1{font-size:31px;margin:8px 0}.hero p{line-height:1.5;color:#f3e7ee}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:15px;margin:20px 0}.stat,.panel{background:white;border:1px solid #dce3ed;border-radius:12px;padding:24px;margin-bottom:20px}.stat strong{font-size:27px;display:block;margin-top:10px}.panel h2{font-size:21px}.gridform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.gridform label{display:grid;gap:7px;font-weight:600;font-size:13px}.gridform button{justify-self:start}.gridform .wide{grid-column:1/-1}input,select,textarea{width:100%;padding:11px;border:1px solid #bfcadd;border-radius:8px;background:white;color:#20344a}textarea{min-height:90px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}th,td{border-bottom:1px solid #e0e7ee;padding:12px;text-align:left;vertical-align:top}th{background:#f1f4f9}.alert{border-radius:9px;padding:13px 17px;margin:10px 0 20px;background:#d9f2e4;color:#135739}.alert.error{background:#fce5e5;color:#8a1b1b}.inline{display:flex;gap:5px}.inline input{min-width:160px}.hint{font-size:12px;color:#66778c;line-height:1.7}.loginbg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(125deg,#102c5b,#8d2555);padding:18px}.loginpanel{width:min(500px,100%);background:#fff;border-radius:17px;padding:35px;box-shadow:0 20px 60px #0003}.loginpanel h1{font-size:32px;color:var(--blue);margin:10px 0}.loginpanel form{display:grid;gap:14px;margin:22px 0}.loginpanel label{display:grid;gap:7px}.loginpanel .eyebrow{color:var(--wine)}@media(max-width:750px){.layout{display:block}aside{padding:16px}.foot{display:none}nav{display:flex;overflow:auto}nav a{white-space:nowrap;font-size:12px}aside .brand{margin-bottom:12px}main{padding:20px}header{align-items:start}.gridform{grid-template-columns:1fr}.gridform .wide{grid-column:auto}.hero h1{font-size:24px}.loginpanel{padding:23px}}@media print{aside,header,form,button{display:none!important}.layout{display:block}main{max-width:none;padding:0}.panel{border:0}body{background:white}}

/* CERVA ADMIN 1.1 — expedientes y reportes */
.profilehead{display:flex;align-items:flex-start;gap:26px}.portrait{width:155px;height:170px;object-fit:cover;border-radius:14px;border:1px solid #dde4ef;flex-shrink:0}.portrait.placeholder{display:grid;place-items:center;background:#e8edf5;color:#51617a;font-weight:700}.search{margin:12px 0 18px}.search input{flex:1;min-width:120px}.checkbox{display:flex!important;align-items:center;gap:10px!important;margin:10px 0;font-size:14px}.checkbox input{width:auto}.linkbutton{display:inline-block;background:#8d2555;color:#fff;text-decoration:none;border-radius:8px;padding:11px 16px;font-weight:700}.linkbutton:hover{background:#6e1d40}.report{padding:13px 15px;background:#f7f9fc;margin:10px 0;border:1px solid #dce3ed;border-radius:9px}.report summary{cursor:pointer;font-weight:650}.report p{line-height:1.65}.statementhead{text-align:center;margin-bottom:22px}.statementhead h2{font-size:20px}.printable{max-width:1100px}@media(max-width:600px){.profilehead{display:block}.portrait{margin-bottom:15px}.search{flex-direction:column}.search input{width:100%}}@media print{.printable{display:block}body:has(.printable) .panel:not(.printable),body:has(.printable) .hero,body:has(.printable) .cards{display:none!important}.printable .tablewrap{overflow:visible}body:has(.printable) .linkbutton{display:none}}


/* CERVA ADMIN PRO · identidad oficial (2026) */
:root{--blue:#102c5b;--wine:#862453;--ink:#203250;--light:#f5f7fa;--gold:#cfa641;--line:#dce3ed}
body{background:var(--light)}
.layout aside{background:linear-gradient(165deg,#0e2854 0%,#102c5b 67%,#1c3c6b 100%);border-right:3px solid #b82770}
aside .brand{margin:0 4px 26px;text-align:center;font-size:18px;letter-spacing:.3px}
.logo-side{display:block;width:100%;max-width:210px;height:112px;object-fit:contain;margin:0 auto 6px;background:#fffffffa;border:1px solid #ffffff60;border-radius:13px;padding:10px;box-shadow:0 8px 25px #0002}
aside .brand .brand-wordmark{font-size:15px;color:#fff;font-weight:800;letter-spacing:.7px}
aside .brand .brand-wordmark span{color:#eebddd}
aside .brand small{font-size:11px;color:#c8d7f0}
nav a{transition:background .16s ease,transform .16s ease;border:1px solid transparent}
nav a:hover{background:#344f79;transform:translateX(2px)}
nav a.active{background:#862453;border-color:#be4885}
button,.linkbutton{background:var(--wine);border-radius:9px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bf598c;outline-offset:2px}
header{border-bottom:1px solid #dce3ed;padding-bottom:17px}
.hero{background:linear-gradient(112deg,#102c5b 0%,#26325f 46%,#862453 100%);border-bottom:4px solid #d4b66c;box-shadow:0 10px 30px #17254c16}
.stat,.panel{box-shadow:0 7px 24px #183c6b09;border-color:var(--line)}
.stat strong{color:#862453}
.loginbg{background:radial-gradient(circle at 15% 15%,#344b80 0%,transparent 45%),linear-gradient(140deg,#102c5b,#682246)}
.loginpanel{width:min(535px,100%);border-top:5px solid #862453;text-align:left}
.logo-login-wrap{display:flex;justify-content:center;margin:0 auto 15px}
.logo-login{display:block;max-width:310px;width:88%;max-height:158px;object-fit:contain}
.loginpanel h1{font-size:28px}.pro-label{font-size:12px;color:#fff;background:#862453;letter-spacing:1px;padding:6px 8px;border-radius:5px;vertical-align:middle}
.logo-report{width:218px;max-height:112px;object-fit:contain;display:block;margin:0 auto 12px}
.statementhead{border-bottom:2px solid #d3b66c;padding-bottom:13px}
@media(max-width:750px){.layout aside{border-right:0;border-bottom:3px solid #862453}.logo-side{width:115px;height:66px;display:inline-block;padding:5px;margin:0 12px 0 0;vertical-align:middle}aside .brand{text-align:left;margin:0 0 12px}aside .brand .brand-wordmark{display:inline-block;vertical-align:middle}aside .brand small{display:none}nav a:hover{transform:none}.loginpanel{padding:22px}.logo-login{max-height:130px}}
@media print{.logo-report{max-height:90px}.panel,.stat{box-shadow:none}aside,.loginbg{background:white!important}}

/* CERVA ADMIN PRO 1.1.1 — ajuste seguro del logotipo, sin alterar la base de datos */
.layout { grid-template-columns: 235px minmax(0,1fr); }
.layout > aside { min-width:0; overflow:visible; }
.layout > aside .brand {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:100%; max-width:100%; min-width:0;
  margin:0 0 20px; padding:0 6px;
  text-align:center; font-size:initial; letter-spacing:normal;
}
.layout > aside .brand > img.logo-side {
  display:block !important;
  position:static !important;
  float:none !important;
  flex:0 0 auto;
  width:150px !important;
  max-width:100% !important;
  height:76px !important;
  max-height:76px !important;
  margin:0 auto 10px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:none !important;
}
.layout > aside .brand .brand-wordmark {display:block;max-width:100%;line-height:1.25;text-wrap:balance;}
.layout > aside .brand small {display:block;max-width:100%;line-height:1.4;}
.loginpanel {max-width:100%;}
.loginpanel .logo-login-wrap {width:100%;max-width:100%;height:auto;min-height:0;margin:0 auto 12px;}
.loginpanel img.logo-login {
  display:block !important; position:static !important;
  width:190px !important; max-width:75% !important;
  height:96px !important; max-height:96px !important;
  margin:0 auto !important; object-fit:contain !important;
  transform:none !important;
}
img.logo-report {display:block !important;width:150px !important;height:74px !important;max-width:100% !important;object-fit:contain !important;margin:0 auto 10px !important;}
@media (max-width:750px) {
  .layout {display:block;}
  .layout > aside .brand {display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;padding:0;margin:0 0 12px;text-align:left;flex-wrap:wrap;}
  .layout > aside .brand > img.logo-side {width:92px !important;height:48px !important;max-height:48px !important;margin:0 !important;}
  .layout > aside .brand .brand-wordmark{font-size:14px;}
  .layout > aside .brand small{flex-basis:100%;font-size:10px;}
  .loginpanel img.logo-login{width:150px !important;height:76px !important;max-height:76px !important;}
}

/* 1.2 - controles administrativos */
button.danger{background:#a31f3b;color:#fff;padding:8px 12px;font-size:12px}
.inline-action{display:inline-block;margin-left:10px}
.inline-action button{white-space:nowrap}
.gridform button{min-height:43px}
@media(max-width:600px){.inline-action{display:block;margin:9px 0 0}.tablewrap{max-width:100%}}

/* CERVA ADMIN PRO 1.3 - enfoque de gestión integral inspirado en patrones de ChMS contemporáneos.
   Diseño propio; sin logo institucional, sin scripts ni fuentes de terceros. */
:root{--blue:#142b49;--wine:#7b3159;--ink:#24394e;--light:#f5f7fb;--gold:#c7a76a;--line:#e2e7ef}
body{background:var(--light);color:var(--ink)}
.layout{grid-template-columns:254px minmax(0,1fr)}
.layout aside{background:#142b49;border-right:0;padding:24px 14px}
.layout aside .brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:8px!important;text-align:left!important;margin:0 4px 26px!important;padding:0 8px!important}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#ffffff1e;border:1px solid #ffffff39;color:#fff;font-weight:900;font-size:21px}
.layout aside .brand .brand-wordmark{font-size:17px;font-weight:800;letter-spacing:.2px;color:#fff;line-height:1.2}
.layout aside .brand .brand-wordmark span{color:#e9bcd2}
.layout aside .brand small{color:#b6c7d7;font-size:12px}
nav{gap:4px} nav a{font-size:14px;padding:11px 13px;border-radius:8px;letter-spacing:0;transition:background .16s}
nav a.active{background:#744065;border:1px solid #a35e83}nav a:hover{transform:none;background:#314765}
main{padding:clamp(20px,3vw,42px);max-width:1600px}
header{gap:15px;flex-wrap:wrap}header .eyebrow{font-size:11px;font-weight:800}
.hero{background:linear-gradient(120deg,#1c375a,#6f355c);border:0;border-radius:16px;padding:34px}
.hero h1{font-size:clamp(25px,3vw,36px)}
.stat,.panel{border-radius:14px;border-color:var(--line);box-shadow:0 6px 19px #273b5107}
.stat strong{color:var(--blue)}.stat{border-top:3px solid #8e5077}
.panel h2{color:var(--blue)}
.loginbg{background:linear-gradient(128deg,#142b49,#5c3357)}
.loginpanel{border:0;box-shadow:0 24px 70px #0003}
.app-identity{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:1.5px;color:#7b3159;margin-bottom:20px}
.identity-line{height:3px;width:25px;background:#c7a76a;border-radius:10px}
.loginpanel h1{font-size:31px}
button,.linkbutton{border-radius:9px}button:hover,.linkbutton:hover{filter:brightness(.96)}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.section-title p{color:#66778c;line-height:1.5}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters a{display:inline-block;padding:8px 12px;border-radius:100px;text-decoration:none;color:var(--blue);background:#edf1f6;font-size:13px}
.filters a.current{background:#7b3159;color:#fff}
.badge{display:inline-block;padding:5px 9px;border-radius:30px;background:#edf1f7;color:#344b67;font-size:12px;font-weight:700}
.badge-completado{background:#d9f2e4;color:#17643e}.badge-en_proceso{background:#fff1d5;color:#7b560d}
.compact-form{display:flex;gap:6px;align-items:center;margin:5px 0;flex-wrap:wrap}
.compact-form select{min-width:120px;max-width:180px}.compact-form button{padding:9px 12px}
table tr:hover td{background:#fbfcfe}th{color:#38506e;font-weight:800}
@media(max-width:800px){.layout{display:block}.layout aside{padding:15px}.layout aside .brand{flex-direction:row!important;align-items:center!important;flex-wrap:wrap}.layout aside .brand small{flex-basis:100%}nav{display:flex;gap:5px;overflow-x:auto}nav a{white-space:nowrap;font-size:12px}main{padding:16px}header{align-items:flex-start}.gridform{grid-template-columns:1fr}}
@media print{.filters,.compact-form{display:none!important}.panel{box-shadow:none}}

/* Versión 2.0 - módulos de gestión ampliada, sin logotipos */
.quick-links{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 22px}.quick-links .linkbutton{margin:0}.panel{overflow-wrap:anywhere}.gridform input,.gridform select,.gridform textarea{min-width:0}.tablewrap{max-width:100%;overflow-x:auto} @media(max-width:700px){.quick-links{flex-direction:column}.quick-links a{text-align:center}}
/* CERVA ADMIN PRO 3.0: formularios y tablas móviles */
.panel form.gridform{align-items:end}.panel .hint{line-height:1.55}
.panel table td{vertical-align:top}.panel table form{margin:0}.panel table button{white-space:nowrap}
@media(max-width:720px){.panel{padding:16px}.tablewrap{overflow:auto}.panel table{min-width:610px}.section-title h1{font-size:25px}}

/* CERVA 3.3: reveal only relevant fields by transaction type */
#financeContributionForm [hidden]{display:none!important}
#financeContributionForm .wide{grid-column:1/-1}
#cerva_member_search{max-width:100%}

/* CERVA PRO 3.4 — Panel financiero */
.finance-kpis .stat{border-top:4px solid #8d2555}.finance-kpis small{display:block;font-weight:700;color:#50617a;font-size:13px}.finance-kpis strong{overflow-wrap:anywhere}.finance-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.finance-breakdown .panel{min-width:0}.finance-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.finance-note{padding:12px 16px;border-left:4px solid #8d2555;background:#fff}.finance-panel th:last-child,.finance-panel td:last-child{text-align:right}@media(max-width:850px){.finance-breakdown{grid-template-columns:1fr}.finance-actions a,.finance-actions button{width:100%;text-align:center}}
