*{margin:0;padding:0;box-sizing:border-box}
:root{--rojo:#CC1B1B;--rojo-dark:#A01010;--rojo-light:#FFF5F5;--negro:#1A1A1A;--negro2:#2E2E2E;--gris-bg:#F4F4F4;--blanco:#FFFFFF;--border:#DDD;--success:#2E7D32;--success-light:#E8F5E9;--danger:#C62828;--warning:#E65100;--warning-light:#FFF3E0;--text-dark:#1A1A1A;--text-mid:#3D3D3D;--text-light:#707070}
body{font-family:'DM Sans',sans-serif;background:var(--gris-bg);font-size:16px;color:var(--text-dark)}
.header{background:var(--negro);padding:0.65rem 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid var(--rojo)}
.logo{display:flex;align-items:center;gap:12px}
.logo-icon{width:46px;height:46px;border-radius:50%;background:var(--rojo);border:2px solid white;display:flex;align-items:center;justify-content:center;font-size:22px}
.logo-icon svg{width:24px;height:24px}
.logo-text{font-family:'Playfair Display',serif;color:white;font-size:1.15rem;font-weight:500;letter-spacing:0.02em}
.logo-sub{font-size:0.62rem;color:#CCC;text-transform:uppercase;letter-spacing:0.06em}
.ms-badge-center{position:absolute;left:50%;transform:translateX(-50%);font-size:0.7rem;color:#FFD700;font-weight:500;letter-spacing:0.08em;white-space:nowrap;pointer-events:none;opacity:0.85}
.tabs-wrap{position:relative}
.tabs-wrap::after{content:'';position:absolute;top:0;right:0;bottom:0;width:42px;background:linear-gradient(to right,transparent,var(--negro2));pointer-events:none;opacity:0;transition:opacity 0.2s}
.tabs-wrap.mostrar-fade::after{opacity:1}
.tabs-bar{background:var(--negro2);display:flex;overflow-x:auto;scrollbar-width:none;border-bottom:2px solid var(--rojo);width:100%}
.tabs-bar::-webkit-scrollbar{display:none}
.tab-btn{flex:1;padding:0.7rem 0.5rem;font-size:0.82rem;color:#CCC;background:none;border:none;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;font-family:'DM Sans',sans-serif;text-align:center}
.tab-btn:hover{color:white;background:rgba(255,255,255,0.05)}
.tab-btn.active{color:white;border-bottom-color:var(--rojo);background:rgba(204,27,27,0.15);font-weight:500}
.content{padding:1rem 1.1rem;max-width:980px;margin:0 auto}
.page{display:none}.page.active{display:block}
.page-title{font-family:'Playfair Display',serif;font-size:1.6rem;color:var(--negro);margin-bottom:0.25rem}
.page-sub{font-size:0.88rem;color:var(--text-light);margin-bottom:1rem}
.card{background:var(--blanco);border-radius:10px;border:1px solid var(--border);padding:1.1rem;margin-bottom:0.9rem}
.card-title{font-size:0.85rem;font-weight:700;color:var(--negro2);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.65rem;display:flex;align-items:center;gap:6px;padding-bottom:0.45rem;border-bottom:1.5px solid #E8E8E8}
.card-title::before{content:'';width:3px;height:14px;background:var(--rojo);border-radius:2px;display:inline-block;flex-shrink:0}
.table{width:100%;border-collapse:collapse;font-size:0.88rem}
.table th{background:#F0F0F0;color:var(--text-mid);font-weight:500;padding:0.55rem 0.75rem;text-align:left;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em}
.table td{padding:0.6rem 0.75rem;border-bottom:1px solid #F0F0F0;vertical-align:middle}
.table tr:last-child td{border-bottom:none}
.table tr:hover td{background:var(--rojo-light)}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:0.75rem;font-weight:500}
.b-ok{background:#E8F5E9;color:#2E7D32}.b-warn{background:#FFF3E0;color:#E65100}.b-danger{background:#FFEBEE;color:#C62828}.b-cat{background:#F0F0F0;color:var(--negro2)}.b-sub{background:#EDE7F6;color:#4527A0}.b-ing{background:#E3F2FD;color:#1565C0}.b-prod{background:#E8F5E9;color:#1B5E20}
.btn{display:inline-flex;align-items:center;gap:5px;padding:0.45rem 1rem;border-radius:6px;font-size:0.85rem;font-weight:500;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all 0.15s}
.btn-p{background:var(--rojo);color:white}.btn-p:hover{background:var(--rojo-dark)}
.btn-s{background:white;color:var(--negro2);border:1px solid var(--border)}.btn-s:hover{background:#F0F0F0}
.btn-danger{background:#FFEBEE;color:#C62828;border:1px solid #FFCDD2}
.btn-success{background:var(--success-light);color:var(--success);border:1px solid #A5D6A7}
.btn-sm{padding:0.32rem 0.7rem;font-size:0.78rem}
.btn-icon{padding:0.28rem 0.45rem;font-size:0.82rem;line-height:1}
details.hist-group{border:1px solid var(--border);border-radius:8px;margin-bottom:5px;overflow:hidden}
details.hist-group>summary{cursor:pointer;padding:0.55rem 0.9rem;background:#F8F8F8;display:flex;align-items:center;justify-content:space-between;font-size:0.83rem;font-weight:500;color:var(--negro);list-style:none;user-select:none;gap:8px}
details.hist-group>summary::-webkit-details-marker{display:none}
details.hist-group[open]>summary{background:#EFEFEF;border-bottom:1px solid var(--border)}
details.hist-group .table{margin:0;border-radius:0}
details.hist-group .table th{background:#FAFAFA}
details.hist-group .table tr:last-child td{border-bottom:none}
.fg label{display:block;font-size:0.78rem;font-weight:500;color:var(--text-mid);margin-bottom:4px;text-transform:uppercase;letter-spacing:0.04em}
.fg input,.fg select,.fg textarea{width:100%;padding:0.5rem 0.75rem;border:1px solid var(--border);border-radius:6px;font-size:0.92rem;font-family:'DM Sans',sans-serif;background:#FAFAFA;color:var(--text-dark);outline:none}
.fg input:focus,.fg select:focus{border-color:var(--rojo);background:white}
.fr{display:grid;gap:9px;margin-bottom:9px}.fr2{grid-template-columns:1fr 1fr}.fr3{grid-template-columns:1fr 1fr 1fr}
.si{padding:0.38rem 0.65rem;border:1px solid var(--border);border-radius:6px;font-size:0.78rem;background:white;font-family:'DM Sans',sans-serif;color:var(--text-dark);outline:none}
.empty-state{text-align:center;padding:1.5rem;color:var(--text-light);font-size:0.82rem}
.empty-state div{font-size:1.8rem;margin-bottom:0.4rem}
.tag-remove{cursor:pointer;color:var(--rojo);font-weight:700;margin-left:4px}
.tabs2{display:flex;gap:4px;margin-bottom:0.85rem;border-bottom:1px solid var(--border)}
.t2b{padding:0.38rem 0.75rem;font-size:0.76rem;cursor:pointer;border:none;background:none;color:var(--text-light);border-bottom:2px solid transparent;font-family:'DM Sans',sans-serif}
.t2b.active{color:var(--negro);border-bottom-color:var(--rojo);font-weight:500}
.alert-box{background:var(--rojo-light);border:1px solid var(--rojo);border-radius:8px;padding:0.65rem 0.9rem;font-size:0.78rem;color:var(--danger);margin-bottom:0.85rem}
.suggest-box{background:#FFFDE7;border:1px solid #F9A825;border-radius:8px;padding:0.65rem 0.9rem;font-size:0.78rem;color:#5D4037;margin-bottom:6px}
.mod-tag{display:inline-block;padding:2px 7px;background:#F0F0F0;border-radius:4px;font-size:0.7rem;color:var(--negro2);margin:1px}
.pago-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:0.68rem;font-weight:500}
.pef{background:#E8F5E9;color:#2E7D32}.ptr{background:#E3F2FD;color:#1565C0}.pmix{background:#EDE7F6;color:#4527A0}
.mixto-box{background:#FAFAFA;border:1px solid var(--border);border-radius:8px;padding:0.75rem;margin-top:8px}
.pago-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pago-row label{font-size:0.78rem;color:var(--text-mid);width:110px;flex-shrink:0}
.pago-row input{width:100px;padding:0.32rem 0.5rem;border:1px solid var(--border);border-radius:5px;font-size:0.78rem;font-family:'DM Sans',sans-serif;background:white}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px;margin-bottom:0.9rem}
.stat-card{background:white;border:1px solid var(--border);border-radius:8px;padding:0.8rem;text-align:center;border-left:3px solid var(--rojo)}
.snum{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--negro)}
.slabel{font-size:0.78rem;color:var(--text-light);margin-top:3px}
.stat-card.salert{border-color:var(--rojo);background:var(--rojo-light)}.stat-card.salert .snum{color:var(--rojo)}
.pb{height:5px;background:#EEE;border-radius:3px;overflow:hidden;margin-top:3px}
.pbf{height:100%;border-radius:3px}.pbf.ok{background:var(--success)}.pbf.warn{background:var(--warning)}.pbf.danger{background:var(--rojo)}
.tipo-selector{display:flex;gap:6px;margin-bottom:9px}
.tipo-btn{flex:1;padding:0.5rem;border-radius:6px;border:1.5px solid var(--border);background:white;cursor:pointer;text-align:center;font-size:0.78rem;font-family:'DM Sans',sans-serif;color:var(--text-mid);transition:all 0.15s}
.tipo-btn.active{border-color:var(--rojo);background:var(--rojo-light);color:var(--rojo);font-weight:500}
/* Wizard del modal de receta */
.wiz-opt{display:flex;align-items:flex-start;gap:10px;padding:0.75rem 0.85rem;border:1.5px solid var(--border);border-radius:10px;background:white;cursor:pointer;transition:all 0.15s;font-family:'DM Sans',sans-serif}
.wiz-opt:hover{border-color:#FCA5A5;background:#FFFAFA}
.wiz-opt input[type="radio"]{margin-top:3px;accent-color:var(--rojo);width:16px;height:16px;flex-shrink:0}
.wiz-opt:has(input:checked){border-color:var(--rojo);background:#FFF5F5;box-shadow:0 1px 3px rgba(204,27,27,0.08)}
.wiz-step{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;color:var(--text-light);transition:all 0.15s}
.wiz-step.active{background:var(--rojo);color:white;font-weight:600}
.wiz-step.done{background:#E8F5E9;color:#2E7D32;font-weight:500}
.wiz-step-sep{color:var(--text-light);font-size:0.7rem}
.prod-ing-row{display:flex;align-items:center;gap:8px;padding:0.5rem 0.75rem;border-radius:6px;margin-bottom:4px;font-size:0.8rem}
.prod-ing-ok{background:var(--success-light);border:1px solid #A5D6A7}.prod-ing-warn{background:var(--warning-light);border:1px solid #FFCC80}.prod-ing-danger{background:#FFEBEE;border:1px solid #FFCDD2}
.prod-ing-name{flex:1;font-weight:500}.prod-ing-need{color:var(--text-mid);min-width:90px;text-align:right}.prod-ing-have{min-width:80px;text-align:right}.prod-ing-status{min-width:60px;text-align:center}
.cost-box{background:var(--rojo-light);border:1px solid #FFCDD2;border-radius:7px;padding:0.75rem;margin-top:8px}
.cost-row{display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:4px}
.cost-row.total{border-top:1px solid #FFCDD2;padding-top:6px;margin-top:4px;font-weight:500}
.prod-result-box{background:var(--success-light);border:1px solid #A5D6A7;border-radius:8px;padding:0.85rem;margin-top:8px}
.prod-result-row{display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:4px}
.prod-result-row.total{border-top:1px solid #A5D6A7;padding-top:6px;margin-top:4px;font-weight:500}
.stock-prod-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--success-light);border:1px solid #A5D6A7;border-radius:4px;font-size:0.72rem;color:var(--success);font-weight:500}
.loading{text-align:center;padding:2rem;color:var(--text-light);font-size:0.85rem}
.processing-overlay{position:absolute;inset:0;background:rgba(255,255,255,0.85);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50;gap:10px;pointer-events:all}
.spinner{width:26px;height:26px;border:3px solid #E0E0E0;border-top-color:var(--rojo);border-radius:50%;animation:spin 0.7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.import-zone{background:#FFF5F5;border:2px dashed var(--rojo);border-radius:10px;padding:1.25rem;text-align:center;cursor:pointer;transition:all 0.2s;margin-bottom:0.9rem}
.import-zone:hover{background:#FFEBEE}
.import-zone input[type=file]{display:none}
.import-zona-title{font-size:0.88rem;font-weight:500;color:var(--rojo);margin-bottom:4px}
.import-zona-sub{font-size:0.74rem;color:var(--text-light)}
.import-resultado{border-radius:8px;padding:0.65rem 0.9rem;font-size:0.8rem;margin-bottom:0.85rem;display:none}
.import-ok{background:#E8F5E9;border:1px solid #A5D6A7;color:#2E7D32}
.import-err{background:#FFEBEE;border:1px solid #FFCDD2;color:#C62828}
.cat-nueva-row{display:flex;gap:6px;margin-top:6px}
.cat-nueva-row input{flex:1;padding:0.35rem 0.6rem;border:1px solid var(--border);border-radius:5px;font-size:0.78rem;font-family:'DM Sans',sans-serif;background:white;outline:none}
.cat-nueva-row input:focus{border-color:var(--rojo)}
.cat-hint{font-size:0.7rem;color:var(--text-light);margin-top:3px}

.prov-card{background:white;border:1px solid var(--border);border-radius:8px;padding:0.85rem;margin-bottom:0.65rem;display:flex;align-items:center;gap:12px}
.prov-avatar{width:38px;height:38px;border-radius:50%;background:var(--rojo-light);border:2px solid var(--rojo);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.prov-info{flex:1}
.prov-nombre{font-weight:500;font-size:0.88rem;color:var(--negro)}
.prov-detalle{font-size:0.74rem;color:var(--text-light);margin-top:1px}
.mov-manual-box{background:#F0F9FF;border:1px solid #BAE6FD;border-radius:8px;padding:0.9rem;margin-bottom:0.9rem}
.mov-tipo-sel{display:flex;gap:8px;margin-bottom:9px}
.mov-tipo-btn{flex:1;padding:0.5rem;border-radius:6px;border:2px solid var(--border);background:white;cursor:pointer;text-align:center;font-size:0.8rem;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.15s}
.mov-tipo-btn.ingreso.active{border-color:#2E7D32;background:#E8F5E9;color:#2E7D32}
.mov-tipo-btn.egreso.active{border-color:var(--rojo);background:var(--rojo-light);color:var(--rojo)}
.mov-tipo-btn:not(.active){color:var(--text-light)}

/* ── Inventario: conteo ── */
.inv-header{display:flex;align-items:center;gap:8px;padding:0.38rem 0.7rem;background:#F5F5F5;border-radius:8px;font-size:0.7rem;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:2px}
.inv-row{display:flex;align-items:center;gap:8px;padding:0.48rem 0.5rem;border-bottom:1px solid #F0F0F0;border-radius:6px;transition:background 0.1s;border-left:3px solid transparent}
.inv-row:hover{background:#FAFAFA}
.inv-row.has-input{background:#FFF8F0;border-left-color:#F59E0B}
.inv-col-name{flex:1;min-width:0;display:flex;align-items:center;gap:7px}
.inv-col-digital{width:64px;text-align:center;flex-shrink:0;font-size:0.8rem;color:var(--text-mid)}
.inv-col-fisico{width:82px;flex-shrink:0;display:flex;justify-content:center}
.inv-col-diff{width:64px;text-align:center;flex-shrink:0;font-size:0.8rem;font-weight:600;color:var(--text-light)}
.inv-col-costo{width:90px;text-align:center;flex-shrink:0;font-size:0.73rem;color:var(--text-light)}
.inv-col-valor{width:90px;text-align:right;flex-shrink:0;font-size:0.8rem;font-weight:500}
.inv-ing-name{font-size:0.82rem;font-weight:500;color:var(--negro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-ing-unit{font-size:0.69rem;color:var(--text-light);flex-shrink:0}
.inv-input{width:74px;padding:0.28rem 0.4rem;border:1px solid var(--border);border-radius:6px;font-size:0.85rem;text-align:center;font-family:'DM Sans',sans-serif;background:white;transition:border-color 0.12s,background 0.12s;outline:none}
.inv-input:focus{border-color:var(--rojo);box-shadow:0 0 0 2px rgba(193,50,50,0.08)}
.inv-input.filled{border-color:#F59E0B;background:#FFFDE7}
.inv-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.inv-dot-ok{background:#66BB6A}
.inv-dot-bajo{background:#F59E0B}
.inv-dot-critico{background:var(--rojo)}
.inv-dot-none{background:#D1D5DB}
.diff-pos{color:var(--success) !important}
.diff-neg{color:var(--danger) !important}
.diff-zero{color:var(--text-light) !important}
.inv-total{display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;margin-top:8px;background:var(--negro);border-radius:8px;color:white}
/* ── Inventario: historial (lista de movimientos) ── */
.hist-day-summary{display:flex;justify-content:space-between;align-items:center;padding:0.55rem 0.4rem;border-bottom:1px solid #F0F0F0;font-size:0.82rem;font-weight:600;color:var(--negro2);cursor:pointer;list-style:none}
.hist-day-summary::-webkit-details-marker{display:none}
.hist-day-summary::before{content:'▸';display:inline-block;margin-right:6px;color:var(--text-light);transition:transform 0.15s}
details[open] > .hist-day-summary::before{transform:rotate(90deg)}
.hist-list{padding:4px 0 10px}
.hist-row{display:flex;align-items:flex-start;gap:10px;padding:8px 8px;border-bottom:1px solid #F5F5F5;transition:background 0.1s}
.hist-row:hover{background:#FAFAFA}
.hist-row:last-child{border-bottom:none}
/* Cada operación (un producto y los ingredientes que usó) se muestra como un
   bloque, separada de la siguiente por una línea un poco más marcada. */
.hist-op{border-bottom:1px solid #E6E6E6}
.hist-op:last-child{border-bottom:none}
.hist-op .hist-row:last-child{border-bottom:none}
.hist-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.85rem;flex-shrink:0;margin-top:1px}
.hist-main{flex:1;min-width:0}
.hist-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}
.hist-item{font-size:0.85rem;font-weight:600;color:var(--negro)}
.hist-badge{font-size:0.65rem;padding:1px 6px;border-radius:8px;font-weight:600;text-transform:uppercase;letter-spacing:0.03em}
.hist-badge.b-ing{background:#E8F5E9;color:#2E7D32}
.hist-badge.b-prod{background:#E3F2FD;color:#1565C0}
.hist-hora{font-size:0.7rem;color:var(--text-light);margin-left:auto}
.hist-motivo{font-size:0.76rem;color:var(--text-mid);word-wrap:break-word;overflow-wrap:break-word;line-height:1.35}
.hist-numbers{flex-shrink:0;display:flex;align-items:stretch;gap:6px}
.hist-num-box{background:#FAFAFA;border:1px solid #EEEEEE;border-radius:8px;padding:6px 12px;min-width:78px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.hist-num-after{background:#F1F8E9;border-color:#DCEDC8}
.hist-num-change{background:#FFF3E0;border-color:#FFE0B2}
.hist-num-change.hist-num-pos{background:#E8F5E9;border-color:#C8E6C9}
.hist-num-change.hist-num-neg{background:#FFEBEE;border-color:#FFCDD2}
.hist-num-change.hist-num-zero{background:#FAFAFA;border-color:#EEEEEE}
.hist-num-label{font-size:0.62rem;color:var(--text-light);text-transform:uppercase;letter-spacing:0.06em;font-weight:600;margin-bottom:2px}
.hist-num-value{font-size:0.92rem;font-weight:600;color:var(--negro);white-space:nowrap;line-height:1.2}
.hist-num-change.hist-num-pos .hist-num-value{color:var(--success)}
.hist-num-change.hist-num-neg .hist-num-value{color:var(--danger)}
.hist-num-arrow{display:flex;align-items:center;color:#BDBDBD;font-size:1.1rem;font-weight:300}
.hist-unit{font-size:0.7rem;color:var(--text-light);font-weight:500;margin-left:1px}
@media(max-width:700px){
  .hist-row{flex-wrap:wrap}
  .hist-numbers{width:100%;margin-top:6px;padding-left:38px;justify-content:flex-start}
  .hist-num-box{min-width:70px;padding:5px 8px}
  .hist-num-value{font-size:0.85rem}
}

/* ── Reportes: panel desplegable de lote (Tapers + Preparaciones) ── */
.lote-row{transition:background 0.12s}
.lote-row-open{background:#FFF8F0}
.lote-row-open td{border-bottom:none}
.lote-toggle{background:#F5F5F5;border:1px solid #E0E0E0;border-radius:6px;padding:3px 9px;font-size:0.74rem;font-weight:600;color:var(--text-mid);cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.1s,border-color 0.1s;white-space:nowrap}
.lote-toggle:hover{background:#EEEEEE;border-color:#BDBDBD;color:var(--negro)}
.lote-row-open .lote-toggle{background:#FFE0B2;border-color:#FFB74D;color:#E65100}
.lote-toggle-count{font-weight:500}
.lote-panel-wrap td{border-bottom:2px solid #F0F0F0!important}
.lote-panel{padding:0.6rem 1rem 0.85rem;background:linear-gradient(180deg,#FFF8F0 0%,#FAFAFA 100%);border-left:3px solid #FFB74D;margin:0 0 0 0}
.lote-panel-head{font-size:0.78rem;color:var(--text-mid);margin-bottom:0.55rem;padding-bottom:0.4rem;border-bottom:1px dashed #E0E0E0}
.lote-panel-head strong{color:var(--negro);font-weight:700}
.lote-panel-tabla{width:100%;border-collapse:collapse;font-size:0.78rem;background:white;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.lote-panel-tabla thead th{background:#F5F5F5;padding:5px 8px;font-size:0.7rem;font-weight:600;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.03em;text-align:left;border-bottom:1px solid #E0E0E0}
.lote-panel-tabla tbody td{padding:6px 8px;border-bottom:1px solid #F5F5F5}
.lote-panel-tabla tbody tr:last-child td{border-bottom:none}
.lote-canal{display:inline-block;font-size:0.66rem;font-weight:700;padding:2px 7px;border-radius:9px;text-transform:uppercase;letter-spacing:0.03em;white-space:nowrap}
.lote-item-chip{display:inline-block;margin:1px 4px 1px 0;padding:1px 0}
.lote-vinculo{display:inline-block;font-size:0.66rem;padding:1px 6px;border-radius:8px;margin-left:3px;font-weight:600}

/* ── Inventario: conteos físicos (tab dedicada) ── */
.conteo-card{background:white;border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden;transition:box-shadow 0.15s}
.conteo-card:hover{box-shadow:0 2px 8px rgba(0,0,0,0.05)}
.conteo-card[open]{box-shadow:0 2px 10px rgba(0,0,0,0.06)}
.conteo-summary{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 0.95rem;cursor:pointer;list-style:none;gap:10px;flex-wrap:wrap}
.conteo-summary::-webkit-details-marker{display:none}
.conteo-summary::before{content:'▸';color:var(--text-light);transition:transform 0.15s;flex-shrink:0}
.conteo-card[open] > .conteo-summary::before{transform:rotate(90deg)}
.conteo-summary-left{flex:1;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.conteo-fecha{font-size:0.92rem;font-weight:600;color:var(--negro)}
.conteo-hora{font-size:0.76rem;color:var(--text-light)}
.conteo-user{font-size:0.72rem;color:var(--text-light)}
.conteo-badge{font-size:0.74rem;padding:3px 10px;border-radius:10px;font-weight:600;white-space:nowrap}
.conteo-badge-ok{background:#FFF3E0;color:#E65100}
.conteo-badge-nochange{background:#E8F5E9;color:#2E7D32}
.conteo-ajustes{padding:0 0.95rem 0.85rem;background:#FAFAFA;border-top:1px solid #F0F0F0}
.conteo-ajuste-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #F0F0F0;font-size:0.82rem}
.conteo-ajuste-row:last-child{border-bottom:none}
.conteo-tag{font-size:0.62rem;padding:2px 6px;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:0.03em;flex-shrink:0}
.conteo-tag-ing{background:#E8F5E9;color:#2E7D32}
.conteo-tag-prod{background:#E3F2FD;color:#1565C0}
.conteo-nombre{font-weight:500;color:var(--negro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.conteo-flow{font-size:0.76rem;color:var(--text-mid);white-space:nowrap}
.conteo-anterior{color:var(--text-light)}
.conteo-nuevo{font-weight:600;color:var(--negro)}
.conteo-diff{font-size:0.85rem;font-weight:700;white-space:nowrap;min-width:48px;text-align:right}
.conteo-diff-pos{color:var(--success)}
.conteo-diff-neg{color:var(--danger)}
@media(max-width:600px){
  .conteo-ajuste-row{grid-template-columns:auto 1fr auto;gap:6px}
  .conteo-flow{grid-column:2/-1;font-size:0.72rem}
}

/* ── Cocina: monitor cards ── */
.cocina-item{background:white;border:1.5px solid var(--border);border-radius:12px;margin-bottom:0.6rem;display:flex;align-items:stretch;overflow:hidden;transition:box-shadow 0.15s}
.cocina-item:hover{box-shadow:0 2px 10px rgba(0,0,0,0.07)}
.cocina-item.bajo{border-color:#F59E0B}
.cocina-item.critico{border-color:var(--rojo)}
.cocina-item-strip{width:5px;flex-shrink:0;background:#D1D5DB}
.cocina-item.bajo .cocina-item-strip{background:#F59E0B}
.cocina-item.critico .cocina-item-strip{background:var(--rojo)}
.cocina-item-body{flex:1;padding:0.8rem 0.85rem;display:flex;align-items:center;gap:10px;min-width:0}
.cocina-avatar{width:38px;height:38px;border-radius:8px;background:#F5F5F5;border:1.5px solid #E0E0E0;display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0}
.cocina-item.bajo .cocina-avatar{background:#FFF8E1;border-color:#F59E0B}
.cocina-item.critico .cocina-avatar{background:var(--rojo-light);border-color:var(--rojo)}
.cocina-info{flex:1;min-width:0}
.cocina-nombre{font-weight:600;font-size:0.9rem;color:var(--negro)}
.cocina-stock-ok{font-size:0.74rem;color:var(--success)}
.cocina-stock-bajo{font-size:0.74rem;color:#B45309;font-weight:600}
.cocina-stock-critico{font-size:0.74rem;color:var(--danger);font-weight:600}
.cocina-ultimo-uso{font-size:0.69rem;color:var(--text-light);display:block;margin-top:2px}
.cocina-item-acc{padding:0.8rem 0.85rem;display:flex;align-items:center;border-left:1px solid #F0F0F0;flex-shrink:0}
.btn-usar{padding:0.48rem 1.1rem;background:var(--rojo);color:white;border:none;border-radius:8px;font-size:0.8rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:background 0.15s}
.btn-usar:hover:not(:disabled){background:var(--rojo-dark)}
.btn-usar:disabled{background:#D1D5DB;color:#9CA3AF;cursor:not-allowed}
/* ── Cocina: historial timeline ── */
.cocina-timeline{display:flex;flex-direction:column}
.cocina-tl-item{display:flex;gap:10px;padding:0.5rem 0}
.cocina-tl-item:not(:last-child){border-bottom:1px solid #F5F5F5}
.cocina-tl-hora{font-size:0.7rem;color:var(--text-light);width:40px;flex-shrink:0;padding-top:3px;text-align:right}
.cocina-tl-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}
.cocina-tl-dot.uso{background:var(--rojo)}
.cocina-tl-dot.baja{background:#F59E0B}
.cocina-tl-body{flex:1;min-width:0}
.cocina-tl-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cocina-tl-nombre{font-size:0.82rem;font-weight:500;color:var(--negro)}
.cocina-tl-cant{font-size:0.75rem;font-weight:700;color:var(--danger)}
.cocina-tl-nota{font-size:0.71rem;color:var(--text-light);display:block;margin-top:1px}
/* ── Cocina: config accordion ── */
.cocina-cfg-item{border-bottom:1px solid #F0F0F0}
.cocina-cfg-item summary{list-style:none;cursor:pointer;padding:0.65rem 0.25rem;display:flex;align-items:center;gap:9px}
.cocina-cfg-item summary::-webkit-details-marker{display:none}
.cocina-cfg-item summary:hover{background:#FAFAFA;border-radius:6px}
.cocina-cfg-chev{font-size:0.6rem;color:var(--text-light);width:10px;flex-shrink:0;transition:transform 0.18s;display:inline-block}
.cocina-cfg-item[open]>summary .cocina-cfg-chev{transform:rotate(90deg)}
.cocina-cfg-name{font-size:0.85rem;font-weight:500;flex:1}
.cocina-cfg-linked{font-size:0.72rem;color:var(--success);font-weight:500;white-space:nowrap}
.cocina-cfg-body{padding:0.4rem 0 0.85rem 28px}
.cocina-cfg-section-label{font-size:0.69rem;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;margin-top:10px}
.cocina-cfg-section-label:first-child{margin-top:0}
.cocina-cfg-tags{display:flex;flex-wrap:wrap;gap:5px}
.cocina-cfg-tag{padding:3px 10px;border-radius:20px;font-size:0.75rem;cursor:pointer;border:1px solid var(--border);background:white;color:var(--text-mid);transition:all 0.12s;font-family:'DM Sans',sans-serif}
.cocina-cfg-tag:hover{border-color:var(--text-mid);background:#F5F5F5}
.cocina-cfg-tag.sel-gusto{border-color:var(--rojo);background:var(--rojo);color:white}
.cocina-cfg-tag.sel-prod{border-color:#1565C0;background:#1565C0;color:white}
/* Vínculos del monitor — chips + selector "agregar" */
.cocina-vlink-sec{margin-bottom:0.7rem}
.cocina-vlink-sec:last-child{margin-bottom:0}
.cocina-vlink-label{font-size:0.69rem;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:5px}
.cocina-vlink-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px;min-height:22px;align-items:center}
.cocina-vlink-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 4px 3px 10px;border-radius:20px;font-size:0.75rem;background:var(--rojo-light);border:1px solid #F3C9C9;color:var(--rojo-dark)}
.cocina-vlink-chip button{border:none;background:rgba(0,0,0,0.08);color:var(--rojo-dark);width:16px;height:16px;border-radius:50%;cursor:pointer;font-size:0.58rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}
.cocina-vlink-chip button:hover{background:var(--rojo);color:white}
.cocina-vlink-empty{font-size:0.74rem;color:var(--text-light);font-style:italic}
.cocina-vlink-add{font-size:0.77rem;padding:0.32rem 0.55rem;border:1px solid var(--border);border-radius:6px;background:#FAFAFA;color:var(--text-mid);font-family:'DM Sans',sans-serif;cursor:pointer;max-width:220px}
.cocina-vlink-add:focus{border-color:var(--rojo);background:white;outline:none}
/* Chips de tapers en el monitor */
.cocina-taper-chips{display:flex;flex-wrap:wrap;gap:6px}
.cocina-taper-chip{padding:6px 12px;border-radius:8px;font-size:0.8rem;font-weight:600;cursor:pointer;border:1.5px solid #C5B3F0;background:#F3F0FF;color:#4527A0;font-family:'DM Sans',sans-serif;transition:all 0.12s}
.cocina-taper-chip:hover{background:#4527A0;color:white;border-color:#4527A0}
.cocina-taper-chip:active{transform:scale(0.96)}
.cocina-cfg-sep{font-size:0.72rem;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.05em;padding:0.8rem 0 0.35rem;margin-top:0.5rem;border-top:2px solid #EEE}
.evento-row{display:flex;align-items:flex-start;gap:8px;padding:0.5rem 0;border-bottom:1px solid #F0F0F0;font-size:0.8rem}
.evento-hora{color:var(--text-light);min-width:42px;font-size:0.72rem;margin-top:1px;flex-shrink:0}
.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:2000;align-items:center;justify-content:center}
.modal-box{background:white;border-radius:14px;padding:1.5rem;width:90%;max-width:400px}
.num-input-grande{width:100%;padding:0.65rem;border:2px solid var(--rojo);border-radius:8px;font-size:1.1rem;font-family:'Playfair Display',serif;text-align:center;outline:none}

.prod-pendiente-card{background:#FFFDE7;border:2px solid #F59E0B;border-radius:10px;padding:1rem;margin-bottom:0.75rem;display:flex;align-items:center;gap:12px}
.prod-pendiente-avatar{width:42px;height:42px;border-radius:8px;background:#FEF3C7;border:2px solid #F59E0B;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.prod-pendiente-info{flex:1}
.prod-pendiente-nombre{font-weight:500;font-size:0.9rem;color:var(--negro)}
.prod-pendiente-detalle{font-size:0.76rem;color:#92400E;margin-top:2px}
.prod-pendiente-badge{display:inline-block;padding:3px 9px;background:#FEF3C7;border:1px solid #F59E0B;border-radius:20px;font-size:0.72rem;font-weight:500;color:#92400E}
.modal-completar{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:2000;align-items:center;justify-content:center}
.modal-completar-inner{background:white;border-radius:14px;padding:1.5rem;width:90%;max-width:440px}

.rec-lista-item{background:white;border:1px solid var(--border);border-radius:8px;margin-bottom:0.5rem;overflow:hidden}
.rec-lista-header{display:flex;align-items:center;gap:10px;padding:0.85rem 1rem;cursor:pointer;user-select:none}
.rec-lista-header:hover{background:#FAFAFA}
.rec-lista-nombre{flex:1;font-weight:600;font-size:0.95rem;color:var(--negro)}
.rec-lista-meta{font-size:0.76rem;color:var(--text-light)}
.rec-lista-arrow{font-size:0.75rem;color:var(--text-light);transition:transform 0.2s;flex-shrink:0}
.rec-lista-arrow.open{transform:rotate(180deg)}
.rec-lista-body{display:none;padding:0 1rem 1rem;border-top:1px solid #F0F0F0}
.rec-lista-body.open{display:block}

.extra-item{background:#FAFAFA;border:1px solid var(--border);border-radius:8px;padding:0.75rem;margin-bottom:6px}
.extra-item-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.extra-item-nombre{flex:1;font-weight:500;font-size:0.85rem}
.extra-ing-row{background:#F0F9FF;border:1px solid #BAE6FD;border-radius:6px;padding:0.5rem 0.7rem;margin-top:5px;font-size:0.8rem;display:flex;align-items:center;gap:8px}
.gustos-panel{background:#F9F9F9;border:1px solid var(--border);border-radius:8px;padding:0.85rem;margin-bottom:8px}
.gustos-titulo{font-size:0.78rem;font-weight:500;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.65rem;display:flex;justify-content:space-between;align-items:center}
.gustos-contador{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:20px;font-size:0.82rem;font-weight:500}
.gustos-ok{background:#E8F5E9;color:#2E7D32}
.gustos-warn{background:#FFEBEE;color:#C62828}
.gusto-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #EEE}
.gusto-row:last-child{border-bottom:none}
.gusto-nombre{flex:1;font-size:0.85rem}
.gusto-ctrl{display:flex;align-items:center;gap:8px}
.gusto-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:white;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;line-height:1;font-family:'DM Sans',sans-serif}
.gusto-btn:hover{border-color:var(--rojo);background:var(--rojo-light)}
.gusto-num{min-width:28px;text-align:center;font-weight:600;font-size:0.95rem}

#toast-container{position:fixed;bottom:28px;right:28px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast{padding:0;border-radius:14px;font-size:0.87rem;font-weight:500;font-family:'DM Sans',sans-serif;box-shadow:0 8px 32px rgba(0,0,0,0.13),0 2px 8px rgba(0,0,0,0.07);opacity:0;transform:translateX(60px) scale(0.95);transition:all 0.38s cubic-bezier(0.34,1.4,0.64,1);pointer-events:none;max-width:360px;display:flex;align-items:stretch;overflow:hidden;background:white}
.toast.show{opacity:1;transform:translateX(0) scale(1)}
.toast-bar{width:5px;flex-shrink:0;border-radius:14px 0 0 14px}
.toast-icon-wrap{display:flex;align-items:center;justify-content:center;width:44px;flex-shrink:0;font-size:1.15rem}
.toast-body{padding:0.85rem 1.1rem 0.85rem 0;flex:1;line-height:1.45}
.toast-success .toast-bar{background:#2E7D32}.toast-success .toast-icon-wrap{color:#2E7D32;background:#F1FAF1}
.toast-precio{max-width:420px}.toast-precio .toast-bar{background:#E65100}.toast-precio .toast-icon-wrap{color:#E65100;background:#FFF8F0}
.toast-error .toast-bar{background:#C62828}.toast-error .toast-icon-wrap{color:#C62828;background:#FFF5F5}
.toast-info .toast-bar{background:#1565C0}.toast-info .toast-icon-wrap{color:#1565C0;background:#F0F6FF}
.toast-warn .toast-bar{background:#E65100}.toast-warn .toast-icon-wrap{color:#E65100;background:#FFF3E0}
/* LOGIN */
#login-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#141414;z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0}
.login-inner{display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding:2rem 1rem;width:100%;max-width:540px}
.login-logo{text-align:center}.login-logo .logo-icon{width:64px;height:64px;border-radius:50%;background:var(--rojo);margin:0 auto 0.75rem;display:flex;align-items:center;justify-content:center;font-size:2rem}
.login-logo .logo-icon svg{width:34px;height:34px}
.login-titulo{font-family:'Playfair Display',serif;color:white;font-size:1.5rem;margin-bottom:3px}
.login-sub{color:#888;font-size:0.82rem}
.login-perfiles{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.lpc{background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.1);border-radius:14px;padding:1.4rem 1.5rem;cursor:pointer;text-align:center;transition:all 0.2s;min-width:130px;color:white}
.lpc:hover{background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0.28);transform:translateY(-2px)}
.lpc-icon{font-size:2.2rem;margin-bottom:0.5rem}
.lpc-nombre{font-weight:600;font-size:0.95rem}
.lpc-pin{font-size:0.72rem;color:#888;margin-top:4px}
.login-pin-box{text-align:center;margin-top:0.25rem}
.login-pin-label{color:#AAA;font-size:0.85rem;margin-bottom:0.75rem}
.login-pin-input{background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.2);border-radius:10px;color:white;font-size:1.4rem;text-align:center;letter-spacing:0.4em;padding:0.6rem 1.2rem;width:200px;font-family:'DM Sans',sans-serif;outline:none}
.login-pin-input:focus{border-color:var(--rojo)}
/* PERFILES CONFIG */
.perf-card{border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:0.75rem}
.perf-card-header{display:flex;align-items:center;gap:10px;margin-bottom:0.75rem}
.perf-avatar{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.tab-chip{display:inline-flex;align-items:center;gap:4px;font-size:0.78rem;border-radius:20px;padding:3px 10px;cursor:pointer;border:1px solid;transition:all 0.15s;user-select:none}

/* ── REPORTES FINANCIEROS ────────────────────────────── */
.rep-fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:12px;margin-bottom:1.25rem}
.rep-fin-card{background:white;border:1px solid var(--border);border-radius:10px;padding:1.1rem;border-left:4px solid var(--rojo);box-shadow:0 1px 4px rgba(0,0,0,0.06)}
.rep-fin-card.green{border-left-color:#2E7D32}.rep-fin-card.blue{border-left-color:#1565C0}.rep-fin-card.orange{border-left-color:#E65100}.rep-fin-card.gray{border-left-color:#757575}
.rep-fin-num{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--negro);line-height:1.1}
.rep-fin-label{font-size:0.73rem;color:var(--text-light);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:6px}
.rep-fin-delta{font-size:0.77rem;font-weight:500;margin-top:6px;display:block}
.delta-up{color:#2E7D32}.delta-down{color:#C62828}.delta-neu{color:#888}
.rep-margen-badge{padding:3px 10px;border-radius:20px;font-size:0.73rem;font-weight:600}
.rep-margen-ok{background:#E8F5E9;color:#2E7D32}.rep-margen-warn{background:#FFF3E0;color:#E65100}.rep-margen-mal{background:#FFEBEE;color:#C62828}
.rep-rec{display:inline-block;padding:2px 8px;border-radius:5px;font-size:0.72rem;font-weight:500}
.rep-rec-star{background:#FFF8E1;color:#F57F17}.rep-rec-rev{background:#FFF3E0;color:#E65100}.rep-rec-neg{background:#FFEBEE;color:#C62828}
.chart-wrap{position:relative;height:300px;margin-bottom:0.5rem}
.ai-result-box{background:#F8F9FF;border:1px solid #C5CAE9;border-radius:10px;padding:1.25rem;margin-top:1rem;font-size:0.88rem;line-height:1.7;color:var(--text-dark)}
.ai-loading{text-align:center;padding:2.5rem;color:var(--text-light)}
.rep-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rep-periodo-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:1rem;padding:0.6rem 0.85rem;background:white;border:1px solid var(--border);border-radius:8px}

/* ── Cuentas corrientes: 2 columnas en desktop, apilado en mobile ── */
.cc-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:0.85rem;margin-bottom:0.85rem;align-items:start}
@media (max-width:780px){
  .cc-2col{grid-template-columns:1fr;gap:0.65rem}
  .cc-2col .card{overflow-x:visible}
}

/* ── Apilado universal de grids 2-3 columnas en mobile ───────────────
   Selector por atributo: detecta inline-grids con ratios comunes y los
   convierte a 1fr en pantallas <780px. Cubre recetas, producción, cocina,
   modales de detalle y todos los layouts "info | resultado" del sistema. */
@media (max-width:780px){
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:1.1fr 1fr"],
  [style*="grid-template-columns:1.3fr 1fr"],
  [style*="grid-template-columns:1fr 1.3fr"],
  [style*="grid-template-columns:1fr 1.8fr"],
  [style*="grid-template-columns:1.8fr 1fr"],
  [style*="grid-template-columns:2fr 1fr"]{
    grid-template-columns:1fr !important;
  }
  /* Excepción: el calendario mantiene su grilla 7x */
  .cal-grid{grid-template-columns:repeat(7,1fr) !important}
  /* Tienda — banda de stats con 5 cols se apila a 2 */
  #tienda-stats{grid-template-columns:repeat(2,1fr) !important}
  /* Reportes financieros — minmax 195px fuerza single col con padding raro */
  .rep-fin-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr)) !important}
}

/* ── Recetas / Sub-recetas: tabla → lista de cards en mobile ─────────
   En vez de scroll horizontal con valores cortados, cada ingrediente se
   muestra como un row limpio: nombre prominente arriba, metadata chica
   abajo, costo flotante a la derecha. Sin overflow, sin pisar columnas. */
@media (max-width:640px){
  #recetas-lista .table,
  #subrecetas-lista .table{
    display:block;
    min-width:0;
    width:100%;
    background:transparent;
  }
  #recetas-lista .table thead,
  #subrecetas-lista .table thead{display:none}
  #recetas-lista .table tbody,
  #subrecetas-lista .table tbody{display:block}
  #recetas-lista .table tr,
  #subrecetas-lista .table tr{
    display:block;
    position:relative;
    padding:10px 78px 10px 6px;
    border-bottom:1px solid #F0F0F0;
    border-radius:6px;
    transition:background 0.12s;
  }
  #recetas-lista .table tr:last-child,
  #subrecetas-lista .table tr:last-child{border-bottom:none}
  #recetas-lista .table tr:hover,
  #subrecetas-lista .table tr:hover{background:var(--rojo-light)}
  #recetas-lista .table tr:hover td,
  #subrecetas-lista .table tr:hover td{background:transparent !important}
  #recetas-lista .table td,
  #subrecetas-lista .table td{
    display:inline;
    padding:0;
    border:none;
    line-height:1.35;
    background:transparent !important;
  }
  /* Insumo (col 1) — siempre nombre prominente en línea propia */
  #recetas-lista .table td:nth-child(1),
  #subrecetas-lista .table td:nth-child(1){
    display:block;
    font-weight:600;
    font-size:0.9rem;
    color:var(--negro);
    margin-bottom:3px;
  }
  /* Sub-recetas (3 cols): Insumo | Cant | Costo */
  #subrecetas-lista .table td:nth-child(2){
    display:block;
    font-size:0.78rem;
    color:var(--text-light);
  }
  #subrecetas-lista .table td:nth-child(3){
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    font-weight:700;
    color:var(--negro);
    font-size:1rem;
    font-family:'Playfair Display',serif;
  }
  /* Recetas (4 cols): Insumo | Tipo | Cant | Costo */
  #recetas-lista .table td:nth-child(2){
    display:inline-block;
    margin-right:7px;
    vertical-align:middle;
  }
  #recetas-lista .table td:nth-child(3){
    display:inline-block;
    font-size:0.78rem;
    color:var(--text-light);
    vertical-align:middle;
  }
  #recetas-lista .table td:nth-child(4){
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    font-weight:700;
    color:var(--negro);
    font-size:1rem;
    font-family:'Playfair Display',serif;
  }
  /* Cost-box destacado en mobile */
  #recetas-lista .cost-box,
  #subrecetas-lista .cost-box{
    margin-top:14px;
    padding:0.85rem 1rem;
  }
  #recetas-lista .cost-row,
  #subrecetas-lista .cost-row{font-size:0.86rem;padding:3px 0}
  #recetas-lista .cost-row.total,
  #subrecetas-lista .cost-row.total{
    font-size:1.05rem;
    padding-top:8px;
    margin-top:6px;
  }
  #recetas-lista .cost-row.total span:last-child,
  #subrecetas-lista .cost-row.total span:last-child{
    font-size:1.25rem;
    font-weight:700;
    color:var(--rojo-dark);
  }

  /* ── Compras: tabla → cards (mismo patrón) ─────────────────────────
     Estructura: Proveedor | Remito | Ítems | Total | Pago | Acciones */
  #comp-tabla .table{display:block;min-width:0;width:100%;background:transparent}
  #comp-tabla .table thead{display:none}
  #comp-tabla .table tbody{display:block}
  #comp-tabla .table tr{
    display:block;
    position:relative;
    padding:12px 8px 10px;
    border-bottom:1px solid #F0F0F0;
  }
  #comp-tabla .table tr:last-child{border-bottom:none}
  #comp-tabla .table tr:hover{background:var(--rojo-light)}
  #comp-tabla .table tr:hover td{background:transparent !important}
  #comp-tabla .table td{
    display:block;
    padding:0;
    border:none;
    line-height:1.4;
    background:transparent !important;
  }
  /* Proveedor (col 1) — título grande */
  #comp-tabla .table td:nth-child(1){
    font-size:0.95rem;
    font-weight:600;
    color:var(--negro);
    padding-right:106px;
    margin-bottom:4px;
  }
  /* Remito (col 2) — chico, gris */
  #comp-tabla .table td:nth-child(2){
    font-size:0.74rem;
    color:var(--text-light);
    display:inline-block;
    margin-right:10px;
  }
  /* Ítems (col 3) — chico, gris, ellipsis */
  #comp-tabla .table td:nth-child(3){
    font-size:0.76rem;
    color:var(--text-mid);
    max-width:none !important;
    white-space:normal !important;
    margin-bottom:6px;
  }
  /* Total (col 4) — destacado, abajo izq */
  #comp-tabla .table td:nth-child(4){
    font-family:'Playfair Display',serif;
    font-size:1.15rem;
    font-weight:700;
    color:var(--rojo-dark);
    display:inline-block;
    margin-right:10px;
  }
  /* Pago (col 5) — badge inline al lado del total */
  #comp-tabla .table td:nth-child(5){display:inline-block;vertical-align:middle}
  /* Acciones (col 6) — flotante arriba der */
  #comp-tabla .table td:nth-child(6){
    position:absolute;
    top:10px;
    right:6px;
    display:flex;
    gap:3px;
  }
}

/* ── RESPONSIVE MÓVIL ─────────────────────────────────── */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

@media (max-width:640px){
  /* Layout general */
  .content{padding:0.6rem 0.5rem;max-width:100%}
  .page-title{font-size:1.2rem}
  .page-sub{font-size:0.8rem;margin-bottom:0.65rem}
  .card{padding:0.75rem;margin-bottom:0.65rem}

  /* Header compacto */
  .header{padding:0.45rem 0.75rem}
  .logo-icon{width:36px;height:36px;font-size:18px}
  .logo-text{font-size:0.95rem}
  .logo-sub{display:none}
  #hfecha{display:none}
  .ms-badge-center{display:none}

  /* Tabs: scroll horizontal sin flex:1 forzado */
  .tab-btn{flex:0 0 auto;padding:0.6rem 0.8rem;font-size:0.78rem;min-width:auto}

  /* Grids de formulario → una columna */
  .fr2,.fr3{grid-template-columns:1fr !important}

  /* Tablas → scroll horizontal */
  .card{overflow-x:auto}
  .table{min-width:480px}

  /* Botones touch-friendly */
  .btn{min-height:40px}
  .btn-sm{min-height:34px;padding:0.35rem 0.65rem}
  .btn-usar{min-height:40px}
  .gusto-btn{width:36px;height:36px}

  /* Stats grid — 2 columnas */
  .stats-grid{grid-template-columns:1fr 1fr}
  .snum{font-size:1.35rem}

  /* Modal — casi pantalla completa */
  .modal-box{width:96%;padding:1.1rem}
  .modal-completar-inner{width:96%;padding:1.1rem}

  /* Tipo selector — vertical en formularios largos */
  .tipo-selector{flex-wrap:wrap}
  .tipo-btn{flex:1 1 45%}

  /* Toast — full width */
  #toast-container{bottom:12px;right:8px;left:8px}
  .toast{max-width:100%}

  /* Login */
  .login-inner{padding:1.5rem 0.75rem}

  /* Cocina items */
  .cocina-item{flex-wrap:nowrap}
  .cocina-item-body{padding:0.65rem 0.7rem}
  .cocina-item-acc{padding:0.65rem 0.7rem}
  .btn-usar{font-size:0.78rem;padding:0.42rem 0.75rem}

  /* Pago rows */
  .pago-row{flex-wrap:wrap}
  .pago-row label{width:100%;margin-bottom:2px}
  .pago-row input{width:100%}

  /* Prod pendiente */
  .prod-pendiente-card{flex-wrap:wrap;gap:8px}

  /* Import zone */
  .import-zone{padding:0.9rem}

  /* Selector tipo movimiento */
  .mov-tipo-sel{flex-direction:column}

  /* Accordion recetas */
  .rec-lista-nombre{font-size:0.85rem}

  /* Ocultar columnas secundarias de tablas en mobile */
  .hide-mobile{display:none !important}

  /* iOS — evita zoom automático al tocar inputs */
  .fg input,.fg select,.fg textarea,.si,.inv-input,
  .num-input-grande,.vta-prod-sel,.cat-nueva-row input,
  .pago-row input,.ayuda-search-input,.login-pin-input{font-size:16px !important}

  /* Inventario conteo — ocultar columnas costo/valor, compactar */
  .inv-col-costo,.inv-col-valor{display:none}
  .inv-col-digital{width:44px}
  .inv-col-diff{width:44px}
  .inv-col-fisico{width:68px}
  .inv-header,.inv-row{padding-left:0.15rem;padding-right:0.15rem}
  .inv-ing-name{font-size:0.78rem}

  /* Formulario producto — scrollable en móvil */
  #modal-prod{overflow-y:auto;align-items:flex-start;padding:0}
  #form-prod{width:100%;border-radius:0;border-top:4px solid var(--rojo);min-height:100%}
  #modal-subreceta{overflow-y:auto;align-items:flex-start;padding:0}

  /* Ventas — compactar header y body */
  .vta-card-header{padding:0.6rem 0.8rem;min-height:40px;font-size:0.82rem}
  .vta-card-body{padding:0.75rem}
  .vta-field-group{grid-template-columns:1fr}

  /* Ventas — botón confirmar más accesible */
  .vta-btn-confirmar,.vta-btn-agregar{font-size:0.9rem;padding:0.7rem 1rem}

  /* Reportes — barra de período apilada */
  .rep-periodo-bar{flex-direction:column;align-items:stretch;gap:5px}
  .rep-periodo-bar .btn,.rep-periodo-bar select,.rep-periodo-bar input{width:100%}

  /* Proveedor cards — no overflow */
  .prov-card{flex-wrap:wrap}

  /* Prod-ing rows — columnas más pequeñas */
  .prod-ing-need{min-width:60px}
  .prod-ing-have{min-width:60px}
  .prod-ing-status{min-width:46px}

  /* Config stats — 2 columnas si no lo hace ya la regla de 600px */
  .cfg-stats-bar{grid-template-columns:repeat(2,1fr)}

  /* Historial: cards no scroll */
  details.hist-group{overflow:visible}
  details.hist-group .table{min-width:0 !important}
  /* Detalle expandido: 1 columna en móvil */
  .vta-det-wrap{grid-template-columns:1fr !important}
}

/* ── INGREDIENTES: tabla → card-list mobile ──────────────────────────
   Cols: Nombre | Categoría | Stock | Mínimo | Estado | Costo | Acciones */
@media (max-width:640px){
  #ing-tabla .table{display:block;min-width:0;width:100%;background:transparent}
  #ing-tabla .table thead{display:none}
  #ing-tabla .table tbody{display:block}
  #ing-tabla .table tr{
    display:block;position:relative;
    padding:12px 8px 14px;
    border-bottom:1px solid #F0F0F0;
  }
  #ing-tabla .table tr:last-child{border-bottom:none}
  #ing-tabla .table tr:hover{background:var(--rojo-light)}
  #ing-tabla .table tr:hover td{background:transparent !important}
  #ing-tabla .table td{
    display:inline-block;padding:0;border:none;
    background:transparent !important;vertical-align:middle;
  }
  #ing-tabla .table td:nth-child(1){
    display:block;font-size:0.95rem;font-weight:600;color:var(--negro);
    padding-right:90px;margin-bottom:5px;
  }
  #ing-tabla .table td:nth-child(2){display:inline-block;margin-right:8px}
  #ing-tabla .table td:nth-child(3){font-size:0.85rem;color:var(--negro2);margin-right:6px}
  #ing-tabla .table td:nth-child(3)::before{content:'Stock ';color:var(--text-light);font-size:0.72rem;font-weight:500}
  #ing-tabla .table td:nth-child(4){font-size:0.78rem;color:var(--text-light)}
  #ing-tabla .table td:nth-child(4)::before{content:'· mín '}
  #ing-tabla .table td:nth-child(5){position:absolute;top:10px;right:8px}
  #ing-tabla .table td:nth-child(6){
    display:block;margin-top:7px;font-weight:600;color:var(--negro2);
    font-size:0.82rem;font-family:'Playfair Display',serif;
  }
  #ing-tabla .table td:nth-child(7){
    position:absolute;bottom:10px;right:8px;
    display:flex !important;gap:4px;
  }
}

/* ── PRODUCTOS: tabla → card-list mobile ─────────────────────────────
   Cols: Nombre+badges | Precio | Costo | Margen | Stock | Estado | Acciones */
@media (max-width:640px){
  #prod-tabla .table{display:block;min-width:0 !important;width:100%;background:transparent}
  #prod-tabla > div[style*="overflow-x"]{overflow:visible !important}
  #prod-tabla .table thead{display:none}
  #prod-tabla .table tbody{display:block}
  #prod-tabla .table tr{
    display:block;position:relative;
    padding:14px 8px 14px;
    border-bottom:1px solid #F0F0F0;
  }
  #prod-tabla .table tr:last-child{border-bottom:none}
  #prod-tabla .table tr:hover{background:var(--rojo-light)}
  #prod-tabla .table tr:hover td{background:transparent !important}
  #prod-tabla .table td{
    display:inline-block;padding:0 !important;border:none;
    background:transparent !important;
    text-align:left !important;
    vertical-align:baseline;
  }
  /* Nombre + badges — bloque grande */
  #prod-tabla .table td:nth-child(1){
    display:block !important;
    padding-right:96px !important;
    margin-bottom:8px;
    word-break:normal !important;
  }
  /* Precio — grande, rojo, Playfair */
  #prod-tabla .table td:nth-child(2){
    font-family:'Playfair Display',serif;
    font-size:1.2rem !important;
    font-weight:700;
    color:var(--rojo-dark);
    margin-right:12px;
  }
  /* Costo — chico, gris */
  #prod-tabla .table td:nth-child(3){
    font-size:0.78rem !important;
    color:var(--text-light);
    margin-right:10px;
  }
  #prod-tabla .table td:nth-child(3)::before{content:'costo ';font-size:0.7rem}
  /* Margen — badge inline */
  #prod-tabla .table td:nth-child(4){display:inline-block !important;margin-right:10px}
  /* Stock — badge inline */
  #prod-tabla .table td:nth-child(5){display:inline-block !important;font-size:0.82rem !important}
  /* Estado (botones En tienda/Visible) — bloque debajo */
  #prod-tabla .table td:nth-child(6){
    display:block !important;
    margin-top:9px;
  }
  #prod-tabla .table td:nth-child(6) > div{
    flex-direction:row !important;
    justify-content:flex-start !important;
    gap:6px !important;
    align-items:center !important;
  }
  /* Acciones — flotante arriba der */
  #prod-tabla .table td:nth-child(7){
    position:absolute;top:12px;right:6px;
  }
  #prod-tabla .table td:nth-child(7) > div{justify-content:flex-end !important}
}

/* ── CAJA: tabla movimientos → card-list mobile ──────────────────────
   Cols: Hora | Concepto | Categoría | Medio | Tipo | Monto */
@media (max-width:640px){
  #caja-tabla details.hist-group .table{display:block;width:100%;background:transparent}
  #caja-tabla details.hist-group .table thead{display:none}
  #caja-tabla details.hist-group .table tbody{display:block}
  #caja-tabla details.hist-group .table tr{
    display:block;position:relative;
    padding:11px 8px 12px;
    border-bottom:1px solid #F0F0F0;
  }
  #caja-tabla details.hist-group .table tr:last-child{border-bottom:none}
  #caja-tabla details.hist-group .table tr:hover{background:var(--rojo-light)}
  #caja-tabla details.hist-group .table tr:hover td{background:transparent !important}
  #caja-tabla details.hist-group .table td{
    display:inline-block;padding:0 !important;border:none;
    background:transparent !important;
  }
  /* Hora — chica, gris izq */
  #caja-tabla details.hist-group .table td:nth-child(1){
    font-size:0.72rem;color:var(--text-light);font-weight:500;
    margin-right:8px;
  }
  /* Concepto — inline después de la hora */
  #caja-tabla details.hist-group .table td:nth-child(2){
    font-size:0.92rem;font-weight:600;color:var(--negro);
    padding-right:90px;
  }
  /* Categoría badge — bloque debajo */
  #caja-tabla details.hist-group .table td:nth-child(3){
    display:block !important;margin-top:6px;margin-right:6px;
  }
  /* Medio — inline al lado de categoría */
  #caja-tabla details.hist-group .table td:nth-child(4){
    display:inline-block !important;
    font-size:0.74rem;color:var(--text-light);
    margin-right:6px;
  }
  #caja-tabla details.hist-group .table td:nth-child(4)::before{content:'· '}
  /* Tipo badge — oculto (el color del monto ya lo indica) */
  #caja-tabla details.hist-group .table td:nth-child(5){display:none !important}
  /* Monto — grande, flotante derecha, color por tipo */
  #caja-tabla details.hist-group .table td:nth-child(6){
    position:absolute;top:50%;right:8px;
    transform:translateY(-50%);
    font-family:'Playfair Display',serif;
    font-size:1.15rem !important;
    font-weight:700;
  }
}

/* ── VENTAS HISTORIAL: tabla → card-list mobile ──────────────────────
   Cols: arrow | hora | cliente | productos | canal | importe | pago | actions */
@media (max-width:640px){
  #vta-historial details.hist-group .table{display:block;width:100%;background:transparent}
  #vta-historial details.hist-group .table thead{display:none}
  #vta-historial details.hist-group .table tbody{display:block}
  #vta-historial details.hist-group .table tr{
    display:block;position:relative;
    padding:12px 8px 12px;
    border-bottom:1px solid #F0F0F0;
  }
  #vta-historial details.hist-group .table tr:last-child{border-bottom:none}
  #vta-historial details.hist-group .table tr:hover{background:var(--rojo-light)}
  #vta-historial details.hist-group .table tr:hover td{background:transparent !important}
  #vta-historial details.hist-group .table td{
    display:inline-block;padding:0 !important;border:none;
    background:transparent !important;
  }
  /* Arrow (col 1) — oculta, no aporta nada en mobile */
  #vta-historial details.hist-group .table td:nth-child(1){display:none !important}
  /* Hora — chica gris */
  #vta-historial details.hist-group .table td:nth-child(2){
    font-size:0.72rem;color:var(--text-light);font-weight:500;
    margin-right:8px;
  }
  /* Cliente — bold */
  #vta-historial details.hist-group .table td:nth-child(3){
    font-size:0.92rem;font-weight:600;color:var(--negro);
    padding-right:100px;
  }
  /* Productos — bloque debajo, wrap */
  #vta-historial details.hist-group .table td:nth-child(4){
    display:block !important;
    max-width:none !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:initial !important;
    font-size:0.78rem;color:var(--text-mid);
    margin-top:4px;margin-bottom:6px;
    line-height:1.35;
    padding-right:90px;
  }
  /* Canal badge — inline */
  #vta-historial details.hist-group .table td:nth-child(5){
    display:inline-block !important;
    margin-right:6px;
  }
  /* Importe — flotante derecha, grande, rojo */
  #vta-historial details.hist-group .table td:nth-child(6){
    position:absolute;top:12px;right:8px;
    font-family:'Playfair Display',serif;
    font-size:1.2rem !important;
    font-weight:700;
    color:var(--rojo-dark);
  }
  /* Pago badge — inline */
  #vta-historial details.hist-group .table td:nth-child(7){
    display:inline-block !important;
  }
  /* Acciones — bloque abajo der */
  #vta-historial details.hist-group .table td:nth-child(8){
    display:flex !important;
    flex-wrap:wrap;
    gap:4px;
    margin-top:8px;
    justify-content:flex-end;
  }
}

@media (max-width:400px){
  .fr2,.fr3{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .tab-btn{padding:0.55rem 0.65rem;font-size:0.72rem}
}
.sysmodal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.52);z-index:9999;display:flex;align-items:center;justify-content:center;animation:smFadeIn 0.15s ease}
.sysmodal-box{background:#fff;border-radius:14px;padding:1.6rem 1.8rem 1.4rem;max-width:400px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,0.22);animation:smSlideIn 0.18s ease;font-family:'DM Sans',sans-serif;text-align:center}
.sysmodal-icon{font-size:2.2rem;margin-bottom:0.6rem}
.sysmodal-msg{font-size:0.9rem;color:#222;line-height:1.55;margin-bottom:1.3rem;white-space:pre-line}
.sysmodal-btns{display:flex;gap:8px;justify-content:center}
@keyframes smFadeIn{from{opacity:0}to{opacity:1}}
@keyframes smSlideIn{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
/* === VENTAS REDESIGN === */
.vta-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem;margin-bottom:0.9rem}
.vta-card{background:var(--blanco);border-radius:12px;border:1px solid var(--border);overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,0.07)}
.vta-card-header{background:#1A1A1A;color:#fff;padding:0.85rem 1.1rem;display:flex;justify-content:space-between;align-items:center;font-size:0.9rem;font-weight:600;letter-spacing:0.025em;min-height:48px}
.vta-card-body{padding:1.1rem}
.vta-field-group{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px}
.vta-separator-dots{border:none;border-top:2px dashed #E0E0E0;margin:1rem 0 0.9rem}
.vta-label-big{font-size:0.92rem !important;font-weight:600 !important;color:var(--negro) !important;text-transform:none !important;letter-spacing:0 !important}
.vta-prod-sel{font-size:0.97rem !important;padding:0.62rem 0.75rem !important}
.vta-btn-agregar{width:100%;justify-content:center;background:var(--rojo);color:white;font-size:0.9rem;font-weight:600;padding:0.65rem 1rem;border-radius:8px;border:none;margin-top:4px}
.vta-btn-agregar:hover{background:var(--rojo-dark)}
.vta-btn-confirmar{width:100%;justify-content:center;background:linear-gradient(135deg,#C0392B,#8B1A11);color:white;font-size:0.95rem;font-weight:700;padding:0.78rem 1rem;border-radius:8px;border:none;box-shadow:0 3px 10px rgba(192,57,43,0.35);letter-spacing:0.02em}
.vta-btn-confirmar:hover{background:linear-gradient(135deg,#A93226,#7B241C)}
.vta-btn-limpiar{width:100%;justify-content:center;background:none;border:none;color:var(--text-light);font-size:0.78rem;margin-top:6px;padding:0.4rem;cursor:pointer;font-family:'DM Sans',sans-serif}
.vta-btn-limpiar:hover{color:var(--negro2);background:none}
.vta-icon{font-style:normal;margin-right:3px}
@media(max-width:768px){.vta-grid{grid-template-columns:1fr}}
/* Ventas — barra fija confirmar (solo móvil) */
#vta-sticky-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:1500;background:white;border-top:2px solid var(--border);padding:0.7rem 1rem;box-shadow:0 -4px 20px rgba(0,0,0,0.13);gap:12px;align-items:center}
#vta-sticky-info{flex:1;min-width:0}
@media(max-width:640px){
  #vta-sticky-bar.vta-sticky-visible{display:flex}
  #page-ventas.active{padding-bottom:80px}
  /* Ocultar botón confirmar original en móvil — lo reemplaza la barra fija */
  .vta-card .vta-btn-confirmar,.vta-card .vta-btn-limpiar{display:none}
}
/* Ventas — tabs móvil (ocultos en desktop) */
.vta-mobile-tabs{display:none}
.vta-mtab{flex:1;padding:0.6rem 0.5rem;font-size:0.83rem;font-family:'DM Sans',sans-serif;border:none;background:transparent;cursor:pointer;color:var(--text-mid);font-weight:500;transition:all 0.15s;-webkit-tap-highlight-color:transparent}
.vta-mtab.active{background:var(--rojo);color:white;font-weight:600}
@media(max-width:640px){
  .vta-mobile-tabs{display:flex;margin-bottom:0.75rem;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:white}
  .vta-card.vta-card-hidden{display:none !important}
}
/* === CONFIG ACCORDION === */
.cfg-section{border:1px solid var(--border);border-radius:10px;background:white;margin-bottom:0.65rem;overflow:hidden}
.cfg-section>summary{list-style:none;cursor:pointer;padding:0.9rem 1.1rem;display:flex;align-items:center;gap:10px;user-select:none;-webkit-tap-highlight-color:transparent;transition:background 0.12s}
.cfg-section>summary:hover{background:#FAFAFA}
.cfg-section>summary::-webkit-details-marker{display:none}
.cfg-section-icon{font-size:1.15rem;line-height:1;flex-shrink:0;width:26px;text-align:center}
.cfg-section-info{flex:1;min-width:0}
.cfg-section-title{font-size:0.82rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--negro)}
.cfg-section-desc{font-size:0.73rem;color:var(--text-light);margin-top:2px}
.cfg-section-arr{font-size:1rem;color:var(--text-light);transition:transform 0.18s;flex-shrink:0}
.cfg-section[open]>summary .cfg-section-arr{transform:rotate(90deg)}
.cfg-section-body{padding:1.1rem;border-top:1px solid #F0F0F0}
.cfg-section-danger{border-color:#FFCDD2}
.cfg-section-danger>summary{background:#FFF8F8}
.cfg-section-danger>summary:hover{background:#FFF0F0}
.cfg-sub-title{font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-mid);margin-bottom:6px}
.cfg-stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0.6rem;margin-bottom:1rem}
.cfg-stat{background:white;border:1px solid var(--border);border-radius:8px;padding:0.65rem 0.75rem;text-align:center}
.cfg-stat-num{display:block;font-size:1.25rem;font-weight:700;color:var(--negro)}
.cfg-stat-lbl{display:block;font-size:0.68rem;color:var(--text-light);text-transform:uppercase;letter-spacing:0.04em;margin-top:2px}
.cfg-sys-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:0.65rem;margin-bottom:1.1rem}
.cfg-sys-stat{background:#F8F8F8;border:1px solid var(--border);border-radius:8px;padding:0.65rem 0.75rem;text-align:center}
@media(max-width:600px){.cfg-stats-bar{grid-template-columns:repeat(2,1fr)}}
/* === MINI CALENDARIO === */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-th{text-align:center;font-size:0.65rem;font-weight:700;color:var(--text-light);text-transform:uppercase;padding:4px 0;letter-spacing:0.04em}
.cal-dia{min-height:62px;border-radius:6px;cursor:pointer;padding:3px 4px;display:flex;flex-direction:column;align-items:stretch;gap:2px;transition:background 0.12s}
.cal-dia:hover{background:var(--rojo-light)}
.cal-vacio{cursor:default;pointer-events:none}
.cal-hoy .cal-num{background:var(--rojo);color:white;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:700}
.cal-pasado{opacity:0.42}
.cal-num{font-size:0.75rem;color:var(--text-mid);line-height:1.4;width:22px;height:22px;display:flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0}
.cal-chips{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0}
.cal-chip{font-size:0.6rem;line-height:1.4;color:#fff;border-radius:3px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cal-chip:hover{filter:brightness(1.12)}
.cal-chip-mas{font-size:0.58rem;color:var(--text-light);font-weight:600;padding:0 4px}
.cal-ev-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px;cursor:pointer;transition:background 0.12s;margin-bottom:2px}
.cal-ev-item:hover{background:#F4F4F4}
.cal-ev-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cal-ev-info{display:flex;flex-direction:column;gap:1px;min-width:0}
.cal-ev-titulo{font-size:0.8rem;font-weight:600;color:var(--negro2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.cal-ev-fecha{font-size:0.7rem;color:var(--text-light)}
.cal-ev-fecha em{font-style:normal;color:var(--rojo);font-weight:600}
.cal-ev-det{flex:1;min-width:40px;font-size:0.72rem;color:var(--text-mid);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;opacity:0.85}
.cal-nav{background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:1.2rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-mid);transition:all 0.12s}
.cal-nav:hover{background:var(--rojo-light);border-color:var(--rojo);color:var(--rojo)}
.cal-tipo-btn{flex:1;padding:0.5rem;border:1.5px solid var(--border);background:white;border-radius:8px;cursor:pointer;font-size:0.82rem;font-family:'DM Sans',sans-serif;color:var(--text-mid);transition:all 0.12s}
.cal-tipo-btn.sel{border-color:var(--rojo);background:var(--rojo-light);color:var(--rojo);font-weight:600}
.cal-badge{display:inline-block;font-size:0.62rem;font-weight:700;padding:1px 6px;border-radius:10px;vertical-align:middle;text-transform:uppercase;letter-spacing:0.03em}
.cal-color-btn{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:transform 0.12s,border-color 0.12s;flex-shrink:0}
.cal-color-btn:hover{transform:scale(1.18)}
.cal-color-btn.sel{border-color:var(--negro);transform:scale(1.15)}
.cal-proximos{max-height:180px;overflow-y:auto;scrollbar-width:thin}
@media(max-width:700px){.dash-grid{grid-template-columns:1fr!important}.cal-proximos{max-height:140px}}

/* === TIENDA ONLINE PANEL === */
.tienda-card{background:white;border:1px solid var(--border);border-radius:10px;margin-bottom:0.75rem;overflow:hidden}
.tienda-card-head{background:#F8F8F8;padding:0.75rem 1rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;border-bottom:1px solid #EEEEEE}
.tienda-card-body{padding:0.9rem 1rem}
.tienda-stat{background:white;border:1px solid var(--border);border-radius:8px;padding:0.55rem 0.65rem;text-align:center;cursor:pointer;transition:all 0.15s;display:flex;flex-direction:column;align-items:center;gap:3px}
.tienda-stat:hover{border-color:var(--rojo);background:var(--rojo-light)}
.tienda-stat.active{border-color:var(--rojo);background:var(--rojo-light);box-shadow:0 0 0 1px var(--rojo)}

/* ── Dashboard hero ── */
.dash-hero{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;margin-bottom:1rem}
.dash-acciones{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dash-acc-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0.38rem 0.85rem;border:1.5px solid var(--border);border-radius:8px;background:white;font-size:0.78rem;font-family:'DM Sans',sans-serif;color:var(--negro2);cursor:pointer;font-weight:500;transition:all 0.15s;white-space:nowrap}
.dash-acc-btn svg{width:15px;height:15px;flex-shrink:0}
.dash-acc-btn:hover{border-color:var(--rojo);color:var(--rojo);background:var(--rojo-light)}
@media(max-width:700px){.dash-hero{flex-direction:column}.dash-acciones{width:100%}.dash-acc-btn{flex:1;text-align:center;justify-content:center}}
/* ── Dashboard banda resumen ── */
.dash-resumen-banda{display:flex;align-items:stretch;background:white;border:1px solid var(--border);border-radius:10px;margin-bottom:0.9rem;overflow:hidden}
.dash-resumen-item{flex:1;padding:0.85rem 0.6rem;text-align:center;cursor:pointer;transition:background 0.15s;min-width:0}
.dash-resumen-item:hover{background:var(--gris-bg)}
.dash-resumen-valor{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:500;line-height:1.1}
.dash-resumen-label{font-size:0.7rem;font-weight:600;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.04em;margin-top:3px}
.dash-resumen-sub{font-size:0.68rem;color:var(--text-light);margin-top:1px}
.dash-resumen-sep{width:1px;background:var(--border);flex-shrink:0;margin:0.6rem 0}
@media(max-width:600px){.dash-resumen-banda{flex-wrap:wrap}.dash-resumen-item{min-width:45%;border-bottom:1px solid var(--border)}.dash-resumen-sep{display:none}}

/* ── Asistente de ayuda ── */
#ayuda-fab{position:fixed;bottom:24px;right:24px;z-index:8000;width:46px;height:46px;border-radius:50%;background:var(--rojo);color:white;border:none;font-size:1.35rem;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer;box-shadow:0 4px 16px rgba(204,27,27,0.45);display:flex;align-items:center;justify-content:center;transition:all 0.2s;line-height:1}
#ayuda-fab:hover{background:var(--rojo-dark);transform:scale(1.08);box-shadow:0 6px 20px rgba(204,27,27,0.5)}
#ayuda-fab.ayuda-fab-active{background:var(--negro2);box-shadow:0 4px 16px rgba(0,0,0,0.3)}
#ayuda-panel{position:fixed;top:0;right:0;bottom:0;z-index:7900;width:360px;max-width:96vw;background:white;box-shadow:-4px 0 24px rgba(0,0,0,0.12);display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.28s cubic-bezier(.4,0,.2,1);border-left:3px solid var(--rojo)}
#ayuda-panel.ayuda-open{transform:translateX(0)}
.ayuda-header{background:var(--negro);padding:0.85rem 1rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.ayuda-header-titulo{color:white;font-size:0.92rem;font-weight:600;display:flex;align-items:center;gap:7px;font-family:'DM Sans',sans-serif}
.ayuda-close{background:none;border:none;color:#AAA;font-size:1.5rem;cursor:pointer;line-height:1;padding:0 2px;transition:color 0.15s}
.ayuda-close:hover{color:white}
.ayuda-search-wrap{padding:0.65rem 0.85rem;background:#F8F8F8;border-bottom:1px solid var(--border);flex-shrink:0}
.ayuda-search-input{width:100%;padding:0.42rem 0.75rem;border:1px solid var(--border);border-radius:6px;font-size:0.85rem;font-family:'DM Sans',sans-serif;background:white;outline:none;color:var(--text-dark)}
.ayuda-search-input:focus{border-color:var(--rojo)}
.ayuda-nav{display:flex;flex-wrap:wrap;gap:4px;padding:0.6rem 0.8rem;border-bottom:1px solid var(--border);flex-shrink:0;max-height:120px;overflow-y:auto;scrollbar-width:thin}
.ayuda-nav-btn{padding:3px 9px;border:1px solid var(--border);border-radius:20px;background:white;font-size:0.72rem;font-family:'DM Sans',sans-serif;color:var(--text-mid);cursor:pointer;white-space:nowrap;transition:all 0.15s}
.ayuda-nav-btn:hover{border-color:var(--rojo);color:var(--rojo)}
.ayuda-nav-btn.ayuda-nav-active{background:var(--rojo);border-color:var(--rojo);color:white;font-weight:500}
.ayuda-body{flex:1;overflow-y:auto;padding:0.9rem;scrollbar-width:thin}
.ayuda-mod-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1.5px solid #F0F0F0}
.ayuda-mod-icono{font-size:1.6rem;line-height:1;flex-shrink:0;margin-top:2px}
.ayuda-mod-titulo{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--negro);font-weight:500}
.ayuda-mod-desc{font-size:0.78rem;color:var(--text-light);margin-top:2px}
.ayuda-sec{margin-bottom:1rem}
.ayuda-sec-titulo{font-size:0.78rem;font-weight:700;color:var(--negro2);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.45rem;display:flex;align-items:center;gap:5px}
.ayuda-sec-titulo::before{content:'';width:3px;height:12px;background:var(--rojo);border-radius:2px;display:inline-block;flex-shrink:0}
.ayuda-pasos{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:5px}
.ayuda-pasos li{font-size:0.82rem;color:var(--text-dark);line-height:1.45}
.ayuda-tips-box{background:#FFFDE7;border:1px solid #F9A825;border-radius:8px;padding:0.7rem 0.85rem;margin-top:0.5rem}
.ayuda-tips-titulo{font-size:0.75rem;font-weight:700;color:#795548;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.45rem}
.ayuda-tip-item{font-size:0.8rem;color:#5D4037;line-height:1.4;padding:3px 0;border-bottom:1px dashed #F9A82555}
.ayuda-tip-item:last-child{border-bottom:none}
.ayuda-empty{text-align:center;padding:2rem 1rem;color:var(--text-light);font-size:0.82rem}
.ayuda-search-count{font-size:0.75rem;color:var(--text-light);margin-bottom:0.75rem}
.ayuda-result-item{background:#FAFAFA;border:1px solid var(--border);border-radius:8px;padding:0.65rem 0.8rem;margin-bottom:0.5rem;cursor:pointer;transition:border-color 0.15s}
.ayuda-result-item:hover{border-color:var(--rojo);background:var(--rojo-light)}
.ayuda-result-mod{font-size:0.72rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:3px}
.ayuda-result-sec{font-size:0.82rem;font-weight:600;color:var(--negro2);margin-bottom:3px}
.ayuda-result-preview{font-size:0.78rem;color:var(--text-mid);line-height:1.35}
.ayuda-result-item mark{background:#FFF176;color:inherit;border-radius:2px;padding:0 1px}
@media(max-width:600px){#ayuda-panel{width:100%;max-width:100%;border-left:none;border-top:3px solid var(--rojo);top:auto;height:75vh}#ayuda-fab{bottom:16px;right:16px}}

/* ═══ Modo Food Truck — POS de venta rápida ════════════════════════════════ */
.ft-wrap{display:flex;gap:14px;align-items:flex-start}
.ft-main{flex:1;min-width:0}
.ft-search{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:0.92rem;margin-bottom:9px;font-family:'DM Sans',sans-serif}
.ft-cats{display:flex;gap:6px;overflow-x:auto;padding-bottom:9px;scrollbar-width:none}
.ft-cats::-webkit-scrollbar{display:none}
.ft-cat{flex-shrink:0;padding:7px 14px;border-radius:50px;border:1.5px solid var(--border);background:white;font-size:0.84rem;font-weight:600;color:var(--text-mid);cursor:pointer;white-space:nowrap;font-family:'DM Sans',sans-serif}
.ft-cat.active{background:var(--rojo);color:white;border-color:var(--rojo)}
.ft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:10px}
.ft-card{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .08s;-webkit-tap-highlight-color:transparent}
.ft-card:active{transform:scale(.96)}
.ft-card.ft-agotado{opacity:.5}
.ft-card-foto{width:100%;aspect-ratio:4/3;object-fit:cover;background:#F0F0F0;display:block}
.ft-card-ph{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:2.1rem;font-weight:700;color:white}
.ft-card-body{padding:7px 9px 9px;display:flex;flex-direction:column;gap:3px;flex:1}
.ft-card-nom{font-size:0.83rem;font-weight:600;color:var(--negro);line-height:1.2}
.ft-card-precio{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--rojo);margin-top:auto}
.ft-card{position:relative}
.ft-card-star{position:absolute;top:6px;left:6px;z-index:2;font-size:0.85rem;line-height:1;background:rgba(0,0,0,.45);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}

.ft-ticket{width:330px;flex-shrink:0;background:white;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;position:sticky;top:12px;max-height:calc(100vh - 96px)}
.ft-ticket-head{padding:11px 14px;border-bottom:1px solid var(--border);font-weight:700;font-size:0.95rem;display:flex;justify-content:space-between;align-items:center}
.ft-ticket-items{flex:1;overflow-y:auto;padding:4px 10px;min-height:64px}
.ft-empty{text-align:center;color:var(--text-light);font-size:0.85rem;padding:26px 10px}
.ft-line{display:flex;gap:8px;align-items:flex-start;padding:8px 4px;border-bottom:1px solid #F0F0F0}
.ft-line-info{flex:1;min-width:0}
.ft-line-nom{font-size:0.84rem;font-weight:600;color:var(--negro)}
.ft-line-det{font-size:0.72rem;color:var(--text-light);margin-top:1px;line-height:1.3}
.ft-line-precio{font-weight:700;color:var(--rojo);font-size:0.86rem}
.ft-qty{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.ft-qty button{width:30px;height:30px;border:none;background:#F4F4F4;font-size:1.1rem;font-weight:700;cursor:pointer;color:var(--negro);line-height:1}
.ft-qty button:active{background:#E0E0E0}
.ft-qty span{min-width:30px;text-align:center;font-size:0.86rem;font-weight:700}
.ft-ticket-foot{padding:11px 14px;border-top:2px solid var(--border);display:flex;flex-direction:column;gap:8px}
.ft-total-row{display:flex;justify-content:space-between;align-items:baseline}
.ft-total-row .lbl{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#999}
.ft-total-row .val{font-family:'Playfair Display',serif;font-size:1.9rem;font-weight:700;color:var(--rojo)}
.ft-pago-btns{display:flex;gap:7px}
.ft-pago-btn{flex:1;padding:11px 6px;border-radius:10px;border:2px solid var(--border);background:white;font-weight:600;font-size:0.85rem;cursor:pointer;color:var(--text-mid);font-family:'DM Sans',sans-serif}
.ft-pago-btn.active{border-color:var(--rojo);background:var(--rojo-light);color:var(--rojo)}
.ft-paga-input{width:100%;padding:9px 11px;border:1.5px solid var(--border);border-radius:9px;font-size:0.95rem;font-family:'DM Sans',sans-serif}
.ft-efec-rapido{display:flex;gap:6px;flex-wrap:wrap}
.ft-efec-rapido:empty{display:none}
.ft-efec-btn{flex:1;min-width:62px;padding:8px 4px;border-radius:9px;border:1.5px solid var(--border);background:white;font-weight:700;font-size:0.82rem;cursor:pointer;color:var(--text-mid);font-family:'DM Sans',sans-serif}
.ft-efec-btn.active{border-color:var(--success);background:#E8F5E9;color:var(--success)}
.ft-vuelto{font-size:0.88rem;font-weight:700;text-align:right;min-height:1.1em}
.ft-cobrar{width:100%;padding:14px;border-radius:11px;border:none;background:var(--success);color:white;font-size:1.05rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif}
.ft-cobrar:disabled{background:#CCC;cursor:not-allowed}

.ft-modal{display:none;position:fixed;inset:0;z-index:800;background:rgba(0,0,0,.6);align-items:flex-end;justify-content:center}
.ft-modal.open{display:flex}
.ft-modal-box{background:white;border-radius:18px 18px 0 0;width:min(560px,100%);max-height:88vh;display:flex;flex-direction:column}
.ft-modal-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.ft-modal-titulo{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:600;color:var(--negro)}
.ft-modal-x{background:none;border:none;font-size:1.4rem;cursor:pointer;color:#999;line-height:1}
.ft-modal-body{overflow-y:auto;padding:13px 16px;flex:1}
.ft-grupo{margin-bottom:15px}
.ft-grupo-lbl{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-mid);margin-bottom:8px;display:flex;justify-content:space-between;gap:8px}
.ft-opts{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.ft-opt{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 9px;border:1.5px solid var(--border);border-radius:10px;background:#FAFAFA}
.ft-opt.sel{border-color:var(--rojo);background:var(--rojo-light)}
.ft-opt-nom{font-size:0.83rem;font-weight:600;color:var(--negro);flex:1;min-width:0}
.ft-opt-uni{padding:11px 12px;border-radius:10px;border:1.5px solid var(--border);background:#FAFAFA;font-size:0.86rem;font-weight:600;cursor:pointer;text-align:center;color:var(--negro)}
.ft-opt-uni.sel{border-color:var(--rojo);background:var(--rojo);color:white}
.ft-modal-foot{padding:12px 16px;border-top:1px solid var(--border)}
.ft-modal-add{width:100%;padding:13px;border-radius:11px;border:none;background:var(--rojo);color:white;font-size:1rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif}
.ft-modal-add:disabled{background:#CCC;cursor:not-allowed}

@media(min-width:680px){.ft-modal{align-items:center}.ft-modal-box{border-radius:18px}}
@media(max-width:780px){
  .ft-wrap{display:block}
  .ft-main{padding-bottom:78px}
  .ft-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  .ft-ticket{position:fixed;left:0;right:0;bottom:0;width:auto;border-radius:16px 16px 0 0;max-height:82vh;z-index:60;box-shadow:0 -4px 22px rgba(0,0,0,.2);transform:translateY(calc(100% - 64px));transition:transform .25s}
  .ft-ticket.ft-open{transform:translateY(0)}
  .ft-ticket-head{cursor:pointer}
  .ft-ticket-head::after{content:'⌃';position:absolute;left:50%;top:3px;transform:translateX(-50%);color:#BBB;font-size:0.8rem}
  .ft-ticket-head{position:relative}
}


/* ── REPORTES: mobile redesign ─────────────────────────────────────── */
@media (max-width:640px){
  /* Barra de período — apilar todo vertical */
  .rep-periodo-bar{padding:0.6rem 0.7rem;gap:6px}
  .rep-periodo-bar > *{width:100%}
  /* Sub-tabs de reportes — wrap pegado, scroll si hace falta */
  #rep-tabs2{gap:2px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}
  #rep-tabs2::-webkit-scrollbar{display:none}
  #rep-tabs2 .t2b{flex-shrink:0;padding:0.35rem 0.6rem;font-size:0.74rem;white-space:nowrap}

  /* Cards financieros — más compactos */
  .rep-fin-card{padding:0.85rem}
  .rep-fin-num{font-size:1.4rem}
  .rep-fin-label{font-size:0.68rem;margin-bottom:4px}
  .rep-fin-delta{font-size:0.7rem}

  /* Tablas simples (ranking) → card-list mobile.
     Cubre: rep-tabla-prods, rep-tabla-clientes, rep-tabla-canal, rep-tabla-rendimiento,
     y cualquier table dentro de .rep-tab. */
  .rep-tab .table:not(.lote-panel-tabla){display:block;min-width:0 !important;width:100%;background:transparent}
  .rep-tab .table:not(.lote-panel-tabla) thead{display:none}
  .rep-tab .table:not(.lote-panel-tabla) tbody{display:block}
  .rep-tab .table:not(.lote-panel-tabla) tr{
    display:block;position:relative;
    padding:11px 8px;
    border-bottom:1px solid #F0F0F0;
  }
  .rep-tab .table:not(.lote-panel-tabla) tr:last-child{border-bottom:none}
  .rep-tab .table:not(.lote-panel-tabla) tr:hover{background:var(--rojo-light)}
  .rep-tab .table:not(.lote-panel-tabla) tr:hover td{background:transparent !important}
  .rep-tab .table:not(.lote-panel-tabla) td{
    display:inline-block;padding:0 !important;border:none;
    background:transparent !important;
    text-align:left !important;
    vertical-align:baseline;
  }
  /* Primera columna — nombre prominente */
  .rep-tab .table:not(.lote-panel-tabla) td:nth-child(1){
    display:block !important;
    font-size:0.92rem;
    font-weight:600;
    color:var(--negro);
    padding-right:96px !important;
    margin-bottom:5px;
    word-break:normal !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:initial !important;
    max-width:none !important;
  }
  /* Columnas intermedias — inline grises chicas */
  .rep-tab .table:not(.lote-panel-tabla) td:nth-child(n+2):nth-last-child(n+2){
    font-size:0.78rem;
    color:var(--text-light);
    margin-right:10px;
  }
  /* Última columna — flotante derecha, Playfair, prominente */
  .rep-tab .table:not(.lote-panel-tabla) td:last-child{
    position:absolute;
    top:50%;
    right:8px;
    transform:translateY(-50%);
    font-family:"Playfair Display",serif;
    font-size:1.05rem !important;
    font-weight:700;
    color:var(--negro);
    margin:0 !important;
  }
  /* rep-table-scroll vuelve a overflow visible (ya no necesitás scroll) */
  .rep-table-scroll{overflow-x:visible !important}

  /* Tablas internas de detalles (lote-panel) — mantener compacto */
  .lote-panel-tabla{font-size:0.72rem}
  .lote-panel-tabla thead th{padding:4px 6px;font-size:0.65rem}
  .lote-panel-tabla tbody td{padding:4px 6px}

  /* Chart Wrap más chico para que se vea entero */
  .chart-wrap{height:240px}
}
