/* Marco común de TeCuenta-Construtel: menú lateral azul por grupos, el mismo de Recibos de caja Delco y del conciliador.
   Lo usan todas las páginas; cada una trae aparte los estilos de su contenido. */
:root{
  --nav-bg:#0B2350; --nav-ink:#C6D2E6; --nav-dim:#8296B6; --nav-on:rgba(255,255,255,.12); --nav-line:rgba(255,255,255,.08); --nav-hi:#FFFFFF; --nav-mark:#8CC4FF; --logo-bg:#FFFFFF;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --nav-bg:#080E18; --nav-ink:#B7C4D4; --nav-dim:#6E8197; --nav-on:rgba(255,255,255,.09); --nav-line:rgba(255,255,255,.06); }
}
:root[data-theme="dark"]{ --nav-bg:#080E18; --nav-ink:#B7C4D4; --nav-dim:#6E8197; --nav-on:rgba(255,255,255,.09); --nav-line:rgba(255,255,255,.06); }

/* marco: menú lateral + contenido */
.shell{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh}
@media (min-width:900px){.shell{grid-template-columns:236px minmax(0,1fr)}}
.maincol{min-width:0}
.nav{background:linear-gradient(180deg,var(--nav-bg) 0%,color-mix(in srgb,var(--nav-bg) 82%,#000) 100%);color:var(--nav-ink);display:flex;flex-direction:column;gap:2px;padding:16px 12px 14px;position:sticky;top:0;height:100vh;overflow:auto;border-right:1px solid var(--nav-line)}
.nav-head{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.nav-logo{flex:1;min-width:0;background:var(--logo-bg);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.12);padding:8px 10px;display:grid;place-items:center;margin:0}
.nav-logo img{display:block;height:46px;width:auto}
.menu-btn{display:none;width:40px;height:40px;padding:0;flex:none;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--nav-ink);cursor:pointer;transition:background .15s,color .15s}
.menu-btn:hover{background:rgba(255,255,255,.1);color:var(--nav-hi)}
.menu-btn:focus-visible{outline-color:var(--nav-mark)}
.menu-btn svg{width:22px;height:22px}
.nav-item{display:flex;text-decoration:none;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:9px 10px;color:var(--nav-ink);cursor:pointer;font:500 13.5px/1.25 var(--sans);transition:background .15s,color .15s}
.nav-item svg{width:18px;height:18px;flex:none;opacity:.9}
.nav-item span{white-space:nowrap}
.nav-item:hover{background:rgba(255,255,255,.07);color:var(--nav-hi)}
.nav-item[aria-current="page"]{background:var(--nav-on);color:var(--nav-hi);font-weight:600;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.nav-item[aria-current="page"] svg{color:var(--nav-mark);opacity:1}
.nav-item:focus-visible{outline-color:var(--nav-mark)}
.nav-item .nav-txt-2{white-space:normal;min-width:0}
/* Cifra al lado de una opción (facturas del buzón por causar) */
.nav-cifra{margin-left:auto;flex:none;min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent,#2563EB);color:#fff;font:600 11px/18px var(--sans);text-align:center}
.nav-g .nav-cifra+.chev{margin-left:6px;flex:none}
.nav-foot{margin-top:auto;padding:14px 6px 2px;border-top:1px solid var(--nav-line);display:grid;gap:10px}
.nav .contact{display:flex;flex-direction:column;align-items:flex-start;gap:7px;font-size:12.5px;user-select:text;margin:0}
.nav .contact .ci{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:var(--nav-ink);text-decoration:none;border-radius:4px}
.nav .contact a.ci:hover span{color:var(--nav-hi);text-decoration:underline}
.nav .contact a.ci:focus-visible{outline-color:var(--nav-mark)}
.nav .contact svg{width:15px;height:15px;flex:none}
.nav .contact .sep{display:none}
.nav-lema{font-size:11.5px;color:var(--nav-dim)}

/* grupos con sus opciones (el mismo menú en todas las páginas) */
.nav-menu{display:flex;flex-direction:column;gap:2px}
.nav-g{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:9px 10px;color:var(--nav-ink);cursor:pointer;font:600 13.5px/1.25 var(--sans);transition:background .15s,color .15s}
.nav-g:hover{background:rgba(255,255,255,.07);color:var(--nav-hi)}
.nav-g:focus-visible{outline-color:var(--nav-mark)}
.nav-g svg{width:18px;height:18px;flex:none;opacity:.9}
.nav-g span{white-space:nowrap}
.nav-g .chev{margin-left:auto;width:15px;height:15px;opacity:.7;transition:transform .15s}
.nav-grupo.abierto>.nav-g .chev{transform:rotate(180deg)}
.nav-grupo.actual>.nav-g{color:var(--nav-hi)}
.nav-sub{display:none;margin:0 0 6px 18px;padding-left:8px;border-left:1px solid var(--nav-line)}
.nav-grupo.abierto>.nav-sub{display:grid;gap:1px}
.nav-sub .nav-item{padding:7px 9px;font-size:13px}
.nav-sub .nav-item svg{width:16px;height:16px}
.nav-inicio{font-weight:600;margin-bottom:2px}
/* secciones del menú (Obra, Dinero, Informes) */
.nav-sec{font:600 10.5px/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--nav-dim);padding:14px 10px 6px}
.nav-directo{font-weight:600}
/* opciones propias de la página debajo de su opción (el conciliador) */
.nav-propias{display:grid;gap:1px;margin:2px 0 4px 18px;padding-left:8px;border-left:1px solid var(--nav-line)}
.nav-propias .nav-item{padding:6px 9px;font-size:12.5px}
.nav-propias .nav-item svg{width:15px;height:15px}
/* «Crear»: el botón de arriba y lo que se puede crear */
.nav-crear{margin:0 0 8px}
.nav-crear-b{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:10px;padding:10px;background:var(--accent,#2563EB);color:#fff;cursor:pointer;font:600 13.5px/1.2 var(--sans);transition:filter .15s}
.nav-crear-b:hover{filter:brightness(1.08)}
.nav-crear-b:focus-visible{outline:2px solid var(--nav-mark);outline-offset:2px}
.nav-crear-b svg{width:18px;height:18px;flex:none}
.nav-crear-b .chev{width:14px;height:14px;opacity:.85;transition:transform .15s}
.nav-crear.abierto .nav-crear-b .chev{transform:rotate(180deg)}
.nav-crear-ops{display:grid;gap:1px;margin-top:6px;padding:6px;border-radius:12px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--nav-line)}
.nav-crear-ops[hidden]{display:none}
.nav-crear-ops .nav-item{padding:8px 9px;font-size:13px}
.nav-crear-ops .nav-item svg{width:16px;height:16px}
/* abajo: instalar, ayuda y Ajustes */
.nav-abajo{display:grid;gap:2px}
.nav-ayuda .nav-sub{padding:6px 0 4px 10px}
/* páginas con varias vistas en una opción del menú: pestañas arriba del contenido */
.vista-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.vista-tabs[hidden]{display:none}
.vista-tabs a{padding:10px 12px;font:500 14px/1.2 var(--sans);color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.vista-tabs a:hover{color:var(--ink)}
.vista-tabs a[aria-current="page"]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}

/* logo: ContArte → TeCuenta */
.marcas{display:flex;align-items:center;justify-content:center;gap:6px}
.marcas img{display:block;width:auto}
.m-flecha{width:16px;height:16px;flex:none;color:#1BA9D6}
.nav-logo.marcas{padding:8px;flex-wrap:wrap;row-gap:4px}
.nav-logo.marcas .m-contarte{height:40px;flex-basis:100%;object-fit:contain}
.nav-logo.marcas .m-tecuenta{height:20px}
.nav-logo.marcas .m-flecha{width:13px;height:13px}

/* celular y tableta: el menú va arriba y se abre con las tres rayas */
@media (max-width:899px){
  /* la barra de arriba no crece cuando la página es corta: el espacio que sobra va al contenido */
  .shell{grid-template-rows:auto 1fr}
  .nav{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;border-right:0}
  .nav .menu-btn{display:grid}
  .nav-head{flex:1;margin:0}
  .nav-logo{flex:none;padding:4px 8px;border-radius:9px}
  .nav-logo img{height:32px}
  .nav-logo.marcas{flex-wrap:nowrap;padding:4px 8px}
  .nav-logo.marcas .m-contarte{height:28px;flex-basis:auto}
  .nav-logo.marcas .m-tecuenta{height:18px}
  .nav-lema{display:none}
  .nav-menu{display:none;width:100%;padding-top:6px}
  .nav.movil-abierto .nav-menu{display:flex}
  .nav-menu .nav-item,.nav-menu .nav-g{width:100%;font-size:14px;padding:10px 10px}
  .nav-foot{width:100%;margin:2px 0 0;padding:6px 2px 0}
  .nav:not(.movil-abierto) .nav-foot{display:none}
  .nav-menu .nav-sec{display:block;width:100%}
  .nav .contact{flex-direction:row;flex-wrap:wrap;gap:4px 14px}
  .topbar{position:static}
}

/* computador: el menú se puede recoger en una franja de íconos que se despliega al pasar el cursor */
@media (min-width:900px){
  .menu-btn{display:grid}
  .shell{transition:grid-template-columns .2s ease}
  .shell.nav-min{grid-template-columns:72px minmax(0,1fr)}
  .nav-min .nav{width:72px;z-index:40;overflow-x:hidden;transition:width .18s ease,box-shadow .18s ease}
  .nav-min .nav.abierta{width:236px;box-shadow:12px 0 32px rgba(8,18,30,.28)}
  .nav-min .nav:not(.abierta){padding-inline:10px}
  .nav-min .nav:not(.abierta) .nav-cifra{display:none}
  .nav-min .nav:not(.abierta) .nav-head{flex-direction:column;gap:10px}
  .nav-min .nav:not(.abierta) .nav-logo{flex:none;width:100%;padding:5px 4px;border-radius:10px}
  .nav-min .nav:not(.abierta) .nav-logo img{height:26px}
  .nav-min .nav:not(.abierta) .nav-logo .m-flecha,.nav-min .nav:not(.abierta) .nav-logo .m-tecuenta{display:none}
  .nav-min .nav:not(.abierta) .nav-item,.nav-min .nav:not(.abierta) .nav-g{justify-content:center;padding:10px 0}
  .nav-min .nav:not(.abierta) .nav-item span,.nav-min .nav:not(.abierta) .nav-g span,.nav-min .nav:not(.abierta) .nav-g .chev,.nav-min .nav:not(.abierta) .contact .ci span,.nav-min .nav:not(.abierta) .nav-lema{display:none}
  .nav-min .nav:not(.abierta) .nav-sub,.nav-min .nav:not(.abierta) .nav-propias,.nav-min .nav:not(.abierta) .nav-crear-ops{display:none}
  .nav-min .nav:not(.abierta) .nav-sec{height:1px;padding:0;margin:10px 6px;background:var(--nav-line);color:transparent;overflow:hidden}
  .nav-min .nav:not(.abierta) .nav-crear-b{padding:10px 0}
  .nav-min .nav:not(.abierta) .nav-crear-b span,.nav-min .nav:not(.abierta) .nav-crear-b .chev{display:none}
  /* recogido: el módulo en el que se está queda resaltado */
  .nav-min .nav:not(.abierta) .nav-grupo.actual>.nav-g{background:var(--nav-on);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
  .nav-min .nav:not(.abierta) .nav-grupo.actual>.nav-g svg{color:var(--nav-mark);opacity:1}
  .nav-min .nav:not(.abierta) .nav-foot{padding-inline:0}
  .nav-min .nav:not(.abierta) .contact{align-items:center;gap:12px}
  .nav-min .nav:not(.abierta) .contact svg{width:18px;height:18px}
}
.topbar .sub{font-size:12.5px;color:var(--ink-2);margin-top:2px}
/* celular: el logo de la empresa no cabe junto a los botones del encabezado (sigue en los PDF y en los Excel) */
@media (max-width:640px){.topbar .client{display:none}}

/* pie de página: el lema en una línea y la explicación de la página plegada (se abre si hace falta) */
div.foot{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 14px;font-size:12px;color:var(--ink-2);text-align:center;padding:8px 0 4px}
.foot-info summary{cursor:pointer;list-style:none;color:var(--ink-2);text-decoration:underline dotted;text-underline-offset:3px;border-radius:4px}
.foot-info summary::-webkit-details-marker{display:none}
.foot-info summary:hover{color:var(--ink)}
.foot-info[open]{flex-basis:100%}
.foot-info[open] summary{display:none}
.foot-info p{max-width:72ch;margin:4px auto 0;line-height:1.5}

/* configuración en pestañas (menu.js): una tarjeta a la vez */
.cfg-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.cfg-tabs button{appearance:none;border:0;background:none;padding:10px 12px;font:500 14px/1.2 var(--sans);color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.cfg-tabs button:hover{color:var(--ink)}
.cfg-tabs button[aria-selected="true"]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.cfg-oculta{display:none!important}

/* quién está conectado */
.nav-user{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--nav-ink);padding:9px 8px 9px 10px;border-radius:12px;background:rgba(255,255,255,.06)}
.nav-user-av{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent,#2563EB);color:#fff;font:650 12.5px/1 var(--sans)}
.nav-user-q{display:grid;gap:1px;min-width:0;flex:1}
.nav-user-n{color:var(--nav-hi);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-salir{flex:none;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--nav-ink);cursor:pointer;transition:background .15s,color .15s}
.nav-salir:hover{background:rgba(255,255,255,.1);color:var(--nav-hi)}
.nav-salir:focus-visible{outline-color:var(--nav-mark)}
.nav-salir svg{width:18px;height:18px}
.nav-user-r{color:var(--nav-dim);font-size:11.5px}
.nav-user .link{justify-self:start;background:none;border:0;padding:0;color:var(--nav-ink);font-size:12px;text-decoration:underline;cursor:pointer;white-space:nowrap;text-align:left}
.nav-user .link:hover{color:var(--nav-hi)}
/* recogido: solo las iniciales */
@media (min-width:900px){.nav-min .nav:not(.abierta) .nav-user{justify-content:center;padding:6px 0;background:none}.nav-min .nav:not(.abierta) .nav-user-q,.nav-min .nav:not(.abierta) .nav-salir{display:none}}

/* ventanas de la sesión: cambiar la clave y usuarios (iguales en todas las páginas) */
.ses-overlay{position:fixed;inset:0;z-index:90;background:rgba(6,14,28,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.ses-modal{background:var(--surface,#fff);color:var(--ink,#14263A);border-radius:20px;width:100%;max-width:440px;max-height:92vh;overflow:auto;padding:24px 26px;display:grid;gap:12px;box-shadow:var(--shadow-lg,0 24px 64px rgba(0,0,0,.35));font:14px/1.45 var(--sans,system-ui)}
.ses-modal.ancho{max-width:860px}
.ses-modal form{display:grid;gap:12px}
.ses-modal h3{margin:0;font:650 18px/1.25 var(--sans,system-ui);letter-spacing:-.012em}
.ses-modal h4{margin:6px 0 0;font:650 14.5px/1.25 var(--sans,system-ui)}
.ses-modal p{margin:0;font-size:13px;color:var(--ink-2,#526377)}
.ses-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ses-f{display:grid;gap:5px;font-size:12.5px;font-weight:500;color:var(--ink-2,#526377)}
.ses-f small{font-weight:400;letter-spacing:0;text-transform:none}
.ses-modal input,.ses-modal select{font:14px/1.3 var(--sans,system-ui);padding:8px 11px;border:1px solid var(--line-strong,#B9C6D4);border-radius:var(--radius-sm,10px);background:var(--surface,#fff);color:var(--ink,#14263A);text-transform:none;letter-spacing:normal;min-width:0}
.ses-grid{display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ses-clave{display:flex;gap:6px}.ses-clave input{flex:1;font-family:var(--mono,monospace)}
.ses-acts{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.ses-btn{font:500 13px/1.2 var(--sans,system-ui);padding:9px 15px;border-radius:var(--radius-sm,10px);border:1px solid var(--line-strong,#B9C6D4);background:var(--surface,#fff);color:var(--ink,#14263A);cursor:pointer}
.ses-btn.primario{background:var(--accent,#2563EB);border-color:var(--accent,#2563EB);color:#fff;font-weight:600}
.ses-btn:disabled{opacity:.6;cursor:wait}
.ses-link{background:none;border:0;padding:0;color:var(--accent,#2E75B6);cursor:pointer;font-size:12.5px;text-decoration:underline}
.ses-err{background:var(--bad-soft,#FBE4E1);color:var(--bad,#B42318);border-radius:8px;padding:9px 12px;font-size:13px}
.ses-tbl-wrap{overflow:auto;border:1px solid var(--line,#D8E0E9);border-radius:12px}
.ses-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ses-tbl th{text-align:left;font-size:12px;font-weight:600;color:var(--ink-2,#526377);padding:8px;border-bottom:1px solid var(--line,#D8E0E9);background:var(--surface-2,#EEF3F8)}
.ses-tbl td{padding:8px;border-bottom:1px solid var(--line,#D8E0E9);vertical-align:middle}
.ses-tbl tr.inactivo td{color:var(--ink-2,#526377)}
.ses-acc{white-space:nowrap}
.ses-roles{font-size:12.5px}

/* pantalla de ingreso */
.entrar{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 600px at 15% 10%,rgba(46,117,182,.55),transparent 60%),radial-gradient(900px 500px at 90% 90%,rgba(140,196,255,.25),transparent 60%),linear-gradient(160deg,#0B2A5B 0%,#0A1F44 55%,#071631 100%)}
.entrar form{width:100%;max-width:400px;background:var(--surface,#fff);color:var(--ink,#14263A);border-radius:20px;padding:30px 30px 28px;display:grid;gap:14px;box-shadow:0 24px 64px rgba(0,0,0,.45)}
.entrar .marcas{gap:10px}
.entrar .marcas .m-contarte{height:52px}
.entrar .marcas .m-tecuenta{height:30px}
.entrar .marcas .m-flecha{width:22px;height:22px}
.entrar h1{font:650 20px/1.25 var(--sans,system-ui);letter-spacing:-.018em;text-align:center;margin:4px 0 0}
.entrar p{margin:0;text-align:center;font-size:13px;color:var(--ink-2,#526377)}
.entrar .lema{position:fixed;bottom:18px;left:0;right:0;padding:0 16px;text-align:center;color:rgba(255,255,255,.55);font:500 12px/1.2 var(--sans,system-ui)}
@media (max-width:360px){.entrar form{padding:22px 16px}.entrar .marcas{gap:6px}.entrar .marcas .m-contarte{height:40px}.entrar .marcas .m-tecuenta{height:22px}.entrar .marcas .m-flecha{width:16px;height:16px}}

/* cifras de las tarjetas (menu.js las ajusta): en una sola línea y completas; si no caben, la letra se achica */
.kpi>b,.kpi>.v,.met>b,.ind>.v,.k-t>.n,.ed-card>b,.bc-nums dd{white-space:nowrap;overflow:hidden;text-overflow:clip;min-width:0}
.cifra-larga{white-space:normal!important;overflow-wrap:anywhere}

@media print{.nav,.topbar{display:none!important}.shell{display:block}}
