:root{font-family:Inter,Arial,sans-serif;color:#251d1b;background:#f7f1ed}body{margin:0}header{background:#2b201d;color:white;padding:16px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px}nav{display:flex;gap:10px;flex-wrap:wrap}nav a{color:white;text-decoration:none;background:#4b3934;padding:8px 10px;border-radius:10px}.navgroup{position:relative}.navbtn{color:white;text-decoration:none;background:#4b3934;padding:8px 10px;border-radius:10px;border:0;cursor:pointer}.navmenu{display:none;position:absolute;top:40px;left:0;background:#2b201d;padding:8px;border-radius:12px;box-shadow:0 10px 24px #0004;min-width:180px;z-index:10}.navmenu a{display:block;margin:4px 0;background:#4b3934}.navgroup:hover .navmenu,.navgroup:focus-within .navmenu{display:block}main{padding:28px;max-width:1200px;margin:auto}h1{margin-top:0}.card,.metric{background:white;border-radius:18px;padding:18px;box-shadow:0 8px 24px #0001;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.metric b{display:block;font-size:32px;margin-top:10px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0001}th,td{padding:10px;border-bottom:1px solid #eee;text-align:left}th{background:#efe4dc}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.row{display:flex;gap:10px;flex-wrap:wrap}input,select,button{padding:12px;border:1px solid #ddd;border-radius:12px}button{background:#2b201d;color:white;cursor:pointer;border:0}.danger{background:#9b2c2c}.inline{display:inline}.flash{padding:12px 16px;border-radius:12px;margin-bottom:14px}.ok{background:#dff5df}.error{background:#ffdede}.muted{color:#776b67}.login{max-width:420px;margin:60px auto}.login form{display:grid;gap:12px}.login label{display:grid;gap:6px}@media(max-width:800px){header{display:block}.cols{grid-template-columns:1fr}main{padding:16px}table{font-size:13px}.navmenu{position:static;margin-top:6px}}
.danger-card { border-left: 4px solid #b00020; }
button.danger, .danger { background: #b00020; color: #fff; border-color: #b00020; }
button.danger:hover { filter: brightness(0.95); }
.dashboard-grid .metric{min-height:96px}.metric.accent{border-left:5px solid #0a6ed1}.metric.warning{border-left:5px solid #e76500}.ticket-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.ticket-total{font-size:28px;font-weight:800;color:#0a6ed1}.btnlink{display:inline-flex;align-items:center;padding:10px 12px;border-radius:12px;background:#eaf3ff;color:#0a4f9e;text-decoration:none;border:1px solid #c7ddf4}
.kpi span{display:block;color:#5f6f7d;font-size:13px;text-transform:uppercase;letter-spacing:.03em}.kpi strong{display:block;font-size:28px;margin-top:6px;color:#0a4f9e}.badge{display:inline-block;background:#eaf3ff;color:#0a4f9e;border:1px solid #c7ddf4;border-radius:999px;padding:4px 8px;font-size:12px}.form-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-row label{display:grid;gap:6px}
.invalid-row{background:#ffe5e5!important;outline:2px solid #b00020;outline-offset:-2px}.invalid-row td{border-bottom-color:#f3a4a4}.invalid-row input,.invalid-row select{border-color:#b00020;background:#fff7f7}

.ticket-block{border-top:2px solid #6b7c93;margin-top:18px;padding-top:14px;}
.ticket-block:first-of-type{border-top:0;margin-top:0;padding-top:0;}
.ticket-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 14px;margin-bottom:10px;background:#f5f7fa;border:1px solid #d8dee8;border-radius:8px;padding:10px;}
.ticket-total-row td{border-top:2px solid #6b7c93;background:#f3f6fb;}
.fullwidth{grid-column:1/-1;}

/* Alertas visuales de existencia: colores más intensos para distinguir rápido */
.stock-zero td{
  background:#ff9aa2!important;
  color:#5f0008;
  font-weight:800;
}
.stock-reorder td{
  background:#ffe066!important;
  color:#4d3900;
  font-weight:800;
}
.stock-zero td:first-child{border-left:6px solid #c1121f;}
.stock-reorder td:first-child{border-left:6px solid #ffb703;}
.canceled-row td{background:#eeeeee!important;color:#777;text-decoration:line-through;}

.timeline-wrap{overflow-x:auto;}
.timeline-table{box-shadow:none;border:1px solid #eaded6;}
.timeline-event td:first-child{border-left:7px solid #b8a69d;}
.timeline-event .badge{font-weight:700;}
.event-creacion td:first-child{border-left-color:#6b7280;}
.event-entrada td:first-child{border-left-color:#157347;}
.event-salida td:first-child,.event-venta td:first-child{border-left-color:#0a58ca;}
.event-apartado_activo td:first-child{border-left-color:#f0ad00;}
.event-apartado_liquidado td:first-child{border-left-color:#198754;}
.event-apartado_cancelado td:first-child{border-left-color:#b00020;}
.event-cancelacion_apartado td:first-child{border-left-color:#b00020;}
.badge-creacion{background:#f3f4f6;color:#374151;border-color:#d1d5db;}
.event-apartado_activo .badge{background:#fff3cd;color:#664d03;border-color:#ffda6a;}
.event-apartado_liquidado .badge{background:#d1e7dd;color:#0f5132;border-color:#a3cfbb;}
.event-apartado_cancelado .badge{background:#f8d7da;color:#842029;border-color:#f1aeb5;}

.metric.danger-soft{border-left:5px solid #b00020;background:#fff5f5;}
.event-apartado_creacion td:first-child{border-left-color:#f0ad00;}
.event-apartado_liquidacion td:first-child{border-left-color:#198754;}
.event-apartado_cancelacion td:first-child{border-left-color:#b00020;}
.event-apartado_creacion .badge{background:#fff3cd;color:#664d03;border-color:#ffda6a;}
.event-apartado_liquidacion .badge{background:#d1e7dd;color:#0f5132;border-color:#a3cfbb;}
.event-apartado_cancelacion .badge{background:#f8d7da;color:#842029;border-color:#f1aeb5;}

.bar-track {
  width: 100%;
  min-width: 140px;
  height: 12px;
  background: #eceff3;
  border-radius: 999px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  background: #5b6ee1;
  border-radius: 999px;
}

.small {
  font-size: 0.9rem;
}

.product-thumb {
  cursor: zoom-in;
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #ddd;
  background: #fff;
}

.product-preview {
  cursor: zoom-in;
  max-width: 180px;
  max-height: 180px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid #ddd;
  margin-top: 6px;
}


/* Vista ampliada de fotos de artículos: estándar e-commerce 800x800 máx. */
.image-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.78);
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.image-modal.open {
  display: flex;
}
.image-modal img {
  width: min(800px, 92vw);
  height: min(800px, 82vh);
  object-fit: contain;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
  padding: 10px;
}
.image-modal-close {
  position: absolute;
  top: 16px;
  right: 22px;
  border: 0;
  background: #fff;
  color: #111;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  font-size: 30px;
  line-height: 38px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}

.form-photo-preview {
  min-height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.article-header-with-photo {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 12px;
}

/* Ícono compacto para abrir foto sin distorsionar renglones */
.photo-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid #d7dbe3;
  background: #fff;
  color: #1f2937;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.photo-icon-button:hover {
  background: #f3f4f6;
  transform: translateY(-1px);
}
.photo-icon-cell {
  text-align: center;
  white-space: nowrap;
}

/* Formato numérico POS */
.num-col{min-width:120px;text-align:right}.num-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.num-input{width:120px;text-align:right;font-variant-numeric:tabular-nums;box-sizing:border-box}

/* ROMME visual refresh: elegante, sutil y profesional */
:root{
  --romme-bg:#fbf8f3;
  --romme-surface:#ffffff;
  --romme-ink:#2c2926;
  --romme-muted:#7d756d;
  --romme-gold:#b9952f;
  --romme-gold-soft:#efe2bd;
  --romme-border:#eadfce;
  --romme-shadow:0 14px 38px rgba(92,70,35,.10);
}
body{
  color:var(--romme-ink);
  background:linear-gradient(135deg,#fffaf2 0%,#fbf8f3 45%,#f4eee4 100%);
}
header{
  background:rgba(255,255,255,.92);
  color:var(--romme-ink);
  border-bottom:1px solid var(--romme-border);
  box-shadow:0 8px 24px rgba(73,55,30,.08);
  backdrop-filter: blur(8px);
  position:sticky;
  top:0;
  z-index:1000;
}
.brand-title{display:flex;align-items:center;gap:12px;letter-spacing:.03em;color:var(--romme-ink)}
.brand-logo-small{height:42px;width:auto;object-fit:contain;border-radius:8px;background:white;padding:3px}
nav a,.navbtn{
  color:var(--romme-ink);
  background:#fbf3e1;
  border:1px solid #ead8ab;
  transition:.18s ease;
}
nav a:hover,.navbtn:hover{background:var(--romme-gold);color:white;transform:translateY(-1px)}
.navmenu{background:white;border:1px solid var(--romme-border);box-shadow:var(--romme-shadow);z-index:1100}
.navmenu a{background:#fbf3e1;color:var(--romme-ink)}
.card,.metric,table{
  border:1px solid rgba(185,149,47,.16);
  box-shadow:var(--romme-shadow);
}
th{background:#f5ecd8;color:#554229;font-weight:700}
button{background:linear-gradient(135deg,#c3a142,#a98018);box-shadow:0 8px 18px rgba(185,149,47,.18)}
button:hover{filter:brightness(1.03)}
input:focus,select:focus{outline:2px solid rgba(185,149,47,.25);border-color:var(--romme-gold)}
.metric b,.ticket-total,.kpi strong{color:#8a6615}
.btnlink{background:#fff7e4;color:#7c5b14;border-color:#ead8ab}

.login-shell{min-height:calc(100vh - 160px);display:flex;align-items:center;justify-content:center;padding:30px 12px}
.login-card{max-width:440px;width:100%;text-align:center;padding:34px 36px;background:rgba(255,255,255,.92)}
.login-logo{width:min(330px,88%);height:auto;object-fit:contain;margin:0 auto 18px;display:block}
.login-card h1{font-family:Georgia,'Times New Roman',serif;font-size:34px;font-weight:500;margin:6px 0 4px;color:#4a433b}
.login-card form{text-align:left;margin-top:22px}
.login-card input{background:#fffdf8;border-color:#e7dcc5}
.login-card button{width:100%;font-weight:700;letter-spacing:.02em}
.login-help{font-size:12px;margin-top:18px}

.dashboard-hero{display:flex;align-items:center;gap:22px;background:linear-gradient(135deg,#ffffff 0%,#fff8e8 100%);padding:22px 26px;border-left:5px solid var(--romme-gold)}
.dashboard-logo{width:220px;max-width:42vw;height:auto;object-fit:contain;background:white;border-radius:14px;padding:8px;box-shadow:0 8px 20px rgba(92,70,35,.08)}
.dashboard-hero h1{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:36px;font-weight:500;color:#4a433b}
.dashboard-hero p{margin:6px 0 0}

@media(max-width:800px){
  .brand-title strong{display:none}
  .dashboard-hero{display:block;text-align:center}
  .dashboard-logo{width:240px;max-width:80%;margin-bottom:12px}
}

/* Login limpio y sin scroll */
body:has(.login-shell) header{
  display:none;
}
body:has(.login-shell) main{
  max-width:none;
  margin:0;
  padding:0;
}
body:has(.login-shell){
  min-height:100vh;
  overflow:hidden;
  background:linear-gradient(135deg,#fffaf2 0%,#f8f1e7 55%,#efe3cf 100%);
}
.login-shell{
  min-height:100vh;
  padding:18px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
}
.login-card{
  max-width:380px;
  width:100%;
  padding:24px 28px;
  box-sizing:border-box;
  margin:0;
}
.login-logo{
  width:min(230px,78%);
  max-height:120px;
  object-fit:contain;
  margin-bottom:12px;
}
.login-card h1{
  font-size:28px;
  margin:4px 0 2px;
}
.login-card .muted{
  margin:4px 0;
}
.login-card form{
  display:grid;
  gap:12px;
  margin-top:16px;
}
.login-card label{
  display:grid;
  gap:6px;
  font-size:14px;
  font-weight:600;
  color:#4a433b;
}
.login-card input{
  width:100%;
  box-sizing:border-box;
  height:44px;
  padding:10px 12px;
  display:block;
}
.login-card button{
  height:44px;
  margin-top:2px;
}
.login-help{
  font-size:11px;
  margin-top:12px!important;
}
@media(max-height:640px){
  .login-card{padding:18px 24px;}
  .login-logo{max-height:88px;width:min(190px,70%);margin-bottom:8px;}
  .login-card h1{font-size:24px;}
  .login-card form{gap:9px;margin-top:12px;}
  .login-card input,.login-card button{height:40px;}
  .login-help{display:none;}
}

/* Login v1.0: campos limpios y botón inactivo hasta capturar datos */
.login-card button:disabled{
  opacity:.48;
  cursor:not-allowed;
  filter:grayscale(.2);
  box-shadow:none;
}

.metric.ok-soft{border-left:5px solid #2e7d32;background:#f3fbf5;}
.metric.muted-soft{border-left:5px solid #9aa0a6;background:#f7f7f7;}
.metric small{display:block;margin-top:4px;color:#777;font-weight:600;}

.ticketActions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 6px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:10px 14px;background:#8a6f4d;color:#fff;text-decoration:none;cursor:pointer;font-weight:700;font-size:14px;box-shadow:0 4px 12px rgba(69,52,32,.12)}
.btn.secondary{background:#f4eee6;color:#5b4630;border:1px solid #dfd1c1;box-shadow:none}
.btn:hover{filter:brightness(.97)}
.small-note{font-size:12px;margin-top:4px}

.help-block {
  grid-column: 1 / -1;
  background: #fbf8f4;
  border: 1px solid #e6d8c9;
  border-radius: 12px;
  padding: 12px 14px;
  color: #5f5145;
  line-height: 1.5;
}
.help-block code {
  background: #fff;
  border: 1px solid #eadfd4;
  border-radius: 6px;
  padding: 2px 6px;
}


/* Impresión de reportes */
.print-ticket-header{display:none;}
.screen-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
@media print{
  body{background:#fff!important;color:#111!important;}
  header, nav, .no-print, .screen-title-row, .image-modal{display:none!important;}
  main{max-width:none!important;margin:0!important;padding:0!important;}
  .print-ticket-header{display:block!important;text-align:center;margin:0 0 12px 0;padding-bottom:8px;border-bottom:1px solid #333;}
  .print-ticket-header h1{font-size:18px;margin:4px 0 2px 0;}
  .print-ticket-header h2{font-size:14px;margin:8px 0 2px 0;}
  .print-ticket-header p{font-size:10px;margin:2px 0;}
  .print-logo{max-width:90px;max-height:90px;object-fit:contain;margin-bottom:4px;}
  .grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;margin-bottom:8px!important;}
  .metric{box-shadow:none!important;border:1px solid #999!important;border-radius:0!important;margin:0!important;padding:6px!important;}
  .metric b{font-size:16px!important;color:#111!important;margin-top:2px!important;}
  table{box-shadow:none!important;border:1px solid #999!important;border-radius:0!important;font-size:9px!important;}
  th,td{padding:4px!important;border:1px solid #bbb!important;}
  th{background:#eee!important;color:#111!important;}
  .product-thumb,.photo-icon-button{display:none!important;}
  a{color:#111!important;text-decoration:none!important;}
}

/* Apartados con 3 posiciones */
.layaway-form{display:grid;gap:16px}.layaway-customer-card,.layaway-summary-card{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;align-items:end;background:linear-gradient(135deg,#fffaf1,#ffffff);border:1px solid var(--romme-border);border-radius:18px;padding:14px;box-shadow:0 8px 22px rgba(76,53,20,.06)}.layaway-customer-card label,.layaway-summary-card label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#7a5b17;text-transform:uppercase;letter-spacing:.04em}.layaway-summary-card{grid-template-columns:1fr 1fr 1fr 1fr auto;margin-left:auto;max-width:980px}.layaway-lines{display:grid;gap:8px}.layaway-lines-header{display:grid;grid-template-columns:74px minmax(260px,2fr) 110px 150px 130px 130px;gap:8px;padding:0 10px;color:#7c6a4b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.layaway-line{display:grid;grid-template-columns:74px minmax(260px,2fr) 110px 150px 130px 130px;gap:8px;align-items:center;background:#fff;border:1px solid var(--romme-border);border-radius:16px;padding:10px;box-shadow:0 5px 16px rgba(76,53,20,.05)}.position-badge{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#f4e6c3;color:#6d4f10;font-size:16px}.layaway-lines.compact .layaway-lines-header,.layaway-lines.compact .layaway-line{grid-template-columns:54px minmax(220px,2fr) 86px 120px 105px 105px}.compact-customer{grid-template-columns:1fr 1fr}.compact-summary{grid-template-columns:1fr 1fr 1fr 1fr auto;max-width:none}.layaway-position{padding:3px 0}.edit-layaway-box{margin-bottom:8px}.edit-layaway-box summary{cursor:pointer;color:#8a6615;font-weight:700;margin-bottom:8px}.status-pill{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;text-transform:uppercase}.status-activo{background:#fff3cd;color:#664d03}.status-liquidado{background:#d1e7dd;color:#0f5132}.status-cancelado{background:#f8d7da;color:#842029}

/* Tablero sofisticado */
.luxe-hero{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,rgba(255,255,255,.96),#fff7e6);border:1px solid rgba(185,149,47,.22)}.dashboard-logo{width:84px;height:84px;object-fit:contain;border-radius:18px;background:white;padding:6px;box-shadow:0 8px 24px rgba(185,149,47,.18)}.filter-card{background:rgba(255,255,255,.88)}.luxe-metrics .metric{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#fff9ed)}.luxe-metrics .metric:after{content:"";position:absolute;right:-32px;top:-32px;width:92px;height:92px;border-radius:50%;background:rgba(185,149,47,.12)}.metric span{display:block;color:var(--romme-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.metric small{color:var(--romme-muted)}.dashboard-layout{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.wide-card{min-height:260px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-head h2{margin:0}.chart-card{background:linear-gradient(145deg,#fff,#fffaf2)}.chart-row{display:grid;grid-template-columns:minmax(160px,220px) 1fr 115px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(185,149,47,.14)}.chart-row:last-child{border-bottom:0}.chart-label strong{display:block}.chart-label span{display:block;color:var(--romme-muted);font-size:12px}.chart-value{text-align:right;font-weight:800;color:#8a6615}.bar-fill.luxe{background:linear-gradient(90deg,#d6ba5b,#9d7417);box-shadow:0 4px 10px rgba(185,149,47,.25)}.last-ticket-card{background:linear-gradient(145deg,#fff,#fbf3e1)}.luxe-ticket-head{background:#fff9eb;border-color:#ead8ab}.compact-table{font-size:13px}
@media(max-width:950px){.dashboard-layout{grid-template-columns:1fr}.layaway-customer-card,.layaway-summary-card,.compact-customer,.compact-summary,.layaway-lines-header,.layaway-line,.layaway-lines.compact .layaway-lines-header,.layaway-lines.compact .layaway-line{grid-template-columns:1fr}.layaway-lines-header{display:none}.chart-row{grid-template-columns:1fr}.chart-value{text-align:left}}

a.button{display:inline-block;padding:12px;border-radius:12px;text-decoration:none;background:#2b201d;color:white;border:0;line-height:1.1}.secondary,a.button.secondary,button.secondary{background:#6f625e;color:white}.document-card{background:white;border-radius:22px;padding:32px;box-shadow:0 12px 34px rgba(0,0,0,.08);max-width:850px;margin:0 auto 24px}.document-header{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #efe4dc;padding-bottom:18px;margin-bottom:20px}.document-header h1{margin:0;color:#2b201d}.document-brand{text-align:right;color:#6b5f5a}.statement-box{background:#fbf7f2;border:1px solid #efe4dc;border-radius:18px;padding:20px;margin:18px 0}.statement-box h2{margin-top:0}.statement-table{box-shadow:none;border:1px solid #efe4dc}.statement-table th{width:220px;background:#f4ebe4}.signature-block{margin-top:50px;text-align:center}.signature-block div{width:260px;border-top:1px solid #2b201d;margin-left:auto;margin-right:auto}.print-toolbar{display:flex;gap:10px;margin-bottom:16px}
@media print{body{background:white}main{max-width:none;padding:0}.document-card{box-shadow:none;border-radius:0;padding:18px}.document-header{page-break-inside:avoid}.statement-box,.statement-table{page-break-inside:avoid}a.button{display:none!important}}

/* Marcas: control mensual de rentas */
.brands-table .brand-main-row td{border-bottom:0}
.brand-rent-row td{background:#fbf7f2;border-top:0;padding-top:0}
.brand-rent-panel{border:1px solid #efe4dc;border-radius:16px;background:white;padding:14px 16px;margin:0 0 14px 0;box-shadow:0 8px 22px rgba(0,0,0,.04)}
.brand-rent-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:#2b201d}
.mini-table.rent-month-table{box-shadow:none;margin:0;border:1px solid #efe4dc}
.mini-table.rent-month-table th{background:#f4ebe4;font-size:.88rem}
.mini-table.rent-month-table td{background:white;border-bottom:1px solid #f1e8e1;vertical-align:middle}
.rent-doc-actions .button{padding:9px 12px;border-radius:10px;white-space:nowrap}
.brand-secondary-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}
.brand-secondary-actions form{margin:0}
@media(max-width:900px){.brand-rent-title{display:block}.rent-doc-actions .button{display:block;text-align:center}}


/* Marcas: vista ordenada por tarjetas */
.brand-card-list{display:grid;gap:18px;margin-top:18px}
.brand-card{background:white;border:1px solid #efe4dc;border-radius:22px;box-shadow:0 10px 28px rgba(0,0,0,.06);overflow:hidden}
.brand-card-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px;background:linear-gradient(135deg,#fffaf2,#f4ebe4);border-bottom:1px solid #efe4dc}
.brand-card-header h2{margin:0;color:#2b201d}.brand-card-header p{margin:5px 0 0;color:#6b5f5a}
.brand-header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.brand-header-actions form{margin:0}
.brand-edit-grid{display:grid;grid-template-columns:1.15fr 1.6fr .8fr .7fr .7fr auto;gap:10px;align-items:end;padding:16px 20px;border-bottom:1px solid #f1e8e1}
.brand-edit-grid label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#7a5b17;text-transform:uppercase;letter-spacing:.04em}.brand-edit-actions{align-self:end}
.brand-rent-panel.clean{margin:16px 20px 20px 20px}.rent-month-grid{display:grid;grid-template-columns:1.05fr .8fr .8fr .85fr 1.2fr 1.35fr;border:1px solid #efe4dc;border-radius:16px;overflow:hidden;background:white}.category-month-grid{grid-template-columns:1.15fr 1.4fr .8fr 1fr}.rent-month-head{background:#f4ebe4;color:#2b201d;font-weight:800;padding:10px;border-bottom:1px solid #efe4dc;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.rent-month-form{display:contents}.rent-month-cell{padding:10px;border-bottom:1px solid #f1e8e1;display:flex;align-items:center;gap:8px}.rent-month-cell small{display:block;color:#776b67}.rent-month-cell input,.rent-month-cell select{width:100%;box-sizing:border-box}.rent-actions{justify-content:flex-end;flex-wrap:wrap}.rent-actions button,.rent-actions .button{padding:10px 12px;border-radius:10px;white-space:nowrap}.badge.ok{background:#dff5df;color:#155724}.badge.warn{background:#fff3cd;color:#664d03}
@media(max-width:1050px){.brand-edit-grid{grid-template-columns:1fr 1fr}.rent-month-grid{display:block}.rent-month-head{display:none}.rent-month-form{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border-bottom:1px solid #efe4dc}.rent-month-cell{border:0;padding:0}.brand-card-header{display:block}.brand-header-actions{justify-content:flex-start;margin-top:12px}}
.badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:.82rem;font-weight:700;background:#edf2f7;color:#334155}
.badge-warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.badge-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.badge-muted{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}
.actions-cell{white-space:nowrap;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.btn-small{display:inline-block;padding:7px 10px;border-radius:9px;background:#111827;color:#fff;text-decoration:none;border:0;font-size:.88rem;line-height:1.1}
.actions-cell form,.document-actions form{margin:0;display:inline}
.document-header-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.document-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.info-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px}
.info-grid span{display:block;color:#64748b;font-size:.82rem;margin-bottom:4px}

/* POS Ventas */
.pos-shell{padding:22px;}
.pos-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px;}
.pos-header h2{margin:0 0 6px;}
.pos-total-card{min-width:210px;background:#151515;color:#fff;border-radius:18px;padding:16px 18px;text-align:right;box-shadow:0 10px 24px rgba(0,0,0,.12);}
.pos-total-card span{display:block;opacity:.75;font-size:.9rem;margin-bottom:4px;}
.pos-total-card strong{font-size:2rem;letter-spacing:.02em;}
.pos-topbar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-bottom:18px;}
.scan-box label{font-weight:700;display:block;margin-bottom:6px;}
.scan-input-row{display:flex;gap:10px;}
.scan-input-row input{font-size:1.2rem;padding:14px 16px;border-radius:14px;}
.catalog-actions{display:flex;gap:10px;flex-wrap:wrap;}
.pos-client-grid{margin:14px 0 18px;}
.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start;}
.cart-panel,.payment-panel{border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:16px;background:rgba(255,255,255,.72);}
.cart-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.cart-title-row h3,.payment-panel h3{margin:0;}
.pill{display:inline-flex;align-items:center;border-radius:999px;background:#f2eee9;padding:6px 10px;font-size:.85rem;font-weight:700;}
.table-wrap{overflow:auto;}
.pos-table th{white-space:nowrap;}
.pos-item strong{display:block;}
.pos-item span{display:block;color:#777;font-size:.88rem;margin-top:2px;}
.qty-stepper{display:flex;align-items:center;gap:6px;}
.qty-stepper button{border:0;border-radius:10px;padding:8px 10px;background:#eee;cursor:pointer;font-weight:800;}
.qty-stepper input{width:72px;text-align:center;}
.icon-danger{border:0;border-radius:999px;width:34px;height:34px;background:#f6d6d6;color:#8a2020;font-size:1.3rem;line-height:1;cursor:pointer;}
.empty-cart{text-align:center;color:#888;border:1px dashed rgba(0,0,0,.15);border-radius:16px;padding:26px;margin-top:12px;}
.summary-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.08);}
.summary-line.total{font-size:1.22rem;border-bottom:0;margin-bottom:12px;}
.full-width{width:100%;justify-content:center;}
.btn.primary{background:#151515;color:#fff;}
.camera-panel{margin:12px 0 18px;border-radius:18px;border:1px solid rgba(0,0,0,.08);padding:12px;background:#111;color:#fff;}
.camera-panel video{width:100%;max-height:360px;border-radius:14px;background:#000;object-fit:cover;}
.camera-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px;}
.pos-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;}
.pos-modal.open{display:flex;}
.pos-modal-box{width:min(980px,96vw);max-height:88vh;overflow:hidden;background:#fff;border-radius:20px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.28);display:flex;flex-direction:column;}
.pos-modal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;}
.pos-modal-head h2{margin:0;}
.catalog-search{font-size:1.05rem;padding:13px 14px;border-radius:14px;margin-bottom:12px;}
.catalog-list{overflow:auto;display:grid;gap:8px;padding-right:4px;}
.catalog-item{display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff;padding:12px;cursor:pointer;}
.catalog-item:hover{background:#faf7f3;}
.catalog-item span{display:block;color:#777;font-size:.88rem;margin-top:3px;}
.catalog-item b{white-space:nowrap;}
@media (max-width:900px){.sales-ticket-screen-header{align-items:center;text-align:center;flex-direction:column}.sales-ticket-contact{justify-content:center}.pos-header,.pos-topbar,.pos-layout{grid-template-columns:1fr;display:grid}.pos-total-card{text-align:left;width:auto}.scan-input-row,.catalog-actions,.camera-actions{flex-direction:column;align-items:stretch}.pos-layout{gap:12px}.payment-panel{position:sticky;bottom:0;z-index:10}.pos-table{min-width:760px}}

.sales-ticket-screen-header{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left;margin:0 0 18px 0;padding:16px 18px;border:1px solid #e6dccf;border-radius:18px;background:linear-gradient(135deg,#fffaf3,#ffffff);box-shadow:0 8px 24px rgba(80,58,35,.08);}
.sales-ticket-logo-wrap{flex:0 0 auto;width:72px;height:72px;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #eadfce;}
.sales-ticket-logo{max-width:100%;max-height:100%;object-fit:contain;}
.sales-ticket-screen-header h1{font-size:28px;line-height:1.1;margin:0 0 5px 0;letter-spacing:.03em;color:#3b2a1b;}
.sales-ticket-screen-header p{font-size:15px;margin:2px 0;color:#5f5146;}
.sales-ticket-contact{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px;font-weight:700;color:#7b5d3d;}

/* Barra visible de datos del ticket en Ventas */
.pos-ticket-info-bar{display:grid;grid-template-columns:1.05fr 1.15fr 1fr 1.35fr;gap:12px;align-items:end;margin:0 0 18px 0;padding:15px 16px;border:1px solid #e6dccf;border-radius:18px;background:linear-gradient(135deg,#fffaf3,#ffffff);box-shadow:0 8px 24px rgba(80,58,35,.08);}
.pos-ticket-info-bar label{display:block;margin:0;font-weight:800;color:#3b2a1b;}
.pos-ticket-info-bar label span{display:block;font-size:1.02rem;line-height:1.1;margin:0 0 7px 2px;letter-spacing:.01em;}
.pos-ticket-info-bar select,.pos-ticket-info-bar input{width:100%;font-size:1.08rem;font-weight:700;padding:12px 13px;border-radius:14px;border:1px solid #d8cbbb;background:#fff;color:#2d241c;}
.pos-ticket-info-bar input::placeholder{color:#9b8b7b;font-weight:600;}
@media (max-width:900px){.pos-ticket-info-bar{grid-template-columns:1fr 1fr}.pos-ticket-info-bar select,.pos-ticket-info-bar input{font-size:1rem}}
@media (max-width:560px){.pos-ticket-info-bar{grid-template-columns:1fr}}

/* POS catálogo con filtro por marca y datos completos */
.catalog-filters{display:grid;grid-template-columns:240px 1fr;gap:12px;align-items:end;margin-bottom:8px;}
.catalog-filters label{display:flex;flex-direction:column;gap:5px;font-weight:700;color:#4a3a32;}
.catalog-filters label span{font-size:.9rem;}
.catalog-filters select,.catalog-filters input{width:100%;font-size:1.03rem;padding:12px 14px;border-radius:14px;border:1px solid rgba(0,0,0,.14);background:#fff;}
.catalog-search{margin-bottom:0;}
.catalog-help{margin:4px 0 12px;font-size:.92rem;}
.catalog-list-detailed{gap:10px;}
.catalog-item.detailed{display:grid;grid-template-columns:72px 1fr 120px;align-items:center;gap:14px;padding:12px 14px;}
.catalog-item.detailed:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.08);}
.catalog-photo{width:72px;height:72px;border-radius:14px;overflow:hidden;background:#f3eee9;display:flex;align-items:center;justify-content:center;color:#8a7b72;font-size:.8rem;text-align:center;}
.catalog-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.catalog-main strong{display:block;font-size:1.02rem;color:#2e2520;margin-bottom:4px;}
.catalog-sku{font-weight:800;color:#6d4f3f;margin-bottom:7px;}
.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:5px 14px;color:#62564f;font-size:.9rem;}
.catalog-grid b{color:#342923;}
.catalog-price{text-align:right;display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.catalog-price span{font-size:.78rem;color:#777;}
.catalog-price b{font-size:1.12rem;color:#2e2520;white-space:nowrap;}
.catalog-price small{background:#2e2520;color:#fff;border-radius:999px;padding:4px 9px;font-weight:700;}
@media (max-width:720px){.catalog-filters{grid-template-columns:1fr}.catalog-item.detailed{grid-template-columns:58px 1fr}.catalog-price{grid-column:1 / -1;align-items:flex-start;text-align:left;border-top:1px solid rgba(0,0,0,.08);padding-top:8px}.catalog-photo{width:58px;height:58px}.catalog-grid{grid-template-columns:1fr}.pos-modal-box{padding:14px}}

/* Jerarquía visual para apartados en reportes */
.ticket-summary-row td,
.position-row td {
  border-top: 2px solid #e5e7eb;
}
.position-row {
  background: #f8fafc;
}
.position-row td {
  font-weight: 500;
}
.subposition-row {
  background: #ffffff;
}
.subposition-row td {
  color: #374151;
  font-size: 0.93rem;
  border-top: 1px dashed #e5e7eb;
}
.hierarchy-table .subposition-row td:first-child {
  padding-left: 1.5rem;
  color: #6b7280;
}

/* Catálogo de artículos: alta profesional y compacta */
.product-create-card{padding:22px 24px;}
.product-create-head{margin-bottom:14px;align-items:flex-start;}
.product-create-head h2{margin:0 0 4px;font-size:22px;}
.product-create-head p{margin:0;}
.product-create-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px 16px;align-items:end;}
.product-create-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#7a5b17;text-transform:uppercase;letter-spacing:.04em;}
.product-create-form input,.product-create-form select{width:100%;box-sizing:border-box;background:#fffdf8;border-color:#e6dccb;min-height:42px;}
.product-photo-field{grid-column:span 2;}
.product-stock-note{grid-column:span 2;background:#fff8e8;border:1px solid #ead8ab;border-radius:14px;padding:12px 14px;display:grid;gap:3px;color:#5d4b2b;}
.product-stock-note strong{font-size:14px;}
.product-stock-note span{font-size:13px;color:#7d756d;line-height:1.35;}
.product-create-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:2px;}
.product-create-button{width:auto;min-width:170px;padding:10px 18px;border-radius:12px;font-size:14px;box-shadow:0 6px 16px rgba(185,149,47,.16);}
@media(max-width:1050px){.product-create-form{grid-template-columns:repeat(2,minmax(160px,1fr));}.product-photo-field,.product-stock-note{grid-column:span 2;}}
@media(max-width:650px){.product-create-form{grid-template-columns:1fr;}.product-photo-field,.product-stock-note{grid-column:1;}.product-create-actions{justify-content:stretch}.product-create-button{width:100%;}}

/* Clientes: edición profesional, limpia y responsiva */
.client-page-head{align-items:flex-start;margin-bottom:16px;}
.client-edit-card{padding:24px 26px;border-radius:22px;}
.client-edit-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #efe4d4;}
.client-edit-title h2{margin:0 0 4px;font-size:24px;color:#32251e;}
.client-edit-title p{margin:0;}
.client-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 12px;font-size:.86rem;font-weight:800;border:1px solid #d8dee8;white-space:nowrap;}
.client-status-pill.active{background:#ecfdf5;color:#047857;border-color:#a7f3d0;}
.client-status-pill.inactive{background:#f1f5f9;color:#64748b;border-color:#cbd5e1;}
.client-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.client-form-section{border:1px solid #eadfce;background:linear-gradient(135deg,#fffdf9,#ffffff);border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(92,70,35,.06);}
.client-form-section.full{grid-column:1/-1;}
.client-form-section h3{margin:0 0 13px;font-size:16px;color:#6e5516;letter-spacing:.03em;text-transform:uppercase;}
.client-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px 16px;align-items:start;}
.client-form-grid.two-cols{grid-template-columns:repeat(2,minmax(180px,1fr));}
.client-form-grid label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#7a5b17;text-transform:uppercase;letter-spacing:.04em;}
.client-form-grid input,.client-form-grid select,.client-form-grid textarea{width:100%;box-sizing:border-box;background:#fffdf8;border:1px solid #e1d6c7;border-radius:12px;padding:11px 12px;color:#2d241c;font-size:14px;font-family:inherit;}
.client-form-grid textarea{resize:vertical;min-height:150px;line-height:1.45;}
.client-form-grid input::placeholder,.client-form-grid textarea::placeholder{color:#a99a8a;font-weight:600;text-transform:none;letter-spacing:0;}
.client-form-grid .span-2{grid-column:span 2;}
.client-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;align-items:center;padding-top:2px;}
.client-save-button{width:auto;min-width:165px;padding:10px 18px;border-radius:12px;font-size:14px;}
.client-metrics{margin-top:18px;}
.client-related-cols h2{margin-top:0;}
@media(max-width:980px){.client-edit-form{grid-template-columns:1fr}.client-form-grid{grid-template-columns:repeat(2,minmax(150px,1fr));}.client-form-grid .span-2{grid-column:span 2;}}
@media(max-width:620px){.client-edit-card{padding:18px}.client-edit-title{display:block}.client-status-pill{margin-top:10px}.client-form-grid,.client-form-grid.two-cols{grid-template-columns:1fr}.client-form-grid .span-2{grid-column:1}.client-form-actions{justify-content:stretch;flex-direction:column-reverse}.client-form-actions .btn,.client-save-button{width:100%;text-align:center;box-sizing:border-box}}
.client-edit-title.compact{margin-bottom:14px;padding-bottom:12px;}
.client-form-grid.main-data-grid{grid-template-columns:2fr 1fr 1fr 1fr;align-items:end;}
@media(max-width:980px){.client-form-grid.main-data-grid{grid-template-columns:repeat(2,minmax(150px,1fr));}}
@media(max-width:620px){.client-form-grid.main-data-grid{grid-template-columns:1fr;}}

/* Clientes CRM con pestañas */
.crm-top-metrics{margin:0 0 18px;}
.crm-card{overflow:hidden;}
.crm-form{display:block;}
.crm-form > input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
.crm-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:8px;background:#fff8e8;border:1px solid #ead8ab;border-radius:16px;}
.crm-tabs label{cursor:pointer;border:1px solid transparent;border-radius:12px;padding:10px 13px;background:rgba(255,255,255,.72);color:#6b5120;font-size:13px;font-weight:800;letter-spacing:.02em;transition:.18s ease;}
.crm-tabs label:hover{background:#fff;color:#3a2b15;border-color:#ead8ab;transform:translateY(-1px);}
.crm-panel{display:none;animation:crmFade .16s ease-in-out;}
@keyframes crmFade{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
#tab-generales:checked ~ .crm-tabs label[for="tab-generales"],
#tab-contacto:checked ~ .crm-tabs label[for="tab-contacto"],
#tab-preferencias:checked ~ .crm-tabs label[for="tab-preferencias"],
#tab-historial:checked ~ .crm-tabs label[for="tab-historial"],
#tab-apartados:checked ~ .crm-tabs label[for="tab-apartados"],
#tab-observaciones:checked ~ .crm-tabs label[for="tab-observaciones"]{background:linear-gradient(135deg,#c3a142,#a98018);color:white;border-color:#a98018;box-shadow:0 8px 18px rgba(185,149,47,.18);}
#tab-generales:checked ~ .panel-generales,
#tab-contacto:checked ~ .panel-contacto,
#tab-preferencias:checked ~ .panel-preferencias,
#tab-historial:checked ~ .panel-historial,
#tab-apartados:checked ~ .panel-apartados,
#tab-observaciones:checked ~ .panel-observaciones{display:block;}
.crm-form .client-form-section{box-shadow:none;}
.crm-preference-box{background:#fffdf8;border:1px solid #e1d6c7;border-radius:14px;padding:14px 16px;min-height:180px;}
.crm-preference-box pre{white-space:pre-wrap;margin:0;font-family:inherit;font-size:14px;line-height:1.55;color:#2f261f;}
.crm-actions{margin-top:18px;padding-top:14px;border-top:1px solid #efe4d4;}
@media(max-width:760px){.crm-tabs{display:grid;grid-template-columns:1fr 1fr}.crm-tabs label{text-align:center;font-size:12px;padding:10px 8px}}
@media(max-width:480px){.crm-tabs{grid-template-columns:1fr}.crm-tabs label{text-align:left}}

/* Clientes CRM: indicadores comerciales */
.crm-kpi-metrics{margin:0 0 18px;grid-template-columns:repeat(3,minmax(180px,1fr));}
.crm-kpi-card{background:linear-gradient(135deg,#fffdf8,#ffffff);border:1px solid #eadfce;box-shadow:0 8px 22px rgba(92,70,35,.06);}
.crm-kpi-card span{font-weight:900;color:#6e5516;}
.crm-kpi-card b{font-size:26px;}
.crm-kpi-card small{display:block;margin-top:4px;color:#776b67;font-weight:700;}
.crm-inline-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin-top:14px;}
.crm-inline-kpis div{background:#fff8e8;border:1px solid #ead8ab;border-radius:14px;padding:11px 12px;}
.crm-inline-kpis span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#7a5b17;font-weight:900;margin-bottom:4px;}
.crm-inline-kpis b{font-size:18px;color:#2d241c;}
@media(max-width:900px){.crm-kpi-metrics{grid-template-columns:1fr}.crm-inline-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.crm-inline-kpis{grid-template-columns:1fr}}


/* Transferencias: separación clara y elegante entre tickets */
.transfer-detail-table{
  border-collapse:separate;
  border-spacing:0 8px;
  box-shadow:none;
  background:transparent;
}
.transfer-detail-table thead th{
  position:sticky;
  top:0;
  z-index:1;
}
.transfer-ticket-separator td{
  height:8px;
  padding:0;
  border:0;
  background:transparent;
}
.transfer-ticket-header td{
  background:#fffdf8;
  border-top:1px solid #ead8ab;
  border-bottom:1px solid #ead8ab;
  font-size:.95rem;
}
.transfer-ticket-header td:first-child{
  border-left:5px solid var(--romme-gold);
  border-top-left-radius:14px;
}
.transfer-ticket-header td:last-child{
  border-right:1px solid #ead8ab;
  border-top-right-radius:14px;
}
.ticket-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#3b2a1b;
  color:#fff;
  border-radius:999px;
  padding:6px 10px;
  font-weight:800;
  white-space:nowrap;
}
.ticket-pill::before{content:'🎟️';font-size:14px;}
.transfer-position-row td{
  background:#f8f3e8;
  border-bottom:1px solid #ead8ab;
}
.transfer-subposition-row td{
  background:#ffffff;
  border-bottom:1px dashed #e6dccb;
}
.transfer-ticket-group .transfer-subposition-row:last-child td,
.transfer-ticket-group .transfer-position-row:last-child td,
.transfer-ticket-group .transfer-ticket-header:last-child td{
  border-bottom:1px solid #ead8ab;
}
.transfer-ticket-group tr:last-child td:first-child{
  border-bottom-left-radius:14px;
}
.transfer-ticket-group tr:last-child td:last-child{
  border-bottom-right-radius:14px;
}
.subposition-pill{
  display:inline-block;
  background:#fff7e4;
  border:1px solid #ead8ab;
  color:#7c5b14;
  border-radius:999px;
  padding:3px 8px;
  font-weight:800;
  margin-right:8px;
}
@media(max-width:900px){
  .transfer-detail-table{border-spacing:0 10px;}
  .transfer-detail-table th,.transfer-detail-table td{font-size:12px;padding:8px;}
}

/* Fidelidad */
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}
.grid-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#4b3a30}
.grid-form input,.grid-form select{padding:10px 12px;border:1px solid #ddd2c8;border-radius:12px;background:#fff}
.grid-form .span-2{grid-column:span 2}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px}
@media(max-width:700px){.grid-form .span-2{grid-column:span 1}}
.table-scroll { overflow-x: auto; }
.badge { display: inline-block; padding: 4px 8px; margin: 2px; border-radius: 999px; background: #f1f1f1; font-size: 0.9rem; }

.table-list-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.table-chip {
  display: inline-flex;
  align-items: center;
  padding: 9px 12px;
  border: 1px solid #ddd6cc;
  border-radius: 999px;
  text-decoration: none;
  color: #47372d;
  background: #fff;
  font-size: 14px;
}
.table-chip:hover,
.table-chip.active {
  background: #2f241e;
  color: #fff;
  border-color: #2f241e;
}
.wide-table-scroll {
  overflow: auto;
  max-height: 70vh;
}
.compact-table th,
.compact-table td {
  white-space: nowrap;
  font-size: 12px;
  padding: 7px 9px;
  vertical-align: top;
}

/* Promociones: edición de cupón en renglón desplegable */
.coupon-edit-row td{
  background:#fffaf4;
  border-top:0;
}
.coupon-edit-panel{
  border:1px solid var(--romme-border);
  border-radius:16px;
  padding:16px;
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
}
.compact-heading{
  margin-bottom:12px;
}
.compact-heading h3{
  margin:0;
}
.loyalty-edit-form{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.loyalty-edit-form input,.loyalty-edit-form select{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:760px){
  .coupon-edit-panel{padding:12px;}
  .loyalty-edit-form .span-2{grid-column:span 1;}
}

.ok-text{color:#1f7a3a;font-weight:600;}
.danger-text{color:#b42318;font-weight:600;}

/* Ventas: cliente primero y pago al final */
.pos-ticket-info-bar.client-first{grid-template-columns:1.05fr 1.25fr 1.15fr 1fr;margin-bottom:10px;}
.pos-ticket-info-bar.client-first .wa-field input{font-size:1.18rem;letter-spacing:.03em;}
.payment-modal-box{width:min(620px,94vw);max-height:min(92dvh,780px);display:flex;flex-direction:column;overflow:hidden;}
.payment-modal-head-fixed{flex:0 0 auto;margin-bottom:10px;}
.payment-modal-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 3px 8px 0;scrollbar-gutter:stable;}
.payment-modal-footer{flex:0 0 auto;padding-top:8px;background:#fff;box-shadow:0 -10px 22px rgba(255,255,255,.96);}
.gc-payment-panel{margin-top:14px;border:1px solid #e6dccf;border-radius:18px;background:#fffdf9;padding:14px;box-shadow:0 8px 20px rgba(80,58,35,.05);}
.gc-payment-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(180px,.7fr);gap:12px;}
.gc-payment-fields label{display:grid;gap:6px;min-width:0;}
.gc-payment-fields select,.gc-payment-fields input{width:100%;min-width:0;}
.gift-card-activation-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.gc-validation-message{margin-top:10px;font-size:.86rem;font-weight:700;min-height:1.2em;}
.gc-payment-summary{margin-top:12px;grid-template-columns:1fr 1fr;gap:8px;}
.gc-payment-summary>div{border:1px solid #eadfD3;border-radius:12px;padding:10px 12px;background:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.gc-payment-summary span{color:#7c6b5b;font-size:.82rem;font-weight:700;}
.gc-payment-summary strong{font-size:1rem;white-space:nowrap;}
.gc-difference-box{margin-top:12px;border-top:1px solid #eadfd3;padding-top:12px;}
.gc-difference-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:4px;}
.gc-difference-title span{font-weight:800;}
.gc-difference-title strong{font-size:1.08rem;}
.gc-secondary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;}
.gc-secondary-payment.selected{border-color:#b42318;background:#fff2f2;box-shadow:0 6px 14px rgba(180,35,24,.10);}
.payment-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;}
.payment-choice{border:1px solid #e6dccf;border-radius:18px;background:linear-gradient(135deg,#fffaf3,#fff);padding:16px;text-align:left;cursor:pointer;box-shadow:0 8px 20px rgba(80,58,35,.06);}
.payment-choice:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(80,58,35,.11);}
.payment-choice strong{display:block;font-size:1.05rem;color:#2d241c;margin-bottom:4px;}
.payment-choice span{color:#7c6b5b;font-weight:700;font-size:.9rem;}
.payment-modal-total{margin-top:16px;border-radius:18px;background:#151515;color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;}
.payment-modal-total span{opacity:.75;font-weight:700;}
.payment-modal-total strong{font-size:1.45rem;}
@media (max-width:900px){.pos-ticket-info-bar.client-first{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pos-ticket-info-bar.client-first,.payment-choice-grid{grid-template-columns:1fr}}
@media (max-width:560px){.gc-payment-fields,.gc-payment-summary{grid-template-columns:1fr}.gc-secondary-grid{grid-template-columns:1fr}.payment-modal-scroll{padding-right:1px}}


/* HF3.10.34 · Ventas Gift Card: reutiliza botones existentes y evita scroll innecesario */
.payment-modal-box.gift-card-mode .payment-modal-head-fixed{margin-bottom:4px;}
.payment-modal-box.gift-card-mode .payment-choice-grid{gap:7px;margin-top:0;}
.payment-modal-box.gift-card-mode .payment-choice{padding:9px 13px;border-radius:14px;box-shadow:0 4px 12px rgba(80,58,35,.04);}
.payment-modal-box.gift-card-mode .payment-choice strong{font-size:.98rem;margin-bottom:1px;}
.payment-modal-box.gift-card-mode .payment-choice span{font-size:.82rem;}
.payment-modal-box.gift-card-mode .gc-payment-panel{margin-top:7px;padding:9px 13px;border-radius:14px;}
.payment-modal-box.gift-card-mode .gc-payment-fields{gap:9px;}
.payment-modal-box.gift-card-mode .gc-payment-fields label{gap:3px;}
.payment-modal-box.gift-card-mode .gc-validation-message{margin-top:5px;min-height:0;font-size:.81rem;line-height:1.2;}
.payment-modal-box.gift-card-mode .payment-modal-selected{display:none!important;}
.payment-choice.gift-card-complement:not(.selected){box-shadow:inset 0 0 0 1px rgba(180,35,24,.12);}

/* Ventas: ayudas contextuales sobre los campos y confirmación explícita de pago */
.field-with-tip{position:relative;}
.field-tooltip{position:absolute;left:0;right:auto;bottom:calc(100% + 8px);min-width:210px;max-width:250px;background:rgba(43,32,29,.94);color:#fff;border-radius:10px;padding:8px 10px;font-size:.74rem;line-height:1.28;box-shadow:0 10px 24px rgba(0,0,0,.16);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .14s ease, transform .14s ease, visibility .14s ease;z-index:30;pointer-events:none;}
.field-tooltip::after{content:"";position:absolute;left:18px;bottom:-6px;border-width:6px 6px 0 6px;border-style:solid;border-color:rgba(43,32,29,.94) transparent transparent transparent;}
.field-tooltip strong{display:block;color:#f1d49b;margin-bottom:2px;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;}
.field-with-tip:hover .field-tooltip,.field-with-tip:focus-within .field-tooltip{opacity:1;visibility:visible;transform:translateY(0);}
.payment-choice.selected{border-color:#b42318;background:linear-gradient(135deg,#fff2f2,#fff);box-shadow:0 12px 30px rgba(180,35,24,.12);}
.payment-modal-selected{margin-top:14px;border:1px dashed #d9c8b5;background:#fffaf4;border-radius:14px;padding:11px 13px;color:#6e5b48;font-weight:800;}
.payment-confirm-btn{width:100%;margin-top:14px;justify-content:center;font-size:1rem;padding:13px 16px;}
.payment-confirm-btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.2);}
@media(max-width:560px){.field-tooltip{min-width:200px;max-width:calc(100vw - 44px);}}
.discount-percent-wrap{display:flex;align-items:center;gap:6px;justify-content:flex-end}.discount-percent-wrap span{font-size:.85rem;color:#7a6d62;font-weight:700}.discount-percent-wrap .num-input{max-width:82px;text-align:right}

/* ROMME 4.11 - Optimización responsiva POS y Apartados */
*{box-sizing:border-box;}
input,select,button,textarea{max-width:100%;}

/* Ventas: mejor uso de laptop/tablet sin perder operación de caja */
.pos-shell{overflow:hidden;}
.pos-header{align-items:center;}
.pos-topbar{grid-template-columns:minmax(0,1fr) minmax(210px,auto);}
.scan-input-row{display:flex;gap:10px;align-items:center;}
.scan-input-row input{min-width:0;flex:1 1 auto;}
.catalog-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.pos-layout{grid-template-columns:minmax(0,1fr) clamp(245px,24vw,300px);}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.pos-table{width:100%;}
.pos-table .num-input{max-width:82px;}
.payment-panel{align-self:start;}
.pos-modal{overflow:auto;}
.pos-modal-box{max-width:calc(100vw - 24px);}

@media (max-width:1180px){
  main{padding-left:12px;padding-right:12px;}
  .pos-shell{padding:16px;}
  .pos-total-card{min-width:180px;}
  .pos-total-card strong{font-size:1.65rem;}
  .pos-ticket-info-bar.client-first{grid-template-columns:1fr 1fr;gap:10px;}
  .pos-layout{grid-template-columns:minmax(0,1fr) 250px;gap:12px;}
  .cart-panel,.payment-panel{padding:12px;}
  .pos-table{font-size:13px;min-width:680px;}
  .pos-table th,.pos-table td{padding:8px 7px;}
}

@media (max-width:900px){
  .pos-header{display:grid;grid-template-columns:1fr;}
  .pos-total-card{position:sticky;top:8px;z-index:8;text-align:left;}
  .pos-topbar{grid-template-columns:1fr;}
  .catalog-actions{justify-content:stretch;}
  .catalog-actions .btn,.scan-input-row .btn{width:100%;}
  .pos-layout{grid-template-columns:1fr;}
  .payment-panel{position:sticky;bottom:0;z-index:12;border-radius:18px 18px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.10);}
  .summary-line{padding:9px 0;}
  .full-width{min-height:46px;}
}

@media (max-width:560px){
  .pos-shell{padding:12px;border-radius:16px;}
  .pos-header h2{font-size:1.35rem;}
  .pos-header .muted{font-size:.92rem;}
  .pos-total-card{padding:12px 14px;border-radius:15px;}
  .pos-total-card strong{font-size:1.45rem;}
  .pos-ticket-info-bar.client-first{grid-template-columns:1fr;padding:12px;}
  .scan-input-row{flex-direction:column;align-items:stretch;}
  .cart-title-row{align-items:flex-start;gap:8px;flex-direction:column;}
  .pos-table{min-width:640px;}
  .payment-choice-grid{grid-template-columns:1fr;}
  .pos-modal{align-items:flex-start;padding:10px;}
  .pos-modal-box{width:100%;max-height:none;min-height:auto;border-radius:16px;padding:12px;}
}

/* Apartados: laptop/tablet/celular */
.layaway-panel{overflow:hidden;}
.layaway-form{width:100%;}
.layaway-customer-card{grid-template-columns:1.15fr 1fr 1fr;}
.layaway-customer-card input,.layaway-summary-card input,.layaway-summary-card select,.layaway-line select,.layaway-line input{width:100%;min-width:0;}
.layaway-lines{overflow:visible;}
.layaway-line,.layaway-lines-header{grid-template-columns:54px minmax(220px,2fr) 86px minmax(120px,1fr) 112px 118px;}
.layaway-summary-card{grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(145px,auto);max-width:none;margin-left:0;}
.layaway-summary-card button{min-height:44px;white-space:nowrap;}
.layaway-list-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:16px;}
.layaway-list-table{min-width:1120px;}
.edit-layaway-box{max-width:100%;}
.edit-layaway-box .layaway-form{min-width:min(760px,86vw);}
.payLayawayForm select{max-width:180px;}

@media (max-width:1100px){
  .layaway-customer-card{grid-template-columns:1fr 1fr;}
  .layaway-customer-card label:last-child{grid-column:1 / -1;}
  .layaway-line,.layaway-lines-header{grid-template-columns:44px minmax(190px,2fr) 76px minmax(110px,1fr) 98px 105px;gap:7px;}
  .layaway-summary-card{grid-template-columns:1fr 1fr;}
  .layaway-summary-card button{grid-column:1 / -1;width:100%;}
}

@media (max-width:760px){
  h1{font-size:1.55rem;}
  .layaway-panel{padding:14px;}
  .section-heading{display:block;}
  .section-heading h2{margin-bottom:4px;}
  .layaway-customer-card,.layaway-summary-card,.compact-customer,.compact-summary{grid-template-columns:1fr;}
  .layaway-customer-card label:last-child,.layaway-summary-card button{grid-column:auto;}
  .layaway-lines-header{display:none;}
  .layaway-line,.layaway-lines.compact .layaway-line{grid-template-columns:40px minmax(0,1fr) 82px;align-items:end;padding:12px;gap:9px;}
  .layaway-line .position-badge{grid-row:1 / span 2;align-self:start;}
  .layaway-line .productSelect{grid-column:2 / -1;}
  .layaway-line .quantityInput{grid-column:2 / 3;}
  .layaway-line .categoryDisplay{grid-column:3 / 4;}
  .layaway-line .unitPriceDisplay{grid-column:2 / 3;}
  .layaway-line .lineTotalDisplay{grid-column:3 / 4;}
  .position-badge{width:32px;height:32px;font-size:14px;}
  .layaway-list-table{min-width:0;width:100%;border:0;box-shadow:none;background:transparent;}
  .layaway-list-table tbody,.layaway-list-table tr,.layaway-list-table td{display:block;width:100%;}
  .layaway-list-table tr:first-child{display:none;}
  .layaway-list-table tr{background:#fff;border:1px solid var(--romme-border);border-radius:16px;margin:0 0 12px 0;padding:10px;box-shadow:0 6px 18px rgba(76,53,20,.06);}
  .layaway-list-table td{border:0!important;padding:6px 4px!important;}
  .layaway-list-table td:nth-child(1){font-size:1.02rem;font-weight:800;color:#2d241c;}
  .layaway-list-table td:nth-child(2){background:#fffaf3;border-radius:12px;padding:9px!important;margin:4px 0;}
  .layaway-list-table td:nth-child(n+3):nth-child(-n+7){display:inline-block;width:49%;vertical-align:top;font-size:.92rem;}
  .layaway-list-table td:nth-child(8),.layaway-list-table td:nth-child(9),.layaway-list-table td:nth-child(10),.layaway-list-table td:nth-child(11),.layaway-list-table td:nth-child(12){font-size:.9rem;}
  .layaway-list-table td:nth-child(12){border-top:1px solid #efe4dc!important;margin-top:8px;padding-top:10px!important;}
  .layaway-list-table .inline{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px;}
  .layaway-list-table button,.layaway-list-table select{width:100%;}
  .edit-layaway-box .layaway-form{min-width:0;}
}

@media (max-width:420px){
  main{padding-left:8px;padding-right:8px;}
  .layaway-panel{padding:12px;border-radius:16px;}
  .layaway-line,.layaway-lines.compact .layaway-line{grid-template-columns:34px 1fr;}
  .layaway-line .position-badge{grid-row:auto;}
  .layaway-line .productSelect,.layaway-line .quantityInput,.layaway-line .categoryDisplay,.layaway-line .unitPriceDisplay,.layaway-line .lineTotalDisplay{grid-column:2 / -1;}
  .layaway-list-table td:nth-child(n+3):nth-child(-n+7){display:block;width:100%;}
}

/* Catálogo de marcas: espacio de trabajo compacto por marca */
.catalog-page-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px}.catalog-page-heading h1{margin-bottom:4px}
.brand-workspace{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(560px,1.55fr);gap:20px;align-items:start}.brand-workspace>.card{margin:0;border-radius:22px;box-shadow:0 12px 30px rgba(43,32,29,.07)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;border-bottom:1px solid #efe4dc}.section-heading h2{margin:3px 0 4px}.section-kicker{display:block;color:#a06d24;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.brand-selector-form{margin-top:18px}.brand-selector-form label{display:grid;gap:8px;font-weight:800;color:#4d3c36}.brand-selector-form select{font-size:1rem;background:#fffaf2;border:1px solid #ddcbbb}
.new-brand-panel{margin-top:16px;border:1px solid #eadbcf;border-radius:16px;background:#fffdf9;overflow:hidden}.new-brand-panel summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:900;color:#6f4c15;display:flex;gap:8px;align-items:center}.new-brand-panel summary::-webkit-details-marker{display:none}.new-brand-panel[open] summary{border-bottom:1px solid #efe4dc;background:#fff8ee}.new-brand-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.new-brand-grid label,.selected-brand-form label,.category-create-bar label{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#775b36;text-transform:uppercase;letter-spacing:.04em}.full-span{grid-column:1/-1}.new-brand-grid textarea{resize:vertical;min-height:78px}.new-brand-grid small{font-weight:500;text-transform:none;letter-spacing:0;color:#81736d}
.selected-brand-summary{display:flex;align-items:end;gap:12px;padding:16px 0;border-bottom:1px solid #efe4dc}.selected-brand-form{display:grid;grid-template-columns:1fr 1.3fr .65fr auto;gap:10px;align-items:end;flex:1}.ghost-danger{background:#fff;border:1px solid #d9a8a1;color:#9b2c24;white-space:nowrap}
.category-create-bar{display:grid;grid-template-columns:1fr 1.25fr auto;gap:10px;align-items:end;padding:16px;background:linear-gradient(135deg,#fffaf2,#f8f1eb);border:1px solid #eadbcf;border-radius:16px;margin:16px 0}
.category-table-wrap{border:1px solid #eadbcf;border-radius:16px;overflow:hidden}.category-admin-grid{display:grid;grid-template-columns:1.05fr 1.35fr .65fr .65fr;gap:10px;align-items:center}.category-admin-head{padding:11px 14px;background:#f4ebe4;color:#493630;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.category-admin-row{position:relative;border-top:1px solid #f0e5dc;background:#fff}.category-admin-row:first-of-type{border-top:0}.category-admin-row>.category-admin-grid{padding:10px 48px 10px 12px}.category-admin-row input,.category-admin-row select{width:100%;box-sizing:border-box}.category-row-actions{display:flex;justify-content:flex-end}.category-delete-form{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.icon-button{width:32px;height:32px;padding:0;border-radius:50%;font-size:1.25rem;line-height:1}.empty-state{padding:24px;text-align:center;color:#7c6e68;background:#fffaf5}.empty-state.compact{padding:14px;margin-top:16px;border-radius:12px}.page-note{margin-top:14px}
@media(max-width:1100px){.brand-workspace{grid-template-columns:1fr}.selected-brand-form{grid-template-columns:1fr 1fr}.category-admin-block{min-width:0}}
@media(max-width:720px){.new-brand-grid,.selected-brand-form,.category-create-bar{grid-template-columns:1fr}.selected-brand-summary{display:block}.selected-brand-summary>form:last-child{margin-top:10px}.category-admin-head{display:none}.category-admin-row{padding:12px}.category-admin-row>.category-admin-grid{grid-template-columns:1fr;padding:0 42px 0 0}.category-admin-row>.category-admin-grid>div:before{display:block;font-size:.68rem;font-weight:900;color:#8a6b42;text-transform:uppercase;margin:2px 0 4px}.category-admin-row>.category-admin-grid>div:nth-child(1):before{content:'Categoría'}.category-admin-row>.category-admin-grid>div:nth-child(2):before{content:'Descripción'}.category-admin-row>.category-admin-grid>div:nth-child(3):before{content:'Estatus'}.category-admin-row>.category-admin-grid>div:nth-child(4):before{content:'Acciones'}.category-row-actions{justify-content:flex-start}.full-span{grid-column:auto}}

/* Catálogo de marcas: espacio de trabajo compacto por marca */
.catalog-page-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px}.catalog-page-heading h1{margin-bottom:4px}
.brand-workspace{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(560px,1.55fr);gap:20px;align-items:start}.brand-workspace>.card{margin:0;border-radius:22px;box-shadow:0 12px 30px rgba(43,32,29,.07)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;border-bottom:1px solid #efe4dc}.section-heading h2{margin:3px 0 4px}.section-kicker{display:block;color:#a06d24;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.brand-selector-form{margin-top:18px}.brand-selector-form label{display:grid;gap:8px;font-weight:800;color:#4d3c36}.brand-selector-form select{font-size:1rem;background:#fffaf2;border:1px solid #ddcbbb}
.new-brand-panel{margin-top:16px;border:1px solid #eadbcf;border-radius:16px;background:#fffdf9;overflow:hidden}.new-brand-panel summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:900;color:#6f4c15;display:flex;gap:8px;align-items:center}.new-brand-panel summary::-webkit-details-marker{display:none}.new-brand-panel[open] summary{border-bottom:1px solid #efe4dc;background:#fff8ee}.new-brand-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.new-brand-grid label,.selected-brand-form label,.category-create-bar label{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#775b36;text-transform:uppercase;letter-spacing:.04em}.full-span{grid-column:1/-1}.new-brand-grid textarea{resize:vertical;min-height:78px}.new-brand-grid small{font-weight:500;text-transform:none;letter-spacing:0;color:#81736d}
.selected-brand-summary{display:flex;align-items:end;gap:12px;padding:16px 0;border-bottom:1px solid #efe4dc}.selected-brand-form{display:grid;grid-template-columns:1fr 1.3fr .65fr auto;gap:10px;align-items:end;flex:1}.ghost-danger{background:#fff;border:1px solid #d9a8a1;color:#9b2c24;white-space:nowrap}
.category-create-bar{display:grid;grid-template-columns:1fr 1.25fr auto;gap:10px;align-items:end;padding:16px;background:linear-gradient(135deg,#fffaf2,#f8f1eb);border:1px solid #eadbcf;border-radius:16px;margin:16px 0}
.category-table-wrap{border:1px solid #eadbcf;border-radius:16px;overflow:hidden}.category-admin-grid{display:grid;grid-template-columns:1.05fr 1.35fr .65fr .65fr;gap:10px;align-items:center}.category-admin-head{padding:11px 14px;background:#f4ebe4;color:#493630;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.category-admin-row{position:relative;border-top:1px solid #f0e5dc;background:#fff}.category-admin-row:first-of-type{border-top:0}.category-admin-row>.category-admin-grid{padding:10px 48px 10px 12px}.category-admin-row input,.category-admin-row select{width:100%;box-sizing:border-box}.category-row-actions{display:flex;justify-content:flex-end}.category-delete-form{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.icon-button{width:32px;height:32px;padding:0;border-radius:50%;font-size:1.25rem;line-height:1}.empty-state{padding:24px;text-align:center;color:#7c6e68;background:#fffaf5}.empty-state.compact{padding:14px;margin-top:16px;border-radius:12px}.page-note{margin-top:14px}
@media(max-width:1100px){.brand-workspace{grid-template-columns:1fr}.selected-brand-form{grid-template-columns:1fr 1fr}.category-admin-block{min-width:0}}
@media(max-width:720px){.new-brand-grid,.selected-brand-form,.category-create-bar{grid-template-columns:1fr}.selected-brand-summary{display:block}.selected-brand-summary>form:last-child{margin-top:10px}.category-admin-head{display:none}.category-admin-row{padding:12px}.category-admin-row>.category-admin-grid{grid-template-columns:1fr;padding:0 42px 0 0}.category-admin-row>.category-admin-grid>div:before{display:block;font-size:.68rem;font-weight:900;color:#8a6b42;text-transform:uppercase;margin:2px 0 4px}.category-admin-row>.category-admin-grid>div:nth-child(1):before{content:'Categoría'}.category-admin-row>.category-admin-grid>div:nth-child(2):before{content:'Descripción'}.category-admin-row>.category-admin-grid>div:nth-child(3):before{content:'Estatus'}.category-admin-row>.category-admin-grid>div:nth-child(4):before{content:'Acciones'}.category-row-actions{justify-content:flex-start}.full-span{grid-column:auto}}

/* Buscador universal del punto de venta */
.scan-box{position:relative;}
.quick-search-results{position:absolute;left:0;right:0;top:calc(100% - 24px);z-index:40;background:#fff;border:1px solid rgba(0,0,0,.14);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.18);max-height:360px;overflow:auto;padding:6px;}
.quick-search-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:#fff;padding:11px 12px;border-radius:10px;text-align:left;cursor:pointer;}
.quick-search-item:hover,.quick-search-item.active{background:#f5efe8;}
.quick-search-item span{display:flex;flex-direction:column;min-width:0;}
.quick-search-item strong,.quick-search-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.quick-search-item small{color:#6f6f6f;margin-top:3px;}
.quick-search-item b{white-space:nowrap;}
.quick-search-status.success{color:#1f7a3f;font-weight:700;}
.quick-search-status.error{color:#b3261e;font-weight:700;}
@media (max-width:900px){.quick-search-results{top:calc(100% - 18px);max-height:300px;}}


.quick-search-product{flex:1;gap:2px;}
.quick-search-code{font-weight:800;color:#5c4438!important;}
.quick-search-data{display:grid!important;grid-template-columns:repeat(4,minmax(110px,1fr));gap:4px 12px;margin-top:5px;}
.quick-search-data small{display:block;white-space:normal;overflow:visible;text-overflow:clip;margin:0;color:#62564f;}
.quick-search-data small b{font-weight:800;color:#342923;}
.quick-search-price{align-self:center;}
@media (max-width:720px){.quick-search-item{align-items:flex-start}.quick-search-data{grid-template-columns:1fr 1fr}.quick-search-price{margin-top:2px}}
@media (max-width:480px){.quick-search-item{display:grid;grid-template-columns:1fr}.quick-search-data{grid-template-columns:1fr}.quick-search-price{justify-self:start}}

/* Promociones: captura responsiva de combos */
.combo-panel{
  grid-column:1 / -1;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid #e4d7cb;
  border-radius:16px;
  padding:16px;
  background:#fffaf5;
  align-self:stretch;
}
.combo-panel[hidden]{display:none!important;}
.combo-panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;}
.combo-panel-heading h3{margin:0 0 5px;}
.combo-panel-heading p{margin:0;max-width:760px;}
.combo-count-note{white-space:nowrap;background:#f1e7dc;border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:800;color:#684b38;}
.combo-lines{display:grid;gap:12px;min-width:0;}
.combo-line{display:grid;grid-template-columns:42px minmax(260px,2fr) minmax(150px,.8fr) minmax(110px,.55fr);gap:12px;align-items:end;padding:12px;border:1px solid #eadfd5;border-radius:14px;background:#fff;min-width:0;}
.combo-line-number{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#6f4b3e;color:#fff;font-weight:900;align-self:center;}
.combo-line label{min-width:0;}
.combo-line select,.combo-line input{width:100%;box-sizing:border-box;min-width:0;}
.required-note,.optional-note{font-size:.72rem;margin-left:5px;text-transform:none;letter-spacing:0;}
.required-note{color:#a23a2a;}.optional-note{color:#81746b;}
@media(max-width:900px){
  .combo-line{grid-template-columns:38px minmax(0,1fr) minmax(150px,.7fr);}
  .combo-line label:last-child{grid-column:2 / -1;}
}
@media(max-width:650px){
  .combo-panel{padding:12px;}
  .combo-panel-heading{display:block;}
  .combo-count-note{display:inline-block;margin-top:10px;white-space:normal;}
  .combo-line{grid-template-columns:34px minmax(0,1fr);gap:10px;}
  .combo-line-number{grid-row:1 / span 3;align-self:start;}
  .combo-line label,.combo-line label:last-child{grid-column:2;}
}

/* ROMME 4.62 - Resultados del buscador de Stock Artículos anclados al campo */
.product-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;}
.product-search-anchor{position:relative;min-width:0;z-index:80;}
.product-search-anchor>input{display:block;width:100%;box-sizing:border-box;}
.product-search-results{top:calc(100% + 6px);left:0;right:0;z-index:120;max-height:min(320px,48vh);overflow-y:auto;overscroll-behavior:contain;margin:0;}
.product-search-status{margin-top:8px;}
@media(max-width:650px){
  .product-search-row{grid-template-columns:1fr;}
  .product-search-row>#newProductButton{width:100%;}
  .product-search-results{max-height:min(280px,44vh);}
}

/* v4.63 - resultados completos del buscador de artículos */
.product-search-result { align-items: flex-start; }
.product-result-data {
  display: grid;
  grid-template-columns: minmax(110px,.8fr) minmax(220px,2fr) minmax(150px,1fr) minmax(80px,.55fr) minmax(140px,1fr);
  gap: 8px 14px;
  width: 100%;
  text-align: left;
}
.product-result-data > span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width:900px) {
  .product-result-data { grid-template-columns:1fr 1fr; }
  .product-result-data > span:nth-child(2) { grid-column:1/-1; }
}
@media (max-width:560px) {
  .product-result-data { grid-template-columns:1fr; }
  .product-result-data > span:nth-child(2) { grid-column:auto; }
}

/* ROMME 4.68 - Visibilidad real de coincidencias en Stock Artículos */
.product-search-results{
  background:#ffffff !important;
  color:#251d1b !important;
  opacity:1 !important;
  visibility:visible;
  isolation:isolate;
}
.product-search-results[hidden]{display:none !important;}
.product-search-results .product-search-result,
.product-search-results .quick-search-item{
  background:#ffffff !important;
  color:#251d1b !important;
  opacity:1 !important;
  visibility:visible !important;
  -webkit-text-fill-color:#251d1b;
}
.product-search-results .product-search-result:hover,
.product-search-results .product-search-result.active,
.product-search-results .quick-search-item:hover,
.product-search-results .quick-search-item.active{
  background:#f5efe8 !important;
  color:#251d1b !important;
}
.product-search-results .product-result-data,
.product-search-results .product-result-data > span,
.product-search-results .product-result-data strong{
  color:#251d1b !important;
  opacity:1 !important;
  visibility:visible !important;
  -webkit-text-fill-color:#251d1b;
}
.product-search-results .product-result-data strong{
  color:#6f4b3e !important;
  font-weight:900;
}

/* ROMME 4.69 - Cada coincidencia de Stock Artículos en un solo renglón */
.product-search-results .product-search-result{
  display:block;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}
.product-search-results .product-result-data{
  display:grid;
  grid-template-columns:minmax(120px,.9fr) minmax(260px,2.2fr) minmax(170px,1.2fr) minmax(90px,.65fr) minmax(150px,1fr);
  gap:14px;
  min-width:860px;
  width:100%;
  align-items:center;
  white-space:nowrap;
  text-align:left;
}
.product-search-results .product-result-data > span{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .product-search-results .product-result-data{
    grid-template-columns:minmax(110px,.9fr) minmax(230px,2fr) minmax(150px,1.1fr) minmax(80px,.6fr) minmax(135px,1fr);
    min-width:780px;
  }
}

/* ROMME 4.69 - Cada coincidencia de Stock Artículos en un solo renglón */
.product-search-results .product-search-result{
  display:block;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}
.product-search-results .product-result-data{
  display:grid;
  grid-template-columns:minmax(120px,.9fr) minmax(260px,2.2fr) minmax(170px,1.2fr) minmax(90px,.65fr) minmax(150px,1fr);
  gap:14px;
  min-width:860px;
  width:100%;
  align-items:center;
  white-space:nowrap;
  text-align:left;
}
.product-search-results .product-result-data > span{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .product-search-results .product-result-data{
    grid-template-columns:minmax(110px,.9fr) minmax(230px,2fr) minmax(150px,1.1fr) minmax(80px,.6fr) minmax(135px,1fr);
    min-width:780px;
  }
}

/* ROMME 4.69 - Cada coincidencia de Stock Artículos en un solo renglón */
.product-search-results .product-search-result{
  display:block;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}
.product-search-results .product-result-data{
  display:grid;
  grid-template-columns:minmax(120px,.9fr) minmax(260px,2.2fr) minmax(170px,1.2fr) minmax(90px,.65fr) minmax(150px,1fr);
  gap:14px;
  min-width:860px;
  width:100%;
  align-items:center;
  white-space:nowrap;
  text-align:left;
}
.product-search-results .product-result-data > span{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .product-search-results .product-result-data{
    grid-template-columns:minmax(110px,.9fr) minmax(230px,2fr) minmax(150px,1.1fr) minmax(80px,.6fr) minmax(135px,1fr);
    min-width:780px;
  }
}

/* Apartados 4.79: modificación en ventana centrada, independiente de la tabla */
.edit-layaway-box[open]{
  position:fixed;
  inset:0;
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  margin:0;
  max-width:none;
  background:rgba(35,28,23,.52);
  backdrop-filter:blur(3px);
  overflow:auto;
}
.edit-layaway-box[open] > summary{
  position:fixed;
  top:18px;
  right:22px;
  z-index:3002;
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  margin:0;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:#fff;
  color:transparent;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  font-size:0;
}
.edit-layaway-box[open] > summary::after{
  content:'×';
  color:#4b3b32;
  font-size:28px;
  font-weight:400;
  line-height:1;
}
.edit-layaway-box[open] > .editLayawayForm{
  position:relative;
  z-index:3001;
  width:min(1040px,calc(100vw - 48px));
  min-width:0;
  max-height:calc(100vh - 48px);
  overflow:auto;
  box-sizing:border-box;
  padding:22px;
  border:1px solid var(--romme-border);
  border-radius:22px;
  background:#fffdf9;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.edit-layaway-box[open] > .editLayawayForm::before{
  content:'Modificar apartado';
  display:block;
  margin:0 0 16px;
  color:#342922;
  font-size:1.35rem;
  font-weight:900;
}
.edit-layaway-box[open] .layaway-lines.compact{
  overflow-x:auto;
  padding-bottom:4px;
}
.edit-layaway-box[open] .layaway-lines.compact .layaway-lines-header,
.edit-layaway-box[open] .layaway-lines.compact .layaway-line{
  min-width:820px;
}
body.layaway-modal-open{overflow:hidden;}

@media(max-width:760px){
  .edit-layaway-box[open]{align-items:flex-start;padding:10px;}
  .edit-layaway-box[open] > summary{top:14px;right:14px;width:38px;height:38px;}
  .edit-layaway-box[open] > .editLayawayForm{
    width:100%;
    max-height:none;
    margin-top:50px;
    padding:15px;
    border-radius:18px;
  }
  .edit-layaway-box[open] .layaway-lines.compact .layaway-lines-header,
  .edit-layaway-box[open] .layaway-lines.compact .layaway-line{min-width:0;}
}


/* Login miConcept 5.07: responsive para laptop, tablet y celular */
body:has(.mc-login-page){
  min-height:100vh;
  overflow:hidden;
  background:#f8f4ed;
}
body:has(.mc-login-page) header{display:none}
body:has(.mc-login-page) main{max-width:none;margin:0;padding:0}
.mc-login-page{
  --mc-gold:#b88c14;
  --mc-gold-light:#e7d49d;
  --mc-gray:#777879;
  --mc-ink:#333333;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(420px,1.08fr) minmax(440px,.92fr);
  background:
    radial-gradient(circle at 18% 16%,rgba(255,255,255,.96),transparent 34%),
    linear-gradient(135deg,#f6f0e8 0%,#fffdf9 52%,#f3ede4 100%);
}
.mc-login-brand{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(42px,8vh,110px) clamp(38px,5vw,88px);
  box-sizing:border-box;
}
.mc-romme-logo{
  position:relative;
  z-index:2;
  width:min(650px,88%);
  height:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.mc-brand-decoration{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mc-decoration-r,.mc-decoration-c{
  position:absolute;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:.75;
  user-select:none;
}
.mc-decoration-r{
  left:-5vw;
  bottom:-5vh;
  font-size:clamp(380px,48vw,760px);
  color:rgba(105,105,105,.10);
}
.mc-decoration-c{
  right:-4vw;
  bottom:-10vh;
  font-size:clamp(380px,44vw,710px);
  color:rgba(184,140,20,.13);
}
.mc-login-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(24px,4vw,70px);
  box-sizing:border-box;
}
.mc-login-card{
  width:min(100%,540px);
  box-sizing:border-box;
  padding:clamp(34px,5vw,64px) clamp(28px,4.5vw,58px) 34px;
  border-radius:28px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(150,130,90,.14);
  box-shadow:0 24px 70px rgba(80,64,38,.14);
  backdrop-filter:blur(10px);
  text-align:center;
}
.mc-wordmark{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(48px,5vw,76px);
  line-height:1;
  font-weight:300;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.mc-wordmark span{color:var(--mc-gray);font-weight:400}
.mc-wordmark strong{color:var(--mc-gold);font-weight:400}
.mc-divider{display:grid;grid-template-columns:1fr 14px 1fr;align-items:center;gap:12px;margin:25px 0 32px}
.mc-divider span{height:1px;background:linear-gradient(90deg,transparent,var(--mc-gold))}
.mc-divider span:last-child{background:linear-gradient(90deg,var(--mc-gold),transparent)}
.mc-divider i{display:block;width:11px;height:11px;border-radius:50%;background:var(--mc-gold)}
.mc-login-card h1{font-family:Inter,Arial,sans-serif;font-size:clamp(24px,2.2vw,32px);margin:0;color:var(--mc-ink);font-weight:700}
.mc-login-subtitle{margin:12px 0 30px;color:#777;font-size:15px}
.mc-login-form{display:grid;gap:18px;text-align:left}
.mc-input-group{
  position:relative;
  display:flex;
  align-items:center;
  min-height:56px;
  border:1px solid #dedede;
  border-radius:10px;
  background:#fff;
  transition:border-color .18s,box-shadow .18s;
}
.mc-input-group:focus-within{border-color:var(--mc-gold);box-shadow:0 0 0 3px rgba(184,140,20,.12)}
.mc-input-icon{width:52px;text-align:center;color:#6f7071;font-size:20px;flex:0 0 52px}
.mc-input-group input{
  width:100%;height:54px;box-sizing:border-box;border:0!important;border-radius:0;background:transparent!important;padding:0 14px 0 0;font-size:16px;color:#333;outline:0!important;
}
.mc-password-toggle{
  width:50px;height:54px;flex:0 0 50px;padding:0;border:0;background:transparent!important;color:#777;box-shadow:none!important;font-size:18px;border-radius:0;
}
.mc-password-toggle:hover{filter:none;color:var(--mc-gold)}
.mc-login-button{
  width:100%;height:58px;margin-top:4px;border-radius:10px;font-size:17px;font-weight:700;background:linear-gradient(135deg,#cfa817,#ae7d00);box-shadow:0 10px 24px rgba(184,140,20,.25);
}
.mc-login-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.mc-copyright{margin:30px 0 0;color:#666;font-size:14px;line-height:1.5}

@media(max-width:1050px){
  .mc-login-page{grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr)}
  .mc-login-brand{padding-left:25px;padding-right:25px}
  .mc-romme-logo{width:min(460px,94%)}
  .mc-decoration-r{left:-18vw}.mc-decoration-c{right:-17vw}
  .mc-login-panel{padding:28px}
}
@media(max-width:760px){
  body:has(.mc-login-page){overflow:auto}
  .mc-login-page{display:flex;min-height:100svh;align-items:center;justify-content:center;padding:18px;box-sizing:border-box}
  .mc-login-brand{display:none}
  .mc-login-panel{width:100%;padding:0}
  .mc-login-card{width:100%;max-width:460px;padding:34px 22px 26px;border-radius:22px}
  .mc-wordmark{font-size:clamp(46px,15vw,66px)}
  .mc-divider{margin:21px 0 26px}
  .mc-login-subtitle{margin-bottom:24px}
  .mc-input-group{min-height:54px}
  .mc-login-button{height:54px}
  .mc-copyright{margin-top:24px;font-size:13px}
}
@media(max-width:380px){
  .mc-login-page{padding:10px}
  .mc-login-card{padding:25px 16px 20px}
  .mc-wordmark{font-size:43px}
  .mc-divider{margin:16px 0 21px}
  .mc-login-form{gap:13px}
  .mc-copyright{margin-top:19px}
}
@media(max-height:650px) and (min-width:761px){
  .mc-login-card{padding-top:28px;padding-bottom:22px}
  .mc-wordmark{font-size:50px}
  .mc-divider{margin:16px 0 20px}
  .mc-login-subtitle{margin:8px 0 18px}
  .mc-login-form{gap:12px}
  .mc-input-group,.mc-login-button{min-height:46px;height:46px}
  .mc-input-group input,.mc-password-toggle{height:44px}
  .mc-copyright{margin-top:18px}
}

/* =========================================================
   ROMME 5.20 - Experiencia adaptable laptop/tablet/celular
   Capa global, no altera la lógica funcional de las pantallas.
   ========================================================= */
:root{
  --app-bg:#f7f1ed;
  --surface:#ffffff;
  --surface-soft:#fbf7f4;
  --ink:#251d1b;
  --muted:#776b67;
  --brand:#2b201d;
  --brand-soft:#4b3934;
  --line:#e6dcd6;
  --shadow:0 10px 30px rgba(43,32,29,.08);
  --radius:18px;
  --tap:44px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{min-width:320px;background:var(--app-bg);line-height:1.45;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
.app-header{position:sticky;top:0;z-index:1000;min-height:72px;box-shadow:0 5px 22px rgba(0,0,0,.14)}
.brand-title{display:flex;align-items:center;gap:10px;min-width:0}
.brand-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-logo-small{flex:0 0 auto}
.app-nav{align-items:center}
.app-nav a,.app-nav .navbtn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:transform .15s ease,background .15s ease}
.app-nav a:hover,.app-nav .navbtn:hover{background:#604a43;transform:translateY(-1px)}
.mobile-nav-toggle{display:none;min-height:var(--tap);background:#fff;color:var(--brand);font-weight:800;border:1px solid rgba(255,255,255,.3);align-items:center;gap:8px}
.mobile-nav-icon{font-size:1.25rem;line-height:1}
main{width:100%;max-width:1440px;padding:26px clamp(16px,3vw,34px) 48px}
.card,.metric{border:1px solid rgba(43,32,29,.05);box-shadow:var(--shadow)}
h1{font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.14}
h2{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.2}
p{overflow-wrap:anywhere}
a,button,input,select,textarea{font:inherit}
input,select,textarea,button,.btn,.button,.btnlink{min-height:var(--tap)}
input,select,textarea{width:100%;max-width:100%;background:#fff;color:var(--ink)}
textarea{resize:vertical;min-height:96px}
button,.btn,.button,.btnlink{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.responsive-table:focus-visible{outline:3px solid rgba(10,110,209,.35);outline-offset:2px}
.row>input,.row>select,.row>label{flex:1 1 180px}
.formgrid>label,.form-row>label{min-width:0}
.responsive-table{width:100%;overflow-x:auto;overflow-y:hidden;border-radius:16px;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;margin-bottom:16px;box-shadow:0 8px 24px #0001;background:#fff}
.responsive-table table{margin:0;box-shadow:none;border-radius:0;min-width:max-content}
.responsive-table th{position:sticky;top:0;z-index:1}
td,th{vertical-align:middle;overflow-wrap:normal}
.flash{position:relative;box-shadow:0 5px 18px rgba(0,0,0,.07)}
.image-modal{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}

@media (max-width:1100px){
  main{max-width:100%}
  .grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
  .card,.metric{padding:16px}
}

@media (max-width:900px){
  .app-header{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px 16px;gap:10px;align-items:center}
  .mobile-nav-toggle{display:inline-flex}
  .app-nav{display:none;grid-column:1/-1;flex-direction:column;align-items:stretch;width:100%;gap:7px;padding-top:8px;max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}
  .app-nav.is-open{display:flex}
  .app-nav>a,.app-nav>.navgroup>.navbtn{width:100%;justify-content:space-between;text-align:left;padding:12px 14px;background:#4b3934}
  .navgroup{width:100%}
  .navgroup:hover .navmenu,.navgroup:focus-within .navmenu{display:none}
  .navgroup.is-open .navmenu{display:grid}
  .navmenu{position:static;width:100%;min-width:0;margin-top:6px;padding:7px;background:rgba(255,255,255,.08);box-shadow:none;border-radius:12px}
  .navmenu a{width:100%;margin:2px 0;justify-content:flex-start;padding-left:20px;background:rgba(255,255,255,.08)}
  body.nav-open{overflow:hidden}
  main{padding:18px 14px 40px}
  .cols{grid-template-columns:1fr}
  .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticket-head{grid-template-columns:1fr 1fr}
  .responsive-table{border:1px solid var(--line)}
  .responsive-table:after{content:'Desliza horizontalmente para ver más';display:block;position:sticky;left:0;width:max-content;max-width:100%;padding:7px 11px;color:var(--muted);font-size:.72rem;background:var(--surface-soft);border-top:1px solid var(--line)}
  .pos-modal,.payment-modal,.image-modal{align-items:flex-end}
  .pos-modal-box,.payment-modal-box{width:100%;max-width:none;max-height:92dvh;border-radius:20px 20px 0 0;padding-bottom:max(18px,env(safe-area-inset-bottom))}
  .payment-modal-box{display:flex;overflow:hidden}
}

@media (max-width:600px){
  :root{--radius:15px}
  .app-header{padding:10px 12px}
  .brand-title strong{font-size:.92rem}
  .brand-logo-small{max-height:38px;max-width:72px;object-fit:contain}
  .mobile-nav-toggle{padding:9px 12px}
  main{padding:14px 10px 34px}
  .card,.metric{padding:14px;border-radius:15px;margin-bottom:12px}
  .grid,.formgrid{grid-template-columns:1fr;gap:10px}
  .row,.form-row{display:grid;grid-template-columns:1fr;width:100%;gap:9px}
  .row>* ,.form-row>*{width:100%!important;max-width:none!important}
  .ticket-head{grid-template-columns:1fr}
  .metric b,.kpi strong{font-size:clamp(1.55rem,9vw,2rem)}
  table{font-size:.82rem}
  th,td{padding:9px 8px}
  input,select,textarea,button,.btn,.button,.btnlink{font-size:16px}
  button,.btn,.button,.btnlink{width:100%;justify-content:center;text-align:center}
  form.inline{display:block;width:100%}
  form.inline button{width:100%}
  .ticketActions,.rent-doc-actions,.client-form-actions,.product-create-actions,.catalog-actions,.camera-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .totalsBox{display:grid;gap:5px;position:sticky;bottom:0;z-index:20;margin-inline:-14px;margin-bottom:-14px;padding:14px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 20px rgba(43,32,29,.1)}
  .login{margin:24px auto;max-width:100%}
  .login.card{padding:20px 16px}
}

@media (max-width:380px){
  .brand-title strong{max-width:150px}
  .mobile-nav-toggle span:last-child{display:none}
  .mobile-nav-toggle{width:46px;padding:8px}
  h1{font-size:1.55rem}
}

@media (hover:none){
  .app-nav a:hover,.app-nav .navbtn:hover{transform:none}
}

@media print{
  .app-header,.mobile-nav-toggle{display:none!important}
  .responsive-table{overflow:visible;box-shadow:none;border:0}
  .responsive-table table{min-width:0;width:100%}
  .responsive-table:after{display:none!important}
}

/* Controles compactos que no deben ocupar todo el ancho en celular. */
@media (max-width:600px){
  .image-modal-close,.photo-icon-button,.modal-close,.icon-button,.qty-button,
  button[aria-label],button[title="Ver foto"]{width:auto;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
  td button,td .btn,td .button{width:auto;min-width:44px;white-space:nowrap}
  td form.inline{display:inline-block;width:auto}
  td form.inline button{width:auto}
}
/* Centro de Administración 5.24 */
.settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.settings-head h1{margin-bottom:4px}.settings-search{padding:14px;margin-bottom:18px}.settings-search input{margin:0;font-size:1rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.settings-card{display:flex;align-items:flex-start;gap:14px;min-height:155px;padding:20px;border:1px solid #e3e6ea;border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 5px 18px rgba(0,0,0,.045);transition:.18s ease}.settings-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.08);border-color:#bcc5cf}.settings-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#f3f5f7;font-size:27px;flex:0 0 52px}.settings-card-body{flex:1}.settings-card h2{font-size:1.05rem;margin:1px 0 7px}.settings-card p{font-size:.9rem;color:#66717d;margin:0 0 12px;line-height:1.35}.settings-card small{display:block;color:#7b8490;margin-top:6px}.settings-arrow{font-size:28px;color:#9aa3ad}.settings-state{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700}.settings-state span{width:9px;height:9px;border-radius:50%;background:#8c96a0}.settings-state.ok span{background:#27a35a}.settings-state.warn span{background:#e1a325}.settings-state.bad span{background:#cc3d3d}.settings-state.neutral span{background:#8c96a0}.back-link{display:inline-block;margin-bottom:9px;text-decoration:none;font-weight:600}.toggle-row{grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #e5e7eb;border-radius:12px}.toggle-row input{width:22px!important;height:22px;margin:0}.settings-form textarea{width:100%}@media(max-width:700px){.settings-head{display:block}.settings-head>.btn{margin-top:10px}.settings-grid{grid-template-columns:1fr}.settings-card{min-height:0;padding:16px}.settings-icon{width:46px;height:46px;flex-basis:46px;font-size:23px}}
/* Motor central de documentos 5.25 */
.document-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px;border-radius:22px;background:linear-gradient(135deg,#fff,#f6f3ee);border:1px solid #e6ded3;margin-bottom:18px}.document-hero h1,.document-detail-head h1{margin:4px 0}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#795f47}.document-sync{min-width:155px;text-align:center;padding:18px;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(40,30,20,.08)}.document-sync strong{display:block;font-size:2rem}.document-sync span{font-size:.84rem;color:#6c6259}.document-filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:12px;align-items:end;background:#fff;padding:16px;border-radius:18px;margin-bottom:16px}.document-filters label{display:grid;gap:5px;font-weight:700;font-size:.82rem}.filter-actions{display:flex;gap:7px}.document-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}.document-summary-card{display:grid;gap:5px;padding:15px;background:#fff;border:1px solid #e8e1d8;border-radius:16px}.document-summary-card strong{font-size:1.55rem}.document-summary-card small,.document-table small{display:block;color:#766d65}.doc-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.76rem;font-weight:800;background:#ebe7e2}.status-activo,.status-confirmado,.status-finalizado,.status-liquidado{background:#dff4e7;color:#176638}.status-cancelado,.status-anulado{background:#fde3e3;color:#992828}.status-abierto,.status-pendiente,.status-borrador{background:#fff1cf;color:#795400}.document-detail-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.document-detail-head>a{font-weight:700}.document-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}.document-main,.side-card{background:#fff;border:1px solid #e8e1d8;border-radius:18px;padding:20px}.document-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.document-info-grid>div{display:grid;gap:4px;padding:12px;background:#f8f6f3;border-radius:12px}.document-info-grid small{color:#746b62}.mono{font-family:monospace;font-size:.75rem;overflow-wrap:anywhere}.document-totals{display:flex;justify-content:flex-end;gap:22px;align-items:center;margin:14px 0}.document-totals span{display:grid;gap:4px}.document-totals .grand{font-size:1.15rem}.document-note,.document-metadata{background:#f8f6f3;border-radius:14px;padding:14px;margin:15px 0}.document-metadata dl{display:grid;grid-template-columns:180px 1fr;gap:7px}.document-metadata dt{font-weight:800}.document-timeline article{display:grid;grid-template-columns:15px 1fr;gap:10px;padding-bottom:14px}.document-timeline article>span{width:10px;height:10px;border-radius:50%;background:#8b6c4e;margin-top:5px;box-shadow:0 0 0 4px #eee5dc}.document-timeline small{display:block;color:#786f67;margin-top:4px}.document-side{display:grid;gap:14px;align-content:start}.side-card h3{margin-top:0}.side-card form{display:grid;gap:8px}.comment{padding:12px 0;border-top:1px solid #eee7df}.comment p{margin:5px 0}.comment small,.side-card>form small,.muted{color:#796f66}.attachment{display:flex;gap:8px;padding:10px 0;border-top:1px solid #eee7df}.attachment span{display:grid}.attachment small{color:#796f66}.approval{display:grid;grid-template-columns:1fr auto;gap:4px;padding:9px 0;border-top:1px solid #eee7df}.approval small{grid-column:1/-1;color:#796f66}
@media(max-width:1050px){.document-filters{grid-template-columns:repeat(3,1fr)}.document-layout{grid-template-columns:1fr}.document-side{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.document-hero,.document-detail-head{align-items:flex-start;flex-direction:column}.document-sync{width:100%}.document-filters{grid-template-columns:1fr}.filter-actions .btn{flex:1}.document-info-grid{grid-template-columns:1fr 1fr}.document-side{grid-template-columns:1fr}.document-totals{display:grid;grid-template-columns:1fr 1fr}.document-totals .grand{grid-column:1/-1}.document-metadata dl{grid-template-columns:1fr}}

.diagnostic-environment{margin-bottom:18px;display:flex;justify-content:space-between;align-items:center}.diagnostic-mode{font-size:1.25rem;font-weight:800}.maintenance-page{min-height:100vh;display:grid;place-items:center;padding:24px}.maintenance-card{max-width:620px;text-align:center;padding:42px}.maintenance-icon{font-size:54px}.incident-code{display:inline-block;margin:16px 0;padding:10px 16px;border-radius:8px;background:#f2f4f7;font-family:monospace;font-weight:800}.error-incident{max-width:720px;margin:30px auto;text-align:center}.error-incident pre{text-align:left;white-space:pre-wrap;overflow:auto}.environment-explanation p{margin:.45rem 0}

/* Navegación principal responsiva unificada 5.30
   Evita superposiciones y mantiene una composición consistente en laptop,
   tablet y celular. */
.app-nav > .navgroup{position:relative;min-width:0}
.app-nav .navmenu{box-sizing:border-box}

@media (min-width:901px){
  .app-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
  .app-nav > a,.app-nav > .navgroup > .navbtn{
    min-height:42px;
    padding:9px 13px;
    border-radius:12px;
    white-space:nowrap;
  }
  .app-nav .navmenu{
    top:calc(100% + 8px);
    left:0;
    width:max-content;
    min-width:220px;
    max-width:min(520px,calc(100vw - 32px));
    padding:10px;
    gap:8px;
    grid-template-columns:repeat(2,minmax(145px,1fr));
    border-radius:16px;
    overflow:visible;
  }
  .app-nav > .navgroup:hover > .navmenu,
  .app-nav > .navgroup:focus-within > .navmenu{
    display:grid;
  }
  .app-nav .navmenu a{
    display:flex !important;
    width:100%;
    min-width:0;
    min-height:44px;
    margin:0;
    padding:10px 13px;
    align-items:center;
    justify-content:flex-start;
    border-radius:11px;
    line-height:1.2;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  /* Los grupos cercanos al borde derecho se abren hacia la izquierda. */
  .app-nav > .navgroup:nth-last-of-type(-n+2) > .navmenu{
    left:auto;
    right:0;
  }
}

@media (min-width:901px) and (max-width:1180px){
  .app-header{align-items:flex-start}
  .app-nav{max-width:760px}
  .app-nav .navmenu{grid-template-columns:1fr;min-width:230px;max-width:300px}
}

@media (max-width:900px){
  .app-nav > .navgroup{width:100%}
  .app-nav .navmenu{
    grid-template-columns:1fr;
    gap:6px;
    overflow:visible;
  }
  .app-nav .navmenu a{
    display:flex !important;
    width:100%;
    min-height:44px;
    margin:0;
    padding:11px 16px 11px 22px;
    align-items:center;
    justify-content:flex-start;
    color:#fff;
    border-color:rgba(255,255,255,.16);
    border-radius:10px;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}

/* ================================================================
   miConcept 5.41 — Corrección visual conservadora
   Prioriza legibilidad, espacio útil y controles sin recorte.
   ================================================================ */
:root{
  --ui-bg:#f7f4ef;
  --ui-surface:#ffffff;
  --ui-line:#e8e0d6;
  --ui-text:#2b2926;
  --ui-muted:#756f68;
  --ui-accent:#9d7a26;
  --ui-radius:14px;
  --ui-shadow-sm:0 4px 14px rgba(63,48,29,.06);
}
body{font-size:15px;line-height:1.5;background:var(--ui-bg);color:var(--ui-text)}
main#mainContent{max-width:1320px;padding:26px 28px 48px}
.card,.metric,.dashboard-panel,.indicator-panel,.crm-panel,.settings-card,.diag-card,.alert-card{
  background:var(--ui-surface);border:1px solid var(--ui-line);box-shadow:var(--ui-shadow-sm)
}
.card{padding:20px;margin-bottom:18px}

/* Controles: nunca recortar texto ni forzar anchos estrechos */
input,select,textarea{
  box-sizing:border-box;max-width:100%;min-width:0;min-height:42px;
  padding:9px 12px;border:1px solid #d8d0c7;border-radius:10px;
  background:#fff;color:var(--ui-text);font:inherit
}
select{padding-right:34px;text-overflow:ellipsis;white-space:nowrap}
textarea{min-height:88px;resize:vertical}
label{min-width:0}
.formgrid,.form-grid,.grid-form{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 16px;align-items:end
}
.formgrid>label,.form-grid>label,.grid-form>label{min-width:0}
.formgrid>.full,.formgrid>.fullwidth,.form-grid>.full,.grid-form>.full{grid-column:1/-1}

/* Acciones: solo contenedores explícitos; nunca celdas o grupos genéricos .actions */
.form-actions,.product-create-actions,.catalog-actions,.brand-secondary-actions,.brand-header-actions,.document-actions,.rent-actions{
  display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap
}
.form-actions,.product-create-actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--ui-line)}
.form-actions form,.product-create-actions form,.catalog-actions form,.document-actions form{margin:0}

/* Botones: conservar estilos por módulo y garantizar texto legible */
button,.btn,.button,.btnlink,a.btn,a.button{
  box-sizing:border-box;max-width:100%;min-height:38px;line-height:1.2;
  white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center
}
.actions-cell,.document-actions,.rent-actions,.catalog-actions{row-gap:8px}
.actions-cell>*{flex:0 1 auto;min-width:0}
.actions-cell button,.actions-cell .btn,.actions-cell .button,
.document-actions button,.document-actions .btn,.document-actions .button{
  width:auto;min-width:44px;max-width:100%;white-space:normal
}

/* Resultados de búsqueda legibles */
.product-result-data{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:5px 14px}
.quick-search-item,.product-search-result{overflow:visible}

/* Tablas seguras sin modificar la geometría interna */
.responsive-table,.table-wrap,.table-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
table{max-width:none}
th,td{vertical-align:middle}

@media(max-width:1050px){
  main#mainContent{padding:22px 20px 44px}
  .formgrid,.form-grid,.grid-form{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
}
@media(max-width:760px){
  main#mainContent{padding:16px 12px 34px}
  .card{padding:15px}
  .formgrid,.form-grid,.grid-form{grid-template-columns:minmax(0,1fr);gap:12px}
  .form-actions,.product-create-actions,.catalog-actions,.brand-secondary-actions,.brand-header-actions,.document-actions,.rent-actions{
    align-items:stretch;justify-content:stretch
  }
  .form-actions>*,.product-create-actions>*,.catalog-actions>*,.brand-secondary-actions>*,.brand-header-actions>*,.document-actions>*,.rent-actions>*{
    flex:1 1 100%;width:100%;max-width:100%
  }
  .form-actions button,.form-actions .btn,.form-actions .button,
  .product-create-actions button,.product-create-actions .btn,.product-create-actions .button,
  .catalog-actions button,.catalog-actions .btn,.catalog-actions .button,
  .document-actions button,.document-actions .btn,.document-actions .button{
    width:100%;white-space:normal
  }
  .actions-cell{min-width:150px;align-items:stretch}
  .actions-cell button,.actions-cell .btn,.actions-cell .button,.actions-cell form{flex:1 1 100%;width:100%}
  .actions-cell form button{width:100%}
  .product-result-data{grid-template-columns:1fr}
}

/* Control de Calidad 360° — 5.43
   Reglas finales deliberadamente conservadoras: protegen legibilidad y
   adaptación sin sustituir la composición particular de cada módulo. */
*,*::before,*::after{box-sizing:border-box}
main img{max-width:100%;height:auto}
main input:not([type="checkbox"]):not([type="radio"]),
main select,main textarea{max-width:100%;min-width:0}
main select{white-space:normal;text-overflow:ellipsis}
main textarea{resize:vertical}
main button,main .btn,main .button,main .btnlink{
  max-width:100%;min-height:42px;line-height:1.2;overflow-wrap:anywhere;
}
.form-actions,.page-actions,.toolbar-actions,.document-actions,.catalog-actions,
.product-create-actions,.client-form-actions,.ticketActions{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap
}
.form-actions>*,.page-actions>*,.toolbar-actions>*,.document-actions>*,
.catalog-actions>*,.product-create-actions>*,.client-form-actions>*,.ticketActions>*{
  min-width:0
}
.actions-cell{white-space:normal;min-width:148px}
.actions-cell>a,.actions-cell>button,.actions-cell>form{margin:0}
.responsive-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.responsive-table table{margin:0;box-shadow:none}
.flash{overflow-wrap:anywhere}
label{min-width:0}
label>input,label>select,label>textarea{width:100%}
:focus-visible{outline:3px solid rgba(157,116,23,.35);outline-offset:2px}

@media(max-width:900px){
  main{overflow-x:hidden}
  .form-actions,.page-actions,.toolbar-actions,.document-actions,.catalog-actions,
  .product-create-actions,.client-form-actions,.ticketActions{align-items:stretch}
  .form-actions>*,.page-actions>*,.toolbar-actions>*,.document-actions>*,
  .catalog-actions>*,.product-create-actions>*,.client-form-actions>*,.ticketActions>*{
    flex:1 1 170px
  }
}
@media(max-width:520px){
  .form-actions>*,.page-actions>*,.toolbar-actions>*,.document-actions>*,
  .catalog-actions>*,.product-create-actions>*,.client-form-actions>*,.ticketActions>*{
    flex-basis:100%;width:100%
  }
  .actions-cell{min-width:132px}
  .actions-cell>a,.actions-cell>button,.actions-cell>form{width:100%}
  .actions-cell form button{width:100%}
  main .card,main .metric{padding:15px}
}

/* ROMME 5.51 — Ventas: botones de captura siempre legibles */
.scan-input-row > .btn{
  flex:0 0 auto;
  width:auto;
  min-width:104px;
  padding-left:18px;
  padding-right:18px;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
  hyphens:none;
}
@media(max-width:900px){
  .scan-input-row > .btn{
    width:100%;
    min-width:0;
  }
}

/* ================================================================
   miConcept 5.52.3 — Legibilidad del menú en celular
   Estados táctiles consistentes para menú principal y submenús.
   ================================================================ */
@media (max-width:900px){
  .app-nav > a,
  .app-nav > a:link,
  .app-nav > a:visited,
  .app-nav > .navgroup > .navbtn{
    background:#4b3934 !important;
    color:#ffffff !important;
    border:1px solid rgba(255,255,255,.14) !important;
    -webkit-tap-highlight-color:transparent;
  }

  .app-nav > a:hover,
  .app-nav > a:focus,
  .app-nav > a:focus-visible,
  .app-nav > a:active,
  .app-nav > .navgroup > .navbtn:hover,
  .app-nav > .navgroup > .navbtn:focus,
  .app-nav > .navgroup > .navbtn:focus-visible,
  .app-nav > .navgroup > .navbtn:active,
  .app-nav > .navgroup.is-open > .navbtn{
    background:#604a43 !important;
    color:#ffffff !important;
  }

  .app-nav .navmenu{
    background:#352824 !important;
    border:1px solid rgba(255,255,255,.16) !important;
    box-shadow:none !important;
  }

  .app-nav .navmenu a,
  .app-nav .navmenu a:link,
  .app-nav .navmenu a:visited{
    background:#fbf3e1 !important;
    color:#2b201d !important;
    border:1px solid #eadcc0 !important;
    -webkit-tap-highlight-color:transparent;
  }

  .app-nav .navmenu a:hover,
  .app-nav .navmenu a:focus,
  .app-nav .navmenu a:focus-visible,
  .app-nav .navmenu a:active{
    background:#ead9b8 !important;
    color:#251d1b !important;
    border-color:#d7bd88 !important;
  }
}

/* 5.52.18 - Catálogo de Ventas: filas independientes sin encimarse */
#catalogModal .pos-modal-box{
  min-height:0;
}
#catalogModal .catalog-list-detailed{
  min-height:0;
  align-content:start;
  grid-auto-rows:max-content;
  overscroll-behavior:contain;
}
#catalogModal .catalog-item.detailed{
  width:100%;
  height:auto !important;
  min-height:104px;
  box-sizing:border-box;
  overflow:hidden;
  flex:none;
  align-self:start;
  margin:0;
  line-height:1.3;
}
#catalogModal .catalog-main{
  min-width:0;
  align-self:center;
}
#catalogModal .catalog-main strong,
#catalogModal .catalog-sku,
#catalogModal .catalog-grid span{
  position:static;
  line-height:1.3;
  overflow-wrap:anywhere;
}
#catalogModal .catalog-photo,
#catalogModal .catalog-price{
  align-self:center;
}
@media (max-width:720px){
  #catalogModal .catalog-item.detailed{
    min-height:0;
    padding:12px;
  }
}


/* 5.52.19 - Identidad de sesión y estado operativo en encabezado */
.header-user-greeting{
  margin-left:10px;
  font-size:.92rem;
  color:var(--romme-muted);
  white-space:nowrap;
}
.header-user-greeting strong{color:var(--romme-ink);font-weight:700;}
.system-status-dot{
  width:12px;
  height:12px;
  margin-left:12px;
  border-radius:50%;
  display:inline-block;
  flex:0 0 12px;
  border:2px solid rgba(255,255,255,.95);
  box-shadow:0 0 0 1px rgba(44,41,38,.18),0 2px 7px rgba(44,41,38,.18);
}
.system-status-dot.status-production{background:#2f9e44;}
.system-status-dot.status-development{background:#f2c94c;}
.system-status-dot.status-maintenance{background:#d64545;}

/* 5.52.19 - Reporte de ventas: columnas estables y lectura contable */
.sales-detail-table{table-layout:fixed;width:100%;}
.sales-detail-table th,.sales-detail-table td{vertical-align:top;overflow-wrap:anywhere;}
.sales-detail-table .numeric-col{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.sale-detail-table .c-sku{width:10%;}.sale-detail-table .c-product{width:16%;}.sale-detail-table .c-note{width:14%;}.sale-detail-table .c-category{width:11%;}.sale-detail-table .c-brand{width:10%;}.sale-detail-table .c-size{width:7%;}.sale-detail-table .c-qty{width:7%;}.sale-detail-table .c-price{width:8%;}.sale-detail-table .c-discount{width:8%;}.sale-detail-table .c-total{width:9%;}
.layaway-detail-table .c-level{width:12%;}.layaway-detail-table .c-sku{width:9%;}.layaway-detail-table .c-product{width:18%;}.layaway-detail-table .c-category{width:10%;}.layaway-detail-table .c-brand{width:9%;}.layaway-detail-table .c-size{width:6%;}.layaway-detail-table .c-qty{width:7%;}.layaway-detail-table .c-price{width:8%;}.layaway-detail-table .c-payment{width:11%;}.layaway-detail-table .c-total{width:10%;}
@media(max-width:900px){
  .header-user-greeting{margin-left:4px;font-size:.86rem;}
  .system-status-dot{margin-left:6px;}
  .sales-detail-table{min-width:980px;}
}
\n\n/* 5.52.19 - Reporte de ventas: encabezado uniforme y cierre compacto */\n.sales-ticket-head{\n  grid-template-columns:1.05fr 1.15fr .82fr 1fr .95fr 1.35fr;\n  align-items:center;\n}\n.sales-ticket-head>div{\n  min-width:0;\n  white-space:nowrap;\n  overflow:hidden;\n  text-overflow:ellipsis;\n}\n.sales-ticket-head>div:last-child{\n  white-space:normal;\n}\n.ticket-total-compact td{\n  padding-top:8px;\n  padding-bottom:8px;\n}\n.ticket-total-compact .ticket-total-label{\n  text-align:right;\n  white-space:nowrap;\n}\n.ticket-total-compact .ticket-total-value{\n  text-align:right;\n  white-space:nowrap;\n  font-variant-numeric:tabular-nums;\n}\n@media(max-width:1100px){\n  .sales-ticket-head{grid-template-columns:repeat(3,minmax(0,1fr));}\n}\n@media(max-width:700px){\n  .sales-ticket-head{grid-template-columns:repeat(2,minmax(0,1fr));}\n}\n
/* 5.52.19 - Refinamiento visual final del Reporte de Ventas */
.sale-detail-table .c-sku{width:11%;}
.sale-detail-table .c-product{width:24%;}
.sale-detail-table .c-category{width:14%;}
.sale-detail-table .c-brand{width:11%;}
.sale-detail-table .c-size{width:7%;}
.sale-detail-table .c-qty{width:7%;}
.sale-detail-table .c-price{width:9%;}
.sale-detail-table .c-discount{width:8%;}
.sale-detail-table .c-total{width:9%;}
.sales-detail-table > tbody > tr:first-child > th,
.sales-detail-table > tr:first-child > th{
  background:rgba(0,0,0,.035);
  border-bottom:1px solid rgba(0,0,0,.09);
}
.ticket-total-compact .ticket-total-label{
  text-align:right;
  white-space:nowrap;
  padding-right:10px;
}
.ticket-total-compact .ticket-total-value{
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.ticket-block + .ticket-block{
  border-top:1px solid rgba(0,0,0,.09);
  padding-top:16px;
  margin-top:16px;
}


/* 5.52.22 - Reporte de Ventas: total estable dentro de la rejilla */
.ticket-total-compact{
  border-top:1px solid rgba(25,54,91,.55);
}
.ticket-total-compact .ticket-total-label,
.ticket-total-compact .ticket-total-value{
  vertical-align:middle;
  line-height:1.15;
}
.ticket-total-compact .ticket-total-label{
  text-align:right;
  white-space:nowrap;
  padding-right:12px;
}
.ticket-total-compact .ticket-total-value{
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}


/* 5.52.23 - Reporte de Ventas: jerarquía, cierre ejecutivo y responsive */
.sales-ticket-head{
  grid-template-columns:minmax(185px,1.35fr) minmax(180px,1.2fr) minmax(110px,.72fr) minmax(165px,1.05fr) minmax(125px,.82fr) minmax(185px,1.3fr);
  gap:8px 18px;
  padding:11px 13px;
}
.sales-ticket-head .ticket-meta{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
  overflow:hidden;
}
.sales-ticket-head .ticket-meta-label{
  flex:0 0 auto;
  color:var(--romme-muted);
  font-weight:600;
}
.sales-ticket-head .ticket-meta-value{
  min-width:0;
  color:var(--romme-ink);
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sales-ticket-head .ticket-meta-number .ticket-meta-value{
  font-weight:750;
  letter-spacing:.01em;
}
.sales-ticket-head .ticket-meta-client .ticket-meta-value{
  white-space:normal;
  overflow-wrap:anywhere;
}
.sales-table-scroll{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.ticket-block + .ticket-block{
  border-top:0;
  padding-top:0;
  margin-top:20px;
}
.sales-report-footer{
  margin-top:24px;
  padding:16px 2px 2px;
  border-top:1px solid rgba(44,41,38,.14);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 24px;
  align-items:end;
}
.sales-report-footer-item{
  min-width:0;
  display:flex;
  justify-content:flex-end;
  align-items:baseline;
  gap:8px;
  font-variant-numeric:tabular-nums;
}
.sales-report-footer-item span{
  color:var(--romme-muted);
  font-size:.9rem;
  white-space:nowrap;
}
.sales-report-footer-item strong{
  color:var(--romme-ink);
  white-space:nowrap;
}
.sales-report-footer-total strong{
  font-size:1.08rem;
}

@media (max-width:1200px){
  .sales-ticket-head{
    grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,.8fr);
  }
  .sales-report-footer{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:820px){
  .sales-ticket-head{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px 14px;
  }
  .sales-ticket-head .ticket-meta{
    white-space:normal;
  }
  .sales-ticket-head .ticket-meta-value{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:anywhere;
  }
  .sales-detail-table{
    min-width:900px;
  }
  .layaway-detail-table{
    min-width:980px;
  }
}
@media (max-width:540px){
  .sales-ticket-head{
    grid-template-columns:1fr;
    gap:5px;
    padding:10px 11px;
  }
  .sales-report-footer{
    grid-template-columns:1fr;
    gap:7px;
    margin-top:20px;
    padding-top:13px;
  }
  .sales-report-footer-item{
    justify-content:space-between;
  }
  .sales-report-footer-item span{
    white-space:normal;
  }
}


/* 5.52.36 · Ofertas vigentes: overlay independiente del encabezado */
.header-offers{
  position:relative;
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  margin-left:2px;
}
.header-offers-btn{
  position:relative;
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  padding:0;
  border:1px solid rgba(120,92,79,.24);
  border-radius:50%;
  background:rgba(255,255,255,.90);
  color:var(--romme-ink);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(50,35,28,.06);
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.header-offers-btn:hover,
.header-offers.is-open .header-offers-btn{
  background:#fff;
  box-shadow:0 5px 16px rgba(50,35,28,.12);
  transform:translateY(-1px);
}
.header-offers-icon{font-size:.78rem;font-weight:800;line-height:1;}
.header-offers-count{
  position:absolute;
  right:-5px;
  top:-5px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:9px;
  background:var(--romme-ink);
  color:#fff;
  font-size:.62rem;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid #fff;
  box-sizing:border-box;
}
.header-offers-panel{
  position:fixed;
  top:64px;
  left:24px;
  width:min(820px,calc(100vw - 48px));
  max-height:min(72vh,650px);
  overflow:auto;
  box-sizing:border-box;
  background:#fff;
  color:var(--romme-ink);
  border:1px solid rgba(80,59,49,.14);
  border-radius:16px;
  box-shadow:0 18px 50px rgba(42,30,24,.20);
  z-index:5000;
  padding:0;
  margin:0;
}
.header-offers-panel[hidden]{display:none!important;}
.header-offers-panel-head{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px 12px;
  border-bottom:1px solid rgba(80,59,49,.10);
}
.header-offers-panel-head strong{display:block;font-size:1rem;color:var(--romme-ink);}
.header-offers-panel-head small{display:block;color:#7b706a;margin-top:2px;font-size:.78rem;}
.header-offers-close{
  width:30px;
  height:30px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#f6f1ed;
  color:#746862;
  font-size:1.25rem;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.header-offers-section{padding:14px 18px 16px;}
.header-offers-section+.header-offers-section{border-top:1px solid rgba(80,59,49,.08);}
.header-offers-section h3{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0 0 10px;
  font-size:.87rem;
  letter-spacing:.02em;
  color:var(--romme-ink);
}
.header-offers-section h3 span{
  font-size:.68rem;
  font-weight:700;
  padding:2px 7px;
  border-radius:10px;
  background:#f3efec;
  color:#75665f;
}
.header-offers-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.header-offers-table{
  width:100%;
  min-width:680px;
  border-collapse:collapse;
  font-size:.79rem;
  box-shadow:none;
  border-radius:12px;
  overflow:hidden;
}
.header-offers-table th{
  text-align:left;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.045em;
  color:#80736c;
  background:#faf8f6;
  padding:8px 10px;
  border-bottom:1px solid #eee8e4;
}
.header-offers-table td{
  color:var(--romme-ink);
  vertical-align:top;
  padding:9px 10px;
  border-bottom:1px solid #f1ece9;
}
.header-offers-table tbody tr:last-child td{border-bottom:0;}
.header-offers-table td:nth-child(1){white-space:nowrap;}
.header-offers-table .nowrap{white-space:nowrap;}
.header-offers-empty{margin:4px 0;color:#81756f;font-size:.82rem;}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media(max-width:900px){
  .header-offers-panel{
    left:12px!important;
    right:12px!important;
    top:72px!important;
    width:auto!important;
    max-height:calc(100vh - 88px);
  }
}
@media(max-width:560px){
  .header-offers-btn{width:28px;height:28px;min-width:28px;min-height:28px;}
  .header-offers-panel{
    left:8px!important;
    right:8px!important;
    top:64px!important;
    max-height:calc(100vh - 76px);
    border-radius:14px;
  }
  .header-offers-panel-head{padding:14px;}
  .header-offers-section{padding:12px 14px 14px;}
}

/* 5.52.39 - Resumen monetario del detalle Ventas del periodo */
.kpi-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 14px}.kpi-summary-strip>div{padding:10px 12px;border:1px solid rgba(127,127,127,.22);border-radius:10px;background:rgba(127,127,127,.045)}.kpi-summary-strip span{display:block;font-size:.78rem;opacity:.72;margin-bottom:4px}.kpi-summary-strip strong{display:block;font-size:1rem;white-space:nowrap}@media(max-width:720px){.kpi-summary-strip{grid-template-columns:1fr}}

/* 5.52.57.HF2: ambiente de datos visible sin alterar el encabezado operativo */
.runtime-environment-label{font-size:.72rem;font-weight:700;letter-spacing:.02em;opacity:.8;white-space:nowrap}


/* 5.52.57.HF2.6: indicador visual del ambiente, sin mostrar su nombre */
.runtime-environment-dot{
  width:12px;
  height:12px;
  margin-left:12px;
  border-radius:50%;
  display:inline-block;
  flex:0 0 12px;
  border:2px solid rgba(255,255,255,.95);
  box-shadow:0 0 0 1px rgba(44,41,38,.18),0 2px 7px rgba(44,41,38,.18);
}
.runtime-environment-dot.environment-production{background:#2f9e44;}
.runtime-environment-dot.environment-development{background:#f2c94c;}
.runtime-environment-dot.environment-quality{background:#d64545;}
@media (max-width:700px){.runtime-environment-dot{margin-left:6px;}}


/* HF2.18 - Recepción PRE: checkbox compacto, sin afectar otros controles */
input.preliminary-receipt-checkbox{
  width:18px !important;
  height:18px !important;
  min-width:18px;
  min-height:18px;
  margin:0;
  vertical-align:middle;
  cursor:pointer;
}

/* HF3.10.22 — Gift Card en Ventas: encabezado estable y código de activación legible */
.gift-card-modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;}
.gift-card-modal-head>div{min-width:0;}
.gift-card-close-btn{white-space:nowrap;flex:0 0 auto;min-width:max-content;}
.gift-card-activation-code{display:block;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:900;letter-spacing:.14em;font-size:1.28rem;line-height:1.05;}
@media(max-width:520px){.gift-card-modal-head{grid-template-columns:1fr}.gift-card-close-btn{justify-self:end}}
