/* ==========================================================================
   Foro Internacional ACADEMIA IA — Sistema de Información Regional CERPLAN
   ========================================================================== */

:root{
  --blue-900:#0a2d52;
  --blue-800:#0f3d6e;
  --blue-700:#124a86;
  --blue-600:#1565a8;
  --blue-500:#1e7ac4;
  --blue-300:#5aa9e0;
  --blue-050:#eaf3fb;

  --teal-900:#05252c;
  --teal-700:#0a3b47;
  --cyan-400:#38d6e8;

  --gold:#f0a91b;
  --gold-light:#ffc857;

  --ink:#1c2b3a;
  --ink-soft:#546a80;
  --line:#dfe6ee;
  --bg:#f2f5f8;
  --white:#ffffff;

  --radius:10px;
  --radius-lg:16px;
  --shadow-sm:0 1px 3px rgba(16,40,70,.10);
  --shadow:0 6px 22px rgba(16,40,70,.12);
  --shadow-lg:0 18px 50px rgba(10,30,60,.22);

  --ff:'Open Sans',system-ui,-apple-system,Segoe UI,sans-serif;
  --ff-head:'Montserrat',system-ui,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:90px;}
body{
  font-family:var(--ff);
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
h1,h2,h3,h4{font-family:var(--ff-head);line-height:1.2;}

.container{width:100%;max-width:1240px;margin:0 auto;padding:0 20px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:9999;
  background:var(--gold);color:#241a00;padding:.7rem 1.2rem;font-weight:700;border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;}

:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}

/* ============ BOTONES ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.75rem 1.6rem;border:none;border-radius:50px;
  font-family:var(--ff-head);font-weight:700;font-size:.88rem;
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  white-space:nowrap;
}
.btn:hover:not(:disabled){transform:translateY(-2px);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn--sm{padding:.45rem 1.1rem;font-size:.78rem;}
.btn--full{width:100%;margin-top:1.2rem;}
.btn--gold{background:linear-gradient(135deg,var(--gold-light),var(--gold));color:#3a2600;}
.btn--gold:hover:not(:disabled){box-shadow:0 10px 26px rgba(240,169,27,.42);}
.btn--blue{background:linear-gradient(135deg,var(--blue-500),var(--blue-700));color:#fff;}
.btn--blue:hover:not(:disabled){box-shadow:0 10px 26px rgba(21,101,168,.4);}
.btn--white{background:#fff;color:var(--blue-700);}
.btn--white:hover:not(:disabled){box-shadow:0 10px 26px rgba(0,0,0,.22);}
.btn--outline{background:transparent;border:1.5px solid var(--blue-600);color:var(--blue-700);}
.btn--outline:hover:not(:disabled){background:var(--blue-050);}
.btn--outline-light{background:transparent;border:1.5px solid rgba(255,255,255,.7);color:#fff;}
.btn--outline-light:hover:not(:disabled){background:rgba(255,255,255,.14);}
.btn--ghost-light{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);}
.btn--ghost-light:hover:not(:disabled){background:rgba(255,255,255,.22);}

.section-title{
  font-size:clamp(1.6rem,3vw,2.3rem);
  color:var(--blue-800);letter-spacing:.02em;font-weight:700;
}
.section-title--dark{text-align:center;margin-bottom:2rem;}

/* ==========================================================================
   CABECERA INSTITUCIONAL
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:800;box-shadow:0 2px 14px rgba(10,45,82,.18);}

/* -- Franja gobierno -- */
.gov-bar{
  position:relative;overflow:hidden;
  background:linear-gradient(100deg,#ffffff 0%,#eef4fa 30%,#1f6fb2 52%,#0e3f70 78%,#0a2d52 100%);
}
.gov-bar__deco{
  position:absolute;inset:0;
  background:
    linear-gradient(115deg,transparent 46%,rgba(255,255,255,.14) 46.5%,transparent 49%),
    linear-gradient(115deg,transparent 56%,rgba(255,255,255,.08) 56.5%,transparent 60%);
  pointer-events:none;
}
.gov-bar__inner{
  position:relative;max-width:1240px;margin:0 auto;padding:.5rem 20px;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.gov-bar__left{display:flex;align-items:center;gap:.7rem;min-width:0;}
.gov-shield{flex-shrink:0;}
.gov-bar__gov{
  font-family:var(--ff-head);font-weight:800;font-size:.56rem;line-height:1.25;
  letter-spacing:.04em;color:#0d3f6f;display:block;
}
.gov-bar__system{
  font-family:var(--ff-head);font-size:1.02rem;font-weight:600;color:#123a63;
  margin-left:1.4rem;white-space:nowrap;
}
.gov-bar__right{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:.15rem;}
.gov-bar__line1{font-family:var(--ff-head);font-size:.72rem;font-weight:700;color:#fff;letter-spacing:.02em;}
.gov-bar__line2{font-family:var(--ff-head);font-size:.86rem;font-weight:700;color:#fff;}

/* -- Franja OSEL -- */
.osel-bar{background:#fff;border-bottom:1px solid var(--line);}
.osel-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 20px;flex-wrap:wrap;}
.osel-select{
  background:none;border:none;cursor:pointer;
  font-size:.76rem;font-weight:600;color:#2b3a4a;
  display:inline-flex;align-items:center;gap:.4rem;padding:.2rem 0;
}
.osel-select:hover{color:var(--blue-600);}
.osel-select__caret{font-size:.7rem;}
.osel-links{display:flex;gap:1.4rem;}
.osel-links a{font-size:.76rem;color:#2b3a4a;font-weight:600;}
.osel-links a:hover{color:var(--blue-600);}

/* -- Menú principal -- */
.main-nav{background:linear-gradient(90deg,#0a2d52 0%,#124a86 45%,#1a72bd 100%);}
.main-nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 20px;}
.main-nav__links{display:flex;gap:.3rem;}
.main-nav__links a{
  display:inline-block;padding:.85rem 1.05rem;
  font-family:var(--ff-head);font-size:.83rem;font-weight:600;color:#e8f2fb;
  border-bottom:3px solid transparent;transition:.2s;
}
.main-nav__links a:hover{background:rgba(255,255,255,.10);color:#fff;}
.main-nav__links a.is-active{border-bottom-color:var(--gold);color:#fff;}
.main-nav__actions{display:flex;align-items:center;gap:.6rem;}
.auth-guest{display:flex;gap:.5rem;}
.auth-guest[hidden]{display:none;}

.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem;}
.nav-burger span{width:24px;height:2px;background:#fff;display:block;border-radius:2px;}

/* -- Chip de usuario -- */
.user-chip{position:relative;}
.user-chip[hidden]{display:none;}
.user-chip__toggle{
  display:flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);
  border-radius:50px;padding:.25rem .85rem .25rem .25rem;
  color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;
}
.user-chip__toggle:hover{background:rgba(255,255,255,.24);}
.user-chip__avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#fff;}
.user-chip__caret{font-size:.65rem;opacity:.85;}
.user-chip__menu{
  position:absolute;top:calc(100% + 10px);right:0;min-width:230px;
  background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);
  padding:.5rem;opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:.2s;z-index:900;
}
.user-chip__menu.is-open{opacity:1;visibility:visible;transform:translateY(0);}
.user-chip__info{padding:.7rem .8rem;border-bottom:1px solid var(--line);margin-bottom:.35rem;}
.user-chip__info strong{display:block;font-size:.9rem;color:var(--ink);}
.user-chip__info span{font-size:.76rem;color:var(--ink-soft);word-break:break-all;}
.user-chip__menu button{
  display:block;width:100%;text-align:left;background:none;border:none;
  padding:.6rem .8rem;border-radius:8px;font-size:.84rem;cursor:pointer;color:var(--ink);
}
.user-chip__menu button:hover{background:var(--blue-050);color:var(--blue-700);}
.user-chip__menu button.is-danger:hover{background:#fdecec;color:#c62828;}

/* ============ Miga de pan ============ */
.breadcrumb{background:#e9eef4;border-bottom:1px solid var(--line);}
.breadcrumb__inner{display:flex;align-items:center;gap:.6rem;padding:.6rem 20px;flex-wrap:wrap;}
.breadcrumb a{font-size:.82rem;font-weight:600;color:var(--blue-600);}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb span{color:#9aa8b6;font-size:.82rem;}
.breadcrumb strong{font-size:.82rem;color:var(--ink-soft);font-weight:600;}

.main-nav__external{border-left:1px solid rgba(255,255,255,.18);margin-left:.3rem;}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;overflow:hidden;
  background:radial-gradient(circle at 78% 42%,#0d5566 0%,#083240 42%,#04202a 100%);
  color:#fff;padding:4rem 0 4.5rem;
}
.hero__bg{position:absolute;inset:0;}
.hero__bg canvas{width:100%;height:100%;display:block;opacity:.5;}
.hero__orb{
  position:absolute;right:-6%;top:50%;transform:translateY(-50%);
  width:min(620px,58vw);aspect-ratio:1;border-radius:50%;
  background:
    radial-gradient(circle at 40% 35%,rgba(56,214,232,.55),transparent 55%),
    radial-gradient(circle at 62% 62%,rgba(28,120,180,.55),transparent 62%),
    conic-gradient(from 210deg,rgba(56,214,232,.22),rgba(6,40,60,.05),rgba(56,214,232,.22));
  filter:blur(2px);
  box-shadow:0 0 140px rgba(56,214,232,.35);
}
.hero__orb::after{
  content:"";position:absolute;inset:22%;border-radius:50%;
  border:2px solid rgba(56,214,232,.5);
  box-shadow:inset 0 0 60px rgba(56,214,232,.5),0 0 40px rgba(56,214,232,.35);
}
.hero__inner{position:relative;}
.hero__content{max-width:620px;}
.hero__kicker{
  display:inline-block;font-family:var(--ff-head);font-size:.9rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#dff6fa;margin-bottom:.6rem;
}
.hero__logo{
  font-family:var(--ff-head);font-weight:800;
  font-size:clamp(3rem,8vw,5.6rem);line-height:.92;letter-spacing:.06em;margin-bottom:1.1rem;
}
.hero__logo-line{display:block;}
.hero__logo em{font-style:normal;color:var(--cyan-400);text-shadow:0 0 26px rgba(56,214,232,.6);}
.hero__date{font-family:var(--ff-head);font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:700;color:var(--gold);margin-bottom:.7rem;}
.hero__place{font-size:.95rem;color:#cfe8ee;margin-bottom:1.2rem;}
.hero__meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem;}
.hero__badge{
  font-size:.78rem;font-weight:600;padding:.35rem .9rem;border-radius:50px;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.24);
}
.hero__badge--live{background:rgba(229,57,53,.9);border-color:transparent;}
.hero__social{display:flex;gap:.6rem;margin-bottom:1.6rem;}
.hero__social a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;
  transition:.2s;
}
.hero__social a:hover{background:var(--cyan-400);color:#04202a;transform:translateY(-3px);}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.8rem;}

/* ==========================================================================
   CONTADOR
   ========================================================================== */
.countdown{background:linear-gradient(100deg,#4b2b8f 0%,#6b3fb0 45%,#8a4fd0 100%);color:#fff;}
.countdown__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.1rem 20px;flex-wrap:wrap;}
.countdown__label{display:flex;align-items:center;gap:.8rem;font-family:var(--ff-head);font-size:1.25rem;font-weight:600;}
.countdown__icon{font-size:1.5rem;}
.countdown__clock{display:flex;align-items:center;gap:.5rem;}
.countdown__clock i{font-style:normal;font-size:1.4rem;opacity:.6;}
.cd-box{
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);
  border-radius:8px;padding:.4rem .85rem;text-align:center;min-width:64px;
}
.cd-box strong{display:block;font-family:var(--ff-head);font-size:1.7rem;font-weight:700;line-height:1;}
.cd-box span{font-size:.62rem;letter-spacing:.14em;opacity:.85;}

/* ==========================================================================
   BARRA DE ESTADÍSTICAS
   ========================================================================== */
.stats-strip{background:#fff;border-bottom:1px solid var(--line);}
.stats-strip__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.8rem 20px;}
.stat{text-align:center;border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat strong{display:block;font-family:var(--ff-head);font-size:2rem;font-weight:800;color:var(--blue-600);line-height:1;}
.stat span{font-size:.8rem;color:var(--ink-soft);}

/* ==========================================================================
   PONENTES
   ========================================================================== */
.speakers{background:#fbfaf7;padding:3rem 0;}
.speakers__head{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.8rem;}
.speakers__arrows{display:flex;gap:.5rem;}
.speakers__arrows button{
  width:42px;height:42px;border-radius:50%;border:1.5px solid var(--blue-600);
  background:#fff;color:var(--blue-700);cursor:pointer;font-size:1rem;transition:.2s;
}
.speakers__arrows button:hover{background:var(--blue-600);color:#fff;}
.speakers__viewport{overflow:hidden;background:#fff;border-radius:var(--radius-lg);padding:2rem 1.5rem;box-shadow:var(--shadow-sm);}
.speakers__track{display:flex;gap:1.5rem;transition:transform .45s cubic-bezier(.4,0,.2,1);}
.speaker{flex:0 0 calc((100% - 4.5rem)/4);text-align:center;}
.speaker__media{
  position:relative;width:150px;margin:0 auto .95rem;
}
.speaker__photo{
  width:150px;height:150px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-head);font-size:2.4rem;font-weight:700;color:#fff;
  box-shadow:0 8px 22px rgba(16,40,70,.18);
  transition:transform .25s ease,box-shadow .25s ease;
}
.speaker__photo--img{
  object-fit:cover;object-position:center 22%;
  background:var(--blue-050);border:3px solid #fff;
  outline:1px solid rgba(16,40,70,.10);
}

/* Bandera integrada al borde inferior de la foto */
.speaker__flag{
  position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);
  width:44px;height:44px;border-radius:50%;overflow:hidden;
  border:3px solid #fff;background:#fff;
  box-shadow:0 4px 12px rgba(16,40,70,.28);
  display:block;transition:transform .25s ease;
}
.speaker__flag svg{width:100%;height:100%;display:block;}

.speaker:hover .speaker__photo{
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 14px 30px rgba(16,40,70,.26);
}
.speaker:hover .speaker__flag{transform:translateX(-50%) translateY(-4px) scale(1.06);}

.speaker__country{
  display:block;font-family:var(--ff-head);font-size:.74rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600);
  margin:.55rem 0 .45rem;
}
.speaker__name{font-size:1.05rem;font-weight:700;color:var(--blue-800);margin-bottom:.3rem;}
.speaker__role{font-size:.78rem;color:var(--ink-soft);line-height:1.45;}

/* ==========================================================================
   PROGRAMA
   ========================================================================== */
.program{background:#fff;padding-bottom:3.5rem;}
.program__banner{background:linear-gradient(100deg,#0f3d6e 0%,#1b5faa 60%,#2a7bc8 100%);color:#fff;}
.program__banner-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.6rem 20px;flex-wrap:wrap;}
.program__banner-inner h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;}
.program__banner-inner span{font-family:var(--ff-head);font-size:clamp(1.4rem,3vw,2.1rem);font-weight:600;color:rgba(255,255,255,.42);}
.program__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:2rem 0 1.2rem;}
.program__tabs{display:flex;gap:.5rem;flex-wrap:wrap;}
.program__tabs button{
  padding:.5rem 1.1rem;border-radius:50px;border:1.5px solid var(--line);
  background:#fff;color:var(--ink-soft);font-size:.82rem;font-weight:600;cursor:pointer;transition:.2s;
}
.program__tabs button:hover{border-color:var(--blue-300);color:var(--blue-700);}
.program__tabs button.is-active{background:var(--blue-700);border-color:var(--blue-700);color:#fff;}

.program__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;}
.day-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);}
.day-card__head{
  background:linear-gradient(100deg,#20356e,#2c4a92);color:#fff;
  padding:.85rem 1.2rem;font-family:var(--ff-head);font-weight:700;font-size:1rem;
  display:flex;align-items:center;justify-content:space-between;
}
.day-card__head small{font-weight:500;font-size:.74rem;opacity:.82;}
.day-card__body{border-left:4px solid #16a394;}
.slot{display:grid;grid-template-columns:78px 1fr;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid #eef2f6;}
.slot:last-child{border-bottom:none;}
.slot:nth-child(even){background:#fafbfd;}
.slot__time{font-family:var(--ff-head);font-weight:700;font-size:.84rem;color:var(--gold);}
.slot__title{font-weight:700;font-size:.88rem;color:var(--ink);margin-bottom:.15rem;}
.slot__type{font-size:.76rem;color:var(--ink-soft);font-style:italic;margin-bottom:.4rem;}
.slot__people{font-size:.76rem;color:var(--ink-soft);line-height:1.6;}
.slot__people b{display:block;color:var(--ink);font-weight:600;font-size:.75rem;margin-bottom:.1rem;}

.day-card__materials{background:#d2e2f1;border-top:3px solid var(--line);padding:1rem 1.2rem 1.2rem;}
.day-card__materials-label{display:block;font-size:.76rem;font-weight:700;color:var(--blue-700);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.6rem;}
.material-list{display:flex;flex-direction:column;gap:.5rem;}
.material-link{
  display:flex;align-items:center;gap:.6rem;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:.55rem .8rem;text-decoration:none;transition:.18s;
}
.material-link:hover{border-color:var(--blue-300);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.material-link__icon{font-size:1.1rem;flex-shrink:0;}
.material-link__title{flex:1;font-size:.8rem;font-weight:600;color:var(--ink);}
.material-link__action{font-size:.72rem;font-weight:700;color:var(--blue-700);white-space:nowrap;}

.material-group{margin-bottom:.9rem;}
.material-group:last-child{margin-bottom:0;}
.material-group__author{
  display:inline-flex;align-items:center;gap:.4rem;
  background:none;border:none;padding:0 0 .45rem;cursor:pointer;
  font-family:var(--ff-head);font-weight:700;font-size:.78rem;color:var(--blue-800);
  text-decoration:underline;text-decoration-color:transparent;transition:.15s;
}
.material-group__author:hover{text-decoration-color:var(--blue-800);color:var(--blue-700);}
.material-group__icon{font-size:.9rem;}

.program__speaker-bar{
  background:#115da8;border:1px solid var(--line);border-radius:var(--radius);
  padding:1rem 1.1rem;margin-bottom:1.4rem;
}
.program__speaker-title{
  font-family:var(--ff-head);font-size:.95rem;font-weight:700;color:var(--blue-050);
  margin:0 0 .8rem;
}
.program__speaker-buttons{display:flex;gap:.5rem;flex-wrap:wrap;}
.program__speaker-buttons button{
  padding:.5rem 1.1rem;border-radius:50px;border:1.5px solid var(--line);
  background:#fff;color:var(--ink-soft);font-size:.82rem;font-weight:600;cursor:pointer;transition:.2s;
}
.program__speaker-buttons button:hover{border-color:var(--blue-300);color:var(--blue-700);}
.program__speaker-buttons button.is-active{background:var(--blue-700);border-color:var(--blue-700);color:#fff;}
.program__speaker-active{
  grid-column:1/-1;font-size:.85rem;font-weight:600;color:var(--ink-soft);
  background:#eef4fb;border:1px dashed var(--blue-300);border-radius:var(--radius);
  padding:.7rem 1rem;margin:0 0 .2rem;
}
.program__speaker-active strong{color:var(--blue-800);}
.program__empty{grid-column:1/-1;font-size:.85rem;color:var(--ink-soft);padding:1.5rem;text-align:center;}
.program__grid--speaker{display:grid;gap:1.2rem;}

.program__topics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;}
.topic-card{
  background:linear-gradient(135deg,#0f9b8e,#22c1c3);color:#fff;
  border-radius:var(--radius);padding:1.3rem 1rem;text-align:center;
}
.topic-card span{font-size:1.8rem;display:block;margin-bottom:.5rem;}
.topic-card p{font-size:.8rem;font-weight:600;line-height:1.4;}

/* ==========================================================================
   FORO
   ========================================================================== */
.foro{background:var(--bg);padding:3rem 0;}

.foro__topic-head{
  display:grid;grid-template-columns:1fr 300px;gap:0;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:1.2rem;
}
.foro__topic-title{padding:1.6rem 1.8rem;display:flex;flex-direction:column;justify-content:center;}
.foro__kicker{
  font-family:var(--ff-head);font-size:.72rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.4rem;
}
.foro__topic-title h2{font-size:clamp(1.15rem,2.3vw,1.75rem);color:var(--blue-800);font-weight:700;}
.foro__topic-thumb{
  background:radial-gradient(circle at 70% 45%,#0d5566,#04202a);
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:1.2rem;text-align:center;
}
.foro__topic-thumb span{font-family:var(--ff-head);font-weight:800;font-size:1.5rem;line-height:1;letter-spacing:.05em;}
.foro__topic-thumb em{font-style:normal;color:var(--cyan-400);}
.foro__topic-thumb small{font-size:.68rem;color:var(--gold);margin-top:.5rem;letter-spacing:.1em;}

.foro__summary{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem 1.8rem;margin-bottom:1.4rem;box-shadow:var(--shadow-sm);
}
.foro__summary p{font-size:.98rem;color:#2b3d50;}
.foro__more{margin-top:.9rem;}
.foro__more summary{
  cursor:pointer;font-size:.84rem;font-weight:600;color:var(--blue-600);
  padding:.4rem 0;list-style:none;
}
.foro__more summary::-webkit-details-marker{display:none;}
.foro__more summary::before{content:"\25B8 ";transition:.2s;display:inline-block;}
.foro__more[open] summary::before{transform:rotate(90deg);}
.foro__more p{margin-top:.6rem;font-size:.9rem;color:var(--ink-soft);border-left:3px solid var(--blue-050);padding-left:1rem;}

.foro__cta-register{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  background:linear-gradient(100deg,#1565a8,#2a8ad4);
  border-radius:50px;padding:.7rem .8rem .7rem 2rem;margin-bottom:1.6rem;
  box-shadow:var(--shadow);
}
.foro__cta-register[hidden]{display:none;}
.foro__cta-register p{color:#fff;font-family:var(--ff-head);font-size:1.05rem;font-weight:700;}
.foro__cta-register .btn span{font-size:1.2rem;}

.foro__toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-bottom:1.2rem;
}
.foro__count{font-size:.9rem;color:var(--ink-soft);}
.foro__count strong{color:var(--blue-700);font-size:1.1rem;font-family:var(--ff-head);}
.foro__tools{display:flex;gap:.6rem;flex-wrap:wrap;}
.foro__search{
  display:flex;align-items:center;gap:.5rem;background:#fff;
  border:1px solid var(--line);border-radius:50px;padding:.4rem 1rem;min-width:250px;
}
.foro__search input{border:none;outline:none;background:none;width:100%;font-size:.85rem;}
#foroSort{
  background:#fff;border:1px solid var(--line);border-radius:50px;
  padding:.45rem 1rem;font-size:.85rem;cursor:pointer;color:var(--ink);
}

/* -- Composer -- */
.composer{
  display:grid;grid-template-columns:64px 1fr;gap:1rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.2rem;margin-bottom:1.8rem;box-shadow:var(--shadow-sm);
}
.composer[hidden]{display:none;}
.composer__avatar{width:64px;height:64px;border-radius:8px;object-fit:cover;background:var(--blue-050);}
.composer__box{min-width:0;}
.composer__tools{
  display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;
  border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;
  background:#f7f9fb;padding:.4rem .6rem;
}
.composer__tools button{
  background:none;border:none;cursor:pointer;padding:.3rem .55rem;border-radius:5px;
  font-size:.82rem;color:var(--ink-soft);
}
.composer__tools button:hover{background:var(--blue-050);color:var(--blue-700);}
.composer__spacer{flex:1;}
.composer__counter{font-size:.72rem;color:var(--ink-soft);}
#composerText{
  width:100%;border:1px solid var(--line);border-radius:0 0 8px 8px;
  padding:.9rem 1rem;resize:vertical;outline:none;font-size:.92rem;line-height:1.6;min-height:110px;
}
#composerText:focus{border-color:var(--blue-300);}
#composerText:disabled{background:#f6f8fa;cursor:not-allowed;}
.composer__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.8rem;flex-wrap:wrap;}
.composer__hint{font-size:.8rem;color:var(--ink-soft);}

/* -- Posts -- */
.posts{display:flex;flex-direction:column;gap:1.2rem;}
.posts__empty{text-align:center;color:var(--ink-soft);padding:2.5rem;font-size:.92rem;}

.post{
  display:grid;grid-template-columns:150px 1fr;
  background:#eef1f4;border:1px solid #e0e5ea;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-sm);
  scroll-margin-top:110px;
}
.post--flash{animation:postFlash 1.6s ease-out;}
@keyframes postFlash{
  0%{box-shadow:0 0 0 3px rgba(255,193,7,.9), var(--shadow-sm);}
  100%{box-shadow:var(--shadow-sm);}
}
.post--own{border-color:var(--blue-300);box-shadow:0 0 0 2px rgba(90,169,224,.25),var(--shadow-sm);}
.post__aside{padding:1.2rem;text-align:center;}
.post__avatar{
  width:100px;height:100px;border-radius:6px;margin:0 auto .6rem;
  object-fit:cover;object-position:center 20%;
  background:var(--blue-050);border:2px solid #fff;
  box-shadow:0 3px 10px rgba(16,40,70,.16);
}
.post__author{font-size:.9rem;font-weight:700;color:var(--blue-600);word-break:break-word;}
.post__role{display:block;font-size:.7rem;color:var(--ink-soft);margin-top:.15rem;}

.post__main{background:#fff;padding:1rem 1.2rem 1.2rem;min-width:0;}
.post__head{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding-bottom:.6rem;border-bottom:1px solid #eef2f6;margin-bottom:.9rem;flex-wrap:wrap;
}
.post__date{font-size:.82rem;color:#9aa8b6;}
.post__tags{display:flex;align-items:center;gap:.5rem;}
.post__new{background:var(--gold);color:#3a2600;font-size:.66rem;font-weight:700;padding:.15rem .55rem;border-radius:4px;letter-spacing:.05em;}
.post__num{font-size:.76rem;color:#9aa8b6;font-weight:600;}
.post__icon-btn{background:none;border:none;cursor:pointer;color:#9aa8b6;font-size:.9rem;padding:.15rem .3rem;border-radius:4px;}
.post__icon-btn:hover{color:var(--blue-600);background:var(--blue-050);}
.post__icon-btn.is-on{color:var(--gold);}

.post__body{font-size:.95rem;color:#2b3d50;line-height:1.7;margin-bottom:.9rem;word-wrap:break-word;}
.post__body b{font-weight:700;}
.post__body blockquote{border-left:3px solid var(--blue-300);padding-left:.9rem;color:var(--ink-soft);font-style:italic;margin:.5rem 0;}
.post__body ul{margin:.5rem 0 .5rem 1.2rem;}
.post__body a{color:var(--blue-600);text-decoration:underline;}

.post__actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.react-btn{
  display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;
  font-size:.84rem;font-weight:600;color:var(--ink-soft);padding:.35rem .7rem;border-radius:6px;transition:.15s;
}
.react-btn:hover{background:var(--blue-050);color:var(--blue-700);}
.react-btn.is-active{color:var(--blue-600);background:var(--blue-050);}
.react-btn.is-active.react-btn--down{color:#c62828;background:#fdecec;}
.react-btn__icon{font-size:1rem;}

.post__stats{
  display:flex;gap:1.2rem;margin-top:.8rem;padding:.5rem .8rem;
  border:1px solid #eef2f6;border-radius:6px;font-size:.8rem;color:var(--ink-soft);
}
.post__stats span{display:inline-flex;align-items:center;gap:.35rem;}

/* -- Respuestas -- */
.replies{margin-top:.9rem;border-left:3px solid var(--blue-050);padding-left:.9rem;display:flex;flex-direction:column;gap:.7rem;}
.reply{display:grid;grid-template-columns:36px 1fr;gap:.7rem;background:#f8fafc;border-radius:8px;padding:.7rem .9rem;}
.reply__avatar{
  width:36px;height:36px;border-radius:50%;
  object-fit:cover;object-position:center 20%;
  background:var(--blue-050);flex-shrink:0;
}
.reply__author{font-size:.83rem;font-weight:700;color:var(--blue-700);}
.reply__author small{font-weight:400;color:#9aa8b6;margin-left:.4rem;}
.reply__text{font-size:.87rem;color:#3a4c5e;line-height:1.6;word-wrap:break-word;}

.reply-form{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin-top:.8rem;}
.reply-form input{
  border:1px solid var(--line);border-radius:50px;padding:.6rem 1.1rem;
  outline:none;font-size:.86rem;width:100%;
}
.reply-form input:focus{border-color:var(--blue-300);}
.reply-form[hidden]{display:none;}

.replies-toggle{
  background:none;border:none;cursor:pointer;color:var(--blue-600);
  font-size:.83rem;font-weight:600;padding:.4rem 0;margin-top:.4rem;
}
.replies-toggle:hover{text-decoration:underline;}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{background:#0a2d52;color:#cfe0f0;padding-top:2.5rem;}
.site-footer__grid{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:2rem;padding-bottom:2rem;}
.site-footer h4{color:#fff;font-size:.98rem;margin-bottom:.7rem;}
.site-footer p{font-size:.84rem;line-height:1.7;}
.site-footer a{display:block;font-size:.84rem;padding:.18rem 0;}
.site-footer a:hover{color:var(--gold);}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.13);padding:1rem 20px;text-align:center;}
.site-footer__bottom p{font-size:.78rem;color:#9dbad6;}

/* ==========================================================================
   MODAL
   ========================================================================== */
.modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal[hidden]{display:none;}
.modal__overlay{position:absolute;inset:0;background:rgba(8,26,45,.68);backdrop-filter:blur(3px);}
.modal__dialog{
  position:relative;background:#fff;border-radius:var(--radius);width:100%;max-width:920px;
  max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalIn .25s ease;
}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.98);}to{opacity:1;transform:none;}}
.modal__close{
  position:absolute;top:.6rem;right:.8rem;background:none;border:none;
  font-size:1.8rem;line-height:1;color:#9aa8b6;cursor:pointer;z-index:2;
}
.modal__close:hover{color:#c62828;}

.modal__tabs{display:flex;border-bottom:1px solid var(--line);background:#f4f6f8;}
.modal__tab{
  background:none;border:none;cursor:pointer;padding:.9rem 1.4rem;
  font-size:.9rem;font-weight:600;color:var(--ink-soft);border-bottom:3px solid transparent;
}
.modal__tab.is-active{background:#fff;color:var(--blue-700);border-bottom-color:var(--blue-500);}

.auth-form{padding:1.8rem;}
.auth-form[hidden]{display:none;}
.auth-form__grid{display:grid;grid-template-columns:200px 1fr;gap:2rem;}
.auth-form__grid--single{grid-template-columns:1fr;max-width:560px;}

.auth-photo{text-align:center;}
.auth-photo__preview{
  width:190px;height:190px;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;
}
.auth-photo__preview img{width:100%;height:100%;object-fit:cover;}
.auth-photo__btn{
  display:block;width:190px;background:var(--blue-600);color:#fff;
  padding:.7rem;font-weight:700;font-size:.9rem;cursor:pointer;text-align:center;transition:.2s;
}
.auth-photo__btn:hover{background:var(--blue-700);}

.auth-fields{display:flex;flex-direction:column;gap:1.1rem;min-width:0;}
.field{display:grid;grid-template-columns:180px 1fr;gap:1rem;align-items:start;}
.field > label{
  text-align:right;font-size:.9rem;color:var(--ink);padding-top:.55rem;
}
.field > label em{display:block;font-style:normal;font-size:.75rem;color:#9aa8b6;}
.field__control{min-width:0;}
.field__control input[type=text],
.field__control input[type=email],
.field__control input[type=password],
.field__control input[type=number],
.field__control select{
  width:100%;border:1px solid #cfd8e0;border-radius:4px;padding:.6rem .8rem;
  outline:none;font-size:.92rem;transition:.15s;
}
.field__control input:focus,.field__control select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(30,122,196,.15);}
.field__control input.has-error,.field__control select.has-error{border-color:#e53935;}
.field__row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:.6rem;}
.field__help{font-size:.78rem;color:#9aa8b6;margin-top:.4rem;line-height:1.5;}
.field__error{font-size:.78rem;color:#e53935;margin-top:.3rem;min-height:0;}
.field--check{grid-template-columns:180px 1fr;}
.check{display:flex;align-items:flex-start;gap:.6rem;font-size:.88rem;cursor:pointer;grid-column:2;}
.field--check{display:block;padding-left:196px;}
.check input{margin-top:.25rem;width:16px;height:16px;accent-color:var(--blue-500);}
.check a{color:var(--blue-600);text-decoration:underline;}
.field--check .field__error{padding-left:0;}

.pass-meter{height:5px;background:#e8edf2;border-radius:4px;margin-top:.5rem;overflow:hidden;}
.pass-meter span{display:block;height:100%;width:0;background:#e53935;transition:.3s;border-radius:4px;}

.auth-form__footer{
  margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line);
  background:#f4f9fd;margin-left:-1.8rem;margin-right:-1.8rem;margin-bottom:-1.8rem;
  padding:1.2rem 1.8rem;text-align:center;border-radius:0 0 var(--radius) var(--radius);
}

/* ==========================================================================
   TOASTS
   ========================================================================== */
.toasts{position:fixed;bottom:22px;right:22px;z-index:1200;display:flex;flex-direction:column;gap:.6rem;}
.toast{
  background:#0f3d6e;color:#fff;padding:.85rem 1.3rem;border-radius:8px;
  box-shadow:var(--shadow-lg);font-size:.86rem;font-weight:600;
  animation:toastIn .28s ease;max-width:340px;border-left:4px solid var(--gold);
}
.toast--ok{background:#1b7a4b;border-left-color:#8bd6a8;}
.toast--err{background:#b3261e;border-left-color:#f5a7a2;}
@keyframes toastIn{from{opacity:0;transform:translateX(30px);}to{opacity:1;transform:none;}}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .speaker{flex:0 0 calc((100% - 3rem)/3);}
  .program__grid{grid-template-columns:1fr;}
  .program__topics{grid-template-columns:repeat(2,1fr);}
  .stats-strip__grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;}
  .stat:nth-child(2){border-right:none;}
  .site-footer__grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:860px){
  .gov-bar__system{display:none;}
  .gov-bar__line1{font-size:.64rem;}
  .gov-bar__line2{font-size:.74rem;}
  .main-nav__links{
    position:absolute;top:100%;left:0;right:0;background:#0f3d6e;
    flex-direction:column;gap:0;padding:.5rem 0;display:none;box-shadow:var(--shadow);
  }
  .main-nav__links.is-open{display:flex;}
  .main-nav__links a{border-bottom:1px solid rgba(255,255,255,.08);border-left:3px solid transparent;}
  .main-nav__links a.is-active{border-bottom-color:rgba(255,255,255,.08);border-left-color:var(--gold);}
  .main-nav__inner{position:relative;}
  .nav-burger{display:flex;}
  .speaker{flex:0 0 calc((100% - 1.5rem)/2);}
  .foro__topic-head{grid-template-columns:1fr;}
  .foro__topic-thumb{padding:1.5rem;}
  .countdown__inner{justify-content:center;text-align:center;}
  .post{grid-template-columns:1fr;}
  .post__aside{display:flex;align-items:center;gap:.9rem;text-align:left;padding:.9rem 1.2rem;}
  .post__avatar{width:52px;height:52px;margin:0;font-size:1.2rem;flex-shrink:0;}
}

@media (max-width:680px){
  .auth-form__grid{grid-template-columns:1fr;}
  .auth-photo{margin:0 auto;}
  .field{grid-template-columns:1fr;gap:.3rem;}
  .field > label{text-align:left;padding-top:0;font-weight:600;}
  .field > label em{display:inline;margin-left:.4rem;}
  .field--check{padding-left:0;}
  .check{grid-column:1;}
  .speaker{flex:0 0 100%;}
  .program__topics{grid-template-columns:1fr;}
  .stats-strip__grid{grid-template-columns:1fr 1fr;}
  .stat{border-right:none;}
  .site-footer__grid{grid-template-columns:1fr;}
  .composer{grid-template-columns:1fr;}
  .composer__avatar{width:48px;height:48px;}
  .foro__cta-register{border-radius:var(--radius);padding:1rem;flex-direction:column;text-align:center;}
  .foro__search{min-width:100%;}
  .foro__tools{width:100%;flex-direction:column;}
  #foroSort{width:100%;}
  .cd-box{min-width:54px;padding:.35rem .55rem;}
  .cd-box strong{font-size:1.3rem;}
  .slot{grid-template-columns:60px 1fr;gap:.7rem;padding:.85rem;}
  .reply-form{grid-template-columns:1fr;}
  .toasts{left:16px;right:16px;bottom:16px;}
  .toast{max-width:none;}
}
