/* Simulador de campaña · Extremadura 2025 */
.wrap.juego{max-width:920px}
.cabecera{padding:28px 0 6px}
.cabecera .kicker{color:var(--accent);font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:12px}
.cabecera h1{font-family:var(--serif);font-size:clamp(26px,4.5vw,40px);margin:6px 0 8px}
.cabecera p{color:var(--muted);margin:0;max-width:66ch}
.mini{font-size:12.5px;color:var(--faint)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;margin-top:16px}
.panel h2{font-family:var(--serif);font-size:21px;margin:0 0 8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:#fff;border:none;border-radius:9px;padding:11px 20px;font-weight:600;font-size:14.5px;cursor:pointer;font-family:inherit;text-decoration:none}
.btn:hover{background:var(--brand-2)}
.btn.ghost{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}
.btn.xs{padding:5px 11px;font-size:12px;border-radius:7px}
.chip{display:inline-block;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;background:#e8eef7;color:#4a5a78;border-radius:999px;padding:3px 9px;font-weight:700}
.chip.live{background:var(--ok);color:#fff}
/* retrato con foto o iniciales */
.retrato{position:relative;display:inline-grid;place-items:center;border-radius:50%;overflow:hidden;color:#fff;font-family:var(--sans);flex:none;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.retrato b{font-size:.42em;font-weight:800;letter-spacing:.5px}
.retrato img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.retrato img[src*="guardiola"]{object-position:center 45%}/* su cara queda baja: subimos el encuadre */
/* foto destacada (candidatos): imagen entera, sin recortes, centrada en un marco */
.foto{display:inline-block;width:100%;border-radius:14px;overflow:hidden;background:#efece5;border:1px solid var(--line);box-shadow:0 1px 5px rgba(0,0,0,.14);line-height:0}
.foto img{display:block;width:100%;height:auto}
.foto.noimg{min-height:130px;line-height:normal}
.foto.noimg::after{content:attr(data-n);display:grid;place-items:center;min-height:130px;color:var(--muted);font-weight:800;font-family:var(--sans);font-size:26px}
.duo{display:flex;justify-content:center;margin:8px 0 4px}
.picks{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.pick{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;background:var(--panel);border:1px solid var(--line);border-top:4px solid #e30613;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;cursor:pointer;font-family:inherit;transition:transform .12s,box-shadow .2s}
.pick:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(20,22,28,.14)}
.pick .foto{margin-bottom:4px}
.pick .pn{font-weight:800;font-size:17px;margin-top:4px}
.pick .pr{font-size:12px;font-weight:800;letter-spacing:.3px}
.pick .pd{font-size:12.5px;color:var(--muted);line-height:1.38}
@media(max-width:560px){.picks{grid-template-columns:1fr}}
/* portada: selección de bando */
.bandos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px}
.bando{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--pc);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 12px;cursor:pointer;transition:transform .12s,box-shadow .2s;font-family:inherit;text-align:center}
.bando:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(20,22,28,.14)}
.bando .bn{font-weight:800;font-size:16px;margin-top:4px}
.bando .bc{font-size:12.5px;color:var(--muted)}
.bando .bx{font-size:11px;color:var(--accent);font-weight:700;margin-top:2px}
/* barra superior de estado */
.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 0 2px;border-bottom:1px solid var(--line);margin-bottom:4px}
.topbar .tt{font-family:var(--serif);font-size:20px;font-weight:700}
.topbar .ts{color:var(--muted);font-size:13.5px}
.tmenu{display:flex;gap:8px;flex-wrap:wrap}
/* decisión */
.decision .dhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.decision .dias{font-size:12.5px;color:var(--faint)}
.dtext{color:var(--muted);margin:0 0 14px}
.cchip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink);background:#edf2f9;border-radius:999px;padding:3px 10px 3px 3px}
.ops{display:flex;flex-direction:column;gap:9px}
.op{text-align:left;background:#f9fbfe;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14.5px;font-family:inherit;color:var(--ink);cursor:pointer;transition:border-color .12s,background .12s}
.op:hover{border-color:var(--brand);background:#fff}
.op.blank{color:var(--faint);font-style:italic;background:#f6f5f1;cursor:pointer}
.op.blank:hover{border-color:var(--line);background:#f0eee9}
.op .riesgo{float:right;font-size:11px;color:#2f64c4;font-weight:700;background:#f6ecdf;border-radius:6px;padding:1px 7px;margin-left:8px}
/* comarcas */
.comarcas{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:6px}
.comarca{text-align:left;background:#f9fbfe;border:1px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;font-family:inherit;transition:border-color .12s,transform .1s}
.comarca:hover{border-color:var(--brand);transform:translateY(-1px)}
.comarca b{display:block;font-size:14px}
.comarca small{color:var(--faint);font-size:11.5px}
/* barra de escaños */
.seatbar-wrap{position:relative;margin-bottom:4px}
.seatbar{display:flex;height:34px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.seatbar span{display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800;min-width:3px}
.maj-marker{position:absolute;top:-3px;bottom:-3px;width:2px;background:#1b1e24;transform:translateX(-1px)}
.maj-marker::after{content:"";position:absolute;top:-4px;left:-3px;border:4px solid transparent;border-top-color:#1b1e24}
.mayoria-linea{text-align:center;margin-top:2px}
.mayoria-linea span{font-size:11px;color:var(--faint)}
.seatnums{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:14px}
.seatnums i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.seatnums b{font-size:15px}
.pacto{margin-top:12px;padding:11px 14px;border-radius:10px;background:#eef3fa;font-size:14px;font-weight:600}
.pacto.maj{background:#e7f2e8;color:#205a24}
/* tablas */
.ptab{width:100%;border-collapse:collapse;font-size:13px}
.ptab th,.ptab td{padding:6px 8px;border-bottom:1px solid #f0eee8;text-align:center}
.ptab th:first-child,.ptab td:first-child{text-align:left}
.ptab th i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px}
.ptab tr.tot td{font-weight:700;background:#f9fbfe}
.comtab td i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.comarca-map{border:1px solid var(--line);border-radius:12px;background:#f3f1ec;padding:6px}
.comarca-map svg{width:100%;max-width:400px;height:auto;display:block;margin:0 auto}
.comarca-map path{transition:fill .25s}
.comarca-map g rect{transition:opacity .2s}
.tbl-wrap{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.veredicto p{font-size:15px;color:var(--ink)}
/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(20,22,28,.5);display:grid;place-items:center;padding:20px;z-index:1000}
.modal{background:var(--panel);border-radius:14px;max-width:640px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.modal-h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel)}
.modal-h h3{margin:0;font-family:var(--serif);font-size:18px}
.modal-x{border:none;background:transparent;font-size:18px;cursor:pointer;color:var(--muted)}
.modal-b{padding:18px 20px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#1b1e24;color:#fff;padding:9px 16px;border-radius:10px;font-size:13.5px;z-index:2000;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.on{opacity:1}
/* gate */
.gate{position:fixed;inset:0;z-index:5000;background:var(--paper);display:grid;place-items:center;padding:24px}
.gate-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 26px;max-width:420px;width:100%}
.gate-card h1{font-family:var(--serif);font-size:24px;margin:4px 0 8px}
.gate-card p{color:var(--muted);font-size:14px;margin:0 0 14px}
.gate-card form{display:flex;gap:10px;flex-wrap:wrap}
.gate-card input{flex:1;min-width:180px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f9fbfe;font-size:14px;font-family:inherit}
.gate-err{color:#8a2418;font-size:13px;margin:12px 0 0!important;display:none}
body.locked{overflow:hidden}
@media(max-width:720px){.bandos{grid-template-columns:1fr 1fr}.comarcas{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.bandos{grid-template-columns:1fr}}

/* --- panel de clima emocional + momentum (v2) --- */
.clima{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 14px;margin:8px 0}
.clima-emos{display:grid;grid-template-columns:1fr 1fr;gap:5px 18px;flex:1;min-width:280px}
.cbar{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
.cbar>span{width:80px;flex:none;text-align:right;font-weight:600}
.cbar .trk{flex:1;height:7px;border-radius:4px;background:rgba(0,0,0,.10);overflow:hidden;min-width:26px}
.cbar .trk i{display:block;height:100%;border-radius:4px;transition:width .35s}
.clima-mom{display:flex;flex-wrap:wrap;gap:4px 11px;align-items:center;font-size:12px}
.clima-mom .cml{font-weight:800;color:var(--ink)}
.mom{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.mom>i{width:9px;height:9px;border-radius:2px;display:inline-block}
.mom b{font-size:13px}
@media(max-width:560px){.clima-emos{grid-template-columns:1fr}}

/* --- tabla de comarcas desplegable: cuánto saca cada partido (v2) --- */
.comtab .crow{cursor:pointer}
.comtab .crow:hover{background:#f6f5f1}
.comtab .crow.open{background:#edf2f9}
.comtab .cexp{width:24px;text-align:center;color:var(--muted)}
.comtab .caret{font-size:11px;display:inline-block}
.comtab .chab{color:var(--faint);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.4px;margin-left:4px}
.comtab .cdet>td{background:#faf8f3;padding:0;border-bottom:1px solid #ece9e2}
.cbrk{display:flex;flex-direction:column;gap:6px;padding:11px 14px}
.cbrk-row{display:grid;grid-template-columns:122px 1fr 54px;align-items:center;gap:10px;font-size:12.5px}
.cbrk-row.mine{font-weight:800}
.cbrk-n{display:flex;align-items:center;gap:7px;color:var(--ink);text-align:left}
.cbrk-n i{width:10px;height:10px;border-radius:2px;flex:none}
.cbrk-bar{height:9px;border-radius:5px;background:rgba(0,0,0,.08);overflow:hidden}
.cbrk-bar b{display:block;height:100%;border-radius:5px;transition:width .3s}
.cbrk-p{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
@media(max-width:560px){.cbrk-row{grid-template-columns:92px 1fr 46px;gap:8px;font-size:12px}}
