/* Esqueleto visual del demo del portal (2026-10-08 v2). Sin fuentes incrustadas ni foto: fase 3 (D-30). */
:root{
  --bg:#f2f2ef;--card:#fff;--ink:#121211;--black:#0b0b0b;--muted:#62625c;--line:#e9e9e4;--line2:#d8d8d2;
  --lime:#e8e60a;--lime-soft:#eef3c2;--lime-ink:#2a3500;--err-bg:#fbe3e1;--err-ink:#8a1c12;
  --title:"Outfit",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;
  --r:12px
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--body);min-width:320px;-webkit-font-smoothing:antialiased}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,p{margin:0}
h1,h2{font-family:var(--title);letter-spacing:-.015em}
:focus-visible{outline:2px solid var(--black);outline-offset:2px}
.sprite{position:absolute;width:0;height:0}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wordmark{display:block;font:600 20px/1 var(--title);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}

/* Acceso */
.acceso{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.acceso-card{width:100%;max-width:400px;padding:28px 22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.acceso-marca{display:flex;align-items:center;gap:12px}
.acceso-logo{display:block;width:44px;height:44px;border-radius:50%;flex:none}
.acceso-sub{margin:8px 0 22px;color:var(--muted);font-size:12.5px}
.acceso-card h1{font-size:22px;margin-bottom:16px}
.form-grid{display:grid;gap:12px}
.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px}
.form-grid input{height:44px;padding:0 12px;border:1px solid var(--line2);border-radius:10px;background:#fafaf8;font-size:15px}
.nota{color:var(--muted);font-size:13px}
.aviso{margin-top:14px;font-size:13px;min-height:1.4em}
.aviso.error{padding:8px 10px;border-radius:8px;background:var(--err-bg);color:var(--err-ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:10px;font-size:13.5px;font-weight:600}
.btn.primary{background:var(--black);color:#fff}
.btn.primary:hover{background:#2b2b29}
.btn.ghost{border-color:var(--line2);background:#fff}
.btn.block{width:100%}

/* Portal */
.side{display:flex;flex-direction:column;padding:22px 14px 18px;background:var(--black);color:#cfcfca}
.side-brand{padding:4px 12px 22px}
.side-brand .wordmark{color:#fff;font-size:22px}
.side-brand small{display:block;margin-top:9px;color:#a3a39d;font-size:12.5px}
.side-nav{display:grid;gap:4px}
.side-nav button{display:flex;align-items:center;gap:13px;min-height:46px;padding:0 14px;border:0;border-radius:10px;background:none;color:#cfcfca;text-align:left;font-size:13.5px}
.side-nav button:hover{background:#171716;color:#fff}
.side-nav button.active{background:#212120;color:#fff;font-weight:600}
.side-nav button.active .ic{color:var(--lime)}
.side-foot{margin-top:22px;padding:18px 8px 0;border-top:1px solid #262625}
.user{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.user b{display:block;color:#fff;font-size:13.5px;font-weight:600}
.user small{color:#a3a39d;font-size:11px;letter-spacing:.08em}
.avatar{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:#262625;color:var(--lime);font:700 13px/1 var(--title);letter-spacing:.04em}
.logout{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 6px;border:0;border-radius:8px;background:none;color:#cfcfca;font-size:13px}
.logout:hover{color:#fff}
.main{width:100%;max-width:1220px;margin:0 auto;padding:20px 16px 48px}
.page-head{margin-bottom:16px}
.page-head h1{font-size:24px;font-weight:700;line-height:1.12}
.page-head .sub{margin-top:5px;color:var(--muted);font-size:13.5px}
.hero{display:flex;align-items:center;min-height:120px;padding:18px 20px;margin-bottom:12px;border-radius:var(--r);background:var(--black);color:#fff}
.hero-brand{margin-bottom:10px;color:#fff;font-size:17px}
.hero-title{margin-bottom:10px;font:italic 700 34px/.92 var(--cond);letter-spacing:.025em;text-transform:uppercase}
.hero-tag{font:500 11px/1.6 var(--body);letter-spacing:.24em;text-transform:uppercase;color:#e6e6e1}
.card{min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.card h2{font-size:15.5px;font-weight:600;margin-bottom:6px}
.vacio p{color:var(--muted)}

@media (min-width:1024px){
  .shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
  .side{position:sticky;top:0;height:100vh}
  .main{padding:30px 36px 44px}
  .page-head h1{font-size:30px}
  .hero{min-height:196px;padding:26px 34px}
  .hero-title{font-size:42px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
