:root{--navy:#0d2742;--blue:#174b78;--blue2:#22679f;--yellow:#f4b942;--bg:#f4f7fa;--card:#fff;--text:#162332;--muted:#64748b;--line:#dbe3eb;--danger:#b42318;--success:#157347;--soft:#edf4fa}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0c2239,#174b78)}.login-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 24px 60px rgba(0,0,0,.25)}.brand-mark{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:var(--yellow);color:var(--navy);font-weight:900;font-size:30px}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:22px}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:800;color:var(--blue);margin:18px 0 6px}.login-card h1{font-size:28px;margin:0 0 8px}.muted,.panel p,small{color:var(--muted)}label{display:grid;gap:7px;font-size:14px;font-weight:700;margin-top:15px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,75,120,.12)}button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 14px;font-weight:700;color:var(--text)}button:hover{border-color:#b9c7d4}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.login-card .primary{width:100%;margin-top:20px;padding:13px}.error{color:var(--danger);min-height:20px}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--navy);color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.logo-row{display:flex;align-items:center;gap:11px;padding:4px 7px 24px}.logo-row span{display:block;color:#b9c8d6;font-size:12px;margin-top:3px}.sidebar nav{display:grid;gap:5px}.nav-item{background:transparent;border:0;color:#c9d6e2;text-align:left;padding:11px 14px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.sale-nav{background:rgba(244,185,66,.16);color:#ffe5ad}.logout{margin-top:auto}.workspace{padding:26px 30px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.topbar .eyebrow{margin:0 0 4px}.topbar h2{margin:0;font-size:27px}.top-actions{display:flex;align-items:center;gap:10px}.user-badge{background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:12px;font-size:13px}.page{display:none}.active-page{display:block}.metrics{display:grid;gap:14px;margin-bottom:18px}.metrics.six{grid-template-columns:repeat(6,minmax(0,1fr))}.metrics.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metrics article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.metrics span{display:block;color:var(--muted);font-size:13px}.metrics strong{display:block;font-size:25px;margin-top:8px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.panel h3{margin:0;font-size:19px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel-head p{margin:5px 0 0;font-size:13px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.5fr);gap:17px}.action-panel{display:grid;gap:10px;align-content:start}.action-panel h3{margin-bottom:5px}.big-action{padding:14px}.list{margin-top:15px;display:grid;gap:9px}.list-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.list-item span{font-size:13px;color:var(--muted)}.badge{display:inline-block;border-radius:99px;padding:4px 9px;font-size:12px;font-weight:800;background:#e7f0f8;color:var(--blue);white-space:nowrap}.badge.low{background:#fff0e8;color:#a14310}.badge.out{background:#fdecec;color:var(--danger)}.badge.in{background:#e9f7ef;color:var(--success)}.toolbar{display:flex;gap:10px;margin-bottom:14px;align-items:end}.toolbar input{max-width:520px}.filters label{margin:0;min-width:180px}.table-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line);background:#fff}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table th,.data-table td{padding:12px 11px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;white-space:nowrap}.data-table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc}.data-table tr:hover td{background:#f8fafc}.row-actions{display:flex;gap:7px}.two-col{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:17px}.form-panel button.primary{margin-top:18px}.medium-form{max-width:760px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.full-row{grid-column:1/-1}.stock-list{display:grid;gap:9px;margin-top:15px;max-height:650px;overflow:auto}.stock-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.stock-item p{font-size:12px;margin:3px 0 0}.stock-number{font-size:20px;font-weight:900;text-align:right}.toast{position:fixed;right:24px;top:24px;z-index:1000;background:var(--navy);color:#fff;padding:13px 16px;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.2);opacity:0;transform:translateY(-8px);pointer-events:none;transition:.2s;max-width:min(420px,calc(100% - 30px))}.toast.show{opacity:1;transform:translateY(0)}dialog{border:0;border-radius:20px;padding:0;width:min(780px,calc(100% - 30px));box-shadow:0 24px 70px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(9,25,40,.65)}.dialog-form{padding:22px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.icon-button{font-size:24px;padding:1px 10px;border:0}.edit-button{padding:7px 10px;font-size:12px}.danger-text{color:var(--danger);background:transparent;border-color:transparent}.danger-button{background:var(--danger);border-color:var(--danger);color:#fff}.notice{border-radius:13px;padding:13px 15px;margin-bottom:15px}.notice.danger{background:#fff0ee;border:1px solid #f4c5bf;color:#8f2118}.notice button{margin-left:8px;padding:5px 9px}.sale-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:17px;align-items:start}.search-large{margin:15px 0}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-height:690px;overflow:auto;padding-right:3px}.product-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:13px;background:#fff}.product-card.disabled{opacity:.55}.product-code{display:block;font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.04em}.product-card h4{margin:4px 0 5px;font-size:15px}.product-card p{margin:0;font-size:12px}.product-card-footer{display:flex;justify-content:space-between;align-items:end;gap:10px}.product-card-footer div{display:grid;gap:3px}.product-card-footer strong{font-size:17px}.product-card-footer span{font-size:12px;color:var(--muted)}.product-card-footer button{padding:8px 10px;background:var(--soft);color:var(--blue);border-color:#cfdfed}.cart-panel{position:sticky;top:20px}.customer-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.customer-row button{margin-bottom:1px}.cart-items{display:grid;gap:10px;margin:15px 0;max-height:340px;overflow:auto}.empty{text-align:center;color:var(--muted);padding:24px;border:1px dashed var(--line);border-radius:12px}.cart-item{border:1px solid var(--line);border-radius:13px;padding:12px}.cart-item-head{display:flex;justify-content:space-between;gap:10px}.cart-item-head span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.cart-controls{display:grid;grid-template-columns:90px 120px 1fr;align-items:end;gap:9px;margin-top:8px}.cart-controls label{margin:0;font-size:12px}.cart-controls input{padding:8px}.cart-controls strong{text-align:right;padding-bottom:9px}.sale-totals{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0;display:grid;gap:9px}.sale-totals>div,.sale-totals>label{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0}.sale-totals input{width:140px;text-align:right;padding:8px}.grand-total{font-size:20px}.finish-button{width:100%;padding:14px;margin-top:16px}.method-list{display:grid;gap:9px;margin-top:15px}.method-list>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:10px 0}.close-panel{margin-top:17px}.cash-history-panel{margin-top:17px}.reports-grid{grid-template-columns:1fr 1fr}.receipt-dialog{width:min(650px,calc(100% - 24px))}.receipt-content{background:#fff;color:#111}.receipt-header{text-align:center;border-bottom:1px dashed #999;padding-bottom:12px}.receipt-logo{margin:0 auto 7px;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#f4b942;color:#0d2742;font-weight:900;font-size:25px}.receipt-header h2{margin:0;font-size:20px}.receipt-header p{margin:3px 0;color:#444}.receipt-document{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px dashed #999}.receipt-meta{padding:10px 0;border-bottom:1px dashed #999}.receipt-meta p{margin:4px 0;font-size:13px}.receipt-table{width:100%;border-collapse:collapse;margin-top:10px}.receipt-table th,.receipt-table td{text-align:left;padding:8px 5px;border-bottom:1px solid #ddd;font-size:12px}.receipt-table th:nth-child(n+2),.receipt-table td:nth-child(n+2){text-align:right}.receipt-table small{display:block;color:#555;margin-top:2px}.receipt-totals{margin:12px 0 0 auto;width:min(300px,100%)}.receipt-totals p{display:flex;justify-content:space-between;margin:6px 0}.receipt-grand{font-size:18px;border-top:1px solid #999;padding-top:7px}.receipt-note{text-align:center;font-size:11px;color:#555;border-top:1px dashed #999;padding-top:10px}.receipt-thanks{text-align:center;font-weight:700}.no-print{display:flex}@media(max-width:1180px){.metrics.six{grid-template-columns:repeat(3,1fr)}.sale-layout{grid-template-columns:1fr}.cart-panel{position:static}.product-grid{max-height:none}}@media(max-width:920px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(4,1fr)}.logout{margin-top:10px}.workspace{padding:20px}.metrics.four{grid-template-columns:repeat(2,1fr)}.two-col,.dashboard-grid,.reports-grid{grid-template-columns:1fr}.topbar{position:sticky;top:0;background:var(--bg);z-index:5;padding:8px 0}.product-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.sidebar nav{grid-template-columns:repeat(2,1fr)}.metrics.six,.metrics.four{grid-template-columns:1fr 1fr}.workspace{padding:15px}.topbar{align-items:flex-start}.user-badge{display:none}.form-grid{grid-template-columns:1fr}.full-row{grid-column:auto}.toolbar{flex-direction:column;align-items:stretch}.toolbar input,.filters label{max-width:none;width:100%}.data-table th,.data-table td{padding:10px 8px}.login-card{padding:25px}.login-card h1{font-size:24px}.product-grid{grid-template-columns:1fr}.customer-row{grid-template-columns:1fr}.cart-controls{grid-template-columns:1fr 1fr}.cart-controls strong{grid-column:1/-1}.sale-layout{display:block}.cart-panel{margin-top:15px}.top-actions{align-items:flex-end}.metrics strong{font-size:21px}}@media print{body{background:#fff}.app,.login-shell,.toast{display:none!important}.receipt-dialog{display:block!important;position:static!important;width:100%!important;max-width:none!important;box-shadow:none!important}.receipt-dialog::backdrop{display:none}.receipt-dialog .dialog-form{padding:0}.no-print{display:none!important}.receipt-content{font-family:Arial,sans-serif;max-width:720px;margin:auto}}
.notice{background:#edf4fa;border:1px solid #cfdfed;color:#174b78}.check-row{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.check-row input{width:auto;margin:0}.settings-grid{align-items:start}.settings-grid .panel{height:100%}input[type=file]{padding:9px}.row-actions button{padding:7px 9px;font-size:12px}

/* Etapa 8: multiusuario, red y respaldos */
.grow{flex:1}.role-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:17px}.role-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px}.role-card h4{margin:0 0 6px}.role-card p{font-size:12px;margin:0}.system-grid{align-items:start}.network-urls{display:grid;gap:9px;margin:15px 0}.network-url{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px}.network-url code{font-size:13px;overflow-wrap:anywhere}.instruction-list{padding-left:22px;color:var(--muted);display:grid;gap:7px}.audit-panel{margin-top:17px}.permission-hidden{display:none!important}.temporary-password{background:#fff0e8;border-color:#f2c49d}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#9aa7b2}.status-dot.active{background:var(--success)}
@media(max-width:1180px){.role-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.role-grid{grid-template-columns:1fr}.network-url{align-items:flex-start;flex-direction:column}}

/* Etapa 8: materias primas, fórmulas y producción */
.formula-layout { align-items: start; }
.formula-items { display: grid; gap: .75rem; }
.formula-item-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) minmax(110px, .55fr) minmax(90px, .45fr) auto;
  gap: .65rem;
  align-items: end;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--soft);
}
.formula-item-row label { margin: 0; }
.formula-item-row button { margin-bottom: .1rem; }
.panel-head.compact { margin-top: .4rem; margin-bottom: .25rem; }
.formula-card > div:last-child { display: flex; gap: .45rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.requirements-preview {
  display: grid;
  gap: .45rem;
  padding: .85rem;
  border-radius: 14px;
  background: var(--soft);
  border: 1px solid var(--line);
}
.requirements-preview:empty { display: none; }
.requirement-row { display: flex; justify-content: space-between; gap: 1rem; font-size: .92rem; border-top: 1px dashed var(--line); padding-top: .4rem; }
.requirement-row:first-of-type { border-top: 0; }
.ok-text { color: var(--success); font-weight: 700; }
.instruction-list { display: grid; gap: .75rem; padding-left: 1.3rem; color: var(--muted); }
#completeOrderDialog { width: min(720px, 96vw); }

@media (max-width: 760px) {
  .formula-item-row { grid-template-columns: 1fr 1fr; }
  .formula-item-row label:first-child { grid-column: 1 / -1; }
  .formula-item-row button { width: 100%; }
  .requirement-row { flex-direction: column; gap: .2rem; }
}

/* Etapa 9: compras y proveedores */
.purchase-form{margin-bottom:17px}.purchase-items{display:grid;gap:10px;margin:12px 0 18px}.purchase-item-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px 150px 110px auto;gap:10px;align-items:end;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fbfcfe}.purchase-item-row label{margin:0}.purchase-item-row button{margin-bottom:1px}.purchase-footer{display:flex;gap:22px;align-items:flex-start;border-top:1px solid var(--line);padding-top:16px}.purchase-total-box{min-width:310px;border:1px solid var(--line);border-radius:14px;padding:15px;background:#f8fafc}.purchase-total-box p{display:flex;justify-content:space-between;gap:20px;margin:8px 0}.purchase-total-box button{width:100%;margin-top:12px}.purchase-history-panel{margin-top:17px}.compact{margin-top:18px}.payment-history{display:grid;gap:7px;margin-top:12px}.payment-history>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.currency-usd{font-variant-numeric:tabular-nums}.overdue-text{color:var(--danger);font-weight:800}.ok-text{color:var(--success);font-weight:800}
.purchase-supplier-field{min-width:0}.purchase-supplier-row{grid-template-columns:minmax(0,1fr) auto}.purchase-supplier-row button{align-self:stretch;white-space:nowrap;background:var(--soft);border-color:#cfdfed;color:var(--blue)}
@media(max-width:1050px){.purchase-item-row{grid-template-columns:1fr 1fr}.purchase-item-row label:first-child{grid-column:1/-1}.purchase-footer{display:block}.purchase-total-box{min-width:0;margin-top:15px}}
@media(max-width:650px){.purchase-item-row{grid-template-columns:1fr}.purchase-item-row label:first-child{grid-column:auto}}
@media(max-width:520px){.purchase-supplier-row{grid-template-columns:1fr}.purchase-supplier-row button{width:100%}}


/* Etapa 11: reportes gerenciales */
.report-bars{display:grid;gap:10px}.report-bar-row{display:grid;grid-template-columns:95px 1fr 100px;align-items:center;gap:10px;font-size:.9rem}.report-bar-track{height:10px;background:#edf1f5;border-radius:999px;overflow:hidden}.report-bar-track i{display:block;height:100%;background:var(--primary,#f2a900);border-radius:inherit}.report-bar-row strong{text-align:right}@media(max-width:700px){.report-bar-row{grid-template-columns:78px 1fr}.report-bar-row strong{grid-column:2;text-align:left}}

/* ETAPA 16: asistente SUNAT */
.activation-actions { display: grid; gap: 14px; margin-top: 16px; }
.activation-confirm { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-soft); }
.activation-confirm label { display: grid; gap: 8px; }
.activation-confirm input { width: 100%; }
.danger-button { border-color: #b42318 !important; color: #b42318 !important; }
#sunatActionStatus:empty { display: none; }
@media (min-width: 760px) {
  .activation-confirm { grid-template-columns: 1fr auto; align-items: end; }
  .activation-confirm .row-actions { justify-content: flex-end; }
}

/* Navegación agrupada y compacta */
@media (min-width: 921px) {
  .app { grid-template-columns: 270px 1fr; }
}

.sidebar { padding: 18px 14px; }
.logo-row { padding: 4px 6px 17px; }
.sidebar nav { display: block; }
.sidebar .nav-item {
  width: 100%;
  border-radius: 9px;
  padding: 9px 11px;
  font-size: 13px;
}
.nav-shortcuts {
  display: grid;
  gap: 6px;
  padding-bottom: 10px;
  margin-bottom: 3px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.nav-shortcuts .nav-item { font-size: 14px; }
.nav-group { border-bottom: 1px solid rgba(255,255,255,.09); }
.nav-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 40px;
  padding: 8px 10px;
  color: #b9c8d6;
  border-radius: 9px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  list-style: none;
  user-select: none;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after {
  content: "›";
  font-size: 20px;
  line-height: 1;
  color: #8da3b6;
  transform: rotate(0deg);
  transition: transform .16s ease;
}
.nav-group > summary:hover,
.nav-group[open] > summary { background: rgba(255,255,255,.06); color: #fff; }
.nav-group[open] > summary::after { transform: rotate(90deg); }
.nav-group > summary:focus-visible { outline: 2px solid var(--yellow); outline-offset: -2px; }
.nav-group-items {
  display: grid;
  gap: 2px;
  padding: 2px 0 8px 8px;
}
.nav-group-items .nav-item {
  padding: 8px 11px;
  border-left: 2px solid rgba(255,255,255,.12);
  border-radius: 0 8px 8px 0;
  font-size: 12.5px;
}
.nav-group-items .nav-item.active {
  border-left-color: var(--yellow);
  background: rgba(244,185,66,.15);
}
.nav-item:has(.nav-symbol) { display: grid; grid-template-columns: 26px minmax(0,1fr); align-items: center; gap: 8px; }
.nav-symbol { display: inline-grid; place-items: center; width: 24px; min-height: 22px; color: #dceaf5; font-size: 16px; font-weight: 800; }
.nav-shortcuts .nav-symbol { color: var(--yellow); }
.nav-summary-label { display: flex; align-items: center; gap: 9px; }
.nav-summary-icon { display: inline-grid; place-items: center; width: 23px; height: 23px; border-radius: 7px; background: rgba(244,185,66,.18); color: #ffe5ad; font-size: 14px; }
.sales-menu[open] { margin: 4px 0 6px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(34,103,159,.2); overflow: hidden; }
.sales-menu > summary { margin: 4px; color: #fff; font-size: 12px; }
.sales-menu-items { padding: 5px 7px 9px; gap: 3px; }
.nav-section-title { padding: 10px 10px 4px; color: #86a6c0; font-size: 9.5px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.sales-menu-items > .nav-item { border-left: 0; border-radius: 9px; padding: 9px 9px; }
.sales-menu-items > .nav-item:hover { background: rgba(255,255,255,.08); }
.sales-menu-items > .nav-item.active { border-left: 0; box-shadow: inset 3px 0 0 var(--yellow); background: rgba(255,255,255,.13); }
.nav-subgroup { grid-column: 1 / -1; }
.nav-subgroup > summary { display: flex; align-items: center; justify-content: space-between; min-height: 39px; padding: 8px 9px; border-radius: 9px; color: #d6e3ee; cursor: pointer; list-style: none; font-size: 12.5px; font-weight: 700; }
.nav-subgroup > summary > span { display: flex; align-items: center; gap: 8px; }
.nav-subgroup > summary::-webkit-details-marker { display: none; }
.nav-subgroup > summary::after { content: "›"; color: #8da3b6; font-size: 18px; transition: transform .16s ease; }
.nav-subgroup[open] > summary::after { transform: rotate(90deg); }
.nav-subgroup > summary:hover,.nav-subgroup[open] > summary { background: rgba(255,255,255,.07); color: #fff; }
.nav-subgroup-items { display: grid; gap: 2px; padding: 2px 0 5px 17px; }
.nav-subgroup-items .nav-item { padding: 8px 8px; border-left: 1px solid rgba(255,255,255,.16); border-radius: 0 8px 8px 0; font-size: 11.5px; }
.nav-subgroup-items .nav-item.active { border-left-color: var(--yellow); background: rgba(244,185,66,.14); }
.sidebar .logout {
  margin-top: 12px;
  border-top: 1px solid rgba(255,255,255,.12);
  border-radius: 0;
  padding-top: 13px;
}

@media (max-width: 920px) {
  .sidebar nav { display: block; }
  .nav-shortcuts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-group-items { grid-template-columns: repeat(2,minmax(0,1fr)); padding-left: 0; }
  .nav-section-title,.nav-subgroup { grid-column: 1 / -1; }
  .nav-subgroup-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 520px) {
  .nav-group-items { grid-template-columns: 1fr; }
  .nav-subgroup-items { grid-template-columns: 1fr; }
}

.quote-items{display:grid;gap:9px;margin:12px 0}.quote-item-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(90px,.45fr) minmax(115px,.55fr) auto;gap:9px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.quote-item-row label{margin:0}.quote-item-row button{margin-bottom:1px}.quote-total-box{align-self:end;display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:10px 12px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}.quote-total-box span{color:var(--muted);font-size:12px}.quote-total-box strong{text-align:right}.quote-total-box strong:last-child{font-size:19px;color:var(--blue)}.quote-status-actions{display:flex;gap:6px;flex-wrap:wrap}.quote-status-actions button{padding:7px 9px;font-size:12px}.quote-legal-notice{text-align:center;padding:9px;border:1px dashed #999;margin:10px 0;font-size:11px;font-weight:700}.quote-validity{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed #999}
@media(max-width:700px){.quote-item-row{grid-template-columns:1fr 1fr}.quote-item-row label:first-child{grid-column:1/-1}.quote-item-row button{width:100%}}

/* Ficha completa de clientes y cabecera comercial del comprobante */
.sale-document-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 10px;
  padding:12px;
  margin:14px 0 4px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}
.sale-document-grid label{margin-top:9px;font-size:12px}
.sale-document-grid input,.sale-document-grid select{padding:9px 10px}
.sale-document-grid input[readonly]{background:#eef3f7;color:#526476}
.sale-additional{margin:14px 0;border:1px solid var(--line);border-radius:13px;background:#fbfcfe}
.sale-additional summary{padding:12px 14px;cursor:pointer;font-weight:800;color:var(--blue)}
.sale-additional[open] summary{border-bottom:1px solid var(--line)}
.sale-special-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px 14px 4px}
.sale-special-options label{margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.sale-additional>p{padding:0 14px 12px;margin:7px 0 0;font-size:12px}
.customer-dialog{width:min(1080px,calc(100% - 30px))}
.customer-dialog .dialog-form{max-height:min(88vh,900px);overflow:auto}
.customer-form-section{margin-top:17px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}
.customer-form-section h4{margin:0 0 3px;color:var(--blue);font-size:15px}
.customer-form-section label{margin-top:11px}
.customer-form-section textarea{resize:vertical}
@media(max-width:650px){
  .sale-document-grid,.sale-special-options{grid-template-columns:1fr}
  .customer-dialog{width:calc(100% - 16px)}
  .customer-dialog .dialog-form{padding:16px}
  .customer-form-section{padding:12px}
}
.network-status{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:1200;padding:8px 14px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.network-status.offline{background:var(--danger)}
body.is-busy{cursor:progress}
body.is-busy button{cursor:progress}
button:focus-visible,.nav-item:focus-visible,summary:focus-visible{outline:3px solid rgba(244,185,66,.7);outline-offset:2px}
@media(max-width:920px){.sidebar{max-height:42vh}.workspace{min-height:58vh}}
@media(max-width:650px){dialog{width:calc(100% - 16px);max-height:94vh;overflow:auto}.dialog-form{padding:17px}.topbar h2{font-size:22px}.panel{padding:16px}.row-actions{flex-wrap:wrap}.network-status{top:6px;max-width:calc(100% - 20px);text-align:center}}
.field-group{margin-top:15px}.field-group>label{margin:0 0 7px}.document-lookup-row{display:grid;grid-template-columns:1fr auto;gap:8px}.document-lookup-row button{white-space:nowrap}.document-lookup-status{margin:5px 0 0;font-size:12px}.document-lookup-status.success{color:var(--success);font-weight:700}.document-lookup-status.error{color:var(--danger)}
@media(max-width:520px){.document-lookup-row{grid-template-columns:1fr}.document-lookup-row button{width:100%}}

/* Logo configurable de la empresa */
.company-logo-settings{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:18px;
  align-items:center;
  margin:16px 0 6px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}
.company-logo-preview{
  width:150px;
  height:92px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px dashed #b8c7d4;
  border-radius:12px;
  background:#fff;
}
.company-logo-preview img{width:100%;height:100%;padding:8px;object-fit:contain}
.company-logo-preview span{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:var(--yellow);
  color:var(--navy);
  font-size:27px;
  font-weight:900;
}
.company-logo-controls{min-width:0}
.company-logo-controls>strong{font-size:15px}
.company-logo-controls>p{margin:4px 0 10px;font-size:12px}
.company-logo-controls input[type=file]{margin-bottom:10px;background:#fff}
.company-logo-controls .row-actions .primary{margin-top:0}
.receipt-logo-image{width:min(180px,70%);height:70px;border-radius:0;background:transparent;object-fit:contain}
@media(max-width:650px){
  .company-logo-settings{grid-template-columns:1fr}
  .company-logo-preview{width:100%;height:110px}
}

/* Cotización comercial A4, basada en la estructura de la referencia del negocio */
.receipt-dialog:has(.quote-a4){width:min(1080px,calc(100% - 24px))}
.quote-a4-host{background:#fff;color:#111}
.quote-a4{
  width:100%;
  min-height:270mm;
  padding:12mm 10mm;
  background:#fff;
  color:#111;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10.5pt;
  line-height:1.25;
}
.quote-a4 p{margin:0}
.quote-a4-header{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,.75fr);gap:12mm;align-items:start}
.quote-a4-company{display:grid;grid-template-columns:54mm minmax(0,1fr);gap:5mm;align-items:center;min-height:30mm}
.quote-a4-logo{display:grid;place-items:center;width:54mm;min-height:27mm;overflow:visible}
.quote-a4-logo .receipt-logo-image{display:block;width:54mm!important;height:auto!important;max-width:54mm!important;max-height:27mm;object-fit:contain;margin:0!important}
.quote-a4-logo .receipt-logo{margin:0;width:20mm;height:20mm;font-size:12mm}
.quote-a4-company-data h1{margin:0 0 1.5mm;font-size:15pt;font-weight:700;line-height:1.05}
.quote-a4-company-data p{font-size:9pt;line-height:1.25}
.quote-a4-number{min-height:31mm;border:1px solid #222;display:grid;place-content:center;text-align:center;padding:5mm}
.quote-a4-number span{font-size:12pt}
.quote-a4-number strong{font-size:18pt;font-weight:500;margin-top:1mm}
.quote-a4-customer{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(245px,.75fr);gap:12mm;margin-top:13mm}
.quote-a4-fields,.quote-a4-dates{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:1.5mm 7mm;align-content:start}
.quote-a4-fields span,.quote-a4-dates span{font-weight:400}
.quote-a4-fields strong,.quote-a4-dates strong{font-weight:500;overflow-wrap:anywhere}
.quote-a4-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:6mm}
.quote-a4-table th{padding:2.2mm 1.2mm;border-top:1px solid #222;border-bottom:1.5px solid #222;background:#f3f3f3;font-size:8.5pt;text-align:center;white-space:nowrap}
.quote-a4-table td{padding:2.2mm 1.2mm;border-bottom:1px solid #777;font-size:8.5pt;vertical-align:top;overflow-wrap:anywhere}
.quote-a4-table td:nth-child(1),.quote-a4-table td:nth-child(2){text-align:center}
.quote-a4-table .quote-number{text-align:right;white-space:nowrap}
.quote-col-qty{width:7%}.quote-col-unit{width:9%}.quote-col-code{width:13%}.quote-col-description{width:30%}.quote-col-money{width:10%}.quote-col-discount{width:8%}.quote-col-total{width:13%}
.quote-a4-summary{display:flex;justify-content:flex-end;min-height:24mm}
.quote-a4-totals{width:82mm;padding-top:1.5mm}
.quote-a4-totals p{display:grid;grid-template-columns:1fr 28mm;gap:4mm;padding:1mm 0;font-size:10pt;font-weight:700}
.quote-a4-totals span{text-align:right}.quote-a4-totals strong{text-align:right}
.quote-a4-grand{font-size:11pt!important;border-top:1px solid #222;margin-top:1mm!important;padding-top:2mm!important}
.quote-a4-words{margin-top:11mm!important;font-size:10pt;text-transform:none}
.quote-a4-words strong{text-transform:capitalize}
.quote-a4-conditions{margin-top:8mm;font-size:10pt;max-width:145mm}
.quote-a4-conditions p{margin-top:1.5mm;white-space:pre-wrap;overflow-wrap:anywhere}
.quote-a4-footer{margin-top:12mm;padding-top:2mm;border-top:1px solid #bbb;text-align:center;font-size:8pt;color:#555}
@media screen and (max-width:760px){
  .quote-a4{min-height:0;padding:20px;font-size:9pt;overflow:auto}
  .quote-a4-header,.quote-a4-customer{grid-template-columns:1fr;gap:18px}
  .quote-a4-company{grid-template-columns:130px 1fr}
  .quote-a4-number{min-height:90px}
  .quote-a4-table{min-width:780px}
}
@page quoteA4{size:A4 portrait;margin:10mm}
@media print{
  html,body{height:auto!important;max-height:none!important;overflow:visible!important}
  dialog,.receipt-dialog,.receipt-dialog .dialog-form,.receipt-content,.quote-a4-host,.quote-a4{height:auto!important;max-height:none!important;overflow:visible!important}
  .receipt-dialog{inset:auto!important;margin:0!important;border:0!important}
  .receipt-dialog::-webkit-scrollbar,.receipt-dialog .dialog-form::-webkit-scrollbar,.receipt-content::-webkit-scrollbar,.quote-a4::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  .quote-a4-host{max-width:none!important;width:100%!important;margin:0!important}
  .quote-a4{page:quoteA4;width:100%!important;min-height:277mm;padding:0!important;font-size:9.5pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .receipt-dialog:has(.quote-a4){width:100%!important;margin:0!important}
  .quote-a4-table thead{display:table-header-group}
  .quote-a4-table tr,.quote-a4-header,.quote-a4-customer,.quote-a4-summary,.quote-a4-conditions{break-inside:avoid;page-break-inside:avoid}
  .quote-a4-footer{break-before:avoid;page-break-before:avoid}
}

/* Acceso principal: composición corporativa en dos paneles */
.login-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.62fr) minmax(430px,1fr);
  place-items:stretch;
  padding:0;
  background:#f7f9fc;
}
.login-hero{
  min-width:0;
  min-height:100vh;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  padding:clamp(30px,4vw,64px);
  color:#fff;
  isolation:isolate;
  background-image:url('/static/assets/login-hero-v1.png');
  background-size:cover;
  background-position:38% center;
}
.login-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(4,23,42,.83) 0%,rgba(4,23,42,.35) 53%,rgba(4,23,42,.2) 100%),
    linear-gradient(0deg,rgba(3,17,31,.92) 0%,rgba(3,17,31,.08) 58%);
}
.login-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  z-index:-1;
  height:42%;
  background:linear-gradient(180deg,transparent,rgba(4,25,45,.5));
}
.login-hero-brand{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:850;letter-spacing:.17em;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.login-hero-brand-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--yellow);color:var(--navy);font-size:19px;font-weight:950;letter-spacing:0;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.login-hero-content{width:min(720px,88%);padding-bottom:clamp(6px,2vh,28px)}
.login-hero-pill{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;padding:8px 12px;border:1px solid rgba(255,255,255,.27);border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);font-size:12px;font-weight:750;letter-spacing:.03em}
.login-hero-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px rgba(244,185,66,.16)}
.login-hero h1{max-width:690px;margin:0;font-size:clamp(38px,3.3vw,62px);line-height:1.04;letter-spacing:-.045em;text-wrap:balance;text-shadow:0 3px 24px rgba(0,0,0,.25)}
.login-hero-content>p{max-width:590px;margin:20px 0 0;color:rgba(255,255,255,.82);font-size:clamp(15px,1.05vw,18px);line-height:1.6}
.login-hero-features{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px;color:rgba(255,255,255,.9);font-size:13px;font-weight:700}
.login-hero-features span{display:flex;align-items:center;gap:8px}
.login-hero-features span::before{content:"✓";width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:rgba(244,185,66,.18);color:#ffd67d;font-size:12px}
.login-panel{min-width:0;min-height:100vh;display:grid;place-items:center;padding:clamp(32px,4.2vw,76px);background:linear-gradient(160deg,#fff 0%,#f8fafc 100%)}
.login-card{width:min(500px,100%);padding:0;background:transparent;border-radius:0;box-shadow:none}
.login-brand-row{display:flex;align-items:center;gap:13px;margin-bottom:clamp(46px,6vh,76px)}
.login-brand-row .brand-mark{width:52px;height:52px;border-radius:15px;font-size:26px;box-shadow:0 9px 24px rgba(13,39,66,.13)}
.login-brand-logo{width:150px;height:58px;object-fit:contain;object-position:left center}
.login-brand-copy{display:grid;gap:3px}
.login-brand-copy strong{font-size:18px;color:var(--navy)}
.login-brand-copy span{font-size:12px;color:var(--muted)}
.login-kicker{margin:0 0 10px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.18em}
.login-card h2{margin:0;color:#101a2b;font-size:clamp(30px,2.1vw,40px);line-height:1.12;letter-spacing:-.035em}
.login-subtitle{margin:10px 0 30px;color:#728094;font-size:15px;line-height:1.55}
.login-field-label{display:block;margin:18px 0 8px;color:#293548;font-size:13px;font-weight:800}
.login-input-wrap{height:58px;position:relative;display:flex;align-items:center;border:1px solid #d7e0ea;border-radius:15px;background:#fff;box-shadow:0 1px 2px rgba(16,42,67,.02);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.login-input-wrap:focus-within{border-color:#2c72ad;box-shadow:0 0 0 4px rgba(34,103,159,.11),0 8px 24px rgba(21,67,106,.08);transform:translateY(-1px)}
.login-input-wrap>svg{position:absolute;left:17px;width:20px;height:20px;fill:none;stroke:#8b9aad;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.login-input-wrap input{height:100%;border:0;border-radius:15px;padding:0 52px;background:transparent;color:#172236;font-size:15px;box-shadow:none}
.login-input-wrap input:focus{border:0;box-shadow:none}
.login-input-wrap input::placeholder{color:#9aa6b6}
.login-password-toggle{position:absolute;right:8px;width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;border-radius:11px;background:transparent;color:#8b9aad}
.login-password-toggle:hover{border:0;background:#f0f5f9;color:var(--blue)}
.login-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 0}
.login-remember{display:flex;align-items:center;gap:9px;margin:0;color:#465366;font-size:13px;font-weight:650;cursor:pointer}
.login-remember input{width:17px;height:17px;margin:0;accent-color:var(--blue)}
.login-secure{color:#6f7d90;font-size:12px;font-weight:700}
.login-secure>span{color:#28a36a;font-size:10px}
.login-card .login-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:25px;padding:15px 18px;border-radius:14px;background:linear-gradient(135deg,#174b78,#22679f);border-color:#174b78;font-size:15px;box-shadow:0 12px 25px rgba(23,75,120,.22);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.login-card .login-submit:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 15px 30px rgba(23,75,120,.28)}
.login-card .login-submit span:last-child{font-size:20px;font-weight:400}
.login-error{min-height:21px;margin:10px 0 0;font-size:13px;text-align:center}
.login-help{display:flex;align-items:flex-start;gap:11px;margin-top:25px;padding:15px;border:1px solid #dfe7ef;border-radius:14px;background:rgba(240,245,249,.68)}
.login-help-icon{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e0edf7;color:var(--blue);font-size:13px;font-weight:900}
.login-help div{display:grid;gap:3px}
.login-help strong{color:#334155;font-size:12px}
.login-help div span{color:#7a8798;font-size:11px;line-height:1.4}
.login-footer{margin:26px 0 0;color:#9aa6b6;font-size:11px;text-align:center}

@media(max-width:1100px){
  .login-shell{grid-template-columns:minmax(0,1.12fr) minmax(410px,.88fr)}
  .login-hero{padding:34px}
  .login-hero-content{width:96%}
  .login-panel{padding:38px}
}
@media(min-width:821px) and (max-height:780px){
  .login-panel{padding:24px 40px}
  .login-brand-row{margin-bottom:24px}
  .login-brand-row .brand-mark{width:48px;height:48px}
  .login-subtitle{margin:7px 0 18px}
  .login-field-label{margin:12px 0 6px}
  .login-input-wrap{height:52px}
  .login-options{margin-top:12px}
  .login-card .login-submit{margin-top:18px;padding:13px 16px}
  .login-error{margin-top:7px}
  .login-help{margin-top:14px;padding:11px 13px}
  .login-footer{margin-top:13px}
}
@media(max-width:820px){
  .login-shell{grid-template-columns:1fr;min-height:100vh}
  .login-hero{min-height:310px;padding:28px;background-position:center 34%}
  .login-hero-brand{font-size:11px}
  .login-hero-content{width:min(680px,96%);padding:0}
  .login-hero h1{max-width:600px;font-size:clamp(32px,6vw,45px)}
  .login-hero-content>p{margin-top:12px;font-size:14px}
  .login-hero-pill,.login-hero-features{display:none}
  .login-panel{min-height:auto;padding:44px 28px 38px}
  .login-card{width:min(530px,100%)}
  .login-brand-row{margin-bottom:38px}
}
@media(max-width:520px){
  .login-hero{min-height:245px;padding:22px}
  .login-hero h1{font-size:30px}
  .login-hero-content>p{display:none}
  .login-panel{padding:34px 20px 28px}
  .login-brand-row{margin-bottom:34px}
  .login-brand-copy strong{font-size:16px}
  .login-card h2{font-size:30px}
  .login-subtitle{margin-bottom:24px;font-size:14px}
  .login-options{align-items:flex-start;flex-direction:column}
  .login-secure{padding-left:26px}
  .login-footer{line-height:1.5}
}
@media(prefers-reduced-motion:reduce){
  .login-input-wrap,.login-card .login-submit{transition:none}
}
