/* Marco común de TeCuenta (viene de TeCuenta-Construtel y TeCuenta-7 Cocos): 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:#0B2A5B; --nav-ink:#C9D5E8; --nav-dim:#8296B6; --nav-on:#1565C0; --nav-line:rgba(255,255,255,.1); --nav-hi:#FFFFFF; --nav-mark:#8CC4FF; --logo-bg:#FFFFFF;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --nav-bg:#0A1420; --nav-ink:#B7C4D4; --nav-dim:#6E8197; --nav-on:#1A3A60; --nav-line:rgba(255,255,255,.08); }
}
:root[data-theme="dark"]{ --nav-bg:#0A1420; --nav-ink:#B7C4D4; --nav-dim:#6E8197; --nav-on:#1A3A60; --nav-line:rgba(255,255,255,.08); }

/* 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:var(--nav-bg);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:12px;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:9px;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);box-shadow:inset 3px 0 0 var(--nav-mark)}
.nav-item:focus-visible{outline-color:var(--nav-mark)}
.nav-item .nav-txt-2{white-space:normal;min-width:0}
.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:9px;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-salir{margin-top:6px}

/* 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 conserva su alto; el espacio que sobra mientras carga la página es del contenido */
  .shell{grid-template-rows:auto minmax(0,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 .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-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{display:none}
  .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}

/* quién está conectado */
.nav-user{display:grid;gap:2px;font-size:12.5px;color:var(--nav-ink);padding-bottom:8px;border-bottom:1px solid var(--nav-line)}
.nav-user-n{color:var(--nav-hi);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.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}
.nav-user .link:hover{color:var(--nav-hi)}
@media (min-width:900px){.nav-min .nav:not(.abierta) .nav-user{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,.55);display:grid;place-items:center;padding:16px}
.ses-modal{background:var(--surface,#fff);color:var(--ink,#14263A);border-radius:14px;width:100%;max-width:440px;max-height:92vh;overflow:auto;padding:20px 22px;display:grid;gap:12px;box-shadow: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:600 18px/1.25 var(--cond,system-ui)}
.ses-modal h4{margin:6px 0 0;font:600 15px/1.25 var(--cond,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:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;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 10px;border:1px solid var(--line-strong,#B9C6D4);border-radius:8px;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:8px 13px;border-radius:8px;border:1px solid var(--line-strong,#B9C6D4);background:var(--surface,#fff);color:var(--ink,#14263A);cursor:pointer}
.ses-btn.primario{background:#1565C0;border-color:#1565C0;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:10px}
.ses-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ses-tbl th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;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:380px;background:var(--surface,#fff);color:var(--ink,#14263A);border-radius:16px;padding:26px 24px;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:600 19px/1.25 var(--cond,system-ui);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}}

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