/* ============================================================
   AG Casco Histórico Puente Alto · Sistema de socios
   Estilos según Manual de Marca 2023
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Source+Sans+3:wght@300;400;500;600;700&display=swap");

:root{
  /* Paleta oficial */
  --crema:#FEFAF0;
  --marfil:#F7EFDD;
  --cafe-negro:#1D140D;
  --chocolate:#391E14;
  --madera:#57381D;
  --dorado:#B88A45;
  --arena:#B0A179;
  --palmera:#365448;
  --ceramica:#3786AF;

  /* Estados (derivados de la paleta, tono patrimonial) */
  --ok:#365448;        --ok-soft:#E4EBE5;
  --warn:#9A7B2E;      --warn-soft:#F3EBD4;
  --alert:#A45A2A;     --alert-soft:#F1E3D5;
  --danger:#8C3A24;    --danger-soft:#EFDED7;

  /* Tipografías */
  --serif-h1:"Cinzel","Trajan Pro",serif;
  --serif-h2:"Cormorant Garamond","EB Garamond",serif;
  --sans:"Source Sans 3",system-ui,sans-serif;

  /* Alias compatibilidad (estilos inline heredados) */
  --rose:var(--madera);
  --cream:var(--marfil);
  --sand:var(--marfil);
  --berry:var(--chocolate);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;font-family:var(--sans);background:var(--crema);color:var(--cafe-negro);line-height:1.6}
body{min-height:100vh;min-height:100dvh}
a{color:var(--madera);text-decoration:none}
a:hover{color:var(--chocolate);text-decoration:underline}
.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 14px;background:var(--crema);color:var(--chocolate);border:2px solid var(--dorado);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--ceramica);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── Pantalla de login ── */
.center-screen{
  min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:
    radial-gradient(900px 500px at 80% -20%, color-mix(in srgb,var(--madera),transparent 75%), transparent 60%),
    radial-gradient(700px 460px at -10% 120%, color-mix(in srgb,var(--palmera),transparent 80%), transparent 60%),
    var(--chocolate);
}
.card{
  background:var(--crema);
  border:1px solid color-mix(in srgb,var(--dorado),transparent 45%);
  padding:44px 40px;max-width:460px;width:100%;position:relative;
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.card::before{content:"";position:absolute;inset:7px;border:1px solid color-mix(in srgb,var(--dorado),transparent 70%);pointer-events:none}
.card .logo-ring{
  width:84px;height:84px;border-radius:999px;margin:0 auto 18px;
  background:var(--marfil);border:1px solid color-mix(in srgb,var(--dorado),transparent 45%);
  display:grid;place-items:center;overflow:hidden;
}
.card .logo-ring img{width:100%;height:100%;object-fit:cover}
.card h1{
  font-family:var(--serif-h1);font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--chocolate);margin:0 0 6px;font-size:24px;text-align:center;line-height:1.15;
}
.card .subtitle{font-family:var(--serif-h2);font-style:italic;color:var(--madera);text-align:center;margin:0 0 26px;font-size:16px}
.card .chip{
  display:inline-block;margin-bottom:16px;white-space:nowrap;
  padding:6px 14px;background:var(--chocolate);color:var(--dorado);
  font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.22em;border:1px solid var(--dorado);
}

/* ── Formularios ── */
input,select,textarea{
  width:100%;padding:12px 14px;border:1px solid color-mix(in srgb,var(--madera),transparent 60%);
  min-height:46px;font-size:16px;font-family:var(--sans);background:var(--crema);color:var(--cafe-negro);
}
input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--ceramica),transparent 35%);outline-offset:1px;border-color:var(--ceramica)}
label{display:block;font-family:var(--sans);font-size:12px;color:var(--madera);margin:14px 0 6px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

/* ── Botones ── */
button,.btn{
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  background:var(--chocolate);color:var(--marfil);border:1px solid var(--chocolate);
  min-height:44px;padding:12px 24px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;font-family:var(--sans);transition:.16s;
}
button:hover,.btn:hover{background:var(--madera);border-color:var(--madera);text-decoration:none;color:var(--marfil)}
button.ghost,.btn.ghost{background:transparent;color:var(--chocolate);border:1px solid var(--dorado)}
button.ghost:hover,.btn.ghost:hover{background:var(--dorado);color:var(--cafe-negro)}
button.gold,.btn.gold{background:var(--dorado);color:var(--cafe-negro);border-color:var(--dorado)}
button.gold:hover,.btn.gold:hover{background:var(--madera);color:var(--marfil)}
button.danger,.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
button:disabled{opacity:.5;cursor:not-allowed}
button.compact{min-height:40px;padding:8px 14px}

/* ── Mensajes ── */
.error-msg{color:var(--danger);background:var(--danger-soft);padding:11px 14px;font-size:14px;margin:10px 0;border-left:3px solid var(--danger)}
.success-msg{color:var(--ok);background:var(--ok-soft);padding:11px 14px;font-size:14px;margin:10px 0;border-left:3px solid var(--ok)}
.info-msg{color:var(--madera);background:var(--marfil);padding:11px 14px;font-size:13px;margin:10px 0;border-left:3px solid var(--dorado)}

/* ── Topbar ── */
.topbar{
  background:var(--chocolate);color:var(--marfil);padding:12px 28px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  position:sticky;top:0;z-index:20;
  border-bottom:2px solid var(--dorado);
}
.topbar button.ghost{color:var(--marfil);border-color:color-mix(in srgb,var(--marfil),transparent 55%)}
.topbar button.ghost:hover{background:var(--dorado);color:var(--cafe-negro);border-color:var(--dorado)}
.topbar .brand{display:flex;align-items:center;gap:14px}
.topbar .brand:hover{text-decoration:none}
.topbar .brand .mark{width:46px;height:46px;border-radius:999px;background:var(--marfil);border:1px solid var(--dorado);overflow:hidden;display:grid;place-items:center;flex:0 0 auto}
.topbar .brand .mark img{width:100%;height:100%;object-fit:cover}
.topbar .brand h1{margin:0;font-family:var(--serif-h1);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;line-height:1.15;color:var(--marfil)}
.topbar .brand .sub{font-family:var(--serif-h2);font-style:italic;font-size:12px;color:var(--arena)}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap}
.topbar nav a{color:var(--marfil);padding:9px 15px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid transparent}
.topbar nav a:hover{color:var(--dorado);text-decoration:none;border-bottom-color:color-mix(in srgb,var(--dorado),transparent 40%)}
.topbar nav a.active{color:var(--dorado);border-bottom-color:var(--dorado)}
.topbar .user{font-size:11px;color:var(--arena);letter-spacing:.1em;text-transform:uppercase;text-align:right;white-space:nowrap}
.topbar .user b{color:var(--marfil);font-family:var(--serif-h2);font-style:italic;font-weight:600;display:block;font-size:15px;letter-spacing:0;text-transform:none;line-height:1.25}
.account-actions{display:flex;align-items:center;gap:14px}
.section-kicker{display:block;color:var(--madera);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px}

/* ── Layout ── */
.container{max-width:1120px;margin:34px auto;padding:0 24px}
.section{
  background:var(--crema);border:1px solid color-mix(in srgb,var(--dorado),transparent 60%);
  padding:30px;margin-bottom:24px;position:relative;
}
.loading{display:flex;align-items:center;gap:10px;color:var(--madera);min-height:48px}
.loading::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,var(--dorado),transparent 55%);border-top-color:var(--madera);animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.section h2{
  font-family:var(--serif-h2);font-weight:700;color:var(--chocolate);margin:0 0 18px;font-size:26px;
  padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--madera),transparent 75%);
}
.section h2::after{content:"";display:block;width:64px;height:4px;margin-top:12px;
  background:linear-gradient(90deg,var(--dorado) 0 10px,transparent 10px 12px,var(--madera) 12px 22px,transparent 22px 24px,var(--chocolate) 24px 34px,transparent 34px 36px,var(--palmera) 36px 46px)}
.section h3{font-family:var(--serif-h1);text-transform:uppercase;letter-spacing:.05em;color:var(--chocolate);font-size:15px;margin:18px 0 10px}

/* ── Badges de estado ── */
.badge{display:inline-block;padding:4px 13px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent}
.badge.habilitado{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok),transparent 60%)}
.badge.inscrito{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn),transparent 60%)}
.badge.no_inscrito_pago{background:var(--alert-soft);color:var(--alert);border-color:color-mix(in srgb,var(--alert),transparent 60%)}
.badge.no_inscrito_post{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger),transparent 60%)}

/* ── Tabla padrón ── */
table.padron{width:100%;border-collapse:collapse;font-size:14px}
.table-wrap{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid color-mix(in srgb,var(--madera),transparent 82%)}
.table-wrap table.padron{min-width:720px}
table.padron thead{background:var(--chocolate);color:var(--marfil)}
table.padron th{padding:12px;text-align:left;font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
table.padron td{padding:11px 12px;border-bottom:1px solid color-mix(in srgb,var(--madera),transparent 82%);vertical-align:top}
table.padron tbody tr:hover{background:var(--marfil)}
table.padron tbody tr.clickable{cursor:pointer}
table.padron .nm{font-family:var(--serif-h2);font-weight:600;font-size:16px;color:var(--chocolate)}
table.padron .rt{color:var(--madera);font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace}
table.padron .empty{color:color-mix(in srgb,var(--cafe-negro),transparent 65%);font-style:italic}
table.padron tfoot td{background:var(--marfil);font-family:var(--serif-h2)}

/* ── Stats ── */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:14px 0}
.stat{background:var(--marfil);padding:20px;text-align:center;border:1px solid color-mix(in srgb,var(--dorado),transparent 65%)}
.stat .v{font-family:var(--serif-h1);font-weight:700;font-size:34px;color:var(--chocolate);line-height:1}
.stat .l{color:var(--madera);font-size:11px;margin-top:6px;text-transform:uppercase;letter-spacing:.12em;font-weight:600}
.stat.green{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok),transparent 60%)}
.stat.green .v{color:var(--ok)}
.stat.yellow{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn),transparent 60%)}
.stat.yellow .v{color:var(--warn)}
.stat.orange{background:var(--alert-soft);border-color:color-mix(in srgb,var(--alert),transparent 60%)}
.stat.orange .v{color:var(--alert)}
.stat.red{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger),transparent 60%)}
.stat.red .v{color:var(--danger)}

/* ── Ficha ── */
.ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
.ficha-grid .full{grid-column:span 2}
.field{padding:15px;background:var(--marfil);border:1px solid color-mix(in srgb,var(--madera),transparent 80%)}
.field label{margin:0 0 5px;color:var(--madera);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.field .val{color:var(--cafe-negro);font-size:16px;font-weight:500;font-family:var(--serif-h2)}
.field .val.empty{color:color-mix(in srgb,var(--cafe-negro),transparent 60%);font-style:italic;font-weight:normal}
.field input{margin-top:6px;padding:9px 11px}

/* ── Requerimientos ── */
.req-entry{display:flex;align-items:center;justify-content:space-between;gap:28px}.req-entry h2{margin-bottom:8px}.req-entry p{max-width:68ch;margin:0;color:var(--madera)}.req-entry .btn{flex:0 0 auto}
.req-hero{background:var(--chocolate);color:var(--marfil);padding:32px;border:1px solid var(--dorado);margin-bottom:24px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px}
.req-hero h2{font-family:var(--serif-h2);font-size:34px;margin:4px 0 8px;color:var(--marfil)}.req-hero p{margin:0;color:var(--arena);max-width:66ch}.req-hero .section-kicker{color:var(--dorado)}
.req-stats{display:flex;gap:10px;flex-wrap:wrap}.req-stat{min-width:92px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--dorado),transparent 45%);text-align:center}.req-stat b{display:block;font-family:var(--serif-h1);font-size:24px;color:var(--dorado)}.req-stat span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--marfil)}
.req-layout{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:24px;align-items:start}.req-form-card{position:sticky;top:92px}.req-form-card textarea{min-height:150px;resize:vertical}.req-form-actions{display:flex;align-items:center;gap:12px;margin-top:18px}
.req-toolbar{display:grid;grid-template-columns:1fr 190px 190px;gap:10px;margin-bottom:14px}.req-list{display:grid;gap:12px}
.req-card{background:var(--crema);border:1px solid color-mix(in srgb,var(--madera),transparent 75%);padding:18px;display:grid;grid-template-columns:1fr auto;gap:14px;transition:border-color .18s,box-shadow .18s}.req-card:hover{border-color:var(--dorado);box-shadow:0 6px 18px color-mix(in srgb,var(--chocolate),transparent 90%)}
.req-card h3{font-family:var(--serif-h2);font-size:21px;margin:5px 0 4px;text-transform:none;letter-spacing:0}.req-card .meta{font-size:12px;color:var(--madera)}.req-card .excerpt{margin:8px 0 0;color:color-mix(in srgb,var(--cafe-negro),transparent 22%)}.req-card .actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px}.req-card .mini-link{min-height:38px;padding:7px 12px;font-size:11px}
.req-badges{display:flex;gap:7px;flex-wrap:wrap}.req-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid currentColor;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.req-badge.nuevo{color:#1d4f73;background:#e3eff6}.req-badge.en_revision{color:#775d10;background:#f6efcf}.req-badge.en_gestion{color:#684019;background:#f2e3d4}.req-badge.esperando_socio{color:#773d22;background:#f4e0d6}.req-badge.resuelto{color:#285744;background:#e2eee7}.req-badge.cerrado{color:#555;background:#e9e6df}.req-badge.prioridad{color:var(--madera);background:var(--marfil)}.req-badge.urgente{color:var(--danger);background:var(--danger-soft)}
.req-empty{padding:42px 24px;text-align:center;background:var(--marfil);border:1px dashed var(--arena)}.req-empty h3{font-family:var(--serif-h2);font-size:24px}.req-empty p{color:var(--madera)}
.req-dialog{width:min(820px,calc(100vw - 32px));max-height:88dvh;border:1px solid var(--dorado);padding:0;background:var(--crema);color:var(--cafe-negro);box-shadow:0 24px 70px rgba(0,0,0,.45)}.req-dialog::backdrop{background:rgba(29,20,13,.65)}.req-dialog-head{position:sticky;top:0;z-index:2;background:var(--chocolate);color:var(--marfil);padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:start}.req-dialog-head h2{font-family:var(--serif-h2);font-size:27px;margin:0}.req-dialog-head button{min-width:44px;padding:8px}.req-dialog-body{padding:24px}.req-description{white-space:pre-wrap;background:var(--marfil);border-left:3px solid var(--dorado);padding:16px;margin:16px 0}.req-manage{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;padding:16px;background:var(--marfil);margin:18px 0}.req-manage label{margin-top:0}.req-comments{display:grid;gap:10px;margin:16px 0}.req-comment{padding:13px 15px;border:1px solid color-mix(in srgb,var(--madera),transparent 78%);background:#fff}.req-comment.internal{background:var(--warn-soft);border-color:var(--warn)}.req-comment.system{background:var(--marfil);font-style:italic}.req-comment .by{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--madera);margin-bottom:4px}.req-comment p{margin:0;white-space:pre-wrap}.req-comment-form textarea{min-height:92px;resize:vertical}.req-comment-form .inline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.req-comment-form label.check{display:flex;align-items:center;gap:8px;margin:0;text-transform:none;letter-spacing:0;font-size:13px}.req-comment-form input[type=checkbox]{width:18px;min-height:18px}
.req-dialog-head button.ghost{color:var(--marfil);border-color:color-mix(in srgb,var(--marfil),transparent 45%)}.req-dialog-head button.ghost:hover{background:var(--dorado);border-color:var(--dorado);color:var(--cafe-negro)}

/* Registro público */
.registration-page{background:var(--chocolate)}
.registration-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(520px,1.18fr);max-width:1280px;margin:auto;background:var(--crema)}
.registration-intro{padding:68px clamp(32px,6vw,78px);background:linear-gradient(145deg,color-mix(in srgb,var(--chocolate),#000 8%),var(--madera));color:var(--marfil);display:flex;flex-direction:column;justify-content:center}
.registration-intro .section-kicker{color:var(--dorado);margin-top:58px}.registration-intro h1{font-family:var(--serif-h1);font-size:clamp(36px,5vw,64px);line-height:1.02;letter-spacing:.015em;margin:8px 0 20px}.registration-intro>p{max-width:55ch;color:var(--arena);font-size:17px}
.public-back{color:var(--marfil);font-size:13px}.registration-brand{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700}.registration-brand img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:1px solid var(--dorado)}
.registration-steps{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:18px;counter-reset:steps}.registration-steps li{display:grid;grid-template-columns:34px 1fr;column-gap:13px;counter-increment:steps}.registration-steps li::before{content:counter(steps);grid-row:1/3;width:30px;height:30px;border:1px solid var(--dorado);color:var(--dorado);display:grid;place-items:center;font-family:var(--serif-h1)}.registration-steps b{font-family:var(--serif-h2);font-size:17px}.registration-steps span{color:var(--arena);font-size:13px}
.registration-card{padding:64px clamp(30px,6vw,74px);align-self:center;max-width:760px;width:100%}.registration-card h2{font-family:var(--serif-h2);font-size:34px;color:var(--chocolate);margin:0 0 8px}.form-note,.form-help{color:var(--madera);font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .full{grid-column:1/-1}.consent{display:flex;align-items:flex-start;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;line-height:1.45;margin:20px 0}.consent input{width:19px;min-height:19px;flex:0 0 auto}.registration-card button{width:100%}.registration-login{text-align:center;margin-top:22px;font-size:14px}.success-action{margin-top:18px}.success-action .btn{width:100%}

/* Centro de control */
.control-hero{background:var(--chocolate);color:var(--marfil);border:1px solid var(--dorado);padding:30px 32px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:22px}.control-hero .section-kicker{color:var(--dorado)}.control-hero h2{font-family:var(--serif-h2);font-size:36px;margin:3px 0}.control-hero p{margin:0;color:var(--arena)}.control-hero button.ghost{color:var(--marfil);border-color:var(--dorado)}
.control-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.control-metric{min-width:0;background:var(--marfil);border:1px solid color-mix(in srgb,var(--dorado),transparent 55%);padding:18px}.control-metric span,.control-metric small{display:block;color:var(--madera)}.control-metric span{font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}.control-metric b{display:block;font-family:var(--serif-h1);font-size:30px;line-height:1.15;color:var(--chocolate);margin:5px 0}.control-metric small{font-size:12px}.control-metric.urgent{background:var(--warn-soft);border-color:var(--warn)}.control-metric.urgent b{color:var(--warn)}.control-metric.money{grid-column:span 1}.control-metric.money b{font-size:24px}
.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.control-panel{margin:0;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.panel-heading h2{margin-bottom:0}.panel-heading .btn{flex:0 0 auto}.count-pill{min-width:36px;height:36px;padding:0 10px;border-radius:50%;display:grid;place-items:center;background:var(--chocolate);color:var(--dorado);font-weight:700}.control-list{display:grid;gap:9px}.control-item{padding:14px;background:var(--marfil);border-left:3px solid var(--dorado);display:flex;justify-content:space-between;align-items:center;gap:14px}.control-item h3{font-family:var(--serif-h2);font-size:18px;text-transform:none;letter-spacing:0;margin:2px 0}.control-item p,.control-item small{display:block;margin:0;color:var(--madera);font-size:12px}.item-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.item-actions button{padding:7px 10px;min-height:36px;font-size:10px}.control-empty{padding:28px;text-align:center;background:var(--marfil);border:1px dashed var(--arena);color:var(--madera)}.control-empty p{margin:0}.type-pill,.priority-label{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--madera);font-weight:700}.payment-item>b{font-family:var(--serif-h2);font-size:18px;color:var(--chocolate)}
.users-panel{margin-top:20px}.search-label{margin:0;min-width:260px}.search-label input,.search-label select{margin:0}.control-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:13px}.control-table thead{background:var(--chocolate);color:var(--marfil)}.control-table th{text-align:left;padding:11px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.control-table td{padding:10px;border-bottom:1px solid color-mix(in srgb,var(--madera),transparent 82%);vertical-align:middle}.control-table td:first-child{min-width:210px}.control-table strong,.control-table small{display:block}.control-table small,.muted{font-size:11px;color:var(--madera)}.control-table select{min-width:135px;min-height:38px;padding:7px 9px;font-size:13px}.switch-label{display:flex;align-items:center;gap:7px;margin:0;text-transform:none;letter-spacing:0;font-size:12px;white-space:nowrap}.switch-label input{width:18px;min-height:18px}.payment-total{font-weight:700;color:var(--chocolate)}

/* Flujo editorial */
.publication-hero{align-items:center}.publication-flow{display:flex;gap:8px;flex-wrap:wrap}.publication-flow span{padding:8px 10px;border:1px solid color-mix(in srgb,var(--dorado),transparent 35%);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dorado)}
.publication-layout{display:grid;grid-template-columns:minmax(320px,410px) 1fr;gap:24px;align-items:start}.publication-form-card{position:sticky;top:92px}.publication-form-card textarea{min-height:92px;resize:vertical}.publication-form-card .publication-content-input{min-height:190px}.publication-form-card small{display:block;color:var(--madera);font-size:11px;margin-top:4px}.publication-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.publication-actions button{padding-inline:14px}.publication-list{display:grid;gap:14px}.publication-admin-card{display:grid;grid-template-columns:150px 1fr;border:1px solid color-mix(in srgb,var(--madera),transparent 72%);background:var(--crema);overflow:hidden}.publication-admin-card>img,.publication-placeholder{width:150px;height:100%;min-height:190px;object-fit:cover}.publication-placeholder{background:linear-gradient(145deg,var(--chocolate),var(--madera));color:var(--dorado);display:grid;place-items:center;font-family:var(--serif-h1);text-transform:uppercase;letter-spacing:.12em}.publication-admin-body{padding:18px}.publication-admin-body h3{font-family:var(--serif-h2);font-size:23px;text-transform:none;letter-spacing:0;margin:7px 0}.publication-admin-body p{margin:0 0 8px;color:color-mix(in srgb,var(--cafe-negro),transparent 18%)}.publication-admin-body small{color:var(--madera)}.publication-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--madera)}.publication-status{padding:4px 8px;border:1px solid currentColor;font-weight:700}.publication-status.borrador{color:#555;background:#eee}.publication-status.pendiente{color:var(--warn);background:var(--warn-soft)}.publication-status.publicado{color:var(--ok);background:var(--ok-soft)}.publication-status.rechazado{color:var(--danger);background:var(--danger-soft)}.publication-status.archivado{color:var(--madera);background:var(--marfil)}.review-note{background:var(--warn-soft);border-left:3px solid var(--warn);padding:9px 11px;margin-top:12px;font-size:12px}.publication-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.publication-card-actions button{padding:7px 10px;min-height:36px;font-size:10px}

/* Archivo documental y calidad de datos */
.control-metrics{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
.document-hero{align-items:flex-start}.document-hero .btn{flex:0 0 auto}.quality-metrics .control-metric b{font-variant-numeric:tabular-nums}.document-layout{display:grid;grid-template-columns:minmax(310px,390px) 1fr;gap:24px;align-items:start}.document-form-card{position:sticky;top:92px}.document-form-card textarea{min-height:100px;resize:vertical}.document-form-card small{display:block;color:var(--madera);font-size:11px;margin-top:4px}.document-form-card button{width:100%;margin-top:18px}.document-filters{display:flex;gap:8px;flex-wrap:wrap}.document-filters select{min-width:150px}.document-list,.quality-list{display:grid;gap:12px}.document-card{border:1px solid color-mix(in srgb,var(--madera),transparent 72%);background:var(--crema);padding:18px}.document-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.document-card h3{font-family:var(--serif-h2);font-size:22px;text-transform:none;letter-spacing:0;margin:8px 0 3px}.document-card p,.document-card>small{color:var(--madera);font-size:12px;margin:0}.document-status{display:inline-flex;padding:4px 8px;border:1px solid currentColor;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-right:7px}.document-status.pendiente{color:var(--warn);background:var(--warn-soft)}.document-status.verificado{color:var(--ok);background:var(--ok-soft)}.document-status.observado{color:var(--danger);background:var(--danger-soft)}.document-status.archivado{color:var(--madera);background:var(--marfil)}.document-review{display:grid;grid-template-columns:150px 1fr auto;gap:9px;align-items:end;margin:14px 0;padding:12px;background:var(--marfil)}.document-review label{margin:0}.document-review label span{display:block;margin-bottom:5px}.document-review input,.document-review select{min-height:40px;padding:8px 10px}.document-review button{min-height:40px}.quality-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;background:var(--marfil);border-left:3px solid var(--warn)}.quality-item h3{font-family:var(--serif-h2);font-size:18px;text-transform:none;letter-spacing:0;margin:0 0 5px}.quality-item p{display:flex;gap:5px;flex-wrap:wrap;margin:0}.quality-flag{display:inline-flex;padding:3px 7px;border:1px solid var(--warn);color:var(--warn);background:var(--warn-soft);font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.quality-flag.danger{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}

/* ── Footer ── */
footer{text-align:center;color:var(--madera);font-family:var(--serif-h2);font-style:italic;font-size:14px;padding:34px 20px;border-top:1px solid color-mix(in srgb,var(--dorado),transparent 60%);margin-top:30px;background:var(--marfil)}

@media (max-width:600px){
  .ficha-grid{grid-template-columns:1fr}
  .ficha-grid .full{grid-column:span 1}
  .topbar{position:relative;flex-direction:column;align-items:stretch;padding:14px 18px}
  .topbar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .topbar nav a{text-align:center;padding:11px 8px;border:1px solid color-mix(in srgb,var(--marfil),transparent 82%)}
  .account-actions{justify-content:space-between}
  .topbar .user{text-align:left}
  .container{margin:20px auto;padding:0 14px}
  .section{padding:20px 16px}
  .card{padding:36px 24px}
  table.padron{font-size:13px}
  table.padron th,table.padron td{padding:8px 6px}
}

@media (max-width:900px){.req-layout{grid-template-columns:1fr}.req-form-card{position:static}.req-toolbar{grid-template-columns:1fr 1fr}.req-toolbar input{grid-column:1/-1}.req-manage{grid-template-columns:1fr 1fr}.req-manage button{grid-column:1/-1}.req-entry,.req-hero{grid-template-columns:1fr;display:grid;align-items:start}.req-entry .btn{justify-self:start}}
@media (max-width:1000px){.registration-shell{grid-template-columns:1fr}.registration-intro{padding:46px clamp(24px,6vw,58px)}.registration-intro .section-kicker{margin-top:34px}.registration-steps{grid-template-columns:repeat(3,1fr)}.registration-card{max-width:none}.control-metrics{grid-template-columns:repeat(3,1fr)}.control-grid{grid-template-columns:1fr}.publication-layout{grid-template-columns:1fr}.publication-form-card{position:static}}
@media (max-width:1000px){.document-layout{grid-template-columns:1fr}.document-form-card{position:static}}
@media (max-width:600px){.req-toolbar,.req-manage{grid-template-columns:1fr}.req-card{grid-template-columns:1fr}.req-card .actions{align-items:flex-start}.req-dialog-body{padding:18px}.req-stats{display:grid;grid-template-columns:repeat(3,1fr)}.req-stat{min-width:0}}
@media (max-width:650px){.registration-intro,.registration-card{padding:34px 20px}.registration-intro h1{font-size:38px}.registration-steps{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.control-hero{align-items:flex-start;flex-direction:column;padding:24px 20px}.control-metrics{grid-template-columns:1fr 1fr}.control-metric.money{grid-column:1/-1}.panel-heading{flex-direction:column}.search-label{min-width:0;width:100%}.publication-admin-card{grid-template-columns:1fr}.publication-admin-card>img,.publication-placeholder{width:100%;height:180px;min-height:0}.publication-actions button{width:100%}}
@media (max-width:650px){.document-card-head,.quality-item{align-items:flex-start;flex-direction:column}.document-review{grid-template-columns:1fr}.document-filters{width:100%}.document-filters select{width:100%}.quality-item .btn{width:100%}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
