:root {
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --text: #162033;
  --muted: #667085;
  --border: #e4e7ec;
  --accent: #3157d5;
  --accent-soft: #eef2ff;
  --success: #177245;
  --success-soft: #eaf7ef;
  --warning: #9a6700;
  --warning-soft: #fff8df;
  --danger: #b42318;
  --danger-soft: #fef0f0;
  --sidebar: #101828;
  --shadow: 0 8px 24px rgba(16, 24, 40, .06);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: var(--bg); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 250px 1fr; }
.sidebar { background: var(--sidebar); color: white; padding: 24px 16px; display: flex; flex-direction: column; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px; }
.brand-mark { width: 42px; height: 42px; border-radius: 12px; background: #4f6fe8; display: grid; place-items: center; font-weight: 800; }
.brand strong, .brand small { display: block; }
.brand small { color: #98a2b3; margin-top: 2px; }
.nav { display: grid; gap: 6px; }
.nav-btn { border: 0; background: transparent; color: #d0d5dd; text-align: left; padding: 11px 12px; border-radius: 10px; display: flex; gap: 10px; align-items: center; }
.nav-btn:hover, .nav-btn.active { background: #1d2939; color: white; }
.sidebar-note { margin-top: auto; border: 1px solid #344054; border-radius: 12px; padding: 14px; color: #d0d5dd; display: grid; gap: 7px; font-size: 13px; }
.sidebar-note strong { color: white; }
.main { min-width: 0; padding: 28px; }
.topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 22px; }
.eyebrow { margin: 0 0 4px; text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--accent); font-weight: 800; }
h1 { margin: 0; font-size: 28px; }
h2 { margin: 0; font-size: 20px; }
p { color: var(--muted); }
.primary-btn, .secondary-btn, .text-btn, .danger-btn { border-radius: 10px; padding: 10px 14px; border: 1px solid transparent; font-weight: 700; }
.primary-btn { background: var(--accent); color: white; }
.primary-btn:hover { filter: brightness(.96); }
.secondary-btn { background: white; color: var(--text); border-color: var(--border); }
.text-btn { background: transparent; color: var(--accent); padding-inline: 4px; }
.danger-btn { background: var(--danger-soft); color: var(--danger); }
.view { display: none; }
.view.active { display: block; }
.metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.metric { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 18px; box-shadow: var(--shadow); }
.metric span, .metric small { display: block; color: var(--muted); }
.metric strong { display: block; font-size: 28px; margin: 6px 0; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow); overflow: hidden; }
.panel-head { padding: 20px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 1px solid var(--border); }
.panel-head p { margin: 5px 0 0; }
.toolbar { display: flex; gap: 10px; align-items: end; margin-bottom: 16px; }
.dashboard-toolbar { justify-content: flex-end; }
label { display: grid; gap: 6px; color: #344054; font-size: 14px; font-weight: 650; }
input, select, textarea { width: 100%; border: 1px solid #d0d5dd; border-radius: 9px; padding: 10px 11px; color: var(--text); background: white; outline: none; }
input:focus, select:focus, textarea:focus { border-color: #8098e8; box-shadow: 0 0 0 3px rgba(49,87,213,.12); }
.filters { padding: 16px 18px; display: grid; grid-template-columns: minmax(220px, 1fr) 210px 210px; gap: 12px; align-items: end; border-bottom: 1px solid var(--border); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 13px 14px; text-align: left; border-bottom: 1px solid var(--border); white-space: nowrap; }
th { background: var(--surface-soft); color: #475467; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
td { font-size: 14px; }
tbody tr:hover { background: #fafbff; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 800; }
.badge.local { color: var(--success); background: var(--success-soft); }
.badge.intracom, .badge.national { color: var(--accent); background: var(--accent-soft); }
.badge.status { color: #475467; background: #f2f4f7; }
.badge.cancel { color: var(--danger); background: var(--danger-soft); }
.row-actions { display: flex; gap: 6px; }
.icon-btn { border: 1px solid var(--border); background: white; border-radius: 8px; padding: 7px 9px; }
.empty-state { padding: 28px; text-align: center; color: var(--muted); }
.compact-list { padding: 0; }
.compact-order { padding: 14px 18px; display: grid; grid-template-columns: 110px minmax(160px,1.2fr) minmax(160px,1fr) 160px 130px; align-items: center; gap: 10px; border-bottom: 1px solid var(--border); }
.compact-order:last-child { border-bottom: 0; }
.compact-order small { color: var(--muted); display: block; margin-top: 3px; }
.form-panel { overflow: visible; }
.form-panel form { padding: 20px; }
.form-panel.narrow { max-width: 900px; }
fieldset { border: 1px solid var(--border); border-radius: 12px; padding: 16px; margin: 0 0 16px; }
legend { padding: 0 8px; color: #344054; font-weight: 800; }
.form-grid { display: grid; gap: 13px; margin-bottom: 13px; }
.form-grid.cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid.cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-grid.cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.span-2 { grid-column: span 2; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }
.carrier-badge { border-radius: 999px; padding: 7px 10px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.carrier-badge.local { color: var(--success); background: var(--success-soft); }
.carrier-badge.intracom, .carrier-badge.national { color: var(--accent); background: var(--accent-soft); }
.carrier-badge.neutral { color: var(--muted); background: #f2f4f7; }
.notice { margin-bottom: 16px; border-radius: 10px; padding: 12px 14px; font-weight: 700; }
.notice.success { color: var(--success); background: var(--success-soft); border: 1px solid #c9ead6; }
.notice.error { color: var(--danger); background: var(--danger-soft); border: 1px solid #f5c6c2; }
.hidden { display: none !important; }
.checkbox-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px 14px; }
.check { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.check input { width: auto; }
.rule-preview { background: var(--surface-soft); border-radius: 10px; padding: 14px; display: grid; gap: 4px; margin-bottom: 16px; }
.rule-preview span { color: var(--muted); }
.money { font-weight: 800; }
@media (max-width: 1000px) {
  .app-shell { grid-template-columns: 82px 1fr; }
  .sidebar { padding: 20px 10px; }
  .brand > div:last-child, .nav-btn span, .sidebar-note { display: none; }
  .brand { justify-content: center; padding: 0; }
  .nav-btn { justify-content: center; font-size: 18px; }
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .form-grid.cols-4 { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 700px) {
  .app-shell { display: block; }
  .sidebar { position: static; flex-direction: row; align-items: center; gap: 8px; padding: 10px; overflow-x: auto; }
  .brand { display: none; }
  .nav { display: flex; }
  .nav-btn { font-size: 14px; padding: 9px 11px; }
  .nav-btn span { display: inline; }
  .main { padding: 16px; }
  .topbar { align-items: flex-start; }
  h1 { font-size: 22px; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .filters { grid-template-columns: 1fr; }
  .form-grid.cols-2, .form-grid.cols-3, .form-grid.cols-4 { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .checkbox-grid { grid-template-columns: 1fr 1fr; }
  .compact-order { grid-template-columns: 1fr 1fr; }
}
.metrics-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fixed-source-row { display:flex; gap:8px; margin: 0 0 14px; flex-wrap:wrap; }
.source-pill { display:inline-flex; align-items:center; padding:7px 11px; border-radius:999px; background:var(--accent-soft); color:var(--accent); font-size:12px; font-weight:800; }
.source-pill.cod { background:var(--success-soft); color:var(--success); }
.fieldset-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.fieldset-head legend { float:none; margin:0; }
.small-btn { padding:7px 10px; font-size:12px; }
.items-container { display:grid; gap:10px; }
.order-item { border:1px solid var(--border); background:var(--surface-soft); border-radius:10px; padding:12px; }
.item-grid { grid-template-columns:minmax(220px,1.8fr) minmax(110px,.75fr) 85px minmax(210px,1.25fr) 140px 130px 42px; margin:0; align-items:end; }
.item-grid .icon-btn { height:41px; align-self:end; }
.total-highlight input { font-weight:800; background:var(--success-soft); border-color:#c9ead6; }
.helper { font-size:12px; margin:0; color:var(--muted); }
.locked-settings { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0 16px; }
.locked-settings > div { padding:12px 14px; border:1px solid var(--border); background:var(--surface-soft); border-radius:10px; display:grid; gap:3px; }
.locked-settings span { color:var(--muted); font-size:12px; }
@media (max-width: 1200px) {
  .metrics-five { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .item-grid { grid-template-columns:minmax(190px,1.7fr) 115px 85px minmax(190px,1.2fr) 135px 125px 42px; }
}
@media (max-width: 900px) {
  .item-grid { grid-template-columns:1fr 1fr; }
  .item-grid .icon-btn { width:100%; }
}
@media (max-width: 700px) {
  .metrics-five { grid-template-columns:1fr 1fr; }
  .locked-settings { grid-template-columns:1fr; }
  .item-grid { grid-template-columns:1fr; }
}
.top-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.shopify-connect { background:#fbfcff; }
.shopify-connect h3 { margin:4px 0 6px; font-size:15px; }
.integration-checks { display:grid; gap:8px; margin:8px 0 14px; }
.check.inline { justify-content:flex-start; }
.shopify-status { margin:14px 0; padding:12px 14px; border-radius:10px; border:1px solid var(--border); font-size:13px; line-height:1.45; background:var(--surface-soft); color:var(--muted); overflow-wrap:anywhere; }
.shopify-status.success { background:var(--success-soft); color:var(--success); border-color:#c9ead6; }
.shopify-status.warning { background:#fff8e8; color:#9a6700; border-color:#f0d58a; }
.shopify-status.error { background:var(--danger-soft); color:var(--danger); border-color:#f5c6c2; }
.integration-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.soft-sep { border:0; border-top:1px solid var(--border); margin:18px 0; }
.source-tag { display:inline-flex; align-items:center; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:800; color:#475467; background:#f2f4f7; }
@media (max-width:700px) { .top-actions { width:100%; justify-content:stretch; } .top-actions button { flex:1; } }

.button-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.backup-list { margin-top:14px; display:grid; gap:8px; }
.backup-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid var(--border, #d8dee8); border-radius:10px; background:rgba(255,255,255,.55); }
.backup-row div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.backup-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.backup-row small { opacity:.7; }


/* Shopify auto-sync indicator */
.auto-sync-indicator{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid #d7ddea;background:#fff;color:#657087}
.auto-sync-indicator::before{content:'';width:8px;height:8px;border-radius:50%;background:#9aa4b5}
.auto-sync-indicator.on{background:#ecfdf3;color:#18794e;border-color:#bbf0cf}
.auto-sync-indicator.on::before{background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.12)}
.auto-sync-indicator.working{background:#eff6ff;color:#2457c5;border-color:#cfe0ff}
.auto-sync-indicator.working::before{background:#3b82f6;animation:autoSyncPulse 1s ease-in-out infinite}
.auto-sync-indicator.off{background:#f8fafc;color:#6b7280;border-color:#e5e7eb}
@keyframes autoSyncPulse{0%,100%{opacity:.35}50%{opacity:1}}
@media(max-width:900px){.auto-sync-indicator{display:none}}


/* Fase 2: despachos */
.metrics-four{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.dispatch-head{align-items:center}
.dispatch-filters{grid-template-columns:minmax(260px,1fr) 230px auto}
.select-all-wrap{padding:10px 0;white-space:nowrap}
.dispatch-table input[type="checkbox"]{width:18px;height:18px}
.dispatch-tracking{min-width:190px;padding:8px 9px}
.tracking-auto{display:inline-flex;padding:7px 9px;border-radius:8px;background:var(--success-soft);color:var(--success);font-size:12px;font-weight:800;white-space:nowrap}
.tracking-small{display:inline-block;margin-top:5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}
.dispatch-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;background:var(--surface-soft);border-top:1px solid var(--border)}
@media(max-width:900px){.metrics-four{grid-template-columns:1fr 1fr}.dispatch-filters{grid-template-columns:1fr}.dispatch-footer{position:sticky;bottom:0}}
@media(max-width:600px){.metrics-four{grid-template-columns:1fr}.dispatch-footer{flex-direction:column;align-items:stretch}}

/* Fase 2.1 · importación masiva */
.bulk-actions-head{gap:16px;align-items:flex-start}.bulk-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.import-hint{margin:-4px 0 16px;padding:12px 14px;border:1px dashed var(--border);border-radius:12px;background:var(--surface-soft);font-size:13px;color:var(--muted)}.import-hint code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--text)}
.import-modal{position:fixed;inset:0;background:rgba(15,23,42,.46);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.import-modal.hidden{display:none}.import-modal-card{width:min(980px,96vw);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px}.import-metrics{margin:16px 0}.import-headers{font-size:13px;color:var(--muted);margin-bottom:12px}.import-headers strong{color:var(--text)}.import-preview-wrap{max-height:300px}.import-result{margin:14px 0;padding:12px 14px;border-radius:12px;background:var(--surface-soft);border:1px solid var(--border)}.import-result.success{border-color:#86efac;background:#f0fdf4;color:#166534}.import-result.warning{border-color:#facc15;background:#fefce8;color:#854d0e}.import-result.error{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.import-result ul{margin:8px 0 0 18px;padding:0}.import-result li{margin:3px 0}.import-preview-wrap td,.import-preview-wrap th{white-space:nowrap}.status-detail{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
@media(max-width:760px){.bulk-actions-head{flex-direction:column}.bulk-actions{width:100%;justify-content:flex-start}.bulk-actions .secondary-btn{flex:1}.import-modal{padding:8px}.import-modal-card{padding:14px}.import-metrics{grid-template-columns:1fr 1fr}}

/* Fase 3 · navegación plegable */
.sidebar{position:relative;transition:padding .2s ease}
.app-shell{transition:grid-template-columns .2s ease}
.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 7px -10px;color:#98a2b3;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sidebar-toggle{border:1px solid #344054;border-radius:8px;background:#1d2939;color:#fff;padding:6px 8px;font-size:11px;font-weight:800;line-height:1}
.sidebar-toggle:hover{background:#344054}
body.sidebar-collapsed .app-shell{grid-template-columns:82px 1fr}
body.sidebar-collapsed .sidebar{padding-left:10px;padding-right:10px}
body.sidebar-collapsed .brand>div:last-child,body.sidebar-collapsed .nav-btn span,body.sidebar-collapsed .sidebar-note,body.sidebar-collapsed .sidebar-section-head>span{display:none}
body.sidebar-collapsed .brand{justify-content:center;padding:0}
body.sidebar-collapsed .nav-btn{justify-content:center;font-size:18px}
body.sidebar-collapsed .sidebar-section-head{justify-content:center;margin-inline:0}
body.sidebar-collapsed .sidebar-toggle{width:62px;padding-inline:4px}

/* Fase 3 · cierre diario */
.metrics-seven{grid-template-columns:repeat(4,minmax(0,1fr))}
.daily-toolbar{justify-content:space-between;align-items:end;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.daily-toolbar>div{max-width:760px}.daily-toolbar p{margin:4px 0 0;font-size:13px}
.daily-toolbar label{min-width:170px;margin-left:auto}
.daily-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:18px;margin-bottom:18px}
.daily-form-panel,.daily-kpi-panel{overflow:hidden}
.daily-form{padding:20px;display:grid;gap:15px}
.daily-form-actions{align-items:center;justify-content:space-between}
.closing-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.closing-badge.saved{background:var(--success-soft);color:var(--success)}
.closing-badge.pending{background:var(--warning-soft);color:var(--warning)}
.daily-kpis{display:grid;grid-template-columns:1fr 1fr}
.daily-kpis>div{padding:17px 18px;border-bottom:1px solid var(--border)}
.daily-kpis>div:nth-child(odd){border-right:1px solid var(--border)}
.daily-kpis span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.daily-kpis strong{font-size:21px}
.daily-history-panel{margin-top:18px}

@media(max-width:1100px){.metrics-seven{grid-template-columns:repeat(3,minmax(0,1fr))}.daily-layout{grid-template-columns:1fr}}
@media(max-width:1000px){
  .app-shell{grid-template-columns:250px 1fr}
  .sidebar{padding:24px 16px}
  .brand>div:last-child{display:block}
  .nav-btn span{display:inline}
  .sidebar-note{display:grid}
  .brand{justify-content:flex-start;padding:0 8px}
  .nav-btn{justify-content:flex-start;font-size:inherit}
  body.sidebar-collapsed .app-shell{grid-template-columns:82px 1fr}
  body.sidebar-collapsed .sidebar{padding-left:10px;padding-right:10px}
  body.sidebar-collapsed .brand>div:last-child,body.sidebar-collapsed .nav-btn span,body.sidebar-collapsed .sidebar-note,body.sidebar-collapsed .sidebar-section-head>span{display:none}
  body.sidebar-collapsed .brand{justify-content:center;padding:0}
  body.sidebar-collapsed .nav-btn{justify-content:center;font-size:18px}
}
@media(max-width:700px){
  .sidebar-toggle{display:none}
  body.sidebar-collapsed .app-shell{display:block}
  .metrics-seven{grid-template-columns:1fr 1fr}
  .daily-toolbar{align-items:stretch;flex-direction:column}
  .daily-toolbar label{margin-left:0;min-width:0;width:100%}
  .daily-kpis{grid-template-columns:1fr}
  .daily-kpis>div:nth-child(odd){border-right:0}
  .daily-form-actions{align-items:stretch;flex-direction:column}
}

/* Fase 4 · seguimiento de transportadora */
.metrics-six{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
.carrier-sync-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px;margin-bottom:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.carrier-sync-hero h2{margin:3px 0 7px;font-size:24px}.carrier-sync-hero p{margin:0;color:var(--muted);max-width:820px;line-height:1.5}
.carrier-sync-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px;margin-bottom:18px}
.carrier-last-import{padding:18px}.carrier-import-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.carrier-import-card>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);min-width:0}.carrier-import-card span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.carrier-import-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carrier-status-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.carrier-status-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px}.carrier-import-warning{margin-top:12px;padding:10px 12px;border-radius:9px;border:1px solid #facc15;background:#fefce8;color:#854d0e;font-size:12px}
.carrier-rules{padding:16px;display:grid;gap:10px}.carrier-rules>div{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;padding:10px;border-radius:10px;background:var(--surface-soft)}.carrier-rules strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.carrier-rules span{font-size:13px;color:#475467;line-height:1.4}
.carrier-recent-panel{margin-bottom:18px}.carrier-history-panel{margin-bottom:18px}.carrier-preview-quality{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}.carrier-preview-quality span{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-soft);font-size:12px;color:var(--muted)}.carrier-preview-quality strong{color:var(--text);font-size:15px;margin-right:4px}
#carrierStatusMappings{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}
@media(max-width:1050px){.metrics-six{grid-template-columns:repeat(2,minmax(0,1fr))}.carrier-sync-grid{grid-template-columns:1fr}.carrier-import-card{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.metrics-six{grid-template-columns:1fr 1fr}.carrier-sync-hero{flex-direction:column}.carrier-sync-hero .bulk-actions{width:100%}.carrier-sync-hero button{width:100%}.carrier-preview-quality{grid-template-columns:1fr 1fr}.carrier-import-card{grid-template-columns:1fr}}

.carrier-preview-help{flex-basis:100%;padding:.65rem .8rem;border-radius:10px;background:#eef6ff;color:#1f3b5b;font-size:.88rem;line-height:1.35}

/* Fase 4.2 · Dashboard analítico */
.dashboard-period-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;margin-bottom:18px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.dashboard-period-bar p{margin:4px 0 0}.dashboard-period-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.dashboard-period-controls label{min-width:145px}.period-presets{display:flex;gap:4px;padding:4px;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px}.period-btn{border:0;background:transparent;color:var(--muted);font-weight:800;font-size:12px;padding:8px 10px;border-radius:7px}.period-btn.active{background:white;color:var(--accent);box-shadow:0 1px 4px rgba(16,24,40,.10)}
.dashboard-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 2px 10px}.dashboard-section-title h2{font-size:18px}.dashboard-section-title p{margin:4px 0 0;font-size:13px}.analysis-chip{padding:6px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:800}.analysis-chip.muted{background:#f2f4f7;color:#475467}
.dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashboard-ops-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-success{border-color:#c9ead6;background:#f7fcf9}.metric-warning{border-color:#f0d58a;background:#fffaf0}.dashboard-analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.dashboard-status-panel,.dashboard-recent-panel{margin-top:18px}.status-bars{padding:18px 20px;display:grid;gap:13px}.status-bar-row{display:grid;gap:6px}.status-bar-label{display:flex;justify-content:space-between;gap:12px;font-size:13px}.status-bar-label span{color:var(--muted)}.status-bar-track{height:9px;border-radius:99px;background:#eef1f5;overflow:hidden}.status-bar-track span{display:block;height:100%;background:var(--accent);border-radius:99px}
@media(max-width:1100px){.dashboard-period-bar{align-items:flex-start;flex-direction:column}.dashboard-analysis-grid{grid-template-columns:1fr}.dashboard-ops-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.dashboard-period-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}.period-presets{grid-column:1/-1;overflow-x:auto}.dashboard-metrics,.dashboard-ops-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.dashboard-period-controls,.dashboard-metrics,.dashboard-ops-metrics{grid-template-columns:1fr}.period-presets{grid-column:auto}}

/* Fase 4.2 · Columnas configurables */
.table-config-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;border-bottom:1px solid var(--border);background:#fbfcfe}.table-config-bar>div:first-child{display:flex;gap:9px;align-items:center;min-width:0}.table-config-bar>div:first-child strong{font-size:12px;white-space:nowrap}.table-config-bar>div:first-child span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-config-actions{display:flex;gap:8px;position:relative;flex-shrink:0}.columns-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:70;width:320px;max-height:520px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 16px 44px rgba(16,24,40,.18);padding:12px}.columns-menu-head,.columns-menu-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.columns-menu-head{padding-bottom:9px;border-bottom:1px solid var(--border)}.columns-menu-list{display:grid;grid-template-columns:1fr 1fr;gap:3px 7px;padding:9px 0}.column-option{display:flex;align-items:center;gap:7px;padding:7px 5px;border-radius:7px;font-size:12px;font-weight:650}.column-option:hover{background:var(--surface-soft)}.column-option input{width:auto}.columns-menu-footer{padding-top:9px;border-top:1px solid var(--border);flex-wrap:wrap}.smart-table{width:max-content;min-width:100%}.smart-table th[draggable="true"]{cursor:grab}.resizable-th{position:relative;user-select:none}.col-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:5}.col-resizer:hover,.resizable-th:hover>.col-resizer{background:rgba(49,87,213,.14)}.wrap{white-space:normal!important;line-height:1.35}
@media(max-width:760px){.table-config-bar{align-items:flex-start;flex-direction:column}.table-config-bar>div:first-child span{white-space:normal}.table-config-actions{width:100%}.table-config-actions>button{flex:1}.columns-menu{left:0;right:auto;width:min(340px,90vw)}.columns-menu-list{grid-template-columns:1fr}}

/* Fase 4.3 · Diseño visual inspirado en Storefront Tracker
   Solo presentación y organización. No cambia lógica ni datos. */
:root{
  --bg:#f3f6fa;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --text:#0b1f3a;
  --muted:#64748b;
  --border:#dfe6ef;
  --accent:#4d7fd8;
  --accent-strong:#2f65c7;
  --accent-soft:#edf4ff;
  --success:#16734b;
  --success-soft:#edf8f2;
  --warning:#946200;
  --warning-soft:#fff8e6;
  --danger:#b42318;
  --danger-soft:#fff1f0;
  --sidebar:#ffffff;
  --shadow:none;
}
body{background:var(--bg);color:var(--text)}
.app-shell{grid-template-columns:238px minmax(0,1fr)}
.storefront-sidebar{
  background:#fff;
  color:var(--text);
  border-right:1px solid var(--border);
  padding:22px 14px 18px;
  gap:19px;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
.storefront-brand{padding:0 7px 16px;border-bottom:1px solid var(--border)}
.brand-mark{
  width:39px;height:39px;border-radius:10px;
  background:var(--accent);color:#fff;
  box-shadow:none;font-size:13px;letter-spacing:.03em;
}
.brand strong{font-size:14px;color:var(--text)}
.brand small{font-size:11px;color:var(--muted)}
.sidebar-section-head{margin:0 7px;color:#8290a5;font-size:10px}
.sidebar-toggle{
  background:#fff;color:#526178;border:1px solid var(--border);
  padding:5px 7px;border-radius:7px;
}
.sidebar-toggle:hover{background:#f7f9fc;color:var(--text)}
.storefront-nav{display:grid;gap:14px}
.nav-group{display:grid;gap:4px}
.nav-group-title{
  padding:0 11px 3px;color:#97a3b5;font-size:9px;font-weight:800;
  letter-spacing:.10em;text-transform:uppercase;
}
.nav-btn{
  color:#526178;background:transparent;padding:9px 10px;border-radius:8px;
  gap:9px;font-size:13px;font-weight:650;min-height:38px;
}
.nav-btn:hover{background:#f3f6fb;color:#1b3153}
.nav-btn.active{
  background:#edf4ff;color:#2356ad;
  box-shadow:inset 3px 0 0 var(--accent);
}
.nav-icon{
  width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;
  border:1px solid #dce5f1;border-radius:7px;background:#fff;color:#5275a8;
  font-size:13px;font-weight:800;
}
.nav-btn.active .nav-icon{background:#fff;border-color:#bfd1ef;color:#2f65c7}
.storefront-rule-card{
  border:1px solid var(--border);background:#f9fbfd;color:#66758b;
  border-radius:10px;padding:12px;font-size:11px;line-height:1.45;gap:6px;
}
.storefront-rule-card strong{color:#263b5c}
.rule-card-title{display:flex;align-items:center;gap:7px;margin-bottom:2px}
.status-dot{width:7px;height:7px;border-radius:50%;background:#23a36d;box-shadow:0 0 0 3px #e6f5ed}
.main{padding:24px 28px 40px;max-width:1700px;width:100%;margin:0 auto}
.storefront-topbar{
  padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--border);
  align-items:flex-end;
}
.topbar-heading{min-width:0}
.eyebrow{color:#6780a8;font-size:10px;letter-spacing:.11em;margin-bottom:5px}
h1{font-size:26px;letter-spacing:-.02em;color:#0a2344}
h2{color:#10294b}
.page-subtitle{margin:5px 0 0;font-size:13px;color:#718096}
.primary-btn,.secondary-btn,.text-btn,.danger-btn{
  border-radius:8px;padding:9px 12px;font-size:12px;font-weight:750;
}
.primary-btn{background:var(--accent);border-color:var(--accent);box-shadow:none}
.primary-btn:hover{background:var(--accent-strong);filter:none}
.secondary-btn{border-color:#ccd8e8;color:#24436d;background:#fff}
.secondary-btn:hover{background:#f5f8fc;border-color:#b9c9dd}
.text-btn{color:#3568bd}
.auto-sync-indicator{border-radius:8px;padding:8px 10px;background:#fff}
.notice{border-radius:8px;box-shadow:none}

/* Centro de control */
.storefront-control-center{
  background:#fff;border:1px solid var(--border);border-radius:11px;
  padding:18px;margin-bottom:18px;
}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.section-heading-row h2{font-size:18px;margin:0}.section-heading-row p:not(.eyebrow){margin:4px 0 0;font-size:12px}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.module-card{
  appearance:none;text-align:left;display:grid;grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;gap:11px;border:1px solid var(--border);background:#fff;
  border-radius:9px;padding:13px;color:var(--text);min-height:84px;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.module-card:hover{border-color:#b8c9e1;background:#fbfdff;transform:translateY(-1px)}
.module-icon{
  width:38px;height:38px;border-radius:9px;background:#edf4ff;color:#3b6fca;
  display:grid;place-items:center;font-size:18px;font-weight:800;
}
.module-copy{display:grid;gap:4px;min-width:0}.module-copy strong{font-size:13px;color:#112a4d}.module-copy small{font-size:11px;color:#718096;line-height:1.35}
.module-arrow{font-size:10px;color:#4d7fd8;font-weight:800;white-space:nowrap}

/* Tarjetas y paneles como Storefront Tracker */
.dashboard-period-bar,.panel,.metric,.carrier-sync-hero{
  box-shadow:none;border-color:var(--border);border-radius:11px;background:#fff;
}
.dashboard-period-bar{padding:14px 16px}
.dashboard-section-title{margin:20px 2px 9px}.dashboard-section-title h2{font-size:16px}.dashboard-section-title p{font-size:12px}
.analysis-chip{border-radius:7px;padding:5px 8px;font-size:10px}
.metrics{gap:10px}.metric{padding:15px 16px;min-height:106px}
.metric span{font-size:11px;color:#69798e}.metric strong{font-size:25px;margin:7px 0 4px;color:#0a2344;letter-spacing:-.02em}.metric small{font-size:10px;color:#8793a5}
.metric-success,.metric-warning{background:#fff;border-color:var(--border)}
.panel-head{padding:16px 18px}.panel-head h2{font-size:16px}.panel-head p{font-size:12px;margin-top:4px}
.filters{padding:13px 16px;background:#fbfcfe}.table-config-bar{background:#f8fafc;padding:9px 16px}
.table-wrap{background:#fff}
th,td{padding:11px 12px;border-bottom:1px solid #e8edf3}
th{background:#fbfcfe;color:#61718a;font-size:10px;letter-spacing:.065em;font-weight:800}
td{font-size:12px;color:#1c3150}tbody tr:hover{background:#f9fbfe}
.badge,.carrier-badge,.source-tag{border-radius:999px;padding:4px 8px;font-size:10px}
.icon-btn{border-radius:7px;padding:6px 8px;color:#3568bd}
.empty-state{font-size:12px}
input,select,textarea{border-radius:8px;border-color:#ccd6e3;padding:9px 10px;font-size:12px}
label{font-size:11px;color:#526178}
fieldset{border-radius:9px}legend{font-size:12px;color:#2d476c}

/* Storefront-like status bars */
.status-bar-track{background:#edf1f6;height:7px}.status-bar-track span{background:#5d88d1}

/* Sidebar collapsed */
body.sidebar-collapsed .app-shell{grid-template-columns:72px minmax(0,1fr)}
body.sidebar-collapsed .storefront-sidebar{padding-left:9px;padding-right:9px}
body.sidebar-collapsed .brand>div:last-child,
body.sidebar-collapsed .nav-btn>span:not(.nav-icon),
body.sidebar-collapsed .sidebar-note,
body.sidebar-collapsed .sidebar-section-head>span,
body.sidebar-collapsed .nav-group-title{display:none}
body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
body.sidebar-collapsed .nav-btn{justify-content:center;padding-left:8px;padding-right:8px;box-shadow:none}
body.sidebar-collapsed .nav-btn.active{box-shadow:inset 3px 0 0 var(--accent)}

@media(max-width:1180px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){
  .app-shell{grid-template-columns:72px minmax(0,1fr)}
  .storefront-sidebar{padding-left:9px;padding-right:9px}
  .brand>div:last-child,.nav-btn>span:not(.nav-icon),.sidebar-note,.sidebar-section-head>span,.nav-group-title{display:none}
  .brand{justify-content:center;padding-left:0;padding-right:0}.nav-btn{justify-content:center}.sidebar-toggle{font-size:0}.sidebar-toggle::after{content:'↔';font-size:12px}
}
@media(max-width:760px){
  .app-shell{display:block}.storefront-sidebar{position:static;height:auto;display:flex;flex-direction:row;align-items:center;overflow-x:auto;padding:9px 10px;border-right:0;border-bottom:1px solid var(--border)}
  .storefront-brand,.sidebar-section-head,.nav-group-title,.sidebar-note{display:none!important}.storefront-nav{display:flex;gap:5px}.nav-group{display:flex;gap:5px}.nav-btn{white-space:nowrap}.nav-btn>span:not(.nav-icon){display:inline}.nav-icon{width:22px;height:22px;flex-basis:22px}.main{padding:16px}.storefront-topbar{align-items:flex-start}.module-grid{grid-template-columns:1fr}.module-card{grid-template-columns:36px minmax(0,1fr) auto}.dashboard-period-bar{border-radius:9px}
}

/* Fase 4.4 · Operación por bandejas + filtros globales + divisa publicidad */
.filters-wide{
  grid-template-columns:minmax(220px,2fr) repeat(auto-fit,minmax(138px,1fr));
  align-items:end;
}
.filters-wide .grow{min-width:220px}
.select-all-wrap{
  min-height:38px;
  align-self:end;
  padding:0 8px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#fff;
  white-space:nowrap;
}
.select-all-wrap input{width:auto;margin:0}
.bulk-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bulk-actions .primary-btn{background:var(--accent);border-color:var(--accent);color:#fff}
.bulk-actions .primary-btn:hover{background:var(--accent-strong)}
.fx-grid input[readonly]{background:#f8fafc;color:#344b6b;font-weight:750}
.fx-status-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  margin:-2px 0 13px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#f8fafc;
}
.fx-status-row .helper{margin:0;line-height:1.4}
.daily-kpis strong+small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.closing-orders-panel{margin-top:18px}
#ordersMainTable th:first-child,#ordersMainTable td:first-child,
.dispatch-table th:first-child,.dispatch-table td:first-child,
table[data-table-key="carrier-orders"] th:first-child,table[data-table-key="carrier-orders"] td:first-child,
table[data-table-key="closing-orders"] th:first-child,table[data-table-key="closing-orders"] td:first-child{
  width:42px;min-width:42px;max-width:42px;text-align:center;
}
.orders-select,.dispatch-select,.carrier-select,.closing-order-select{width:auto;accent-color:var(--accent)}
.queue-note{
  display:flex;align-items:center;gap:8px;color:#65758b;font-size:11px;
  padding:0 2px 10px;
}
.queue-note::before{content:'•';color:var(--accent);font-size:16px;line-height:1}
@media(max-width:900px){
  .filters-wide{grid-template-columns:1fr 1fr}
  .filters-wide .grow{grid-column:1/-1;min-width:0}
  .select-all-wrap{min-height:40px}
}
@media(max-width:600px){
  .filters-wide{grid-template-columns:1fr}
  .filters-wide .grow{grid-column:auto}
  .fx-status-row{align-items:flex-start;flex-direction:column}
}

/* Fase 4.5 · Navegación de datos, paginación y configuración por bloques */
.data-pager{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 16px;border-top:1px solid var(--border);background:#fbfcfe;
  color:var(--muted);font-size:12px;min-height:48px;
}
.data-pager:empty{display:none}.pager-summary{font-weight:650;color:#607086}.pager-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pager-actions label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#607086}.pager-actions select{width:auto;min-width:68px;padding:7px 28px 7px 9px;height:34px}.pager-actions>span{white-space:nowrap}.pager-actions button:disabled{opacity:.45;cursor:not-allowed}
.product-title-compact{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  white-space:normal;line-height:1.32;max-width:250px;min-width:0;font-weight:650;color:var(--text);
  overflow-wrap:anywhere;
}
td.product-cell,td[data-col="product"],td[data-col="products"]{white-space:normal!important;vertical-align:top}
td[data-col="address"],td[data-col="novelty"],td[data-col="statuses"]{white-space:normal!important;overflow-wrap:anywhere;line-height:1.35}
.table-wrap table th,.table-wrap table td{vertical-align:middle}
.table-wrap table td{overflow:hidden;text-overflow:ellipsis}

.settings-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start;max-width:1240px;margin:0 auto}
.settings-nav{position:sticky;top:18px;padding:12px;display:grid;gap:5px;overflow:hidden}
.settings-nav-head{padding:7px 8px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}.settings-nav-head h2{margin:2px 0 5px;font-size:18px}.settings-nav-head p:last-child{margin:0;font-size:12px;color:var(--muted);line-height:1.4}
.settings-nav-btn{display:grid;grid-template-columns:28px 1fr;align-items:center;text-align:left;gap:8px;border:0;background:transparent;color:#526178;padding:9px 10px;border-radius:8px;font-size:12px;font-weight:750;cursor:pointer}
.settings-nav-btn span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#f3f6fb;color:#7a889d;font-size:10px}.settings-nav-btn:hover{background:#f4f7fb;color:var(--text)}.settings-nav-btn.active{background:var(--accent-soft);color:var(--accent-strong)}.settings-nav-btn.active span{background:#fff;color:var(--accent-strong)}
.settings-content{display:grid;gap:16px;min-width:0}.settings-block{margin:0!important;padding:19px!important;border:1px solid var(--border)!important;border-radius:13px!important;background:#fff!important;scroll-margin-top:18px}.settings-block legend{font-size:15px;font-weight:850;color:var(--text);padding:0 8px;display:flex;align-items:center;gap:8px}.settings-step{display:inline-grid;place-items:center;width:28px;height:24px;border-radius:7px;background:var(--accent-soft);color:var(--accent-strong);font-size:10px;letter-spacing:.04em}.settings-savebar{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px rgba(16,24,40,.10)}.settings-savebar span{font-size:12px;color:var(--muted)}

@media(max-width:920px){.settings-layout{grid-template-columns:1fr}.settings-nav{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.settings-nav-head{grid-column:1/-1}.settings-nav-btn{grid-template-columns:24px 1fr}.settings-savebar{bottom:8px}}
@media(max-width:700px){.data-pager{align-items:flex-start;flex-direction:column}.pager-actions{width:100%}.pager-actions label{margin-right:auto}.settings-nav{grid-template-columns:1fr 1fr}.settings-savebar{align-items:stretch;flex-direction:column}.settings-savebar button{width:100%}.product-title-compact{max-width:220px}}

/* Fase 4.6 · navegación de tablas y flujo de seguimiento */
.data-pager-top{border-top:0;border-bottom:1px solid var(--border);margin:0;background:#fbfcfe}
.table-scroll-top{overflow-x:auto;overflow-y:hidden;height:17px;background:#fbfcfe;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.table-scroll-spacer{height:1px;min-width:100%}
.column-hidden{display:none!important}
.resizable-th{padding-right:34px!important}
.th-label{display:inline-block;vertical-align:middle;max-width:calc(100% - 22px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th-hide-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:#98a2b3;font-size:15px;line-height:1;cursor:pointer;z-index:7}
.th-hide-btn:hover{background:#eef3f9;color:#344054}
.resizable-th .col-resizer{z-index:8}
.generic-table-config{border-top:1px solid var(--border)}
.followup-subtitle{margin:7px 0 0;color:var(--muted);font-size:13px}
.followup-bulk-editor{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fbfcfe}
.followup-bulk-editor label{min-width:190px}.followup-bulk-editor .grow{flex:1;min-width:240px}
.followup-row-status{min-width:170px;padding:7px 28px 7px 9px;height:36px}
.followup-row-novelty{min-width:220px;max-width:320px;height:36px;padding:7px 9px}
#carrierRecentTable td[data-col="novelty"]{overflow:visible}
#carrierRecentTable td[data-col="status"]{overflow:visible}
@media(max-width:700px){.followup-bulk-editor{align-items:stretch;flex-direction:column}.followup-bulk-editor label,.followup-bulk-editor .grow,.followup-bulk-editor button{width:100%;min-width:0}}

/* Fase 5 · programación, proyección, inventario y compras */
.projection-panel{margin-top:18px}
.projection-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px}
.projection-note{padding:10px 12px;margin:0 0 12px;border:1px solid var(--border);border-radius:9px;background:#f8fafc;color:var(--muted);font-size:12px;line-height:1.45}
.schedule-preview{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:74px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}
.schedule-preview span,.schedule-preview small{color:var(--muted);font-size:11px}.schedule-preview strong{font-size:15px;color:var(--text)}
.inventory-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.stock-low-row td[data-col="available"] strong{color:#b54708}.stock-low-row{background:#fffaf5}
.inventory-edit-panel,.purchase-editor{margin-top:18px}.settings-info-card{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}.settings-info-card span{font-size:12px;color:var(--muted)}
.purchase-item-grid{grid-template-columns:minmax(220px,2fr) 130px 100px 100px 130px 40px;align-items:end}.purchase-total-preview{margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:9px;background:#f8fafc;font-weight:800;color:var(--text)}
table[data-table-key="inventory-main"] td[data-col="product"],table[data-table-key="purchases-main"] td[data-col="products"],table[data-table-key="projection-products"] td[data-col="product"]{white-space:normal!important}
@media(max-width:1200px){.projection-metrics,.inventory-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.purchase-item-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.projection-metrics,.inventory-metrics{grid-template-columns:1fr 1fr}.purchase-item-grid{grid-template-columns:1fr}.schedule-fieldset .form-grid{grid-template-columns:1fr}}

/* Fase 5.1 · refinamiento de flujo, configuración y navegación */
html,body{max-width:100%;overflow-x:hidden}
.main,.view,.panel,.settings-content{min-width:0}
.dispatch-guide-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.dispatch-guide-actions .primary-btn{width:auto;white-space:nowrap}
.carrier-data-section.hidden{display:none!important}
.data-retention-card{margin-top:14px;padding:13px 14px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft);display:grid;gap:5px}
.data-retention-card strong{font-size:13px}.data-retention-card span{font-size:12px;color:var(--muted);line-height:1.45}
.settings-content .settings-block{display:none}
.settings-content .settings-block.active-settings-block{display:block}
.settings-nav-btn.active{box-shadow:inset 3px 0 0 var(--accent)}
.supplier-editor{margin-top:16px}.supplier-editor.hidden{display:none}
#purchaseSupplier+small{display:block;margin-top:5px}
#purchaseGoSuppliers{padding:0;font-size:11px}
.table-scroll-top.hidden{display:none!important}
@media(max-width:760px){.dispatch-guide-actions{flex-wrap:wrap}.dispatch-guide-actions .primary-btn{flex:1 1 220px}.settings-content .settings-block.active-settings-block{display:block}}
.standalone-orders-body{background:var(--bg);min-height:100vh}.standalone-orders-page{max-width:1600px;margin:0 auto;padding:24px}.standalone-orders-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.standalone-orders-head h1{margin:2px 0 4px}.standalone-orders-page .panel{margin-top:16px}@media(max-width:760px){.standalone-orders-page{padding:12px}.standalone-orders-head{flex-direction:column}}

/* Fase 6 · Finanzas integradas */
.finance-period-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px;margin-bottom:16px}
.finance-period-bar h2{margin:2px 0 5px}.finance-period-bar p:last-child{margin:0;color:var(--muted);font-size:12px}
.finance-income{color:#067647!important}.finance-expense{color:#b42318!important}.finance-difference{color:#b42318;font-weight:800}.negative-value{color:#b42318!important}
.finance-auto-row{background:#fbfcfe}.finance-auto-row td[data-col="source"]{white-space:nowrap}
.purchase-payment-fieldset{margin-top:14px!important;background:#fbfcfe!important}.purchase-payment-fieldset legend{font-size:13px!important}
.statement-card{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden;margin-top:14px}.statement-card h3{margin:0;padding:13px 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:14px}.statement-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 16px;border-bottom:1px solid #eef2f6}.statement-row:last-child{border-bottom:0}.statement-row span{color:#475467}.statement-row strong{font-size:14px}.statement-row.strong{font-weight:800}.statement-row.subtotal{background:#eef6ea;font-weight:800}.statement-row.total{background:#e8f2fb;font-size:15px;font-weight:900}.statement-row.total strong{font-size:17px}
.balance-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reconcile-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.reconcile-banner strong{text-align:center;font-size:20px}.reconcile-banner small{color:var(--muted);max-width:540px}
.field-muted{opacity:.58}
table[data-table-key="finance-register"] td[data-col="comment"],table[data-table-key="finance-register"] td[data-col="category"],table[data-table-key="finance-register"] td[data-col="subcategory"]{white-space:normal!important;line-height:1.35}
@media(max-width:950px){.finance-period-bar{align-items:stretch;flex-direction:column}.balance-columns{grid-template-columns:1fr}.reconcile-banner{grid-template-columns:1fr}.reconcile-banner strong{text-align:left}}


/* Fase 6.1 · preparación para datos reales */
.real-start-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:16px 18px;border:1px solid #f1b8b4;background:var(--danger-soft);border-radius:14px}
.real-start-card strong{display:block;color:var(--danger);font-size:15px;margin-bottom:4px}.real-start-card p{margin:0;color:#63312d;line-height:1.45}.real-start-card .danger-btn{flex:0 0 auto}
@media(max-width:760px){.real-start-card{align-items:stretch;flex-direction:column}.real-start-card .danger-btn{width:100%}}


/* Fase 6.2 · navegación estable */
@media(min-width:761px){
  .app-shell{display:block!important;min-height:100vh}
  .storefront-sidebar{
    position:fixed!important;
    left:0;top:0;bottom:0;
    width:238px;
    height:100vh;
    z-index:120;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .main{margin-left:238px!important;width:auto!important;max-width:none!important}
  body.sidebar-collapsed .storefront-sidebar{width:72px}
  body.sidebar-collapsed .main{margin-left:72px!important}
}
@media(min-width:761px) and (max-width:1000px){
  .storefront-sidebar{width:72px}
  .main{margin-left:72px!important}
}
@media(max-width:760px){
  .storefront-sidebar{position:sticky!important;top:0;z-index:120}
  .main{margin-left:0!important}
}
.shopify-sync-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#f8fbff}
.shopify-sync-panel .integration-actions{margin:0}
.row-actions .danger-btn.small-btn{padding:6px 9px;border-radius:7px;font-size:11px;line-height:1.1}

/* Fase 6.4 · estándar global de formularios en popup */
body.data-entry-modal-open{overflow:hidden}
.data-entry-modal-overlay{position:fixed;inset:0;z-index:1600;background:rgba(15,23,42,.52);display:flex;align-items:center;justify-content:center;padding:22px}
.data-entry-modal-card{width:min(1280px,96vw);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 28px 70px rgba(15,23,42,.24)}
.data-entry-modal-card>.panel,.data-entry-modal-card>.view{width:100%;margin:0!important;border:0!important;border-radius:18px!important;box-shadow:none!important;overflow:visible}
.data-entry-modal-card>.view{display:block!important}
.data-entry-modal-panel>form{padding:20px}
.data-entry-modal-card .panel-head{position:sticky;top:0;z-index:15;background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
.data-entry-modal-card .form-actions{position:sticky;bottom:0;z-index:12;background:rgba(255,255,255,.97);padding:14px 0 2px;border-top:1px solid var(--border)}
.panel-primary-actions,.order-modal-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.finance-preset-notice{margin:16px 20px 0;padding:13px 14px;border:1px solid #b7d5ff;border-radius:11px;background:#eef6ff;display:grid;gap:4px}
.finance-preset-notice strong{color:#174ea6}.finance-preset-notice span{font-size:12px;color:#475467;line-height:1.45}
.data-entry-modal-card select:disabled,.data-entry-modal-card input:disabled{background:#f2f4f7;color:#667085;cursor:not-allowed}
@media(max-width:760px){.data-entry-modal-overlay{padding:7px;align-items:flex-start}.data-entry-modal-card{width:100%;max-height:98vh;border-radius:14px}.data-entry-modal-card>.panel,.data-entry-modal-card>.view{border-radius:14px!important}.panel-primary-actions{width:100%;justify-content:stretch}.panel-primary-actions .primary-btn{flex:1}.order-modal-head-actions{align-items:flex-end}}

/* ========================= WhatsApp · Fase 7.0 ========================= */
.wa-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:14px;border:1px solid #b8d4c4;border-radius:14px;background:linear-gradient(135deg,#f2fbf6,#f8fbff)}
.wa-mode-banner h2{margin:2px 0 5px}.wa-mode-banner p{margin:0;color:var(--muted)}
.wa-sim-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#e8f5ee;color:#167044;font-size:11px;font-weight:900;letter-spacing:.08em;border:1px solid #b8dfc9}
.wa-metrics{margin-bottom:14px}.metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.wa-two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:14px}
.wa-recent-list,.wa-config-list{display:grid;gap:8px;padding:0 16px 16px}
.wa-recent-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:left;cursor:pointer;color:var(--text)}
.wa-recent-item:hover{background:var(--surface-soft);border-color:#b9cbe6}.wa-recent-item>span:first-child{display:grid;gap:3px}.wa-recent-item small{font-size:11px;color:var(--muted)}
.wa-engine-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 16px 16px}.wa-engine-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.wa-engine-grid span{font-size:11px;color:var(--muted)}.wa-engine-grid strong{font-size:15px}
.wa-automation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.wa-config-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.wa-config-item>div:first-child{display:grid;gap:3px;min-width:0}.wa-config-item>div:last-child{display:flex;align-items:center;gap:5px}.wa-config-item span{font-size:11px;color:var(--muted)}
.wa-variable-help{margin:0 16px 14px;padding:9px 11px;border:1px solid #cbd9ed;border-radius:9px;background:#f7faff;color:#52637a;font-size:12px}.wa-variable-help code{font-size:11px}
.wa-template-preview{max-width:460px;white-space:normal;line-height:1.4;font-size:12px;color:#4b5563}.table-subtext{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.wa-simulator-layout{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(360px,1fr);gap:14px;align-items:start}.wa-simulator-layout .wa-chat-panel{grid-column:1/-1}.wa-sim-form{display:grid;gap:10px;padding:0 16px 16px}.wa-sim-note{margin:0 16px 16px;padding:10px 12px;background:#fffbea;border:1px solid #f1dc93;border-radius:10px;font-size:12px;color:#725c14}
.wa-trace{padding:0 16px 16px;min-height:180px}.wa-trace ol{margin:0;padding-left:22px;display:grid;gap:8px}.wa-trace li{padding:8px 10px;background:var(--surface-soft);border-radius:8px;border:1px solid var(--border);font-size:12px}
.wa-chat{display:flex;flex-direction:column;gap:8px;min-height:240px;max-height:520px;overflow:auto;padding:16px;background:#eef3ef;border-top:1px solid var(--border)}.wa-chat-detail{min-height:360px}.wa-bubble{max-width:78%;padding:9px 11px;border-radius:12px;background:#fff;border:1px solid #d9e2dc;box-shadow:0 1px 2px rgba(15,23,42,.04)}.wa-bubble.outbound{align-self:flex-end;background:#dcf8e8}.wa-bubble.inbound{align-self:flex-start}.wa-bubble.system{align-self:center;background:#f3f4f6;max-width:90%}.wa-bubble>span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;color:#718096;margin-bottom:4px}.wa-bubble p{margin:0;white-space:pre-wrap;font-size:13px;line-height:1.4}.wa-bubble small{display:block;margin-top:5px;color:#7b8794;font-size:9px;text-align:right}.wa-chat-buttons{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.wa-chat-buttons em{font-style:normal;padding:5px 8px;border-radius:8px;background:#fff;border:1px solid #b9d5c5;font-size:10px;color:#1c6b42}
.wa-conversation-control{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.wa-sequence-steps-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}.wa-sequence-steps{display:grid;gap:9px}.wa-step-row{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:9px;align-items:start;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft)}.wa-step-index{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8eef8;color:#315a9f;font-size:11px;font-weight:900}.wa-step-fields{display:grid;grid-template-columns:160px minmax(180px,.65fr) minmax(260px,1.5fr);gap:8px}.wa-step-fields label{margin:0}.wa-step-fields textarea{min-height:56px}
.wa-connection-roadmap{display:grid;gap:5px;margin-top:14px;padding:12px;border-radius:10px;border:1px dashed #a8bddb;background:#f8fbff}.wa-connection-roadmap span{font-size:12px;color:var(--muted)}
.shopify-status.warning{background:#fffbeb;border-color:#f3d489;color:#765f17}
.badge.warning{background:#fff3cd;color:#7a5d00;border-color:#eed887}.badge.success{background:#e9f8ef;color:#176b3a;border-color:#b9e3c8}
@media(max-width:1180px){.metrics-five{grid-template-columns:repeat(3,minmax(0,1fr))}.wa-automation-grid{grid-template-columns:1fr}.wa-two-col{grid-template-columns:1fr}.wa-step-fields{grid-template-columns:1fr 1fr}.wa-simulator-layout{grid-template-columns:1fr}}
@media(max-width:760px){.metrics-five{grid-template-columns:1fr 1fr}.wa-mode-banner{align-items:flex-start}.wa-step-fields{grid-template-columns:1fr}.wa-simulator-layout{grid-template-columns:1fr}.wa-bubble{max-width:92%}}

/* Fase 7.1 · operación por etapas y navegación personalizable */
.sidebar-head-actions{display:flex;align-items:center;gap:5px}
.sidebar-customize{border:1px solid var(--border);border-radius:7px;background:#fff;color:#526178;padding:5px 7px;font-size:10px;font-weight:800;line-height:1;cursor:pointer}
.sidebar-customize:hover{background:#f7f9fc;color:var(--text)}
.storefront-nav{gap:9px}
.nav-group{display:grid;gap:3px}
.nav-group-toggle{width:100%;border:0;background:transparent;padding:5px 10px 4px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8b98ab;font-size:9px;font-weight:850;letter-spacing:.10em;text-transform:uppercase;text-align:left;cursor:pointer;border-radius:7px}
.nav-group-toggle:hover{background:#f6f8fb;color:#607089}
.nav-group-chevron{font-size:10px;line-height:1;transition:transform .16s ease;letter-spacing:0}
.nav-group-items{display:grid;gap:3px}
.nav-group.nav-group-collapsed .nav-group-items{display:none}
.nav-group.nav-group-collapsed .nav-group-chevron{transform:rotate(180deg)}
.nav-btn.nav-module-hidden{display:none!important}
.navigation-module-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 0 8px}
.navigation-module-group{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fbfcfe;display:grid;gap:8px}
.navigation-module-group>strong{font-size:12px;color:#34445c}
.navigation-module-options{display:grid;gap:7px}
.navigation-module-option{display:flex;align-items:center;gap:8px;font-size:12px;color:#526178}
.navigation-module-option input{margin:0}
#navigationSettingsPanel{max-width:860px}

body.sidebar-collapsed .nav-group-toggle>span:first-child,
body.sidebar-collapsed .nav-group-chevron,
body.sidebar-collapsed .sidebar-customize{display:none}
body.sidebar-collapsed .nav-group-toggle{height:4px;padding:0;pointer-events:none}

@media(max-width:1000px) and (min-width:761px){
  .nav-group-toggle>span:first-child,.nav-group-chevron,.sidebar-customize{display:none}
  .nav-group-toggle{height:4px;padding:0;pointer-events:none}
}
@media(max-width:760px){
  .nav-group-toggle{display:none!important}
  .nav-group-items{display:flex!important;gap:5px}
  .navigation-module-checklist{grid-template-columns:1fr}
}
.nav-group-control{display:flex;align-items:center;gap:6px;letter-spacing:0;text-transform:none}.nav-group-state{font-size:9px;font-weight:750;color:#a2adbc}.nav-group-toggle:hover .nav-group-state{color:#607089}
body.sidebar-collapsed .nav-group-control{display:none}
@media(max-width:1000px) and (min-width:761px){.nav-group-control{display:none}}

/* Fase 7.2 · Mostrar / ocultar filtros — estándar global */
.filter-toggle-host{
  position:relative;
  padding-top:54px!important;
  transition:min-height .18s ease,padding .18s ease;
}
.filter-toggle-host>.filters-toggle-btn{
  position:absolute;
  top:10px;
  right:16px;
  z-index:3;
  white-space:nowrap;
}
.filter-toggle-host.filters-collapsed{
  display:block!important;
  min-height:48px;
  padding:8px 16px!important;
}
.filter-toggle-host.filters-collapsed>:not(.filters-toggle-btn){
  display:none!important;
}
.filter-toggle-host.filters-collapsed>.filters-toggle-btn{
  position:static;
  display:inline-flex!important;
  float:none;
}
.dashboard-period-controls.filter-toggle-host,
.daily-filter-controls.filter-toggle-host{
  min-width:260px;
}
.daily-filter-controls{
  display:flex;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.daily-filter-controls label{
  min-width:170px;
}
@media(max-width:760px){
  .filter-toggle-host>.filters-toggle-btn{right:12px}
  .dashboard-period-controls.filter-toggle-host,
  .daily-filter-controls.filter-toggle-host{min-width:0;width:100%}
}

/* Fase 7.3 · clientes y catálogo maestro */
.customer-profile-area{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.customer-profile-area>h3{margin:18px 0 10px}
.duplicate-review{margin:14px 0;padding:12px;border:1px solid #f0d28b;border-radius:12px;background:#fffaf0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.duplicate-review>strong,.duplicate-review>p{width:100%;margin:0}.duplicate-review>p{font-size:12px;color:var(--muted)}
.source-tag{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:#f8fafc;font-size:11px;font-weight:800;color:#526178}
.fixed-source-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.source-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#edf4ff;border:1px solid #c9dcfb;color:#315a9f;font-size:11px;font-weight:850}.source-pill.cod{background:#f4f7fa;border-color:var(--border);color:#526178}
@media(max-width:760px){.duplicate-review{align-items:stretch}.duplicate-review button{width:100%}.customer-profile-area .metrics{grid-template-columns:1fr 1fr}}

/* Fase 7.4 · reserva FIFO de lotes */
.item-lot{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;background:#f7f9fc}.item-lot-hint{display:block;margin-top:4px;color:var(--muted);font-size:10px}.item-lot-hint.lot-shortage{color:#b42318;font-weight:700}


/* Fase 7.5 · proyecciones, Google Drive y accesos WhatsApp */
.customer-wa-link{display:inline-flex;align-items:center;gap:4px;color:#16734b;text-decoration:none;font-weight:750;white-space:nowrap}
.customer-wa-link:hover{text-decoration:underline}
.local-guide{display:flex;flex-direction:column;gap:3px;min-width:145px}.local-guide code{font-weight:800}.local-guide small{font-size:10px;color:var(--muted)}
.drive-storage-card{border-color:#cddbf4;background:#f8fbff}.drive-storage-card .storage-status{margin-top:8px}
.projection-control-panel{display:block}.projection-control-panel>.filters{margin-top:12px}.projection-control-panel>.filters label{min-width:160px}
.projection-assumption-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.projection-assumption-grid>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:#fafcff}.projection-assumption-grid strong{display:block;font-size:18px;margin-top:4px}.projection-assumption-grid small{color:var(--muted)}
.projection-profit-card{border-color:#b9dec9;background:#f6fff9}.projection-profit-card .metric-value{font-size:24px}
@media(max-width:900px){.projection-assumption-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.projection-assumption-grid{grid-template-columns:1fr}.projection-control-panel>.filters label{min-width:0;width:100%}}

/* Fase 7.7 · códigos de barras */
.scan-global-btn{white-space:nowrap}
.barcode-chip{border:0;background:#f5f7fb;border-radius:8px;padding:5px 8px;cursor:pointer;color:#344054}
.barcode-chip:hover{background:#eef2f6;color:#175cd3}
.barcode-chip code{font-size:11px}
.barcode-mini-preview{display:flex;flex-direction:column;gap:6px;min-width:180px}.barcode-mini-preview>span{font-size:12px;color:var(--muted)}
.barcode-preview-small{height:46px;display:flex;align-items:center;justify-content:center;background:white;border:1px solid var(--border);border-radius:10px;padding:4px;overflow:hidden}.barcode-preview-small svg{width:100%;height:100%}.barcode-preview-small .muted{font-size:12px;color:var(--muted)}
.code128-svg{display:block;max-width:100%}.barcode-empty,.barcode-error{font-size:12px;color:var(--muted)}.barcode-error{color:#b42318}
.barcode-scanner-body,.barcode-label-body{padding:20px}.barcode-scan-input-row{display:flex;gap:10px;align-items:center}.barcode-scan-input-row input{flex:1;font-size:18px;min-height:46px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.barcode-camera-actions{display:flex;gap:8px;margin:12px 0}.barcode-camera-wrap{max-width:560px;margin:12px auto;text-align:center}.barcode-camera-wrap video{width:100%;max-height:360px;object-fit:cover;background:#111;border-radius:14px}.barcode-camera-wrap small{display:block;margin-top:6px;color:var(--muted)}
.barcode-scan-result{display:grid;gap:10px;margin-top:14px}.barcode-result-card{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--border);background:var(--surface-soft);border-radius:14px;padding:14px}.barcode-result-card h3{margin:6px 0}.barcode-result-card p{margin:4px 0;color:var(--muted)}.barcode-result-card .row-actions{flex-shrink:0}
.barcode-printable-label{width:min(520px,100%);margin:0 auto;border:1px dashed #98a2b3;border-radius:14px;padding:18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:#fff}.barcode-printable-label>strong{font-size:18px}.barcode-printable-label>span{font-size:12px;color:#475467}.barcode-label-svg{width:100%;height:96px;display:flex;align-items:center;justify-content:center}.barcode-label-svg svg{width:100%;height:100%}.barcode-printable-label>code{font-size:13px;letter-spacing:.04em}
.barcode-label-body .form-actions{justify-content:center;margin-top:16px}
@media(max-width:760px){.barcode-scan-input-row{flex-direction:column;align-items:stretch}.barcode-result-card{align-items:flex-start;flex-direction:column}.barcode-result-card .row-actions{width:100%}.barcode-result-card .row-actions button{flex:1}.barcode-scanner-body,.barcode-label-body{padding:14px}}

/* Fase 7.9 · blindaje de trazabilidad */
.integrity-banner{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;margin:0 0 12px;border:1px solid var(--border,#d9e1ea);border-radius:12px;background:#f7f9fb;font-size:13px}.integrity-banner strong{font-size:14px}.integrity-banner span{color:var(--muted,#667085)}.integrity-banner.integrity-ok{border-color:#b7dfc7;background:#f3fbf6}.integrity-banner.integrity-error{border-color:#efb6b6;background:#fff5f5}.integrity-banner.integrity-error span{color:#8f1d1d}

/* Fase 8.0 · núcleo financiero blindado */
.finance-ledger-mini,.finance-subledger{margin-top:14px;padding-top:12px;border-top:1px solid var(--border, #d9dee7)}
.finance-ledger-mini .table-wrap,.finance-subledger .table-wrap{margin-top:8px}
#financeTransactionForm select:disabled,#financeTransactionForm input[type="checkbox"]:disabled{opacity:.72;cursor:not-allowed}

.finance-integrity-panel{border-left:4px solid currentColor}.finance-integrity-panel ul{margin:0;padding-left:20px}.finance-integrity-error{font-weight:800}.finance-integrity-warning{font-weight:800}

/* Fase 8.1 · subpestañas internas y comparativos financieros */
.section-tabs{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:7px;background:#f3f6fb;border:1px solid var(--border);border-radius:14px;overflow-x:auto;scrollbar-width:thin;position:relative;z-index:2}
.section-tab-btn{appearance:none;border:1px solid transparent;background:transparent;color:#475467;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:750;white-space:nowrap;cursor:pointer;transition:.16s ease}
.section-tab-btn:hover{background:#fff;color:#1d2939;border-color:#d0d5dd}
.section-tab-btn.active{background:#fff;color:#1f4fc9;border-color:#b9c9f5;box-shadow:0 2px 8px rgba(16,24,40,.07)}
.section-tab-panel,.section-tab-bundle{animation:sectionTabFade .14s ease}
.section-tab-hidden{display:none!important}
@keyframes sectionTabFade{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}

.statement-period-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.statement-period-filters>label,.statement-period-filters>.statement-custom-range>label,.statement-period-filters>.statement-compare-custom>label{min-width:150px}
.statement-custom-range,.statement-compare-custom{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.statement-period-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:13px}
.statement-period-summary strong{color:#1d2939}.statement-period-summary span{color:var(--muted);text-align:right}
.statement-comparison{margin-top:18px;border-top:1px solid var(--border);padding-top:4px}
.statement-comparison .panel-head.compact{padding:14px 0 8px;border-bottom:0}
.statement-comparison table td,.statement-comparison table th{white-space:nowrap}
.statement-comparison table td:first-child,.statement-comparison table th:first-child{white-space:normal;min-width:210px}
.comparison-positive{color:#067647;font-weight:700}.comparison-negative{color:#b42318;font-weight:700}.comparison-neutral{color:#475467}

@media(max-width:760px){
  .section-tabs{margin-left:-2px;margin-right:-2px;border-radius:11px;position:static}
  .section-tab-btn{padding:9px 11px;font-size:12px}
  .statement-period-filters{align-items:stretch;flex-direction:column}
  .statement-period-filters>label,.statement-period-filters>.statement-custom-range>label,.statement-period-filters>.statement-compare-custom>label{width:100%;min-width:0}
  .statement-custom-range,.statement-compare-custom{width:100%;flex-direction:column;align-items:stretch}
  .statement-period-summary{align-items:flex-start;flex-direction:column}
  .statement-period-summary span{text-align:left}
}

.finance-flow-unchanged{opacity:.72;font-style:italic;}

/* Fase 8.9 · grids y bloques de costos de compra */
.form-grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.form-grid.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.purchase-cost-fieldset{background:#fbfcfe}
.purchase-cost-fieldset legend{font-size:13px}
#purchaseCostCurrencyBanner{margin-bottom:14px}
.purchase-unit-cost-help{display:block;margin-top:4px}
@media(max-width:1200px){.form-grid.cols-5,.form-grid.cols-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.form-grid.cols-5,.form-grid.cols-6{grid-template-columns:1fr}}
