/* ===== Tokens ===== */
:root{--ink:#173638;--bg:#F4F8F4;--pri:#117565;--pri-d:#0B5A4D;--sun:#F6C84C;--mint:#DDF2E8;--card:#fff;--line:#D5E3DD;--mut:#4A6663;--red:#A5332D;--r:8px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font:400 1rem/1.6 "Segoe UI",Tahoma,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.1}
h1{font-size:4rem;font-weight:700}
h2{font-size:2.35rem;font-weight:700;margin-bottom:.4rem}
h3{font-size:1.15rem;font-weight:700}
a{color:var(--pri-d)}
:focus-visible{outline:3px solid var(--pri);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:99}
.skip:focus{left:8px;top:8px}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.1rem}
section{padding:3.2rem 0}
.lead{color:var(--mut);max-width:60ch;margin-bottom:1.6rem}
.btn{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.6rem 1.2rem;border:2px solid var(--ink);border-radius:8px;background:var(--sun);color:var(--ink);font:700 1rem "Segoe UI",Tahoma,sans-serif;text-decoration:none;cursor:pointer}
.btn:hover{background:#ffe07a}
.btn.alt{background:#fff}
/* ===== Nav ===== */
header{position:sticky;top:0;z-index:20;background:rgba(244,248,244,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:60px}
.logo{font:700 1.3rem Georgia,"Times New Roman",serif;text-decoration:none;color:var(--ink)}
.logo span{background:var(--sun);padding:0 .3rem;border-radius:6px}
nav ul{list-style:none;padding:0;display:flex;gap:.2rem}
nav a{display:block;padding:.6rem .8rem;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:500}
nav a:hover{background:var(--line)}
.menu{display:none;min-height:44px;min-width:44px;border:2px solid var(--ink);border-radius:12px;background:#fff;font-size:1.2rem;cursor:pointer}
.favcount{background:var(--pri);color:#fff;border-radius:999px;padding:0 .5rem;font-size:.85rem;margin-left:.2rem}
@media(max-width:820px){
 .menu{display:block}
 nav ul{display:none;position:absolute;left:0;right:0;top:60px;flex-direction:column;background:var(--bg);padding:.6rem 1rem 1rem;border-bottom:1px solid var(--line)}
 nav ul.open{display:flex}
}
/* ===== Hero ===== */
.hero{padding:3.2rem 0 3.5rem;background:linear-gradient(115deg,rgba(255,255,255,.98),rgba(221,242,232,.76)),repeating-linear-gradient(135deg,transparent 0 22px,rgba(17,117,101,.035) 22px 23px)}
.hero p{font-size:1.15rem;color:var(--mut);max-width:52ch;margin:1rem 0 1.6rem}
.hero mark{display:inline-block;background:var(--sun);padding:0 .15em;border-radius:8px}
.quick{display:flex;flex-wrap:wrap;gap:.6rem;max-width:620px}
.quick input{flex:1 1 230px}
input,select{min-height:46px;padding:.5rem .9rem;border:2px solid var(--ink);border-radius:12px;background:#fff;font:500 1rem Figtree,sans-serif;color:var(--ink);width:100%}
.next{margin-top:1.4rem;display:inline-block;background:var(--mint);border-radius:12px;padding:.6rem 1rem;font-weight:500}
/* ===== Filtros ===== */
.filters{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem;margin-bottom:1rem}
label{display:block;font-weight:700;font-size:.92rem;margin-bottom:.25rem}
.tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
/* ===== Tarjetas ===== */
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr))}
.card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--pri);border-radius:var(--r);padding:1.2rem;display:flex;flex-direction:column;gap:.55rem;position:relative;box-shadow:0 5px 16px rgba(23,54,56,.045)}
.card .inst{color:var(--mut);font-size:.95rem}
.tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tag{background:#E2F1ED;color:var(--pri-d);border-radius:4px;padding:.1rem .65rem;font-size:.85rem;font-weight:700}
.tag.c{background:var(--mint);color:#0F5132}
dl{display:grid;gap:.35rem;font-size:.95rem}
dt{font-weight:700;display:inline}
dd{display:inline;margin:0}
.due{font-weight:700}
.due.soon{color:var(--red)}
.card .go{margin-top:auto;padding-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap}
.heart{position:absolute;top:.7rem;right:.7rem;width:44px;height:44px;border:0;background:transparent;font-size:1.5rem;cursor:pointer;border-radius:50%}
.heart:hover{background:var(--line)}
.card h3{padding-right:2.6rem}
.empty{padding:2rem;text-align:center;background:#fff;border:2px dashed var(--line);border-radius:var(--r)}
/* ===== Universidades / Carreras ===== */
.chips{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.chip{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem;display:flex;flex-direction:column;gap:.4rem}
.chip p{color:var(--mut);font-size:.95rem}
.chip button{align-self:flex-start;min-height:44px}
/* ===== Fechas ===== */
.dates{list-style:none;padding:0;display:grid;gap:.6rem;max-width:760px}
.dates li{display:flex;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.7rem 1rem}
.dbox{min-width:62px;text-align:center;background:var(--ink);color:#fff;border-radius:10px;padding:.3rem .2rem;font-weight:800;line-height:1.1}
.dbox small{display:block;font-weight:500;font-size:.75rem}
.dates .left{margin-left:auto;font-weight:700;white-space:nowrap}
/* ===== Guía ===== */
.steps{list-style:none;padding:0;display:grid;gap:.9rem;counter-reset:s;max-width:760px}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1rem 1rem 4rem;position:relative}
.steps li::before{content:counter(s);position:absolute;left:1rem;top:1rem;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--sun);border:2px solid var(--ink);display:grid;place-items:center;font:700 1rem Georgia,"Times New Roman",serif}
.steps p{color:var(--mut)}
/* ===== FAQ ===== */
details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.2rem 1rem;margin-bottom:.6rem;max-width:760px}
summary{cursor:pointer;font-weight:700;padding:.8rem 0;min-height:44px}
details p{padding-bottom:.9rem;color:var(--mut)}
/* ===== Contacto / footer ===== */
form.contact{display:grid;gap:.8rem;max-width:520px}
textarea{width:100%;min-height:110px;padding:.6rem .9rem;border:2px solid var(--ink);border-radius:12px;font:500 1rem Figtree,sans-serif}
.ok{background:var(--mint);padding:.8rem 1rem;border-radius:12px;font-weight:700}
footer{background:var(--ink);color:#DDE0F5;padding:1.6rem 0;font-size:.92rem}
footer a{color:#fff}
.alt-bg{background:#fff;border-block:1px solid var(--line)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.note{font-size:.85rem;color:var(--mut)}
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn{position:relative}
@media(max-width:700px){
 h1{font-size:2.65rem}
 h2{font-size:1.85rem}
 section{padding:2.5rem 0}
 .hero{padding:2.5rem 0 2.8rem}
 .dates li{gap:.65rem;padding:.65rem}
 .dates .left{font-size:.9rem}
}
.theme-toggle{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;font-size:.9rem;font-weight:700}
.theme-toggle input{width:1.1rem;min-height:1.1rem;accent-color:var(--pri)}
.sort-control{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 0 .5rem}
.sort-control select{width:auto;min-height:44px}
.tools>div{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.reminders{padding:.8rem 1rem;margin:0 0 1rem;background:#FFF0D5;border-left:4px solid #C97A18;color:#53350B;border-radius:4px}
.reminders a{display:inline-block;margin:.15rem .4rem;font-weight:700;color:inherit}
.go{align-items:stretch}
.checklist{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.65rem .8rem}
.checklist summary{padding:.3rem 0}
.checklist ul{list-style:none;padding:0;display:grid;gap:.3rem}
.checklist li label{display:flex;align-items:flex-start;gap:.5rem;font-weight:400}
.checklist input[type=checkbox]{width:1rem;min-height:1rem;margin:.3rem 0 0;accent-color:var(--pri)}
.eligibility{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;align-items:end;max-width:900px}
.eligibility .btn{justify-self:start}
.recommendations{margin-top:1.2rem;max-width:900px}
.recommendation-list{list-style:none;padding:0;display:grid;gap:.5rem}
.recommendation-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.75rem 1rem}
.recommendation-list span{color:var(--mut);font-size:.9rem}
.recommendation-list a{font-weight:700}
#onlyfav[aria-pressed=true]{background:var(--mint);border-color:var(--pri)}
:root[data-theme=dark]{--ink:#E7F1EC;--bg:#142726;--pri:#76D4B8;--pri-d:#A5E8D2;--sun:#E8B94E;--mint:#23443C;--card:#1D3533;--line:#35514E;--mut:#B2C6BE;--red:#FF978C}
:root[data-theme=dark] header{background:rgba(20,39,38,.96)}
:root[data-theme=dark] .hero{background:linear-gradient(115deg,#1D3533,#142726)}
:root[data-theme=dark] .alt-bg,:root[data-theme=dark] .btn.alt,:root[data-theme=dark] .filters,:root[data-theme=dark] .dates li,:root[data-theme=dark] .chip,:root[data-theme=dark] .steps li,:root[data-theme=dark] details{background:var(--card)}
:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#1D3533;color:var(--ink);border-color:var(--line)}
:root[data-theme=dark] .tag{background:#2A4B45;color:#C4F0E2}
:root[data-theme=dark] .tag.c{background:#23443C;color:#C4F0E2}
:root[data-theme=dark] .reminders{background:#493815;color:#FFE3A0;border-color:#E8B94E}
@media(max-width:700px){
 .theme-toggle{margin-left:auto}
 .recommendation-list li{grid-template-columns:1fr auto}
 .recommendation-list span{grid-column:1/-1;grid-row:2}
 .sort-control{margin:0}
}
