.seo-content { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }

:root {
  --bg: #1e2a3a;
  --surface: #1a2535;
  --surface2: #243040;
  --border: #2e3f54;
  --accent: #f0a500;
  --text: #e6edf3;
  --text2: #8b949e;
  --ua:  #3b82f6;
  --uji: #a855f7;
  --umh: #e8543a;
  --upv: #f0a500;
  --uv:  #10b981;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'DM Sans',sans-serif;background:linear-gradient(160deg,#1e2a3a 0%,#243040 50%,#1a2535 100%);background-attachment:fixed;color:var(--text);min-height:100vh;}

/* ── HEADER ── */
header{
  background:linear-gradient(135deg,#141f2e 0%,#1a2535 70%,#1e2c3e 100%);
  border-bottom:1px solid var(--border);
  padding:1.2rem 2rem 0.8rem;
  position:relative;overflow:hidden;
}
header::before{
  content:'';position:absolute;top:-80px;left:-80px;
  width:320px;height:320px;
  background:radial-gradient(circle,rgba(240,165,0,0.07) 0%,transparent 70%);
  pointer-events:none;
}
.header-inner{
  max-width:1100px;margin:auto;
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
}
.header-text{flex:1;}
.header-text h1{
  font-family:'Unbounded',sans-serif;font-size:1.55rem;font-weight:900;
  color:var(--text);line-height:1.15;
}
.header-text h1 span{color:var(--accent);}
.header-text p{font-size:0.82rem;color:var(--text2);margin-top:0.25rem;}
.header-logo img{height:80px;width:auto;display:block;}

.header-stats{display:flex;gap:1.5rem;}
.hstat{text-align:center;}
.hstat-num{font-family:'Unbounded',sans-serif;font-size:1.3rem;font-weight:700;color:var(--accent);display:block;}
.hstat-label{font-size:0.7rem;color:var(--text2);}

.header-bottom{
  max-width:1100px;margin:0.6rem auto 0;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;
  padding-bottom:0.4rem;
}
.uni-legend{display:flex;gap:0.4rem;flex-wrap:wrap;}
.uni-pill{
  font-size:0.7rem;font-weight:700;padding:0.18rem 0.55rem;
  border-radius:100px;color:#fff;white-space:nowrap;
}
.pill-ua {background:var(--ua);}
.pill-uji{background:var(--uji);}
.pill-umh{background:var(--umh);}
.pill-upv{background:var(--upv);color:#111;}
.pill-uv {background:var(--uv);}

.lang-toggle{display:flex;gap:0.3rem;}
.lang-btn{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  font-family:'DM Sans',sans-serif;font-size:0.75rem;font-weight:600;
  padding:0.25rem 0.6rem;border-radius:6px;cursor:pointer;transition:all .15s;
}
.lang-btn.active{background:var(--accent);border-color:var(--accent);color:#111;}

/* ── MAIN ── */
.main{max-width:1100px;margin:auto;padding:1.5rem;}

/* ── TABS ── */
.tabs{display:flex;gap:0.4rem;margin-bottom:1.2rem;}
.tab-btn{
  background:var(--surface);border:1px solid var(--border);color:var(--text2);
  font-family:'DM Sans',sans-serif;font-size:0.85rem;font-weight:500;
  padding:0.55rem 1.2rem;border-radius:8px;cursor:pointer;transition:all .15s;
}
.tab-btn.active{background:var(--accent);border-color:var(--accent);color:#111;font-weight:700;}

/* ── FILTERS ── */
.filters-wrap{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:1.1rem 1.4rem;margin-bottom:1rem;
}
.filters-title{
  font-family:'Unbounded',sans-serif;font-size:0.7rem;font-weight:700;
  color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.9rem;
}
.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;}
.filter-group label{
  display:block;font-size:.7rem;color:var(--text2);margin-bottom:.25rem;
  font-weight:500;text-transform:uppercase;letter-spacing:.05em;
}
.filter-group select,.filter-group input[type=text]{
  width:100%;background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;color:var(--text);font-family:'DM Sans',sans-serif;
  font-size:.83rem;padding:.5rem .75rem;cursor:pointer;transition:border-color .15s;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .6rem center;padding-right:1.8rem;
}
.filter-group input[type=text]{
  background-image:none;padding-right:.75rem;cursor:text;
}
.filter-group select:focus,.filter-group input[type=text]:focus{
  outline:none;border-color:var(--accent);
}
.filters-actions{display:flex;align-items:center;gap:1rem;margin-top:.8rem;}
.btn-reset{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  font-family:'DM Sans',sans-serif;font-size:.78rem;padding:.35rem .9rem;
  border-radius:8px;cursor:pointer;transition:all .15s;
}
.btn-reset:hover{border-color:var(--accent);color:var(--accent);}
.result-count{font-size:.78rem;color:var(--text2);}
.result-count strong{color:var(--accent);}

/* ── CARDS ── */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;}

.card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;overflow:hidden;transition:transform .15s,box-shadow .15s;
}
.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.4);}

.card-head{
  padding:.85rem 1rem .65rem;
  border-bottom:1px solid var(--border);
}
.card-titulo{
  font-size:.9rem;font-weight:700;line-height:1.3;margin-bottom:.5rem;
}
.card-unis{display:flex;gap:.35rem;flex-wrap:wrap;}
.uni-badge{text-decoration:none;display:inline-block;transition:opacity .15s;}.uni-badge:hover{opacity:.8;}.uni-label-cell{text-decoration:none;}.uni-label-cell:hover{opacity:.8;}.uni-badge{
  font-size:.65rem;font-weight:700;padding:.15rem .45rem;
  border-radius:100px;color:#fff;cursor:default;
}
.uni-badge.upv-b{color:#111;}

.card-body{padding:.8rem 1rem;}

/* Tabla notas multi-uni */
.notas-table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:.78rem;}
.notas-table th{
  color:var(--text2);font-weight:500;font-size:.65rem;text-transform:uppercase;
  letter-spacing:.04em;padding:.25rem .4rem;text-align:center;
}
.notas-table th:first-child{text-align:left;}
.notas-table td{padding:.28rem .4rem;text-align:center;border-top:1px solid var(--border);}
.notas-table td:first-child{text-align:left;}
.uni-label-cell{
  display:inline-block;font-size:.68rem;font-weight:700;
  padding:.1rem .4rem;border-radius:100px;color:#fff;
}
.nc-val{font-family:'Unbounded',sans-serif;font-size:.78rem;font-weight:700;}
.nc-alta{color:#ef4444;}
.nc-media{color:var(--accent);}
.nc-baja{color:var(--uv);}
.nc-nd{color:var(--text2);font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:400;}

/* Ponderaciones */
.ponds-title{font-size:.65rem;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;}
.pond-tags{display:flex;flex-wrap:wrap;gap:.28rem;}
.pond-tag{
  font-size:.64rem;padding:.13rem .4rem;border-radius:4px;border:1px solid;white-space:nowrap;
}
.pond-02{background:rgba(240,165,0,.1);border-color:rgba(240,165,0,.3);color:var(--accent);}
.pond-01{background:rgba(139,148,158,.08);border-color:rgba(139,148,158,.22);color:var(--text2);}
.pond-hl{border-width:1.5px!important;font-weight:700;}

/* ── EMPTY ── */
.empty-state{text-align:center;padding:4rem 2rem;color:var(--text2);}
.empty-state p{font-size:.9rem;margin-top:.8rem;}

/* ── CALCULADORA ── */
#tab-calc-panel{display:none;}
#tab-calc-panel.active-tab{display:block;}
#tab-exp-panel{display:none;}
#tab-exp-panel.active-tab{display:block;}

.calc-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start;
}
@media(max-width:900px){.calc-wrap{grid-template-columns:1fr;}}

.calc-form{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem;
}
.calc-section-title{
  font-family:'Unbounded',sans-serif;font-size:.72rem;font-weight:700;
  color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.9rem;
}
.calc-field{margin-bottom:.75rem;}
.calc-field label{
  display:block;font-size:.7rem;color:var(--text2);font-weight:500;
  text-transform:uppercase;letter-spacing:.05em;margin-bottom:.28rem;
}
.calc-field input[type=number]{
  width:100%;background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;color:var(--text);font-family:'DM Sans',sans-serif;
  font-size:.9rem;padding:.5rem .75rem;transition:border-color .15s;
}
.calc-field input[type=number]:focus{outline:none;border-color:var(--accent);}
.calc-asig-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:.4rem;max-height:380px;overflow-y:auto;
  padding-right:.3rem;
}
.calc-asig-row{
  display:flex;align-items:center;justify-content:space-between;gap:.4rem;
  background:var(--surface2);border-radius:6px;padding:.35rem .5rem;
}
.calc-asig-name{font-size:.7rem;color:var(--text2);flex:1;line-height:1.2;}
.calc-asig-nota{
  width:52px;background:var(--bg);border:1px solid var(--border);
  border-radius:5px;color:var(--text);font-size:.78rem;
  font-family:'DM Sans',sans-serif;padding:.2rem .3rem;text-align:center;
}
.calc-asig-nota:focus{outline:none;border-color:var(--accent);}
.btn-calc{
  width:100%;background:var(--accent);border:none;color:#111;
  font-family:'Unbounded',sans-serif;font-size:.8rem;font-weight:700;
  padding:.7rem;border-radius:8px;cursor:pointer;margin-top:.9rem;
  transition:opacity .15s;
}
.btn-calc:hover{opacity:.85;}

.calc-results{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.2rem;
  min-height:300px;
}
.calc-results-title{
  font-family:'Unbounded',sans-serif;font-size:.72rem;font-weight:700;
  color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.9rem;
}
.calc-placeholder{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:200px;color:var(--text2);font-size:.85rem;gap:.5rem;opacity:.6;
}
.calc-result-list{display:flex;flex-direction:column;gap:.5rem;}
.calc-result-item{
  background:var(--surface2);border-radius:8px;padding:.6rem .8rem;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
}
.calc-result-carrera{font-size:.82rem;font-weight:500;flex:1;}
.calc-result-uni{font-size:.64rem;font-weight:700;padding:.1rem .4rem;border-radius:100px;color:#fff;}
.calc-result-nota{font-family:'Unbounded',sans-serif;font-size:.88rem;font-weight:700;}
.calc-result-item.accessible{border-left:3px solid var(--ua);}
.calc-result-item.close{border-left:3px solid var(--accent);}
.calc-result-item.far{border-left:3px solid var(--border);opacity:.6;}
.calc-result-diff{font-size:.7rem;color:var(--text2);}
.calc-legend{
  display:flex;gap:.8rem;margin-bottom:.7rem;flex-wrap:wrap;font-size:.72rem;color:var(--text2);
}
.calc-legend span::before{content:'● ';font-size:.8rem;}
.cl-ok::before{color:var(--ua)!important;}
.cl-close::before{color:var(--accent)!important;}
.cl-far::before{color:var(--border)!important;}

@media(max-width:768px){
  .main{padding:1rem;}
  .cards-grid{grid-template-columns:1fr;}
  .header-stats{display:none;}
  .calc-asig-grid{grid-template-columns:1fr;}
}

/* Cupos adicionales desplegable */
.card-cupos-toggle {
  font-size:.65rem; color:var(--text2); cursor:pointer;
  border:none; background:none; padding:.3rem 0 0;
  display:flex; align-items:center; gap:.3rem;
  transition:color .15s; font-family:'DM Sans',sans-serif;
}
.card-cupos-toggle:hover { color:var(--accent); }
.card-cupos-panel {
  display:none; margin-top:.5rem;
  background:var(--surface2); border-radius:8px; padding:.6rem .8rem;
}
.card-cupos-panel.open { display:block; }
.cupos-extra-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem;
  font-size:.72rem;
}
.cupo-item { text-align:center; }
.cupo-item .cl { color:var(--text2); font-size:.62rem; display:block; }
.cupo-item .cv { font-weight:600; color:var(--text); }
.cupo-item .cv.na { color:var(--border); }


/* Privadas */
.priv-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .15s,box-shadow .15s;}
.priv-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.4);}
.priv-card-head{padding:.85rem 1rem .65rem;border-bottom:1px solid var(--border);}
.priv-card-uni{font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:100px;display:inline-block;margin-bottom:.4rem;}
.priv-card-titulo{font-size:.88rem;font-weight:700;line-height:1.3;}
.priv-card-body{padding:.75rem 1rem;}
.priv-card-info{font-size:.78rem;color:var(--text2);margin-bottom:.6rem;line-height:1.5;}
.priv-links{display:flex;gap:.5rem;flex-wrap:wrap;}
.priv-btn{font-size:.7rem;font-weight:600;padding:.3rem .7rem;border-radius:6px;text-decoration:none;transition:opacity .15s;display:inline-flex;align-items:center;gap:.3rem;}
.priv-btn:hover{opacity:.8;}
.priv-btn-main{background:var(--accent);color:#111;}
.priv-btn-pub{background:var(--surface2);border:1px solid var(--border);color:var(--text2);}
.priv-filter-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;}
.priv-filter-chip{background:var(--surface);border:1px solid var(--border);color:var(--text2);font-size:.75rem;padding:.3rem .8rem;border-radius:100px;cursor:pointer;transition:all .15s;}
.priv-filter-chip.active{background:var(--accent);border-color:var(--accent);color:#111;font-weight:600;}