:root {
  --navy: #17232d;
  --blue: #0099b8;
  --cyan: #08a7c6;
  --bg: #f4f7f9;
  --line: #dfe6ea;
  --text: #17232d;
  --muted: #687681;
  --ok: #0b7a53;
}

/* NETSOLSA UI 2026 · v1.28.1 */
:root{--navy:#10243f;--blue:#1976d2;--cyan:#21a7e0;--bg:#f5f7fb;--line:#e2e8f0;--text:#172033;--muted:#718096;--ok:#15966a;--warn:#d99a1b;--danger:#df4b58;--surface:#fff;--shadow:0 8px 28px rgba(29,48,82,.07)}
body{background:var(--bg);font-size:14px;line-height:1.45}
aside.app-sidebar{width:252px;padding:20px 15px;background:#fff;color:var(--text);border-right:1px solid var(--line);box-shadow:4px 0 24px rgba(31,55,90,.035)}
.logo-row{padding:4px 10px 24px;border-bottom:1px solid var(--line);margin-bottom:18px}.logo-row img{width:190px}.logo-row span{color:#8190a5;font-weight:650}
.nav-groups{gap:15px}.nav-groups h3{color:#9aa7b8;font-size:10px;font-weight:850}.nav-groups a{position:relative;color:#52647a;border-radius:9px;font-size:13px;font-weight:700;transition:.16s ease}.nav-groups a .ui-icon{color:#768ba5}.nav-groups a:hover{background:#f1f6fc;color:#185ea7}.nav-groups a.active{background:#eaf3ff;color:#1769bd;box-shadow:none}.nav-groups a.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:4px;background:#1976d2}.nav-groups a:hover .ui-icon,.nav-groups a.active .ui-icon{color:#1976d2}
.app-sidebar .user{background:#f7f9fc;border:1px solid var(--line);color:#54667c}.app-sidebar .user a{color:#47627e}.help-link{color:#1769bd!important}.nav-badge{background:var(--danger);box-shadow:0 2px 7px #df4b5840}
.content{margin-left:252px;padding:0 32px 42px;max-width:1680px}.content>header{position:sticky;top:0;z-index:30;margin:0 -32px 24px;padding:20px 32px 18px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);box-shadow:0 4px 18px rgba(27,47,77,.035)}.content>header h1{font-size:25px;letter-spacing:-.025em;margin-bottom:4px}.content>header .eyebrow{margin-bottom:5px;font-size:10px}.period{padding:0}.period-control{background:#f8fafc;border-color:#dbe3ed;box-shadow:none}.period-title{color:#718096}
.panel,.kpis article,.attention-strip{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.panel{padding:22px}.panel-title h2,.panel h2{font-size:17px;letter-spacing:-.01em}.panel-title p{color:var(--muted)}
.attention-strip{padding:0;overflow:hidden;display:grid;grid-template-columns:repeat(3,1fr) auto;gap:0}.attention-strip>div{padding:18px 20px;border-right:1px solid var(--line);background:#fff}.attention-strip>div:first-child{border-top:3px solid var(--danger)}.attention-strip>div:nth-child(2){border-top:3px solid var(--warn)}.attention-strip>div:nth-child(3){border-top:3px solid var(--ok)}.attention-strip strong{font-size:21px}.attention-strip>a{display:grid;place-items:center;padding:18px;color:#1769bd;background:#f5f9ff;font-weight:800;text-decoration:none}
.kpis{gap:16px}.kpis article{position:relative;padding:19px 20px;overflow:hidden}.kpis article:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#1976d2,#2bb6d9)}.kpis article>span,.kpi-head>span{color:#64748b;font-weight:750}.kpis strong{font-size:27px;letter-spacing:-.04em}.delta{border-radius:999px;padding:4px 8px}.delta.up{background:#e6f6ef;color:#11835d}.delta.down{background:#fff0f1;color:#d43e4d}
.dashboard-insights{grid-template-columns:minmax(0,1.8fr) minmax(290px,.75fr)}.trend-chart{background:repeating-linear-gradient(to bottom,#edf1f6 0,#edf1f6 1px,transparent 1px,transparent 50px)}.trend-column i{background:linear-gradient(180deg,#62b2f4,#1976d2)}.cxp-card{border-top:3px solid #1976d2}.cxp-split>div{background:#fff0f1}.cxp-split>div:last-child{background:#eaf8f2}
.rankings-grid{gap:16px}.ranking{padding:12px 0}.ranking>b{background:#edf4fc;color:#1976d2}.ranking strong{color:#263a55}
table{font-size:13px}thead{position:sticky;top:92px;z-index:5}th{padding:12px 13px;background:#f3f6fa;color:#607086;font-size:10px;letter-spacing:.055em;text-transform:uppercase}td{padding:13px;border-color:#edf1f5}tbody tr{transition:.15s}tbody tr:hover{background:#f7faff}.table-wrap{border:1px solid var(--line);border-radius:11px;overflow:auto}table .num{font-variant-numeric:tabular-nums}
.filters{position:sticky;top:91px;z-index:12;padding:15px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 20px rgba(31,49,78,.06)}.filters input,.filters select,input,select,textarea{border-color:#d9e2ec;background:#fff}.filters label{color:#627287;font-size:11px}.filter-actions{align-items:end}
button,.button{background:#1976d2;border-radius:8px;box-shadow:0 3px 8px rgba(25,118,210,.18)}button:hover,.button:hover{background:#135fa9}.secondary{background:#fff;color:#1769bd;border:1px solid #bfd5ec;box-shadow:none}.detail-link,.ride-link,.pdf-download,.xml-download{display:inline-flex;padding:6px 9px;border-radius:7px;background:#edf5fe;color:#1769bd;text-decoration:none!important}
.doc-type,.cxp-status,.project-status,.sync-status,.bank-match{padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850}.cxp-status.overdue{background:#ffe9eb;color:#c93444}.cxp-status.upcoming{background:#e8f7f0;color:#11815c}.project-status{background:#e9f3ff;color:#1769bd}.project-profit.negative{color:var(--danger)}
.view-proyectos .panel>.table-wrap td:nth-last-child(2){min-width:120px}.view-proyectos .panel>.table-wrap td:nth-last-child(2):not(:empty){font-weight:800}.view-proyectos .project-kpis article:nth-child(3):after{background:var(--ok)}
.view-reportes .report-selector{border-top:3px solid #1976d2}.view-reportes .kpis article:first-child:after{background:var(--danger)}.view-reportes .kpis article:nth-child(2):after{background:var(--ok)}
.view-comprobantes .panel,.view-reportes .panel,.view-cartera .panel{margin-bottom:18px}.empty{padding:38px!important;color:#8190a5;text-align:center;background:#fbfcfe}
.company-admin{border-style:dashed;box-shadow:none}.alert{border-radius:11px}.alert.success{background:#eaf8f2;color:#0b7653}.alert.error{background:#fff0f1;color:#bd3543}

/* 4.1 Clientes: listado y ficha inspirados en el flujo maestro-detalle de Odoo. */
.customer-table th:nth-child(7),.customer-table td:nth-child(7),.customer-table th:nth-child(8),.customer-table td:nth-child(8),.customer-table th:nth-child(9),.customer-table td:nth-child(9){display:none}
.customer-table tbody tr{cursor:pointer;transition:background .15s ease}.customer-table tbody tr:hover{background:#eef6ff}.customer-table tbody tr:has(.empty){cursor:default}
.customer-detail-commandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border,#dfe7f1)}
.customer-detail-primary-actions,.customer-detail-secondary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.customer-detail-secondary-actions form{margin:0}
.customer-detail-breadcrumb{display:flex;align-items:center;gap:8px;padding:14px 2px;color:#6c7c92}.customer-detail-breadcrumb a{font-weight:700;color:#1672ce;text-decoration:none}
.customer-detail-card{min-height:390px;padding:28px}.customer-detail-heading{display:flex;align-items:flex-start;gap:18px;margin-bottom:28px}.customer-detail-heading h2{margin:0 0 5px;font-size:30px}.customer-detail-heading p{margin:0 0 10px;color:#6c7c92}
.customer-avatar{display:grid;place-items:center;width:78px;height:78px;flex:0 0 78px;border-radius:12px;background:linear-gradient(145deg,#e9f2fb,#c7d9ec);color:#174c82;font-size:34px;font-weight:800;border:1px solid #cbd9e8}
.customer-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;max-width:1200px}.customer-detail-grid dl{display:grid;grid-template-columns:170px minmax(0,1fr);gap:15px 18px;margin:0}.customer-detail-grid dt{font-weight:700;color:#43546a}.customer-detail-grid dd{margin:0;overflow-wrap:anywhere}.customer-detail-grid dd small{display:block;color:#708199;margin-top:3px}.customer-detail-grid a{color:#1672ce}
.customer-detail-notes{margin-top:28px;padding-top:20px;border-top:1px solid var(--border,#dfe7f1)}.customer-detail-notes p{margin:8px 0 0;white-space:normal}
@media(max-width:850px){.customer-detail-commandbar{align-items:flex-start;flex-direction:column}.customer-detail-grid{grid-template-columns:1fr;gap:24px}.customer-detail-grid dl{grid-template-columns:130px minmax(0,1fr)}.customer-detail-card{padding:20px}.customer-detail-heading h2{font-size:24px}}
@media(max-width:1100px){.content{padding-left:22px;padding-right:22px}.content>header{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}.attention-strip{grid-template-columns:repeat(3,1fr)}.attention-strip>a{grid-column:1/-1}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){aside.app-sidebar{background:#fff}.content{margin-left:0;padding:82px 14px 28px}.content>header{top:65px;margin:0 -14px 18px;padding:14px;align-items:flex-start}.content>header h1{font-size:20px}.attention-strip{grid-template-columns:1fr}.attention-strip>div{border-right:0;border-bottom:1px solid var(--line)}.kpis{grid-template-columns:1fr}.filters{top:128px}.panel{padding:16px}thead{top:128px}th:nth-child(n+5),td:nth-child(n+5){display:none}.view-resumen .attention-table th:nth-child(5),.view-resumen .attention-table td:nth-child(5){display:table-cell}}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    Segoe UI,
    sans-serif;
}
h1,
h2,
p {
  margin-top: 0;
}
button,
.secondary {
  border: 0;
  border-radius: 9px;
  padding: 11px 16px;
  background: var(--blue);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}
.detail-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.ride-link,.pdf-download,.xml-download,.detail-link{display:block;margin:3px 0;color:var(--blue);font-size:12px;font-weight:750;text-decoration:none}.ride-link:hover,.pdf-download:hover,.xml-download:hover,.detail-link:hover{text-decoration:underline}
input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 11px;
  background: #fff;
  color: var(--text);
}
label {
  display: grid;
  gap: 7px;
  font-size: 13px;
  font-weight: 650;
}
.apply-project-check{display:flex;align-items:center;gap:9px;align-self:end;padding:10px 0}.apply-project-check input{width:auto}.item-project-form{margin-top:16px}.line-project{min-width:180px;padding:8px}.item-project-actions{display:flex;justify-content:flex-end;margin-top:12px}
.muted {
  color: var(--muted);
}
.eyebrow {
  color: var(--blue);
  font-weight: 800;
  letter-spacing: 0.12em;
  font-size: 12px;
}
.brand-mark {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: linear-gradient(140deg, var(--blue), var(--cyan));
  color: #fff;
  font-size: 28px;
  font-weight: 900;
}
.brand-mark.small {
  width: 39px;
  height: 39px;
  border-radius: 10px;
  font-size: 20px;
}
.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 80% 15%, #d8effa, transparent 30%),
    linear-gradient(135deg, #eef3f9, #fff);
}
.login-card {
  width: min(420px, calc(100% - 32px));
  background: #fff;
  padding: 40px;
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 20px 60px #20385a18;
}
.login-card > .login-logo {
  display: block;
  width: 220px !important;
  max-width: 100% !important;
  height: auto;
  object-fit: contain;
  margin: 0 auto 28px;
}
.login-card form {
  display: grid;
  gap: 16px;
  margin: 28px 0;
}
.login-card button {
  width: 100%;
  padding: 13px;
}
.login-card small {
  display: block;
  text-align: center;
  color: var(--muted);
}
.login-card h1{margin:8px 0 10px;font-size:30px;line-height:1.15}.login-card>.muted{font-size:15px;line-height:1.6}.login-card input{margin-top:7px}.login-meta{display:flex;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}
aside {
  position: fixed;
  inset: 0 auto 0 0;
  width: 238px;
  background: var(--navy);
  color: #fff;
  padding: 25px 18px;
  display: flex;
  flex-direction: column;
}
.app-sidebar{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}.nav-groups{gap:17px}.nav-groups section{display:grid;gap:4px}.nav-groups h3{margin:0 12px 5px;color:#7791a7;font-size:10px;letter-spacing:.15em;text-transform:uppercase}.nav-groups a{display:flex;align-items:center;gap:11px;padding:9px 11px}.nav-groups a>span{flex:1}.ui-icon{width:18px;height:18px;flex:0 0 18px}.nav-groups a .ui-icon{color:#7ea1b9}.nav-groups a:hover .ui-icon,.nav-groups a.active .ui-icon{color:#20bdd6}.nav-groups a.active{box-shadow:inset 3px 0 #18b6cf}.nav-badge{min-width:21px;padding:3px 6px;border-radius:999px;background:#e94f64;color:#fff;font-size:10px;text-align:center}.app-sidebar .user{background:#ffffff08;border-radius:12px;padding:12px;margin-top:20px}.help-link{display:flex!important;align-items:center;gap:9px;margin-bottom:7px;font-weight:750}
.logo-row {
  display: grid;
  gap: 10px;
  padding: 0 6px 28px;
}
.logo-row img {
  display: block;
  width: 185px;
  max-width: 100%;
  height: auto;
}
.logo-row span {
  display: block;
}
.logo-row span {
  font-size: 12px;
  color: #9eb2ca;
  margin-top: 2px;
}
nav {
  display: grid;
  gap: 5px;
}
nav a {
  padding: 12px;
  border-radius: 8px;
  color: #adbed1;
  text-decoration: none;
  font-size: 14px;
}
nav a:hover,
nav a.active {
  background: #ffffff12;
  color: #fff;
}
.user {
  margin-top: auto;
  padding: 16px 8px 2px;
  border-top: 1px solid #ffffff18;
}
.user b,
.user span {
  display: block;
}
.user span {
  font-size: 12px;
  color: #9eb2ca;
  margin: 4px 0 12px;
  text-transform: capitalize;
}
.user a {
  font-size: 13px;
  color: #fff;
}
.content {
  margin-left: 238px;
  padding: 30px;
  max-width: 1600px;
}
header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}
header{position:sticky;top:0;z-index:30;margin:-30px -30px 24px;padding:22px 30px 16px;background:rgba(244,247,249,.94);backdrop-filter:blur(12px);border-bottom:1px solid #e6ecef}
header h1 {
  font-size: 29px;
  margin-bottom: 5px;
}
.period { position: relative; min-width: 320px; }
.period-title { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 650; }
.period-control { display: flex; align-items: center; overflow: hidden; min-height: 43px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 2px 8px #17232d0a; }
.period-arrow { display: grid; place-items: center; align-self: stretch; width: 43px; flex: 0 0 43px; color: var(--blue); font-size: 27px; line-height: 1; text-decoration: none; transition: background .15s ease, color .15s ease; }
.period-arrow:hover { background: #e8f7fa; color: #087d94; }
.period-label { display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 150px; flex: 1; padding: 0 12px; border: 0; border-radius: 0; background: transparent; color: var(--text); text-align: center; font-size: 14px; font-weight: 750; white-space: nowrap; cursor: pointer; }
.period-label:hover { background: #f5fbfc; }
.period-picker { display: grid; place-items: center; align-self: stretch; width: 45px; flex: 0 0 45px; padding: 0; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--blue); cursor: pointer; }
.period-picker:hover { background: #e8f7fa; }
.calendar-icon { font-size: 20px; line-height: 1; }
.period-menu { position: absolute; z-index: 50; top: calc(100% + 8px); right: 0; width: 310px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 16px 38px #17232d24; }
.period-menu[hidden] { display: none; }
.period-menu-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.period-menu-head label { margin: 0; font-size: 13px; font-weight: 750; color: var(--muted); }
.period-menu-head select { width: 120px; margin: 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); font-weight: 700; }
.period-months { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.period-months button { min-height: 38px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text); font-weight: 700; cursor: pointer; }
.period-months button:hover { border-color: var(--blue); background: #e8f7fa; color: var(--blue); }
.period-months button.selected { border-color: var(--blue); background: var(--blue); color: #fff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 18px;
}
.kpis article,
.panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 13px;
}
.kpis article {
  padding: 19px;
}
.kpis span,
.kpis small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}
.kpis strong {
  display: block;
  font-size: 25px;
  margin: 9px 0 6px;
}
.attention-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:0;margin-bottom:18px;padding:0;background:#fff;border:1px solid var(--line);border-left:4px solid #ee9c2d;border-radius:13px;overflow:hidden;box-shadow:0 4px 16px #17232d08}.attention-strip>div{display:grid;gap:4px;padding:16px 18px;border-right:1px solid var(--line)}.attention-strip b{font-size:12px;color:var(--muted)}.attention-strip strong{font-size:17px}.attention-strip small{color:var(--muted);font-size:11px}.attention-strip>a{padding:18px;color:var(--blue);font-size:12px;font-weight:800;text-decoration:none}.executive-kpis article{box-shadow:0 5px 18px #17232d09;border-top:3px solid var(--blue)}.kpi-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.delta{padding:4px 7px;border-radius:999px;font-size:11px;font-style:normal;font-weight:800}.delta.up{background:#e8f7f0;color:#0b7a53}.delta.down{background:#fff0ef;color:#ba3c36}.kpi-progress{display:block;height:4px;margin-top:14px;overflow:hidden;border-radius:999px;background:#edf2f4}.kpi-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.rankings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.ranking{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f3}.ranking:last-child{border:0}.ranking>b{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#edf8fa;color:var(--blue);font-size:11px}.ranking span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.ranking small{display:block;color:var(--muted);font-size:10px;font-weight:500}.ranking strong{font-size:13px}
.dashboard-insights{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:18px;margin-bottom:18px}.trend-panel{min-height:285px}.chart-legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.chart-legend i{width:9px;height:9px;border-radius:50%;background:var(--blue)}.trend-chart{display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:18px;height:205px;padding-top:23px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,#edf2f4 0,#edf2f4 1px,transparent 1px,transparent 50px)}.trend-column{display:grid;grid-template-rows:18px 1fr 22px;align-items:end;height:100%;text-align:center}.trend-column>span{overflow:hidden;color:var(--muted);font-size:9px;white-space:nowrap}.trend-column>div{display:flex;align-items:end;justify-content:center;height:100%}.trend-column i{display:block;width:min(36px,70%);min-height:6px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#17b8d1,#078eab);box-shadow:0 5px 12px #089bb52b}.trend-column>b{padding-top:6px;color:var(--muted);font-size:10px;text-transform:uppercase}.cxp-card .panel-title>.ui-icon{width:28px;height:28px;color:var(--blue)}.cxp-grand-total{display:block;margin:22px 0 3px;font-size:28px}.cxp-card>small{color:var(--muted)}.cxp-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.cxp-split>div{display:grid;gap:4px;padding:12px;border-radius:10px;background:#fff1ef}.cxp-split>div:last-child{background:#eaf8f2}.cxp-split b{font-size:14px;color:#b73f37}.cxp-split>div:last-child b{color:#08754f}.cxp-split span{color:var(--muted);font-size:10px}.dashboard-link{display:block;padding-top:12px;border-top:1px solid var(--line);color:var(--blue);font-size:12px;font-weight:800;text-decoration:none}.attention-table{margin-top:18px}
.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.dashboard-toolbar h2{margin:0 0 5px;font-size:22px}.dashboard-toolbar p{margin:0;color:var(--muted)}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.chart-legend i.sales,.trend-column i.sales{background:linear-gradient(180deg,#5dd3a5,#15966a);box-shadow:0 5px 12px #15966a2b}.trend-column>div{gap:4px}.trend-column>div i{width:min(25px,40%)}.dashboard-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0}.dashboard-balance .panel{display:grid;gap:6px;border-top:3px solid var(--blue)}.dashboard-balance .panel.danger{border-top-color:var(--danger)}.dashboard-balance span,.dashboard-balance small{color:var(--muted);font-size:12px}.dashboard-balance strong{font-size:25px}.dashboard-rankings{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-rankings .ranking strong{white-space:nowrap}@media(max-width:1100px){.dashboard-rankings{grid-template-columns:1fr 1fr}.dashboard-balance{grid-template-columns:1fr 1fr}}@media(max-width:760px){.dashboard-toolbar{align-items:flex-start;flex-direction:column}.dashboard-actions{width:100%}.dashboard-actions .button{flex:1;text-align:center}.dashboard-rankings,.dashboard-balance{grid-template-columns:1fr}.trend-chart{gap:8px}.trend-column>span{display:none}}
.grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(290px, 0.8fr);
  gap: 18px;
  align-items: start;
}
.panel {
  padding: 20px;
}
.panel h2 {
  font-size: 17px;
  margin-bottom: 5px;
}
.panel p {
  font-size: 13px;
  color: var(--muted);
}
.panel-title {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
}
.secondary {
  background: #eff5fd;
  color: var(--blue);
  font-size: 12px;
  white-space: nowrap;
}
.table-wrap {
  overflow: auto;
  margin: 12px -20px -20px;
}
.table-scroll-floating {
  overflow-x: auto;
  overflow-y: hidden;
  height: 18px;
  position: relative;
  z-index: 4;
  display: none;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f9fbfd;
  box-shadow: 0 3px 10px rgba(16, 42, 67, .10);
}
.table-scroll-floating.visible { display: block; }
.table-scroll-floating > div { height: 1px; }
.table-scroll-floating.table-scroll-docked{position:fixed;bottom:10px;z-index:70;margin:0;opacity:.96;box-shadow:0 5px 18px rgba(16,42,67,.22)}
.table-scroll-floating.table-scroll-docked:hover{opacity:1}
.comprobantes-table .actions-col {
  position: sticky;
  right: 0;
  z-index: 2;
  background: #fff;
  box-shadow: -8px 0 12px -12px rgba(16, 42, 67, .55);
}
.comprobantes-table th.actions-col {
  z-index: 3;
  background: #f9fbfd;
}
.comprobantes-table td.actions-col { white-space: nowrap; }
table {
  border-collapse: collapse;
  width: 100%;
  font-size: 13px;
}
th,
td {
  padding: 13px 14px;
  text-align: left;
  border-top: 1px solid var(--line);
  white-space: nowrap;
}
th {
  background: #f9fbfd;
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.num {
  text-align: right;
}
td small {
  display: block;
  color: var(--muted);
  margin-top: 3px;
}
.status {
  background: #e7f7f0;
  color: var(--ok);
  padding: 5px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
}
.doc-type {
  display: inline-block;
  padding: 5px 8px;
  border-radius: 20px;
  background: #e8f7fa;
  color: #087d94;
  font-size: 10px;
  font-weight: 800;
}
.type-04 { background: #fff0f0; color: #a42b2b; }
.type-05 { background: #fff5dd; color: #8a5b00; }
.type-07 { background: #f1edff; color: #6946b8; }
.effect { font-weight: 800; color: var(--ok); }
.effect.negative { color: #b42318; }
.supported-types { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.supported-types span { padding: 6px 9px; border-radius: 20px; background: #e8f7fa; color: #087d94; font-size: 11px; font-weight: 750; }
.right {
  position: static;
  width: auto;
  background: transparent;
  color: inherit;
  padding: 0;
  display: grid;
  gap: 18px;
}
.upload {
  display: grid;
  gap: 12px;
}
.drop {
  border: 1.5px dashed #b7c6d8;
  padding: 18px;
  text-align: center;
  border-radius: 10px;
  background: #f8fbff;
}
.drop span {
  color: var(--muted);
  font-weight: 400;
}
.drop input {
  margin-top: 10px;
  font-size: 12px;
}
.supplier {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid var(--line);
  font-size: 12px;
}
.supplier small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
}
.supplier strong {
  white-space: nowrap;
}
.alert {
  padding: 12px 14px;
  border-radius: 9px;
  margin-bottom: 14px;
  font-size: 13px;
}
.alert.error {
  background: #fff0f0;
  color: #a42b2b;
}
.alert.success {
  background: #eaf8f1;
  color: var(--ok);
}
.empty {
  text-align: center;
  color: var(--muted);
  padding: 28px !important;
}
.detail-panel { margin-bottom: 18px; border-color: #a9dfe9; box-shadow: 0 10px 28px #17232d0d; }
.classification-form { display: grid; grid-template-columns: minmax(220px,1fr) minmax(280px,1.5fr) auto; gap: 12px; align-items: end; margin: 18px 0 4px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfc; }
.detail-table { margin-bottom: -20px; }
.description-cell { min-width: 260px; max-width: 460px; white-space: normal; line-height: 1.4; }
.detail-link,.xml-download { display: inline-block; white-space: nowrap; text-decoration: none; font-size: 11px; font-weight: 800; color: var(--blue); }
.detail-link { margin-right: 10px; padding-right: 10px; border-right: 1px solid var(--line); }
.product-analysis { margin-bottom: 18px; }
.product-filters { grid-template-columns: minmax(240px,2fr) repeat(2,minmax(145px,1fr)) minmax(220px,1.5fr) auto; }
.product-filters .supplier-filter { min-width: 220px; }
.product-history { margin-top: 18px; }
.credit-row td { background: #fff8f8; color: #8f2626; }
.credit-row td b { color: #8f2626; }
textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 11px; background: #fff; color: var(--text); font: inherit; }
.suggestions-grid { display: grid; grid-template-columns: minmax(280px,.7fr) minmax(0,1.3fr); gap: 18px; align-items: start; }
.suggestion-form, .suggestion-review { display: grid; gap: 15px; }
.suggestion-list { display: grid; gap: 12px; margin-top: 15px; }
.suggestion-card { border: 1px solid var(--line); border-radius: 11px; padding: 16px; }
.suggestion-card h3 { margin: 8px 0 4px; font-size: 16px; }
.suggestion-card small { color: var(--muted); }
.suggestion-status { display: inline-block; border-radius: 99px; padding: 4px 8px; background: #eef3f6; color: var(--muted); font-size: 10px; font-weight: 800; }
.status-implementada, .status-aprobada { background: #e7f7f0; color: var(--ok); }
.status-en_revision { background: #e8f7fa; color: #087d94; }
.status-descartada { background: #f5eded; color: #8c4545; }
.suggestion-review { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.admin-comment { margin-top: 12px; padding: 11px; border-radius: 8px; background: #f4f7f9; font-size: 13px; }
.account-panel { max-width: 560px; }
.payment-settings { display: grid; grid-template-columns: minmax(270px,.65fr) minmax(0,1.35fr); gap: 18px; align-items: start; }
.payment-add-form { display: grid; gap: 14px; }
.payment-method-list { display: grid; gap: 10px; margin-top: 14px; }
.payment-method-row { display: grid; grid-template-columns: minmax(190px,1fr) 90px 80px auto; gap: 10px; align-items: end; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.payment-method-row label,.payment-add-form label { font-size: 12px; font-weight: 700; color: var(--muted); }
.payment-method-row input,.payment-add-form input { margin-top: 6px; }
.payment-method-row .active-check { display: flex; align-items: center; gap: 7px; min-height: 43px; color: var(--text); }
.payment-method-row .active-check input { width: auto; margin: 0; }
.role-revisor #importar, .role-consulta #importar { display: none; }
.sync-grid { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:18px;align-items:start; }
.sync-form { grid-template-columns:1fr 1fr; }
.sync-form .drop,.sync-form button,.sync-note { grid-column:1/-1; }
.sync-note { margin-top:16px;padding:13px;border-radius:9px;background:#eef8fb;color:#275b67;font-size:12px; }
.coverage-list { display:grid;gap:9px;margin-top:14px; }
.coverage-list span { display:flex;justify-content:space-between;padding:11px;border:1px solid var(--line);border-radius:9px; }
.coverage-list small { color:var(--muted); }
.sync-history { margin-top:18px; }
.sync-status { display:inline-block;padding:5px 8px;border-radius:20px;background:#e7f7f0;color:var(--ok);font-size:10px;font-weight:800;white-space:nowrap; }
.sales-preparation-note{display:flex;gap:12px;align-items:center;margin:0 0 18px;padding:14px 18px;border:1px solid #f0d795;border-left:4px solid #d99a1b;border-radius:11px;background:#fff9e8;color:#72520c}.sales-preparation-note span{color:#756b58}.sales-tax-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.sales-tax-setting{display:flex;gap:7px;align-items:center;min-width:410px}.sales-tax-setting select{min-width:120px}.sales-tax-totals{display:flex;justify-content:flex-end;gap:26px;flex-wrap:wrap;padding:18px 4px 0}.sales-tax-totals span{display:grid;gap:4px;color:var(--muted)}.sales-tax-totals b,.sales-tax-totals strong{color:var(--text);font-size:18px}.sales-pagination{margin-top:14px}.view-odoo_productos #sales-simulator select{min-width:260px}.view-odoo_productos #sales-simulator input{width:105px}
.sync-status.status-completado_con_errores,.sync-status.status-fallido { background:#fff0f0;color:#a42b2b; }
.sync-ok { color:var(--ok);font-weight:800; }.sync-error { color:#a42b2b;font-weight:800; }
.connection-status{display:grid;gap:5px;margin:18px 0;padding:14px;border-radius:10px;background:#fff4e5;color:#855300}.connection-status.ready{background:#e7f7f0;color:var(--ok)}.connection-status span{font-size:12px}.odoo-actions{display:flex;gap:10px;flex-wrap:wrap}.odoo-actions form{margin:0}
@media (max-width: 1050px) {
  .attention-strip{grid-template-columns:1fr 1fr}.attention-strip>a{grid-column:1/-1;border-top:1px solid var(--line)}
  .rankings-grid{grid-template-columns:1fr}
  .dashboard-insights{grid-template-columns:1fr}
  .sync-grid { grid-template-columns:1fr; }
  .payment-settings { grid-template-columns: 1fr; }
  .suggestions-grid { grid-template-columns: 1fr; }
  .kpis {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid {
    grid-template-columns: 1fr;
  }
  .product-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .right {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 760px) {
  .attention-strip{grid-template-columns:1fr}.attention-strip>div{border-right:0;border-bottom:1px solid var(--line)}.attention-strip>a{grid-column:auto}
  .payment-method-row { grid-template-columns: 1fr; }
  aside {
    position: static;
    width: 100%;
    padding: 14px;
  }
  .logo-row {
    padding-bottom: 10px;
  }
  nav {
    display: none;
  }
  .user {
    display: none;
  }
  .content {
    margin: 0;
    padding: 18px;
  }
  header {
    display: block;
    position:static;margin:0 0 20px;padding:0;background:transparent;border:0;
  }
  .period {
    width: 100%;
    margin-top: 16px;
  }
  .kpis {
    grid-template-columns: 1fr;
  }
  .right {
    grid-template-columns: 1fr;
  }
  .panel-title {
    display: block;
  }
  .product-filters { grid-template-columns: 1fr; }
  .classification-form { grid-template-columns: 1fr; }
  .secondary {
    display: inline-block;
    margin-bottom: 10px;
  }
}
.company-switcher{padding:0 16px 14px}.company-switcher label{display:grid;gap:5px;color:#b9c4d2;font-size:11px;text-transform:uppercase}.company-switcher select{width:100%;font-size:12px;padding:9px;border-radius:8px;background:#fff;color:#172033}.company-admin{margin-bottom:18px}.company-admin summary{cursor:pointer;font-weight:700;color:#143b6b}.company-admin[open] summary{margin-bottom:12px}
.cxc-summary{padding:0;overflow:hidden}.cxc-summary>summary{cursor:pointer;list-style:none;padding:24px 26px}.cxc-summary>summary::-webkit-details-marker{display:none}.cxc-summary>summary:focus-visible{outline:3px solid rgba(0,157,190,.28);outline-offset:-3px}.cxc-summary .summary-toggle{color:#009dbd;font-weight:700;white-space:nowrap}.cxc-summary .show-label{display:none}.cxc-summary:not([open]) .hide-label{display:none}.cxc-summary:not([open]) .show-label{display:inline}.cxc-summary[open]>summary{border-bottom:1px solid #d9e1e8}.cxc-summary>.table-wrap{width:100%;max-width:100%;margin:0;overflow-x:auto;overflow-y:visible;border-radius:0}.cxc-summary table{min-width:840px}.cxc-summary th:first-child,.cxc-summary td:first-child{min-width:360px;white-space:normal;overflow-wrap:anywhere}.cxc-summary th:not(:first-child),.cxc-summary td:not(:first-child){white-space:nowrap}
.cxp-classification{grid-template-columns:repeat(3,minmax(170px,1fr))}.cxp-status{display:inline-block;padding:5px 8px;border-radius:20px;font-size:10px;font-weight:800;white-space:nowrap}.cxp-status.overdue{background:#fff0f0;color:#a42b2b}.cxp-status.upcoming{background:#e7f7f0;color:var(--ok)}.report-selector{grid-template-columns:minmax(220px,1.2fr) minmax(160px,1fr) minmax(190px,1fr) auto}.project-report-filter{margin-top:-4px;grid-template-columns:minmax(260px,1fr) auto;max-width:680px}.project-report-filter button{align-self:end}@media(max-width:1050px){.cxp-classification{grid-template-columns:repeat(2,minmax(0,1fr))}.report-selector{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.cxp-classification,.report-selector,.project-report-filter{grid-template-columns:1fr}}
.credit-settings{margin-bottom:18px}.credit-add{display:grid;grid-template-columns:minmax(280px,1fr) 140px auto;gap:12px;align-items:end;margin-bottom:18px}.credit-row-form{display:flex;gap:8px;align-items:center}.credit-row-form input{width:90px}.credit-row-form button{white-space:nowrap}.customer-payment{margin:18px 0;padding:20px}.customer-payment>summary{cursor:pointer;font-weight:800;color:var(--navy)}.customer-payment[open]>summary{margin-bottom:18px}.customer-selector{grid-template-columns:minmax(320px,1fr) auto}.customer-payment-form{display:grid;gap:16px}.payment-meta{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.payment-meta .wide{grid-column:1/-1}.customer-payment-form td input{min-width:120px;text-align:right}.customer-payment-form>button{justify-self:end}.kpis:has(article:nth-child(5)){grid-template-columns:repeat(5,1fr)}
@media(max-width:1200px){.kpis:has(article:nth-child(5)){grid-template-columns:repeat(3,1fr)}.payment-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.credit-add,.customer-selector,.payment-meta,.kpis:has(article:nth-child(5)){grid-template-columns:1fr}.credit-row-form{align-items:stretch;flex-direction:column}.credit-row-form input{width:100%}.payment-meta .wide{grid-column:auto}}
.payment-ledger{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:18px;margin:18px 0}.payment-ledger>article{padding:16px;border:1px solid var(--line);border-radius:12px}.payment-ledger h3{margin-top:0}.payment-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-entry label{font-size:12px;font-weight:700;color:var(--muted)}.payment-entry input{margin-top:5px}.payment-entry .payment-notes,.payment-entry button{grid-column:1/-1}.payment-balance{display:flex;gap:14px;flex-wrap:wrap;padding:12px;background:#f4f7fb;border-radius:9px}.payment-balance strong{color:var(--navy)}@media(max-width:1050px){.payment-ledger{grid-template-columns:1fr}}@media(max-width:760px){.payment-entry{grid-template-columns:1fr}.payment-entry .payment-notes,.payment-entry button{grid-column:auto}}
.cxp-concept{min-width:260px;max-width:420px;white-space:normal;line-height:1.35}.cxp-concept small{display:block;margin-top:5px;color:var(--muted)}.cxp-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:128px}.cxp-actions a{white-space:nowrap}
.project-create{margin-bottom:18px}.project-create>summary{cursor:pointer;font-weight:800;color:var(--navy)}.project-create[open]>summary{margin-bottom:16px}.project-form{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:12px;align-items:end}.project-form label{font-size:12px;font-weight:700;color:var(--muted)}.project-form input,.project-form select,.project-form textarea{margin-top:6px}.project-form .wide{grid-column:1/-1}.project-form button{justify-self:start}.project-status{display:inline-block;padding:5px 8px;border-radius:20px;background:#eef3f6;color:#526173;font-size:10px;font-weight:800;white-space:nowrap}.project-status.status-en_curso{background:#e8f7fa;color:#087d94}.project-status.status-facturado{background:#fff4e5;color:#855300}.project-status.status-cerrado{background:#e7f7f0;color:var(--ok)}.project-profit.negative{color:#a42b2b}.project-detail{display:grid;gap:18px;margin-top:18px}.project-kpis{margin:18px 0}.project-edit{padding-top:18px;border-top:1px solid var(--line)}.project-document-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-document-grid h3{margin:0 0 10px}.document-checklist{display:grid;gap:8px;max-height:520px;overflow:auto;padding-right:5px}.document-checklist label{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.document-checklist input{width:auto;margin-top:3px}.document-checklist span{min-width:0}.document-checklist small{display:block;margin-top:4px;color:var(--muted)}
.project-result-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.project-result-filters label{min-width:170px;font-size:12px;font-weight:700;color:var(--muted)}.project-result-filters input{margin-top:6px}.project-period-buttons{display:flex;gap:7px;flex-wrap:wrap;width:100%}.project-period-buttons button{padding:9px 13px}.project-period-buttons button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.project-result-kpis{margin-bottom:18px}.project-result-detail{margin-top:18px}.project-result-detail .negative,.project-result-kpis .negative{color:#a42b2b}
.view-proyectos header>.period{display:none}
.document-filters{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px;margin-bottom:10px}.document-filters label{font-size:11px;font-weight:800;color:var(--muted)}.document-filters input,.document-filters select{margin-top:5px}.document-result-count{grid-column:1/-1;color:var(--muted)}.document-option[hidden]{display:none}.document-no-results{padding:18px;text-align:center}
.project-expenses .expense-form{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px}.expense-rows{display:grid;gap:12px}.expense-row{display:grid;grid-template-columns:140px minmax(150px,1fr) minmax(210px,1.5fr) 120px minmax(180px,1fr) minmax(140px,.8fr) minmax(180px,1fr) 42px;gap:10px;align-items:end;padding:12px;background:#f7f9fb;border:1px solid var(--line);border-radius:10px}.expense-row label{min-width:0;font-size:12px;font-weight:700;color:var(--muted)}.expense-row input{margin-top:6px}.expense-remove{width:42px;height:42px;padding:0;background:#fff0f0;color:#a42b2b;border:1px solid #e8c4c4;font-size:23px}.expense-remove:disabled{opacity:.35;cursor:not-allowed}.expense-batch-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.danger-link{background:transparent;color:#a42b2b;border:0;padding:4px;font-weight:700;cursor:pointer}
.expense-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:0 0 12px}.expense-selection-count{color:var(--muted);font-weight:700}.expense-select-cell{width:44px;text-align:center!important}.expense-select-cell input{width:18px;height:18px;margin:0;cursor:pointer}.expense-delete-selected:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1400px){.expense-row{grid-template-columns:repeat(4,minmax(150px,1fr)) 42px}.expense-row .expense-notes{grid-column:span 2}}@media(max-width:1050px){.project-form{grid-template-columns:repeat(2,minmax(0,1fr))}.project-document-grid{grid-template-columns:1fr}.expense-row{grid-template-columns:repeat(2,minmax(0,1fr)) 42px}.expense-row .expense-notes{grid-column:auto}}@media(max-width:760px){.project-form{grid-template-columns:1fr}.project-form .wide{grid-column:auto}.expense-row{grid-template-columns:1fr 42px}.expense-row label{grid-column:1/-1}.expense-row .expense-remove{grid-column:2;justify-self:end}.expense-batch-actions{align-items:stretch;flex-direction:column}}
@media(max-width:760px){.document-filters{grid-template-columns:1fr}.document-result-count{grid-column:auto}}
.bank-import{margin:18px 0}.bank-import>summary{cursor:pointer;display:flex;gap:12px;align-items:center;justify-content:space-between}.bank-import>summary span{color:var(--muted);font-size:13px}.bank-upload{display:flex;gap:12px;align-items:end;margin:18px 0}.bank-upload label{flex:1;font-size:12px;font-weight:700;color:var(--muted)}.bank-upload input{margin-top:6px}.bank-batch-title,.bank-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}.bank-batch-title h3{margin:0}.bank-batch-title p,.bank-confirm p{margin:4px 0;color:var(--muted)}.bank-review select{min-width:330px}.bank-review td small{display:block;color:var(--muted);margin-top:3px}.bank-amount{min-width:105px;text-align:right}.bank-match{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.match-exact{background:#dcfce7;color:#166534}.match-partial,.match-review{background:#fef3c7;color:#92400e}.match-ambiguous,.match-unmatched{background:#e0e7ff;color:#3730a3}.match-duplicate,.match-skipped{background:#e5e7eb;color:#4b5563}.match-applied{background:#dbeafe;color:#1d4ed8}@media(max-width:760px){.bank-upload,.bank-batch-title,.bank-confirm,.bank-import>summary{align-items:stretch;flex-direction:column}.bank-review select{min-width:240px}}
.user .help-link{font-weight:800;color:#1769bd;margin-bottom:2px}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:20px}.help-grid article,.info-card{border:1px solid #dce5ee;border-radius:14px;padding:18px;background:#f8fbfd}.help-grid h3{margin-top:0}.button{display:inline-flex;align-items:center;text-decoration:none;background:#1976d2;color:#fff;padding:11px 16px;border-radius:9px;font-weight:700}

/* Final cascade for the unified light executive interface */
body{background:#f5f7fb;color:#172033;font-size:14px}aside.app-sidebar{width:252px;padding:20px 15px;background:#fff;color:#172033;border-right:1px solid #e2e8f0;box-shadow:4px 0 24px rgba(31,55,90,.035)}.logo-row{padding:4px 10px 24px;border-bottom:1px solid #e2e8f0;margin-bottom:18px}.logo-row img{width:190px}.logo-row span{color:#8190a5}.nav-groups{gap:15px}.nav-groups h3{color:#9aa7b8}.nav-groups a{position:relative;color:#52647a;border-radius:9px;font-size:13px;font-weight:700}.nav-groups a .ui-icon{color:#768ba5}.nav-groups a:hover{background:#f1f6fc;color:#185ea7}.nav-groups a.active{background:#eaf3ff;color:#1769bd;box-shadow:none}.nav-groups a.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:4px;background:#1976d2}.nav-groups a:hover .ui-icon,.nav-groups a.active .ui-icon{color:#1976d2}.app-sidebar .user{background:#f7f9fc;border:1px solid #e2e8f0;color:#54667c}.app-sidebar .user a{color:#47627e}.nav-badge{background:#df4b58}.content{margin-left:252px;padding:0 32px 42px;max-width:1680px}.content>header{position:sticky;top:0;z-index:30;margin:0 -32px 24px;padding:20px 32px 18px;background:rgba(255,255,255,.94);border-bottom:1px solid #e2e8f0;backdrop-filter:blur(12px);box-shadow:0 4px 18px rgba(27,47,77,.035)}.content>header h1{font-size:25px;letter-spacing:-.025em;margin-bottom:4px}.content>header .eyebrow{margin-bottom:5px;font-size:10px}.period-control{background:#f8fafc;border-color:#dbe3ed;box-shadow:none}.panel,.kpis article,.attention-strip{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 8px 28px rgba(29,48,82,.07)}.panel{padding:22px}.panel-title h2,.panel h2{font-size:17px}.attention-strip{padding:0;overflow:hidden;display:grid;grid-template-columns:repeat(3,1fr) auto;gap:0}.attention-strip>div{padding:18px 20px;border-right:1px solid #e2e8f0;background:#fff}.attention-strip>div:first-child{border-top:3px solid #df4b58}.attention-strip>div:nth-child(2){border-top:3px solid #d99a1b}.attention-strip>div:nth-child(3){border-top:3px solid #15966a}.attention-strip>a{display:grid;place-items:center;padding:18px;color:#1769bd;background:#f5f9ff;font-weight:800;text-decoration:none}.kpis article{position:relative;padding:19px 20px;overflow:hidden}.kpis article:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#1976d2,#2bb6d9)}.kpis strong{font-size:27px}.dashboard-insights{grid-template-columns:minmax(0,1.8fr) minmax(290px,.75fr)}.trend-column i{background:linear-gradient(180deg,#62b2f4,#1976d2)}.cxp-card{border-top:3px solid #1976d2}thead{position:sticky;top:92px;z-index:5}th{padding:12px 13px;background:#f3f6fa;color:#607086;font-size:10px;text-transform:uppercase}td{padding:13px;border-color:#edf1f5}tbody tr:hover{background:#f7faff}.table-wrap{border:1px solid #e2e8f0;border-radius:11px;overflow:auto}.filters{position:sticky;top:91px;z-index:12;padding:15px;background:rgba(255,255,255,.97);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 6px 20px rgba(31,49,78,.06)}button,.button{background:#1976d2}.secondary{background:#fff;color:#1769bd;border:1px solid #bfd5ec}.detail-link,.ride-link,.pdf-download,.xml-download{display:inline-flex;padding:6px 9px;border-radius:7px;background:#edf5fe;color:#1769bd;text-decoration:none!important}.doc-type,.cxp-status,.project-status,.sync-status,.bank-match{padding:5px 9px;border-radius:999px;font-size:10px;font-weight:850}.cxp-status.overdue{background:#ffe9eb;color:#c93444}.cxp-status.upcoming{background:#e8f7f0;color:#11815c}.project-status{background:#e9f3ff;color:#1769bd}.empty{padding:38px!important;color:#8190a5;text-align:center;background:#fbfcfe}
@media(max-width:1100px){.content{padding-left:22px;padding-right:22px}.content>header{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}.attention-strip{grid-template-columns:repeat(3,1fr)}.attention-strip>a{grid-column:1/-1}.kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){aside.app-sidebar{background:#fff}.content{margin-left:0;padding:82px 14px 28px}.content>header{top:65px;margin:0 -14px 18px;padding:14px}.attention-strip{grid-template-columns:1fr}.kpis{grid-template-columns:1fr}.filters{top:128px}.panel{padding:16px}thead{top:128px}}

/* v1.28.1 · table and section layout repair
   Table headers belong to their own table. A sticky THEAD inside an overflow
   container is positioned over body rows by Chromium, which caused the
   displaced/cropped headers reported in Dashboard, Projects and Reports. */
.panel{min-width:0;overflow:visible}
.panel-title{min-width:0}
.table-wrap{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.table-wrap table{width:100%;margin:0;border-collapse:collapse}
.table-wrap thead{position:static;inset:auto;z-index:auto}
.table-wrap thead th{position:static}
.table-wrap tbody tr:first-child td{border-top:0}
.table-wrap th,.table-wrap td{vertical-align:middle}

/* Keep wide operational tables readable instead of squeezing/cutting fields. */
.view-comprobantes .table-wrap table{min-width:1180px}
.view-proyectos .table-wrap table{min-width:1100px}
.view-productos .product-analysis .table-wrap table{min-width:1450px}
.view-productos .product-history .table-wrap table{min-width:1380px}
.view-proveedores .provider-table table{min-width:980px}
.view-reportes .table-wrap table{min-width:920px}
.view-cartera .table-wrap table,.view-cxp .table-wrap table{min-width:980px}
.view-resumen .attention-table table{min-width:760px}

/* Forms and controls must wrap within their section instead of overflowing. */
.filters{max-width:100%}
.filters>*{min-width:0}
.filter-actions{flex-wrap:wrap}
.panel-title{flex-wrap:wrap}
.panel-title>div{min-width:240px;flex:1 1 auto}

@media(max-width:760px){
  .table-wrap thead{position:static;inset:auto}
  .table-wrap th:nth-child(n),.table-wrap td:nth-child(n){display:table-cell}
  .view-resumen .attention-table table{min-width:680px}
  .panel-title>div{min-width:0;flex-basis:100%}
}

/* v1.28.2 · user-selectable light/dark appearance */
.theme-control{display:flex;width:100%;align-items:center;gap:9px;margin:0 0 9px;padding:8px 9px;border:1px solid #dbe5ef;border-radius:9px;background:#fff;color:#285174;text-align:left}
.theme-symbol{display:grid;place-items:center;width:20px;height:20px;font-size:18px}.theme-copy{display:grid;min-width:0;flex:1;gap:3px}.theme-copy b{font-size:11px}.theme-control select{width:100%;min-height:29px;padding:4px 6px;border:1px solid #dbe5ef;border-radius:6px;background:#f8fbff;color:#285174;font-size:11px}
html[data-theme="dark"]{color-scheme:dark;--navy:#dcecff;--blue:#5ba8f2;--cyan:#42c5df;--bg:#0d1522;--line:#29384b;--text:#e7eef8;--muted:#9aacbf;--ok:#46c998;--warn:#efb94e;--danger:#f06b78;--surface:#162131;--shadow:0 8px 28px rgba(0,0,0,.22)}
html[data-theme="dark"] body{background:#0d1522;color:#e7eef8}
html[data-theme="dark"] aside.app-sidebar{background:#111b29;color:#e7eef8;border-color:#29384b;box-shadow:4px 0 24px rgba(0,0,0,.2)}
html[data-theme="dark"] .logo-row{border-color:#29384b}html[data-theme="dark"] .logo-row span{color:#93a6ba}
html[data-theme="dark"] .nav-groups h3{color:#75899f}html[data-theme="dark"] .nav-groups a{color:#aec0d2}html[data-theme="dark"] .nav-groups a .ui-icon{color:#8197ad}
html[data-theme="dark"] .nav-groups a:hover{background:#1a2a3d;color:#7fc0ff}html[data-theme="dark"] .nav-groups a.active{background:#17314d;color:#79bcff}
html[data-theme="dark"] .app-sidebar .user{background:#162334;border-color:#2b3b50;color:#aebed0}html[data-theme="dark"] .app-sidebar .user a{color:#8fc8ff}
html[data-theme="dark"] .content>header{background:rgba(13,21,34,.94);border-color:#29384b;box-shadow:0 4px 18px rgba(0,0,0,.14)}
html[data-theme="dark"] .panel,html[data-theme="dark"] .kpis article,html[data-theme="dark"] .attention-strip{background:#162131;border-color:#29384b;box-shadow:var(--shadow)}
html[data-theme="dark"] .attention-strip>div{background:#162131;border-color:#29384b}html[data-theme="dark"] .attention-strip>a{background:#172a40;color:#78bcff}
html[data-theme="dark"] .kpis article>span,html[data-theme="dark"] .kpi-head>span,html[data-theme="dark"] .panel-title p,html[data-theme="dark"] .muted,html[data-theme="dark"] small{color:#9aacbf}
html[data-theme="dark"] .trend-chart{background:repeating-linear-gradient(to bottom,#2a394d 0,#2a394d 1px,transparent 1px,transparent 50px)}
html[data-theme="dark"] .ranking>b{background:#203750;color:#79bcff}html[data-theme="dark"] .ranking strong{color:#dce9f7}
html[data-theme="dark"] .table-wrap{border-color:#2b3b50}html[data-theme="dark"] th{background:#1d2b3d;color:#a9bbce}html[data-theme="dark"] td{border-color:#29384b}html[data-theme="dark"] tbody tr:hover{background:#1b2a3d}
html[data-theme="dark"] .filters{background:rgba(22,33,49,.97);border-color:#2b3b50;box-shadow:0 6px 20px rgba(0,0,0,.18)}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .period-control{background:#101b2a;color:#e7eef8;border-color:#34465c}
html[data-theme="dark"] .period-menu{background:#162131;border-color:#34465c;box-shadow:0 18px 42px rgba(0,0,0,.42)}
html[data-theme="dark"] .period-menu-head select,html[data-theme="dark"] .period-months button{background:#101b2a;color:#dce8f5;border-color:#3a4d63}
html[data-theme="dark"] .period-months button:hover{background:#1b3550;color:#8dccff;border-color:#5ba8f2}
html[data-theme="dark"] .period-months button.selected{background:#287fd4;color:#fff;border-color:#5ba8f2}
html[data-theme="dark"] .period-label:hover,html[data-theme="dark"] .period-picker:hover,html[data-theme="dark"] .period-arrow:hover{background:#172a40;color:#8dccff}
html[data-theme="dark"] .period-custom input{background:#101b2a;color:#e7eef8;border-color:#3a4d63}
html[data-theme="dark"] .comprobantes-table .actions-col{background:#162131;color:#e7eef8;box-shadow:-10px 0 15px -13px rgba(0,0,0,.9)}
html[data-theme="dark"] .comprobantes-table th.actions-col{background:#1d2b3d;color:#a9bbce}
html[data-theme="dark"] .table-scroll-floating{background:#101927;border-color:#34465c;box-shadow:0 3px 12px rgba(0,0,0,.28)}
html[data-theme="dark"] .cxc-summary[open]>summary{border-color:#34465c}

/* v1.29.0 · selector mensual, trimestral, anual y personalizado */
.period{display:grid;justify-items:end;gap:7px}.period-scope{display:flex;gap:3px;padding:3px;background:#edf2f7;border:1px solid var(--line);border-radius:10px}.period-scope a{padding:6px 9px;border-radius:7px;color:var(--muted);font-size:11px;font-weight:800;text-decoration:none}.period-scope a:hover{color:#1769bd}.period-scope a.active{background:#fff;color:#1769bd;box-shadow:0 2px 7px rgba(31,55,90,.12)}.period-custom{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.period-custom label{font-size:11px;font-weight:800;color:var(--muted)}.period-custom input{margin-top:5px;padding:8px}.period-custom button{grid-column:1/-1;width:100%;padding:9px}.trend-chart{overflow-x:auto}.trend-column{min-width:46px}
html[data-theme="dark"] .period-scope{background:#101b2a;border-color:#34465c}html[data-theme="dark"] .period-scope a.active{background:#223249;color:#7fc1ff}html[data-theme="dark"] .period-custom{border-color:#34465c}
@media(max-width:760px){.period{justify-items:stretch;width:100%}.period-scope{overflow-x:auto}.period-scope a{flex:1;text-align:center;white-space:nowrap}.period-menu{left:0;right:auto;width:min(340px,calc(100vw - 28px))}.content>header{flex-direction:column}.period-control{width:100%}.period-label{flex:1}}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#73869b}
html[data-theme="dark"] .secondary,html[data-theme="dark"] .detail-link,html[data-theme="dark"] .ride-link,html[data-theme="dark"] .pdf-download,html[data-theme="dark"] .xml-download{background:#1c334c;color:#8bc7ff;border-color:#345675;box-shadow:none}
html[data-theme="dark"] .company-admin,html[data-theme="dark"] .help-grid article,html[data-theme="dark"] .info-card,html[data-theme="dark"] .payment-ledger>article,html[data-theme="dark"] .document-checklist label{background:#141f2e;border-color:#2b3b50}
html[data-theme="dark"] .classification-form{background:#141f2e;border-color:#2b3b50;color:#e7eef8}html[data-theme="dark"] .classification-form label,html[data-theme="dark"] .classification-form .apply-project-check{color:#b8c7d8}html[data-theme="dark"] .item-project-form>.classification-form{box-shadow:none}
html[data-theme="dark"] .expense-row,html[data-theme="dark"] .payment-balance,html[data-theme="dark"] .empty{background:#121e2d;border-color:#2b3b50;color:#9aacbf}
html[data-theme="dark"] .alert.error{background:#3a2029;color:#ffabb4}html[data-theme="dark"] .alert.success{background:#17342c;color:#8ce1bd}
html[data-theme="dark"] .doc-type{background:#18394a;color:#62d4e8}html[data-theme="dark"] .cxp-status.overdue{background:#44232d;color:#ff9ba6}html[data-theme="dark"] .cxp-status.upcoming{background:#193c32;color:#72ddb5}
html[data-theme="dark"] .theme-control{background:#101b2a;color:#b8d9fa;border-color:#34465c}html[data-theme="dark"] .theme-control select{background:#16283b;color:#dcecff;border-color:#3a5068}
.project-applied-invoices .table-wrap{overflow-x:auto}.project-applied-invoices table{min-width:980px}.project-applied-invoices tfoot th{background:var(--soft);border-top:2px solid var(--line);font-weight:800}.project-applied-invoices .detail-link{white-space:nowrap}.project-kpis article:first-child small{line-height:1.45}.project-liquidation{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid #d99316}.project-liquidation h2{margin:0 0 5px}.project-liquidation p{margin:0;color:var(--muted)}.project-close-button{background:#a62f36}.project-close-button:hover{background:#86252b}.role-financiero .project-edit,.role-financiero .project-documents,.role-financiero .project-expenses tbody form{display:none!important}html[data-theme="dark"] .project-applied-invoices tfoot th{background:#172536}@media(max-width:760px){.project-liquidation{align-items:stretch;flex-direction:column}.project-liquidation button{width:100%}}
html[data-theme="dark"] ::-webkit-scrollbar{width:11px;height:11px}html[data-theme="dark"] ::-webkit-scrollbar-track{background:#101927}html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#3a506a;border-radius:8px;border:2px solid #101927}

/* Pie del menú: grupos compactos para apariencia, ayuda y cuenta. */
.app-sidebar .sidebar-footer{display:grid;gap:0;padding:0;margin-top:18px;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#54667c}
.sidebar-footer-section{padding:11px 12px}.sidebar-footer-section+.sidebar-footer-section{border-top:1px solid #e2e8f0}.appearance-slot:empty{display:none}
.sidebar-footer .theme-control{margin:0;padding:0;border:0;background:transparent;gap:8px}.sidebar-footer .theme-copy{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}.sidebar-footer .theme-copy b{font-size:11px;color:#607086;white-space:nowrap}.sidebar-footer .theme-control select{min-width:0;height:32px;min-height:32px;padding:4px 26px 4px 8px;font-size:11px}.sidebar-footer .theme-symbol{width:18px;height:18px;font-size:16px}
.sidebar-help{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px 10px}.sidebar-footer .help-link{margin:0;min-width:0;color:#1769bd!important;font-size:12px;text-decoration:none}.sidebar-footer .help-link .ui-icon{width:17px;height:17px;flex-basis:17px}.sidebar-subaction{font-size:10px;font-weight:750;text-decoration:none!important;white-space:nowrap}
.sidebar-user{display:grid;gap:3px;min-width:0}.sidebar-user b{overflow:hidden;color:#34465c;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sidebar-user span{color:#8190a5;font-size:10px;text-transform:capitalize}.sidebar-account{display:grid;gap:9px}.sidebar-account-actions{display:grid;grid-template-columns:1fr auto;gap:7px}.sidebar-account-actions a{display:flex;align-items:center;justify-content:center;min-height:30px;padding:5px 8px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#47627e!important;font-size:10px;font-weight:800;text-decoration:none!important}.sidebar-account-actions .sidebar-logout{color:#b43a47!important}
html[data-theme="dark"] .app-sidebar .sidebar-footer{background:#162334;border-color:#2b3b50;color:#aebed0}html[data-theme="dark"] .sidebar-footer-section+.sidebar-footer-section{border-color:#2b3b50}html[data-theme="dark"] .sidebar-footer .theme-control{background:transparent;border:0}html[data-theme="dark"] .sidebar-footer .theme-copy b{color:#aebed0}html[data-theme="dark"] .sidebar-user b{color:#dce8f5}html[data-theme="dark"] .sidebar-user span{color:#8fa2b6}html[data-theme="dark"] .sidebar-account-actions a{background:#101b2a;border-color:#34465c;color:#8fc8ff!important}html[data-theme="dark"] .sidebar-account-actions .sidebar-logout{color:#ff9da8!important}
.users-admin-table{min-width:1080px}.user-inactive-row{opacity:.7}.user-status{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800}.user-status.active{background:#dcfce7;color:#166534}.user-status.inactive{background:#fee2e2;color:#991b1b}.user-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.55rem;min-width:22rem}.user-actions details{min-width:5rem}.user-actions summary{cursor:pointer;color:var(--blue);font-weight:800}.user-edit-form{position:absolute;z-index:25;display:grid;gap:.55rem;width:min(330px,calc(100vw - 32px));margin-top:.5rem;padding:.8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface);box-shadow:var(--shadow)}.user-edit-form label{display:grid;gap:.25rem;font-size:.76rem;font-weight:700;color:var(--muted)}.user-edit-form .user-active-check{display:flex;align-items:center;gap:.5rem}.user-edit-form .user-active-check input{width:auto}.user-reset-form,.user-delete-form{margin:0}.password-reset-result{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}.password-reset-result p{flex-basis:100%;margin:0}.password-reset-result code{padding:.55rem .75rem;border:1px solid currentColor;border-radius:.45rem;background:rgba(255,255,255,.55);font-size:1rem;font-weight:800;letter-spacing:.08em;user-select:all}.danger-button{background:#fff0f0!important;color:#a42b2b!important;border:1px solid #e8c4c4!important}
@media(max-height:820px) and (min-width:981px){aside.app-sidebar{padding-top:14px;padding-bottom:14px}.logo-row{padding-bottom:14px;margin-bottom:11px}.nav-groups{gap:8px}.nav-groups a{padding-top:7px;padding-bottom:7px}.app-sidebar .sidebar-footer{margin-top:10px}.sidebar-footer-section{padding:8px 10px}}

/* v1.29.7 · CxP con retenciones aplicadas y ajuste real al ancho de ventana. */
.cxp-responsive-table{table-layout:fixed}.cxp-col-status{width:105px}.cxp-col-provider{width:270px}.cxp-col-invoice{width:160px}.cxp-col-concept{width:300px}.cxp-col-date{width:112px}.cxp-col-days{width:70px}.cxp-col-money{width:105px}.cxp-col-actions{width:180px}.cxp-provider b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.3;overflow-wrap:anywhere}.cxp-provider small{display:block;margin-top:5px}.cxp-detail-filters{display:grid;grid-template-columns:minmax(320px,1fr) 180px auto auto;gap:10px;align-items:end;margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.cxp-detail-filters label{font-size:12px;font-weight:700;color:var(--muted)}.cxp-detail-filters input,.cxp-detail-filters select{margin-top:6px}.cxp-detail-filters>small{grid-column:1/-1;color:var(--muted)}
.cxp-responsive-table{min-width:1420px!important}.cxp-retention-detail{position:relative}.cxp-retention-detail summary{cursor:pointer;white-space:nowrap;color:#1769bd;font-size:11px;font-weight:800}.cxp-retention-detail>div{position:absolute;right:0;z-index:20;width:300px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(23,32,51,.18)}.cxp-retention-detail p{margin:0 0 9px!important;color:var(--text)!important}.cxp-retention-detail p small{display:block;margin-top:3px}.cxp-retention-detail>div>strong{display:block;padding-top:8px;border-top:1px solid var(--line)}
html[data-theme="dark"] .cxp-retention-detail>div{background:#162131;border-color:#34465c;box-shadow:0 12px 32px rgba(0,0,0,.4)}html[data-theme="dark"] .cxp-retention-detail summary{color:#8bc7ff}
@media(max-width:1180px){aside.app-sidebar{width:220px}.content{margin-left:220px;padding-left:18px;padding-right:18px}.content>header{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.report-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){aside.app-sidebar{position:static;width:100%;height:auto;max-height:none}.logo-row{padding-bottom:10px;margin-bottom:10px}.nav-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.app-sidebar .sidebar-footer{margin-top:12px}.content{margin-left:0;padding:18px 12px 28px}.content>header{position:static;margin:-18px -12px 18px;padding:16px 12px}.filters{position:static}.period{justify-items:stretch;width:100%}.period-scope{overflow-x:auto}.cxp-detail-panel .table-wrap{overflow:visible;border:0}.cxp-responsive-table{display:block;min-width:0!important}.cxp-responsive-table thead{display:none}.cxp-responsive-table tbody{display:grid;gap:12px}.cxp-responsive-table tr{display:grid;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface,#fff)}.cxp-responsive-table td{display:grid!important;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:7px 0;border:0;text-align:left!important;overflow-wrap:anywhere}.cxp-responsive-table td:before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.cxp-responsive-table .cxp-actions{min-width:0;flex-direction:row;flex-wrap:wrap}.cxp-responsive-table .cxp-concept{min-width:0;max-width:none}.cxp-retention-detail>div{position:static;width:min(100%,320px);margin-top:8px}.cxp-responsive-table .empty{display:block!important}.cxp-responsive-table .empty:before{content:none}}
@media(max-width:560px){.nav-groups{grid-template-columns:1fr}.kpis,.report-selector{grid-template-columns:1fr}.cxp-responsive-table td{grid-template-columns:92px minmax(0,1fr)}.period-scope a{min-width:88px}.panel{padding:14px}}
@media(max-width:900px){.cxp-detail-filters{grid-template-columns:1fr}.cxp-detail-filters>small{grid-column:1}.cxp-provider b{display:block;overflow:visible;-webkit-line-clamp:unset;line-clamp:unset}}

/* v1.29.8 · ancho fluido y CxP legible al redimensionar la ventana. */
.content{width:auto;max-width:none;min-width:0}
.content>main,.view-reportes .content>*{max-width:100%;min-width:0}
.cxp-detail-panel{max-width:100%;min-width:0;overflow:hidden}
@media(max-width:1280px){
  aside.app-sidebar{position:static;width:100%;height:auto;max-height:none}
  .logo-row{padding-bottom:10px;margin-bottom:10px}
  .nav-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-sidebar .sidebar-footer{margin-top:12px}
  .content{width:100%;margin-left:0;padding:18px 12px 28px}
  .content>header{position:static;margin:-18px -12px 18px;padding:16px 12px}
  .filters{position:static}
  .period{justify-items:stretch;width:100%}
  .period-scope{overflow-x:auto}
  .cxp-detail-panel .table-wrap{overflow:visible;border:0}
  .cxp-responsive-table{display:block;min-width:0!important;width:100%}
  .cxp-responsive-table thead{display:none}
  .cxp-responsive-table tbody{display:grid;gap:12px}
  .cxp-responsive-table tr{display:grid;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface,#fff)}
  .cxp-responsive-table td{display:grid!important;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:7px 0;border:0;text-align:left!important;overflow-wrap:anywhere}
  .cxp-responsive-table td:before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
  .cxp-responsive-table .cxp-actions{min-width:0;flex-direction:row;flex-wrap:wrap}
  .cxp-responsive-table .cxp-concept{min-width:0;max-width:none}
  .cxp-retention-detail>div{position:static;width:min(100%,320px);margin-top:8px}
  .cxp-responsive-table .empty{display:block!important}
  .cxp-responsive-table .empty:before{content:none}
}
.cxc-filters{display:grid;grid-template-columns:minmax(210px,1.4fr) minmax(190px,1.2fr) minmax(190px,1fr) minmax(145px,.7fr) minmax(145px,.7fr) auto;gap:12px;align-items:end;padding:16px;border-top:1px solid var(--border)}
.cxc-filters label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.cxc-filters .filter-actions{display:flex;gap:8px;align-items:center}
.duplicate-row{background:color-mix(in srgb,#f59e0b 8%,transparent)}
.duplicate-badge{display:inline-flex;margin-top:5px;padding:3px 7px;border-radius:999px;background:#fff0cf;color:#9a5700;font-size:10px;font-weight:800;letter-spacing:.04em}
html[data-theme="dark"] .duplicate-badge{background:#5b3a08;color:#ffd98a}
@media(max-width:1250px){.cxc-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.cxc-filters .filter-actions{grid-column:span 3}}
@media(max-width:760px){.cxc-filters{grid-template-columns:1fr}.cxc-filters .filter-actions{grid-column:auto}}
.payment-selected-row{background:color-mix(in srgb,#1976d2 10%,transparent)}
.cxc-pay-action{padding:7px 10px;font-size:12px;white-space:nowrap}
.customer-payment:target{scroll-margin-top:110px;outline:3px solid color-mix(in srgb,#1976d2 20%,transparent);outline-offset:3px}
.payment-status{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em}.payment-status.active{background:#dcfce7;color:#166534}.payment-status.annulled{background:#fee2e2;color:#991b1b}.payment-annulled-row{opacity:.76}.payment-annulled-row td{background:rgba(127,29,29,.035)}.supplier-payment-actions{min-width:10rem;margin:.2rem 0}.supplier-payment-actions summary{cursor:pointer;color:var(--primary);font-weight:700}.supplier-payment-actions.danger summary{color:#b42318}.supplier-payment-actions form{display:grid;gap:.55rem;margin-top:.6rem;padding:.7rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel)}.supplier-payment-actions label{display:grid;gap:.25rem;font-size:.78rem}.supplier-payment-actions input,.supplier-payment-actions textarea{min-width:13rem}.supplier-payment-actions button{white-space:nowrap}
.role-gestor_proyectos .module-navigation>*:not(.nav-home):not(.module-projects){display:none}.role-gestor_proyectos .nav-home{display:none}

/* v1.31.0 · encabezados ordenables en todas las tablas del portal. */
.table-sort-button{display:flex;align-items:center;justify-content:space-between;gap:7px;width:100%;min-width:max-content;margin:0;padding:0;border:0;border-radius:0;background:transparent!important;color:inherit!important;font:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-transform:inherit;box-shadow:none!important;cursor:pointer}
.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--primary,#1769bd)!important;outline:none}.table-sort-button:focus-visible{box-shadow:inset 0 -2px currentColor!important}
.table-sort-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:#7f90a5;font-size:13px;line-height:1}.table-sort-button:hover .table-sort-icon,[aria-sort="ascending"] .table-sort-icon,[aria-sort="descending"] .table-sort-icon{color:var(--primary,#1769bd)}
th.num .table-sort-button{justify-content:flex-end}th.table-sort-disabled{cursor:default}
html[data-theme="dark"] .table-sort-button:hover,html[data-theme="dark"] .table-sort-button:focus-visible,html[data-theme="dark"] [aria-sort="ascending"] .table-sort-icon,html[data-theme="dark"] [aria-sort="descending"] .table-sort-icon{color:#8bc7ff!important}
.project-export-actions{display:flex;flex-wrap:wrap;gap:8px}.project-export-actions .button{white-space:nowrap}@media(max-width:700px){.project-export-actions{width:100%}.project-export-actions .button{flex:1;text-align:center}}
/* v1.31.2 · identidad visual ejecutiva basada en los modelos aprobados */
aside.app-sidebar{background:linear-gradient(180deg,#062c54 0%,#041f3d 100%);color:#fff;border-right:0;box-shadow:5px 0 24px rgba(3,27,52,.16)}
.app-sidebar .logo-row{border-bottom-color:rgba(255,255,255,.14)}.app-sidebar .logo-row img{filter:brightness(0) invert(1)}.app-sidebar .logo-row span{color:#a8c6e3}
.app-sidebar .nav-groups h3{color:#80a4c6}.app-sidebar .nav-groups a{color:#dce9f5}.app-sidebar .nav-groups a .ui-icon{color:#a9c7e3}.app-sidebar .nav-groups a:hover{background:rgba(255,255,255,.09);color:#fff}.app-sidebar .nav-groups a.active{background:#1674df;color:#fff;box-shadow:0 7px 18px rgba(0,91,204,.28)}.app-sidebar .nav-groups a.active:before{background:#73c6ff}.app-sidebar .nav-groups a:hover .ui-icon,.app-sidebar .nav-groups a.active .ui-icon{color:#fff}
.module-navigation{display:grid!important;gap:7px!important}.module-navigation .nav-home{margin-bottom:3px}.nav-module{border:1px solid rgba(255,255,255,.12);border-radius:10px;overflow:hidden;background:rgba(255,255,255,.035)}.nav-module summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;color:#dce9f5;font-size:12px;font-weight:850;cursor:pointer;list-style:none;user-select:none}.nav-module summary::-webkit-details-marker{display:none}.nav-module summary:hover{background:rgba(255,255,255,.08)}.nav-module summary i{font-style:normal;color:#8fb4d5;transition:transform .18s}.nav-module[open] summary i{transform:rotate(180deg)}.nav-submenu{display:grid;gap:3px;padding:0 5px 6px}.nav-submenu a{padding:8px 8px!important;font-size:11.5px!important}.nav-submenu a .ui-icon{width:15px;height:15px;flex-basis:15px}.nav-disabled{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;padding:8px;color:#819db8;font-size:11px;line-height:1.25;cursor:not-allowed}.nav-disabled b{padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.09);color:#9db5ca;font-size:7px;letter-spacing:.04em;text-transform:uppercase}.nav-submenu .nav-badge{flex:0 0 auto}.module-navigation .nav-home{display:flex;align-items:center;gap:11px;padding:9px 11px;color:#dce9f5;border-radius:9px;font-size:13px;font-weight:800;text-decoration:none}
html[data-theme="light"] .nav-module{border-color:rgba(255,255,255,.12)}
.app-sidebar .user{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#fff}.app-sidebar .user a{color:#dcecff}.app-sidebar .sidebar-footer-section{border-color:rgba(255,255,255,.12)}
/* Ordenes de compra v1.31.5 */
.purchase-order-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.purchase-order-toolbar h2{margin:2px 0 4px}.order-head-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin-bottom:18px}.purchase-order-editor textarea{width:100%;margin-top:6px}.po-lines input{min-width:105px}.po-lines .po-product{min-width:280px}.po-lines .po-advice{display:block;min-width:190px;margin-top:5px;color:var(--muted)}.po-lines .po-advice.best{color:#087f5b;font-weight:700}.order-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e9eef7;color:#334155;font-size:12px;font-weight:800}.status-aprobada,.status-recibida{background:#dcfce7;color:#166534}.status-enviada,.status-parcial{background:#dbeafe;color:#1d4ed8}.status-cancelada{background:#fee2e2;color:#991b1b}.order-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 18px}.order-actions form{display:flex;gap:8px;margin-left:auto}.order-detail .panel-title>div:last-child{display:flex;gap:12px;align-items:center}.form-actions{display:flex;gap:10px;margin-top:16px}@media(max-width:900px){.order-head-grid{grid-template-columns:1fr}.purchase-order-toolbar{align-items:flex-start;flex-direction:column}.po-lines .po-product{min-width:220px}}
.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions .button{white-space:nowrap}.invoice-detail-top{margin-bottom:18px}.invoice-detail-top .description-cell{min-width:360px}
.project-order-checklist{max-height:420px}.project-sales-origin .description-cell{min-width:340px}

/* v1.42.0 · preconciliación bancaria confirmada por el usuario. */
.reconciliation-list{display:grid;gap:14px}.reconciliation-item{border-left:4px solid #f0a126}.reconciliation-item.reconciled{border-left-color:#22a06b}.reconciliation-item .panel-title{margin-bottom:14px}.reconciliation-form{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(340px,1.7fr) minmax(190px,.8fr) minmax(150px,.6fr);gap:12px;align-items:end}.reconciliation-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.reconciliation-form .wide{grid-column:span 2}.reconciliation-form button{white-space:nowrap}.reconciliation-confirmed{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding:13px;border:1px solid #b9e7ce;border-radius:10px;background:#edfbf3;color:#17653f}.reconciliation-confirmed small{flex-basis:100%}html[data-theme="dark"] .reconciliation-confirmed{border-color:#28694d;background:#143626;color:#9ce2bd}@media(max-width:1050px){.reconciliation-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.reconciliation-form{grid-template-columns:1fr}.reconciliation-form .wide{grid-column:auto}}
.reconciliation-allocations{display:grid;gap:8px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.reconciliation-allocation-row{display:grid!important;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:12px!important;padding:7px 0;border-bottom:1px solid var(--line)}.reconciliation-allocation-row:last-of-type{border-bottom:0}.reconciliation-allocation-row span{color:var(--text);font-size:12px}.reconciliation-allocations>small{color:var(--muted)}@media(max-width:650px){.reconciliation-allocation-row{grid-template-columns:1fr}}
.reconciliation-detail-table{margin-top:12px;overflow:auto;border:1px solid var(--line);border-radius:10px}.reconciliation-detail-table table{min-width:760px;margin:0}.reconciliation-detail-table th,.reconciliation-detail-table td{padding:10px 12px}.reconciliation-correction{margin-top:12px}.reconciliation-correction summary{cursor:pointer;color:var(--blue);font-weight:800}.reconciliation-correction form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;margin-top:10px;padding:12px;border:1px solid #efcaca;border-radius:10px;background:#fff8f8}.reconciliation-correction label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}html[data-theme="dark"] .reconciliation-correction form{background:#301d1d;border-color:#704040}@media(max-width:650px){.reconciliation-correction form{grid-template-columns:1fr}}
.expense-edit-form{margin:0 0 18px;padding:16px;border:2px solid #7cb7ef;border-radius:12px;background:#f4f9ff}.expense-edit-form .panel-title{margin-bottom:12px}.expense-edit-form h3{margin:0 0 4px}.expense-edit-form .expense-row{background:#fff}html[data-theme="dark"] .expense-edit-form{background:#15263a;border-color:#3f86c5}html[data-theme="dark"] .expense-edit-form .expense-row{background:#172536}
.reconciliation-anchor{display:block;position:relative;top:-12px}.reconciliation-anchor:target+article{outline:3px solid rgba(22,132,231,.35);box-shadow:0 0 0 7px rgba(22,132,231,.1),var(--shadow)}.button.compact{padding:.45rem .65rem;font-size:.75rem;white-space:nowrap}
.assignment-tag{display:inline-flex;margin-left:.45rem;padding:.15rem .45rem;border-radius:999px;background:#e6f7ef;color:#087f5b;font-size:.72rem;font-style:normal;font-weight:800;vertical-align:middle}.document-option.automatic-assignment{background:#f7fbff}.document-option.automatic-assignment input{accent-color:#0b7dda}
.draft-edit-link,.draft-delete-form{display:inline-block;margin:3px 5px 3px 0}.draft-delete-form{vertical-align:middle}
.credit-breakdown details{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px}.credit-breakdown summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;color:var(--primary)}.credit-breakdown details>p{margin:12px 0}.credit-breakdown table{min-width:900px}
/* v1.46.0 · emisión electrónica de notas de crédito */
.credit-settings summary{cursor:pointer;color:var(--primary);margin-bottom:14px}.credit-note-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.credit-note-grid label,.credit-invoice-picker label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.credit-note-grid .wide{grid-column:span 2}.credit-note-grid .check{display:flex;align-items:center;gap:8px}.credit-note-grid .check input{width:auto}.credit-invoice-picker{display:grid;grid-template-columns:minmax(300px,1fr) auto;gap:12px;align-items:end}.credit-quantity{width:130px;text-align:right}.credit-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e8eef7;color:#42546a;font-size:10px;font-weight:850}.credit-status.status-authorized{background:#dcfce7;color:#166534}.credit-status.status-rejected{background:#fee2e2;color:#991b1b}.credit-status.status-xml_generated{background:#dbeafe;color:#1d4ed8}@media(max-width:850px){.credit-note-grid{grid-template-columns:1fr 1fr}.credit-note-grid .wide{grid-column:1/-1}.credit-invoice-picker{grid-template-columns:1fr}}@media(max-width:520px){.credit-note-grid{grid-template-columns:1fr}.credit-note-grid .wide{grid-column:auto}}
.sri-result-row td{padding:0 1rem 1rem}.sri-response{border-radius:10px;padding:.85rem 1rem;background:#edf9f3;color:#13784b}.sri-response.error{background:#fff0f0;color:#b42318}.sri-response p{margin:.3rem 0 0}.sri-response pre{margin:.45rem 0 0;white-space:pre-wrap;font:inherit;color:inherit}
.credit-status.status-received{background:#d1fae5;color:#047857}.credit-status.status-returned,.credit-status.status-not_authorized{background:#fee2e2;color:#991b1b}.credit-status.status-signed{background:#ede9fe;color:#6d28d9}
.readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:14px 0}.readiness-grid .info-card{margin:0}.readiness-grid .info-card p{margin:6px 0 0}
.quotation-head{grid-template-columns:minmax(320px,2fr) minmax(160px,1fr) minmax(160px,1fr)}
.quotation-actions{display:flex;gap:18px;align-items:center;justify-content:space-between;margin:16px 0}.quotation-actions .sales-tax-totals{margin:0}.inline-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-actions form{margin:0}.quotation-actions+.field-note{margin-top:0}
#quotation-lines input,#quotation-lines select{min-width:88px}#quotation-lines td:first-child select{min-width:280px}#quotation-lines td:nth-child(2) input{min-width:210px}#quotation-lines small.fiscal{display:block;margin-top:4px}
@media(max-width:900px){.quotation-head{grid-template-columns:1fr}.quotation-actions{align-items:stretch;flex-direction:column}.quotation-actions .sales-tax-totals{width:100%}#quotation-lines td:first-child select,#quotation-lines td:nth-child(2) input{min-width:190px}}

/* v1.58.1 · Plan de cuentas */
.accounting-chart-filters{grid-template-columns:minmax(210px,1.4fr) repeat(4,minmax(150px,1fr));align-items:end}.accounting-chart-table .account-name{display:block}.accounting-chart-table tr.account-level-1 td:nth-child(2),.accounting-chart-table tr.account-level-2 td:nth-child(2),.accounting-chart-table tr.account-level-3 td:nth-child(2){font-weight:800}.accounting-chart-table tr.account-level-1{background:rgba(24,78,132,.08)}.accounting-chart-table tr.account-level-2{background:rgba(24,78,132,.045)}.accounting-chart-table tr.account-duplicate{box-shadow:inset 4px 0 #b45309}.duplicate-label{display:block;color:#b45309;font-weight:800;margin-top:3px}.inline-editor summary{cursor:pointer;color:#0869c8;font-weight:700}.account-edit-form{min-width:520px;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;padding:14px;background:var(--panel,#fff);border:1px solid var(--border,#dce4ef);border-radius:12px}.account-edit-form label{display:grid;gap:5px}.account-edit-form .check{display:flex;align-items:center;gap:8px}.account-edit-form button{align-self:end}@media(max-width:900px){.accounting-chart-filters{grid-template-columns:1fr 1fr}.account-edit-form{min-width:0;grid-template-columns:1fr}}

/* v1.58.2 · Plan de cuentas jerárquico */
.accounting-chart-heading{align-items:flex-end}.accounting-tree-actions{display:flex;gap:8px;flex-wrap:wrap}.accounting-tree-actions button{width:auto;margin:0;white-space:nowrap}.accounting-chart-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(24,78,132,.035);color:var(--muted);font-size:11px}.accounting-chart-summary b{color:var(--text)}.accounting-chart-summary .search-context{margin-left:auto;color:#1769bd;font-weight:700}.accounting-chart-scroll{max-height:calc(100vh - 330px);min-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px}.accounting-chart-table{margin:0}.accounting-chart-table thead th{position:sticky;top:0;z-index:4;background:#f4f7fb;box-shadow:0 1px 0 var(--line)}.accounting-chart-table td,.accounting-chart-table th{padding-top:8px;padding-bottom:8px}.accounting-chart-table tr[hidden]{display:none}.account-tree-name{display:flex;align-items:flex-start;gap:5px;padding-left:calc(var(--account-depth) * 16px);min-width:260px}.account-tree-toggle{flex:0 0 23px;width:23px;height:23px;min-height:23px;padding:0;border:0;border-radius:5px;background:transparent;color:#1769bd;font-size:10px;line-height:23px;box-shadow:none}.account-tree-toggle:hover{background:rgba(23,105,189,.09)}.account-tree-spacer{flex:0 0 23px;width:23px}.accounting-chart-table .account-name{padding-top:2px;line-height:1.35}.accounting-chart-table tr.account-title .account-name{font-weight:800}.accounting-chart-table tr.account-movement .account-name{font-weight:500}.accounting-chart-table tr.account-level-1{background:rgba(24,78,132,.11)}.accounting-chart-table tr.account-level-2{background:rgba(24,78,132,.065)}.accounting-chart-table tr.account-level-3{background:rgba(24,78,132,.035)}.accounting-chart-table tr.account-search-match td:nth-child(2){box-shadow:inset 3px 0 #1769bd}.accounting-chart-table .status-pill{white-space:nowrap}.accounting-chart-panel .table-scroll-floating{display:none!important}html[data-theme="dark"] .accounting-chart-table thead th{background:#1b2a3d}html[data-theme="dark"] .accounting-chart-summary{background:rgba(143,200,255,.05)}html[data-theme="dark"] .accounting-chart-table tr.account-level-1{background:rgba(143,200,255,.09)}html[data-theme="dark"] .accounting-chart-table tr.account-level-2{background:rgba(143,200,255,.055)}html[data-theme="dark"] .accounting-chart-table tr.account-level-3{background:rgba(143,200,255,.03)}
@media(max-width:900px){.accounting-chart-heading{align-items:flex-start;flex-direction:column}.accounting-tree-actions{width:100%}.accounting-tree-actions button{flex:1}.accounting-chart-scroll{max-height:65vh}.accounting-chart-summary .search-context{margin-left:0;width:100%}}

/* v1.59.0 · Asientos contables */
.accounting-entry-kpis{margin-bottom:18px}.accounting-entry-editor>summary{font-weight:800;cursor:pointer}.accounting-entry-form{display:grid;gap:16px;margin-top:16px}.accounting-entry-head{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(320px,2fr);gap:12px}.accounting-entry-head .wide{grid-column:auto}.accounting-lines-wrap{overflow:auto;border:1px solid #d9e4f1;border-radius:12px}.accounting-lines{min-width:980px;margin:0;table-layout:fixed}.accounting-lines thead{position:static!important;inset:auto!important;z-index:auto!important}.accounting-lines thead th{position:static!important;white-space:nowrap}.accounting-lines tbody td{padding-top:10px;padding-bottom:10px}.accounting-lines select,.accounting-lines input{width:100%;min-width:0}.accounting-lines th:nth-child(1){width:34%}.accounting-lines th:nth-child(2){width:32%}.accounting-lines th:nth-child(3),.accounting-lines th:nth-child(4){width:13%}.accounting-lines th:nth-child(5){width:8%}.accounting-lines td{vertical-align:middle}.accounting-lines .entry-amount{text-align:right}.entry-remove-line{min-width:38px;padding:8px 10px}.accounting-entry-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.accounting-entry-actions form{margin:0}.accounting-entry-meta{display:flex;gap:18px;flex-wrap:wrap;padding:12px 0 16px;color:#52647c}.accounting-entry-filters{grid-template-columns:minmax(260px,1.5fr) 180px 170px 170px auto}.status-publicado{background:#e4f6ec!important;color:#087a48!important}.status-borrador{background:#e7f2ff!important;color:#176bc1!important}.status-cancelado{background:#fdebea!important;color:#a8362d!important}.accounting-entry-detail tfoot th{border-top:2px solid #9fb1c6}.accounting-entry-detail .panel-title{align-items:flex-start}
@media(max-width:1100px){.accounting-entry-head{grid-template-columns:1fr 1fr}.accounting-entry-head .wide{grid-column:1/-1}.accounting-entry-filters{grid-template-columns:1fr 1fr}}

/* v1.59.2 - correo saliente y envío de documentos */
.mail-settings-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;align-items:end}
.mail-settings-form .check-option{align-self:end;min-height:42px}
.mail-test-form{margin-top:16px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}
/* v1.59.3 - modal de correo centrado fuera del flujo visual de la tabla */
.quotation-email-action{position:static;display:inline-block}
.quotation-email-action>summary{list-style:none;cursor:pointer;white-space:nowrap}
.quotation-email-action>summary::-webkit-details-marker{display:none}
.quotation-email-action[open]::before{content:"";position:fixed;inset:0;z-index:9998;background:rgba(15,23,42,.42);backdrop-filter:blur(1px)}
.quotation-email-action[open] .quotation-email-form{display:grid}
.quotation-email-form{position:fixed;z-index:9999;left:50%;top:50%;right:auto;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;padding:20px;background:var(--panel,#fff);border:1px solid var(--border,#d8dee8);border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.3);gap:12px;text-align:left}
.quotation-email-form label{display:grid;gap:6px;font-weight:600}
.quotation-email-form input,.quotation-email-form textarea{width:100%}
.quotation-email-form textarea{min-height:120px;resize:vertical}
@media(max-width:900px){.mail-settings-form{grid-template-columns:1fr 1fr}.quotation-email-form{width:min(94vw,520px);max-height:88vh}}
@media(max-width:560px){.mail-settings-form{grid-template-columns:1fr}}

/* v1.59.4 · gestión completa del plan de cuentas */
.chart-management-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin:14px 0 18px}.chart-management-card{border:1px solid #d9e4f2;border-radius:12px;background:#f8fbff;padding:0}.chart-management-card>summary{cursor:pointer;padding:14px 16px;font-weight:800;color:#073a6b;list-style:none}.chart-management-card>summary::-webkit-details-marker{display:none}.chart-management-card[open]>summary{border-bottom:1px solid #d9e4f2}.chart-create-form,.chart-import-form{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chart-create-form label,.chart-import-form label{display:flex;flex-direction:column;gap:6px;font-weight:700}.chart-create-form label:nth-child(4),.chart-import-form label,.chart-import-form p{grid-column:1/-1}.chart-create-form small,.chart-import-form p{font-weight:400;color:#65758b;line-height:1.45}.chart-create-form .check{flex-direction:row;align-items:center}.chart-create-form button,.chart-import-form button{justify-self:start}.chart-import-form{grid-template-columns:1fr}@media(max-width:900px){.chart-management-grid{grid-template-columns:1fr}.chart-create-form{grid-template-columns:1fr}.chart-create-form label{grid-column:1/-1}}

/* v1.59.5 · selector buscable de cuentas de movimiento */
.movement-account-picker{position:relative}.movement-account-search{padding-right:34px}.movement-account-results{position:absolute;z-index:1200;left:0;right:0;top:calc(100% + 5px);max-height:300px;overflow:auto;background:var(--surface,#fff);border:1px solid #cfdceb;border-radius:10px;box-shadow:0 12px 30px rgba(24,45,75,.18);padding:6px}.movement-account-option{display:grid!important;grid-template-columns:auto 1fr;gap:8px;width:100%;text-align:left;background:transparent!important;color:inherit!important;border:0!important;border-radius:7px!important;padding:8px 10px!important;box-shadow:none!important;font-weight:400!important}.movement-account-option b{white-space:nowrap;color:#0b5eaa}.movement-account-option span{overflow:hidden;text-overflow:ellipsis}.movement-account-option:hover,.movement-account-option.active{background:#eaf4ff!important}.movement-account-empty{padding:10px;color:#6b7c93;font-size:13px}.accounting-lines-wrap{overflow:visible}.accounting-entry-editor{overflow:visible}.accounting-entry-form{overflow:visible}
@media(max-width:1100px){.accounting-lines-wrap{overflow-x:auto;overflow-y:visible}.movement-account-results{min-width:360px}}
.retention-kpis{margin-bottom:16px}.retention-edit-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;margin:14px 0;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.retention-edit-card>div,.retention-edit-card .wide{grid-column:1/-1}.retention-edit-card label{display:flex;flex-direction:column;gap:6px}.retention-catalog-table td:nth-child(3),.retention-catalog-table td:nth-child(4){white-space:normal;min-width:260px}.retention-catalog-table td:nth-child(4){max-width:420px}@media(max-width:900px){.retention-edit-card{grid-template-columns:1fr}}

/* v1.59.8 · respaldos y origen de asientos */
.accounting-support-upload{margin:12px 0 14px;padding:12px 14px;border:1px dashed #cbd8e8;border-radius:10px;background:#f8fbff}.accounting-support-upload label{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-weight:700}.accounting-support-upload input[type=file]{max-width:100%;font-weight:400}.accounting-support-upload small{display:block;margin-top:6px;color:#64748b}.accounting-attachments{margin:14px 0}.accounting-attachments h3{margin:0 0 8px;font-size:14px}.accounting-attachment-list{display:grid;gap:8px}.accounting-attachment{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #d9e3ef;border-radius:10px;background:#f8fbff}.accounting-attachment small{display:block;margin-top:3px;color:#64748b}.accounting-attachment-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.accounting-attachment-actions form{margin:0}.accounting-no-support{margin:10px 0 14px}.accounting-source-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;letter-spacing:.02em;background:#eef2f7;color:#475569}.source-compras{background:#e0f2fe;color:#075985}.source-ventas{background:#dcfce7;color:#166534}.source-bancos{background:#ede9fe;color:#5b21b6}.source-ajustes{background:#fef3c7;color:#92400e}.source-manual{background:#e2e8f0;color:#334155}.accounting-entry-filters{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(130px,.8fr)) auto}@media(max-width:900px){.accounting-attachment{align-items:flex-start;flex-direction:column}.accounting-entry-filters{grid-template-columns:1fr 1fr}}


/* v1.60.0 - Contabilizacion de compras */
.purchase-accounting-block{margin:18px 0;padding:18px;border:1px solid var(--border,#dce5ef);border-radius:14px;background:var(--surface,#fff)}
.purchase-accounting-block .panel-title{margin-bottom:12px}.purchase-accounting-block h3{margin:2px 0 4px}.purchase-accounting-summary{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px}.purchase-accounting-summary span{padding:8px 12px;border:1px solid var(--border,#dce5ef);border-radius:10px;background:rgba(27,124,225,.04)}
.purchase-accounting-lines{min-width:900px}.purchase-accounting-lines td:nth-child(1){min-width:310px}.purchase-accounting-lines td:nth-child(2){min-width:320px}.purchase-accounting-lines .entry-amount{min-width:120px;text-align:right}.purchase-accounting-form .form-actions{display:flex;gap:12px;align-items:center;margin-top:12px}.purchase-accounting-form .form-actions small{color:var(--muted,#64748b)}

/* v1.60.1 · reverso de contabilización de compras */
.purchase-accounting-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.purchase-accounting-actions small{color:var(--muted,#64748b);max-width:760px}.purchase-accounting-history{margin-top:16px}.purchase-accounting-history h4{margin:0 0 8px}.notice.warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.purchase-retention-card{margin-top:16px}.retention-header-grid{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(240px,1fr) minmax(320px,1.7fr);gap:12px;margin:14px 0}.purchase-retention-lines th,.purchase-retention-lines td{vertical-align:top}.retention-code-picker{position:relative;min-width:300px}.retention-code-results{position:absolute;left:0;right:0;top:100%;z-index:40;max-height:280px;overflow:auto;background:#fff;border:1px solid #d8e2ef;border-radius:10px;box-shadow:0 10px 24px rgba(15,40,70,.14)}.retention-code-results .movement-account-option small{display:block;font-size:11px;color:#6c7d92}.retention-rule{display:block;margin-top:4px;color:#66768b}.purchase-retention-history{margin-top:12px}@media(max-width:900px){.retention-header-grid{grid-template-columns:1fr}.retention-code-picker{min-width:220px}}


/* v1.62.6 · pagos de compras y tablas anchas */
.payment-ledger{grid-template-columns:minmax(420px,.9fr) minmax(620px,1.5fr);align-items:stretch}
.payment-ledger>article{min-width:0}
.payment-ledger .table-wrap{width:100%;max-width:100%;overflow:auto}
.payment-ledger table{min-width:760px}
.payment-ledger th,.payment-ledger td{white-space:nowrap}
.payment-ledger td:nth-child(5){white-space:normal;min-width:260px}
.payment-entry label small{display:block;margin-top:5px;color:var(--muted,#64748b);font-weight:400;line-height:1.35}
.purchase-accounting-lines .movement-account-search:not(:placeholder-shown){font-weight:700;color:var(--text)}
.table-scroll-floating.table-scroll-docked{height:18px;border-radius:9px;background:var(--surface,#fff);border:1px solid var(--line,#d8e2ef)}
.table-scroll-floating.table-scroll-docked::-webkit-scrollbar{height:14px}
@media(max-width:1050px){.payment-ledger{grid-template-columns:1fr}.payment-ledger table{min-width:700px}}

/* v1.62.7 · creación jerárquica de cuentas contables */
.chart-management-import-only{grid-template-columns:minmax(320px,680px)}
.chart-new-account-card{margin:14px 0 18px;padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(23,105,189,.035)}
.chart-new-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.chart-new-account-head h3{margin:2px 0 4px}.chart-new-account-head p{margin:0;color:var(--muted)}
.chart-tree-create-form{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:12px;align-items:end}.chart-tree-create-form label{display:grid;gap:6px;font-weight:700}.chart-tree-create-form small{font-weight:400;color:var(--muted)}.chart-tree-create-form .check{display:flex;align-items:center;gap:8px}.chart-tree-create-form button{width:auto;justify-self:start}.chart-inherited-data{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.chart-inherited-data span{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px}
.chart-row-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.chart-add-child{font-weight:800;color:#0869c8;text-decoration:none}.chart-add-child:hover{text-decoration:underline}
@media(max-width:900px){.chart-tree-create-form{grid-template-columns:1fr}.chart-inherited-data{grid-column:1}.chart-new-account-head{flex-direction:column}.chart-row-actions{align-items:flex-start;flex-direction:column;gap:5px}}

/* v1.62.8 · mejora visual global / densidad cómoda */
:root{
  --sidebar-width:286px;
  --ui-font-size:15.5px;
  --ui-small:13px;
}
html{font-size:16px}
body{font-size:var(--ui-font-size);line-height:1.5;letter-spacing:.002em}
aside.app-sidebar{width:var(--sidebar-width);padding:22px 17px}
.logo-row{padding:4px 12px 22px;margin-bottom:18px}.logo-row img{width:205px;max-width:100%}
.content{margin-left:var(--sidebar-width);padding-left:34px;padding-right:34px;max-width:1840px}
.content>header{margin-left:-34px;margin-right:-34px;padding:22px 34px 20px}
.content>header h1{font-size:29px;line-height:1.18;margin-bottom:5px}.content>header .eyebrow{font-size:11px}.content>header .muted{font-size:14px}

/* Navegación principal y submenús */
.module-navigation{gap:9px!important}
.module-navigation .nav-home{padding:11px 13px;font-size:14.5px;border-radius:10px}
.nav-module{border-radius:12px}
.nav-module summary{padding:12px 13px;font-size:14px;line-height:1.3}
.nav-submenu{gap:4px;padding:1px 7px 8px}
.nav-submenu a{padding:10px 10px!important;font-size:13.5px!important;line-height:1.3;border-radius:9px!important}
.nav-submenu a .ui-icon{width:17px;height:17px;flex-basis:17px}
.nav-disabled{padding:10px;font-size:12.5px}
.app-sidebar .user{font-size:13px;padding:13px}.help-link{font-size:13px!important}

/* Contenedores, paneles y jerarquía */
.panel{padding:24px;border-radius:15px}.panel-title h2,.panel h2{font-size:20px}.panel h3,.detail-card h3{font-size:18px}
.section-kicker,.eyebrow{font-size:11.5px}.muted,.panel-title p{font-size:14px;line-height:1.5}
.kpis{gap:18px}.kpis article{padding:21px 22px;min-height:112px}.kpis article>span,.kpi-head>span{font-size:13px}.kpis strong{font-size:30px}
.attention-strip>div{padding:19px 21px}.attention-strip b{font-size:13px}.attention-strip strong{font-size:22px}.attention-strip small{font-size:12px}

/* Formularios */
label{font-size:14px;gap:8px}
input,select,textarea{font-size:15px;min-height:44px;padding:11px 13px;border-radius:9px}
textarea{line-height:1.5}
button,.button,.secondary{font-size:14px;min-height:42px;padding:10px 16px;border-radius:9px}
.filters{padding:17px;gap:13px}.filters label{font-size:12.5px}.filters input,.filters select{font-size:14px;min-height:42px}
.notice,.alert{font-size:14px;line-height:1.55;padding:12px 14px}

/* Tablas: texto y altura de fila más legibles */
table{font-size:14px;line-height:1.42}
th{padding:13px 14px;font-size:11px;letter-spacing:.045em}td{padding:14px 14px}
.detail-link,.ride-link,.pdf-download,.xml-download{font-size:13px;padding:7px 10px}
.doc-type,.cxp-status,.project-status,.sync-status,.bank-match,.status-pill{font-size:11px;padding:5px 9px}
.empty{font-size:14px;padding:42px!important}

/* Plan de cuentas */
.accounting-chart-summary{font-size:13px;padding:12px 14px}.accounting-chart-table td,.accounting-chart-table th{padding-top:10px;padding-bottom:10px}
.account-tree-name{min-width:300px;gap:7px}.accounting-chart-table .account-name{font-size:14px;line-height:1.45}.chart-row-actions{gap:12px}.chart-add-child,.inline-editor summary{font-size:13px}
.account-tree-toggle{width:27px;height:27px;min-height:27px;line-height:27px;font-size:11px}.account-tree-spacer{width:27px;flex-basis:27px}

/* Compras, pagos y tablas de detalle */
.purchase-accounting-summary span{font-size:14px;padding:9px 13px}.purchase-accounting-lines td:nth-child(1){min-width:340px}.purchase-accounting-lines td:nth-child(2){min-width:350px}
.payment-ledger{gap:20px}.payment-ledger>article{padding:20px}.payment-ledger h3{font-size:18px}.payment-balance{font-size:14px;gap:13px}.payment-balance strong{font-size:15px}

/* Tarjetas y reportes extensos */
.info-card,.detail-card{border-radius:14px}.dashboard-toolbar h2{font-size:24px}.ranking span,.ranking strong{font-size:14px}.ranking small{font-size:11px}

/* Scroll horizontal flotante: más visible */
.table-scroll-floating.table-scroll-docked{height:22px;border-radius:10px;box-shadow:0 4px 16px rgba(15,35,60,.12)}
.table-scroll-floating.table-scroll-docked::-webkit-scrollbar{height:17px}

/* Pantallas medianas: conservar legibilidad sin perder área útil */
@media(max-width:1280px){
  :root{--sidebar-width:266px;--ui-font-size:15px}
  .content{padding-left:26px;padding-right:26px}.content>header{margin-left:-26px;margin-right:-26px;padding-left:26px;padding-right:26px}
  .nav-module summary{font-size:13.5px}.nav-submenu a{font-size:13px!important}
}
@media(max-width:1100px){
  :root{--sidebar-width:250px}
  .content{padding-left:22px;padding-right:22px}.content>header{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}
}
@media(max-width:760px){
  body{font-size:15px}.content{margin-left:0;padding:82px 14px 28px}.content>header{margin:0 -14px 18px;padding:14px}.content>header h1{font-size:23px}
  .panel{padding:17px}.nav-module summary{font-size:14px}.nav-submenu a{font-size:13.5px!important}
}

/* v1.62.9 · densidad optimizada, tablas compactas y login ejecutivo */
:root{
  --sidebar-width:250px;
  --ui-font-size:14.5px;
}
html{font-size:15px}
body{font-size:var(--ui-font-size);line-height:1.42}
aside.app-sidebar{width:var(--sidebar-width);padding:18px 14px}
.logo-row{padding:2px 10px 18px;margin-bottom:12px}.logo-row img{width:184px}
.content{margin-left:var(--sidebar-width);padding:24px 24px 30px;max-width:none;width:auto}
.content>header{margin:-24px -24px 20px;padding:18px 24px 16px}
.content>header h1{font-size:27px}.content>header .muted{font-size:13px}
.module-navigation{gap:7px!important}.module-navigation .nav-home{padding:10px 11px;font-size:13.5px}
.nav-module summary{padding:10px 11px;font-size:13px}.nav-submenu{padding:0 6px 6px}.nav-submenu a{padding:8px 9px!important;font-size:12.5px!important}
.app-sidebar .user{padding:11px;margin-top:14px}.help-link{font-size:12.5px!important}
.panel{padding:20px;border-radius:14px}.panel-title h2,.panel h2{font-size:19px}.panel h3,.detail-card h3{font-size:17px}
.muted,.panel-title p{font-size:13px}.kpis{gap:14px}.kpis article{padding:17px 18px;min-height:98px}.kpis strong{font-size:27px}.kpis article>span,.kpi-head>span{font-size:12px}
.filters{padding:14px;gap:10px}.filters label{font-size:11.5px}.filters input,.filters select{font-size:13px;min-height:39px;padding:9px 10px}
label{font-size:13px}input,select,textarea{font-size:14px;min-height:40px;padding:9px 11px}button,.button,.secondary{font-size:13px;min-height:39px;padding:9px 14px}

/* Tablas compactas: aprovechar el ancho antes de activar desplazamiento */
.table-wrap{max-width:100%}
table{font-size:12.5px;line-height:1.32;width:100%}
th{padding:9px 8px;font-size:9.5px;letter-spacing:.035em;white-space:nowrap}td{padding:9px 8px}
th:first-child,td:first-child{padding-left:10px}th:last-child,td:last-child{padding-right:10px}
.detail-link,.ride-link,.pdf-download,.xml-download{font-size:11.5px;padding:5px 7px}.doc-type,.cxp-status,.project-status,.sync-status,.bank-match,.status-pill{font-size:9.5px;padding:4px 7px}
.accounting-chart-table{min-width:980px}.accounting-chart-table th,.accounting-chart-table td{padding-left:7px;padding-right:7px}.accounting-chart-table th:nth-child(1){width:110px}.accounting-chart-table th:nth-child(3){width:55px}.accounting-chart-table th:nth-child(4){width:88px}.accounting-chart-table th:nth-child(5){width:96px}.accounting-chart-table th:nth-child(7){width:90px}.accounting-chart-table th:last-child{width:175px}.account-tree-name{min-width:230px}.accounting-chart-table .account-name{font-size:12.5px}.chart-row-actions{gap:7px}.chart-add-child,.inline-editor summary{font-size:11.5px}.account-tree-toggle{width:23px;height:23px;min-height:23px;line-height:23px}.account-tree-spacer{width:23px;flex-basis:23px}
.purchase-accounting-lines{min-width:760px}.purchase-accounting-lines td:nth-child(1){min-width:245px}.purchase-accounting-lines td:nth-child(2){min-width:270px}.purchase-accounting-lines .entry-amount{min-width:100px}
.payment-ledger table{min-width:650px}.payment-ledger td:nth-child(5){min-width:190px}
.row-actions{gap:5px}.detail-actions{gap:5px}
.table-scroll-floating.table-scroll-docked{height:17px}.table-scroll-floating.table-scroll-docked::-webkit-scrollbar{height:13px}

/* Inicio: menos ruido y mejor jerarquía visual */
.view-resumen .dashboard-toolbar{padding:2px 0 4px;margin-bottom:14px}.view-resumen .dashboard-toolbar h2{font-size:23px;margin-bottom:4px}
.view-resumen .attention-strip{margin-bottom:14px}.view-resumen .attention-strip>div{padding:15px 17px}.view-resumen .attention-strip strong{font-size:20px}.view-resumen .attention-strip small{font-size:11px}
.view-resumen .dashboard-insights,.view-resumen .dashboard-balance,.view-resumen .rankings-grid{gap:14px;margin-bottom:14px}.view-resumen .ranking{padding:9px 0}.view-resumen .attention-table{margin-top:14px}

/* Login ejecutivo inspirado en la referencia, con identidad NETSOLSA */
.login-page{min-height:100vh;display:block;background:#fff}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(430px,46%) minmax(430px,54%)}
.login-brand-panel{position:relative;display:flex;min-height:100vh;flex-direction:column;padding:48px 64px 36px;overflow:hidden;color:#fff;background:linear-gradient(150deg,#052f5a 0%,#0b4f91 58%,#0d67b4 100%)}
.login-brand-panel:before,.login-brand-panel:after{content:"";position:absolute;inset:auto -15% 16% -15%;height:1px;background:rgba(255,255,255,.08);transform:rotate(-28deg)}.login-brand-panel:after{bottom:32%;transform:rotate(-28deg)}
.login-brand-top{position:relative;z-index:1;display:grid;gap:9px}.login-brand-logo{width:190px;filter:brightness(0) invert(1)}.login-brand-top span{color:#b9d4ea;font-size:12px;font-weight:700}
.login-brand-copy{position:relative;z-index:1;margin:auto 0;max-width:570px}.login-brand-copy .eyebrow{color:#9dd6ff}.login-brand-copy h1{margin:12px 0 18px;font-size:43px;line-height:1.12;font-weight:650}.login-brand-copy h1 strong{color:#82c7ff;font-weight:750}.login-brand-copy>p{max-width:500px;color:#d7e9f7;font-size:16px;line-height:1.65}
.login-benefits{display:grid;gap:17px;margin-top:34px}.login-benefits article{display:flex;align-items:flex-start;gap:14px}.login-benefits article>span{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.08);color:#8ed2ff;font-size:11px;font-weight:900}.login-benefits b,.login-benefits small{display:block}.login-benefits b{font-size:14px}.login-benefits small{margin-top:3px;color:#b8d0e3;font-size:12.5px;line-height:1.45}.login-brand-foot{position:relative;z-index:1;color:#8db0cd;font-size:11px}
.login-form-panel{display:grid;place-items:center;padding:40px 54px;background:#fff}.login-form-panel .login-card{width:min(500px,100%);padding:0;border:0;border-radius:0;box-shadow:none}.login-form-panel .login-logo{width:155px!important;margin:0 auto 24px}.login-form-panel .eyebrow{text-align:center}.login-form-panel h2{margin:5px 0 7px;text-align:center;font-size:30px}.login-form-panel .login-card>.muted{text-align:center;font-size:14px}.login-form-panel form{gap:18px;margin:30px 0 24px}.login-form-panel label{font-size:13px}.login-form-panel input{min-height:49px;font-size:14px;border-radius:10px}.login-form-panel button{min-height:49px;font-size:15px;border-radius:10px}.login-security{margin-top:8px;padding:17px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.5}.login-meta{padding-top:13px;font-size:11px}
@media(max-width:1050px){.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh;padding:28px}.login-form-panel .login-card{max-width:480px}}

/* En escritorio no convertir el menú en dos columnas; conservar navegación vertical. */
@media(min-width:761px){.app-sidebar .nav-groups{grid-template-columns:1fr!important}}
@media(max-width:1280px) and (min-width:761px){:root{--sidebar-width:232px}.content{padding-left:20px;padding-right:20px}.content>header{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.logo-row img{width:170px}.nav-module summary{font-size:12.5px}.nav-submenu a{font-size:12px!important}}

/* v1.62.10 · corrección responsive: sidebar fijo en escritorio y tablets anchas */
@media (min-width:761px) and (max-width:1280px){
  aside.app-sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:var(--sidebar-width)!important;
    height:100vh!important;
    max-height:100vh!important;
    overflow-y:auto!important;
  }
  .app-sidebar .nav-groups{grid-template-columns:1fr!important}
  .content{
    width:auto!important;
    margin-left:var(--sidebar-width)!important;
    padding:20px 20px 30px!important;
  }
  .content>header{
    position:sticky!important;
    top:0!important;
    margin:-20px -20px 20px!important;
    padding:16px 20px 14px!important;
  }
  .filters{position:sticky!important}
  .period{width:auto!important;justify-items:end!important}
  .period-scope{overflow-x:visible!important}
  .cxp-detail-panel .table-wrap{overflow:auto!important;border:1px solid var(--line)!important}
  .cxp-responsive-table{display:table!important;min-width:1420px!important;width:100%!important}
  .cxp-responsive-table thead{display:table-header-group!important}
  .cxp-responsive-table tbody{display:table-row-group!important}
  .cxp-responsive-table tr{display:table-row!important;padding:0!important;border:0!important;background:transparent!important}
  .cxp-responsive-table td{display:table-cell!important;padding:9px 8px!important;border-bottom:1px solid var(--line)!important}
  .cxp-responsive-table td:before{content:none!important}
}


/* v1.62.12 · administración de cuentas bancarias */
.bank-management-panel .panel-title{align-items:flex-start}.bank-row-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.bank-row-actions form{margin:0}.bank-row-actions .button,.bank-row-actions button{white-space:nowrap}.bank-master-form{grid-template-columns:repeat(3,minmax(180px,1fr));align-items:end}.bank-account-editor{scroll-margin-top:90px}.bank-management-panel table td:nth-child(2){font-variant-numeric:tabular-nums}.bank-management-panel table td:nth-child(5){max-width:360px;white-space:normal}
@media(max-width:980px){.bank-master-form{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:640px){.bank-master-form{grid-template-columns:1fr}.bank-row-actions{align-items:stretch}.bank-row-actions .button,.bank-row-actions button{width:100%}}

/* v1.62.13 · cuentas bancarias multibanco */
.bank-account-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;margin-top:14px}
.bank-account-card{border:1px solid var(--line,#dbe5ef);border-radius:14px;padding:16px;background:#fff;display:grid;gap:12px}
.bank-account-card.selected{box-shadow:0 0 0 2px rgba(22,116,214,.12);border-color:#8fc5f4}
.bank-account-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.bank-account-card-head div{display:grid;gap:3px}.bank-account-card-head span{font-size:.88rem;color:var(--muted,#718096)}
.bank-card-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bank-card-metrics span{display:grid;gap:3px;padding:8px;background:#f7fafc;border-radius:9px}.bank-card-metrics small{font-size:.72rem}.bank-card-metrics strong{font-size:.95rem;white-space:nowrap}
.bank-account-code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--line,#e2e8f0);padding-top:13px}.bank-tabs a{padding:9px 13px;border-radius:9px;text-decoration:none;font-weight:700;color:#31516f;background:#f4f7fa}.bank-tabs a.active{background:#1674d6;color:#fff}.bank-auto-account{display:grid;gap:5px;padding:14px 16px;background:#eefaf4;border-radius:10px;margin:12px 0}.bank-auto-account span{font-size:.8rem;color:#527067}.bank-auto-account strong{font-size:1rem}.bank-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1200px){.bank-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.bank-account-cards,.bank-kpis{grid-template-columns:1fr}.bank-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.62.14 · conciliación bancaria formal */
.bank-reconciliation-account-selector{margin-top:14px;max-width:700px}.bank-reconciliation-account-selector label{min-width:360px}.reconciliation-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.reconciliation-summary-grid>div{padding:14px;border:1px solid #dce5ef;border-radius:12px;background:#f8fbfe}.reconciliation-summary-grid span{display:block;color:#66778e;font-size:.85rem;margin-bottom:5px}.reconciliation-summary-grid strong{font-size:1.15rem}.reconciliation-summary-grid .total{background:#eef8ff;border-color:#8dcdf6}.pending-bank-classification{margin:12px 0;padding:10px 12px;border:1px solid #e0e7ef;border-radius:10px;background:#fafcff}.pending-bank-classification summary{cursor:pointer;font-weight:700;color:#34506f}.pending-bank-classification .filters{margin-top:10px}@media(max-width:800px){.reconciliation-summary-grid{grid-template-columns:1fr}.bank-reconciliation-account-selector label{min-width:0}}

/* v1.62.17 */
.supplier-master-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;align-items:end}.supplier-master-form .filter-actions{display:flex;gap:8px}.inline-form{display:inline-flex;margin-left:6px}.supplier-credit-body[hidden]{display:none!important}@media(max-width:900px){.supplier-master-form{grid-template-columns:1fr}}

/* v1.62.19 · maestro de proveedores compacto y secciones contraídas */
.supplier-master-form-wrap[hidden],.supplier-credit-body[hidden]{display:none!important}
.supplier-master-form-wrap{margin-top:14px;padding:14px;border:1px solid var(--line,#dce5ef);border-radius:12px;background:#f9fbfd}
.supplier-sri-help{display:block;margin-top:9px;color:var(--muted,#6f7f91);line-height:1.45}
.supplier-master-table table{table-layout:fixed;min-width:1180px}
.supplier-master-table th:nth-child(1),.supplier-master-table td:nth-child(1){width:23%}
.supplier-master-table th:nth-child(2),.supplier-master-table td:nth-child(2){width:10%}
.supplier-master-table th:nth-child(3),.supplier-master-table td:nth-child(3){width:9%}
.supplier-master-table th:nth-child(4),.supplier-master-table td:nth-child(4){width:13%}
.supplier-master-table th:nth-child(5),.supplier-master-table td:nth-child(5){width:7%}
.supplier-master-table th:nth-child(6),.supplier-master-table td:nth-child(6){width:7%}
.supplier-master-table th:nth-child(7),.supplier-master-table td:nth-child(7){width:15%}
.supplier-master-table th:nth-child(8),.supplier-master-table td:nth-child(8){width:7%}
.supplier-master-table th:nth-child(9),.supplier-master-table td:nth-child(9){width:9%}
.supplier-name-cell b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;line-height:1.28;word-break:break-word}
.supplier-name-cell small,.supplier-cxp-cell small{white-space:normal;overflow-wrap:anywhere}.supplier-email-cell{overflow-wrap:anywhere}.supplier-cxp-cell{white-space:normal;line-height:1.3}
.supplier-credit-table table{min-width:760px}.supplier-credit-table .supplier-name-cell{max-width:330px;white-space:normal}

/* v1.62.19 · maestro de proveedores compacto y secciones contraídas */
.supplier-master-form-wrap[hidden],.supplier-credit-body[hidden]{display:none!important}
.supplier-master-form-wrap{margin-top:14px;padding:14px;border:1px solid var(--line,#dce5ef);border-radius:12px;background:#f9fbfd}
.supplier-sri-help{display:block;margin-top:9px;color:var(--muted,#6f7f91);line-height:1.45}
.supplier-master-table table{table-layout:fixed;min-width:1180px}
.supplier-master-table th:nth-child(1),.supplier-master-table td:nth-child(1){width:23%}
.supplier-master-table th:nth-child(2),.supplier-master-table td:nth-child(2){width:10%}
.supplier-master-table th:nth-child(3),.supplier-master-table td:nth-child(3){width:9%}
.supplier-master-table th:nth-child(4),.supplier-master-table td:nth-child(4){width:13%}
.supplier-master-table th:nth-child(5),.supplier-master-table td:nth-child(5){width:7%}
.supplier-master-table th:nth-child(6),.supplier-master-table td:nth-child(6){width:7%}
.supplier-master-table th:nth-child(7),.supplier-master-table td:nth-child(7){width:15%}
.supplier-master-table th:nth-child(8),.supplier-master-table td:nth-child(8){width:7%}
.supplier-master-table th:nth-child(9),.supplier-master-table td:nth-child(9){width:9%}
.supplier-name-cell b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;line-height:1.28;word-break:break-word}
.supplier-name-cell small,.supplier-cxp-cell small{white-space:normal;overflow-wrap:anywhere}.supplier-email-cell{overflow-wrap:anywhere}.supplier-cxp-cell{white-space:normal;line-height:1.3}
.supplier-credit-table table{min-width:760px}.supplier-credit-table .supplier-name-cell{max-width:330px;white-space:normal}

/* v1.62.20 · estándar global de ventanas flotantes para crear, editar y parametrizar */
html.modal-open,html.modal-open body{overflow:hidden}
.app-modal[hidden]{display:none!important}
.app-modal{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:28px;opacity:0;pointer-events:none;transition:opacity .16s ease}
.app-modal.is-open{opacity:1;pointer-events:auto}
.app-modal-backdrop{position:absolute;inset:0;background:rgba(8,25,47,.58);backdrop-filter:blur(3px)}
.app-modal-dialog{position:relative;z-index:1;width:min(720px,calc(100vw - 40px));max-height:calc(100vh - 56px);display:flex;flex-direction:column;background:var(--panel,#fff);border:1px solid var(--line,#dbe5ef);border-radius:18px;box-shadow:0 24px 70px rgba(8,25,47,.28);overflow:hidden;transform:translateY(8px) scale(.985);transition:transform .16s ease}
.app-modal.is-open .app-modal-dialog{transform:none}
.app-modal-dialog.app-modal-wide{width:min(1040px,calc(100vw - 40px))}
.app-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:22px 24px 17px;border-bottom:1px solid var(--line,#dbe5ef);background:var(--panel,#fff)}
.app-modal-header h2,.app-modal-header h3{margin:0 0 4px}.app-modal-header p{margin:4px 0 0}
.app-modal-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid var(--line,#dbe5ef);border-radius:10px;background:var(--panel,#fff);color:var(--text,#132238);font-size:25px;line-height:1;text-decoration:none;cursor:pointer}
.app-modal-close:hover{background:var(--soft,#f4f7fb)}
.app-modal-body{padding:22px 24px 24px;overflow:auto;overscroll-behavior:contain}
.app-modal-body form{margin:0}
.app-modal-body .supplier-master-form,.app-modal-body .bank-master-form,.app-modal-body .retention-edit-card,.app-modal-body .payment-add-form,.app-modal-body .chart-tree-create-form{width:100%;max-width:none}
.app-modal-body .supplier-master-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.app-modal-body .supplier-master-form .filter-actions,.app-modal-body .supplier-master-form .checkbox{grid-column:1/-1}
@media(max-width:800px){.app-modal{padding:10px}.app-modal-dialog,.app-modal-dialog.app-modal-wide{width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:14px}.app-modal-header{padding:17px 18px 14px}.app-modal-body{padding:18px}.app-modal-body .supplier-master-form{grid-template-columns:1fr}}

/* v1.62.22 · flujo por pestañas en 3.2 y secuencial de cheques */
.purchase-detail-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 14px;padding:6px;background:#eef4f9;border:1px solid var(--line,#dbe5ef);border-radius:12px;position:sticky;top:74px;z-index:22}
.purchase-detail-tabs button{border:0;background:transparent;color:#38536e;padding:10px 16px;border-radius:9px;font-weight:800;box-shadow:none}
.purchase-detail-tabs button.active{background:#1674d6;color:#fff;box-shadow:0 4px 12px rgba(22,116,214,.18)}
.purchase-tab-panel[hidden]{display:none!important}
.purchase-cheque-sequence{display:block;margin-top:6px;padding:7px 9px;border-radius:8px;background:#eef8ff;color:#155f9f;font-weight:700}
@media(max-width:700px){.purchase-detail-tabs{position:static}.purchase-detail-tabs button{flex:1 1 45%;padding:9px 10px}}

/* v1.62.23 · acceso visible al detalle de facturas de compra */
.view-comprobantes .purchase-action-cell{min-width:245px;white-space:nowrap;display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.view-comprobantes .purchase-action-cell>a{margin:0!important}
.view-comprobantes .purchase-manage-link{display:inline-flex;align-items:center;justify-content:center;padding:6px 11px;border-radius:7px;background:#1976d2;color:#fff!important;font-size:11.5px;font-weight:850;text-decoration:none!important;box-shadow:0 2px 6px rgba(25,118,210,.16)}
.view-comprobantes .purchase-manage-link:hover{background:#135fa9;color:#fff!important}
html[data-theme="dark"] .view-comprobantes .purchase-manage-link{background:#2685df;color:#fff!important}

/* v1.62.24 · gestión de compras modal, destino completo sincronizado y acciones siempre visibles */
.view-comprobantes .detail-panel{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10040;
  width:min(1480px,calc(100vw - 46px));max-height:calc(100vh - 40px);overflow:auto;
  margin:0!important;border-radius:18px;box-shadow:0 0 0 100vmax rgba(8,25,47,.58),0 24px 70px rgba(8,25,47,.30);
  overscroll-behavior:contain;background:var(--panel,#fff)
}
.view-comprobantes .detail-panel>.panel-title{position:sticky;top:0;z-index:40;background:var(--panel,#fff);padding-bottom:14px;border-bottom:1px solid var(--line,#dbe5ef)}
.view-comprobantes .detail-panel .purchase-detail-tabs{top:86px;z-index:38}
.view-comprobantes .table-wrap{position:relative}
.view-comprobantes .table-wrap>table>thead>tr>th:last-child,
.view-comprobantes .table-wrap>table>tbody>tr>td.purchase-action-cell{
  position:sticky;right:0;z-index:18;background:var(--panel,#fff);box-shadow:-10px 0 14px -13px rgba(18,39,63,.6)
}
.view-comprobantes .table-wrap>table>thead>tr>th:last-child{z-index:25;background:#eef3f8}
.view-comprobantes .purchase-action-cell{min-width:232px;max-width:232px;padding-left:10px;padding-right:10px}
.view-comprobantes .purchase-action-cell .purchase-manage-link{flex:0 0 auto}
html[data-theme="dark"] .view-comprobantes .table-wrap>table>thead>tr>th:last-child{background:#1b2a3a}
html[data-theme="dark"] .view-comprobantes .table-wrap>table>tbody>tr>td.purchase-action-cell{background:var(--panel,#132238)}
@media(max-width:800px){.view-comprobantes .detail-panel{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:12px}.view-comprobantes .detail-panel>.panel-title{position:static}.view-comprobantes .detail-panel .purchase-detail-tabs{position:static}}


/* v1.62.28 · Acciones fijas globales sin duplicar ni separar filas */
.table-wrap{
  position:relative;
  overflow-x:auto;
  overflow-y:visible;
}
.table-wrap table.has-sticky-actions{
  border-collapse:separate;
  border-spacing:0;
}
.table-wrap table.has-sticky-actions th.global-sticky-action,
.table-wrap table.has-sticky-actions td.global-sticky-action{
  position:sticky!important;
  right:0!important;
  z-index:19;
  background:var(--panel,#fff)!important;
  white-space:nowrap;
  box-shadow:-10px 0 14px -13px rgba(18,39,63,.60);
}
.table-wrap table.has-sticky-actions thead th.global-sticky-action{
  z-index:29!important;
  background:#eef3f8!important;
}
.table-wrap table.has-sticky-actions tbody tr:hover td.global-sticky-action{
  background:#f7faff!important;
}
.table-wrap table.has-sticky-actions td.global-sticky-action>a,
.table-wrap table.has-sticky-actions td.global-sticky-action>button,
.table-wrap table.has-sticky-actions td.global-sticky-action form{
  white-space:nowrap;
}
html[data-theme="dark"] .table-wrap table.has-sticky-actions thead th.global-sticky-action{
  background:#1b2a3a!important;
}
html[data-theme="dark"] .table-wrap table.has-sticky-actions tbody td.global-sticky-action{
  background:var(--panel,#132238)!important;
}
html[data-theme="dark"] .table-wrap table.has-sticky-actions tbody tr:hover td.global-sticky-action{
  background:#182a41!important;
}


/* v1.62.29 · corrección definitiva de columna Acciones dentro del scroll real */
.panel,.detail-panel,.table-wrap{min-width:0;max-width:100%}
.table-wrap{
  position:relative!important;
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
  isolation:isolate;
}
.table-wrap>table.has-sticky-actions{
  width:max-content!important;
  min-width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.table-wrap>table.has-sticky-actions th.global-sticky-action,
.table-wrap>table.has-sticky-actions td.global-sticky-action{
  display:table-cell!important;
  position:-webkit-sticky!important;
  position:sticky!important;
  right:0!important;
  left:auto!important;
  z-index:40!important;
  background:var(--panel,#fff)!important;
  background-clip:padding-box!important;
  white-space:nowrap!important;
  box-shadow:-8px 0 12px -10px rgba(18,39,63,.5)!important;
  vertical-align:middle;
}
.table-wrap>table.has-sticky-actions thead th.global-sticky-action{
  z-index:55!important;
  background:#eef3f8!important;
}
/* Un TD no debe convertirse en flex: rompe el algoritmo de tabla y el sticky. */
.view-comprobantes td.purchase-action-cell{
  display:table-cell!important;
  min-width:250px!important;
  width:250px!important;
  max-width:none!important;
  padding:8px 10px!important;
}
.view-comprobantes td.purchase-action-cell>a,
.view-comprobantes td.purchase-action-cell>button,
.view-comprobantes td.purchase-action-cell>form{
  display:inline-flex!important;
  vertical-align:middle;
  align-items:center;
  justify-content:center;
  margin:2px 4px 2px 0!important;
}
.view-comprobantes td.purchase-action-cell .detail-link{display:none!important}
html[data-theme="dark"] .table-wrap>table.has-sticky-actions thead th.global-sticky-action{background:#1b2a3a!important}
html[data-theme="dark"] .table-wrap>table.has-sticky-actions tbody td.global-sticky-action{background:var(--panel,#132238)!important}


/* v1.62.30 · gestión de notas de crédito de compras en modal */
.app-modal-dialog.app-modal-xxl{width:min(1320px,calc(100vw - 32px));max-height:calc(100vh - 32px)}
.purchase-credit-modal-body{padding:14px;overflow:auto;background:var(--page,#f4f7fb)}
.purchase-credit-modal-panel{margin:0;box-shadow:none;border-radius:14px}
.purchase-credit-modal-panel .panel-title{position:sticky;top:-14px;z-index:8;background:var(--panel,#fff);padding-top:14px}
.purchase-credit-management-modal .purchase-credit-note-block{margin-bottom:0}
@media(max-width:800px){.app-modal-dialog.app-modal-xxl{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.purchase-credit-modal-body{padding:8px}.purchase-credit-modal-panel .panel-title{top:-8px}}

/* v1.62.33 · flujo semanal de pagos + modales */

/* v1.62.33 */
.modal-action-row{display:flex;gap:12px;align-items:center}.modal-action-row>button{flex:1}.action-inline{display:flex;gap:8px;align-items:center;white-space:nowrap}.action-inline button{margin:0}.app-modal-body .notice.info{margin:4px 0 8px}.payment-status{white-space:nowrap}


/* v1.62.35 · compactación, modales contables y botones completos */
.view-registro_pagos td.other-payment-concept{width:300px;min-width:260px;max-width:340px;white-space:normal!important;vertical-align:middle}
.view-registro_pagos td.other-payment-concept>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.3;max-height:2.6em;overflow-wrap:anywhere}
.accounting-entry-view-modal .accounting-entry-detail{margin:0;box-shadow:none}
.accounting-entry-view-modal .app-modal-body{background:var(--page,#f4f7fb)}
.modal-footer-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#dbe5ef)}
.app-modal-body .filters.bank-master-form{display:grid!important;grid-template-columns:repeat(3,minmax(180px,1fr))!important;gap:16px!important;align-items:end!important}
.app-modal-body .filters.bank-master-form>button[type="submit"]{grid-column:1/-1!important;justify-self:start!important;width:auto!important;min-width:280px!important;max-width:100%!important;white-space:normal!important;line-height:1.2!important}
.app-modal-body button,.app-modal-body .button{max-width:100%;overflow-wrap:anywhere}
@media(max-width:800px){.app-modal-body .filters.bank-master-form{grid-template-columns:1fr!important}.app-modal-body .filters.bank-master-form>button[type="submit"]{min-width:0!important;width:100%!important}}

/* v1.62.35 - edición de Otros gastos en modal, sin botones cortados */
.project-expense-edit-trigger{font:inherit;cursor:pointer;border:0;background:transparent;padding:0}
.project-expense-modal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.project-expense-modal-grid label{min-width:0}
.project-expense-modal-grid input,.project-expense-modal-grid textarea,.project-expense-modal-grid select{width:100%;max-width:100%;box-sizing:border-box}
.project-expense-modal-notes{grid-column:1/-1}
.project-expense-modal-actions{margin-top:20px;position:sticky;bottom:-24px;background:var(--panel,#fff);padding:14px 0 2px;z-index:2}
.project-expense-modal-actions>button{min-width:0;width:auto;max-width:100%;white-space:normal;line-height:1.2}
@media(max-width:900px){.project-expense-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.project-expense-modal-grid{grid-template-columns:1fr}.project-expense-modal-actions{flex-direction:column}.project-expense-modal-actions>button{width:100%}}


/* v1.62.38 · Gestionar proyecto en modal principal con pestañas */
.project-management-modal .app-modal-project{
  width:min(1540px,calc(100vw - 28px));
  height:min(94vh,1040px);
  max-height:calc(100vh - 28px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.project-management-header{flex:0 0 auto}
.project-management-tabs{
  flex:0 0 auto;
  display:flex;
  gap:8px;
  padding:10px 18px;
  overflow-x:auto;
  border-bottom:1px solid var(--line,#dbe5ef);
  background:var(--panel,#fff);
}
.project-management-tabs button{
  flex:0 0 auto;
  border:1px solid transparent;
  background:transparent;
  color:var(--muted,#60738d);
  padding:10px 14px;
  border-radius:9px;
  font-weight:800;
  cursor:pointer;
}
.project-management-tabs button.active{
  color:#fff;
  background:var(--primary,#1677d2);
  border-color:var(--primary,#1677d2);
}
.project-management-body{
  min-height:0;
  overflow:auto;
  background:var(--page,#f4f7fb);
  padding:14px;
}
.project-management-content{display:block}
.project-management-content>[data-project-panel]{display:none;margin:0 0 14px}
.project-management-content>[data-project-panel].project-panel-active{display:block}
.project-management-footer{
  position:sticky;
  bottom:-14px;
  z-index:12;
  display:flex;
  justify-content:flex-end;
  padding:12px 0 2px;
  margin-top:10px;
  background:linear-gradient(to bottom,rgba(244,247,251,0),var(--page,#f4f7fb) 25%);
}
.project-management-footer .button{min-width:180px;text-align:center}
.project-management-modal .panel{box-shadow:none}
.project-management-modal .project-kpis{margin-bottom:16px}
.project-management-modal .project-expense-edit-modal{z-index:1200}
@media(max-width:760px){
  .project-management-modal .app-modal-project{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}
  .project-management-body{padding:8px}
  .project-management-tabs{padding:8px;gap:6px}
  .project-management-tabs button{padding:8px 10px}
}
\n\n/* v1.62.38 · acciones del proyecto en cabecera y contraste hover */\n.project-management-header{align-items:center!important;overflow:visible!important}\n.project-management-heading{min-width:0;flex:1 1 auto}\n.project-management-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;position:relative}\n.project-header-action-form{margin:0!important}\n.project-management-header-actions button,.project-management-header-actions summary{white-space:nowrap}\n.project-header-delete{position:relative}\n.project-header-delete>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid #e4b8bd;border-radius:9px;background:#fff;color:#a62f36;font-weight:800;box-shadow:none}\n.project-header-delete>summary::-webkit-details-marker{display:none}\n.project-header-delete>summary:hover{background:#fff1f2;color:#8b2229}\n.project-header-delete-popover{position:absolute;right:0;top:calc(100% + 10px);z-index:80;width:min(390px,calc(100vw - 48px));padding:16px;background:var(--panel,#fff);border:1px solid var(--line,#dbe5ef);border-radius:12px;box-shadow:0 18px 45px rgba(8,25,47,.22)}\n.project-header-delete-popover p{margin:0 0 12px!important;color:var(--muted,#60738d)}\n.project-header-delete-popover label{display:block;font-weight:700}\n.project-header-delete-popover input{width:100%;margin-top:7px}\n.project-header-delete-popover button{margin-top:12px;width:100%}\n.project-management-tabs button:hover,.project-management-tabs button:focus-visible{background:var(--primary,#1677d2)!important;color:#fff!important;border-color:var(--primary,#1677d2)!important}\n.project-management-tabs button.active:hover{color:#fff!important}\n.project-close-button,.project-close-button:hover,.project-close-button:focus-visible{color:#fff!important}\n.app-modal-body button:not(.secondary):not(.danger-link):hover,.app-modal-body .button:not(.secondary):hover{color:#fff}\n@media(max-width:980px){.project-management-header{align-items:flex-start!important}.project-management-header-actions{flex-wrap:wrap;max-width:55%}.project-management-header-actions .project-header-action-form button,.project-header-delete>summary{padding:8px 10px;font-size:12px}}\n@media(max-width:700px){.project-management-header{flex-direction:column}.project-management-header-actions{max-width:none;width:100%;justify-content:flex-start}.project-management-header-actions .app-modal-close{margin-left:auto}.project-header-delete-popover{left:0;right:auto}}\n
/* v1.62.38 - Reporte de compras Betsy */
.purchase-detail-report .panel-title{align-items:flex-end;gap:16px}
.purchase-detail-table{min-width:980px}
.purchase-detail-table th:nth-child(1),.purchase-detail-table td:nth-child(1){width:105px;white-space:nowrap}
.purchase-detail-table th:nth-child(2),.purchase-detail-table td:nth-child(2){width:230px}
.purchase-detail-table th:nth-child(3),.purchase-detail-table td:nth-child(3){width:320px}
.purchase-detail-table th:nth-child(4),.purchase-detail-table td:nth-child(4){width:175px;white-space:nowrap}
.purchase-report-supplier b,.purchase-report-supplier small{display:block}
.purchase-report-detail span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.25;max-height:2.5em}
.purchase-report-detail small{display:block;margin-top:3px;color:var(--muted)}
.purchase-detail-table tfoot th{background:#f4f8fc;font-weight:800;border-top:2px solid var(--line)}
.purchase-accounting-summary-details>summary{cursor:pointer;list-style:none;margin:0}
.purchase-accounting-summary-details>summary::-webkit-details-marker{display:none}
.purchase-accounting-summary-details .hide-label{display:none}
.purchase-accounting-summary-details[open] .hide-label{display:inline}
.purchase-accounting-summary-details[open] .show-label{display:none}
.purchase-accounting-summary-body{padding-top:16px}
.purchase-accounting-summary-body>.kpis{margin-top:0}

/* v1.62.39 - Ajustes visuales 3.5 Reporte de compras */
.purchase-report-selector{
  grid-template-columns:minmax(220px,1.15fr) minmax(170px,.8fr) minmax(190px,.8fr)!important;
  align-items:end;
}
.purchase-report-selector .filter-actions{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.purchase-report-selector .filter-actions>*{
  width:auto;
  min-width:140px;
  margin:0;
}
.purchase-accounting-summary-details{margin-bottom:16px}
.purchase-accounting-summary-details>summary.panel-title{
  align-items:center;
  padding:2px 0;
}
.purchase-accounting-summary-details .summary-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  padding:9px 12px;
  border:1px solid #bfd5ec;
  border-radius:9px;
  background:#fff;
  color:#1769bd;
  font-weight:800;
  white-space:nowrap;
}
.purchase-detail-table{min-width:840px!important;table-layout:fixed}
.purchase-detail-table th:nth-child(1),.purchase-detail-table td:nth-child(1){width:90px!important}
.purchase-detail-table th:nth-child(2),.purchase-detail-table td:nth-child(2){width:180px!important;white-space:normal!important}
.purchase-detail-table th:nth-child(3),.purchase-detail-table td:nth-child(3){width:245px!important;white-space:normal!important}
.purchase-detail-table th:nth-child(4),.purchase-detail-table td:nth-child(4){width:150px!important}
.purchase-detail-table th:nth-child(5),.purchase-detail-table td:nth-child(5),
.purchase-detail-table th:nth-child(6),.purchase-detail-table td:nth-child(6),
.purchase-detail-table th:nth-child(7),.purchase-detail-table td:nth-child(7){width:105px!important}
.purchase-report-supplier b{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
  line-height:1.22;
  max-height:3.66em;
  white-space:normal;
  overflow-wrap:anywhere;
}
.purchase-report-supplier small{display:block;margin-top:3px;white-space:nowrap}
.purchase-report-detail span{
  -webkit-line-clamp:3!important;
  line-clamp:3!important;
  max-height:3.75em!important;
  white-space:normal;
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .purchase-report-selector{grid-template-columns:1fr 1fr!important}
  .purchase-report-selector label:first-of-type{grid-column:1/-1}
  .purchase-report-selector .filter-actions{grid-column:1/-1}
}
@media(max-width:620px){
  .purchase-report-selector{grid-template-columns:1fr!important}
  .purchase-report-selector .filter-actions>*{flex:1 1 100%;width:100%}
}

/* v1.62.40 - Reporte CxP por proveedor alineado a Matriz de reportes varios */
.cxp-provider-summary-table{table-layout:fixed;min-width:980px}
.cxp-provider-summary-table th:first-child,.cxp-provider-summary-table td:first-child{width:30%}
.cxp-provider-summary-table th:last-child,.cxp-provider-summary-table td:last-child{width:110px}
.cxp-provider-summary-table tfoot th{background:var(--soft,#f4f7fb);font-weight:900;border-top:2px solid var(--line,#dbe5ef)}
.cxp-summary-provider{padding:0!important}
.cxp-provider-open{display:flex!important;flex-direction:column;align-items:flex-start;width:100%;min-height:58px;padding:10px 12px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--text,#132238)!important;text-align:left!important;box-shadow:none!important;white-space:normal!important}
.cxp-provider-open:hover{background:var(--soft,#f4f7fb)!important;color:var(--primary,#1769bd)!important}
.cxp-provider-open b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.25;overflow-wrap:anywhere}
.cxp-provider-open small{display:block;margin-top:4px;color:var(--muted,#718096);font-size:11px;font-weight:600}
.cxp-provider-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.cxp-provider-detail-table{min-width:1040px;table-layout:fixed}
.cxp-provider-detail-table th:nth-child(1){width:105px}.cxp-provider-detail-table th:nth-child(2){width:175px}.cxp-provider-detail-table th:nth-child(3),.cxp-provider-detail-table th:nth-child(4){width:110px}
.cxp-provider-detail-table th:nth-child(n+5){width:115px}
.cxp-provider-detail-table tfoot th{background:var(--soft,#f4f7fb);border-top:2px solid var(--line,#dbe5ef)}
.cxp-provider-modal-actions{justify-content:flex-end;margin-top:16px}.cxp-provider-modal-actions>button{flex:0 0 auto;min-width:150px}
.cxp-detail-panel>summary{cursor:pointer}.cxp-detail-panel:not([open])>.cxp-detail-filters,.cxp-detail-panel:not([open])>.table-wrap{display:none}
@media(max-width:900px){.cxp-provider-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cxp-provider-summary-table{min-width:820px}.cxp-provider-detail-table{min-width:960px}}
@media(max-width:560px){.cxp-provider-kpis{grid-template-columns:1fr}}

/* v1.62.41 - 3.6 CxP simplificado para Betsy */
.cxp-summary-filter{
  display:grid;
  grid-template-columns:minmax(190px,.7fr) minmax(300px,1.5fr) auto;
  gap:14px;
  align-items:end;
}
.cxp-summary-filter .filter-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.cxp-summary-filter .filter-actions>*{margin:0;white-space:nowrap}
.cxp-summary .table-wrap{margin-top:8px}
.cxp-provider-summary-table th:first-child,.cxp-provider-summary-table td:first-child{width:34%;max-width:420px}
.cxp-provider-open b{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.25}
@media(max-width:1050px){
  .cxp-summary-filter{grid-template-columns:1fr 1fr}
  .cxp-summary-filter .filter-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:680px){
  .cxp-summary-filter{grid-template-columns:1fr}
  .cxp-summary-filter .filter-actions{grid-column:auto}
  .cxp-summary-filter .filter-actions>*{flex:1 1 100%;text-align:center}
}

/* v1.62.44 · 3.6 CxP: período consistente, modal aislado y toolbar compacta */
.cxp-summary-filter{
  grid-template-columns:minmax(210px,.75fr) minmax(280px,1.25fr) minmax(430px,1.3fr)!important;
  align-items:end!important;
}
.cxp-summary-filter .filter-actions{
  display:grid!important;
  grid-template-columns:repeat(3,max-content)!important;
  justify-content:end!important;
  align-items:end!important;
  gap:10px!important;
}
.cxp-summary-filter .filter-actions>*{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
.cxp-provider-modal{z-index:20000!important}
.cxp-provider-modal .app-modal-dialog{width:min(1420px,calc(100vw - 36px))!important;max-height:calc(100vh - 36px)!important}
.cxp-provider-modal .app-modal-header{position:sticky;top:0;z-index:3;flex:0 0 auto}
.cxp-provider-modal .app-modal-body{min-height:0;overflow:auto!important;padding-bottom:18px}
.cxp-provider-modal .table-wrap{max-height:calc(100vh - 315px);overflow:auto!important}
.cxp-provider-modal .cxp-provider-detail-table{min-width:1080px}
.cxp-provider-modal .cxp-provider-modal-actions{position:sticky;bottom:-18px;background:var(--panel,#fff);padding:12px 0 4px;z-index:3}
@media(max-width:1100px){
  .cxp-summary-filter{grid-template-columns:1fr 1fr!important}
  .cxp-summary-filter .filter-actions{grid-column:1/-1!important;justify-content:start!important}
}
@media(max-width:720px){
  .cxp-summary-filter{grid-template-columns:1fr!important}
  .cxp-summary-filter .filter-actions{grid-template-columns:1fr!important;grid-column:auto!important}
  .cxp-provider-modal .app-modal-dialog{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important}
}


/* v1.62.44 - 3.7 Compras por concepto: interfaz dedicada y compacta */
.concept-report-filter{
  grid-template-columns:repeat(3,minmax(190px,1fr))!important;
  align-items:end;
}
.concept-report-filter .filter-actions{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.concept-report-filter .filter-actions>*{
  width:auto;
  min-width:145px;
  margin:0;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.concept-detail-wrap{overflow-x:auto}
.view-reportes .concept-detail-table{min-width:1080px!important;table-layout:fixed}
.concept-detail-table th:nth-child(1){width:90px}
.concept-detail-table th:nth-child(2){width:170px}
.concept-detail-table th:nth-child(3){width:150px}
.concept-detail-table th:nth-child(4){width:220px}
.concept-detail-table th:nth-child(5){width:145px}
.concept-detail-table th:nth-child(6){width:180px}
.concept-detail-table th:nth-child(7){width:90px}
.concept-detail-table th:nth-child(8),
.concept-detail-table th:nth-child(9),
.concept-detail-table th:nth-child(10){width:95px}
.concept-detail-table td{vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.concept-detail-table .concept-document{font-size:12px;overflow-wrap:anywhere}
.concept-detail-table .concept-provider,
.concept-detail-table .concept-description,
.concept-detail-table .concept-category,
.concept-detail-table .concept-destination{line-height:1.3}
.clamp-2,.clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.clamp-2{-webkit-line-clamp:2;line-clamp:2}
.clamp-3{-webkit-line-clamp:3;line-clamp:3}
@media(max-width:1100px){.concept-report-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.concept-report-filter{grid-template-columns:1fr!important}.concept-report-filter .filter-actions>*{flex:1 1 100%;width:100%}}

/* v1.62.45 · cierre visual Compras 3.7-3.10 */
.concept-summary-grid{display:block!important;width:100%!important}
.concept-summary-panel{width:100%!important;max-width:none!important}
.concept-summary-panel .table-wrap{width:100%}
.view-pagos_proveedores .panel>.table-wrap{overflow-x:auto!important;max-width:100%!important}
.view-pagos_proveedores .panel>.table-wrap .table-wrap{overflow:visible!important}
.view-pagos_proveedores table{margin-bottom:0}
.product-filter-actions{display:flex!important;gap:10px!important;align-items:end!important;flex-wrap:wrap!important}
.product-filter-actions>*{width:auto!important;min-width:110px}
.purchase-order-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.po-toolbar-actions,.po-row-actions,.order-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.po-smart-banner{margin:12px 0;padding:12px 14px;border-radius:10px;background:#eef8ff;border:1px solid #cce7fb;color:#184c72}
.po-editor-modal .app-modal-body{overflow:auto}
.po-editor-actions{position:sticky;bottom:-18px;background:var(--panel,#fff);padding:12px 0 2px;z-index:4}
.po-detail-meta{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 14px;padding:10px 12px;background:#f6f9fc;border-radius:10px}
.po-send-card{margin-top:16px;padding:14px;border:1px solid var(--line,#dbe5ef);border-radius:12px;background:#f8fbff}
.po-send-card form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end}
.po-delete-form{margin-top:12px}
.po-wrap-3{white-space:normal!important;max-width:240px;line-height:1.3}
.po-wrap-3 b,.po-wrap-3 small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.po-import-form{display:grid;gap:14px}
.po-history-panel table{min-width:980px}
.product-analysis .description-cell{white-space:normal!important;line-height:1.3;max-width:280px}
@media(max-width:850px){.po-send-card form{grid-template-columns:1fr}.po-toolbar-actions{width:100%}.po-toolbar-actions>*{flex:1}.product-filter-actions>*{flex:1 1 140px}}


/* v1.62.47 · modal de órdenes de compra aislado y cierre tras guardar */
body.view-ordenes_compra > .app-shell main > .app-modal-backdrop,
body.view-ordenes_compra .app-content > .app-modal-backdrop,
body.view-ordenes_compra main .app-modal-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:20000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:16px!important;
  overflow:hidden!important;
  background:rgba(8,25,47,.62)!important;
  backdrop-filter:blur(3px)!important;
}
body.view-ordenes_compra .app-modal-backdrop > .app-modal-dialog{
  position:relative!important;
  z-index:20001!important;
  margin:0!important;
  max-height:calc(100vh - 32px)!important;
  transform:none!important;
}
body.view-ordenes_compra .po-editor-modal{
  width:min(1380px,calc(100vw - 32px))!important;
  height:auto!important;
}
body.view-ordenes_compra .po-editor-modal .app-modal-header{
  position:sticky!important;
  top:0!important;
  z-index:8!important;
  flex:0 0 auto!important;
}
body.view-ordenes_compra .po-editor-modal .app-modal-body{
  min-height:0!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
body.view-ordenes_compra .po-editor-modal .po-editor-actions{
  position:sticky!important;
  bottom:-24px!important;
  z-index:12!important;
  background:var(--panel,#fff)!important;
  border-top:1px solid var(--line,#dbe5ef)!important;
  padding:12px 0 8px!important;
  margin-top:14px!important;
}
body.view-ordenes_compra .po-editor-modal .table-wrap{
  position:relative!important;
  z-index:1!important;
}
body.view-ordenes_compra .po-editor-modal .global-sticky-action,
body.view-ordenes_compra .po-editor-modal th.global-sticky-action,
body.view-ordenes_compra .po-editor-modal td.global-sticky-action{
  z-index:2!important;
}
@media(max-width:800px){
  body.view-ordenes_compra main .app-modal-backdrop{padding:8px!important}
  body.view-ordenes_compra .po-editor-modal{width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important}
}

/* v1.62.48 · editor de OC dentro del viewport y errores visibles */
body.view-ordenes_compra > .app-modal-backdrop{
  position:fixed!important;
  inset:0!important;
  width:auto!important;
  max-width:100%!important;
  height:100dvh!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:clamp(8px,1.5vw,24px)!important;
  overflow:hidden!important;
  z-index:30000!important;
}
body.view-ordenes_compra > .app-modal-backdrop > .po-editor-modal{
  width:min(1540px,100%)!important;
  max-width:100%!important;
  height:min(920px,100%)!important;
  max-height:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
body.view-ordenes_compra .po-editor-modal .app-modal-header{position:relative!important;flex:0 0 auto!important}
body.view-ordenes_compra .po-editor-modal .app-modal-body{flex:1 1 auto!important;min-width:0!important;min-height:0!important;overflow:auto!important}
body.view-ordenes_compra .po-editor-modal form{min-width:0!important}
body.view-ordenes_compra .po-editor-modal .table-wrap{max-width:100%!important;overflow:auto!important}
body.view-ordenes_compra .po-editor-modal .po-lines{min-width:1180px}
body.view-ordenes_compra .po-editor-modal .po-editor-actions{bottom:-24px!important}
body.view-ordenes_compra .po-editor-error{position:sticky;top:0;z-index:20;margin:0 0 14px}
@media(max-width:800px){
  body.view-ordenes_compra > .app-modal-backdrop{padding:6px!important}
  body.view-ordenes_compra > .app-modal-backdrop > .po-editor-modal{width:100%!important;height:100%!important;border-radius:12px!important}
  body.view-ordenes_compra .po-editor-modal .app-modal-header{padding:14px 16px 12px!important}
  body.view-ordenes_compra .po-editor-modal .app-modal-body{padding:14px!important}
}

/* v1.62.49 · una sola barra por eje y modales sin recortes */
html:has(body.view-ordenes_compra){overflow-x:hidden}
body.view-ordenes_compra{overflow-x:hidden}
body.view-ordenes_compra .table-scroll-floating{display:none!important}
body.view-ordenes_compra .order-head-grid [hidden]{display:none!important}
body.view-ordenes_compra > .app-modal-backdrop > .po-import-modal{
  width:min(720px,100%)!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body.view-ordenes_compra > .app-modal-backdrop > .po-import-modal .app-modal-body{
  min-width:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
body.view-ordenes_compra > .app-modal-backdrop .app-modal-header,
body.view-ordenes_compra > .app-modal-backdrop .app-modal-body{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
body.view-ordenes_compra .po-editor-modal .app-modal-body{overflow-y:auto!important;overflow-x:hidden!important}
body.view-ordenes_compra .po-editor-modal .table-wrap{overflow-x:auto!important;overflow-y:hidden!important}
body.view-ordenes_compra .po-history-panel>.table-wrap{overflow-x:auto!important;overflow-y:hidden!important;max-width:100%!important}

/* v1.62.51 · detalle amplio, adjunto persistente y correo rápido */
body.view-ordenes_compra > .app-modal-backdrop > .po-detail-modal{width:min(1380px,100%)!important;max-width:100%!important;height:min(900px,100%)!important;box-sizing:border-box!important}
.po-email-quick{position:relative;display:inline-flex!important;margin:0!important}
.po-email-quick button{display:grid!important;place-items:center!important;width:42px!important;min-width:42px!important;height:40px!important;padding:0!important;border:1px solid #bfd5ec!important;border-radius:9px!important;background:#fff!important;color:#1769bd!important;font-size:20px!important;line-height:1!important;cursor:pointer}
.po-email-quick button:hover{background:#1976d2!important;color:#fff!important}
.po-email-quick[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:50;width:max-content;max-width:220px;padding:7px 9px;border-radius:7px;background:#132238;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px rgba(8,25,47,.22)}
.po-source-reattach{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;margin:16px 0;padding:14px;border:1px solid var(--line,#dbe5ef);border-radius:12px;background:#f8fbff}
.po-source-reattach label{min-width:0}.po-source-reattach input{width:100%;margin-top:6px}.po-source-reattach button{white-space:nowrap}
@media(max-width:700px){.po-source-reattach{grid-template-columns:1fr}.po-source-reattach button{width:100%}}

/* v1.62.52 · modales fijados al viewport y acciones simplificadas */
body.view-ordenes_compra > .app-modal-backdrop{padding:0!important;overflow:hidden!important}
body.view-ordenes_compra > .app-modal-backdrop > .po-editor-modal,
body.view-ordenes_compra > .app-modal-backdrop > .po-detail-modal{
  position:fixed!important;
  left:16px!important;
  right:16px!important;
  top:16px!important;
  bottom:16px!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  transform:none!important;
}
body.view-ordenes_compra > .app-modal-backdrop > .po-import-modal{
  position:fixed!important;
  left:16px!important;
  right:16px!important;
  top:50%!important;
  width:auto!important;
  max-width:720px!important;
  max-height:calc(100vh - 32px)!important;
  margin:0 auto!important;
  transform:translateY(-50%)!important;
}
body.view-ordenes_compra .po-editor-actions>a,
body.view-ordenes_compra .po-import-form .modal-action-row>a,
body.view-ordenes_compra .po-detail-modal>.app-modal-body>.modal-action-row{display:none!important}
body.view-ordenes_compra .po-editor-actions>button{width:100%!important}
.po-delete-quick{display:inline-flex!important;margin:0!important}.po-delete-quick button{min-height:40px!important;padding:8px 12px!important;border:1px solid #e4b8bd!important;border-radius:9px!important;background:#fff!important;color:#a62f36!important;font-weight:800!important}.po-delete-quick button:hover{background:#fff1f2!important;color:#8b2229!important}
.po-editor-source-tools{display:grid;grid-template-columns:auto minmax(420px,1fr);gap:16px;align-items:end;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line,#dbe5ef);border-radius:11px;background:#f8fbff}
.po-editor-source-tools>div{display:flex;align-items:center;gap:10px}.po-editor-source-tools>div b{white-space:nowrap}.po-editor-source-tools>div a{padding:8px 12px!important;white-space:nowrap}.po-editor-source-tools form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center;margin:0}.po-editor-source-tools input{min-width:0;width:100%}.po-editor-source-tools button{white-space:nowrap}
@media(max-width:800px){body.view-ordenes_compra > .app-modal-backdrop > .po-editor-modal,body.view-ordenes_compra > .app-modal-backdrop > .po-detail-modal{left:6px!important;right:6px!important;top:6px!important;bottom:6px!important}.po-editor-source-tools{grid-template-columns:1fr}.po-editor-source-tools form{grid-template-columns:1fr}.po-editor-source-tools button{width:100%}}

/* v1.62.53 · encabezados sin margen negativo y cotización en Acciones */
body.view-ordenes_compra > .app-modal-backdrop .app-modal-header{
  margin:0!important;
  padding:22px 24px 17px!important;
  inset:auto!important;
}
.po-source-quick{position:relative!important;display:grid!important;place-items:center!important;width:42px!important;min-width:42px!important;height:40px!important;padding:0!important;font-size:18px!important;line-height:1!important}
.po-source-quick[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:50;width:max-content;max-width:230px;padding:7px 9px;border-radius:7px;background:#132238;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px rgba(8,25,47,.22)}
@media(max-width:800px){body.view-ordenes_compra > .app-modal-backdrop .app-modal-header{padding:15px 16px 12px!important}}

/* v1.62.54 · tablas compactas y acciones en una sola fila */
body.view-ordenes_compra .po-history-panel>.table-wrap{width:100%!important}
body.view-ordenes_compra .po-history-panel table{table-layout:fixed!important;width:100%!important;min-width:1240px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(1){width:11%}
body.view-ordenes_compra .po-history-panel th:nth-child(2){width:9%}
body.view-ordenes_compra .po-history-panel th:nth-child(3){width:24%}
body.view-ordenes_compra .po-history-panel th:nth-child(4){width:13%}
body.view-ordenes_compra .po-history-panel th:nth-child(5){width:8%}
body.view-ordenes_compra .po-history-panel th:nth-child(6){width:9%}
body.view-ordenes_compra .po-history-panel th:nth-child(7){width:8%}
body.view-ordenes_compra .po-history-panel th:nth-child(8){width:18%}
body.view-ordenes_compra .po-history-panel td{overflow:hidden;text-overflow:ellipsis}
body.view-ordenes_compra .po-history-panel .po-row-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:6px!important;
  width:auto!important;
  min-width:330px!important;
  overflow:visible!important;
  white-space:nowrap!important;
}
body.view-ordenes_compra .po-history-panel .po-row-actions>a,
body.view-ordenes_compra .po-history-panel .po-row-actions button{min-height:40px!important;margin:0!important}
body.view-ordenes_compra .po-history-panel .po-row-actions>a:not(.po-source-quick){padding:9px 12px!important}
body.view-ordenes_compra .po-editor-modal .table-wrap{display:block!important;width:fit-content!important;max-width:100%!important;margin:0!important;overflow-x:auto!important}
body.view-ordenes_compra .po-editor-modal .po-lines{table-layout:fixed!important;width:1420px!important;min-width:1420px!important;max-width:1420px!important}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(1){width:330px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(2){width:155px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(3){width:145px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(4){width:155px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(5){width:125px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(6){width:125px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(7){width:325px}
body.view-ordenes_compra .po-editor-modal .po-lines th:nth-child(8){width:60px}
body.view-ordenes_compra .po-editor-modal .po-lines input{width:100%!important;min-width:0!important;box-sizing:border-box!important}
body.view-ordenes_compra #po-add-line{position:relative!important;z-index:6!important;display:inline-flex!important;clear:both!important;margin:14px 0 12px!important;padding:9px 14px!important;line-height:1.2!important}
@media(max-width:800px){body.view-ordenes_compra .po-history-panel .po-row-actions{min-width:315px!important}body.view-ordenes_compra .po-editor-modal .po-lines{width:1260px!important;min-width:1260px!important;max-width:1260px!important}}

/* v1.62.55 · barra interna de acciones y listado compacto */
body.view-ordenes_compra .po-history-panel{width:min(1380px,100%)!important;margin-left:auto!important;margin-right:auto!important;padding:18px!important}
body.view-ordenes_compra .po-history-panel>.panel-title{margin-bottom:12px!important}
body.view-ordenes_compra .po-history-panel>.table-wrap{width:fit-content!important;max-width:100%!important;margin:0!important}
body.view-ordenes_compra .po-history-panel table,
body.view-ordenes_compra .po-history-panel table.has-sticky-actions{table-layout:fixed!important;width:1320px!important;min-width:1320px!important;max-width:1320px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(1){width:140px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(2){width:105px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(3){width:260px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(4){width:150px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(5){width:90px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(6){width:100px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(7){width:100px!important}
body.view-ordenes_compra .po-history-panel th:nth-child(8){width:375px!important}
body.view-ordenes_compra .po-history-panel th,
body.view-ordenes_compra .po-history-panel td{padding:10px 9px!important;height:auto!important;vertical-align:middle!important}
body.view-ordenes_compra .po-history-panel td.po-row-actions,
body.view-ordenes_compra .po-history-panel td.po-row-actions.global-sticky-action{display:table-cell!important;width:375px!important;min-width:375px!important;max-width:375px!important;overflow:visible!important}
body.view-ordenes_compra .po-action-bar{display:flex!important;flex-flow:row nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;width:max-content!important;min-width:0!important;white-space:nowrap!important}
body.view-ordenes_compra .po-action-bar>a,
body.view-ordenes_compra .po-action-bar>form{display:inline-flex!important;flex:0 0 auto!important;margin:0!important}
body.view-ordenes_compra .po-action-bar>a,
body.view-ordenes_compra .po-action-bar button{min-height:38px!important;height:38px!important;margin:0!important}
body.view-ordenes_compra .po-action-bar>a:not(.po-source-quick){padding:8px 11px!important}
body.view-ordenes_compra .po-action-bar .po-source-quick,
body.view-ordenes_compra .po-action-bar .po-email-quick button{width:40px!important;min-width:40px!important;height:38px!important}
@media(max-width:900px){body.view-ordenes_compra .po-history-panel{padding:12px!important}body.view-ordenes_compra .po-history-panel table,body.view-ordenes_compra .po-history-panel table.has-sticky-actions{width:1240px!important;min-width:1240px!important;max-width:1240px!important}}

/* v1.62.56 · tooltips visibles también en la primera fila del historial */
body.view-ordenes_compra .po-history-panel tbody tr:first-child .po-source-quick[data-tooltip]:hover:after,
body.view-ordenes_compra .po-history-panel tbody tr:first-child .po-email-quick[data-tooltip]:hover:after{
  top:calc(100% + 8px)!important;
  bottom:auto!important;
  z-index:1000!important;
}

/* v1.62.57 · tooltip global fuera del contenedor recortable de la tabla */
body.view-ordenes_compra .po-action-bar [data-tooltip]:hover:after{content:none!important;display:none!important}
body.view-ordenes_compra .po-floating-tooltip{
  position:fixed!important;
  z-index:2147483647!important;
  width:max-content!important;
  max-width:min(260px,calc(100vw - 16px))!important;
  padding:7px 9px!important;
  border-radius:7px!important;
  background:#132238!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:700!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  pointer-events:none!important;
  box-shadow:0 8px 20px rgba(8,25,47,.28)!important;
}
body.view-ordenes_compra .po-floating-tooltip[hidden]{display:none!important}

/* v1.63.0 · Ventas 4.1 · ingreso y mantenimiento de clientes */
body.view-odoo_clientes .customer-toolbar{align-items:flex-end}
body.view-odoo_clientes .customer-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.view-odoo_clientes .customer-list-panel{padding:0;overflow:hidden}
body.view-odoo_clientes .customer-list-panel>.table-wrap{margin:0;max-width:100%}
body.view-odoo_clientes .customer-table{min-width:1040px;table-layout:fixed}
body.view-odoo_clientes .customer-table th:nth-child(1){width:90px}
body.view-odoo_clientes .customer-table th:nth-child(2){width:245px}
body.view-odoo_clientes .customer-table th:nth-child(3){width:145px}
body.view-odoo_clientes .customer-table th:nth-child(4){width:165px}
body.view-odoo_clientes .customer-table th:nth-child(5){width:230px}
body.view-odoo_clientes .customer-table th:nth-child(6){width:285px}
body.view-odoo_clientes .customer-table th:nth-child(7){width:210px}
body.view-odoo_clientes .customer-table th:nth-child(8){width:90px}
body.view-odoo_clientes .customer-table th:nth-child(9){width:270px}
body.view-odoo_clientes .customer-table th,
body.view-odoo_clientes .customer-table td{padding:11px 10px;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}
body.view-odoo_clientes .customer-table td small{display:block;margin-top:3px;color:var(--muted)}
body.view-odoo_clientes .customer-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
body.view-odoo_clientes .customer-row-actions form{display:inline-flex;margin:0}
body.view-odoo_clientes .customer-delete-button{color:#b42318!important;background:#fff!important;border:1px solid #f0aaa5!important}

/* v1.64.0 · flujo 4.2 cotización aprobada → 4.3 factura electrónica */
body.view-odoo_ventas #portal-quotation-form .quotation-head{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:12px;align-items:end}
body.view-odoo_ventas #portal-quotation-form .quotation-head label{min-width:0}
body.view-odoo_ventas #portal-quotation-form .table-wrap{overflow-x:auto;scrollbar-gutter:stable}
body.view-odoo_ventas #quotation-lines{min-width:1180px}
body.view-odoo_ventas .inline-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;white-space:nowrap;min-width:max-content}
body.view-odoo_ventas .inline-actions form{display:inline-flex;margin:0}
.portal-invoices-block{margin-bottom:22px}
.portal-invoice-panel{padding:0;overflow:hidden}
.portal-invoice-scroll{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;padding:0;box-sizing:border-box;overscroll-behavior-inline:contain}
body.view-cartera .portal-invoice-scroll .portal-invoice-table{width:100%!important;min-width:0!important;table-layout:fixed}
.portal-invoice-table{width:100%;margin:0!important;border-collapse:collapse;table-layout:fixed}
.portal-invoice-table thead{display:table-header-group!important;position:static!important;inset:auto!important;z-index:auto!important;transform:none!important}
.portal-invoice-table thead tr{display:table-row!important;position:static!important}
.portal-invoice-table thead th{position:static!important;inset:auto!important;transform:none!important}
.portal-invoice-table tbody{display:table-row-group!important;position:static!important}
.portal-invoice-table tbody tr{display:table-row!important;position:static!important}
.portal-invoice-table tbody td{position:static!important}
.portal-invoice-table th:nth-child(1){width:20%}.portal-invoice-table th:nth-child(2){width:9%}.portal-invoice-table th:nth-child(3){width:14%}.portal-invoice-table th:nth-child(4){width:11%}.portal-invoice-table th:nth-child(5){width:9%}.portal-invoice-table th:nth-child(6){width:10%}.portal-invoice-table th:nth-child(7){width:10%}.portal-invoice-table th:nth-child(8){width:8%}.portal-invoice-table th:nth-child(9){width:9%}
.portal-invoice-table th,.portal-invoice-table td{padding:11px 10px;vertical-align:middle;overflow-wrap:anywhere}
.portal-invoice-table th:first-child,.portal-invoice-table td:first-child{padding-left:14px}
.portal-invoice-table td small{display:block;margin-top:4px;color:var(--muted);overflow-wrap:anywhere}
.portal-invoice-row{cursor:pointer;transition:background .15s ease}.portal-invoice-row:hover,.portal-invoice-row:focus{background:color-mix(in srgb,var(--accent) 8%,var(--panel));outline:none}
.invoice-business-state,.invoice-sri-state{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.state-abierto,.sri-pendiente{background:#eaf2fb;color:#1767b2}.state-pagado,.sri-autorizado{background:#ddf7e8;color:#087a45}.state-cancelado,.sri-rechazado{background:#fee8e8;color:#b42318}
.portal-invoice-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;min-width:max-content}
.portal-invoice-actions form{display:inline-flex;margin:0}
.portal-invoice-actions .compact{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin:0;white-space:nowrap}
.portal-invoice-actions .app-modal{white-space:normal}
.portal-invoice-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 20px}.portal-invoice-detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.portal-invoice-detail-grid dt{font-size:12px;color:var(--muted);font-weight:800}.portal-invoice-detail-grid dd{margin:5px 0 0;overflow-wrap:anywhere;font-weight:700}.portal-invoice-detail .portal-invoice-actions{flex-wrap:wrap;min-width:0}
.portal-email-status.is-sent{border-color:#a7e2c2!important;background:#eefbf4!important}.portal-email-status.is-sent dd{color:#087a45}.portal-email-status.is-pending dd{color:var(--muted)}
.portal-invoice-lines-section{margin:18px 0}.portal-invoice-lines-section h3{margin:0 0 10px}.portal-invoice-lines-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.portal-invoice-lines-table{width:100%;min-width:1080px;margin:0;border-collapse:collapse}.portal-invoice-lines-table thead{position:static!important}.portal-invoice-lines-table th,.portal-invoice-lines-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.portal-invoice-lines-table th{white-space:nowrap;background:var(--soft);font-size:11px;text-transform:uppercase;color:var(--muted)}.portal-invoice-lines-table td{font-size:13px}.portal-invoice-lines-table tbody tr:last-child td{border-bottom:0}.portal-invoice-lines-table .num{text-align:right;white-space:nowrap}
.portal-invoice-financials{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,410px);gap:24px;align-items:start;margin:18px 0 22px}.portal-payment-summary,.portal-invoice-totals{border:1px solid var(--line);border-radius:12px;background:var(--panel)}.portal-payment-summary{padding:16px}.portal-payment-summary h3{margin:0 0 12px}.empty-payment{margin:0;padding:16px;border-radius:9px;background:var(--soft);color:var(--muted)}.portal-payment-table-wrap{overflow-x:auto}.portal-payment-table{width:100%;border-collapse:collapse}.portal-payment-table th,.portal-payment-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left}.portal-payment-table th{font-size:11px;color:var(--muted);text-transform:uppercase}.portal-payment-table .num{text-align:right;white-space:nowrap}.portal-payment-balance{display:flex;gap:18px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.portal-invoice-totals{margin:0;padding:10px 16px}.portal-invoice-totals>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid var(--line)}.portal-invoice-totals>div:last-child{border-bottom:0}.portal-invoice-totals dt{font-weight:700}.portal-invoice-totals dd{margin:0;white-space:nowrap}.portal-invoice-totals .grand-total{font-size:18px;color:var(--primary)}
.portal-invoice-preflight{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.portal-invoice-preflight>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-invoice-preflight small{width:100%;color:var(--muted)}
.sri-environment{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:800}.sri-environment.is-test{color:#075985;background:#e0f2fe}.sri-environment.is-production{color:#991b1b;background:#fee2e2}
.electronic-sequence-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.electronic-sequence-summary article{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.electronic-sequence-summary span{display:block;color:var(--muted);font-size:.82rem}.electronic-sequence-summary strong{display:block;margin-top:6px;font-size:1.12rem}.electronic-readiness{margin-top:16px}.electronic-readiness>summary{cursor:pointer;font-weight:800}.electronic-readiness .readiness-grid{margin-top:14px}
.sri-inline-message{display:block;max-width:300px;margin-top:7px;color:#b42318!important;white-space:normal}
@media(max-width:900px){body.view-odoo_ventas #portal-quotation-form .quotation-head{grid-template-columns:1fr 1fr}body.view-cartera .portal-invoice-scroll .portal-invoice-table{min-width:920px!important}.portal-invoice-preflight{align-items:flex-start;flex-direction:column}.portal-invoice-detail-grid{grid-template-columns:1fr}.portal-invoice-financials{grid-template-columns:1fr}}

/* v1.64.9 · detalle de factura en modal y tabla superior sin recortes */
.invoice-detail-modal .app-modal-dialog{width:min(1500px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:hidden}
.invoice-detail-modal-body{min-width:0;overflow:auto;padding:18px}
.invoice-detail-modal-body>.panel{margin:0 0 16px;box-shadow:none}
.invoice-detail-modal-body>.panel:last-child{margin-bottom:0}
.invoice-detail-modal .invoice-detail-top .panel-title{padding-right:0}
.invoice-detail-modal .invoice-detail-top .panel-title>.button{display:none}
.invoice-detail-modal .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.invoice-detail-modal table{min-width:920px}
@media(min-width:901px){body.view-cartera .portal-invoice-scroll{overflow-x:auto;overflow-y:visible}}
@media(max-width:700px){.invoice-detail-modal .app-modal-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.invoice-detail-modal-body{padding:10px}}

/* v1.64.8 · maestros estilo Odoo y módulos de cartera separados */
body.view-odoo_clientes .customer-table th:nth-child(7),body.view-odoo_clientes .customer-table td:nth-child(7),body.view-odoo_clientes .customer-table th:nth-child(8),body.view-odoo_clientes .customer-table td:nth-child(8),body.view-odoo_clientes .customer-table th:nth-child(9),body.view-odoo_clientes .customer-table td:nth-child(9){display:none!important}
body.view-odoo_clientes .customer-table{width:100%;min-width:860px;table-layout:fixed}
body.view-odoo_clientes .customer-table th:nth-child(1){width:8%}body.view-odoo_clientes .customer-table th:nth-child(2){width:22%}body.view-odoo_clientes .customer-table th:nth-child(3){width:14%}body.view-odoo_clientes .customer-table th:nth-child(4){width:16%}body.view-odoo_clientes .customer-table th:nth-child(5){width:20%}body.view-odoo_clientes .customer-table th:nth-child(6){width:20%}
@media(max-width:700px){.electronic-sequence-summary{grid-template-columns:1fr}}

/* v1.64.1 · creación y edición de cotizaciones en ventana flotante */
body.view-odoo_ventas .quotation-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
body.view-odoo_ventas .quotation-editor-modal{width:min(1600px,calc(100vw - 32px));max-height:calc(100vh - 28px);overflow:hidden}
body.view-odoo_ventas .quotation-editor-body{overflow-y:auto;overflow-x:hidden;padding:18px 22px 22px}
body.view-odoo_ventas .quotation-editor-source{display:block;margin:0;padding:0;border:0;box-shadow:none;background:transparent}
body.view-odoo_ventas .quotation-editor-source>.table-wrap{max-width:100%;overflow-x:auto;scrollbar-gutter:stable}
body.view-odoo_ventas .quotation-editor-source #quotation-lines{min-width:1250px}
body.view-odoo_ventas .quotation-editor-source #portal-quotation-form>button[type="submit"]{display:flex;margin:18px 0 0 auto;min-width:190px;justify-content:center}
@media(max-width:700px){body.view-odoo_ventas .quotation-toolbar-actions{width:100%;justify-content:flex-start}body.view-odoo_ventas .quotation-editor-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}body.view-odoo_ventas .quotation-editor-body{padding:14px}}

/* v1.64.2 · ventana compacta y acciones uniformes en cotizaciones */
body.view-odoo_ventas .quotation-editor-modal{width:min(1500px,calc(100vw - 28px))!important;max-height:calc(100vh - 24px)!important}
body.view-odoo_ventas .quotation-editor-modal .app-modal-header{flex:0 0 auto;padding:16px 20px 13px!important}
body.view-odoo_ventas .quotation-editor-body{flex:1 1 auto;min-height:0;padding:14px 18px 18px!important;overflow-y:auto!important;overflow-x:hidden!important}
body.view-odoo_ventas .quotation-editor-source .quotation-head{position:static!important;top:auto!important;margin:0 0 12px!important;padding:12px!important;box-shadow:none!important}
body.view-odoo_ventas .quotation-editor-source>.table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important}
body.view-odoo_ventas .quotation-editor-source #quotation-lines{width:100%!important;min-width:1120px!important;table-layout:fixed!important}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th,
body.view-odoo_ventas .quotation-editor-source #quotation-lines td{padding:8px 7px!important}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(1){width:250px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(2){width:190px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(3){width:82px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(4){width:105px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(5){width:82px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(6){width:82px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(7),
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(8){width:95px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines th:nth-child(9){width:86px}
body.view-odoo_ventas .quotation-editor-source #quotation-lines input,
body.view-odoo_ventas .quotation-editor-source #quotation-lines select{width:100%!important;min-width:0!important;box-sizing:border-box!important}
body.view-odoo_ventas .quotation-editor-source .quotation-actions{margin:12px 0!important}
body.view-odoo_ventas .quotation-editor-source textarea{min-height:76px}
body.view-odoo_ventas .inline-actions{gap:7px!important}
body.view-odoo_ventas .inline-actions>a,
body.view-odoo_ventas .inline-actions>form>button,
body.view-odoo_ventas .inline-actions>details>summary{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:112px!important;min-width:112px!important;height:42px!important;min-height:42px!important;padding:7px 8px!important;margin:0!important;box-sizing:border-box!important;text-align:center!important;white-space:nowrap!important}
body.view-odoo_ventas .inline-actions>details{flex:0 0 112px!important;margin:0!important}
@media(max-width:700px){body.view-odoo_ventas .quotation-editor-modal{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important}body.view-odoo_ventas .quotation-editor-body{padding:10px!important}}

/* v1.64.3 · cotizaciones con listado y ficha tipo Odoo */
body.view-odoo_ventas .quotation-list-panel th:last-child,
body.view-odoo_ventas .quotation-list-panel td:last-child{display:none!important}
body.view-odoo_ventas .quotation-list-panel table{width:100%!important;min-width:980px!important;table-layout:fixed!important}
body.view-odoo_ventas .quotation-list-panel th:nth-child(1){width:105px}
body.view-odoo_ventas .quotation-list-panel th:nth-child(2){width:120px}
body.view-odoo_ventas .quotation-list-panel th:nth-child(3){width:260px}
body.view-odoo_ventas .quotation-list-panel th:nth-child(4){width:145px}
body.view-odoo_ventas .quotation-list-panel th:nth-child(5){width:125px}
body.view-odoo_ventas .quotation-list-panel th:nth-child(n+6):nth-child(-n+9){width:110px}
body.view-odoo_ventas .quotation-list-panel th,
body.view-odoo_ventas .quotation-list-panel td{padding:10px 11px!important;vertical-align:middle!important}
body.view-odoo_ventas .quotation-clickable-row{cursor:pointer}
body.view-odoo_ventas .quotation-clickable-row:hover{background:#edf5ff!important}
body.view-odoo_ventas .quotation-open-link{display:block;color:var(--primary,#1677d2);font-weight:850;text-decoration:none}
body.view-odoo_ventas .quotation-odoo-detail{margin:0 0 20px}
body.view-odoo_ventas .quotation-odoo-detail~#quotation-form{display:none!important}
body.view-odoo_ventas .quotation-breadcrumb{display:flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:14px}
body.view-odoo_ventas .quotation-breadcrumb a{color:var(--primary,#1677d2);font-weight:800;text-decoration:none}
body.view-odoo_ventas .quotation-odoo-commandbar{position:relative;display:grid;gap:8px;padding:11px 13px;margin-bottom:12px;background:var(--surface,#fff);border:1px solid var(--line,#dbe5ef);border-radius:12px;box-shadow:var(--shadow);overflow:visible}
body.view-odoo_ventas .quotation-primary-actions,
body.view-odoo_ventas .quotation-workflow-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-right:410px}
body.view-odoo_ventas .quotation-primary-actions>a,
body.view-odoo_ventas .quotation-workflow-actions>a,
body.view-odoo_ventas .quotation-workflow-actions>button,
body.view-odoo_ventas .quotation-workflow-actions>form>button{display:inline-flex;align-items:center;justify-content:center;height:38px;min-width:118px;padding:8px 12px;margin:0;box-sizing:border-box;white-space:nowrap}
body.view-odoo_ventas .quotation-primary-actions>a{min-width:88px}
body.view-odoo_ventas .quotation-workflow-actions>form{display:inline-flex;margin:0}
body.view-odoo_ventas .quotation-state-flow{position:absolute;right:13px;top:50%;transform:translateY(-50%);display:flex;align-items:center;white-space:nowrap}
body.view-odoo_ventas .quotation-state-flow span{position:relative;padding:8px 15px 8px 22px;background:#eef2f6;color:var(--muted);font-size:11px;font-weight:800}
body.view-odoo_ventas .quotation-state-flow span+span:before{content:"";position:absolute;left:0;top:0;border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:10px solid #fff}
body.view-odoo_ventas .quotation-state-flow span.done{background:#e5f2ff;color:#1268b3}
body.view-odoo_ventas .quotation-document-card{padding:20px!important;overflow:hidden!important}
body.view-odoo_ventas .quotation-document-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
body.view-odoo_ventas .quotation-document-title h2{margin:2px 0 0;font-size:28px}
body.view-odoo_ventas .quotation-document-meta{display:grid;grid-template-columns:1.4fr .75fr 1fr;gap:18px;padding:16px;margin-bottom:16px;border:1px solid var(--line,#dbe5ef);border-radius:10px;background:#f8fafc}
body.view-odoo_ventas .quotation-document-meta>div{display:grid;align-content:start;gap:5px;min-width:0}
body.view-odoo_ventas .quotation-document-meta small{color:var(--muted);font-weight:700}
body.view-odoo_ventas .quotation-document-meta span{overflow-wrap:anywhere}
body.view-odoo_ventas .quotation-detail-lines{width:100%;max-width:100%;overflow-x:auto;scrollbar-gutter:stable}
body.view-odoo_ventas .quotation-detail-lines table{width:100%;min-width:1180px;table-layout:fixed}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(1){width:245px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(2){width:300px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(3){width:90px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(4){width:90px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(5){width:115px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(6){width:80px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(7){width:65px}
body.view-odoo_ventas .quotation-detail-lines th:nth-child(8),
body.view-odoo_ventas .quotation-detail-lines th:nth-child(9){width:105px}
body.view-odoo_ventas .quotation-detail-lines td small{display:block;margin-top:3px;color:var(--muted);white-space:normal}
body.view-odoo_ventas .quotation-detail-footer{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;margin-top:18px;padding-top:16px;border-top:3px solid var(--primary,#1677d2)}
body.view-odoo_ventas .quotation-detail-footer p{white-space:normal;overflow-wrap:anywhere}
body.view-odoo_ventas .quotation-detail-totals{display:grid;gap:8px}
body.view-odoo_ventas .quotation-detail-totals span,
body.view-odoo_ventas .quotation-detail-totals strong{display:flex;justify-content:space-between;gap:20px;padding-bottom:6px;border-bottom:1px solid var(--line,#dbe5ef)}
body.view-odoo_ventas .quotation-detail-totals strong{font-size:18px;color:var(--primary,#1677d2);border-bottom:0}
body.view-odoo_ventas .quotation-detail-email-form{display:grid;gap:14px}
body.view-odoo_ventas .quotation-detail-email-form label{display:grid;gap:6px;font-weight:700}
@media(max-width:1050px){body.view-odoo_ventas .quotation-primary-actions,body.view-odoo_ventas .quotation-workflow-actions{padding-right:0}body.view-odoo_ventas .quotation-state-flow{position:static;transform:none;overflow-x:auto;padding-top:4px}body.view-odoo_ventas .quotation-document-meta{grid-template-columns:1fr 1fr}}
@media(max-width:700px){body.view-odoo_ventas .quotation-document-meta,body.view-odoo_ventas .quotation-detail-footer{grid-template-columns:1fr}body.view-odoo_ventas .quotation-primary-actions>a,body.view-odoo_ventas .quotation-workflow-actions>a,body.view-odoo_ventas .quotation-workflow-actions>button,body.view-odoo_ventas .quotation-workflow-actions>form,body.view-odoo_ventas .quotation-workflow-actions>form>button{width:100%;min-width:0}}
body.view-odoo_clientes .customer-source{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em}
body.view-odoo_clientes .customer-source.source-portal{color:#087f5b;background:#e5f8f0}
body.view-odoo_clientes .customer-source.source-odoo{color:#1268b3;background:#e9f3ff}
body.view-odoo_clientes .customer-modal{width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 32px)}
body.view-odoo_clientes .customer-modal .app-modal-body{overflow:auto}
body.view-odoo_clientes .customer-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px;align-items:end}
body.view-odoo_clientes .customer-form label{display:grid;gap:6px;min-width:0;font-weight:700}
body.view-odoo_clientes .customer-form label:has([name="accounting_account_id"]){display:none}
body.view-odoo_clientes .customer-form label.wide{grid-column:span 2}
body.view-odoo_clientes .customer-form input,
body.view-odoo_clientes .customer-form select,
body.view-odoo_clientes .customer-form textarea{width:100%;box-sizing:border-box}
body.view-odoo_clientes .customer-form .check-option{display:flex;align-items:center;align-self:center;gap:9px}
body.view-odoo_clientes .customer-form .check-option input{width:auto}
body.view-odoo_clientes .customer-form-actions{display:flex;justify-content:flex-end;align-items:center}
@media(max-width:900px){body.view-odoo_clientes .customer-form{grid-template-columns:1fr}body.view-odoo_clientes .customer-form label.wide{grid-column:auto}body.view-odoo_clientes .customer-toolbar-actions{width:100%}}

/* v1.62.50 · filtros y acciones ordenados en Productos comprados */
body.view-productos .product-filters{
  display:grid!important;
  grid-template-columns:minmax(240px,1.5fr) minmax(170px,.8fr) minmax(170px,.8fr) minmax(240px,1.15fr)!important;
  gap:14px 16px!important;
  align-items:end!important;
}
body.view-productos .product-filters>label{min-width:0!important}
body.view-productos .product-filters input,
body.view-productos .product-filters select{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
body.view-productos .product-filter-actions{
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  padding-top:2px!important;
}
body.view-productos .product-filter-actions>*{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:150px!important;
  min-height:42px!important;
  margin:0!important;
  white-space:nowrap!important;
}
body.view-productos .product-filter-actions>a:last-child{min-width:205px!important}
@media(max-width:1100px){
  body.view-productos .product-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
  body.view-productos .product-filters{grid-template-columns:1fr!important}
  body.view-productos .product-filter-actions{flex-direction:column!important;align-items:stretch!important}
  body.view-productos .product-filter-actions>*{width:100%!important;min-width:0!important}
}
.supplier-clickable-row{cursor:pointer;transition:background-color .15s ease}
.supplier-clickable-row:hover,.supplier-clickable-row:focus{background:#f1f7ff;outline:none}

/* v1.65.14 · catálogo de ventas compacto y administrable */
.sales-product-table table{table-layout:fixed;min-width:850px}
.sales-product-table th:nth-child(1){width:14%}
.sales-product-table th:nth-child(2){width:38%}
.sales-product-table th:nth-child(3){width:12%}
.sales-product-table th:nth-child(4){width:9%}
.sales-product-table th:nth-child(5){width:13%}
.sales-product-table th:nth-child(6){width:14%}
.sales-product-table tbody tr[data-modal-open]{cursor:pointer;transition:background-color .15s ease}
.sales-product-table tbody tr[data-modal-open]:hover,
.sales-product-table tbody tr[data-modal-open]:focus{background:#f1f7ff;outline:none}
.sales-product-table td{vertical-align:middle}
.sales-product-table td small{display:block;margin-top:4px;color:var(--muted)}
.sales-product-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end}
.sales-product-form>label{min-width:0}
.sales-product-form .wide{grid-column:span 2}
.sales-product-form .check-option{min-height:48px;display:flex;align-items:center;gap:10px}
.sales-product-form .check-option input{width:auto}
.sales-product-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end}
.sales-product-delete{margin-top:18px!important;padding-top:18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
.sales-pagination{margin-top:16px;justify-content:flex-end}
@media(max-width:760px){
  .sales-product-form{grid-template-columns:1fr}
  .sales-product-form .wide{grid-column:auto}
  .sales-product-form-actions button,.sales-product-delete button{width:100%}
}
.quotation-special-documents{margin:0 0 16px;padding:16px;border:1px solid #b9daf7;border-radius:14px;background:#f1f8fe}
.quotation-special-documents[hidden]{display:none!important}
.quotation-special-documents-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;color:#123a62}
.quotation-special-documents-title small{display:block;margin-top:3px;color:#66809b;font-weight:400}
.quotation-special-documents-grid{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(240px,1.35fr) minmax(150px,.65fr) minmax(240px,1.35fr);gap:12px}
.quotation-special-documents-grid label{margin:0;min-width:0}
.quotation-special-documents-grid select,.quotation-special-documents-grid input{width:100%}
@media(max-width:1000px){.quotation-special-documents-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.quotation-special-documents-grid{grid-template-columns:1fr}}
.quotation-product-search{display:block;width:100%;min-width:250px}
.quotation-product-search::-webkit-calendar-picker-indicator{opacity:.65}


/* v1.65.25 · detalle y trazabilidad de notas de crédito de venta */
.credit-note-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.credit-note-detail-summary article{padding:14px 16px;border:1px solid var(--line,#dbe5ef);border-radius:12px;background:var(--soft,#f7f9fc);min-width:0}
.credit-note-detail-summary span{display:block;color:var(--muted,#60738d);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.credit-note-detail-summary strong{display:block;overflow-wrap:anywhere}
.credit-note-detail-summary small{display:block;margin-top:4px;color:var(--muted,#60738d)}
.credit-note-detail-bottom{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(360px,1.2fr);gap:16px;align-items:start;margin-top:16px}
.credit-note-detail-bottom .portal-invoice-totals{margin:0}
@media(max-width:900px){.credit-note-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.credit-note-detail-bottom{grid-template-columns:1fr}}
@media(max-width:560px){.credit-note-detail-summary{grid-template-columns:1fr}}

/* v1.65.26 · 4.5 factura modificada en modal contextual */
.credit-invoice-modal{z-index:10160}
.credit-invoice-modal .app-modal-backdrop{background:rgba(8,25,47,.68)}
.credit-invoice-modal-body{background:var(--page,#f4f7fb);display:flex;flex-direction:column;gap:16px}
.credit-invoice-context{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:12px;padding:14px 16px;border:1px solid #bcdcf7;border-radius:14px;background:#eef7ff}
.credit-invoice-context>div{min-width:0}.credit-invoice-context span{display:block;color:var(--primary,#1677d2);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.credit-invoice-context strong{display:block;font-size:18px}.credit-invoice-context small{display:block;margin-top:4px;color:var(--muted,#60738d)}
.credit-invoice-summary{margin-bottom:0}.credit-invoice-panel{margin:0}.credit-invoice-panel .panel-title{margin-bottom:12px}.credit-current-row{background:#eef7ff!important}.credit-current-row td:first-child{box-shadow:inset 4px 0 0 var(--primary,#1677d2)}
@media(max-width:760px){.credit-invoice-context{grid-template-columns:1fr}}

/* v1.65.28 · identificación permanente PRUEBAS/PRODUCCIÓN en 4.3 */
.portal-invoice-toolbar{gap:18px;align-items:flex-end}.portal-environment-filter{display:flex;align-items:flex-end;gap:10px;margin-left:auto}.portal-environment-filter label{display:grid;gap:5px;font-size:.78rem;font-weight:800;color:var(--muted)}.portal-environment-filter select{min-width:145px}.portal-invoice-detail-grid .sri-environment{white-space:normal;text-align:center;line-height:1.25}
@media(max-width:900px){.portal-invoice-toolbar{align-items:stretch;flex-direction:column}.portal-environment-filter{margin-left:0;align-items:end;flex-wrap:wrap}}


/* v1.65.30 · 4.6 selector de clientes con autocompletado visible */
.customer-payment-launch{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}.customer-payment-launch small{color:var(--muted)}
.customer-payment-modal .app-modal-body{display:grid;gap:18px}.customer-search-form{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.customer-search-form label{display:grid;gap:7px;font-weight:700}.customer-search-form input{width:100%}
.payment-distribution-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.payment-distribution-summary span{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft);display:flex;justify-content:space-between;gap:12px}.payment-distribution-summary b{white-space:nowrap}.payment-distribution-summary .payment-difference-ok{border-color:#86d5ad;background:#ecfdf3}
.customer-payment-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.customer-payment-detail-summary article{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--soft);display:grid;gap:6px}.customer-payment-detail-summary span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.customer-payment-detail-summary strong{font-size:18px}.customer-payment-detail-summary small{color:var(--muted)}
.customer-payment-detail-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.customer-payment-annul{margin-top:18px;border:1px solid #f1c0bb;border-radius:12px;padding:14px;background:#fff8f7}.customer-payment-annul summary{cursor:pointer;font-weight:800;color:#b42318}.customer-payment-annul form{display:grid;gap:10px;margin-top:12px}.customer-payment-annul label{display:grid;gap:6px}.customer-payment-annul .danger{background:#b42318;border-color:#b42318;color:white}
@media(max-width:900px){.customer-payment-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-payment-detail-bottom{grid-template-columns:1fr}.payment-distribution-summary{grid-template-columns:1fr}}@media(max-width:650px){.customer-search-form,.customer-payment-detail-summary{grid-template-columns:1fr}}

/* v1.65.30 · combobox de clientes */
.customer-combobox{position:relative}.customer-combobox-options{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);max-height:360px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 38px rgba(15,35,65,.18);padding:6px}.customer-combobox-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 12px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.customer-combobox-option:hover,.customer-combobox-option:focus{background:var(--soft);outline:none}.customer-combobox-option[hidden]{display:none}.customer-option-main{display:grid;gap:3px;min-width:0}.customer-option-main b{white-space:normal}.customer-option-main small{color:var(--muted);font-weight:600}.customer-combobox-option>strong{white-space:nowrap;color:var(--navy)}

/* v1.65.31 · 4.6 evita solapamiento entre ayuda y resultados del buscador */
.customer-payment-modal #customer-payment-help[hidden]{display:none!important}
.customer-combobox-options{z-index:80}


/* v1.65.32 · 4.6 cierre post-registro y buscador sin recorte */
.customer-payment-modal.customer-payment-search-stage{
  min-height:min(720px,calc(100vh - 32px));
}
.customer-payment-modal.customer-payment-search-stage .app-modal-body{
  overflow:visible!important;
}
.customer-payment-modal.customer-payment-search-stage .customer-combobox-options{
  max-height:min(390px,calc(100vh - 300px));
  overflow-y:auto;
  overscroll-behavior:contain;
}
@media(max-height:650px){
  .customer-payment-modal.customer-payment-search-stage{
    min-height:calc(100vh - 16px);
  }
  .customer-payment-modal.customer-payment-search-stage .customer-combobox-options{
    max-height:calc(100vh - 275px);
  }
}

/* v1.65.33 · 4.7 detalle requerido y redistribución de acciones */
body.view-reportes .report-selector:has(input[name="report_type"][value="comercial"]){
  grid-template-columns:minmax(170px,.85fr) minmax(170px,.85fr) minmax(240px,1.35fr) minmax(190px,.9fr);
  align-items:end;
}
body.view-reportes .commercial-report-actions{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:2px;
}
body.view-reportes .commercial-report-actions .report-action-primary,
body.view-reportes .commercial-report-actions .report-action-export{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
body.view-reportes .commercial-report-actions>*{margin:0}
body.view-reportes .commercial-detail-panel{margin-top:14px}
body.view-reportes .commercial-detail-wrap{max-height:520px;overflow:auto}
body.view-reportes .commercial-detail-table{min-width:1120px}
body.view-reportes .commercial-detail-table th{position:sticky;top:0;z-index:2;background:var(--surface-soft,#f4f7fb)}
body.view-reportes .commercial-detail-client{min-width:250px}
body.view-reportes .commercial-detail-client small{display:block;margin-top:4px;color:var(--muted)}
body.view-reportes .commercial-detail-short{min-width:330px;max-width:520px;white-space:normal;line-height:1.35}
body.view-reportes .commercial-detail-number{white-space:nowrap;min-width:175px}
@media(max-width:1100px){
  body.view-reportes .report-selector:has(input[name="report_type"][value="comercial"]){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  body.view-reportes .report-selector:has(input[name="report_type"][value="comercial"]){grid-template-columns:1fr}
  body.view-reportes .commercial-report-actions{flex-direction:column;align-items:stretch}
  body.view-reportes .commercial-report-actions .report-action-primary,
  body.view-reportes .commercial-report-actions .report-action-export{width:100%}
  body.view-reportes .commercial-report-actions a,
  body.view-reportes .commercial-report-actions button{flex:1 1 auto;text-align:center;justify-content:center}
}

/* v1.65.34 · 4.8 cartera por antigüedad y detalle CxC por cliente */
body.view-cartera .cxc-aging-kpis{margin-top:14px}
.cxc-aging-summary-table{min-width:1180px;table-layout:auto}
.cxc-aging-summary-table th,.cxc-aging-summary-table td{white-space:nowrap}
.cxc-aging-summary-table th:first-child,.cxc-aging-summary-table td:first-child{white-space:normal;min-width:290px}
.cxc-aging-summary-table tfoot th{background:var(--soft,#f4f7fb);font-weight:900;border-top:2px solid var(--line,#dbe5ef)}
.cxc-customer-open{display:flex!important;flex-direction:column;align-items:flex-start;width:100%;min-height:54px;padding:8px 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--text,#132238)!important;text-align:left!important;box-shadow:none!important;white-space:normal!important}
.cxc-customer-open:hover,.cxc-customer-open:focus{background:var(--soft,#f4f7fb)!important;color:var(--primary,#1769bd)!important;outline:none}
.cxc-customer-open b{white-space:normal;line-height:1.25;overflow-wrap:anywhere}
.cxc-customer-open small{display:block;margin-top:4px;color:var(--muted,#718096);font-size:11px;font-weight:600}
.cxc-customer-modal{z-index:20000!important}
.cxc-customer-modal .app-modal-dialog{width:min(1500px,calc(100vw - 32px))!important;max-height:calc(100vh - 32px)!important}
.cxc-customer-modal .app-modal-header{position:sticky;top:0;z-index:3;flex:0 0 auto}
.cxc-customer-modal .app-modal-body{min-height:0;overflow:auto!important;padding-bottom:18px}
.cxc-customer-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.cxc-customer-modal .table-wrap{max-height:calc(100vh - 320px);overflow:auto!important}
.cxc-customer-detail-table{min-width:1320px}
.cxc-customer-detail-table th{position:sticky;top:0;z-index:2;background:var(--soft,#f4f7fb)}
.cxc-customer-modal-actions{position:sticky;bottom:-18px;background:var(--panel,#fff);padding:12px 0 4px;justify-content:flex-end}
@media(max-width:900px){.cxc-customer-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cxc-aging-summary-table{min-width:1050px}}
@media(max-width:600px){.cxc-customer-kpis{grid-template-columns:1fr}.cxc-customer-modal .app-modal-dialog{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important}}

/* v1.65.35 · 4.8 jerarquía visual, aging semántico y acciones de reporte */
body.view-cartera .operational-warning{
  background:#fff9e8;
  border:1px solid #f3d990;
  color:#795b13;
  box-shadow:none;
  padding:9px 13px;
  font-size:13px;
}
body.view-cartera .cartera-primary-kpis{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}
body.view-cartera .cartera-primary-kpis article{
  min-width:0;
  padding:17px 18px;
}
body.view-cartera .cartera-primary-kpis article strong{
  font-size:27px;
  line-height:1.1;
}
body.view-cartera .cartera-primary-kpis .cxc-balance-main{
  background:linear-gradient(180deg,#eef6ff 0%,#ffffff 100%);
  border:1px solid #91bfee;
  box-shadow:0 8px 22px rgba(23,105,189,.10);
}
body.view-cartera .cartera-primary-kpis .cxc-balance-main span{color:#0f5ea8;font-weight:900}
body.view-cartera .cartera-primary-kpis .cxc-balance-main strong{font-size:31px;color:#0b5fae}
body.view-cartera .cxc-report-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0 8px;
  padding:2px 2px 0;
}
body.view-cartera .cxc-report-actions>div:first-child{display:flex;flex-direction:column;gap:2px}
body.view-cartera .cxc-report-actions b{font-size:16px;color:var(--text,#132238)}
body.view-cartera .cxc-report-actions small{color:var(--muted,#718096)}
body.view-cartera .cxc-report-actions .row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
body.view-cartera .cxc-aging-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:8px;
}
body.view-cartera .cxc-aging-kpis article{
  border-width:1px;
  border-style:solid;
  box-shadow:0 5px 16px rgba(15,23,42,.055);
  min-height:118px;
}
body.view-cartera .cxc-aging-kpis article strong{font-size:29px;line-height:1.12}
body.view-cartera .cxc-aging-kpis .aging-upcoming{background:#f2fbf6;border-color:#a8dec0}
body.view-cartera .cxc-aging-kpis .aging-upcoming span,body.view-cartera .cxc-aging-kpis .aging-upcoming strong{color:#176b44}
body.view-cartera .cxc-aging-kpis .aging-1-30{background:#fffbea;border-color:#efd777}
body.view-cartera .cxc-aging-kpis .aging-1-30 span,body.view-cartera .cxc-aging-kpis .aging-1-30 strong{color:#8a6513}
body.view-cartera .cxc-aging-kpis .aging-31-90{background:#fff5e8;border-color:#efbc78}
body.view-cartera .cxc-aging-kpis .aging-31-90 span,body.view-cartera .cxc-aging-kpis .aging-31-90 strong{color:#a45213}
body.view-cartera .cxc-aging-kpis .aging-over-90{background:#fff0f1;border-color:#e99a9f;box-shadow:0 7px 20px rgba(180,35,50,.10)}
body.view-cartera .cxc-aging-kpis .aging-over-90 span,body.view-cartera .cxc-aging-kpis .aging-over-90 strong{color:#b42332}
body.view-cartera .cxc-aging-kpis .aging-over-90 strong{font-weight:950}
body.view-cartera .cxc-aging-summary{margin-top:16px}
body.view-cartera .cxc-aging-summary .panel-title{padding-top:18px;padding-bottom:18px}
body.view-cartera .cxc-aging-summary-table th{font-size:12px;letter-spacing:.015em}
body.view-cartera .cxc-aging-summary-table td{padding-top:10px;padding-bottom:10px}
body.view-cartera .cxc-aging-summary-table tbody tr:hover td{background:#f7fbff}
body.view-cartera .cxc-aging-summary-table td:last-child .detail-link{white-space:nowrap}
@media(max-width:1250px){body.view-cartera .cartera-primary-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){body.view-cartera .cxc-aging-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cxc-report-actions{align-items:flex-start!important;flex-direction:column}}
@media(max-width:650px){body.view-cartera .cartera-primary-kpis,body.view-cartera .cxc-aging-kpis{grid-template-columns:1fr}}
@media print{
  body.view-cartera .sidebar,body.view-cartera .top-actions,body.view-cartera .period-switcher,body.view-cartera .operational-warning,body.view-cartera .cxc-report-actions,body.view-cartera .filter-shell,body.view-cartera .app-modal{display:none!important}
  body.view-cartera .main{margin:0!important;width:100%!important}
  body.view-cartera .cxc-aging-summary{display:block!important}
  body.view-cartera .cxc-aging-summary>summary{list-style:none}
  body.view-cartera .cxc-aging-summary .table-wrap{overflow:visible!important}
  body.view-cartera .cxc-aging-summary-table{min-width:0!important;font-size:9px}
}


/* v1.65.36 · 4.8 resumen siempre visible y columna cliente compacta */
body.view-cartera .cxc-summary-always-open{
  padding:0;
  overflow:hidden;
}
body.view-cartera .cxc-summary-always-open>.panel-title{
  padding:18px 22px;
  border-bottom:1px solid var(--line,#dbe5ef);
}
body.view-cartera .cxc-summary-always-open>.table-wrap{
  width:100%;
  max-width:100%;
  margin:0;
  overflow-x:auto;
  overflow-y:visible;
  border-radius:0;
}
body.view-cartera .cxc-aging-summary-table{
  min-width:1040px;
  width:100%;
  table-layout:fixed;
}
body.view-cartera .cxc-aging-summary-table th:first-child,
body.view-cartera .cxc-aging-summary-table td:first-child{
  width:250px;
  min-width:250px;
  max-width:250px;
  white-space:normal;
}
body.view-cartera .cxc-aging-summary-table th:nth-child(2),
body.view-cartera .cxc-aging-summary-table td:nth-child(2){width:78px}
body.view-cartera .cxc-aging-summary-table th:nth-child(n+3):nth-child(-n+8),
body.view-cartera .cxc-aging-summary-table td:nth-child(n+3):nth-child(-n+8){width:105px}
body.view-cartera .cxc-aging-summary-table th:last-child,
body.view-cartera .cxc-aging-summary-table td:last-child{width:92px}
body.view-cartera .cxc-summary-customer{vertical-align:middle}
body.view-cartera .cxc-customer-open{
  min-height:0;
  padding:7px 8px!important;
  gap:2px;
}
body.view-cartera .cxc-customer-open b{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.22;
  max-height:3.66em;
}
body.view-cartera .cxc-customer-open small{
  line-height:1.25;
  white-space:normal;
}
@media(max-width:1100px){
  body.view-cartera .cxc-aging-summary-table{min-width:980px}
  body.view-cartera .cxc-aging-summary-table th:first-child,
  body.view-cartera .cxc-aging-summary-table td:first-child{width:220px;min-width:220px;max-width:220px}
}
@media print{
  body.view-cartera .cxc-summary-always-open>.panel-title{padding:10px 0}
  body.view-cartera .cxc-summary-always-open>.table-wrap{overflow:visible!important}
}


/* v1.65.37 · 5.1 ingreso de proyectos en modal y datos básicos completos */
.project-intake-list .panel-title{align-items:center}.project-intake-list td small{display:block;margin-top:4px;color:var(--muted)}
.project-create-modal .app-modal-body{padding-top:18px}.project-basic-form{align-items:start}.project-basic-form label{min-width:0}.project-basic-form .form-actions{display:flex;justify-content:flex-end;margin-top:4px}
@media(max-width:760px){.project-intake-list .panel-title{align-items:flex-start}.project-intake-list .panel-title>.button{width:100%;text-align:center}.project-create-modal .app-modal-dialog{width:min(96vw,760px)}}
/* v1.65.38 · separación funcional 5.1 / 5.2 / 5.3 */
.project-assignment-list table th:nth-child(1){min-width:230px}
.project-assignment-list table th:nth-child(2){min-width:210px}
.project-assignment-list table td:nth-child(1) small{display:block;margin-top:4px;color:#718096}
.project-result-expanded{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-result-portfolio-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.project-result-detail .project-export-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.project-management-modal .project-management-tabs button{white-space:normal;line-height:1.15}
@media(max-width:1100px){.project-result-expanded,.project-result-portfolio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.project-result-expanded,.project-result-portfolio-kpis{grid-template-columns:1fr}}

/* v1.65.39 · separación definitiva 5.1/5.2/5.3 y mejora UX gestión de proyectos */
.project-intake-note{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 13px;margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--muted);font-size:12px}.project-intake-note strong{color:var(--navy);white-space:nowrap}.project-intake-list td small{display:block;margin-top:4px;color:var(--muted)}
.project-result-modal .app-modal-dialog{width:min(1180px,calc(100vw - 42px));max-height:calc(100vh - 34px)}.project-result-modal .app-modal-body{overflow:auto}.project-result-title-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:8px}.project-result-profit{border-color:#bfe6d3!important}.project-result-profit:after{background:var(--ok)!important}
.project-management-title-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.project-management-title-row h2{margin:0}.project-management-title-row .project-status{font-size:11px;padding:6px 10px}
.project-header-menu{position:relative}.project-header-menu>summary{list-style:none;cursor:pointer;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px;line-height:1;background:var(--panel);color:var(--navy)}.project-header-menu>summary::-webkit-details-marker{display:none}.project-header-menu>summary:hover{background:var(--soft)}.project-header-menu-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:100;width:min(360px,calc(100vw - 40px));padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 44px rgba(8,25,47,.20)}.project-header-menu-popover>strong{display:block;margin-bottom:3px}.project-header-menu-popover>p{margin:0 0 10px;color:var(--muted);font-size:12px}.project-header-delete>summary{list-style:none;cursor:pointer;padding:9px 10px;border-radius:8px;color:#a62f36;font-weight:800;background:#fff3f4}.project-header-delete>summary::-webkit-details-marker{display:none}.project-header-delete-inline{padding:10px 4px 0}.project-header-delete-inline p{font-size:12px;color:var(--muted)}.project-header-delete-inline label{font-size:12px;font-weight:700}.project-header-delete-inline input{margin-top:5px}.project-header-delete-inline button{width:100%;margin-top:8px}
.project-management-tabs .project-tab-count{display:inline-flex;min-width:20px;height:20px;padding:0 6px;border-radius:999px;align-items:center;justify-content:center;margin-left:5px;background:#e7f0fa;color:#235a91;font-size:10px;font-weight:900}.project-management-tabs button.active .project-tab-count{background:rgba(255,255,255,.2);color:#fff}.project-management-tabs button.tab-empty:not(.active){opacity:.62}
.project-management-summary>.panel-title{align-items:flex-start}.project-management-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.project-management-kpis .project-kpi-total{border-color:#9bc9ee;box-shadow:0 8px 24px rgba(23,119,210,.08)}.project-management-kpis .project-kpi-total strong{font-size:29px;color:var(--blue)}
.project-budget-progress{margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f5f9fc)}.project-budget-progress-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.project-budget-progress-head>div:first-child{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.project-budget-progress-head span,.project-budget-progress-head>div:last-child{color:var(--muted);font-size:12px;font-weight:700}.project-budget-track{height:10px;margin:11px 0 4px;background:#e6edf5;border-radius:999px;overflow:hidden}.project-budget-track span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.project-budget-progress.is-undefined .project-budget-track span{width:0!important}.project-budget-progress small{color:var(--muted)}.project-budget-progress .negative{color:#a42b2b;font-weight:800}
.project-edit-sections{display:grid;gap:13px;padding-top:16px;border-top:1px solid var(--line)}.project-edit-group{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel)}.project-edit-group-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:11px}.project-edit-group-title h3{margin:0;font-size:15px}.project-edit-group-title span{color:var(--muted);font-size:11px}.project-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-edit-grid label,.project-edit-notes label{font-size:12px;font-weight:700;color:var(--muted)}.project-edit-grid input,.project-edit-grid select,.project-edit-notes textarea{margin-top:6px}.project-edit-grid label small{display:block;margin-top:5px;font-weight:500;line-height:1.35}.project-budget-field input{font-size:17px;font-weight:800}.required-mark{color:#b4232d}.project-edit-notes textarea{width:100%;min-height:82px;max-height:140px;resize:vertical}.project-edit-savebar{position:sticky;bottom:-1px;z-index:15;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:12px 14px;margin-top:2px;border:1px solid #cfe0f1;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 -7px 22px rgba(8,25,47,.08);backdrop-filter:blur(8px)}.project-edit-savebar strong,.project-edit-savebar small{display:block}.project-edit-savebar small{margin-top:3px;color:var(--muted);font-weight:500}.project-edit-savebar button{min-width:170px}
@media(max-width:1050px){.project-management-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.project-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.project-intake-note,.project-budget-progress-head,.project-edit-group-title,.project-edit-savebar{align-items:stretch;flex-direction:column}.project-management-kpis,.project-edit-grid{grid-template-columns:1fr}.project-edit-savebar button{width:100%}.project-result-modal .app-modal-dialog{width:calc(100vw - 12px)}}
html[data-theme="dark"] .project-budget-progress{background:#142236}.project-edit-savebar{background:color-mix(in srgb,var(--panel) 94%,transparent)}

/* v1.65.40 · Usuarios */
.view-usuarios .alert.error{background:#fff8df!important;border-color:#f1dc9a!important;color:#755d16!important;padding:9px 13px!important;font-size:12px}.users-main-panel{padding:18px}.users-panel-head{align-items:center}.users-panel-head .button{margin-left:auto}.users-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 220px 180px;gap:12px;align-items:end;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.users-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.users-toolbar input,.users-toolbar select{min-height:38px}.users-table-wrap{overflow:visible}.users-admin-table{width:100%;min-width:920px;table-layout:fixed}.users-admin-table th:nth-child(1){width:24%}.users-admin-table th:nth-child(2){width:22%}.users-admin-table th:nth-child(3){width:17%}.users-admin-table th:nth-child(4){width:10%}.users-admin-table th:nth-child(5){width:15%}.users-admin-table th:nth-child(6){width:12%}.users-admin-table td{padding-top:10px;padding-bottom:10px}.users-admin-table tbody tr:hover{background:rgba(33,132,226,.045)}.user-identity{display:flex;align-items:center;gap:10px;min-width:0}.user-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#e9f3ff;color:#1267b8;font-size:12px;font-weight:900}.user-identity>div{min-width:0}.user-identity small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.self-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#e7f0ff;color:#1769bd;font-size:9px;font-weight:900;text-transform:uppercase}.role-badge{display:inline-flex;max-width:100%;padding:4px 8px;border-radius:999px;background:#edf3fa;color:#415a75;font-size:10px;font-weight:800;white-space:normal}.role-admin{background:#e8efff;color:#204e9e}.role-gestor_proyectos,.role-operaciones_proyectos{background:#edf9f2;color:#28704b}.user-actions-compact{display:flex;align-items:center;justify-content:flex-end;gap:7px}.user-actions-menu{position:relative}.user-actions-menu summary{display:grid;place-items:center;width:34px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:19px;font-weight:900;cursor:pointer;list-style:none}.user-actions-menu summary::-webkit-details-marker{display:none}.user-actions-popover{position:absolute;right:0;top:38px;z-index:60;display:grid;min-width:210px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 30px rgba(20,45,74,.18)}.user-actions-popover button,.user-actions-popover span{display:block;width:100%;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:12px;text-align:left}.user-actions-popover button{cursor:pointer}.user-actions-popover button:hover{background:var(--soft)}.user-actions-popover .danger-link{color:#b4232d}.user-actions-popover span{color:var(--muted)}.user-create-form,.user-edit-form-modern,.modal-confirm-form{display:grid;gap:12px}.user-create-form label,.user-edit-form-modern label,.modal-confirm-form label{display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted)}.user-active-check,.check-row{display:flex!important;align-items:flex-start;gap:8px}.user-active-check input,.check-row input{width:auto;margin-top:2px}.role-help{font-weight:500;color:var(--muted);line-height:1.35}.app-modal-small{width:min(520px,calc(100vw - 30px))}.modal-confirm-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.danger-confirm{display:grid;gap:3px;padding:11px;border:1px solid #efc7ca;border-radius:9px;background:#fff4f4;color:#8e2630}.danger-confirm span{font-size:12px}.users-empty-filter{padding:22px;text-align:center;color:var(--muted)}html[data-theme="dark"] .user-avatar{background:#17344f;color:#8dc8ff}html[data-theme="dark"] .role-badge{background:#233246;color:#c2d5e8}html[data-theme="dark"] .view-usuarios .alert.error{background:#3a321c!important;border-color:#69592d!important;color:#efd687!important}html[data-theme="dark"] .danger-confirm{background:#3a2025;border-color:#6e343d;color:#ffb7c0}@media(max-width:1000px){.users-toolbar{grid-template-columns:1fr 1fr}.users-toolbar .users-search{grid-column:1/-1}.users-table-wrap{overflow-x:auto}}@media(max-width:620px){.users-toolbar{grid-template-columns:1fr}.users-toolbar .users-search{grid-column:auto}.users-panel-head{align-items:flex-start;flex-direction:column}.users-panel-head .button{margin-left:0}}
/* v1.65.41 · Estados financieros 1.3 / 1.4 */
.financial-report-head .panel-title{align-items:flex-start}.financial-report-actions{display:flex;gap:10px;flex-wrap:wrap}.financial-report-filters{margin-top:16px;grid-template-columns:minmax(180px,260px) minmax(180px,260px) auto;align-items:end}.financial-statement-kpis,.financial-position-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.financial-primary-kpi{border-bottom:3px solid #147bd1;background:linear-gradient(180deg,#fff,#f2f8ff)}.financial-primary-kpi strong{font-size:1.65rem}.financial-statement-table th:nth-child(1){min-width:390px}.financial-account-name{padding-left:calc(var(--fin-depth)*18px);white-space:normal;line-height:1.25}.financial-title-row{background:#f4f8fc;font-weight:700}.financial-title-row td{border-top:1px solid #dbe6f0}.financial-synthetic-row{background:#eef6ff}.balance-control{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px 24px}.balance-control>div{display:flex;flex-direction:column;gap:5px}.balance-control strong{font-size:1.35rem}.balance-ok{border-left:5px solid #20a464;background:#f2fbf6}.balance-error{border-left:5px solid #d43b3b;background:#fff5f5}.balance-error strong{color:#b32727}.financial-opening-note{margin:0 0 18px;padding:13px 16px;border:1px solid #d7e7f6;border-radius:12px;background:#f4f9fd;color:#52677a}.app-modal-body .table-wrap td small{display:block;margin-top:3px;color:#71849a}@media(max-width:1100px){.financial-statement-kpis,.financial-position-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-report-filters{grid-template-columns:1fr}.balance-control{grid-template-columns:1fr}}

/* v1.65.42 · Configuraciones 6.2 / 6.3 */
.electronic-sequence-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
.electronic-sequence-summary article small{display:block;margin-top:5px;color:var(--muted);font-size:.78rem;}
.bank-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;}
.bank-config-grid>section{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--panel-soft,#f8fbff);}
.bank-config-grid h3{margin:0 0 10px;}
.bank-cheque-config p{margin:0 0 14px;color:var(--muted);}
.compact-alert{margin-top:12px;padding:10px 12px;}
@media(max-width:900px){.electronic-sequence-summary,.bank-config-grid{grid-template-columns:1fr;}}

/* v1.65.43 · Roles, auditoría y popover de usuarios */
.role-contador{background:#e8f2ff;color:#175fa7}.role-ventas{background:#eef7ff;color:#176f9f}.role-asistente_contable{background:#f3efff;color:#6545a8}.role-compras{background:#fff4df;color:#8b5a08}
.role-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.role-permission-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.role-permission-card p{margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.audit-panel{margin-top:16px}.audit-table{min-width:980px}.audit-table th:nth-child(1){width:150px}.audit-table th:nth-child(2){width:190px}.audit-table th:nth-child(3){width:190px}.audit-table th:nth-child(5){width:120px}.audit-table td small{display:block;margin-top:2px;color:var(--muted)}.audit-action{display:inline-flex;padding:4px 7px;border-radius:7px;background:#edf4fb;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.02em}
.view-usuarios .users-main-panel,.view-usuarios .users-table-wrap,.view-usuarios .users-admin-table,.view-usuarios .users-admin-table tbody,.view-usuarios .users-admin-table tr,.view-usuarios .users-admin-table td{overflow:visible!important}.view-usuarios .users-admin-table td:last-child{position:relative;z-index:5}.view-usuarios .user-actions-menu[open]{position:relative;z-index:10050}.view-usuarios .user-actions-menu[open] .user-actions-popover{z-index:10060!important}.view-usuarios .user-actions-popover{top:calc(100% + 6px);right:0;min-width:230px;white-space:nowrap;box-shadow:0 16px 34px rgba(8,25,47,.28)!important}.view-usuarios .users-admin-table tr:has(.user-actions-menu[open]){position:relative;z-index:10040}
body.role-ventas .module-accounting,body.role-ventas .module-banks,body.role-ventas .module-purchases,body.role-ventas .module-settings{display:none}body.role-compras .module-accounting,body.role-compras .module-banks,body.role-compras .module-sales,body.role-compras .module-settings{display:none}body.role-gestor_proyectos .module-accounting,body.role-gestor_proyectos .module-banks,body.role-gestor_proyectos .module-sales,body.role-gestor_proyectos .module-settings{display:none}
@media(max-width:1000px){.role-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.role-cards-grid{grid-template-columns:1fr}}

/* v1.65.44 · Paquete visual: login, panel ejecutivo y contabilidad 1.1–1.4 */
/* Login */
.login-brand-panel{background:radial-gradient(circle at 15% 18%,rgba(70,173,255,.22),transparent 28%),radial-gradient(circle at 85% 78%,rgba(0,199,190,.13),transparent 30%),linear-gradient(145deg,#052d54 0%,#0a4b89 55%,#0c69b7 100%)}
.login-brand-panel:before{inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:34px 34px;height:auto;transform:none;opacity:.45}.login-brand-panel:after{display:none}
.login-brand-copy{max-width:610px}.login-brand-copy h1{max-width:600px;margin-bottom:14px;font-size:45px;letter-spacing:-.025em}.login-brand-copy>p{max-width:540px;font-size:16px;line-height:1.45}
.login-benefits{gap:15px;margin-top:30px}.login-benefits article{align-items:center}.login-benefits article>span.login-benefit-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px;font-size:19px;color:#d8f1ff;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}.login-brand-foot{opacity:.72}
.login-form-panel{place-items:center;padding-top:22px;padding-bottom:22px}.login-form-panel .login-logo{width:138px!important;margin-bottom:17px}.login-form-panel h2{font-size:29px;margin-top:3px}.login-form-panel form{gap:15px;margin:24px 0 18px}.login-form-panel input{border-color:#cfdbea;background:#fbfdff;transition:border-color .18s,box-shadow .18s,background .18s}.login-form-panel input:focus{border-color:#4b9be8;background:#fff;box-shadow:0 0 0 4px rgba(38,130,216,.12)}
.login-password-wrap{position:relative}.login-password-wrap input{width:100%;padding-right:82px}.login-password-toggle{position:absolute;right:7px;top:7px;min-height:35px!important;width:auto!important;padding:0 10px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#1769bd!important;font-size:12px!important}.login-password-toggle:hover{background:#eef6ff!important}.login-form-links{display:flex;justify-content:flex-end;margin-top:-5px}.login-forgot-link{width:auto!important;min-height:0!important;padding:2px 0!important;border:0!important;background:transparent!important;color:#1769bd!important;box-shadow:none!important;font-size:12px!important;font-weight:750}.login-form-panel #login-submit{height:52px;transition:transform .15s,box-shadow .15s,opacity .15s}.login-form-panel #login-submit:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(16,91,164,.2)}.login-form-panel #login-submit.is-loading{opacity:.75;cursor:wait}
.login-security{display:flex;gap:9px;align-items:flex-start;padding:14px 0}.login-security>b,.login-security small{display:block}.login-security b{font-size:11.5px;color:#536779}.login-security small{margin-top:2px;color:#8190a0;font-size:10.5px}.login-meta{color:#9aa6b2}
.login-help-modal[hidden]{display:none}.login-help-modal{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;padding:20px}.login-help-backdrop{position:absolute;inset:0;background:rgba(4,22,40,.55);backdrop-filter:blur(3px)}.login-help-modal>section{position:relative;width:min(480px,100%);padding:28px;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(4,25,48,.28)}.login-help-modal h2{margin:5px 0 10px}.login-help-close{position:absolute;right:12px;top:12px;width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;border-radius:11px!important;background:#f3f7fb!important;color:#193754!important;box-shadow:none!important}.login-help-modal .button{margin-top:8px}

/* Inicio / Resumen */
.view-resumen .dashboard-toolbar{margin-bottom:12px}.view-resumen .dashboard-toolbar>div:first-child p:last-child{max-width:760px}.executive-alerts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}.executive-alert{display:grid;gap:5px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s}.executive-alert:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(23,49,79,.12)}.executive-alert span{font-size:12px;font-weight:850}.executive-alert strong{font-size:22px}.executive-alert small{color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executive-alert.alert-danger{background:#fff5f4;border-color:#f1cbc7}.executive-alert.alert-warning{background:#fff9ec;border-color:#f1dfae}.executive-alert.alert-caution{background:#fffdee;border-color:#ebe2a5}
.view-resumen .executive-kpis article.kpi-emphasis{border-color:#b9d7f4;background:linear-gradient(180deg,#fff,#f6fbff)}.view-resumen .executive-kpis article.kpi-emphasis strong{font-size:26px}.delta.neutral{color:#64788b!important;background:#f3f6f9!important}.cxp-aging-bar,.mini-progress,.ranking-bar{display:block;overflow:hidden;background:#edf2f6;border-radius:999px}.cxp-aging-bar{height:8px;margin:16px 0 5px}.cxp-aging-bar i{display:block;height:100%;background:linear-gradient(90deg,#f0a33a,#d84b43);border-radius:inherit}.mini-progress{height:6px;margin:9px 0}.mini-progress i{display:block;height:100%;border-radius:inherit;background:#d84b43}.dashboard-link-primary{display:inline-flex;margin-top:14px;padding:9px 12px;border-radius:9px;background:#edf6ff}.ranking{align-items:center}.ranking>span{min-width:0}.ranking-name{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:750}.ranking-bar{height:4px;margin-top:6px}.ranking-bar em{display:block;height:100%;background:#7bb8ef;border-radius:inherit}.movement-quick-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.movement-quick-filters .compact{padding:6px 9px;min-height:31px}.movement-quick-filters .is-active{background:#eaf4ff;border-color:#9bc9f0;color:#1769bd}.movement-state{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:850}.movement-state.ready{background:#e6f7ed;color:#197448}.movement-state.pending{background:#fff2d9;color:#8a5b08}

/* 1.1 Plan de cuentas */
.chart-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-kpis .kpi-alert{border-color:#efb9b9;background:#fff6f6}.chart-management-import-only{margin:4px 0 10px}.chart-management-import-only .chart-management-card{max-width:360px;border-style:dashed;background:#fafcff}.chart-management-import-only summary{font-size:12px;color:#5b6f82}.chart-quick-filters,.entry-filter-chips,.financial-period-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0}.filter-chip{display:inline-flex;align-items:center;min-height:31px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#617487;font-size:11px;font-weight:800;text-decoration:none}.filter-chip:hover,.filter-chip.active{border-color:#9ac8ef;background:#eaf4ff;color:#1769bd}.accounting-chart-filters{padding:13px;gap:9px}.accounting-chart-table tbody tr:hover{background:#f2f8ff!important}.accounting-chart-table tr.account-level-1 .account-name{font-size:14px;font-weight:900}.accounting-chart-table tr.account-level-2 .account-name{font-size:13.5px;font-weight:850}.accounting-chart-table td:nth-child(6){font-size:0}.accounting-chart-table td:nth-child(6)::first-letter{font-size:12px}.accounting-chart-table td:nth-child(6){max-width:95px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.account-tree-toggle{font-size:11px;background:#f0f6fc}.account-tree-name{position:relative}.account-tree-name:before{content:"";position:absolute;left:calc(var(--account-depth) * 16px + 10px);top:-11px;bottom:-11px;width:1px;background:rgba(76,122,165,.13);pointer-events:none}.accounting-chart-table tr.account-level-1 .account-tree-name:before{display:none}

/* 1.2 Libro de asientos */
.accounting-balance-kpi{background:linear-gradient(180deg,#f5fff9,#fff);border-color:#bde4cb!important}.balance-good{color:#17814d!important;font-size:20px!important}.accounting-book-panel .panel-title{align-items:center}.entry-filter-chips{margin-top:2px}.accounting-entry-filters{padding:12px;gap:9px}.entry-concept{max-width:340px}.entry-concept span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accounting-book-panel tbody tr:nth-child(even){background:rgba(28,78,129,.018)}.accounting-book-panel tbody tr:hover{background:#f5f9fd}.accounting-book-panel tfoot th{background:#f3f7fb;border-top:2px solid #c9d8e7}.accounting-source-badge{white-space:nowrap}.accounting-entry-editor>summary{display:inline-flex;padding:9px 13px;border:1px solid var(--line);border-radius:9px;color:#1769bd;font-weight:850;cursor:pointer;background:#f7fbff}.accounting-entry-editor[open]>summary{margin-bottom:14px}

/* 1.3 / 1.4 Estados financieros */
.financial-period-chips{justify-content:flex-start;margin-top:4px;margin-bottom:10px}.financial-period-chips>span{margin-left:auto;color:var(--muted);font-size:11px}.financial-result-kpi{position:relative;overflow:hidden}.financial-result-kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px}.financial-result-kpi.loss{background:linear-gradient(180deg,#fff,#fff7f7);border-color:#efc5c5!important}.financial-result-kpi.loss:after{background:#ce3d3d}.financial-result-kpi.profit{background:linear-gradient(180deg,#fff,#f5fff8);border-color:#bce4ca!important}.financial-result-kpi.profit:after{background:#20a05e}.financial-result-kpi strong{font-size:28px!important}.financial-primary-kpi.financial-result-kpi small b{color:inherit}.financial-secondary-kpi{opacity:.82}.financial-statement-table .financial-title-row{font-weight:800}.financial-statement-table .financial-title-row.level-1{background:#eaf2fa}.financial-statement-table .financial-title-row.level-2{background:#f1f6fb}.financial-statement-table .financial-title-row.level-3{background:#f7fafd}.financial-statement-table tbody tr:hover{background:#f4f9fe}.financial-account-name{padding-left:calc(var(--fin-depth) * 20px)}.financial-negative-balance td.num{color:#bd3030;font-weight:800}.financial-net-result-row td,.financial-current-result td{border-top:2px solid #aebfd0;background:#f6f9fc;font-size:12px}.financial-net-result-row.negative-row td,.financial-current-result.negative-row td{background:#fff1f1;color:#a82c2c}.financial-net-result-row.positive-row td,.financial-current-result.positive-row td{background:#eefbf3;color:#147443}.balance-control.balance-ok{position:relative;padding-left:58px}.balance-control.balance-ok:before{content:"✓";position:absolute;left:20px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#1ea35f;color:#fff;font-weight:900}.financial-opening-note.compact{padding:0;border:1px solid #cfdef0;border-radius:11px;background:#f7fbff}.financial-opening-note.compact summary{padding:10px 13px;color:#55718d;font-weight:800;cursor:pointer}.financial-opening-note.compact p{margin:0;padding:0 13px 12px;color:var(--muted);font-size:11px}.financial-report-filters{align-items:end}.financial-position-kpis article:first-child{border-color:#9bc9f0;background:linear-gradient(180deg,#fff,#f5fbff)}.financial-position-kpis article:first-child strong{font-size:27px}

@media(max-width:1050px){.executive-alerts{grid-template-columns:1fr}.chart-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-period-chips>span{width:100%;margin-left:0}}
@media(max-width:700px){.chart-kpis{grid-template-columns:1fr}.movement-quick-filters{justify-content:flex-start}.financial-period-chips{align-items:flex-start}.login-form-panel{padding:22px}.login-form-panel .login-logo{width:120px!important}}
.financial-code-badge{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:4px 7px;border-radius:7px;background:#edf4fb;color:#246597;font-size:10px;font-weight:850;letter-spacing:.03em}.chart-actions-menu{position:relative}.chart-actions-menu>summary{display:grid;place-items:center;width:34px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#1769bd;font-size:20px;font-weight:900;cursor:pointer;list-style:none}.chart-actions-menu>summary::-webkit-details-marker{display:none}.chart-actions-menu[open]{z-index:9000}.chart-actions-popover{position:absolute;right:0;top:calc(100% + 5px);z-index:9100;display:grid;min-width:170px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 15px 34px rgba(11,32,54,.2)}.chart-action-item{display:block;width:100%;padding:9px 10px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#194b75!important;text-align:left!important;font-size:12px!important;font-weight:750!important;text-decoration:none;box-shadow:none!important}.chart-action-item:hover{background:#eef6ff!important}.accounting-chart-scroll,.accounting-chart-table,.accounting-chart-table tbody,.accounting-chart-table tr,.accounting-chart-table td:last-child{overflow:visible}.accounting-chart-scroll{overflow:auto}.accounting-chart-table tr:has(.chart-actions-menu[open]){position:relative;z-index:8900}

/* v1.65.45 · Bancos 2.1–2.4 · simplificación visual y conciliación por foco */
.bank-account-cards{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.bank-account-card{position:relative}
.bank-card-metrics-compact{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,.9fr);gap:12px}
.bank-card-metrics-compact>span{padding:12px 14px;border:1px solid var(--line,#e2e8f0);border-radius:11px;background:#f8fbfe;display:grid;gap:3px}
.bank-card-metrics-compact small{font-size:.74rem;color:var(--muted)}
.bank-card-metrics-compact strong{font-size:1.15rem;color:#123f76}
.bank-card-metrics-compact em{font-size:.74rem;color:var(--muted);font-style:normal}
.bank-balance-metric strong{font-size:1.55rem}.bank-balance-metric.negative strong{color:#b4232c}
.bank-row-actions-modern{display:flex;align-items:center;gap:8px}.bank-actions-menu{position:relative}.bank-actions-menu summary{list-style:none;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;font-weight:900;cursor:pointer;background:#fff;color:#164f8d}.bank-actions-menu summary::-webkit-details-marker{display:none}.bank-actions-popover{position:absolute;z-index:80;right:0;top:46px;min-width:180px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(19,45,74,.18);display:grid}.bank-actions-popover a,.bank-actions-popover button{border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;color:#17324d;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.bank-actions-popover a:hover,.bank-actions-popover button:hover{background:#eef6ff}.bank-actions-popover form{margin:0}
.bank-executive-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.bank-executive-kpis article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;display:grid;gap:5px;box-shadow:0 3px 12px rgba(17,56,94,.04)}.bank-executive-kpis span{font-size:.79rem;font-weight:800;color:var(--muted)}.bank-executive-kpis strong{font-size:1.55rem;color:#113f78}.bank-executive-kpis small{color:var(--muted)}.bank-executive-kpis .bank-current-balance{border-color:#9ac7ef;background:linear-gradient(180deg,#f4faff,#fff)}.bank-executive-kpis .bank-current-balance strong{font-size:1.9rem}.bank-executive-kpis .bank-current-balance.negative{border-color:#efb6bb;background:#fff7f7}.bank-executive-kpis .bank-current-balance.negative strong{color:#b4232c}
.bank-balance-alert{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border-radius:13px;margin:0 0 16px;border:1px solid}.bank-balance-alert>div{display:grid;gap:3px}.bank-balance-alert b{font-size:1rem}.bank-balance-alert span{font-size:.84rem}.bank-balance-alert.is-ok{border-color:#a8dfbf;background:#effaf4;color:#17633f}.bank-balance-alert.has-difference{border-color:#f0b4b8;background:#fff4f4;color:#96242b}.bank-balance-alert.has-difference b{font-size:1.12rem}
.bank-movement-badge,.reconciliation-status-badge,.classification-badge,.bank-note-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.02em;margin-right:7px}.bank-movement-badge.credit{background:#e9f8ef;color:#187347}.bank-movement-badge.debit{background:#fff0f0;color:#a92c34}.reconciliation-status-badge.confirmed,.bank-note-status.confirmed,.bank-note-status.accounted{background:#e8f8ef;color:#167246}.reconciliation-status-badge.pending,.bank-note-status.pending{background:#fff3df;color:#9a5b00}.classification-badge.classified{background:#eef6ff;color:#185b98}.classification-badge.unclassified{background:#fff0f0;color:#a92c34}
.bank-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.bank-filter-chips a,.bank-filter-chips button{appearance:none;border:1px solid #cbd9e7;background:#fff;color:#31516f;border-radius:999px;padding:7px 12px;font-weight:800;font-size:.78rem;text-decoration:none;cursor:pointer}.bank-filter-chips .active{background:#1674d6;color:#fff;border-color:#1674d6}.reconciliation-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.reconciliation-pending-kpi{border-color:#f0bf76!important;background:#fff9ef!important}.reconciliation-pending-kpi strong{color:#a35d00!important}
.reconciliation-list{display:grid;gap:9px}.reconciliation-item{padding:13px 15px;border-left-width:3px}.reconciliation-item .panel-title{margin:0}.reconciliation-item-head{align-items:center}.reconciliation-item-head h2{font-size:1rem;margin:2px 0}.reconciliation-item-head p{margin:0}.reconciliation-item-actions{display:flex;align-items:center;gap:10px}.reconciliation-item.selected{border-color:#64a8e7;box-shadow:0 0 0 2px rgba(22,116,214,.08);padding:16px}.reconciliation-active-detail{padding-top:15px;margin-top:13px;border-top:1px solid var(--line)}.reconciliation-select-hint{margin:14px 0 0;padding:18px;border:1px dashed #b9cde0;background:#f8fbfe;border-radius:13px;display:grid;gap:4px;text-align:center;color:#46627f}.reconciliation-select-hint b{color:#173f68}.reconciliation-form{margin-top:4px}.reconciliation-allocations{max-height:360px;overflow:auto;padding-right:4px}.reconciliation-allocation-row:nth-of-type(n+6){display:none}.reconciliation-allocations:focus-within .reconciliation-allocation-row:nth-of-type(n+6){display:grid}
.bank-note-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.bank-note-pending{border-color:#f1be71!important;background:#fff9ef!important}.bank-note-pending strong{color:#9c5b00!important}.bank-notes-table th,.bank-notes-table td{vertical-align:middle}.bank-note-concept{max-width:360px}.bank-note-concept b,.bank-note-concept small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-note-value.debit b{color:#a82d35}.bank-note-value.credit b{color:#187347}.bank-notes-table tr[data-filter-state="confirmed"]{background:#fbfcfd}.bank-notes-table tbody tr:hover{background:#f3f8fd}.bank-note-more{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;text-decoration:none;font-weight:900;color:#165ca1;background:#fff}
@media(max-width:1000px){.bank-executive-kpis,.reconciliation-kpis,.bank-note-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-card-metrics-compact{grid-template-columns:1fr}}
@media(max-width:650px){.bank-executive-kpis,.reconciliation-kpis,.bank-note-kpis{grid-template-columns:1fr}.bank-balance-alert{align-items:stretch;flex-direction:column}.reconciliation-item-actions{align-items:flex-end;flex-direction:column}.bank-card-metrics-compact{grid-template-columns:1fr}}
html[data-theme="dark"] .bank-card-metrics-compact>span,html[data-theme="dark"] .bank-actions-menu summary,html[data-theme="dark"] .bank-actions-popover,html[data-theme="dark"] .bank-executive-kpis article,html[data-theme="dark"] .bank-filter-chips a,html[data-theme="dark"] .bank-filter-chips button{background:#13283c;color:#dce8f4;border-color:#29465f}html[data-theme="dark"] .bank-actions-popover a,html[data-theme="dark"] .bank-actions-popover button{color:#dce8f4}html[data-theme="dark"] .bank-actions-popover a:hover,html[data-theme="dark"] .bank-actions-popover button:hover{background:#1c3852}


/* v1.65.47 · proyectos basados exclusivamente en cotizaciones aprobadas */
.project-quote-selector select{font-weight:750}
.project-quote-preview{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;padding:12px;border:1px solid #cfe0f1;border-radius:12px;background:#f7fbff}
.project-quote-preview>div{min-width:0;padding:8px 10px;border-radius:9px;background:var(--panel)}
.project-quote-preview span,.project-quote-preview strong{display:block}.project-quote-preview span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.03em}.project-quote-preview strong{margin-top:4px;font-size:15px;color:var(--navy)}
.project-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px}.project-modal-actions .button,.project-modal-actions button{min-width:150px;text-align:center}
.project-budget-field input[readonly],.project-edit-grid input[readonly]{background:var(--soft);color:var(--navy);cursor:not-allowed}
.project-budget-quotes .panel-title{align-items:flex-start}.project-budget-quotes .panel-title>strong{font-size:24px;color:var(--blue);white-space:nowrap}
.project-budget-quote-list{overflow:auto;border:1px solid var(--line);border-radius:11px}.project-budget-quote-list table{margin:0;min-width:760px}.project-budget-quote-list tfoot th{background:var(--soft);border-top:2px solid var(--line)}
.project-quote-role{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.02em}.project-quote-role.role-base{background:#e8f3ff;color:#155b96}.project-quote-role.role-alcance{background:#f1ebff;color:#6343a6}
.project-scope-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.project-scope-form label{margin:0}.project-scope-form button{min-width:160px;height:42px}.project-no-scope{margin-top:10px}
.project-management-content>.panel>.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-management-content>.panel>.panel-title>button,.project-management-content>.panel>.panel-title>.button,.project-management-content>.panel>.panel-title form button{min-height:40px;padding:9px 14px;white-space:nowrap}
.project-management-content .expense-batch-actions,.project-management-content .expense-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.project-management-content .expense-batch-actions button,.project-management-content .expense-bulk-actions button{min-height:40px;padding:9px 14px}
.project-edit-savebar button{min-height:42px}.project-management-footer{display:none!important}
@media(max-width:760px){.project-quote-preview{grid-template-columns:1fr}.project-modal-actions,.project-scope-form{grid-template-columns:1fr;display:grid}.project-modal-actions .button,.project-modal-actions button,.project-scope-form button{width:100%}.project-management-content>.panel>.panel-title{align-items:stretch;flex-direction:column}.project-management-content>.panel>.panel-title>button,.project-management-content>.panel>.panel-title>.button{width:100%;text-align:center}}

/* v1.65.49 · modales contables, configuración bancaria y fecha ESF */
.accounting-entry-editor-modal .app-modal-dialog{max-width:1180px;width:min(96vw,1180px)}
.accounting-entry-editor-body{padding:22px 26px 28px}
.accounting-entry-editor-body .accounting-entry-form{margin:0}
.accounting-entry-editor-body .accounting-lines-wrap{max-height:48vh;overflow:auto;border-radius:14px}
.accounting-entry-editor-body .accounting-lines thead{position:sticky;top:0;z-index:2}
.accounting-entry-editor-body .form-actions{position:sticky;bottom:-28px;background:linear-gradient(180deg,rgba(255,255,255,.8),#fff 28%);padding:18px 0 4px;margin-top:14px;z-index:3}

.bank-tabs .bank-tab-button{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:10px 16px;border-radius:12px;cursor:pointer}
.bank-tabs .bank-tab-button:hover{background:var(--soft,#eef5fb);color:var(--primary,#0874d1)}
.bank-config-modal .app-modal-dialog{max-width:1080px;width:min(94vw,1080px)}
.bank-config-modal-body{padding:20px 24px 26px}
.bank-config-modal-body>.panel{box-shadow:none;border:0;padding:0;margin:0;background:transparent}
.bank-config-modal-body>.panel>.panel-title{display:none}
.bank-config-modal-body .bank-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.bank-config-modal-body .bank-config-grid>section{border:1px solid var(--border,#d9e4ef);border-radius:16px;padding:18px;background:var(--card,#fff)}
.bank-config-modal-body .panel-actions{margin-top:16px}

.esf-cutoff-toolbar{display:grid;grid-template-columns:minmax(240px,330px) auto 1fr auto;align-items:end;gap:12px;padding:14px 16px;border:1px solid var(--border,#dbe5ee);border-radius:14px;background:var(--soft,#f7fafc)}
.esf-cutoff-toolbar label{display:grid;gap:7px;font-weight:700;color:var(--text,#18324a)}
.esf-cutoff-toolbar input[type=date]{min-height:44px;width:100%}
.esf-date-shortcuts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.esf-generate-button{grid-column:4;min-height:44px;min-width:150px}
.esf-generated-feedback{margin-top:10px;color:var(--muted,#6b7f93);font-size:.92rem}
@media(max-width:900px){.esf-cutoff-toolbar{grid-template-columns:1fr}.esf-generate-button{grid-column:1;width:100%}.esf-date-shortcuts{order:2}.bank-config-modal-body .bank-config-grid{grid-template-columns:1fr}}

/* v1.65.50 · UX/UI transversal Módulo 3 Compras */
.quick-filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.filter-chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border:1px solid #cfdced;border-radius:999px;background:#fff;color:#1766ad;font-weight:800;font-size:.84rem;text-decoration:none;cursor:pointer}.filter-chip:hover,.filter-chip.active,.filter-chip.is-active{background:#eaf4ff;border-color:#7eb6eb;color:#0b5ca8}.purchase-report-quick{margin-top:0;margin-bottom:8px}.purchase-list-chips{margin-top:0}
.row-actions-menu{position:relative;display:inline-block;vertical-align:middle}.row-actions-menu>summary{list-style:none;width:38px;height:36px;border:1px solid #cedbec;border-radius:10px;background:#fff;color:#1267b1;font-size:20px;font-weight:900;line-height:29px;text-align:center;cursor:pointer}.row-actions-menu>summary::-webkit-details-marker{display:none}.row-actions-menu[open]{z-index:90}.row-actions-menu>div{position:absolute;right:0;top:42px;min-width:170px;padding:7px;border:1px solid #d4deea;border-radius:12px;background:#fff;box-shadow:0 14px 36px rgba(15,43,74,.18);z-index:200}.row-actions-menu>div a,.row-actions-menu>div button{display:block;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:8px;text-align:left;color:#164f88;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.row-actions-menu>div a:hover,.row-actions-menu>div button:hover{background:#eef6ff}.purchase-action-cell,.po-row-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}.purchase-register-wrap th,.purchase-register-wrap td{vertical-align:middle}.purchase-register-wrap .num b{font-size:1.02em}
.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.74rem;font-weight:900;letter-spacing:.02em}.status-pill.warning{background:#fff1d6;color:#9a5a00}.kpi-danger{border-bottom-color:#d94b4b!important;background:linear-gradient(180deg,#fff,#fff7f7)!important}.kpi-danger strong{color:#b12d2d!important}.kpi-warning{border-bottom-color:#e8a02d!important;background:linear-gradient(180deg,#fff,#fffaf0)!important}.kpi-warning strong{color:#a96700!important}
.supplier-master-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:8px 0 14px}.supplier-master-toolbar label{flex:1;max-width:520px;font-weight:800;color:#4c6380}.supplier-master-toolbar input{display:block;width:100%;margin-top:6px}.supplier-master-toolbar span{font-size:.86rem;color:#6c7f95;font-weight:700;padding-bottom:10px}.supplier-contact-cell span,.supplier-contact-cell small{display:block}.supplier-contact-cell small,.supplier-master-table .muted{color:#8a99ab}.supplier-master-table td{vertical-align:middle}.supplier-master-table .num b{color:#163d68}.supplier-form-section{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid #e0e8f1;border-radius:14px;background:#fbfdff}.supplier-form-section h3{grid-column:1/-1;margin:0;color:#174f86}.supplier-active-switch{align-self:end;min-height:46px}.supplier-form-actions{grid-column:1/-1;position:sticky;bottom:0;background:#fff;padding:10px 0 0;border-top:1px solid #e6edf5;z-index:2}.ruc-validation-hint.valid{color:#12834a}.ruc-validation-hint.invalid{color:#b52e2e}.supplier-master-table tbody tr:hover{background:#f5faff}
.mini-progress{height:5px;background:#e8eef5;border-radius:999px;overflow:hidden;margin-top:6px;max-width:220px}.mini-progress span{display:block;height:100%;background:#2380cf;border-radius:999px}.category-badge{display:inline-flex;max-width:230px;padding:4px 8px;border-radius:999px;background:#edf5ff;color:#155f9d;font-weight:800}.truncate-cell{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price-opportunity{background:#fff1e5!important;color:#a14d00!important;font-weight:900}.price-opportunity::before{content:'▲ ';font-size:.72em}
.purchase-payment-kpis+.quick-filter-row{margin-top:-2px}.payment-add-form .modal-action-row{position:sticky;bottom:-1px;background:#fff;padding:10px 0;z-index:3;border-top:1px solid #e1e8f0}.other-payment-concept{max-width:280px}.other-payment-concept span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cxp-kpis .kpi-danger{box-shadow:0 0 0 1px rgba(205,56,56,.08)}.cxp-provider-summary-table td.num{white-space:nowrap}.cxp-provider-summary-table tbody tr:hover{background:#f7fbff}
.po-dropzone{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:150px;border:2px dashed #9fc4e8!important;border-radius:16px;background:#f7fbff;padding:22px!important;text-align:center;color:#174e82}.po-dropzone span{font-weight:500;color:#6d8197;margin:7px 0 12px}.po-dropzone input[type=file]{max-width:520px;background:#fff}.po-dropzone.is-dragging{background:#e9f5ff;border-color:#1d75c5!important}.po-editor-summary{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:15px;margin:10px 0;padding:11px 14px;background:#f4f9ff;border:1px solid #cfe1f3;border-radius:12px}.po-editor-summary div{display:flex;gap:12px;align-items:baseline}.po-editor-summary span{font-weight:800;color:#46617e}.po-editor-summary strong{font-size:1.25rem;color:#075da9}.po-history-filters{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:10px;margin-bottom:12px}.po-history-panel tbody tr:hover{background:#f6fbff}
@media(max-width:900px){.supplier-form-section{grid-template-columns:1fr}.supplier-master-toolbar{align-items:stretch;flex-direction:column}.po-history-filters{grid-template-columns:1fr}.row-actions-menu>div{right:auto;left:0}.purchase-action-cell,.po-row-actions{white-space:normal}}


/* v1.65.52 · menú de acciones estable montado en <body> */
.row-actions-menu>div{display:none!important}
.row-actions-portal-popover{position:fixed;z-index:2147483000;min-width:185px;max-width:min(280px,calc(100vw - 16px));padding:7px;background:#fff;border:1px solid #cedbea;border-radius:12px;box-shadow:0 18px 44px rgba(8,31,58,.28);white-space:nowrap}
.row-actions-portal-popover a,.row-actions-portal-popover button{display:flex;width:100%;min-height:39px;align-items:center;border:0;background:transparent;padding:9px 10px;border-radius:8px;text-align:left;color:#164f88;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;box-sizing:border-box}
.row-actions-portal-popover a:hover,.row-actions-portal-popover button:hover{background:#eef6ff}
.row-actions-portal-popover form{margin:0}
html[data-theme="dark"] .row-actions-portal-popover{background:#13283c;border-color:#31506a;box-shadow:0 18px 44px rgba(0,0,0,.48)}
html[data-theme="dark"] .row-actions-portal-popover a,html[data-theme="dark"] .row-actions-portal-popover button{color:#dce8f4}
html[data-theme="dark"] .row-actions-portal-popover a:hover,html[data-theme="dark"] .row-actions-portal-popover button:hover{background:#1c3852}

/* v1.65.52 · switch de proveedor */
.supplier-active-switch{grid-column:1/-1;display:flex!important;align-items:center!important;gap:12px!important;position:relative;min-height:58px!important;padding:10px 12px!important;border:1px solid #dce6f0;border-radius:12px;background:#f8fbfe;cursor:pointer;user-select:none}
.supplier-active-switch input{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.supplier-switch-control{position:relative;flex:0 0 48px;width:48px;height:27px;border-radius:999px;background:#aebdca;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:.18s ease}
.supplier-switch-control::after{content:'';position:absolute;left:3px;top:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(19,45,74,.25);transition:.18s ease}
.supplier-active-switch input:checked + .supplier-switch-control{background:#1478d0}
.supplier-active-switch input:checked + .supplier-switch-control::after{transform:translateX(21px)}
.supplier-active-switch:focus-within{outline:3px solid rgba(32,132,224,.20);outline-offset:2px;border-color:#78b5ea}
.supplier-switch-copy{display:grid;gap:2px;color:#17324d}
.supplier-switch-copy b{font-size:.96rem}
.supplier-switch-copy small{font-weight:500;color:#6f8297;line-height:1.3}
.supplier-active-switch:hover{background:#f2f8fe;border-color:#bfd7eb}
html[data-theme="dark"] .supplier-active-switch{background:#152b3f;border-color:#31506a}
html[data-theme="dark"] .supplier-switch-copy{color:#e2edf7}
html[data-theme="dark"] .supplier-switch-copy small{color:#a9bfd2}


/* v1.65.55 · mejoras visuales Módulo 4 Ventas */
.sales-row-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;white-space:nowrap}
.sales-row-actions .row-actions-menu{position:relative}
.sales-row-actions .row-actions-menu>summary{list-style:none;cursor:pointer;min-width:42px;text-align:center}
.sales-row-actions .row-actions-menu>summary::-webkit-details-marker{display:none}
.sales-row-actions .row-actions-menu>div{display:flex;flex-direction:column;gap:6px;min-width:190px}
.sales-row-actions .row-actions-menu>div>a,.sales-row-actions .row-actions-menu>div>button,.sales-row-actions .row-actions-menu>div>form button{width:100%;justify-content:flex-start}
.sales-quotation-filters{grid-template-columns:minmax(240px,1.4fr) minmax(160px,.7fr) minmax(220px,1fr) auto}
.customer-table td:nth-child(5),.customer-table td:nth-child(6){max-width:260px;overflow:hidden;text-overflow:ellipsis}
.customer-table td:nth-child(5){white-space:normal}.customer-table td:nth-child(6){white-space:nowrap}
.customer-table td:nth-child(5) small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sales-period-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.commercial-detail-short{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.commercial-detail-total-row td{background:#edf5ff;border-top:2px solid #8db9e8;font-weight:700}
.cxc-customer-modal-actions{display:flex;align-items:center;gap:8px}
.cxc-critical-row td{background:rgba(183,44,44,.055)}
.cxc-critical-row td:first-child{border-left:4px solid #c13a3a}
.sales-list-tools{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:12px;margin:0 0 14px;padding:12px 14px;background:#f6f9fd;border:1px solid #d9e5f1;border-radius:14px}
.sales-list-tools label{display:grid;gap:6px;font-weight:700;color:#27496f}
.view-reportes .commercial-summary-kpis article:nth-child(3),.view-reportes .commercial-summary-kpis article.total-facturado{transform:translateY(-1px);box-shadow:0 8px 22px rgba(20,93,168,.12)}
.sales-product-table td:last-child small{display:block;color:#70839a;font-weight:500;margin-top:3px}
@media(max-width:1100px){.sales-quotation-filters{grid-template-columns:1fr 1fr}.sales-list-tools{grid-template-columns:1fr}.customer-table td:nth-child(6){max-width:180px}}


/* v1.65.56 · Reporte de ventas: rankings equilibrados */
.commercial-ranking-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch;margin-top:16px}
.commercial-ranking-card{min-width:0;display:flex;flex-direction:column}
.commercial-ranking-card .panel-title{align-items:center;gap:12px}
.commercial-ranking-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line,#d9e3ee);border-radius:14px;overflow:hidden;background:#fff}
.commercial-ranking-row{padding:12px 14px;border-bottom:1px solid var(--line,#e2e8f0);background:#fff}
.commercial-ranking-row:last-child{border-bottom:0}
.commercial-ranking-row:hover{background:#f8fbff}
.commercial-ranking-main{display:flex;align-items:center;justify-content:space-between;gap:16px}
.commercial-ranking-name{min-width:0;display:flex;align-items:center;gap:10px}
.commercial-ranking-name>span:last-child{min-width:0;display:flex;flex-direction:column;gap:2px}
.commercial-ranking-name b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0b4f9c}
.commercial-ranking-name small,.commercial-ranking-value small{display:block;color:#6f8097;font-size:.78rem}
.commercial-rank-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 27px;height:27px;border-radius:999px;background:#edf5ff;color:#1268bd;font-weight:800;font-size:.78rem}
.commercial-ranking-value{flex:0 0 auto;text-align:right}
.commercial-ranking-value b{font-size:1rem;color:#152f55}
.commercial-ranking-progress{height:6px;margin-top:9px;border-radius:999px;background:#edf2f7;overflow:hidden}
.commercial-ranking-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1484df,#2eb7dd)}
.commercial-ranking-breakdown{display:flex;justify-content:flex-end;gap:14px;margin-top:5px;color:#78879b;font-size:.74rem}
.compact-btn{padding:8px 12px;white-space:nowrap}
@media (max-width:1100px){.commercial-ranking-grid{grid-template-columns:1fr}.commercial-ranking-card{min-height:auto}}
@media (max-width:620px){.commercial-ranking-main{align-items:flex-start}.commercial-ranking-breakdown{justify-content:flex-start;flex-wrap:wrap}.commercial-ranking-value{min-width:100px}}
/* v1.65.57 · mejoras UX/UI Módulo 5 Proyectos */
.project-list-filters{display:grid;grid-template-columns:minmax(260px,1fr) 190px 230px;gap:10px;align-items:end;margin:4px 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.project-list-filters label{font-size:11px;font-weight:800;color:var(--muted)}.project-list-filters input,.project-list-filters select{margin-top:5px}
.project-list-row.project-incomplete{background:#fffaf0}.project-list-row.project-incomplete:hover{background:#fff6dc}.project-warning-badge,.project-muted-badge{display:inline-flex;margin-top:5px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.project-warning-badge{background:#fff1cc;color:#8a5a00}.project-muted-badge{background:#eef2f6;color:#6d7885}
.project-code-visible{font-weight:800;color:#60748a!important}.compact-button{padding:8px 11px!important;min-height:auto!important}.project-row-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}
.project-execution-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e7f7f0;color:#087f5b;font-weight:800}.project-execution-pill.over{background:#ffe7e4;color:#b42318}
.project-kpi-total.is-over-budget{border-color:#f3a6a0!important;background:#fff6f5}.project-kpi-total.is-over-budget:after{background:#c9362b!important}.project-kpi-total.is-over-budget strong{color:#b42318}
.project-budget-progress-head>div:last-child{font-weight:900;color:var(--blue)}
.project-result-row.has-loss{background:#fff7f6}.project-result-row.has-loss:hover{background:#fff0ee}.project-name-truncated{display:block;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-margin{display:inline-flex;padding:4px 8px;border-radius:999px;font-weight:900}.project-margin.good{background:#e7f7f0;color:#087f5b}.project-margin.warn{background:#fff1cc;color:#8a5a00}.project-margin.bad{background:#ffe7e4;color:#b42318}.project-margin.neutral{background:#eef2f6;color:#6d7885}
.project-result-profit.is-loss{background:#fff3f2!important;border-color:#f3a6a0!important}.project-result-profit.is-loss:after{background:#c9362b!important}.project-result-profit.is-profit{background:#f4fbf7!important}
.project-result-budget-progress{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.project-result-budget-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px}.project-result-budget-progress span{color:var(--muted);font-size:12px}
.project-result-breakdown{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.project-breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.project-breakdown-grid>div{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff}.project-breakdown-grid h4{margin:0 0 8px;color:var(--navy)}.project-breakdown-grid p{display:flex;justify-content:space-between;gap:14px;margin:0;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.project-breakdown-grid p:last-child{border-bottom:0}.project-breakdown-grid p span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-breakdown-grid p b{white-space:nowrap}
.project-applied-invoices .panel-title>strong,.project-expenses .panel-title>strong,.project-sales-invoices .panel-title>strong{font-size:21px;color:var(--navy)}
.expense-form select{margin-top:6px}.expense-form input::placeholder{color:#97a4b1}.expense-bulk-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.expense-selection-count{margin-right:auto}
.project-documents .document-option:has(input:checked){background:#effaf5;border-color:#a9dcc8}.project-documents .document-option:has(input:checked) b{color:#087f5b}.project-doc-save:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.project-list-filters{grid-template-columns:1fr 1fr}.project-list-filters label:first-child{grid-column:1/-1}.project-breakdown-grid{grid-template-columns:1fr}.project-name-truncated{max-width:220px}}
@media(max-width:600px){.project-list-filters{grid-template-columns:1fr}.project-list-filters label:first-child{grid-column:auto}.project-row-actions{flex-direction:column;align-items:flex-start}.project-result-budget-progress>div:first-child{flex-direction:column}}
/* v1.65.58 · mejoras UX/UI del módulo Configuración */
.config-kpis{grid-template-columns:repeat(3,minmax(0,1fr));}
.migration-stage details{border:1px solid var(--line);border-radius:14px;background:var(--soft);overflow:hidden}.migration-stage summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer;list-style:none}.migration-stage summary::-webkit-details-marker{display:none}.migration-stage summary span{color:var(--blue);font-weight:800}.migration-stage details>div{padding:0 20px 18px}.migration-stage p{margin:7px 0}
.long-process-form button.is-loading{opacity:.78;cursor:wait;position:relative}.long-process-form button.is-loading:before{content:'↻';display:inline-block;margin-right:8px;animation:cfgspin .8s linear infinite}@keyframes cfgspin{to{transform:rotate(360deg)}}
.compact-filter{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--muted)}.compact-filter select{min-width:160px}.type-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.74rem;font-weight:900;background:#eef4ff;color:#215ea8}.type-badge.type-catalogos{background:#eef8f1;color:#167045}.type-badge.type-cotizaciones{background:#fff4df;color:#9a6111}.sync-detail{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.switch-control{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.switch-control input{position:absolute;opacity:0;pointer-events:none}.switch-control span{width:44px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;transition:.18s}.switch-control span:after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 1px 4px rgba(15,23,42,.25);transition:.18s}.switch-control input:checked+span{background:#1680dc}.switch-control input:checked+span:after{transform:translateX(20px)}.switch-control b{min-width:58px}
#sri-drop-zone{border:2px dashed #b7c7dc;border-radius:16px;padding:24px!important;text-align:center;background:#f7faff;transition:.18s}#sri-drop-zone:hover{border-color:#2385dd;background:#eef7ff}.file-selection-summary{display:block;margin-top:10px;color:#175da5;font-weight:800;overflow-wrap:anywhere}.sync-row-rejected td{background:#fff2f1!important}.sync-row-rejected .sync-error{color:#b42318;font-weight:900}.sync-ok{color:#08783f;font-weight:900}
.catalog-single-layout{display:block}.catalog-main-panel{max-width:none}.catalog-section-divider{height:1px;background:var(--line);margin:20px 0}.catalog-list-title{margin-bottom:10px}.payment-method-list{display:grid;gap:8px}.payment-method-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;border:1px solid var(--line);border-radius:13px;padding:13px 16px;background:var(--card)}.payment-method-row>div:first-child{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap}.payment-method-row small{color:var(--muted)}.catalog-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:900}.catalog-status.is-active{background:#dcfce7;color:#08783f}.catalog-status.is-inactive{background:#eef1f5;color:#64748b}.active-check{justify-content:flex-start!important;text-align:left!important}
.retention-concept-cell{max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.retention-edit-card .check-option span small{display:block;margin-top:4px;color:var(--muted);font-weight:500;max-width:520px}
.never-login{color:#94a3b8;font-style:italic}.audit-filters{display:grid;grid-template-columns:220px minmax(260px,1fr);gap:12px;margin:0 0 14px}.audit-scroll{max-height:620px;overflow:auto}.audit-critical td{background:#fff3f1!important}.audit-critical .audit-action{color:#b42318;font-weight:900}
.operational-impact-box{border:1px solid #f4cf7a;background:#fff9e8;border-radius:14px;padding:14px 16px;margin-bottom:16px}.operational-impact-box b{color:#875b00}.operational-impact-box p{margin:6px 0 0;line-height:1.5}
@media(max-width:900px){.config-kpis{grid-template-columns:1fr}.audit-filters{grid-template-columns:1fr}.payment-method-row{grid-template-columns:1fr}.compact-filter{width:100%;justify-content:space-between}}
[data-theme="dark"] .sync-row-rejected td,[data-theme="dark"] .audit-critical td{background:rgba(180,35,24,.14)!important}[data-theme="dark"] #sri-drop-zone{background:rgba(31,111,181,.08)}[data-theme="dark"] .operational-impact-box{background:rgba(180,125,0,.11)}
.role-module-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.role-module-chips span{font-size:.72rem;font-weight:800;padding:5px 8px;border-radius:999px;background:#eef5ff;color:#225e9f}.role-preview{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--soft)}.catalog-row-actions{display:flex;align-items:center;gap:8px}.catalog-row-actions form{margin:0}.catalog-row-actions .compact{padding:8px 11px}
[data-theme="dark"] .role-module-chips span{background:rgba(35,133,221,.16);color:#9bc7f3}

/* v1.65.59 · refinamiento visual global: sidebar, tema, periodo y seguridad */
.theme-toggle{display:grid;gap:8px;width:100%}.theme-toggle-head{display:flex;align-items:center;gap:7px;color:#607086;font-size:11px}.theme-toggle-head b{font-size:11px}.theme-toggle-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;background:#edf2f7;border:1px solid #dbe5ef;border-radius:10px}.theme-toggle-options button{display:grid;place-items:center;gap:2px;min-width:0;min-height:44px;padding:5px 3px;border:0;border-radius:7px;background:transparent;color:#64758b;box-shadow:none}.theme-toggle-options button span{font-size:16px;line-height:1}.theme-toggle-options button small{font-size:9px;font-weight:800;line-height:1.1}.theme-toggle-options button:hover{background:#f8fbff;color:#1769bd}.theme-toggle-options button.active{background:#fff;color:#1769bd;box-shadow:0 2px 7px rgba(31,55,90,.13)}
.sidebar-help{display:flex!important;align-items:center!important;justify-content:space-between;gap:8px!important}.sidebar-footer .help-link{display:flex;align-items:center;gap:7px;white-space:nowrap}.sidebar-subaction{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:7px;background:#eef5fd;color:#1769bd!important}.sidebar-account-actions{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}.sidebar-account-actions a{justify-content:flex-start!important;gap:7px!important;min-height:32px!important;padding:6px 8px!important;white-space:nowrap}.sidebar-account-actions .sidebar-logout{background:#fff8f8!important;border-color:#f1d6d9!important;color:#b43a47!important}
.period{display:block!important;min-width:min(100%,520px)}.period-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:5px;background:#f8fafc;border:1px solid #dbe3ed;border-radius:12px;box-shadow:0 2px 8px rgba(23,35,45,.04)}.period-scope{flex:0 0 auto;border:0!important;background:#edf2f7!important;padding:3px!important}.period-navigation{display:flex;align-items:center;min-height:34px;border-left:1px solid #dbe3ed;padding-left:8px;gap:3px}.period-active-label{display:inline-flex;align-items:center;justify-content:center;min-width:105px;padding:0 6px;color:#31465f;font-size:11px;font-weight:850;white-space:nowrap}.period-navigation .period-arrow,.period-navigation .period-picker{display:grid;place-items:center;width:32px;height:32px;min-width:32px;padding:0;border:0;border-radius:7px;background:transparent;color:#1769bd;text-decoration:none;box-shadow:none}.period-navigation .period-arrow:hover,.period-navigation .period-picker:hover{background:#e9f3ff}.period-menu{z-index:120!important;box-shadow:0 18px 50px rgba(15,30,50,.22)!important}
.account-panel{width:min(100%,560px)!important;max-width:560px!important;margin:28px auto!important;padding:28px!important}.account-security-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.account-security-head h2{font-size:22px!important;margin:3px 0 6px}.account-security-head p{max-width:430px;margin:0;color:var(--muted)}.account-security-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#edf5fe;font-size:22px}.password-change-form{max-width:460px;margin:0 auto}.password-change-form label{display:grid;gap:7px;font-weight:800;color:#34465c}.account-password-wrap{position:relative}.account-password-wrap input{width:100%;padding-right:78px!important}.account-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:32px!important;padding:4px 9px!important;border:0!important;background:transparent!important;color:#1769bd!important;font-size:11px!important;box-shadow:none!important}.account-password-toggle:hover{background:#edf5fe!important}.password-strength{display:grid;gap:5px;margin-top:-4px}.password-strength-track{height:6px;overflow:hidden;border-radius:999px;background:#e8edf3}.password-strength-track i{display:block;width:0;height:100%;border-radius:inherit;background:#df4b58;transition:width .2s ease,background .2s ease}.password-strength-track i[data-score="2"]{background:#df9b28}.password-strength-track i[data-score="3"]{background:#5cae78}.password-strength-track i[data-score="4"]{background:#15966a}.password-strength span{font-size:10px;color:#718096}.password-requirements{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;margin:0;padding:0;list-style:none}.password-requirements li{position:relative;padding-left:16px;color:#8b98aa;font-size:10px}.password-requirements li:before{content:'○';position:absolute;left:0}.password-requirements li.met{color:#13805d}.password-requirements li.met:before{content:'✓';font-weight:900}.password-match{min-height:14px;color:#718096}.password-match.match{color:#13805d}.password-match.mismatch{color:#c53b49}.password-save-button{width:auto!important;min-width:190px;justify-self:start;padding-left:20px!important;padding-right:20px!important}
html[data-theme="dark"] .theme-toggle-head{color:#aebed0}html[data-theme="dark"] .theme-toggle-options{background:#101b2a;border-color:#34465c}html[data-theme="dark"] .theme-toggle-options button{color:#9fb1c5}html[data-theme="dark"] .theme-toggle-options button:hover{background:#1c2c40;color:#8fc8ff}html[data-theme="dark"] .theme-toggle-options button.active{background:#223249;color:#8fc8ff}html[data-theme="dark"] .sidebar-subaction{background:#1b2c40;color:#8fc8ff!important}html[data-theme="dark"] .sidebar-account-actions .sidebar-logout{background:#26191d!important;border-color:#583039!important;color:#ff9da8!important}html[data-theme="dark"] .period-toolbar{background:#101b2a;border-color:#34465c}html[data-theme="dark"] .period-navigation{border-color:#34465c}html[data-theme="dark"] .period-active-label{color:#dce8f5}html[data-theme="dark"] .period-navigation .period-arrow:hover,html[data-theme="dark"] .period-navigation .period-picker:hover{background:#223249}html[data-theme="dark"] .account-security-icon{background:#1b2c40}html[data-theme="dark"] .password-change-form label{color:#dce8f5}html[data-theme="dark"] .password-strength-track{background:#2c3c51}
@media(max-width:1120px){.period-toolbar{flex-wrap:wrap;justify-content:flex-end}.period-navigation{border-left:0;padding-left:0}.period-active-label{min-width:95px}}
@media(max-width:760px){.period{min-width:0}.period-toolbar{display:grid;gap:6px}.period-scope{width:100%;overflow-x:auto}.period-navigation{justify-content:center;width:100%}.period-active-label{flex:1}.account-panel{margin:16px auto!important;padding:20px!important}.password-requirements{grid-template-columns:1fr}.sidebar-help{align-items:stretch!important;flex-direction:column}.sidebar-subaction{justify-content:center}.theme-toggle-options button{min-height:40px}}


/* v1.65.60 · sidebar compacto: recuperar área útil sin perder legibilidad */
:root{--sidebar-width:218px!important}
aside.app-sidebar{width:var(--sidebar-width)!important;padding:16px 11px!important}
.content{margin-left:var(--sidebar-width)!important}
.logo-row{padding:2px 8px 14px!important;margin-bottom:10px!important}
.logo-row img{width:158px!important;max-width:100%!important}
.logo-row span{font-size:10.5px!important}
.module-navigation{gap:6px!important}
.module-navigation .nav-home{padding:9px 9px!important;font-size:12.5px!important}
.nav-module summary{padding:9px 9px!important;font-size:12.5px!important}
.nav-submenu{padding:0 4px 5px!important}
.nav-submenu a{gap:8px!important;padding:7px 8px!important;font-size:11.5px!important}
.nav-submenu a .ui-icon{width:15px!important;height:15px!important;flex-basis:15px!important}
.app-sidebar .sidebar-footer{margin-top:10px!important;border-radius:10px!important}
.sidebar-footer-section{padding:9px 9px!important}
.theme-toggle{gap:6px!important}
.theme-toggle-head{font-size:10px!important}
.theme-toggle-head b{font-size:10px!important}
.theme-toggle-options{gap:3px!important;padding:3px!important;border-radius:9px!important}
.theme-toggle-options button{min-height:38px!important;padding:4px 2px!important;border-radius:6px!important}
.theme-toggle-options button span{font-size:14px!important}
.theme-toggle-options button small{font-size:8px!important;white-space:nowrap!important}
.sidebar-help{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:center!important;gap:6px!important}
.sidebar-footer .help-link,.sidebar-subaction{justify-content:center!important;min-width:0!important;padding:6px 5px!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;border-radius:7px!important}
.sidebar-footer .help-link span,.sidebar-subaction span:last-child{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.sidebar-user b{font-size:11px!important}.sidebar-user span{font-size:9px!important}
.sidebar-account{gap:7px!important}.sidebar-account-actions{gap:5px!important}
.sidebar-account-actions a{min-height:29px!important;padding:5px 7px!important;font-size:9.5px!important;border-radius:7px!important}
.sidebar-account-actions a span:last-child{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
@media(max-width:1280px) and (min-width:761px){
  :root{--sidebar-width:208px!important}
  aside.app-sidebar{padding-left:9px!important;padding-right:9px!important}
  .logo-row img{width:150px!important}
  .nav-module summary{font-size:12px!important}
  .nav-submenu a{font-size:11px!important}
}
@media(max-width:980px) and (min-width:761px){
  :root{--sidebar-width:198px!important}
  .sidebar-help{grid-template-columns:1fr!important}
  .theme-toggle-options button small{font-size:7.5px!important}
}
@media(max-width:760px){
  aside.app-sidebar{width:100%!important;padding:12px!important}
  .content{margin-left:0!important}
  .sidebar-help{grid-template-columns:1fr 1fr!important}
}
