:root{
  --navy:#0a1d4b; --gold:#c8892e;
  --bg:#ffffff; --surface:#ffffff; --surface-2:#f4f6f8; --line:#e6ebf0;
  --text:#1b2733; --muted:#7a8794; --faint:#b3bdc7; --heading:#0a1d4b;
  --prensa:#226d94; --congreso:#b0741f; --pband:#d3e5f0; --cband:#f3e2c4;
  --sel:#0a1d4b; --today:#c8892e;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0f1622; --surface:#0f1622; --surface-2:#18212f; --line:#232f40;
    --text:#dde5ee; --muted:#8796a8; --faint:#4a586b; --heading:#e9eff6;
    --prensa:#6db3d9; --congreso:#e0a858; --pband:#1f3a4e; --cband:#43331c;
    --sel:#e9eff6; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0f1622; --surface:#0f1622; --surface-2:#18212f; --line:#232f40;
  --text:#dde5ee; --muted:#8796a8; --faint:#4a586b; --heading:#e9eff6;
  --prensa:#6db3d9; --congreso:#e0a858; --pband:#1f3a4e; --cband:#43331c;
  --sel:#e9eff6; color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
button{font:inherit;cursor:pointer;color:inherit;background:none;border:0;padding:0}
.wrap{max-width:1360px;margin:0 auto;padding:0 40px}
@media (max-width:980px){.wrap{padding:0 24px}}
@media (max-width:640px){.wrap{padding:0 16px}}

/* Encabezado */
header.top{border-bottom:1px solid var(--line)}
.top .fila-marca{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;padding-top:18px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.logo{display:block;height:20px;width:auto}
.brand .beta{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:999px;padding:1px 7px;margin-left:-6px}
.brand .sep{width:1px;height:22px;background:var(--line)}
:root[data-theme="dark"] .logo{filter:brightness(1.9) saturate(.8)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo{filter:brightness(1.9) saturate(.8)}}
.brand h1{margin:0;font:700 20px/1.2 Georgia,serif;color:var(--heading)}
.brand span{font-size:12px;color:var(--muted)}
@media (max-width:900px){.brand span:not(.sep):not(.beta){display:none}}
@media (max-width:480px){.logo{height:16px}.brand{gap:10px}.brand h1{font-size:17px}}
.search{flex:0 1 340px;min-width:200px;position:relative}
.search input{width:100%;padding:7px 12px 7px 32px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:14px}
.search input:focus{outline:none;border-color:var(--prensa)}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}
.avz{font-size:12px;color:var(--muted);white-space:nowrap}
.avz:hover,.avz[aria-expanded="true"]{color:var(--text);text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){.search{flex:1 1 100%;min-width:0}.avz{margin-left:auto}}

/* Distribución: documento a la izquierda, calendario a la derecha */
/* Sin informe abierto el calendario va centrado; al abrir uno, el documento ocupa la izquierda */
main.cal-main{display:flex;justify-content:center;align-items:flex-start;padding-top:20px;padding-bottom:40px}
.cal{order:2;flex:0 0 420px;max-width:100%;transition:flex-basis .35s ease}
.panel{order:1;flex:0 1 0;min-width:0;opacity:0;visibility:hidden;margin-right:0;transition:flex-grow .35s ease,opacity .25s ease,margin .35s ease}
body.abierto .panel{flex-grow:1;opacity:1;visibility:visible;margin-right:56px}
@media (max-width:980px){
  main.cal-main{flex-direction:column;align-items:center;padding-top:16px}
  .cal{order:1;flex:none;width:100%;max-width:440px}
  .panel{order:2;width:100%;display:none;margin:28px 0 0}
  body.abierto .panel{display:block;margin-right:0}
}

/* Calendario */
.bar{display:flex;align-items:center;gap:14px;margin-bottom:8px;font-size:13px}
.toggle{color:var(--faint);display:inline-flex;align-items:center;gap:6px}
.toggle .sw{width:7px;height:7px;border-radius:50%;background:currentColor}
.toggle[aria-pressed="true"].p{color:var(--prensa)}
.toggle[aria-pressed="true"].c{color:var(--congreso)}
.toggle[aria-pressed="true"]{font-weight:600}
#hoy{margin-left:auto;color:var(--muted)} #hoy:hover{color:var(--text)}
.months{position:relative}
.mrow{display:grid;grid-template-columns:76px repeat(7,minmax(0,1fr));align-items:stretch}
.mrow.dows{padding:2px 0 6px}
.mrow.nuevo:not(.dows){margin-top:14px}
.mrow.dows + .mrow.nuevo{margin-top:0}
.mrow.dows span{font-size:10px;color:var(--faint);text-align:center;letter-spacing:.04em}
.mlab{position:relative;padding-top:5px;font-size:12px;font-weight:600;color:var(--muted);text-transform:capitalize;line-height:1.2}
.mlab small{display:block;color:var(--faint)}
.cell{display:flex;flex-direction:column;padding:1px 0 3px}
.d{display:flex;justify-content:center}
.d b{font-size:12px;font-weight:400;line-height:22px;width:22px;height:22px;border-radius:50%;text-align:center;color:var(--faint)}
.d.has b{color:var(--text)}
.d:hover b{background:var(--surface-2)}
.d.today b{color:var(--today);font-weight:600}
.d.sel b{background:var(--sel);color:var(--bg);font-weight:600}
.trk{position:relative;height:8px;margin-top:1px}
.band{position:absolute;inset:0;background:var(--pband)}
.band.c{background:var(--cband)}
.band.pc{background:linear-gradient(var(--pband) 50%,var(--cband) 50%)}
.band.ini{left:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}
.band.fin{right:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}
.band:hover,.band.on{filter:brightness(.88) saturate(1.5)}
.trk i{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--prensa);pointer-events:none}
.mes-btn{position:absolute;left:0;top:26px;z-index:1;display:inline-block;font-size:10px;font-weight:600;line-height:1.2;text-align:left;color:var(--congreso);border:1px solid var(--cband);background:var(--bg);border-radius:6px;padding:3px 6px}
.mes-btn:hover{background:var(--cband)}
.mes-btn.on{background:var(--congreso);border-color:var(--congreso);color:var(--bg)}
.trims{display:flex;align-items:center;justify-content:center;gap:4px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.trims button{font-size:12px;color:var(--muted);padding:4px 9px;border-radius:999px}
.trims .anio{font-size:11px;color:var(--faint);margin:0 2px 0 6px}
.trims button:hover:not(:disabled){color:var(--text);background:var(--surface-2)}
.trims .tr.on{color:var(--bg);background:var(--sel);font-weight:600}
.trims .nav{font-size:16px;line-height:1;padding:3px 8px}
.trims .nav:disabled{color:var(--faint);cursor:default}
@media (max-width:640px){.trims{gap:2px}.trims button{padding:4px 7px}.trims .anio{margin-left:2px}}
.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:12px;font-size:11px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend .dot{width:4px;height:4px;border-radius:50%;background:var(--prensa)}
.legend .lgl{width:16px;height:6px;border-radius:3px;display:inline-block}

/* Vista amplia: sin informe abierto, el calendario se presenta más holgado */
@media (min-width:981px){
  body:not(.abierto) .cal{flex-basis:600px}
  body:not(.abierto) .bar{font-size:14px;margin-bottom:14px}
  body:not(.abierto) .mrow{grid-template-columns:110px repeat(7,minmax(0,1fr))}
  body:not(.abierto) .mrow.dows span{font-size:11px}
  body:not(.abierto) .mrow.nuevo:not(.dows){margin-top:20px}
  body:not(.abierto) .mrow.dows + .mrow.nuevo{margin-top:0}
  body:not(.abierto) .mlab{font-size:14px;padding-top:8px}
  body:not(.abierto) .mes-btn{top:32px}
  body:not(.abierto) .cell{padding:2px 0 5px}
  body:not(.abierto) .d b{font-size:15px;line-height:30px;width:30px;height:30px}
  body:not(.abierto) .trk{height:9px;margin-top:1px}
  body:not(.abierto) .band.ini{left:8px;border-radius:5px 0 0 5px}
  body:not(.abierto) .band.fin{right:8px;border-radius:0 5px 5px 0}
  body:not(.abierto) .band.ini.fin{border-radius:5px}
  body:not(.abierto) .trk i{width:5px;height:5px;margin:-2.5px 0 0 -2.5px}
  body:not(.abierto) .mes-btn{font-size:11px;padding:4px 8px}
  body:not(.abierto) .trims{margin-bottom:20px;padding-bottom:14px}
  body:not(.abierto) .trims button{font-size:13px;padding:5px 12px}
  body:not(.abierto) .legend{font-size:12px;margin-top:16px;gap:6px 18px}
}

/* Panel del documento */
@media (min-width:981px){.panel{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding-right:4px}}
.phead{display:flex;align-items:flex-start;gap:12px}
.cerrar{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 10px;margin-bottom:14px}
.cerrar:hover{color:var(--text);border-color:var(--muted)}
.cerrar.abajo{margin:20px 0 0}
.panel h2{margin:0;font:700 22px/1.25 Georgia,serif;color:var(--heading)}
.panel .sub{color:var(--muted);font-size:13px;margin:2px 0 14px}
.tabs{display:flex;flex-wrap:wrap;gap:4px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}
.tab{font-size:13px;color:var(--muted);padding:6px 0;margin-bottom:-1px;border-bottom:2px solid transparent}
.tab small{color:var(--faint)}
.tab:hover{color:var(--text)}
.tab.on{color:var(--text);font-weight:600;border-bottom-color:var(--sel)}
.dl{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.dl a{font-size:13px;text-decoration:none;color:var(--muted)}
.dl a:hover{color:var(--text)}
.dl a.main{font-weight:600;color:var(--bg);background:var(--sel);border-radius:999px;padding:6px 14px}
.dl a.main:hover{opacity:.9;color:var(--bg)}
.doc{border:1px solid var(--line);border-radius:10px;padding:28px 32px 24px;max-width:720px;border-top:4px solid var(--prensa)}
.doc.c{border-top-color:var(--congreso)}
@media (max-width:640px){.doc{padding:20px 18px}}
.doc .k{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--prensa)}
.doc.c .k{color:var(--congreso)}
.doc .t{margin:4px 0 0;font:700 26px/1.2 Georgia,serif;color:var(--heading)}
.doc .s{font:italic 16px/1.4 Georgia,serif;color:var(--muted);margin-top:2px}
.doc .rule{width:72px;height:3px;background:var(--gold);margin:12px 0 10px}
.doc .m{font-size:12px;color:var(--muted)}
.doc h4{margin:24px 0 8px;font:700 17px/1.3 Georgia,serif;color:var(--heading)}
.doc .breve{margin:0;padding-left:18px}
.doc .breve li{margin:6px 0;font:15px/1.55 Georgia,serif}
.doc .items{margin:0;padding:0;list-style:none;counter-reset:n}
.doc .items li{counter-increment:n;position:relative;padding:0 0 16px 34px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.doc .items li:last-child{border-bottom:0;margin-bottom:0}
.doc .items li::before{content:counter(n);position:absolute;left:0;top:-3px;font:700 22px/1.2 Georgia,serif;color:var(--gold)}
.doc .items .tag{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.doc .items b{display:block;font:700 16px/1.35 Georgia,serif;color:var(--heading)}
.doc .items p{margin:4px 0 0;font:15px/1.6 Georgia,serif}
.doc .items .f{margin-top:5px;font-size:12px}
.doc .items .f a{color:var(--prensa);text-decoration:none}
.doc .items .f a:hover{text-decoration:underline}
.doc .pie{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--faint)}
.doc .pie a{font-weight:600;color:var(--prensa);text-decoration:none}
.doc .pie a::before{content:"↓ "}
.doc .pie a:hover{text-decoration:underline}
.doc.c .pie a{color:var(--congreso)}
.none{color:var(--muted);font-size:14px}
.adv{border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:18px;display:grid;grid-template-columns:90px 1fr;gap:12px 14px;align-items:center;max-width:720px}
@media (max-width:640px){.adv{grid-template-columns:1fr;gap:6px;padding:14px}}
.adv .lab{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.adv input[type=search],.adv input[type=date],.adv select{font:inherit;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.adv input[type=search]{width:100%}
.adv input:focus,.adv select:focus{outline:none;border-color:var(--prensa)}
.adv .ayuda{grid-column:2;font-size:11px;color:var(--faint);margin-top:-6px}
@media (max-width:640px){.adv .ayuda{grid-column:1;margin:0 0 6px}}
.adv .fila{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.chip{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:3px 11px;color:var(--muted)}
.chip[aria-pressed="true"]{border-color:var(--sel);background:var(--sel);color:var(--bg)}
.adv .rapido{font-size:12px;color:var(--prensa)}
.adv .rapido:hover{text-decoration:underline}
.adv .acc{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px;font-size:12px}
.adv .acc button{color:var(--muted)} .adv .acc button:hover{color:var(--text)}
.res{display:block;width:100%;text-align:left;padding:10px 0;border-bottom:1px solid var(--line)}
.res:hover .snip{color:var(--text)}
.res .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.res .lbl.p{color:var(--prensa)} .res .lbl.c{color:var(--congreso)}
.res .snip{font-size:13px;color:var(--muted);margin-top:2px}
.res mark{background:#f3dfb5;color:#1b2733;border-radius:2px;padding:0 1px}
footer{color:var(--faint);font-size:11px;text-align:center;padding:0 16px 24px}

/* ================= Sitio: menú, páginas y formularios ================= */
main.wrap{padding-top:36px;padding-bottom:56px}
.herramientas{display:flex;align-items:center;justify-content:flex-end;gap:10px 18px;flex-wrap:wrap;padding-top:18px}

.titulo{margin:0 0 6px;font:700 26px/1.2 Georgia,serif;color:var(--heading)}
.sub{color:var(--muted);font-size:14px;margin:2px 0 16px}
.angosto{max-width:720px}
.aviso{border-radius:8px;padding:10px 14px;margin:0 0 16px;font-size:14px;background:var(--surface-2);border:1px solid var(--line)}
.aviso.ok{background:#e9f4ec;border-color:#bfe0c8;color:#1f5a32}
.aviso.error{background:#fbecea;border-color:#f0c7c1;color:#8a2b1f}
:root[data-theme="dark"] .aviso.ok{background:#16301f;border-color:#24563a;color:#bfe7cc}
:root[data-theme="dark"] .aviso.error{background:#3a1c18;border-color:#6b2e26;color:#f3c4bc}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .aviso.ok{background:#16301f;border-color:#24563a;color:#bfe7cc}:root:not([data-theme="light"]) .aviso.error{background:#3a1c18;border-color:#6b2e26;color:#f3c4bc}}
.copiar{width:100%;margin-top:6px;font:12px ui-monospace,Menlo,monospace;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text)}

.form{display:grid;gap:14px}
.form label{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--text)}
.form label small{font-weight:400;color:var(--muted)}
.form input:not([type=checkbox]),.form select,.tabla select,.tabla input{font:inherit;font-size:15px;font-weight:400;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;width:100%}
.form input:focus,.form select:focus{outline:none;border-color:var(--prensa);background:var(--bg)}
.ayuda{margin:-6px 0 0;font-size:12px;color:var(--muted)}
.primario{justify-self:start;font-size:14px;font-weight:600;color:var(--bg);background:var(--sel);border-radius:999px;padding:9px 20px}
.primario:hover{opacity:.9}
.chico{font-size:12px;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.chico:hover{border-color:var(--muted)}
.check{display:flex !important;grid-template-columns:none;align-items:flex-start;gap:10px !important;font-weight:400 !important;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.check input{margin-top:3px;width:16px;height:16px;accent-color:var(--sel)}
.check span{display:grid;gap:1px}
.check small{color:var(--muted);font-size:12px}
.nota{font-size:13px;color:var(--muted);margin-top:18px}
.nota a,.ir-cal{color:var(--prensa)}

/* Ingreso */
body.acceso main.wrap{display:flex;justify-content:center;padding-top:8vh}
.caja{width:100%;max-width:400px}
.caja h2{margin:0 0 4px;font:700 26px/1.2 Georgia,serif;color:var(--heading)}

/* Bloques (Mi cuenta, Administración) */
.bloque{border-top:1px solid var(--line);padding:22px 0 8px;margin-top:10px}
.bloque h3{margin:0 0 6px;font:700 18px/1.3 Georgia,serif;color:var(--heading)}
.bloque .form{max-width:440px}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0}
.admin-grid>.bloque:first-child{padding-right:48px}
.admin-grid>.bloque+.bloque{padding-left:48px;border-left:1px solid var(--line)}
@media (max-width:760px){.admin-grid>.bloque:first-child{padding-right:0}.admin-grid>.bloque+.bloque{padding-left:0;border-left:0;border-top:1px solid var(--line);margin-top:8px;padding-top:16px}}
.tabla{overflow-x:auto}
.tabla table{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 8px 0;border-bottom:1px solid var(--line)}
.tabla td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.tabla select,.tabla input{font-size:13px;padding:5px 8px;width:auto}
.tabla .acciones{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}   /* va dentro de la celda: si se aplica al <td> se descuadra la fila */
.tabla .acciones form{margin:0}
.rol{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gold);border:1px solid var(--gold);border-radius:999px;padding:0 6px;margin-left:4px}
.estado{font-size:12px;border-radius:999px;padding:2px 9px;white-space:nowrap}
.estado.on{background:#e9f4ec;color:#1f5a32}
.estado.pend{background:var(--cband);color:var(--congreso)}
.estado.off{background:var(--surface-2);color:var(--muted)}

/* Inicio */
.hola{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.hola h2{margin:0;font:700 28px/1.2 Georgia,serif;color:var(--heading)}
.hola .sub{margin:4px 0 0}
.tablero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}
@media (max-width:980px){.tablero{grid-template-columns:1fr;gap:28px}}
.seccion{margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tarjeta{border:1px solid var(--line);border-left:3px solid var(--prensa);border-radius:8px;padding:14px 16px;margin-bottom:12px}
.tarjeta.c{border-left-color:var(--congreso)}
.tarjeta .k{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--prensa)}
.tarjeta.c .k{color:var(--congreso)}
.tarjeta h4{margin:2px 0 6px;font:700 16px/1.3 Georgia,serif;color:var(--heading)}
.tarjeta ul{margin:0;padding-left:16px;font:14px/1.5 Georgia,serif}
.tarjeta li{margin:4px 0}
.tarjeta .acc{display:flex;gap:16px;margin-top:10px;font-size:13px;font-weight:600}
.tarjeta .acc a{color:var(--prensa);text-decoration:none}
.tarjeta.c .acc a{color:var(--congreso)}
.tarjeta .acc a:hover{text-decoration:underline}
.ir-cal{display:inline-block;margin-top:4px;font-size:13px;font-weight:600;text-decoration:none}
.doc .pie a.cal{color:var(--muted);font-weight:400;margin-left:14px}
.doc .pie a.cal::before{content:""}
.doc .mas{font-size:13px;color:var(--muted);margin:4px 0 0}

/* ---------- Encabezado: marca + usuario, y menú de secciones en su propia fila */
.usuario{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}
.usuario .salir button{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 12px}
.usuario .salir button:hover{color:var(--text);border-color:var(--muted)}
@media (max-width:640px){.usuario .quien{display:none}}
.menu .wrap{display:flex;gap:4px 30px;flex-wrap:wrap;overflow-x:auto}
.menu a{font-size:15px;color:var(--muted);text-decoration:none;padding:10px 0 12px;border-bottom:2px solid transparent;white-space:nowrap}
.menu a:hover{color:var(--text)}
.menu a[aria-current="page"]{color:var(--text);font-weight:600;border-bottom-color:var(--gold)}
@media (max-width:640px){.menu .wrap{gap:4px 20px}.menu a{font-size:14px}}

/* ---------- Márgenes amplios y encabezado de sección */
.amplio{max-width:1180px;padding-left:56px;padding-right:56px}
@media (max-width:980px){.amplio{padding-left:32px;padding-right:32px}}
@media (max-width:640px){.amplio{padding-left:20px;padding-right:20px}}
.angosto{max-width:820px}
.enc{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.enc h2{margin:0 0 6px;font:700 30px/1.15 Georgia,serif;color:var(--heading)}
.enc p{margin:0;max-width:640px;font-size:15px;line-height:1.6;color:var(--muted)}
.enc p small{font-size:13px;color:var(--faint)}
@media (max-width:640px){.enc h2{font-size:25px}}
.m-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--prensa);vertical-align:2px;margin:0 1px}
.m-band{display:inline-block;width:18px;height:7px;border-radius:4px;vertical-align:1px;margin:0 1px}
.m-band.p{background:var(--pband)} .m-band.c{background:var(--cband)}
body.calendario main.cal-main{padding-top:8px}
.herramientas{padding-top:0;margin-bottom:6px}

/* ---------- Inicio */
.tablero{gap:56px}
.cab-seccion{margin-bottom:16px}
.cab-seccion h3{margin:0;font:700 21px/1.25 Georgia,serif;color:var(--heading)}
.cab-seccion p{margin:3px 0 0;font-size:13px;color:var(--muted)}
.titulares{margin:0;padding:0;list-style:none;counter-reset:n}
.titulares li{counter-increment:n;position:relative;padding:0 0 18px 36px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.titulares li:last-child{border-bottom:0}
.titulares li::before{content:counter(n);position:absolute;left:0;top:-4px;font:700 24px/1.2 Georgia,serif;color:var(--gold)}
.titulares b{display:block;font:700 17px/1.35 Georgia,serif;color:var(--heading)}
.titulares p{margin:5px 0 0;font:15px/1.6 Georgia,serif;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.titulares .f{margin-top:6px;font-size:12px}
.titulares .f a{color:var(--prensa);text-decoration:none}
.titulares .f a:hover{text-decoration:underline}
.acc-linea{display:flex;gap:22px;flex-wrap:wrap;font-size:14px;font-weight:600}
.acc-linea a{color:var(--prensa);text-decoration:none}
.acc-linea a:hover{text-decoration:underline}
.intro{padding-top:36px}
.intro .enc{margin-bottom:22px}
.enc + .bloque{border-top:0;padding-top:0;margin-top:0}
@media (max-width:640px){
  .top .fila-marca{flex-wrap:nowrap;gap:10px}
  .brand{gap:9px;min-width:0}
  .brand .sep{display:none}
  .brand h1{font-size:17px}
  .usuario .salir button{padding:3px 10px}
      }

/* Archivo: el calendario va dentro de un cuadro de fondo */
.cal{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:18px 20px 16px}
.cal .trims{border-bottom-color:var(--line)}
@media (min-width:981px){body:not(.abierto) .cal{padding:26px 30px 22px}}
@media (max-width:640px){.cal{padding:14px 12px 12px;border-radius:12px}}
@media (max-width:640px){.cal .trims .anio{display:none}.cal .trims button{padding:4px 6px;font-size:12px}.cal .trims .nav{padding:3px 4px}}

/* Archivo histórico: cuadro de simbología junto a la descripción */
.intro .enc{align-items:flex-start}
.intro .enc > div{flex:1 1 380px}
.simbologia{flex:0 0 270px;order:3;margin-left:28px;align-self:flex-start;border:1px solid var(--line);border-radius:12px;padding:14px 18px 12px;background:var(--surface)}
.simbologia summary{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;list-style:none}
.simbologia summary::-webkit-details-marker{display:none}
.simbologia summary::after{content:" ▾";font-size:10px}
.simbologia[open] summary{margin-bottom:10px}
.simbologia[open] summary::after{content:" ▴"}
@media (min-width:981px){.simbologia summary{pointer-events:none}}
.simbologia ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
.simbologia li{display:flex;align-items:center;gap:10px;font-size:12.5px;line-height:1.3;color:var(--text)}
.simbologia li > span{flex:0 0 46px;display:flex;justify-content:center;align-items:center}
.sm-dia{flex-direction:column;gap:2px}
.sm-dia b{font-size:12px;font-weight:600;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;color:var(--text)}
.sm-dia b.sel{background:var(--sel);color:var(--bg)}
.sm-dia b.hoy{color:var(--today);box-shadow:inset 0 0 0 1.5px var(--today)}
.sm-dia .pt{width:4px;height:4px;border-radius:50%;background:var(--prensa)}
.sm-banda{height:8px;border-radius:4px;background:var(--pband)}
.sm-banda.c{background:var(--cband)}
.sm-banda.pc{background:linear-gradient(var(--pband) 50%,var(--cband) 50%)}
.sm-mes{font-size:9px;font-weight:600;line-height:1.15;color:var(--congreso);border:1px solid var(--cband);border-radius:5px;padding:2px 4px;background:var(--bg)}
@media (min-width:981px){.simbologia summary::after,.simbologia[open] summary::after{content:none}}
/* La simbología acompaña al calendario solo mientras no hay un día abierto */
body.abierto .simbologia{display:none}
@media (max-width:980px){
  .simbologia{order:2;flex:none;width:100%;max-width:440px;margin:14px 0 0}
  .panel{order:3}
}

/* Inicio: «Hoy en la prensa» dentro de una caja */
.caja-hoy{border:1px solid var(--line);border-top:4px solid var(--prensa);border-radius:12px;padding:24px 30px 26px;background:var(--surface)}
.caja-hoy .cab-seccion{padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.caja-hoy .acc-linea{padding-top:14px;border-top:1px solid var(--line)}
.caja-hoy .titulares li:last-child{margin-bottom:0}
@media (max-width:640px){.caja-hoy{padding:18px 18px 20px}}

/* Inicio: «Hoy en la prensa» con forma de periódico */
.periodico{--papel:#fbf8f1;--tinta:#1d1b17;--tinta-2:#4a463d;--regla:#cfc6b1;
  background:var(--papel);color:var(--tinta);border:1px solid var(--regla);border-radius:4px;padding:22px 30px 20px;box-shadow:0 1px 0 var(--regla),0 10px 28px -18px rgba(40,30,10,.35)}
:root[data-theme="dark"] .periodico{--papel:#1c1a16;--tinta:#ece5d6;--tinta-2:#b9b09c;--regla:#4a4436}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .periodico{--papel:#1c1a16;--tinta:#ece5d6;--tinta-2:#b9b09c;--regla:#4a4436}}
@media (max-width:640px){.periodico{padding:16px 16px 14px}}
.mancheta{text-align:center;border-bottom:3px double var(--tinta);padding-bottom:8px;margin-bottom:18px}
.mancheta .filete{display:flex;justify-content:space-between;gap:10px;font:600 10px/1.4 Helvetica,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2);border-bottom:1px solid var(--tinta);padding-bottom:6px}
@media (max-width:640px){.mancheta .filete span:nth-child(2){display:none}}
.mancheta h3{margin:10px 0 4px;font:700 46px/1 Georgia,"Times New Roman",serif;letter-spacing:-.01em;color:var(--tinta)}
@media (max-width:640px){.mancheta h3{font-size:32px}}
.mancheta .fecha{font:italic 13px/1.4 Georgia,serif;letter-spacing:.08em;color:var(--tinta-2);border-top:1px solid var(--tinta);padding-top:6px}
.periodico .volanta{font:700 10px/1.4 Helvetica,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#a33b2b}
:root[data-theme="dark"] .periodico .volanta{color:#e08a76}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .periodico .volanta{color:#e08a76}}
.portada{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--tinta)}
.portada h4{margin:4px 0 10px;font:700 30px/1.15 Georgia,"Times New Roman",serif;color:var(--tinta)}
@media (max-width:640px){.portada h4{font-size:23px}}
.portada p{margin:0;font:17px/1.6 Georgia,serif;color:var(--tinta);text-align:justify;hyphens:auto}
.portada p::first-letter{float:left;font:700 54px/.85 Georgia,serif;padding:6px 8px 0 0;color:var(--tinta)}
.columnas{columns:2 260px;column-gap:30px;column-rule:1px solid var(--regla)}
.columnas article{break-inside:avoid;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--regla)}
.columnas h5{margin:0 0 6px;font:700 18px/1.25 Georgia,"Times New Roman",serif;color:var(--tinta)}
.columnas p{margin:0;font:14.5px/1.55 Georgia,serif;color:var(--tinta);text-align:justify;hyphens:auto}
.periodico .f{margin-top:6px;font:italic 12px/1.4 Georgia,serif;color:var(--tinta-2)}
.periodico .f a{color:var(--tinta-2);text-decoration:none;border-bottom:1px dotted var(--tinta-2)}
.periodico .f a:hover{color:var(--tinta)}
.pie-periodico{display:flex;justify-content:center;gap:26px;border-top:3px double var(--tinta);padding-top:12px;margin-top:4px;font:600 13px/1.4 Helvetica,Arial,sans-serif}
.pie-periodico a{color:var(--tinta);text-decoration:none;letter-spacing:.02em}
.pie-periodico a:hover{text-decoration:underline}
@media (max-width:640px){.portada p,.columnas p{text-align:left}.portada p{font-size:16px}}

/* Inicio: la semana en punteo */
.punteo{border-left:3px solid var(--prensa);padding:2px 0 2px 16px;margin-bottom:26px}
.punteo.c{border-left-color:var(--congreso)}
.punteo h4{margin:0 0 8px;font:700 17px/1.3 Georgia,serif;color:var(--heading)}
.punteo h4 span{font:400 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--muted);margin-left:6px}
.punteo ul{margin:0 0 8px;padding-left:16px}
.punteo li{margin:6px 0;font-size:14px;line-height:1.45;color:var(--text)}
.punteo li::marker{color:var(--prensa)}
.punteo.c li::marker{color:var(--congreso)}
.punteo a{font-size:13px;font-weight:600;text-decoration:none;color:var(--prensa)}
.punteo.c a{color:var(--congreso)}
.punteo a:hover{text-decoration:underline}

/* Informes (análisis) */
.analisis{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.ficha-analisis{border:1px solid var(--line);border-radius:12px;padding:22px 24px 18px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.ficha-analisis .etiquetas{display:flex;gap:8px;flex-wrap:wrap}
.ficha-analisis .tag{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--congreso)}
.ficha-analisis .prueba{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--faint);border-radius:999px;padding:0 7px}
.ficha-analisis h3{margin:0;font:700 20px/1.3 Georgia,serif;color:var(--heading)}
.ficha-analisis p{margin:0;font:15px/1.6 Georgia,serif;color:var(--muted)}
.pie-analisis{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--faint)}

.d.cub b{color:var(--text)}

/* Inicio: lo que viene en el Congreso */
/* «Lo que viene en el Congreso» dentro de un cuadro, con la marca dorada del Observatorio legislativo */
.agenda{border:1px solid var(--line);border-top:4px solid var(--congreso);border-radius:12px;padding:20px 22px 18px;background:var(--surface);box-shadow:0 10px 28px -20px rgba(40,30,10,.35)}
.agenda .cab-seccion{padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.agenda .viene li:last-child{border-bottom:0}
.agenda .ir-leg{display:block;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:640px){.agenda{padding:16px 16px 14px}}
.agenda .k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--congreso);margin-bottom:2px}
.viene{list-style:none;margin:0 0 14px;padding:0}
.viene li{padding:11px 0;border-bottom:1px solid var(--line);display:grid;gap:3px}
.viene li:first-child{padding-top:2px}
.viene b{font:700 15px/1.3 Georgia,serif;color:var(--heading)}
.viene span{font-size:13.5px;line-height:1.5;color:var(--text)}
.ir-leg{font-size:13px;font-weight:600;color:var(--congreso);text-decoration:none}
.ir-leg:hover{text-decoration:underline}

/* ================= Mapa normativo: tablero (estilo Power BI) y lista ================= */
.pag-mapa{--g3:#1d3f73;--g2:#5f8fb4;--g1:#b8cfe1;--g0:#c3c9d0;--barra:#2f5d8a;--lienzo:#f3f5f7}
:root[data-theme="dark"] .pag-mapa{--g3:#a8cbe6;--g2:#5f95bf;--g1:#2f5070;--g0:#4a5566;--barra:#6fa6d0;--lienzo:#141d2a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pag-mapa{--g3:#a8cbe6;--g2:#5f95bf;--g1:#2f5070;--g0:#4a5566;--barra:#6fa6d0;--lienzo:#141d2a}}
.g3{background:var(--g3)} .g2{background:var(--g2)} .g1{background:var(--g1)} .g0{background:var(--g0)}

.seg{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.seg .search{flex:1 1 260px;max-width:none}
.seg select{font:inherit;font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:7px 12px;flex:0 1 300px;min-width:0}
.seg select:focus{outline:none;border-color:var(--prensa)}
.activos{display:flex;flex-wrap:wrap;gap:6px;min-height:8px;margin:10px 0 14px}
.chip-f{font-size:12px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.chip-f b{font-weight:600}
.chip-f span{color:var(--muted);margin-left:2px}
.chip-f:hover{border-color:var(--muted)}
.limpiar-f{font-size:12px;color:var(--prensa);padding:3px 6px}

/* Lienzo del tablero */
.tablero-bi{background:var(--lienzo);border-radius:14px;padding:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:980px){.tablero-bi{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.tablero-bi{grid-template-columns:1fr;padding:10px;gap:10px}}
.kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:640px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kpi{padding:10px 10px}.kpi b{font-size:22px}.kpi span{font-size:10px}}
.kpi{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 16px;display:grid;gap:2px}
.kpi span{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.kpi b{font:700 28px/1.15 Georgia,serif;color:var(--heading);font-variant-numeric:tabular-nums}
.panel-bi{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px 12px;min-width:0}
.panel-bi header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.panel-bi h3{margin:0;font-size:13px;font-weight:700;color:var(--heading)}
.panel-bi header span{font-size:11px;color:var(--muted);text-align:right}
.panel-bi.bienes{grid-column:1/-1}

/* Mosaico de bienes jurídicos */
.mosaico{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.tile{display:grid;grid-template-rows:auto 1fr auto;gap:6px;text-align:left;border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-height:96px;background:var(--bg);transition:border-color .15s,opacity .15s}
.tile:hover{border-color:var(--barra)}
.tile.on{border-color:var(--sel);box-shadow:inset 0 0 0 1px var(--sel)}
.tile.off{opacity:.42}
.t-nombre{font-size:12px;line-height:1.3;color:var(--text)}
.t-num{display:flex;align-items:baseline;gap:6px}
.t-num b{font:700 22px/1 Georgia,serif;color:var(--heading)}
.t-num small{font-size:11px;color:var(--muted)}
.apilada{display:flex;gap:2px;height:6px}
.apilada i{display:block;height:100%}
.apilada i:first-child{border-radius:3px 0 0 3px} .apilada i:last-child{border-radius:0 3px 3px 0} .apilada i:only-child{border-radius:3px}

/* Barras de los paneles pequeños */
.fila-bi{display:grid;grid-template-columns:minmax(90px,42%) 1fr 40px;align-items:center;gap:8px;width:100%;text-align:left;padding:4px 4px;border-radius:5px}
.fila-bi:hover{background:var(--surface-2)}
.fila-bi.on{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--sel)}
.fila-bi.off{opacity:.42}
.f-nombre{font-size:12px;line-height:1.25;color:var(--text);display:flex;align-items:center;gap:6px;min-width:0}
.f-nombre i{flex:0 0 9px;height:9px;border-radius:2px}
.f-barra{height:10px}
.f-barra i{display:block;height:100%;min-width:3px;border-radius:0 3px 3px 0;background:var(--barra)}
.f-barra i.g3{background:var(--g3)} .f-barra i.g2{background:var(--g2)} .f-barra i.g1{background:var(--g1)} .f-barra i.g0{background:var(--g0)}
.f-num{font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}

.tip{position:fixed;z-index:20;pointer-events:none;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.5;box-shadow:0 6px 20px -8px rgba(0,0,0,.25);display:grid;max-width:260px}
.tip[hidden]{display:none}
.tip b{font-weight:600;margin-bottom:2px}

/* Lista de obligaciones: una línea por obligación, detalle al abrir */
.lista-ob{margin-top:34px;max-width:900px}
.lista-cab{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px}
.lista-cab h3{margin:0;font:700 21px/1.25 Georgia,serif;color:var(--heading)}
.lista-cab span{font-size:13px;color:var(--muted)}
.ob{border-bottom:1px solid var(--line)}
.ob summary{list-style:none;cursor:pointer;padding:13px 4px 12px;display:grid;gap:4px}
.ob summary::-webkit-details-marker{display:none}
.ob summary:hover .ob-txt{color:var(--heading)}
.ob-txt{font:15px/1.55 Georgia,serif;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ob[open] .ob-txt{-webkit-line-clamp:unset;display:block}
.ob-meta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.gdot{width:8px;height:8px;border-radius:2px;display:inline-block}
.ob-det{display:grid;grid-template-columns:110px 1fr;gap:6px 14px;margin:0 4px 16px;padding:12px 14px;background:var(--surface-2);border-radius:8px;font-size:13px}
.ob-det dt{color:var(--muted)}
.ob-det dd{margin:0;color:var(--text)}
@media (max-width:640px){.ob-det{grid-template-columns:1fr;gap:2px}.ob-det dd{margin-bottom:6px}}
.ob mark{background:#f3dfb5;color:#1b2733;border-radius:2px;padding:0 1px}
#m-mas{margin-top:16px}
.nota-base{margin-top:30px;font-size:12px;color:var(--faint)}
@media (max-width:640px){.mosaico{grid-template-columns:1fr 1fr;gap:6px}.tile{min-height:0;padding:8px 10px;gap:4px}.t-nombre{font-size:11.5px}.t-num b{font-size:18px}.panel-bi header{flex-direction:column;align-items:flex-start;gap:2px}.panel-bi header span{text-align:left}}

/* Mapa: filtros de arriba, pestañas de página y paginador */
.seg .search{flex:1 1 220px}
.seg select{flex:1 1 170px;max-width:240px}
@media (max-width:640px){.seg select{flex:1 1 45%;max-width:none}}
.paginas{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:4px 0 16px}
.paginas button{font-size:14px;color:var(--muted);padding:9px 16px;margin-bottom:-1px;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0}
.paginas button:hover{color:var(--text)}
.paginas button[aria-selected="true"]{color:var(--heading);font-weight:600;background:var(--lienzo);border-color:var(--line)}
.paginas span{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px}
.pagina[hidden]{display:none}
.ver-lista{font-size:11px;font-weight:600;color:var(--prensa)}
.ver-lista:hover{text-decoration:underline}
.lista-ob{margin-top:0}
.paginador{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:18px}
.paginador button{min-width:34px;font-size:13px;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:5px 9px}
.paginador button:hover:not(:disabled){border-color:var(--muted)}
.paginador button[aria-current="page"]{background:var(--sel);border-color:var(--sel);color:var(--bg);font-weight:600}
.paginador button:disabled{color:var(--faint);cursor:default}
.paginador span{color:var(--faint);padding:0 2px}

/* Mapa: obligaciones agrupadas por bien jurídico (se despliegan al tocar) */
.grupo-bien{border-bottom:1px solid var(--line)}
.gb-cab{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,180px) 54px 16px;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 6px}
.gb-cab:hover{background:var(--surface-2)}
.gb-nombre{font:700 16px/1.3 Georgia,serif;color:var(--heading)}
.gb-cab .apilada{height:8px}
.gb-num{font-size:13px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.gb-flecha{font-size:18px;color:var(--muted);transition:transform .15s;text-align:center}
.grupo-bien.abierto .gb-flecha{transform:rotate(90deg)}
.grupo-bien.abierto .gb-cab{background:var(--surface-2)}
.gb-cuerpo{padding:2px 6px 16px 18px;border-left:2px solid var(--line);margin-left:6px}
.gb-cuerpo .paginador{margin-top:12px}
@media (max-width:640px){.gb-cab{grid-template-columns:minmax(0,1fr) 60px 40px 12px;gap:8px}.gb-nombre{font-size:14.5px}}

/* Mapa: filtros de selección múltiple (casillas) */
.multi{position:relative;flex:1 1 170px;max-width:240px;min-width:0}
@media (max-width:640px){.multi{flex:1 1 45%;max-width:none}}
.multi-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:7px 12px;text-align:left}
.multi-btn .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.multi-btn .flecha{font-size:10px;color:var(--muted)}
.multi-btn:hover,.multi-btn[aria-expanded="true"]{border-color:var(--muted)}
.multi.activo .multi-btn{background:var(--sel);border-color:var(--sel);color:var(--bg)}
.multi.activo .multi-btn .flecha{color:var(--bg)}
.multi-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:min(360px,90vw);background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px -12px rgba(0,0,0,.3);padding:8px}
.multi-pop[hidden]{display:none}
.multi-buscar{width:100%;font:inherit;font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin-bottom:6px}
.multi-opciones{max-height:300px;overflow:auto}
.multi-grupo{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 6px 2px}
.multi-grupo[hidden],.multi-op[hidden]{display:none}
.multi-op{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:13px;color:var(--text);cursor:pointer}
.multi-op:hover{background:var(--surface-2)}
.multi-op input{width:15px;height:15px;accent-color:var(--sel);margin:0}
.multi-op span{flex:1}
.multi-op small{color:var(--muted);font-variant-numeric:tabular-nums}
.multi-pie{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.multi-pie button{font-size:12px;color:var(--muted);padding:3px 6px}
.multi-pie [data-cerrar]{color:var(--bg);background:var(--sel);border-radius:999px;padding:4px 12px;font-weight:600}

/* Mapa: columnas por año de las normas */
.panel-bi.anios{grid-column:1/-1}
.columnas-bi{display:flex;align-items:stretch;gap:2px;height:170px;padding-top:6px}
.col{flex:1 1 0;min-width:0;display:grid;grid-template-rows:1fr 18px;padding:0;border-radius:3px}
.col:hover:not(:disabled) .col-barra i{background:var(--sel)}
.col:disabled{cursor:default}
.col-barra{display:flex;align-items:flex-end;border-bottom:1px solid var(--line)}
.col-barra i{display:block;width:100%;background:var(--barra);border-radius:3px 3px 0 0}
.col.on .col-barra i{background:var(--sel)}
.col.off .col-barra i{opacity:.35}
.col-eje{font-size:10px;color:var(--muted);text-align:center;line-height:18px;white-space:nowrap;overflow:visible}
@media (max-width:640px){.columnas-bi{height:130px;gap:1px}.col-eje{font-size:9px}}

/* Mapa: obligaciones de un bien jurídico (reemplaza al tablero) */
.detalle-bien{background:var(--lienzo);border-radius:14px;padding:18px 22px 22px;scroll-margin-top:16px}
.detalle-bien[hidden]{display:none}
.detalle-bien .ob{background:var(--bg);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:0 14px}
.detalle-bien .ob summary{padding:12px 0 11px}
.volver-tablero{font-size:13px;color:var(--muted);border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:5px 12px 5px 10px}
.volver-tablero:hover{color:var(--text);border-color:var(--muted)}
.volver-tablero.abajo{margin-top:16px}
.det-cab{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:14px 0 14px;display:grid;gap:8px}
.det-cab .k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.det-cab h3{margin:0;font:700 26px/1.2 Georgia,serif;color:var(--heading)}
.det-cifras{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:var(--muted)}
.det-cifras b{font:700 18px/1 Georgia,serif;color:var(--heading);margin-right:3px}
.det-cab .apilada{height:8px;max-width:420px}
.det-pag{margin:0;font-size:12px;color:var(--faint)}
.tile{cursor:pointer}
.tile:hover{border-color:var(--sel);box-shadow:0 4px 14px -8px rgba(0,0,0,.25)}
@media (max-width:640px){.detalle-bien{padding:12px 10px 16px}.det-cab h3{font-size:21px}}
.tablero-bi[hidden]{display:none}

/* Mapa: gráfico histórico */
.panel-bi.historico{grid-column:1/-1}
.hist{width:100%;min-height:200px}
.hist svg{display:block;overflow:visible}
.h-grid{stroke:var(--line);stroke-width:1}
.h-eje{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.h-area{fill:var(--barra);opacity:.14}
.h-linea{fill:none;stroke:var(--barra);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.h-hito{stroke:var(--faint);stroke-width:1;stroke-dasharray:3 4}
.h-punto{fill:var(--barra);stroke:var(--bg);stroke-width:2}
.h-dato{font:700 14px Georgia,serif;fill:var(--heading)}
.h-guia{stroke:var(--muted);stroke-width:1}
.h-marca{fill:var(--bg);stroke:var(--sel);stroke-width:2.5}
.h-captura{fill:transparent;cursor:crosshair}
/* Mapa: ordenar obligaciones */
.det-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ordenar{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.ordenar select{font:inherit;font-size:13px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:5px 10px}
.gx{background:transparent;box-shadow:inset 0 0 0 1.5px var(--g0)}
.f-barra i.gx{background:transparent;box-shadow:inset 0 0 0 1.5px var(--g0)}

/* Mapa: obligaciones creadas y derogadas por año (colores del informe) */
.pag-mapa{--i-ley:#8b3a3a;--i-dfl:#5a9a88;--i-dl:#9b87b5;--i-dec:#366a92;--i-circ:#c4a35a;--i-der:#b0b0b0}
:root[data-theme="dark"] .pag-mapa{--i-ley:#c97070;--i-dfl:#72b8a5;--i-dl:#b3a2cf;--i-dec:#6fa3cc;--i-circ:#d9bb72;--i-der:#6c737d}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pag-mapa{--i-ley:#c97070;--i-dfl:#72b8a5;--i-dl:#b3a2cf;--i-dec:#6fa3cc;--i-circ:#d9bb72;--i-der:#6c737d}}
.i-ley{fill:var(--i-ley);background:var(--i-ley)} .i-dfl{fill:var(--i-dfl);background:var(--i-dfl)} .i-dl{fill:var(--i-dl);background:var(--i-dl)}
.i-dec{fill:var(--i-dec);background:var(--i-dec)} .i-circ{fill:var(--i-circ);background:var(--i-circ)} .i-der{fill:var(--i-der);background:var(--i-der)}
.leyenda-hist{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--muted);margin:-2px 0 4px}
.leyenda-hist span{display:inline-flex;align-items:center;gap:6px}
.leyenda-hist i{width:11px;height:11px;border-radius:2px;display:inline-block}
.h-grid.cero{stroke:var(--muted)}
.h-gob{stroke:var(--faint);stroke-width:1;stroke-dasharray:3 4}
.h-gob-txt{font:italic 11.5px Georgia,serif;fill:var(--heading)}
.h-col{fill:transparent;cursor:default}
.h-col.on{fill:var(--sel);fill-opacity:.07}
.hist{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.hist-ayuda{display:none;margin:6px 0 0;font-size:11px;color:var(--faint)}
@media (max-width:760px){.hist-ayuda{display:block}}
.usuario .demo{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--gold);border:1px dashed var(--gold);border-radius:999px;padding:3px 10px}

/* ================= Presentación pública (presentacion.php) ================= */
body.presenta main.wrap{padding-top:48px;padding-bottom:56px}
.presenta-hero{max-width:760px;padding-bottom:36px}
.presenta-hero .volanta{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--prensa);margin-bottom:10px}
.presenta-hero h2{margin:0 0 14px;font:700 42px/1.1 Georgia,serif;color:var(--heading)}
.presenta-hero .lead{margin:0 0 26px;font-size:18px;line-height:1.6;color:var(--text)}
.acciones-hero{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.acciones-hero a{text-decoration:none}
.secundario{font-size:14px;font-weight:600;color:var(--heading);border:1px solid var(--line);border-radius:999px;padding:8px 18px}
.secundario:hover{border-color:var(--muted)}
.pilares{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:8px 0 22px}
.pilar{border:1px solid var(--line);border-top:4px solid var(--prensa);border-radius:12px;padding:20px 22px;background:var(--surface)}
.pilar.congreso{border-top-color:var(--congreso)}
.pilar.mapa{border-top-color:var(--heading)}
.pilar h3{margin:0 0 8px;font:700 19px/1.3 Georgia,serif;color:var(--heading)}
.pilar p{margin:0;font-size:15px;line-height:1.6;color:var(--text)}
.presenta-correos{max-width:760px;font-size:15px;color:var(--muted);margin:0 0 30px}
.presenta-solicitud .form{max-width:480px}
.presenta-solicitud textarea{font:inherit;font-size:15px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;width:100%;resize:vertical}
.trampa{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media (max-width:900px){.pilares{grid-template-columns:1fr}.presenta-hero h2{font-size:34px}}
@media (max-width:480px){body.presenta main.wrap{padding-top:28px}.presenta-hero h2{font-size:29px}.presenta-hero .lead{font-size:16px}}
