/* ============================================================================
   Control Maestro de Publicidad · acabado premium (versión local de prueba)
   Capa visual sobre la app: no cambia estructura, datos ni comportamiento.
   Se carga después de los estilos de index.html y solo los afina:
   tipografía Geist, superficies con relieve suave, menú flotante, barra de
   cristal, estados de interacción y movimiento de entrada.
   ============================================================================ */

:root {
  --page:#F2F4F8; --surface:#FFFFFF; --surface-2:#F3F5F9;
  --ink:#0B1424; --ink-2:#465264; --muted:#768195;
  --line:#E3E7EE; --axis:#CED6E1; --wash:#EDF3FB;
  --tinta-fondo:#0A1730;
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --sombra-1:0 1px 2px rgba(11,20,36,.04), 0 1px 1px rgba(11,20,36,.02);
  --sombra-2:0 1px 2px rgba(11,20,36,.04), 0 10px 28px -18px rgba(16,34,66,.28);
  --sombra-3:0 2px 4px rgba(11,20,36,.05), 0 22px 44px -24px rgba(16,34,66,.42);
  --curva:cubic-bezier(.2,.8,.2,1);
  --resorte:cubic-bezier(.34,1.4,.64,1);
  --fuente:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --grano:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

html { scroll-behavior:smooth; }
body { font-family:var(--fuente); font-size:14px; letter-spacing:-.003em; color:var(--ink);
  background:var(--page);
  background-image:radial-gradient(1200px 520px at 78% -12%, rgba(12,99,178,.07), rgba(12,99,178,0) 70%), var(--grano);
  background-attachment:fixed; font-feature-settings:"ss01", "cv11"; text-rendering:optimizeLegibility; }
button, input, select, textarea { font-family:inherit; }
::selection { background:rgba(12,99,178,.18); }
.origen, .calend .ruta, #cap-log, .invita code { font-family:var(--mono); }

/* ------------------------------------------------------------------ menú lateral flotante */
.layout { grid-template-columns:276px 1fr; transition:grid-template-columns .32s var(--curva); }
.layout.mini { grid-template-columns:86px 1fr; }
aside {
  margin:10px 0 10px 10px; height:calc(100vh - 20px); top:10px; border-radius:22px; padding:16px 12px 14px;
  display:flex; flex-direction:column;
  background:
    radial-gradient(140% 60% at 0% 0%, rgba(43,108,196,.38), rgba(43,108,196,0) 60%),
    radial-gradient(90% 40% at 100% 100%, rgba(255,212,0,.07), rgba(255,212,0,0) 70%),
    var(--grano), linear-gradient(180deg, #0D1E3D 0%, var(--tinta-fondo) 55%, #081227 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), inset 0 0 0 1px rgba(255,255,255,.04), 0 24px 50px -28px rgba(8,18,39,.75);
}
aside::-webkit-scrollbar-thumb { background:rgba(255,255,255,.16); }
.marca { gap:12px; padding:2px 4px 16px; border-bottom:1px solid rgba(255,255,255,.08); }
.marca img { width:46px; border-radius:11px; padding:4px; box-shadow:0 6px 16px -8px rgba(0,0,0,.6); }
.marca h1 { font-size:13.5px; font-weight:600; letter-spacing:-.015em; line-height:1.2; }
.marca .sub { font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:4px; }
.plegar { top:16px; right:12px; width:26px; height:26px; border-radius:9px; background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.75); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08); transition:background .2s, color .2s, transform .2s var(--resorte); }
.plegar:hover { background:rgba(255,255,255,.14); color:#fff; }
.plegar:active { transform:scale(.92); }

nav { order:2; margin-top:14px; gap:1px; flex:1 1 auto; }
.estado { order:3; margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.08); }
nav .secc { margin-top:10px; }
nav .secc:first-child { margin-top:0; }
nav .scab { font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.4); padding:8px 12px 6px; background:none !important; }
nav .scab:hover { color:rgba(255,255,255,.7); }
nav .secc.conactivo .scab { color:rgba(255,255,255,.55); }
nav .scab .ic { display:none; }
nav .scab .fle { opacity:.5; }
nav .scuerpo { gap:2px; margin:0 0 2px; }
nav button { position:relative; gap:11px; padding:9px 12px; border-radius:12px; font-size:13.5px; font-weight:450;
  color:rgba(255,255,255,.68); transition:background .2s, color .2s, box-shadow .25s, transform .2s var(--resorte); }
nav button:hover { background:rgba(255,255,255,.06); color:#fff; }
nav button:active { transform:scale(.985); }
nav .scuerpo button { padding-left:12px; font-size:13.5px; }
nav button .ic, nav .scuerpo button .ic { position:static; transform:none; flex:none; width:18px; height:18px; font-size:0; opacity:.85;
  background:currentColor; -webkit-mask:var(--ico) center / 18px 18px no-repeat; mask:var(--ico) center / 18px 18px no-repeat; }
nav button.on, nav .scuerpo button.on { color:#fff; font-weight:550;
  background:linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 0 0 1px rgba(255,255,255,.07), 0 8px 18px -12px rgba(0,0,0,.6); }
nav button.on .ic { opacity:1; color:var(--amarillo); }
nav button.on::after { content:""; position:absolute; left:-12px; top:50%; width:4px; height:18px; margin-top:-9px; border-radius:0 4px 4px 0;
  background:var(--amarillo); box-shadow:0 0 14px rgba(255,212,0,.7); animation:pm-tick .45s var(--resorte); }
nav button .n { font-family:var(--mono); font-size:10.5px; color:rgba(255,255,255,.5); background:rgba(255,255,255,.07);
  padding:1px 7px; border-radius:999px; min-width:22px; text-align:center; }
nav button .n:empty { display:none; }
nav .suelto { margin-top:2px; }
nav > .suelto:first-of-type { margin-top:14px; }
@keyframes pm-tick { from { transform:scaleY(0); opacity:0 } to { transform:none; opacity:1 } }

/* perfil, abajo del menú */
.perfil { margin-top:0; gap:10px; padding:10px; border-radius:14px; background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06); }
.perfil .ini { width:32px; height:32px; border-radius:10px; font-size:13px; font-weight:700;
  background:linear-gradient(160deg, #FFE45C, var(--amarillo)); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px -4px rgba(255,212,0,.5); }
.perfil .info { font-size:10.5px; color:rgba(255,255,255,.55); }
.perfil .info b { font-size:12.5px; font-weight:600; letter-spacing:-.01em; }
.perfil .info span { max-width:118px; }
.perfil button { text-decoration:none; color:rgba(255,255,255,.6); font-size:10.5px; padding:3px 8px; border-radius:7px; background:rgba(255,255,255,.07); align-self:flex-start; }
.perfil button:hover { color:#fff; background:rgba(255,255,255,.14); }
.salir { text-decoration:none; color:rgba(255,255,255,.5); font-size:11px; margin:8px 0 0 10px; transition:color .2s; }
.salir:hover { color:var(--amarillo); }
.salir::before { content:"↩ "; }

/* menú contraído */
.layout.mini aside { padding:14px 10px; }
.layout.mini .marca { padding:0 0 12px; }
.layout.mini .marca img { width:44px; padding:4px; border-radius:11px; }
.layout.mini .plegar { width:100%; height:30px; margin:0 0 10px; border-radius:10px; background:rgba(255,255,255,.07); }
.layout.mini nav .scab { justify-content:center; padding:10px 0 4px; font-size:0; }
.layout.mini nav .scab .ic { display:none; }
.layout.mini nav .scab::before { content:""; width:18px; height:1px; background:rgba(255,255,255,.18); }
.layout.mini nav .scuerpo button, .layout.mini nav .suelto { justify-content:center; padding:10px 0; font-size:0; }
.layout.mini nav .scuerpo button .ic, .layout.mini nav .suelto .ic { width:20px; height:20px; font-size:0;
  -webkit-mask-size:20px 20px; mask-size:20px 20px; }
.layout.mini nav button.on::after { left:-10px; }
.layout.mini .estado { display:none; }

/* ------------------------------------------------------------------ barra superior de cristal */
.barra { top:0; padding:22px 34px 18px; border-bottom:1px solid rgba(206,214,225,.55);
  background:linear-gradient(180deg, rgba(242,244,248,.92), rgba(242,244,248,.78));
  -webkit-backdrop-filter:blur(18px) saturate(1.6); backdrop-filter:blur(18px) saturate(1.6); }
.barra .fila1 { flex-direction:column; align-items:flex-start; gap:4px; }
.barra .fila1::before { content:attr(data-ceja); font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--azul); display:flex; align-items:center; gap:8px; min-height:14px; }
.barra .fila1[data-ceja=""]::before { content:""; }
.barra h2 { font-size:26px; font-weight:650; letter-spacing:-.035em; line-height:1.12; text-wrap:balance; }
.barra .desc { font-size:13.5px; color:var(--muted); }
.barra h2:empty, .barra .desc:empty { min-height:1em; }
body.pm-cargando .barra h2:empty { width:280px; height:30px; }
body.pm-cargando .barra .desc:empty { width:380px; height:16px; }
body.pm-cargando .barra h2:empty, body.pm-cargando .barra .desc:empty { border-radius:8px; background:linear-gradient(90deg, #E7EBF1 0%, #F4F6F9 40%, #E7EBF1 80%); background-size:300% 100%; animation:pm-brillo 1.4s ease-in-out infinite; }

/* filtros de la barra (solo pantallas de presupuesto anteriores) */
.filtros { gap:14px; margin-top:16px; }
.filtros label { font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:.1em; }
.filtros input { border-radius:12px; padding:8px 12px; border-color:var(--line); box-shadow:var(--sombra-1); }
.filtros .limpiar { border-radius:12px; padding:8px 13px; }
.fchips .fch { border-radius:999px; padding:4px 11px; transition:background .2s, border-color .2s, color .2s, transform .2s var(--resorte); }
.fchips .fch:active { transform:scale(.95); }
.fchips .fch.si { background:var(--ink); border-color:var(--ink); }

/* ------------------------------------------------------------------ cuerpo */
.cuerpo { padding:28px 34px 90px; max-width:1480px; }
body.en-v3 .barra { display:none; }
body.en-v3 .cuerpo { padding:10px 10px 10px 12px; }
#pane-v3 iframe { height:calc(100vh - 20px); border-radius:22px; background:var(--tinta-fondo);
  box-shadow:0 1px 2px rgba(11,20,36,.05), 0 24px 50px -30px rgba(16,34,66,.45); }

/* ------------------------------------------------------------------ tarjetas de cifras */
.kpis { gap:14px; margin-bottom:18px; }
.kpi { position:relative; overflow:hidden; isolation:isolate; border-radius:var(--r-lg); padding:18px 20px 17px; border:1px solid var(--line);
  background:linear-gradient(180deg, #fff, #FCFDFE); box-shadow:var(--sombra-2), inset 0 1px 0 #fff;
  transition:transform .35s var(--curva), box-shadow .35s var(--curva), border-color .2s; }
.kpi:hover { transform:translateY(-2px); box-shadow:var(--sombra-3); border-color:#D6DEE9; }
.kpi .k { font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.09em; color:var(--muted); }
.kpis { grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); }
#pane-notas td.origen { white-space:normal; overflow-wrap:anywhere; font-size:10.5px; min-width:150px; max-width:240px; }
.kpi { container-type:inline-size; }
.kpi .v { font-size:clamp(15px, 15cqi, 26px); font-weight:650; letter-spacing:-.04em; line-height:1.12; margin-top:8px; text-wrap:balance; }
#pane-legal .kpis-legal .kpi .v, #pane-notas .kpi .v { font-size:clamp(18px, 11.5cqi, 30px); }
.kpi .d { font-size:12px; color:var(--muted); margin-top:7px; line-height:1.45; }
.kpi .v .cifra { border-bottom:0; }
.kpi.acento, #pane-legal .kpi.acento { color:#fff; border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(120% 95% at 0% 0%, rgba(255,255,255,.16), rgba(255,255,255,0) 55%),
    radial-gradient(90% 80% at 100% 110%, rgba(12,99,178,.55), rgba(12,99,178,0) 62%),
    linear-gradient(158deg, #1B4074 0%, #0B1B33 60%, #081226 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 22px 44px -26px rgba(8,18,38,.9), 0 2px 6px rgba(8,18,38,.18); }
.kpi.acento::before { content:""; position:absolute; z-index:-1; left:-30%; right:-30%; top:-60%; height:80%; transform:rotate(-7deg);
  background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0)); pointer-events:none; }
.kpi.acento::after { content:""; position:absolute; z-index:-1; left:20px; right:20px; bottom:0; height:2px; border-radius:2px;
  background:linear-gradient(90deg, var(--amarillo), rgba(255,212,0,0)); opacity:.85; }
.kpi.acento .k { color:rgba(255,255,255,.62); }
.kpi.acento .d { color:rgba(255,255,255,.72); }
.kpi.alerta { border-color:rgba(178,106,0,.28); background:linear-gradient(180deg, #FFF9EE, #FDF2DD); }
.kpi.alerta .k { color:#8a5200; } .kpi.alerta .d { color:#7a4a00; }
.kpi.click { cursor:pointer; }

/* ------------------------------------------------------------------ tarjetas y bloques */
.card { border-radius:var(--r-lg); padding:22px 24px 20px; margin-bottom:16px; border-color:var(--line);
  box-shadow:var(--sombra-2), inset 0 1px 0 #fff; }
.card h3 { font-size:16px; font-weight:620; letter-spacing:-.02em; }
.card .sub, .card > .sub { font-size:12.5px; color:var(--muted); margin-top:3px; margin-bottom:16px; max-width:96ch; text-wrap:pretty; }
.g2, .g3, .g23 { gap:16px; }
.avg { border-radius:var(--r-lg); padding:18px 22px; gap:18px; box-shadow:var(--sombra-2); }
.avg .et { font-family:var(--mono); font-weight:500; letter-spacing:.09em; }
.avg .n { font-size:30px; font-weight:650; letter-spacing:-.04em; }
.avg .prog, .tj .prog, .lic .mgbar, .lic .mixf .b, .estfila .riel, .bmini, .track, .minib, .prog {
  background:#EDF0F5; box-shadow:inset 0 1px 2px rgba(11,20,36,.07); }
.avg .prog i, .tj .prog i, .lic .mgbar i, .lic .mixf .b i, .estfila .riel i, .bmini i, .minib i, .prog i {
  background-image:linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)); }
.avg .prog i { background-color:var(--ok); }

/* tarjetas de convenio y de licencia */
.tarjetas, .lics { gap:16px; }
.tj, .lic { border-radius:var(--r-lg); padding:20px 22px; border-color:var(--line); box-shadow:var(--sombra-2), inset 0 1px 0 #fff;
  transition:transform .35s var(--curva), box-shadow .35s var(--curva), border-color .2s; }
.tj:hover, .lic:hover { transform:translateY(-2px); box-shadow:var(--sombra-3); border-color:#D3DCE8; }
.lic.on { border-color:var(--azul); box-shadow:0 0 0 4px rgba(12,99,178,.1), var(--sombra-3); }
.tj h4, .lic h4 { font-size:15.5px; font-weight:620; letter-spacing:-.02em; color:var(--ink); }
.lic h4 { letter-spacing:.01em; }
.tj .pc, .lic .mgfila .pc { font-size:22px; font-weight:650; letter-spacing:-.035em; }
.lic .mes, .tj .cnt { font-family:var(--mono); font-size:10.5px; }
.lic .mes { background:#F1F4F8; box-shadow:inset 0 0 0 1px var(--line); }
.lic .cifras .v { font-size:18px; font-weight:650; letter-spacing:-.03em; }
.lic .mgfila .et, .lic .cifras .et, .lic .mix .et { font-family:var(--mono); font-weight:500; letter-spacing:.09em; }
.lic .sinmg { border-radius:12px; background:repeating-linear-gradient(135deg, #F3F5F9 0 8px, #EEF1F6 8px 16px); }
.lic .vermas2 { color:var(--azul); font-weight:600; transition:color .2s, letter-spacing .3s var(--curva); }
.lic .vermas2:hover { letter-spacing:.02em; color:var(--azul-osc); }
.acc2 { border-radius:10px; padding:7px 6px; margin:0 -6px; transition:background .2s; }
.acc2:hover { background:#F6F8FB; }
.acc2 .chk { transition:background .25s, border-color .25s, transform .3s var(--resorte), box-shadow .25s; }
.acc2:active .chk { transform:scale(.88); }
.acc2.si .chk { box-shadow:0 0 0 4px rgba(15,122,69,.12); }

/* ------------------------------------------------------------------ tablas */
.scroll { border-radius:var(--r-md); }
.card .scroll { border:1px solid var(--line); }
.scroll::-webkit-scrollbar { height:9px; width:9px; }
.scroll::-webkit-scrollbar-thumb { background:#D4DBE5; border-radius:9px; border:2px solid #fff; }
table { font-size:13px; }
thead th { background:rgba(247,249,252,.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:.09em; color:var(--muted);
  padding:12px 14px; border-bottom:1px solid var(--line); }
td { padding:13px 14px; border-bottom:1px solid #EEF1F5; }
tbody tr { transition:background .15s; }
tbody tr:hover td { background:#F7F9FD; }
tr.clic:hover td { background:#F1F6FD; }
tr.tot td { background:#F5F7FA; border-top:1px solid var(--axis); }
.tpagos th { font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.08em; padding:12px 8px; background:#F8FAFC; }
.tpagos td { padding:14px 8px; }
.tpagos .proy { font-weight:600; letter-spacing:-.01em; }
.tpagos tr.fila:hover td, .tpagos tr.fila.on td { background:#F2F7FD; }
.calend { border-radius:0 0 14px 14px; background:linear-gradient(180deg, #F5F7FB, #FAFBFD); }

/* ------------------------------------------------------------------ chips, estados, semáforos */
.chip { border-radius:7px; padding:2px 8px; font-size:10.5px; font-weight:500; background:#F2F4F8; border-color:#E5E9EF; }
.etapa, .est2, .rolchip { border-radius:7px; letter-spacing:.02em; }
.est2 { font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:.06em; padding:4px 9px; }
.est .p, .semaf .pt { box-shadow:0 0 0 3px color-mix(in srgb, currentColor 15%, transparent); }

/* barras de filtro tipo control segmentado (convenios, acciones, legal) */
.filtros2 { gap:4px; padding:5px; border-radius:16px; background:rgba(255,255,255,.72); border:1px solid var(--line);
  box-shadow:var(--sombra-1); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); margin-bottom:18px; }
.filtros2 button, #pane-legal .filtros2 button { border:1px solid transparent; background:transparent; color:var(--ink-2); padding:8px 14px;
  border-radius:11px; font-weight:550; transition:background .25s var(--curva), color .2s, box-shadow .25s, transform .2s var(--resorte); }
.filtros2 button { padding:8px 12px; }
.filtros2 input { min-width:180px; flex:0 1 260px; }
.filtros2 button:hover, #pane-legal .filtros2 button:hover { background:#F1F4F8; color:var(--ink); }
.filtros2 button:active { transform:scale(.97); }
.filtros2 button.on, #pane-legal .filtros2 button.on { background:var(--ink); color:#fff; border-color:var(--ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 8px 16px -10px rgba(11,20,36,.7); }
.filtros2 input, #pane-legal .filtros2 input { border-radius:11px; padding:8px 14px 8px 36px; border:1px solid var(--line); background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23768195' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:12px center; background-size:16px; transition:border-color .2s, box-shadow .2s; }
.filtros2 input:focus, #pane-legal .filtros2 input:focus { outline:0; border-color:var(--azul); box-shadow:0 0 0 4px rgba(12,99,178,.13); }

/* ------------------------------------------------------------------ botones y campos */
.btn, .btnppal, .paso-sig button {
  border-radius:12px; padding:10px 17px; font-weight:600; letter-spacing:-.005em; color:#fff;
  background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 50%), linear-gradient(160deg, #2A7FD6, var(--azul) 50%, var(--azul-osc));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), inset 0 0 0 1px rgba(255,255,255,.08), 0 10px 20px -12px rgba(12,99,178,.85);
  transition:transform .25s var(--resorte), box-shadow .25s, filter .2s; }
.btn:hover, .btnppal:hover, .paso-sig button:hover { transform:translateY(-1px); filter:saturate(1.1) brightness(1.04);
  background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 50%), linear-gradient(160deg, #2A7FD6, var(--azul) 50%, var(--azul-osc)); }
.btn:active, .btnppal:active, .paso-sig button:active { transform:translateY(0) scale(.975); }
.btn.sec, .btnsec, .vermas, .chklink {
  border-radius:12px; background:#fff; color:var(--ink-2); border:1px solid var(--line); box-shadow:var(--sombra-1), inset 0 1px 0 #fff;
  transition:transform .25s var(--resorte), border-color .2s, color .2s, box-shadow .25s; }
.btn.sec:hover, .btnsec:hover, .vermas:hover, .chklink:hover { transform:translateY(-1px); border-color:#C9D5E4; color:var(--azul); background:#fff;
  box-shadow:0 8px 18px -12px rgba(16,34,66,.45); }
.btn.sec:active, .btnsec:active, .vermas:active, .chklink:active { transform:scale(.975); }
.chklink { border-radius:999px; }
.btn.peligro { background:linear-gradient(160deg, #D2463C, var(--bad)); box-shadow:0 10px 20px -12px rgba(179,38,30,.85); }
.campo input, .campo select, .campo textarea, .campoa input, .campoa select, .accinput, .accnueva input,
.mapa .m select, .vueltafila select, .vueltafila input, .formu input, .formu select {
  border-radius:11px; border:1px solid #DCE2EA; background:#fff; padding:9px 12px; box-shadow:inset 0 1px 2px rgba(11,20,36,.04);
  transition:border-color .2s, box-shadow .2s; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .campoa input:focus, .campoa select:focus,
.accinput:focus, .accnueva input:focus { outline:0; border-color:var(--azul); box-shadow:0 0 0 4px rgba(12,99,178,.13); }
.campoa label { font-family:var(--mono); font-weight:500; letter-spacing:.09em; font-size:10px; }
.mods label { border-radius:11px; padding:8px 13px; transition:border-color .2s, background .2s, transform .2s var(--resorte); }
.mods label:active { transform:scale(.97); }
.aviso { border-radius:14px; padding:13px 16px; border-color:rgba(178,106,0,.35); background:linear-gradient(180deg, #FFFAF0, #FDF3DF); }
.invita { border-radius:14px; padding:16px 18px; background:linear-gradient(180deg, #F2F7FD, #EDF3FB); border-color:#DCE7F5; }
.vacio { color:var(--muted); }
.pistac { border-radius:999px; background:#EEF4FC; border-color:#DCE7F5; font-weight:550; transition:transform .2s var(--resorte); }
.entradas button { border-radius:var(--r-md); box-shadow:var(--sombra-1); transition:transform .3s var(--curva), border-color .2s, box-shadow .3s; }
.entradas button:hover { transform:translateY(-2px); box-shadow:var(--sombra-2); background:#fff; }

/* ------------------------------------------------------------------ ventanas emergentes */
.telon { background:rgba(6,14,30,.42); -webkit-backdrop-filter:blur(12px) saturate(1.2); backdrop-filter:blur(12px) saturate(1.2); }
.vent { border-radius:24px; border:1px solid rgba(255,255,255,.7);
  box-shadow:0 40px 90px -30px rgba(6,14,30,.6), 0 0 0 1px rgba(11,20,36,.04); }
.vent .cab { padding:22px 26px 18px; }
.vent .cab h3 { font-size:19px; font-weight:650; letter-spacing:-.025em; }
.vent .cab .x { width:34px; height:34px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  background:#F2F4F8; transition:background .2s, transform .3s var(--resorte); }
.vent .cab .x:hover { background:#E8ECF2; transform:rotate(90deg); }
.tabs2 { gap:3px; padding:4px; border-radius:13px; background:#EEF1F5; display:inline-flex; flex-wrap:wrap; }
.tabs2 button { border-radius:10px; padding:7px 14px; font-weight:550; color:var(--ink-2); transition:background .2s, color .2s, box-shadow .2s; }
.tabs2 button.on { background:#fff; color:var(--ink); border-color:transparent; box-shadow:0 1px 2px rgba(11,20,36,.08), 0 6px 14px -8px rgba(11,20,36,.3); }
.tip, #tip { border-radius:11px; padding:9px 12px; background:rgba(11,20,36,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:0 16px 36px -14px rgba(6,14,30,.6); font-size:12px; }

/* gráficas */
svg text { font-family:var(--fuente); }
.ax { font-family:var(--mono); font-size:10px; }

/* ------------------------------------------------------------------ movimiento de entrada
   Solo cuando se cambia de pantalla (clase .pm-entra que pone premium.js):
   un guardado que vuelve a pintar la pantalla no la hace "saltar". */
.pane.pm-entra > *, .pane.pm-entra .kpis > *, .pane.pm-entra .tarjetas > *, .pane.pm-entra .lics > *, .pane.pm-entra .g2 > *, .pane.pm-entra .g3 > *, .pane.pm-entra .g23 > * {
  animation:pm-sube .62s var(--curva) both; }
.pane.pm-entra > *:nth-child(2), .pane.pm-entra .kpis > *:nth-child(2), .pane.pm-entra .tarjetas > *:nth-child(2), .pane.pm-entra .lics > *:nth-child(2), .pane.pm-entra .g2 > *:nth-child(2), .pane.pm-entra .g3 > *:nth-child(2), .pane.pm-entra .g23 > *:nth-child(2) { animation-delay:.05s; }
.pane.pm-entra > *:nth-child(3), .pane.pm-entra .kpis > *:nth-child(3), .pane.pm-entra .tarjetas > *:nth-child(3), .pane.pm-entra .lics > *:nth-child(3), .pane.pm-entra .g3 > *:nth-child(3) { animation-delay:.1s; }
.pane.pm-entra > *:nth-child(4), .pane.pm-entra .kpis > *:nth-child(4), .pane.pm-entra .tarjetas > *:nth-child(4), .pane.pm-entra .lics > *:nth-child(4) { animation-delay:.15s; }
.pane.pm-entra > *:nth-child(5), .pane.pm-entra .kpis > *:nth-child(5), .pane.pm-entra .tarjetas > *:nth-child(n+5), .pane.pm-entra .lics > *:nth-child(n+5) { animation-delay:.2s; }
.pane.pm-entra > *:nth-child(n+6), .pane.pm-entra .kpis > *:nth-child(n+6) { animation-delay:.25s; }
.pane.pm-entra .prog i, .pane.pm-entra .mgbar i, .pane.pm-entra .mixf .b i, .pane.pm-entra .estfila .riel i, .pane.pm-entra .bmini i, .pane.pm-entra .minib i, .pane.pm-entra .track .fill {
  transform-origin:left center; animation:pm-crece .9s .18s var(--curva) both; }
@keyframes pm-sube { from { opacity:0; transform:translateY(14px) scale(.995); } to { opacity:1; transform:none; } }
@keyframes pm-crece { from { transform:scaleX(0); } to { transform:none; } }
@keyframes pm-brillo { 0% { background-position:100% 0 } 100% { background-position:-100% 0 } }
.telon { animation:pm-aparece .22s ease-out; }
.telon .vent { animation:pm-ventana .42s var(--curva); }
@keyframes pm-aparece { from { opacity:0 } to { opacity:1 } }
@keyframes pm-ventana { from { opacity:0; transform:translateY(16px) scale(.98) } to { opacity:1; transform:none } }
/* el pop-up de legal se repinta en cada guardado: solo anima cuando se abre (lo controla app.js con .entra) */
#pane-legal .telon:not(.entra), #pane-legal .telon:not(.entra) .vent { animation:none; }

/* ------------------------------------------------------------------ arranque, red y avisos */
#pm-arranque { position:absolute; inset:0; z-index:5; padding:28px 34px; pointer-events:none; transition:opacity .35s ease; }
#pm-arranque.fuera { opacity:0; }
#pm-arranque .fila { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:16px; }
#pm-arranque .blq { border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--sombra-2); padding:20px; }
#pm-arranque .blq i { display:block; height:10px; border-radius:6px; margin-bottom:12px; width:46%;
  background:linear-gradient(90deg, #ECEFF4 0%, #F6F8FA 40%, #ECEFF4 80%); background-size:300% 100%; animation:pm-brillo 1.4s ease-in-out infinite; }
#pm-arranque .blq i.g { height:26px; width:72%; }
#pm-arranque .blq i.c { width:90%; }
#pm-arranque .alto { height:340px; }
main { position:relative; }

#pm-red { position:fixed; left:0; top:0; height:2px; width:100%; z-index:400; pointer-events:none; opacity:0; transition:opacity .3s; overflow:hidden; }
#pm-red.on { opacity:1; }
#pm-red::before { content:""; position:absolute; top:0; bottom:0; width:40%; border-radius:2px;
  background:linear-gradient(90deg, rgba(12,99,178,0), var(--azul), var(--amarillo)); animation:pm-recorre 1.1s var(--curva) infinite; }
@keyframes pm-recorre { from { left:-40% } to { left:100% } }

#pm-avisos { position:fixed; right:22px; bottom:22px; z-index:410; display:flex; flex-direction:column; align-items:flex-end; gap:8px; pointer-events:none; }
.pm-aviso { pointer-events:auto; display:flex; align-items:center; gap:10px; max-width:440px; padding:11px 16px 11px 13px; border-radius:14px;
  color:#fff; font-size:13px; font-weight:500; line-height:1.4;
  background:rgba(11,20,36,.94); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 20px 44px -18px rgba(6,14,30,.7);
  animation:pm-tostada .45s var(--resorte); transition:opacity .3s, transform .3s var(--curva); }
.pm-aviso.sale { opacity:0; transform:translateY(8px) scale(.98); }
.pm-aviso .ico { flex:none; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.pm-aviso.guardando .ico { border:2px solid rgba(255,255,255,.25); border-top-color:#fff; animation:pm-gira .7s linear infinite; }
.pm-aviso.ok .ico { background:#1BAF7A; box-shadow:0 0 0 4px rgba(27,175,122,.2); }
.pm-aviso.error { background:rgba(122,24,18,.96); }
.pm-aviso.error .ico { background:#fff; color:#B3261E; }
.pm-aviso.info .ico { background:var(--amarillo); color:var(--ink); }
.pm-aviso .x { margin-left:6px; border:0; background:rgba(255,255,255,.12); color:#fff; width:22px; height:22px; border-radius:7px; cursor:pointer; font-size:11px; }
@keyframes pm-tostada { from { opacity:0; transform:translateY(14px) scale(.96) } to { opacity:1; transform:none } }
@keyframes pm-gira { to { transform:rotate(360deg) } }

#bloqueo { background:var(--page); background-image:var(--grano); }
#bloqueo > div { background:#fff; border-radius:24px; padding:34px 36px; box-shadow:var(--sombra-3); border:1px solid var(--line); max-width:440px; }
#bloqueo h3 { font-size:19px; font-weight:650; letter-spacing:-.025em; }

:where(button,a,input,select,[tabindex]):focus-visible { outline:2px solid var(--azul); outline-offset:2px; border-radius:8px; }

@media (max-width:900px) {
  .layout, .layout.mini { grid-template-columns:minmax(0, 1fr); }
  aside { margin:0; height:auto; border-radius:0 0 22px 22px; position:static; }
  .plegar { display:none; }
  .layout.mini .marca .tit, .layout.mini #perfil-zona, .layout.mini .estado { display:revert; }
  .barra { padding:18px 18px 14px; } .cuerpo { padding:20px 16px 70px; }
  #pm-arranque { padding:20px 16px; } #pm-arranque .fila { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-delay:0s !important; transition-duration:.001ms !important; }
}

/* ------------------------------------------------------------------ bitácora de cambios (2-oct-2026) */
.bt-modulos { margin-bottom:10px; }
.bt-barra { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.bt-seg { display:inline-flex; gap:2px; padding:4px; border-radius:13px; background:#E9EDF2; }
.bt-seg button { font:inherit; font-size:12.5px; font-weight:550; border:0; background:transparent; color:var(--ink-2); padding:7px 13px;
  border-radius:10px; cursor:pointer; transition:background .25s var(--curva), color .2s, box-shadow .25s, transform .2s var(--resorte); }
.bt-seg button:hover { color:var(--ink); }
.bt-seg button:active { transform:scale(.96); }
.bt-seg button.on { background:#fff; color:var(--ink); box-shadow:0 1px 2px rgba(11,20,36,.08), 0 6px 14px -8px rgba(11,20,36,.3); }
#bt-persona { font:inherit; font-size:13px; color:var(--ink); padding:9px 34px 9px 13px; border-radius:12px; border:1px solid var(--line);
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23768195' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5 8 10.5 12 6.5'/%3E%3C/svg%3E") no-repeat right 12px center / 13px; -webkit-appearance:none; appearance:none; box-shadow:var(--sombra-1);
  max-width:280px; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
#bt-busca { flex:1 1 220px; min-width:200px; font:inherit; font-size:13px; color:var(--ink); padding:9px 14px 9px 36px; border-radius:12px;
  border:1px solid var(--line); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23768195' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 12px center / 16px; box-shadow:var(--sombra-1); transition:border-color .2s, box-shadow .2s; }
#bt-busca:focus, #bt-persona:focus { outline:0; border-color:var(--azul); box-shadow:0 0 0 4px rgba(12,99,178,.13); }
.bt-limpiar { font:inherit; font-size:12.5px; font-weight:550; color:var(--azul); background:none; border:0; cursor:pointer; padding:6px 2px; }
.bt-limpiar:hover { text-decoration:underline; text-underline-offset:3px; }
.bt-actualiza { margin-left:auto; padding:9px 14px; font-size:12.5px; }

.bt-lista { padding:6px 24px 18px; transition:opacity .25s ease; }
.bt-lista.cargando { opacity:.5; pointer-events:none; }
.bt-dia + .bt-dia { margin-top:8px; }
.bt-dia-t { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:18px 0 10px; margin-bottom:4px; border-bottom:1px solid var(--line); }
.bt-dia-t span { font-size:14px; font-weight:620; letter-spacing:-.015em; color:var(--ink); }
.bt-dia-t i { font-style:normal; font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:var(--muted); white-space:nowrap; }
.bt-evs { position:relative; }
.bt-evs::before { content:""; position:absolute; left:82.5px; top:18px; bottom:18px; width:1px; background:linear-gradient(180deg, #DCE2EA, rgba(220,226,234,.2)); }
.bt-ev { position:relative; display:grid; grid-template-columns:52px 34px minmax(0, 1fr) auto; gap:0 14px; align-items:start;
  padding:12px 10px; margin:0 -10px; border-radius:14px; transition:background .2s; }
.bt-ev:hover { background:#F7F9FC; }
.bt-hora { font-family:var(--mono); font-size:11.5px; color:var(--muted); padding-top:8px; text-align:right; font-variant-numeric:tabular-nums; cursor:default; }
.bt-av { position:relative; z-index:1; width:34px; height:34px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:650; color:hsl(var(--h) 42% 28%); background:hsl(var(--h) 55% 93%);
  box-shadow:inset 0 0 0 1px hsl(var(--h) 40% 84%), 0 0 0 4px #fff; transition:box-shadow .2s; }
.bt-ev:hover .bt-av { box-shadow:inset 0 0 0 1px hsl(var(--h) 40% 84%), 0 0 0 4px #F7F9FC; }
.bt-av.sin { color:var(--muted); background:#F1F3F7; box-shadow:inset 0 0 0 1px var(--line), 0 0 0 4px #fff; }
.bt-ev:hover .bt-av.sin { box-shadow:inset 0 0 0 1px var(--line), 0 0 0 4px #F7F9FC; }
.bt-cuerpo { min-width:0; padding-top:2px; }
.bt-frase { font-size:13.5px; line-height:1.5; color:var(--ink-2); text-wrap:pretty; }
.bt-quien { color:var(--ink); font-weight:620; }
.bt-tit { font:inherit; font-weight:600; color:var(--ink); background:none; border:0; padding:0; text-align:left; }
button.bt-tit { color:var(--azul); cursor:pointer; text-decoration:underline; text-decoration-color:rgba(12,99,178,.25); text-underline-offset:3px;
  transition:color .2s, text-decoration-color .2s; }
button.bt-tit:hover { color:var(--azul-osc); text-decoration-color:currentColor; }
.bt-tit.borrado { text-decoration:line-through; text-decoration-color:rgba(179,38,30,.55); color:var(--ink-2); }
.bt-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; margin-top:5px; font-size:12px; color:var(--muted); min-width:0; }
.bt-mod { font-family:var(--mono); font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-2); background:#F1F4F8;
  border-radius:6px; padding:2px 7px; box-shadow:inset 0 0 0 1px var(--line); white-space:nowrap; }
.bt-sub { min-width:0; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bt-rec { font-family:var(--mono); font-size:9.5px; letter-spacing:.05em; color:#8a5200; background:#FFFAF0; border:1px dashed rgba(178,106,0,.45);
  border-radius:6px; padding:1px 7px; cursor:help; white-space:nowrap; }
.bt-op { align-self:start; margin-top:6px; font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 8px; border-radius:7px; white-space:nowrap; }
.bt-op.alta { color:#0d6b3f; background:#E8F5EE; box-shadow:inset 0 0 0 1px rgba(15,122,69,.2); }
.bt-op.cambio { color:#0A4C8A; background:#EAF2FB; box-shadow:inset 0 0 0 1px rgba(12,99,178,.2); }
.bt-op.baja { color:#9c2019; background:#FCEEED; box-shadow:inset 0 0 0 1px rgba(179,38,30,.2); }
.bt-op.mini { display:inline-block; margin:0 8px 0 0; font-size:8.5px; padding:1px 6px; vertical-align:1px; }
.bt-difs { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
.bt-dif { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; font-size:12.5px; }
.bt-campo { font-family:var(--mono); font-size:10.5px; letter-spacing:.03em; color:var(--muted); min-width:140px; }
.bt-antes { color:#8b3b36; background:#FCF1F0; border-radius:7px; padding:2px 8px; text-decoration:line-through; text-decoration-color:rgba(179,38,30,.35); }
.bt-despues { color:#0d5c37; background:#EAF6EF; border-radius:7px; padding:2px 8px; font-weight:550; }
.bt-flecha { color:var(--muted); }
.bt-nada { color:var(--muted); font-style:italic; font-weight:400; text-decoration:none; }
.bt-ficha { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.bt-ficha span { display:inline-flex; gap:7px; align-items:baseline; font-size:12px; color:var(--ink); background:#F5F7FA; border-radius:8px; padding:4px 9px;
  box-shadow:inset 0 0 0 1px var(--line); }
.bt-ficha b { font-family:var(--mono); font-weight:500; font-size:9.5px; letter-spacing:.05em; color:var(--muted); text-transform:uppercase; }
.bt-ficha.baja span { background:#FDF5F4; box-shadow:inset 0 0 0 1px rgba(179,38,30,.15); }
.bt-auto { margin-top:9px; font-size:12px; color:var(--muted); }
.bt-auto summary { display:inline-flex; align-items:center; gap:7px; cursor:pointer; list-style:none; border-radius:8px; padding:2px 6px 2px 2px; transition:color .2s; }
.bt-auto summary::-webkit-details-marker { display:none; }
.bt-auto summary::before { content:"+"; display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:6px;
  background:#EEF1F5; color:var(--ink-2); font-family:var(--mono); font-size:12px; transition:transform .25s var(--curva); }
.bt-auto[open] summary::before { content:"−"; }
.bt-auto summary:hover { color:var(--ink); }
.bt-auto ul { list-style:none; margin:8px 0 0; padding:10px 12px; background:#F7F9FC; border-radius:11px; box-shadow:inset 0 0 0 1px var(--line);
  display:flex; flex-direction:column; gap:6px; color:var(--ink-2); animation:pm-aparece .25s ease-out; }
.bt-mas { display:flex; justify-content:center; padding-top:16px; }
.bt-sinnada { text-align:center; padding:44px 10px 34px; color:var(--ink-2); }
.bt-pie { font-size:11.5px; color:var(--muted); margin:-2px 4px 0; max-width:120ch; text-wrap:pretty; }
.kpi.bt-hueso .k, .kpi.bt-hueso .v, .kpi.bt-hueso .d, .bt-hueso-lista i { display:block; border-radius:7px;
  background:linear-gradient(90deg, #ECEFF4 0%, #F6F8FA 40%, #ECEFF4 80%); background-size:300% 100%; animation:pm-brillo 1.4s ease-in-out infinite; }
.kpi.bt-hueso .k { width:55%; } .kpi.bt-hueso .v { width:40%; height:26px; } .kpi.bt-hueso .d { width:75%; }
.bt-hueso-lista { padding:18px 24px; }
.bt-hueso-lista i { height:48px; margin:10px 0; border-radius:12px; }
@media (max-width:760px) {
  .bt-lista { padding:4px 14px 14px; }
  .bt-ev { grid-template-columns:34px minmax(0, 1fr); gap:0 12px; }
  .bt-hora { display:none; }
  .bt-op { grid-column:2; justify-self:start; margin-top:8px; }
  .bt-evs::before { left:16.5px; }
  .bt-actualiza { margin-left:0; }
  .bt-campo { flex-basis:100%; min-width:0; }
}

/* ------------------------------------------------------------------ íconos del menú (trazo fino, en lugar de los signos de texto) */
nav .scab[data-secc="presupuesto"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='6'/%3E%3Cpath d='M15.4 9.6a6 6 0 1 1-5.8 5.8'/%3E%3Cpath d='M9 6.5v5M7.3 8h2.6a1 1 0 0 1 0 2H8'/%3E%3C/svg%3E"); }
nav .scab[data-secc="control"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h9M17 7h3M4 17h3M11 17h9'/%3E%3Ccircle cx='15' cy='7' r='2'/%3E%3Ccircle cx='9' cy='17' r='2'/%3E%3C/svg%3E"); }
nav button[data-p="v3"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 1 0 9 9h-9z'/%3E%3Cpath d='M15 3.5a9 9 0 0 1 5.5 5.5H15z'/%3E%3C/svg%3E"); }
nav button[data-p="resumen"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1.5'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1.5'/%3E%3C/svg%3E"); }
nav button[data-p="comprometido"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V10M10 20V4M16 20v-7M21 20H3'/%3E%3C/svg%3E"); }
nav button[data-p="captura"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V4M7.5 8.5 12 4l4.5 4.5M4 15v4h16v-4'/%3E%3C/svg%3E"); }
nav button[data-p="legal"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v16M8 20h8M5 7h14'/%3E%3Cpath d='M5 7 2.5 13a2.5 2.5 0 0 0 5 0zM19 7l-2.5 6a2.5 2.5 0 0 0 5 0z'/%3E%3C/svg%3E"); }
nav button[data-p="licencias"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12V3.5H12l8.5 8.5-8.5 8.5z'/%3E%3Ccircle cx='8' cy='8' r='1.4'/%3E%3C/svg%3E"); }
nav button[data-p="pagos"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12v18l-3-1.8-3 1.8-3-1.8L6 21z'/%3E%3Cpath d='M9.5 8h5M9.5 12h5M9.5 16h3'/%3E%3C/svg%3E"); }
nav button[data-p="acciones"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6.5 1.6 1.6L8.5 5M4 12.5l1.6 1.6 2.9-3.1M4 18.5l1.6 1.6 2.9-3.1M11.5 6.5h8.5M11.5 12.5h8.5M11.5 18.5h8.5'/%3E%3C/svg%3E"); }
nav button[data-p="notas"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 4H5v15h15v-8'/%3E%3Cpath d='M17.8 3.2a2 2 0 0 1 2.9 2.9L12.5 14.3l-3.8.9.9-3.8z'/%3E%3C/svg%3E"); }
nav button[data-p="usuarios"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8.5' r='3.5'/%3E%3Cpath d='M2.8 20a6.2 6.2 0 0 1 12.4 0'/%3E%3Cpath d='M15.5 5a3.5 3.5 0 0 1 0 7M17.5 14.4A6.2 6.2 0 0 1 21.2 20'/%3E%3C/svg%3E"); }
nav button[data-p="bitacora"] { --ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.6 12a8.4 8.4 0 1 0 2.5-6'/%3E%3Cpath d='M3.6 4.4V9H8.2'/%3E%3Cpath d='M12 7.6V12l3 1.9'/%3E%3C/svg%3E"); }
.bt-subs { list-style:none; margin:9px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.bt-subs li { font-size:12px; color:var(--ink-2); background:#F5F7FA; border-radius:8px; padding:3px 9px; box-shadow:inset 0 0 0 1px var(--line); }
.bt-dif-hora { font-family:var(--mono); font-size:10px; color:var(--muted); margin-left:4px; }
.bt-op b { font-weight:500; opacity:.75; margin-left:2px; }
