*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* ── Light Content Theme — Pantone 267 (#5F249F) ── */
  --bg-deep:#F3EDFC;--bg-base:#F8F5FE;--bg-surface:#FFFFFF;--bg-elevated:#EBE1F9;--bg-hover:#E0D4F3;
  --bg-card:#FFFFFF;--bg-input:#F3EDFC;
  --border-subtle:rgba(95,36,159,.12);--border-default:rgba(95,36,159,.2);--border-strong:rgba(95,36,159,.38);
  --text-primary:#1A0D35;--text-secondary:#4A3578;--text-muted:#7A65A8;--text-faint:#A690C8;
  --text-main:#1A0D35;--text-bright:#0D0620;
  --accent:#5F249F;--accent-bright:#7B3DBF;--accent-dim:#4E1D82;--accent-glow:rgba(95,36,159,.08);
  /* ── Semantic Colors (darker for light bg) ── */
  --green:#059669;--green-bg:rgba(5,150,105,.08);--green-border:rgba(5,150,105,.22);
  --red:#DC2626;--red-bg:rgba(220,38,38,.07);--red-border:rgba(220,38,38,.18);
  --amber:#D97706;--amber-bg:rgba(217,119,6,.08);--blue:#2563EB;--blue-bg:rgba(37,99,235,.08);
  --orange:#EA580C;--orange-bg:rgba(234,88,12,.08);
  --pink:#DB2777;--pink-bg:rgba(219,39,119,.08);--pink-border:rgba(219,39,119,.2);
  --radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;
  --shadow-sm:0 1px 3px rgba(95,36,159,.08);--shadow-md:0 4px 16px rgba(95,36,159,.12);--shadow-lg:0 8px 32px rgba(95,36,159,.16);
  --transition:150ms cubic-bezier(.4,0,.2,1);
}
body{min-height:100vh;background:var(--bg-deep);color:var(--text-primary);font-family:'Outfit',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}
/* ═══ APP SHELL LAYOUT ═══ */
.app-wrap{display:none;flex-direction:row;min-height:100vh}
.app-wrap.authed{display:flex}
#mainWrapper{flex:1;display:flex;flex-direction:column;min-width:0;overflow:auto;background:var(--bg-deep);margin-left:0}
/* ═══ SIDEBAR (hidden — replaced by button menu) ═══ */
#sidebar{display:none!important}

/* ═══ TOPBAR ═══ */
.topbar{position:sticky;top:0;z-index:50;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:0 20px;height:52px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}
.topbar-left{display:flex;align-items:center;gap:12px}
.topbar-logo{display:flex;align-items:center;cursor:pointer}
.topbar-logo svg{height:18px;width:auto;fill:var(--accent)}
.topbar-divider{width:1px;height:24px;background:var(--border-subtle);margin:0 4px}
.topbar-title{font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}
.topbar-right{display:flex;align-items:center;gap:10px}
.status-pill{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:var(--bg-elevated);border:1px solid var(--border-subtle);font-size:11px;font-weight:500;color:var(--text-muted)}
.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status-dot.on{background:var(--green);box-shadow:0 0 6px rgba(5,150,105,.4)}
.status-dot.off{background:var(--red);box-shadow:0 0 6px rgba(220,38,38,.3)}
.topbar-btn{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;color:var(--text-muted);transition:all var(--transition);display:flex;align-items:center;gap:6px;font-family:inherit;font-size:12px;font-weight:500}
.topbar-btn:hover{border-color:var(--border-strong);color:var(--text-secondary);background:var(--bg-hover)}

/* ═══ MAIN LAYOUT ═══ */
.main{padding:20px 22px 60px;flex:1}

/* ═══ CONFIG BAR ═══ */
.config-bar{display:flex;gap:14px;margin-bottom:22px;flex-wrap:wrap;animation:slideDown .25s ease-out}
.config-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 20px;flex:1;min-width:260px}
.config-card label{font-size:10px;font-weight:600;color:var(--text-muted);display:block;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}
.config-row{display:flex;gap:10px;align-items:center}
.cfg-input{flex:1;padding:9px 12px;background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;font-family:'IBM Plex Mono',monospace;transition:border-color var(--transition)}
.cfg-input:focus{outline:none;border-color:var(--accent)}
.badge{padding:7px 14px;border-radius:20px;font-size:10px;font-weight:600;display:flex;align-items:center;gap:5px;white-space:nowrap;letter-spacing:.3px;text-transform:uppercase}
.badge.ok{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.badge.err{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}

/* ═══ NAV TABS ═══ */
.nav{display:flex;gap:2px;margin-bottom:24px;background:var(--bg-surface);border-radius:var(--radius-md);padding:3px;border:1px solid var(--border-subtle);width:fit-content;flex-wrap:wrap}
.nav-tab{padding:8px 16px;border-radius:calc(var(--radius-md) - 2px);border:none;background:none;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all var(--transition);white-space:nowrap;position:relative}
.nav-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}
.nav-tab.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(95,36,159,.3)}
.nav-tab .count{font-size:9px;background:rgba(255,255,255,.15);padding:1px 6px;border-radius:10px;margin-left:5px;font-weight:600}
.nav-tab:not(.active) .count{background:rgba(255,255,255,.06)}

/* ═══ UPLOAD ZONE ═══ */
.drop-zone{border:1.5px dashed var(--border-default);border-radius:var(--radius-xl);padding:48px 24px;text-align:center;cursor:pointer;margin-bottom:24px;background:var(--bg-surface);transition:all .2s}
.drop-zone:hover,.drop-zone.active{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 40px rgba(95,36,159,.06)}
.drop-icon{font-size:32px;margin-bottom:12px;opacity:.7}
.drop-text{color:var(--text-secondary);font-size:15px;font-weight:500}.drop-text span{color:var(--accent-bright);text-decoration:none;border-bottom:1px solid var(--accent-bright)}
.drop-sub{color:var(--text-faint);font-size:12px;margin-top:8px;font-weight:400}

/* ═══ FILE QUEUE ═══ */
.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.chip{display:flex;align-items:center;gap:6px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 10px;font-size:11px;animation:fadeIn .2s}
.chip .name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}
.chip .tag{font-size:9px;padding:2px 6px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.tag-dhl{background:var(--amber-bg);color:var(--amber)}.tag-transmar{background:var(--blue-bg);color:var(--blue)}
.tag-predec{background:var(--green-bg);color:var(--green)}.tag-corredor{background:var(--pink-bg);color:var(--pink)}
.tag-unknown{background:rgba(148,163,184,.08);color:#94a3b8}
.chip .st{font-size:10px}
.st-pending{color:var(--text-faint)}.st-uploading{color:var(--blue);animation:pulse 1.2s infinite}
.st-processing{color:var(--amber);animation:pulse 1.2s infinite}.st-done{color:var(--green)}.st-error{color:var(--red)}
.chip .rm{color:var(--text-faint);cursor:pointer;font-size:14px;background:none;border:none;line-height:1;padding:0 2px}.chip .rm:hover{color:var(--red)}

/* ═══ BUTTONS ═══ */
.btn-row{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;align-items:center}
.btn{padding:8px 18px;border-radius:var(--radius-sm);border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition);letter-spacing:-.1px}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(95,36,159,.25)}
.btn-primary:hover{background:var(--accent-bright);box-shadow:0 4px 12px rgba(95,36,159,.35)}
.btn-primary:disabled{background:var(--bg-elevated);color:var(--text-faint);cursor:not-allowed;transform:none;box-shadow:none}
.btn-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.btn-green:hover{background:rgba(52,211,153,.15)}
.btn-ghost{background:none;color:var(--text-muted);border:1px solid var(--border-subtle)}
.btn-ghost:hover{border-color:var(--border-strong);color:var(--text-secondary)}
.btn-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}

/* ═══ PROGRESS ═══ */
.progress{height:2px;background:var(--bg-elevated);border-radius:2px;margin-bottom:16px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-bright));transition:width .3s;border-radius:2px}

/* ═══ TABLES ═══ */
.tw{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);animation:fadeIn .25s;box-shadow:var(--shadow-sm)}
/* Sticky action column for the users table so Editar/✕ stay visible
   even when the permissions column overflows horizontally. */
#cfgUsersTable table th:last-child,
#cfgUsersTable table td:last-child{position:sticky;right:0;background:var(--bg-surface);box-shadow:-6px 0 8px -4px rgba(0,0,0,.08);z-index:2}
table{width:max-content;min-width:100%;border-collapse:collapse;font-size:11px;font-family:'IBM Plex Mono',monospace}
thead th{position:sticky;top:0;z-index:2;background:var(--accent-dim);color:#EDE9FE;font-weight:600;padding:10px 14px;text-align:left;white-space:nowrap;border-bottom:1px solid rgba(95,36,159,.3);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
tbody td{padding:8px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);white-space:nowrap;transition:background var(--transition)}
tbody tr:hover td{background:var(--accent-glow)}
tbody tr.selected td{background:rgba(95,36,159,.07)}
td.num{text-align:right;font-variant-numeric:tabular-nums}
td.fc{color:var(--accent-bright);font-weight:500}
td .link{color:var(--blue);text-decoration:none;font-size:10px;opacity:.7;transition:opacity var(--transition)}td .link:hover{opacity:1}
.row-check{accent-color:var(--accent);cursor:pointer}

/* ═══ REPORT CARDS ═══ */
.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,auto));gap:10px;margin-bottom:22px}
.rcard{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 18px;transition:border-color var(--transition)}
.rcard:hover{border-color:var(--border-default)}
.rcard-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}
.rcard-value{font-size:22px;font-weight:700;font-family:'IBM Plex Mono',monospace;letter-spacing:-.5px}
.rcard-sub{font-size:10px;color:var(--text-faint);margin-top:4px;font-family:'Outfit',sans-serif}
.val-dhl{color:var(--amber)}.val-tm{color:var(--blue)}.val-pd{color:var(--green)}.val-ca{color:var(--pink)}
.val-ok{color:var(--green)}.val-warn{color:var(--red)}.val-white{color:var(--text-primary)}.val-faint{color:var(--text-faint)}
.match{color:var(--green);font-weight:600;font-size:10px}.mismatch{color:var(--red);font-weight:600;font-size:10px}.missing{color:var(--text-muted);font-size:10px}

/* ═══ SUMMARY CARDS ═══ */
.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px}

/* ═══ R3 SOURCE COLORS ═══ */
th.src-dhl{color:var(--amber);border-bottom:2px solid var(--amber)!important}
th.src-tm{color:var(--blue);border-bottom:2px solid var(--blue)!important}
th.src-pd{color:var(--green);border-bottom:2px solid var(--green)!important}
th.src-ca{color:var(--pink);border-bottom:2px solid var(--pink)!important}
th.src-ex{color:var(--amber);border-bottom:2px solid var(--amber)!important}
th.src-mix{color:var(--text-primary);border-bottom:2px solid var(--accent)!important}
td.src-dhl{color:var(--amber)}
td.src-tm{color:var(--blue)}
td.src-pd{color:var(--green)}
td.src-ca{color:var(--pink)}
.r3-legend{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.r3-legend span{font-size:10px;font-weight:600;display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.5px}
.r3-legend span::before{content:'';width:8px;height:8px;border-radius:2px;display:inline-block}
.r3-legend .lg-dhl::before{background:var(--amber)}
.r3-legend .lg-tm::before{background:var(--blue)}
.r3-legend .lg-pd::before{background:var(--green)}
.r3-legend .lg-ca::before{background:var(--pink)}

/* ═══ FILE LINKS IN REPORTS ═══ */
.file-links{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}
.file-links a{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:3px;font-size:9px;font-weight:600;text-decoration:none;letter-spacing:.3px;transition:all var(--transition);white-space:nowrap}
.file-links a:hover{filter:brightness(1.3);transform:translateY(-1px)}
.fl-dhl{background:rgba(251,191,36,.12);color:var(--amber);border:1px solid rgba(251,191,36,.2)}
.fl-tm{background:rgba(96,165,250,.12);color:var(--blue);border:1px solid rgba(96,165,250,.2)}
.fl-pd{background:rgba(52,211,153,.12);color:var(--green);border:1px solid rgba(52,211,153,.2)}
.fl-ca{background:rgba(244,114,182,.12);color:var(--pink);border:1px solid rgba(244,114,182,.2)}

/* ═══ EDIT UI ═══ */
.edit-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}
.edit-panel{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:min(520px,92vw);max-height:80vh;display:flex;flex-direction:column}
.edit-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}
.edit-hd h3{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--text-primary)}
.edit-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px}
.edit-fields{padding:16px 20px;overflow-y:auto;flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.edit-field label{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.edit-field input,.edit-field select{width:100%;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}
.edit-field input:focus{outline:none;border-color:var(--accent)}
.edit-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border-subtle)}
.btn-edit{background:none;border:none;color:var(--text-faint);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s}
.btn-edit:hover{color:var(--accent);background:rgba(95,36,159,.1)}
.edited-mark{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);margin-right:4px;vertical-align:middle;title:Edited}
.btn-refresh{font-size:11px;padding:4px 10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}
.btn-refresh:hover{color:var(--accent);border-color:var(--accent)}
.compact-table td,.compact-table th{padding:4px 8px;font-size:11px}
.compact-table tbody tr:hover{background:var(--bg-elevated)}
.btn-expand{background:none;border:none;color:var(--text-faint);font-size:9px;cursor:pointer;padding:2px 4px;border-radius:3px;transition:all .15s;line-height:1}
.btn-expand:hover,.btn-expand.expanded{color:var(--accent)}
.row-expand td{padding:0!important;border-top:none!important}
.row-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 14px;padding:10px 14px;background:var(--bg-deep);border-left:3px solid var(--accent)}
.rd-label{display:block;font-size:9px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:1px}
.rd-val{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono)}
.scard{background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;transition:border-color var(--transition)}
.scard:hover{border-color:var(--border-default)}
.scard-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-weight:500}
.scard-val{font-size:16px;font-weight:700;font-family:'IBM Plex Mono',monospace}
.audit-ok{background:var(--green-bg);border-color:var(--green-border)!important}
.audit-warn{background:var(--red-bg);border-color:var(--red-border)!important}

/* ═══ SECTIONS ═══ */
.section-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.section-title{font-size:15px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}
.record-ct{font-size:13px;color:var(--text-muted);font-weight:500}
.empty{text-align:center;padding:72px 24px;color:var(--text-faint)}
.empty-icon{font-size:36px;margin-bottom:14px;opacity:.4}
.hidden{display:none!important}

/* ═══ COLUMN PICKER ═══ */
.col-picker-wrap{position:relative;display:inline-block}
.col-picker-btn{padding:7px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit;transition:all var(--transition)}
.col-picker-btn:hover{border-color:var(--border-strong);color:var(--text-secondary)}
.col-picker-dd{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:8px;z-index:100;max-height:380px;overflow-y:auto;min-width:210px;box-shadow:var(--shadow-lg)}
.col-picker-dd label{display:flex;align-items:center;gap:7px;padding:5px 8px;font-size:11px;color:var(--text-secondary);cursor:pointer;border-radius:4px;white-space:nowrap;transition:background var(--transition)}
.col-picker-dd label:hover{background:var(--accent-glow)}
.col-picker-dd input{accent-color:var(--accent)}

/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:500;z-index:999;transition:all .3s;backdrop-filter:blur(12px)}
.toast.error{background:rgba(28,15,31,.9);color:var(--red);border:1px solid var(--red-border)}
.toast.success{background:rgba(15,31,23,.9);color:var(--green);border:1px solid var(--green-border)}


/* ═══ MAIN MENU ═══ */
.menu-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:40px 24px;animation:fadeIn .4s ease-out}
.menu-logo{margin-bottom:8px;opacity:.9}
.menu-logo svg{height:38px;width:auto}
.menu-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:40px;font-weight:400;letter-spacing:-.2px}
.menu-grid{display:flex;flex-direction:column;gap:12px;width:100%;max-width:480px}
.menu-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:22px 28px;text-align:left;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between}
.menu-card:hover{border-color:var(--accent);box-shadow:0 4px 20px rgba(95,36,159,.12);background:var(--bg-hover)}
.menu-card-icon{display:none}
.menu-card-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px;letter-spacing:-.2px}
.menu-card-desc{font-size:11px;color:var(--text-muted);font-weight:400}
.menu-card-arrow{color:var(--text-faint);font-size:16px;font-weight:300;transition:transform .2s}
.menu-card:hover .menu-card-arrow{transform:translateX(3px);color:var(--accent)}
.menu-badge{position:absolute;top:12px;right:12px;padding:3px 10px;border-radius:12px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:none}
.badge-active{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.badge-soon{background:rgba(148,163,184,.08);color:#94a3b8;border:1px solid rgba(148,163,184,.15)}
.menu-card-migrate{border-color:var(--amber);background:rgba(217,119,6,.04)}
.menu-card-migrate .menu-card-title{color:var(--amber)}
.menu-card-migrate .menu-card-desc{color:var(--amber);opacity:.7}
.menu-card-migrate:hover{border-color:var(--amber);box-shadow:0 4px 20px rgba(217,119,6,.12)}
.submenu-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:40px 24px;animation:fadeIn .3s ease-out}
.submenu-back{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;margin-bottom:32px;transition:color .15s;background:none;border:none;font-family:inherit}
.submenu-back:hover{color:var(--accent)}
.submenu-title{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:6px;letter-spacing:-.3px}
.submenu-desc{font-size:13px;color:var(--text-muted);margin-bottom:36px}
.uc-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:40px 24px;text-align:center;animation:fadeIn .3s}
.uc-icon{font-size:64px;margin-bottom:20px;opacity:.5}
.uc-title{font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:8px}
.uc-desc{font-size:13px;color:var(--text-muted);max-width:360px;margin-bottom:24px}
.admin-badge{font-size:8px;padding:2px 6px;border-radius:8px;background:rgba(251,191,36,.12);color:var(--amber);border:1px solid rgba(251,191,36,.2);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-left:6px}
.screen{animation:fadeIn .3s ease-out}

/* ═══ ANIMATIONS ═══ */
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ═══ SCROLLBAR ═══ */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}

/* ═══ LOGIN SCREEN ═══ */
.login-overlay{position:fixed;inset:0;z-index:200;background:#1A0D35;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s}
.login-card{width:100%;max-width:380px;padding:40px 36px;background:#2D1560;border:1px solid rgba(95,36,159,.3);border-radius:var(--radius-xl);box-shadow:0 24px 80px rgba(0,0,0,.5)}
.login-logo{text-align:center;margin-bottom:28px}
.login-logo svg{height:30px;width:auto;opacity:.9}
.login-subtitle{text-align:center;font-size:13px;color:var(--text-muted);margin-top:10px;font-weight:400}
.login-field{margin-bottom:16px}
.login-field label{display:block;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.login-field input{width:100%;padding:11px 14px;background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:'Outfit',sans-serif;transition:border-color var(--transition)}
.login-field input:focus{outline:none;border-color:var(--accent)}
.login-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition);margin-top:4px}
.login-btn:hover{background:var(--accent-bright);box-shadow:0 4px 12px rgba(95,36,159,.35)}
.login-btn:disabled{background:var(--bg-elevated);color:var(--text-faint);cursor:wait}
.login-error{color:var(--red);font-size:12px;text-align:center;margin-top:12px;min-height:18px}
.login-footer{text-align:center;margin-top:20px;font-size:11px;color:var(--text-faint)}
/* (app-wrap defined above in layout section) */

/* ═══ USER MENU ═══ */
.user-pill{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:20px;background:var(--bg-surface);border:1px solid var(--border-subtle);font-size:11px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}
.user-pill:hover{border-color:var(--border-strong);color:var(--text-secondary)}
.user-pill svg{opacity:.6}
.logout-btn{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px 12px;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit;transition:all var(--transition)}
.logout-btn:hover{border-color:var(--red-border);color:var(--red);background:var(--red-bg)}
.session-indicator{font-size:10px;color:var(--text-faint);display:flex;align-items:center;gap:4px}
/* ═══ FLETES INTERNACIONALES ═══ */
.f-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.f-stat{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 16px}
.f-stat-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}
.f-stat-val{font-size:22px;font-weight:700;font-family:'IBM Plex Mono',monospace;color:var(--text-primary);letter-spacing:-.5px}
.f-stat-sub{font-size:11px;color:var(--text-faint);margin-top:3px}
.f-portex-input{background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 8px;font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--text-primary);width:100px;text-align:right;outline:none;transition:border-color var(--transition)}
.f-portex-input:focus{border-color:var(--accent)}
.f-portex-input::placeholder{color:var(--text-faint)}
.f-container-rec{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:20px}
.f-bar{height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden}
.f-bar-fill{height:100%;border-radius:3px;background:var(--green);transition:width .5s ease}
.f-bar-fill.warn{background:var(--amber)}
.f-bar-fill.danger{background:var(--red)}
.f-spinner{width:16px;height:16px;border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.f-client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.f-client-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;transition:border-color var(--transition)}
.f-client-card:hover{border-color:var(--border-default)}
.f-client-avatar{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}
.f-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-detail-table{width:100%;font-size:11px;font-family:'IBM Plex Mono',monospace;border-collapse:collapse}
.f-detail-table th{padding:6px 10px;text-align:left;font-size:9px;font-weight:600;color:var(--text-muted);background:var(--bg-elevated);text-transform:uppercase;letter-spacing:.5px}
.f-detail-table td{padding:5px 10px;border-bottom:1px solid var(--border-subtle)}
@media(max-width:768px){.f-stats{grid-template-columns:1fr 1fr}.f-detail-grid{grid-template-columns:1fr}.f-client-grid{grid-template-columns:1fr}}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield}

/* ═══════════════════════════════════════════════════════════════════════
   VENTAS MODULE
   Variable aliases bridge the old lidicevancouver (dark navy) tokens to
   Portex's light purple theme. All selectors are scoped to #screen_ventas
   so they can't leak into the rest of the app.
   ═══════════════════════════════════════════════════════════════════════ */
#screen_ventas{
  --navy:var(--bg-surface);
  --navy-deep:var(--bg-elevated);
  --navy-light:var(--bg-hover);
  --navy-mid:var(--border-default);
  --white:var(--text-bright);
  --g300:var(--text-primary);
  --g400:var(--text-secondary);
  --g500:var(--text-muted);
  --g600:var(--text-muted);
  --g700:var(--text-faint);
  --yellow:var(--amber);
  --orange-light:var(--orange);
  --orange-glow:var(--orange-bg);
}

/* Horizontal tab bar replacing the original sidebar */
#screen_ventas .ventas-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}
#screen_ventas .nav-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition);font-family:inherit}
#screen_ventas .nav-btn:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-bright)}
#screen_ventas .nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 6px rgba(95,36,159,.22)}
#screen_ventas .nav-btn.active svg{stroke:#fff}
#screen_ventas .nav-btn svg{flex-shrink:0}

/* Cards & layout primitives used throughout ventas.js */
#screen_ventas .card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm)}
#screen_ventas .card h3{margin-bottom:10px}
#screen_ventas .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#screen_ventas .kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}
#screen_ventas .kpi-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm)}
#screen_ventas .kpi-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
#screen_ventas .kpi-val{font-size:22px;font-weight:700;color:var(--text-bright);letter-spacing:-.5px}
#screen_ventas .kpi-sub{font-size:11px;color:var(--text-faint)}
#screen_ventas .stats-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
#screen_ventas .section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.1px}

/* Form controls */
#screen_ventas .input,#screen_ventas input.input,#screen_ventas select.input,#screen_ventas textarea.input{width:100%;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;font-family:inherit;transition:border-color var(--transition)}
#screen_ventas .input:focus{outline:none;border-color:var(--accent);background:var(--bg-surface)}
#screen_ventas .label{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}

/* Buttons the module uses that Portex doesn't define */
#screen_ventas .btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default)}
#screen_ventas .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}
#screen_ventas .btn-sm{padding:5px 10px;font-size:11px}

/* Tables */
#screen_ventas .table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card)}
#screen_ventas .table-wrap table{width:100%;border-collapse:collapse;font-size:12px}
#screen_ventas .table-wrap th{padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-elevated);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle)}
#screen_ventas .table-wrap td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}
#screen_ventas .table-wrap tr:hover td{background:var(--bg-hover)}

/* Alert cards (used in dashboards) */
#screen_ventas .alert-card{padding:12px 14px;border-radius:var(--radius-md);border:1px solid;margin-bottom:8px;font-size:12px}
#screen_ventas .alert-info{background:var(--blue-bg);border-color:rgba(37,99,235,.22);color:var(--blue)}
#screen_ventas .alert-warn{background:var(--amber-bg);border-color:rgba(217,119,6,.22);color:var(--amber)}
#screen_ventas .alert-danger{background:var(--red-bg);border-color:var(--red-border);color:var(--red)}

/* Badges */
#screen_ventas .badge-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border);padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600}
#screen_ventas .badge-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border);padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600}

/* Misc */
#screen_ventas .mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
#screen_ventas .search-box{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);max-width:300px}
#screen_ventas .search-box input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:12px;font-family:inherit}
#screen_ventas .client-pick-item{padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border-subtle);font-size:12px}
#screen_ventas .client-pick-item:hover{background:var(--bg-hover)}

/* Responsive */
@media(max-width:900px){#screen_ventas .grid-2{grid-template-columns:1fr}}
