
:root{
  --bg:#f3f6fa;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --nav:#172231;
  --nav-hover:#24364b;
  --primary:#1769aa;
  --primary-hover:#12578d;
  --accent:#18a36b;
  --danger:#d64545;
  --text:#17202a;
  --muted:#667085;
  --border:#d9e1ea;
  --shadow:0 4px 18px rgba(16,24,40,.08);
  --radius:10px;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Segoe UI,Arial,Helvetica,sans-serif;
  font-size:15px;
  line-height:1.45;
}

/* Menú y navegación */
nav{
  background:var(--nav);
  color:#fff;
  padding:14px 18px;
  box-shadow:0 2px 10px rgba(0,0,0,.15);
}

nav a, nav button{
  color:#fff;
  text-decoration:none;
  border:0;
  background:transparent;
  padding:9px 13px;
  margin:2px;
  border-radius:7px;
  cursor:pointer;
  font-weight:600;
}

nav a:hover, nav button:hover{
  background:var(--nav-hover);
}

/* Contenedor principal */
main, .container, .content{
  max-width:1450px;
  margin:0 auto;
  padding:24px;
}

/* Títulos */
h1{
  font-size:30px;
  margin:0 0 22px;
  font-weight:700;
  color:#142033;
}

h2{
  font-size:22px;
  margin:28px 0 14px;
  color:#172b43;
}

h3{
  font-size:18px;
  margin:20px 0 10px;
}

/* Paneles / secciones */
section, .panel, .card, form{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
  margin:0 0 18px;
}

.card{
  display:inline-block;
  vertical-align:top;
  min-width:210px;
  margin:8px;
}

/* Formularios */
label{
  display:block;
  font-weight:600;
  margin:10px 0 5px;
  color:#344054;
}

input, select, textarea{
  border:1px solid #cbd5e1;
  border-radius:7px;
  background:#fff;
  color:var(--text);
  padding:9px 11px;
  min-height:38px;
  font:inherit;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}

input:focus, select:focus, textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(23,105,170,.12);
}

textarea{
  min-height:90px;
  resize:vertical;
}

/* Botones */
button, input[type="button"], input[type="submit"], input[type="reset"]{
  border:1px solid var(--primary);
  border-radius:7px;
  background:var(--primary);
  color:#fff;
  padding:9px 15px;
  min-height:38px;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  transition:.15s ease;
}

button:hover, input[type="button"]:hover, input[type="submit"]:hover{
  background:var(--primary-hover);
  border-color:var(--primary-hover);
  transform:translateY(-1px);
}

button:disabled, input:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}

/* Tablas */
table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(16,24,40,.05);
}

th{
  background:#edf3f8;
  color:#26384a;
  font-weight:700;
  text-align:left;
}

th, td{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
}

tbody tr:hover{
  background:#f8fbff;
}

/* Mensajes */
.success, .ok{
  color:#087443;
  background:#ecfdf3;
  border:1px solid #a7e8c4;
  padding:9px 12px;
  border-radius:7px;
}

.error, .alert, .danger{
  color:#a12a2a;
  background:#fff1f1;
  border:1px solid #f2b8b8;
  padding:9px 12px;
  border-radius:7px;
}

.muted{color:var(--muted)}

/* Tarjetas del dashboard */
.dashboard, .cards, .kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:16px;
}

.dashboard .card, .cards .card, .kpis .card{
  margin:0;
  min-width:0;
}

.kpi-value{
  font-size:30px;
  font-weight:700;
  margin-top:5px;
  color:#123d63;
}

.kpi-label{
  color:var(--muted);
  font-weight:600;
}

/* Links */
a{
  color:var(--primary);
}

a:hover{
  color:var(--primary-hover);
}

/* Responsive */
@media (max-width:900px){
  nav{
    position:sticky;
    top:0;
    z-index:20;
    overflow-x:auto;
    white-space:nowrap;
  }

  main, .container, .content{
    padding:14px;
  }

  h1{font-size:26px}
  h2{font-size:20px}

  section, .panel, .card, form{
    padding:15px;
  }

  input, select, textarea{
    max-width:100%;
    width:100%;
  }

  button, input[type="button"], input[type="submit"], input[type="reset"]{
    margin-top:6px;
  }

  table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
  }
}

@media (max-width:600px){
  body{font-size:14px}
  nav a, nav button{padding:8px 10px}
  main, .container, .content{padding:10px}
}

/* Interfaz negra y púrpura del ERP */
:root{
  --bg:#080910;--surface:#141521;--surface-2:#1b1a2b;
  --nav:#0e0c18;--nav-hover:#302143;
  --primary:#8d50e9;--primary-hover:#aa74fb;--accent:#bd82ff;
  --text:#f2effb;--muted:#b6aec9;--border:#352b48;
  --shadow:0 12px 32px rgba(0,0,0,.28);--radius:14px;
}
body{background:var(--bg);color:var(--text)}
[hidden]{display:none!important}
#erp-main-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;position:sticky;top:0;z-index:30;padding:11px 20px;border-bottom:1px solid #332447;background:#0e0c18;box-shadow:0 12px 35px #0008}
#erp-main-nav .brand{white-space:nowrap;font-size:17px;letter-spacing:.015em;margin-right:18px;color:#f6f1ff}
#erp-main-nav .brand-mark{color:#af70ff;font-size:24px;vertical-align:middle}
#erp-main-nav button{background:transparent;border:1px solid transparent;color:#ded6ec;border-radius:10px;margin:1px;padding:9px 10px;font-size:13px;min-height:40px}
#erp-main-nav button:hover,#erp-main-nav button.active{background:#302143;border-color:#7541ab;color:white}
#erp-main-nav button.active{box-shadow:inset 0 -2px #bc81ff}
#erp-main-nav .nav-icon{margin-right:5px;font-size:17px;vertical-align:-2px;filter:saturate(1.25)}
#erp-main-nav .signout{margin-left:auto;border-color:#674384;color:#e0b9ff}
main{max-width:1440px;margin:auto;padding:28px 24px}
main header{display:flex;align-items:center;justify-content:space-between;margin:0 0 15px;padding:0 4px;color:#d7b4ff;font-weight:700;font-size:19px}
section,.panel,.card,form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}
h1,h2,h3,label{color:#f2eafa}
h2{margin-top:0}
input,select,textarea{background:#1f1d2b;color:var(--text);border:1px solid #514565}
input::placeholder,textarea::placeholder{color:#b5acc3}
input:focus,select:focus,textarea:focus{border-color:#b380ff;box-shadow:0 0 0 3px #9d5ef52c}
button,input[type="button"],input[type="submit"],input[type="reset"]{background:#7b40cd;border-color:#7b40cd;color:white}
button:hover,input[type="button"]:hover,input[type="submit"]:hover{background:#9557e9;border-color:#9557e9}
table{background:#171623;border-color:#453650;box-shadow:none}
th{background:#282139;color:#e9d6ff}
tbody tr:hover{background:#282239}
.kpi-value{color:#c99bff}
.error,.alert,.danger{background:#35212e;color:#ffb5bd;border-color:#703b52}
.success,.ok{background:#153629;color:#a6ffd0;border-color:#317057}
.muted{color:var(--muted)}
a{color:#c496ff}
#loginPanel{max-width:440px;margin:9vh auto 25px;padding:34px}
#loginPanel .row{display:flex;flex-direction:column;gap:12px}
#loginPanel input,#loginPanel button{width:100%}
body.erp-guest #erp-main-nav,body.erp-guest main>:not(#loginPanel),body.erp-guest #erp-modules{display:none!important}
body.erp-authenticated #loginPanel{display:none!important}
#securityPanel{font-size:13px}
#erp-modules>.panel{margin-top:0}
@media(max-width:1000px){#erp-main-nav{flex-wrap:nowrap;overflow-x:auto}#erp-main-nav .brand{position:sticky;left:0;background:#0e0c18;padding-right:12px}#erp-main-nav button{flex:none}main{padding:18px 12px}}


/* Consulta rápida de artículos y stock */
.quick-stock-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.quick-stock-head h2,.quick-stock-head h3{margin-bottom:5px}
.quick-stock-actions,.quick-row-actions,.quote-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn-secondary{background:#262031!important;border-color:#57476f!important;color:#e7dcf5!important}
.btn-secondary:hover{background:#342945!important;border-color:#7c5ca2!important}
.quick-search-bar{display:flex;gap:10px;margin:16px 0 8px}.quick-search-bar input{flex:1;min-width:260px}
.quick-summary{color:var(--muted);margin:6px 0 12px;font-size:13px}.small{font-size:11px}.table-wrap{overflow-x:auto}
.quick-stock-table td{vertical-align:middle}.price-cell{font-size:17px;font-weight:800;color:#d5afff;white-space:nowrap}
.stock-total{display:inline-block;min-width:54px;text-align:center;padding:6px 10px;border-radius:999px;background:#173329;color:#adffd0;font-weight:800}
.stock-total.stock-danger{background:#3c222b;color:#ffb7c0}.stock-chip{display:inline-block;padding:4px 7px;margin:2px;border:1px solid #4a3a5e;border-radius:8px;background:#211b2c;white-space:nowrap;font-size:12px}.stock-zero{opacity:.75}
.quick-quote-card{margin-top:18px;padding:18px;border-radius:14px;background:#15121f;border:1px solid #513a69}.quick-quote-total{font-size:25px;color:#d5afff}
.qty-mini{width:90px!important;min-width:70px}.quote-options{margin-top:14px}.quote-options input{width:auto;min-width:180px}.stock-move-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
@media(max-width:700px){.quick-search-bar{flex-direction:column}.quick-stock-actions{width:100%}.quick-stock-actions button{flex:1}.quick-row-actions{min-width:170px}.quote-options input{width:100%}}


/* Alta y edición de artículos */
.article-editor-card{margin-top:18px;padding:18px;border:1px solid #70419c;border-radius:14px;background:#181321}
.article-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-top:14px}
.article-form-grid label,.initial-stock-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.article-form-grid input,.article-form-grid select,.initial-stock-grid input{width:100%;box-sizing:border-box;padding:10px;border:1px solid #4f4163;border-radius:8px;background:#12101a;color:#fff}
.article-form-grid .span2{grid-column:span 2}.checkbox-label{justify-content:flex-end;align-items:flex-start}.checkbox-label input{width:auto;margin-top:8px}
.initial-stock-box{margin-top:16px;padding:14px;border:1px solid #413450;border-radius:10px;background:#12101a}.initial-stock-box h4{margin:0 0 12px}
.initial-stock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.article-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px}
@media(max-width:900px){.article-form-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:560px){.article-form-grid{grid-template-columns:1fr}.article-form-grid .span2{grid-column:span 1}}

/* PF Tech branding */
#erp-main-nav .pf-brand{display:flex;align-items:center;gap:9px;margin-right:14px;min-height:48px}
#erp-main-nav .pf-brand img{width:42px;height:42px;object-fit:contain;flex:0 0 42px;border-radius:9px}
#erp-main-nav .pf-brand-text{display:flex;flex-direction:column;line-height:1.05}
#erp-main-nav .pf-brand-text strong{font-size:18px;letter-spacing:.025em;color:#f8f5ff}
#erp-main-nav .pf-brand-text small{margin-top:4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#b997e7}
.login-brand{text-align:center;margin:-10px 0 18px}
.login-brand img{display:block;width:min(100%,340px);height:auto;margin:auto}

/* Rueda de Gomería: CSS para que no dependa del emoji/fuente del equipo */
.tire-icon{display:inline-block;box-sizing:border-box;width:19px;height:19px;border:4px solid #cba6ff;border-radius:50%;vertical-align:-4px;position:relative;box-shadow:inset 0 0 0 2px #4b2c70,0 0 0 1px #8757bd}
.tire-icon::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#eee7ff;box-shadow:0 0 0 2px #2c2439}
.nav-tire{margin-right:7px}
.heading-tire{width:27px;height:27px;border-width:5px;vertical-align:-6px;margin-right:5px}
.heading-tire::after{inset:4px}

/* Foto principal del vehículo */
.tw-photo img{object-position:50% 50%}

@media(max-width:1000px){
  #erp-main-nav .pf-brand{position:sticky;left:0;z-index:2;background:#0e0c18;padding-right:12px}
}

/* v3.3 — editor de ventas / facturación */
.sale-editor-card{background:#15111f;border:1px solid #3f2b58;border-radius:14px;padding:16px;margin:14px 0;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.sale-editor-card h3{margin:0 0 12px;color:#f4eefc}
.sale-form-grid,.sale-item-entry,.sale-bottom-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}
.sale-form-grid label,.sale-item-entry label,.sale-bottom-grid label{display:flex;flex-direction:column;gap:6px;color:#cfc3df;font-size:13px}
.sale-form-grid input,.sale-form-grid select,.sale-item-entry input,.sale-item-entry select,.sale-bottom-grid input,.sale-bottom-grid textarea{width:100%;box-sizing:border-box}
.sale-form-grid .span2,.sale-item-entry .span2,.sale-bottom-grid .span2{grid-column:span 2}
.sale-external-box{margin-top:12px;padding:12px;border:1px dashed #7e57a8;border-radius:10px;background:#1e1730}
.info-note{margin:10px 0 0;padding:9px 11px;border-left:3px solid #9a5cff;background:#1c1628;color:#cdbbe2;border-radius:6px}
.sale-totals{display:flex;flex-direction:column;gap:6px;align-items:flex-end;justify-content:center;padding:8px 0}
.sale-totals span,.sale-totals strong{display:flex;gap:16px;justify-content:space-between;min-width:220px}.sale-totals strong{font-size:19px;color:#fff}
@media(max-width:900px){.sale-form-grid,.sale-item-entry,.sale-bottom-grid{grid-template-columns:1fr 1fr}.sale-form-grid .span2,.sale-item-entry .span2,.sale-bottom-grid .span2{grid-column:span 2}}
@media(max-width:600px){.sale-form-grid,.sale-item-entry,.sale-bottom-grid{grid-template-columns:1fr}.sale-form-grid .span2,.sale-item-entry .span2,.sale-bottom-grid .span2{grid-column:span 1}}


/* PF Tech 5.4.7 — temas rápidos por empresa */
html[data-erp-theme="GRAFITO"]{--bg:#1a2733;--surface:#263847;--surface-2:#31485b;--nav:#192632;--nav-hover:#3b556b;--primary:#5b8fb6;--primary-hover:#6fa4ca;--accent:#85b8d8;--text:#f5f8fb;--muted:#c7d2db;--border:#587084;--shadow:0 10px 24px rgba(0,0,0,.18)}
html[data-erp-theme="CLASICO"]{--bg:#e8edf2;--surface:#ffffff;--surface-2:#f5f7fa;--nav:#25384b;--nav-hover:#38536c;--primary:#2c6f9f;--primary-hover:#245d86;--accent:#3b8bbf;--text:#1d2935;--muted:#637180;--border:#c9d2dc;--shadow:0 4px 14px rgba(30,50,70,.10)}
html[data-erp-theme="VIOLETA"]{--bg:#1a1721;--surface:#292334;--surface-2:#382d47;--nav:#211a2b;--nav-hover:#4b3960;--primary:#9668cc;--primary-hover:#aa7bdd;--accent:#c3a0e7;--text:#faf7fc;--muted:#d1c5dc;--border:#655377;--shadow:0 10px 26px rgba(0,0,0,.19)}
html[data-erp-theme] body,html[data-erp-theme] main{background:var(--bg)!important;color:var(--text)!important}
html[data-erp-theme] #erp-main-nav{background:var(--nav)!important;border-color:var(--border)!important}
html[data-erp-theme] section,html[data-erp-theme] .panel,html[data-erp-theme] .card,html[data-erp-theme] form,html[data-erp-theme] .pf-card,html[data-erp-theme] .pf-modal,html[data-erp-theme] .article-editor-card{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text)!important}
html[data-erp-theme] h1,html[data-erp-theme] h2,html[data-erp-theme] h3,html[data-erp-theme] label{color:var(--text)!important}
html[data-erp-theme] input,html[data-erp-theme] select,html[data-erp-theme] textarea{background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--border)!important}
html[data-erp-theme] table{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important}
html[data-erp-theme] th{background:var(--surface-2)!important;color:var(--text)!important}
html[data-erp-theme="CLASICO"] .btn-secondary{background:#eef2f6!important;color:#26384a!important;border-color:#b9c5d0!important}
html[data-erp-theme="CLASICO"] .pf-result,html[data-erp-theme="CLASICO"] .pf-pay-choice{background:#f6f8fa!important;color:#1f2d39!important;border-color:#cad4de!important}
html[data-erp-theme="CLASICO"] .pf-total-row.main{color:#126b4e!important}
html[data-erp-theme="GRAFITO"] .btn-secondary{background:#22313f!important;color:#e7eef5!important;border-color:#42586b!important}
html[data-erp-theme="GRAFITO"] .pf-result,html[data-erp-theme="GRAFITO"] .pf-pay-choice{background:#1b2a37!important;border-color:#385065!important}

/* Contraste 5.4.6 consolidado en 5.4.7 */
html[data-erp-theme] .tercero-kpi{background:var(--surface-2)!important;border-color:var(--border)!important;color:var(--text)!important}
html[data-erp-theme] .tercero-kpi b{color:var(--text)!important}


/* 5.4.10 — contraste más suave en consultas y listados. */
html[data-erp-theme="GRAFITO"] .quick-stock-table tbody tr,html[data-erp-theme="GRAFITO"] .pf-result,html[data-erp-theme="GRAFITO"] .pf-pay-choice,html[data-erp-theme="GRAFITO"] .quick-quote-card,html[data-erp-theme="GRAFITO"] .article-editor-card,html[data-erp-theme="GRAFITO"] .initial-stock-box,html[data-erp-theme="GRAFITO"] .sale-editor-card,html[data-erp-theme="GRAFITO"] .sale-external-box,html[data-erp-theme="GRAFITO"] .info-note{background:#2a3e4f!important;color:#f6f9fb!important;border-color:#5b7489!important}
html[data-erp-theme="GRAFITO"] .quick-stock-table tbody tr:nth-child(even){background:#30475a!important}
html[data-erp-theme="GRAFITO"] .quick-stock-table tbody tr:hover,html[data-erp-theme="GRAFITO"] tbody tr:hover{background:#3a5368!important}
html[data-erp-theme="GRAFITO"] th{background:#3a5267!important;color:#fff!important}
html[data-erp-theme="GRAFITO"] td,html[data-erp-theme="GRAFITO"] .price-cell{color:#f5f8fb!important}
html[data-erp-theme="GRAFITO"] .stock-chip{background:#354c60!important;color:#f2f7fa!important;border-color:#60798d!important}
html[data-erp-theme="VIOLETA"] .quick-stock-table tbody tr,html[data-erp-theme="VIOLETA"] .pf-result,html[data-erp-theme="VIOLETA"] .pf-pay-choice,html[data-erp-theme="VIOLETA"] .quick-quote-card,html[data-erp-theme="VIOLETA"] .article-editor-card,html[data-erp-theme="VIOLETA"] .initial-stock-box,html[data-erp-theme="VIOLETA"] .sale-editor-card,html[data-erp-theme="VIOLETA"] .sale-external-box,html[data-erp-theme="VIOLETA"] .info-note{background:#30283d!important;color:#faf7fc!important;border-color:#6e5a80!important}
html[data-erp-theme="VIOLETA"] .quick-stock-table tbody tr:nth-child(even){background:#372d46!important}
html[data-erp-theme="VIOLETA"] .quick-stock-table tbody tr:hover,html[data-erp-theme="VIOLETA"] tbody tr:hover{background:#493a5a!important}
html[data-erp-theme="VIOLETA"] th{background:#4b3c5c!important;color:#fff!important}
html[data-erp-theme="VIOLETA"] td,html[data-erp-theme="VIOLETA"] .price-cell{color:#faf7fc!important}
html[data-erp-theme="VIOLETA"] .stock-chip{background:#40334f!important;color:#faf7fc!important;border-color:#765f88!important}

/* PF Tech 5.4.11 — Clásico: eliminar fondos oscuros residuales y suavizar contraste. */
html[data-erp-theme="CLASICO"] tbody tr:hover{
  background:#edf3f7!important;
  color:#1d2935!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table tbody tr{
  background:#ffffff!important;
  color:#1d2935!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table tbody tr:nth-child(even){
  background:#fafcfd!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table tbody tr:hover{
  background:#e8f0f5!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table th{
  background:#e7edf2!important;
  color:#25384b!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table td,
html[data-erp-theme="CLASICO"] .quick-stock-table td b,
html[data-erp-theme="CLASICO"] .quick-stock-table .small{
  color:#26384a!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table .muted{
  color:#6b7785!important;
}
html[data-erp-theme="CLASICO"] .quick-stock-table .price-cell{
  color:#7b40b8!important;
}
html[data-erp-theme="CLASICO"] .stock-chip{
  background:#edf2f6!important;
  color:#34495a!important;
  border-color:#c7d1da!important;
}
html[data-erp-theme="CLASICO"] .quick-quote-card,
html[data-erp-theme="CLASICO"] .article-editor-card,
html[data-erp-theme="CLASICO"] .initial-stock-box,
html[data-erp-theme="CLASICO"] .sale-editor-card,
html[data-erp-theme="CLASICO"] .sale-external-box,
html[data-erp-theme="CLASICO"] .info-note{
  background:#ffffff!important;
  color:#1d2935!important;
  border-color:#c9d2dc!important;
}
html[data-erp-theme="CLASICO"] .quick-quote-total{
  color:#6f3aa5!important;
}

/* Vista previa 5.4.12: modelo Nacional, monocromático y rápido. */
.pf-preview-back{
  position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.55);
  display:flex;align-items:flex-start;justify-content:center;padding:22px;overflow:auto;
}
.pf-preview-window{
  width:min(1080px,96vw);background:#eef1f4;border:1px solid #aeb8c2;border-radius:10px;
  box-shadow:0 18px 50px rgba(0,0,0,.30);overflow:hidden;color:#111;
}
.pf-preview-toolbar{
  position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:9px 12px;background:#f8fafc;border-bottom:1px solid #cbd5e1;
}
.pf-preview-toolbar .spacer{flex:1}
.pf-preview-toolbar button{min-height:34px;padding:6px 10px;background:#fff!important;color:#243447!important;border:1px solid #b8c4cf!important}
.pf-preview-toolbar button:hover{background:#e9eef3!important}
.pf-preview-stage{padding:18px;overflow:auto;text-align:center}
.pf-preview-page{
  --preview-scale:1;display:inline-block;text-align:left;width:794px;min-height:1123px;
  padding:30px 38px 28px;background:#fff;color:#111;border:1px solid #cfd6dd;
  box-shadow:0 5px 18px rgba(0,0,0,.16);transform:scale(var(--preview-scale));transform-origin:top center;
  margin-bottom:calc((var(--preview-scale) - 1) * 1123px + 10px);font-family:Arial,Helvetica,sans-serif;
}
.pf-preview-head{display:grid;grid-template-columns:47.8% 11.5% 40.7%;min-height:184px;border-bottom:1.5px solid #111}
.pf-preview-brand{padding:0 15px 9px 0;text-align:center;display:flex;flex-direction:column;justify-content:space-between;align-items:center}
.pf-preview-brand img{max-width:270px;max-height:105px;object-fit:contain;display:block;margin:0 auto 5px}
.pf-preview-brand-lines{font-size:12px;line-height:1.48;width:100%}
.pf-preview-letter{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border-left:1px solid #111;border-right:1px solid #111;padding-top:22px}
.pf-preview-letter b{font-size:48px;line-height:1;font-weight:500}
.pf-preview-letter small{font-size:10px;margin-top:7px}
.pf-preview-doc{padding:0 0 7px 20px;display:flex;flex-direction:column;justify-content:space-between}
.pf-preview-doc-top{font-size:13px;line-height:1.5;padding-top:5px;min-height:105px}
.pf-preview-doc .title{font-size:26px;line-height:1.08;margin-bottom:6px;font-weight:400}
.pf-preview-doc .number{font-size:22px;line-height:1.2;white-space:nowrap}
.pf-preview-doc .date{font-size:16px;margin-top:8px}
.pf-preview-doc .copy{text-align:right;font-size:10px;margin-top:8px}
.pf-preview-issuer{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;font-size:11px;line-height:1.45;align-items:end}
.pf-preview-issuer>div:last-child{text-align:right}
.pf-preview-client{display:grid;grid-template-columns:1.12fr .88fr;gap:26px;font-size:13px;line-height:1.52;padding:10px 4px 13px;border-bottom:1.2px solid #111}
.pf-preview-client b{display:inline-block;min-width:72px}
.pf-preview-items-area{min-height:455px;padding-top:7px}
.pf-preview-items{width:100%;border-collapse:collapse;font-size:11.5px;box-shadow:none!important;border:0!important;background:#fff!important;color:#111!important}
.pf-preview-items th{background:#fff!important;color:#111!important;border-top:1.2px solid #111;border-bottom:1.2px solid #111;padding:7px 4px!important;text-align:left;font-weight:700}
.pf-preview-items td{padding:8px 4px!important;border:0!important;color:#111!important;background:#fff!important;vertical-align:top}
.pf-preview-items th:nth-child(n+3),.pf-preview-items td:nth-child(n+3){text-align:right}
.pf-preview-items tbody tr:hover,.pf-preview-items tbody tr:nth-child(even){background:#fff!important}
.pf-preview-oc{font-size:9px;margin-top:3px;font-weight:700}
.pf-preview-payments{min-height:46px;padding:5px 38px 10px;font-size:11px;display:flex;align-items:flex-start}
.pf-preview-totalgrid{display:grid;border-top:1.4px solid #111;border-bottom:1.4px solid #111;font-size:10px;align-items:end}
.pf-preview-totalgrid>div{padding:7px 4px 6px;display:flex;flex-direction:column;gap:5px;min-width:0}
.pf-preview-totalgrid b{font-size:10px;white-space:normal}
.pf-preview-totalgrid span{font-size:12px;white-space:nowrap}
.pf-preview-totalgrid>div:not(:first-child){text-align:right}
.pf-preview-total-last b,.pf-preview-total-last span{font-weight:800}
.pf-preview-arca{display:grid;grid-template-columns:142px 1fr;gap:22px;padding:15px 5px 0;font-size:10.5px;line-height:1.45}
.pf-preview-qr{width:112px;height:112px;border:2px solid #111;display:grid;place-items:center;text-align:center;font-weight:800;font-size:17px;letter-spacing:.5px}
.pf-preview-arca .arca-title{font-size:27px;font-weight:800;line-height:1.05;margin-bottom:4px}
.pf-preview-arca small{display:block;margin-top:3px;font-size:9px}
.pf-preview-law{font-size:8.5px;line-height:1.35;margin-top:7px}
@media(max-width:850px){.pf-preview-page{width:720px;padding:24px}.pf-preview-stage{padding:8px}.pf-preview-items-area{min-height:410px}}

/* v5.4.13 - selector de plantilla A/B/MiPyME + vista previa moderna color */
.pf-preview-template-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#243447}
.pf-preview-template-label select{min-height:34px;padding:5px 30px 5px 9px;border:1px solid #b8c4cf;border-radius:8px;background:#fff;color:#243447;font-weight:700}
.pf-preview-page.pf-preview-modern{color:#132a4a;border-color:#d2dfeb;box-shadow:0 8px 24px rgba(35,76,125,.15)}
.pf-preview-page.pf-preview-modern .pf-preview-head{border-bottom:3px solid #2f6fd6;background:linear-gradient(110deg,#fff 0%,#f7fbff 55%,#f4efff 100%)}
.pf-preview-page.pf-preview-modern .pf-preview-letter{background:#eaf3ff;border-color:#7fa9dc;border-radius:8px;margin:0 5px 8px;padding-top:18px}
.pf-preview-page.pf-preview-modern .pf-preview-doc .title,.pf-preview-page.pf-preview-modern .pf-preview-doc .number{color:#173d78;font-weight:800}
.pf-preview-page.pf-preview-modern .pf-preview-issuer{background:#f4f7fb;border-radius:8px;padding:8px 10px}
.pf-preview-page.pf-preview-modern .pf-preview-client{background:#f5f8fc;border:1px solid #d9e3ed;border-radius:8px;padding:12px 14px;margin-top:10px}
.pf-preview-page.pf-preview-modern .pf-preview-items th{background:#244f79!important;color:#fff!important;border-color:#244f79!important;padding:8px 6px!important}
.pf-preview-page.pf-preview-modern .pf-preview-items td{border-bottom:1px solid #dfe7ef!important;padding:9px 6px!important}
.pf-preview-page.pf-preview-modern .pf-preview-payments{background:#edf4fb;border:1px solid #d6e3ef;border-radius:8px;margin:4px 0 10px;padding:10px 14px;min-height:auto}
.pf-preview-page.pf-preview-modern .pf-preview-totalgrid{border:1px solid #d3deea;border-radius:8px;overflow:hidden;background:#f6f8fb}
.pf-preview-page.pf-preview-modern .pf-preview-totalgrid>div{border-right:1px solid #d9e2ec;padding:9px 7px}
.pf-preview-page.pf-preview-modern .pf-preview-totalgrid>div:last-child{border-right:0}
.pf-preview-page.pf-preview-modern .pf-preview-total-last{background:#2f72df;color:#fff}
.pf-preview-page.pf-preview-modern .pf-preview-arca{margin-top:10px;border-top:2px solid #d8e3ee;padding-top:14px}
.pf-preview-page.pf-preview-modern .pf-preview-arca .arca-title{color:#173d78}
/* Factura B / MiPyME B: acento violeta suave sin afectar la lógica fiscal */
.pf-preview-page.pf-preview-modern:has(.pf-preview-letter b:first-child){ }
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-head{border-bottom-color:#8b5cf6;background:linear-gradient(110deg,#fff 0%,#faf8ff 55%,#f1eafe 100%)}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-letter{background:#f1eafe;border-color:#b79af3}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-doc .title,.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-doc .number,.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-arca .arca-title{color:#5b21b6}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-items th{background:#6d45a5!important;border-color:#6d45a5!important}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-total-last{background:#7c3aed}

/* v5.4.14 - cliente compacto 4 lineas + documentos relacionados en A/B/MiPyME */
.pf-preview-client-wrap{display:block}
.pf-preview-related{display:none}
.pf-preview-page.pf-preview-modern .pf-preview-client-wrap{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(230px,1fr);gap:8px;margin-top:8px}
.pf-preview-page.pf-preview-modern .pf-preview-client{margin:0!important;padding:9px 11px!important;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;line-height:1.35}
.pf-preview-page.pf-preview-modern .pf-preview-related{display:flex;flex-direction:column;gap:3px;background:#f8fafc;border:1px solid #d9e3ed;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.22;overflow:hidden}
.pf-preview-page.pf-preview-modern .pf-preview-related-title{display:block;margin:-8px -10px 4px;padding:6px 10px;background:#eaf3ff;color:#174ead}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-preview-related-title{background:#f1eafe;color:#5b21b6}
.pf-preview-page.pf-preview-modern .pf-preview-items-area{margin-top:7px;min-height:335px}

/* v5.4.17 — modelo moderno aprobado: estructura A/B tipo comparativa */
.pf-modern-slot{display:none}.pf-classic-slot{display:block}
.pf-preview-page.pf-preview-modern .pf-modern-slot{display:block}
.pf-preview-page.pf-preview-modern .pf-classic-slot{display:none}
.pf-preview-page.pf-preview-modern{padding:18px 20px 16px;background:#fff;color:#132a4a}
.pf-m17{font-size:11px;line-height:1.35;color:#132a4a}
.pf-m17-head{display:grid;grid-template-columns:1.2fr .18fr .82fr;gap:12px;align-items:stretch;margin-bottom:8px}
.pf-m17-brand{display:flex;flex-direction:column;justify-content:center;min-height:116px}
.pf-m17-brand img{max-width:260px;max-height:76px;object-fit:contain;object-position:left center;margin:0 0 2px 0}
.pf-m17-tag{font-size:16px;letter-spacing:.4px;color:#5e7a99;margin:0 0 8px 0}
.pf-m17-contact{font-size:10.5px;line-height:1.45}
.pf-m17-letter{background:#eaf3ff;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px}
.pf-preview-b .pf-m17-letter{background:#f1eafe}
.pf-m17-letter strong{font-size:38px;line-height:1;font-weight:800}.pf-m17-letter small{font-size:9px;margin-top:4px}
.pf-m17-doc{display:flex;flex-direction:column;justify-content:center;position:relative;padding-left:4px}
.pf-m17-doc>b{font-size:22px}.pf-m17-doc>strong{font-size:16px}.pf-m17-doc>span{font-size:11px;margin-top:3px}.pf-m17-doc>em{position:absolute;right:0;bottom:2px;font-style:normal;font-weight:800;background:#eaf3ff;border-radius:5px;padding:5px 9px;font-size:9px}.pf-preview-b .pf-m17-doc>em{background:#f1eafe}
.pf-m17-issuer{display:grid;grid-template-columns:1fr 1fr;background:#f4f7fa;border:1px solid #d6e0ea;border-radius:6px;padding:10px 12px;margin-bottom:8px;line-height:1.45}.pf-m17-issuer>div:last-child{padding-left:28px}
.pf-m17-section{border:1px solid #d6e0ea;border-radius:6px;overflow:hidden;margin-bottom:8px;background:#fff}
.pf-m17-section-title{background:#f1f5f8;font-size:12px;font-weight:800;padding:7px 10px}.pf-preview-b .pf-m17-section-title{background:#f5f0fe}.pf-m17-section-body{padding:10px 12px}
.pf-m17-client{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;padding:10px 12px;line-height:1.48}.pf-m17-client b{display:inline-block;min-width:82px}
.pf-m17-docs-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 28px;padding:8px 12px}.pf-m17-docs-grid b{display:inline-block;min-width:105px}
.pf-m17-items{margin-bottom:8px}.pf-m17-items table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10.5px}.pf-m17-items th{background:#244f79;color:#fff;padding:8px 7px;text-align:left;border:1px solid #d6e0ea}.pf-preview-b .pf-m17-items th{background:#6d45a5}.pf-m17-items td{padding:8px 7px;border:1px solid #d6e0ea;vertical-align:top}.pf-m17-items th:nth-child(1),.pf-m17-items td:nth-child(1){width:13%}.pf-m17-items th:nth-child(2),.pf-m17-items td:nth-child(2){width:37%}.pf-m17-items th:nth-child(3),.pf-m17-items td:nth-child(3){width:10%;text-align:right}.pf-m17-items th:nth-child(4),.pf-m17-items td:nth-child(4){width:15%;text-align:right}.pf-m17-items th:nth-child(5),.pf-m17-items td:nth-child(5){width:9%;text-align:right}.pf-m17-items th:last-child,.pf-m17-items td:last-child{width:16%;text-align:right}.pf-m17-empty td{height:26px;color:transparent}
.pf-m17-payments table{width:100%;border-collapse:collapse;font-size:10px}.pf-m17-payments th,.pf-m17-payments td{border:1px solid #d6e0ea;padding:6px 8px;text-align:left}.pf-m17-payments th:last-child,.pf-m17-payments td:last-child{text-align:right}
.pf-m17-summary{margin-top:0}.pf-m17-summary .pf-preview-totalgrid{border:0!important;border-radius:0!important}.pf-m17-summary .pf-preview-totalgrid>div{padding:8px 6px!important}.pf-m17-summary .pf-preview-total-last{background:#2f72df!important;color:#fff!important}.pf-preview-b .pf-m17-summary .pf-preview-total-last{background:#7c3aed!important}
.pf-preview-page.pf-preview-modern .pf-m17 .pf-preview-arca{grid-template-columns:1fr 112px;gap:12px;border-top:0!important;margin:2px 0 0!important;padding:4px 0 0!important}.pf-preview-page.pf-preview-modern .pf-m17 .pf-preview-arca>div:nth-child(1){order:2}.pf-preview-page.pf-preview-modern .pf-m17 .pf-preview-arca>div:nth-child(2){order:1}.pf-preview-page.pf-preview-modern .pf-m17 .pf-preview-qr{width:88px;height:88px;justify-self:end;font-size:13px}.pf-preview-page.pf-preview-modern .pf-m17 .arca-title{font-size:27px}.pf-preview-page.pf-preview-modern .pf-m17 .pf-preview-law{margin-top:4px;font-size:8px}
@media(max-width:850px){.pf-m17-head{grid-template-columns:1.2fr .18fr .82fr}.pf-m17-client{grid-template-columns:1.2fr .8fr}.pf-m17-docs-grid{grid-template-columns:1fr 1fr}}

/* v5.4.18 - plantilla moderna final aprobada */
.pf-m17-head{grid-template-columns:1fr 88px 1fr;gap:12px;align-items:stretch;margin-bottom:8px}
.pf-m17-brand{min-height:112px;align-items:center;text-align:center;justify-content:flex-start}
.pf-m17-brand img{max-width:230px;max-height:72px;object-fit:contain;object-position:center center;margin:0 auto 3px}
.pf-m17-brand .pf-m17-contact{font-size:9.6px;line-height:1.35;text-align:center;width:100%}
.pf-m17-tag{display:none!important}
.pf-m17-letter{min-width:76px;border:1px solid #d9e7f3}
.pf-m17-letter>b{font-size:9px;line-height:1;margin-top:3px}.pf-m17-letter small{font-size:8px}
.pf-m17-doc{justify-content:flex-start;padding:7px 4px 0 8px}
.pf-m17-doc>b{font-size:19px;line-height:1.05}.pf-m17-doc>strong{font-size:15px;margin-top:2px}.pf-m17-doc>span{font-size:10px}
.pf-m17-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}.pf-m17-pair .pf-m17-section{margin-bottom:0}
.pf-m17-issuer-final,.pf-m17-client-final{padding:9px 11px;line-height:1.38;min-height:92px}.pf-m17-issuer-final>strong,.pf-m17-client-final>strong{display:block;font-size:12px;margin-bottom:6px}
.pf-m17-compact{display:grid;grid-template-columns:118px 1fr;gap:3px 8px;padding:8px 10px;line-height:1.3}.pf-m17-compact b{white-space:nowrap}
.pf-m17-docs-grid{padding:7px 10px;gap:4px 22px}
.pf-m17-items{margin-bottom:8px}.pf-m17-items td{padding:6px 7px}.pf-m17-empty td{height:23px}
.pf-m17-payments{margin-top:0}.pf-m17-payments .pf-m17-section-title{padding:5px 9px}.pf-m17-payments th,.pf-m17-payments td{padding:4px 7px!important;font-size:9.3px}
.pf-m17-observations .pf-m17-section-title{padding:5px 9px}.pf-m17-observations .pf-m17-section-body{padding:6px 9px;font-size:9.3px}
.pf-m17-summary .pf-m17-section-title{padding:5px 9px}.pf-m17-summary .pf-preview-totalgrid>div{padding:6px 5px!important}
@media(max-width:850px){.pf-m17-pair{grid-template-columns:1fr 1fr}.pf-m17-head{grid-template-columns:1fr 78px 1fr}}


/* v5.4.18 FINAL - A/B/MiPyME comparten el mismo lenguaje visual azul aprobado. */
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-m17-letter{background:#eaf4ff!important;border-color:#d9e7f3!important}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-m17-items th{background:#244f79!important;border-color:#244f79!important}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-m17-section-title{background:#eef6fc!important;color:#102a56!important}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-m17-summary .pf-preview-total-last{background:#126af3!important;color:#fff!important}
.pf-preview-page.pf-preview-modern.pf-preview-b .pf-m17-doc>em{background:#eaf4ff!important;color:#102a56!important}
/* Contacto: SOLO logo y debajo dirección/teléfono/mail centrados. */
.pf-m17-brand{align-items:center!important;text-align:center!important}
.pf-m17-brand img{object-position:center center!important;margin-left:auto!important;margin-right:auto!important}
.pf-m17-contact{text-align:center!important;width:100%!important;font-size:9.4px!important;line-height:1.32!important}

.pf-preview-pdf-frame{width:100%;height:100%;border:0;background:#fff;flex:1 1 auto;min-height:0}

.pf-preview-pdf-window{display:flex;flex-direction:column;width:96vw;height:94vh;max-width:1250px;overflow:hidden}


/* Catálogo de artículos: controles visibles dentro del ancho de trabajo. */
.art-list-wrap{width:100%;max-width:100%;overflow-x:auto;min-width:0}
#articulosListadoTabla{display:table;width:100%;min-width:800px;table-layout:fixed;white-space:normal}
#articulosListadoTabla .art-col-foto{width:70px}
#articulosListadoTabla .art-col-articulo{width:auto}
#articulosListadoTabla .art-col-clase{width:18%}
#articulosListadoTabla .art-col-stock{width:100px}
#articulosListadoTabla .art-col-costo{width:132px}
#articulosListadoTabla .art-col-precio{width:170px}
#articulosListadoTabla th,#articulosListadoTabla td{padding:12px 10px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;min-width:0}
#articulosListadoTabla img{width:54px;height:54px;object-fit:cover;border-radius:8px}
#articulosListadoTabla .art-sku{display:block;margin-bottom:5px}
#articulosListadoTabla .art-description{font-size:14px;line-height:1.4}
#articulosListadoTabla .art-visible-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;margin-top:10px}
#articulosListadoTabla .art-visible-actions button{width:auto;min-width:0;min-height:34px;margin:0;padding:7px 10px;white-space:normal}
#articulosListadoTabla summary{cursor:pointer;color:var(--primary,#2255a4);font-size:12px;white-space:normal}
#articulosListadoTabla .art-extra-actions{padding-top:7px}
#articulosListadoTabla .art-extra-actions button{display:block;margin-top:6px}
#articulosListadoTabla .art-details{margin-top:8px;font-weight:400}
#articulosListadoTabla .art-details>div{margin-top:5px;line-height:1.4}
#articulosListadoTabla .art-stock-link{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;width:100%;padding:7px 5px;white-space:normal}
#articulosListadoTabla .art-stock-link span{font-size:12px}
#articulosListadoTabla .art-money{font-size:14px}
#articulosListadoTabla .art-money>b{font-size:16px}
#articuloFormPanel,#movimientoStockPanel{scroll-margin-top:80px}
@media(max-width:1000px){#articulosListadoTabla .art-col-clase{width:150px}}

.art-map-wrap{max-width:100%;overflow-x:auto}
.art-map-table{table-layout:fixed;min-width:560px;white-space:normal}
.art-map-table th,.art-map-table td{width:33%;white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.art-map-table select{min-width:0;width:100%;max-width:100%}
