:root{
  --navy:#0A0E27;
  --navy-soft:#141a3d;
  --gold:#B8860B;
  --text:#4b4f5e;
  --text-h:#0A0E27;
  --bg:#ffffff;
  --bg-soft:#F6F7FB;
  --border:#e5e4e7;
  --radius:10px;
  --shadow:0 10px 25px -5px rgba(10,14,39,.08), 0 4px 6px -2px rgba(10,14,39,.05);
  font-size:17px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:system-ui,"Segoe UI",Roboto,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
a{color:var(--navy);text-decoration:none;}
h1,h2,h3{color:var(--text-h);font-weight:700;line-height:1.2;margin:0 0 16px;}
h1{font-size:44px;letter-spacing:-1px;}
h2{font-size:32px;letter-spacing:-.5px;}
h3{font-size:20px;}
.container{max-width:1140px;margin:0 auto;padding:0 24px;}
.btn{
  display:inline-block;padding:14px 28px;border-radius:6px;font-weight:600;
  cursor:pointer;border:none;font-size:16px;transition:transform .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--navy);color:#fff;}
.btn-gold{background:var(--gold);color:#fff;}
.btn-outline{background:#fff;color:var(--navy);border:1px solid var(--border);}

/* Header */
.site-header{border-bottom:1px solid var(--border);padding:18px 0;position:sticky;top:0;background:#fff;z-index:50;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;}
.logo{font-size:22px;font-weight:800;color:var(--navy);}
.logo span{color:var(--gold);}
.main-nav{display:flex;gap:28px;align-items:center;}
.main-nav a{color:var(--text-h);font-weight:500;font-size:15px;}
.main-nav a:hover{color:var(--gold);}

/* Hero */
.hero{background:var(--navy);color:#fff;padding:90px 0;}
.hero h1{color:#fff;max-width:720px;}
.hero p{color:#c7cae0;font-size:19px;max-width:600px;margin-bottom:32px;}
.hero .badge{display:inline-block;background:rgba(184,134,11,.15);color:var(--gold);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:20px;}

/* Secciones */
.section{padding:80px 0;}
.section-soft{background:var(--bg-soft);}
.section-header{text-align:center;max-width:640px;margin:0 auto 50px;}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}

.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:32px;}
.card .icon{width:52px;height:52px;border-radius:12px;background:rgba(184,134,11,.12);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:20px;}

.stats{display:flex;justify-content:space-around;text-align:center;padding:50px 0;background:var(--navy);color:#fff;}
.stats .num{font-size:38px;font-weight:800;color:var(--gold);}
.stats .label{font-size:14px;color:#c7cae0;margin-top:4px;}

/* Formularios */
.form-group{margin-bottom:18px;text-align:left;}
.form-group label{display:block;font-weight:600;font-size:14px;color:var(--text-h);margin-bottom:6px;}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:6px;font-size:15px;font-family:inherit;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:2px solid var(--gold);outline-offset:1px;}

.alert{padding:14px 18px;border-radius:6px;margin-bottom:20px;font-size:14px;}
.alert-success{background:#e6f4ea;color:#1e8e3e;}
.alert-error{background:#fdecea;color:#c5221f;}

/* Footer */
.site-footer{background:var(--navy);color:#c7cae0;padding:60px 0 30px;}
.site-footer h3{color:#fff;font-size:16px;}
.site-footer a{color:#c7cae0;}
.site-footer a:hover{color:var(--gold);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px;}
.footer-bottom{border-top:1px solid #22263F;padding-top:24px;display:flex;justify-content:space-between;font-size:13px;flex-wrap:wrap;gap:10px;}

/* Portal / Admin */
.portal-shell{display:flex;min-height:100vh;}
.portal-sidebar{width:250px;background:var(--navy);color:#fff;padding:30px 20px;flex-shrink:0;}
.portal-sidebar a{display:block;color:#c7cae0;padding:10px 12px;border-radius:6px;margin-bottom:4px;font-size:15px;}
.portal-sidebar a:hover,.portal-sidebar a.active{background:rgba(255,255,255,.08);color:#fff;}
.portal-main{flex:1;padding:40px;background:var(--bg-soft);}
.login-box{max-width:400px;margin:80px auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:40px;box-shadow:var(--shadow);}

.badge-estado{display:inline-block;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;color:#fff;}

table{width:100%;border-collapse:collapse;background:#fff;}
table th, table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;}
table th{background:var(--bg-soft);font-weight:600;color:var(--text-h);}

.timeline{border-left:2px solid var(--border);margin-left:10px;padding-left:24px;}
.timeline-item{position:relative;margin-bottom:28px;}
.timeline-item::before{content:'';position:absolute;left:-30px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--gold);}
.timeline-item .date{font-size:13px;color:#8a8fa3;margin-bottom:4px;}

@media (max-width:900px){
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .main-nav{display:none;}
  .portal-shell{flex-direction:column;}
  .portal-sidebar{width:100%;}
}
