/* --- NUEVOS DISEÑOS --- */
body.dark-mode { background-color: #0b132b !important; color: #e0e6ed !important; }
body.dark-mode .card, body.dark-mode .modal { background-color: #1c2541 !important; color: #e0e6ed !important; border: 1px solid #3a506b !important; }
body.dark-mode input, body.dark-mode select { background-color: #0b132b !important; color: #ffffff !important; }

.etiqueta { padding: 3px 8px; border-radius: 12px; font-weight: 600; font-size: 11px; display: inline-block; }
.etiqueta-tinaco { background: #dbeafe; color: #1e40af; }
.etiqueta-tambo { background: #ffedd5; color: #c2410c; }
.etiqueta-merma { background: #fee2e2; color: #991b1b; }

#fab-container { position: fixed; bottom: 20px; right: 20px; z-index: 1000; }
.fab-btn { width: 60px; height: 60px; border-radius: 50%; background: #0a3d78; color: white; border: none; font-size: 24px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
#fab-menu { display: none; flex-direction: column; gap: 10px; margin-bottom: 15px; }

    :root{
      --bg:#091d3f;
      --panel:#ffffff;
      --line:#bed0ea;
      --text:#142032;
      --muted:#5e6e85;
      --brand:#0a3d78;
      --brand-2:#1459a7;
      --brand-3:#4da3ff;
      --accent:#e3f0ff;
      --success:#1f8f55;
      --warning:#d97706;
      --danger:#c73939;
      --shadow:0 14px 28px rgba(3,17,45,.12);
      --radius:18px;
    }
    *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
    body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:linear-gradient(180deg,#081a38 0%,#0f2f63 24%,#eaf1fb 24.2%,#e7eef8 100%);color:var(--text);overflow-x:hidden;padding-top:env(safe-area-inset-top);}
    .app-shell{max-width:1280px;margin:0 auto;min-height:100vh;display:flex;gap:16px;padding:16px;padding-top:calc(16px + env(safe-area-inset-top));overflow-x:hidden;}
    .side-nav{width:250px;background:linear-gradient(180deg,#071a38,#0d2f61 58%,#1358a5);border-radius:24px;padding:18px;color:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;position:sticky;top:16px;height:calc(100vh - 32px)}
    .brand{display:flex;gap:12px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14)}
    .brand-badge{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#61b8ff,#d9edff);display:flex;align-items:center;justify-content:center;color:#0b3c72;font-weight:900;box-shadow:inset 0 2px 8px rgba(255,255,255,.6)}
    .brand h1{font-size:18px;line-height:1.1;margin:0;font-weight:900;letter-spacing:.4px}
    .brand small{display:block;color:#d5e7ff;font-weight:600;margin-top:2px}
    .nav-list{display:flex;flex-direction:column;gap:10px}
    .nav-btn{width:100%;border:none;border-radius:14px;padding:14px 14px;background:rgba(255,255,255,.08);color:#fff;text-align:left;font-size:14px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:10px;transition:.2s}
    .nav-btn.active,.nav-btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
    .nav-hint{margin-top:auto;background:rgba(255,255,255,.08);padding:14px;border-radius:16px;font-size:12px;color:#dcecff;line-height:1.4}
    .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
    .topbar{display:none !important}
    .topbar h2{margin:0;font-size:24px;font-weight:900;letter-spacing:.3px}
    .topbar p{margin:6px 0 0;color:#d7ebff;font-size:13px}
    .pill-row{display:flex;gap:10px;flex-wrap:wrap}
    .pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}
    .mobile-tabs{display:none;gap:8px;overflow:auto;padding:10px 4px 4px;border-radius:18px;background:linear-gradient(180deg,#0b2752,#10386f);box-shadow:var(--shadow)}
    .mobile-tab{border:none;background:#fff;color:var(--brand);padding:12px 14px;border-radius:14px;font-weight:800;white-space:nowrap;box-shadow:0 10px 16px rgba(5,22,53,.16)}
    .mobile-tab.active{background:var(--brand);color:#fff}
    .tab-panel{display:none;gap:16px}
    .tab-panel.active{display:grid}
    .grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
    .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
    .card{background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);border:1px solid #c7d8ef;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;overflow:hidden}
    .card h3{margin:0 0 12px;color:var(--brand);font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .subtle{font-size:12px;color:var(--muted)}
    .row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
    .form-group{flex:1;min-width:180px}
    .form-group label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:5px}
    .form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 12px;border:1px solid #c8d8ea;border-radius:12px;background:#f9fbfe;font-size:14px;color:var(--text)}
    .form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3e85d1;box-shadow:0 0 0 3px rgba(66,133,210,.12)}
    .btn{border:none;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:900;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
    .btn:hover{transform:translateY(-1px)}
    .btn-primary{background:linear-gradient(120deg,#0c3f7b,#1c63b4);color:#fff}
    .btn-secondary{background:linear-gradient(180deg,#f5f9ff,#e9f2ff);color:var(--brand);border:1px solid #cfe1f5}
    .btn-success{background:linear-gradient(120deg,#228b58,#2ea568);color:#fff}
    .btn-warning{background:linear-gradient(120deg,#d67a12,#eb9a2d);color:#fff}
    .btn-danger{background:linear-gradient(120deg,#bb3838,#d84d4d);color:#fff}
    .btn-block{width:100%}
    .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
    .stat{background:linear-gradient(180deg,#fff,#f6faff);border:1px solid var(--line);border-radius:16px;padding:14px}
    .stat strong{display:block;color:var(--brand);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
    .stat span{display:block;margin-top:6px;font-size:22px;font-weight:900}
    table{width:100%;border-collapse:collapse}
    .table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff;max-width:100%}
    .db-table th,.db-table td{padding:10px 8px;border-bottom:1px solid #e6edf6;font-size:12px;text-align:left;vertical-align:top}
    .db-table th{background:linear-gradient(180deg,#0f477f,#165a9d);color:#fff;position:sticky;top:0;z-index:1;white-space:nowrap}
    .badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900;background:#eaf2ff;color:#0f4f91}
    .status-ok{color:#167a49;font-weight:900}
    .status-low{color:#c46c04;font-weight:900}
    .status-bad{color:#bf2f2f;font-weight:900}
    .mini-note{padding:10px 12px;border-radius:12px;background:#eef6ff;color:var(--brand);font-size:12px;font-weight:700}
    .chart-bars{display:flex;gap:12px;align-items:flex-end;min-height:245px;padding:14px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fbfdff}
    .bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:108px;height:100%;padding-top:6px}
    .bar-meta{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:flex-end;min-height:56px;margin-bottom:8px}
    .bar-chip{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:999px;background:#eef5ff;border:1px solid #cbdcf1;color:#11447d;font-size:10px;font-weight:900;white-space:nowrap;line-height:1}
    .bar-chip.prod{background:#fff5e7;border-color:#efd3a8;color:#a86403}
    .bar{width:62px;border-radius:14px 14px 0 0;color:#fff;font-size:10px;font-weight:900;display:flex;justify-content:center;align-items:flex-start;padding-top:6px;box-shadow:0 6px 12px rgba(0,0,0,.15)}
    .bar.sales{background:linear-gradient(180deg,#1a73c9,#4dabff)}
    .bar.prod{background:linear-gradient(180deg,#cf7b16,#f3ac39)}
    .bar-label{margin-top:8px;font-size:11px;font-weight:900;text-align:center;color:var(--text)}
    .bar-sub{margin-top:3px;font-size:10px;font-weight:800;color:var(--muted);text-align:center;line-height:1.15}
    .check-row{display:flex;gap:14px;flex-wrap:wrap;background:#f4f8fd;border:1px solid var(--line);padding:12px;border-radius:12px;margin-top:10px}
    .check-row label{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:800}
    .split{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}
    .inventory-header{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
    .summary-box{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
    .summary-item{background:#f7fbff;border:1px solid #d8e6f7;border-radius:14px;padding:12px}
    .summary-item strong{display:block;font-size:11px;color:var(--muted)}
    .summary-item span{display:block;margin-top:6px;font-size:18px;font-weight:900}
    .inventory-table th,.inventory-table td{padding:9px 8px;border-bottom:1px solid #e6edf6;font-size:12px;text-align:left;white-space:nowrap}
    .inventory-table th{background:linear-gradient(180deg,#0f477f,#165a9d);color:#fff;position:sticky;top:0;z-index:1}
    .inventory-table input{width:88px;min-width:78px;padding:8px;border:1px solid #c6d8ed;border-radius:10px;background:#fff}
    .inventory-table select{width:92px;min-width:82px;padding:8px;border:1px solid #c6d8ed;border-radius:10px;background:#fff}
    .inventory-monthly-table-wrap{display:block}
    .inventory-accordion{display:none;margin-top:12px}
    .inv-accordion-item{border:1px solid #d6e4f5;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(10,31,68,.06);margin-bottom:10px;overflow:hidden}
    .inv-accordion-head{width:100%;border:none;background:linear-gradient(180deg,#ffffff,#f6fbff);padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}
    .inv-accordion-head-left{min-width:0;flex:1}
    .inv-accordion-title{font-weight:900;color:var(--brand);font-size:13px;line-height:1.2}
    .inv-accordion-sub{margin-top:3px;font-size:11px;color:var(--muted);line-height:1.25}
    .inv-accordion-chip{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:7px 10px;border-radius:999px;background:#eef5ff;color:#11447d;font-size:11px;font-weight:900}
    .inv-accordion-chip.ok{background:#e9f8ef;color:#14683f}
    .inv-accordion-chip.low{background:#fff5e8;color:#b96a00}
    .inv-accordion-chip.bad{background:#fff0f0;color:#b43636}
    .inv-accordion-body{padding:12px 14px;border-top:1px solid #edf3fa;background:#fbfdff}
    .inv-accordion-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .inv-field{background:#fff;border:1px solid #dbe7f4;border-radius:12px;padding:10px}
    .inv-field strong{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}
    .inv-field span{display:block;font-size:14px;font-weight:900;color:var(--text)}
    .inv-field input,.inv-field select{width:100%;padding:10px;border:1px solid #c6d8ed;border-radius:10px;background:#fff;font-size:15px}
    .inv-field.full{grid-column:1/-1}
    .section-title{margin:14px 0 10px;font-size:13px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.5px}
    .history-chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
    .history-item{border:1px solid #dbe6f4;background:#f8fbff;padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.4}

    
    .history-accordion{display:none;margin-top:12px}
    .history-acc-item{border:1px solid #d6e4f5;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(10,31,68,.06);margin-bottom:10px;overflow:hidden}
    .history-acc-head{width:100%;border:none;background:linear-gradient(180deg,#ffffff,#f6fbff);padding:12px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}
    .history-acc-left{min-width:0;flex:1}
    .history-acc-title{font-weight:900;color:var(--brand);font-size:13px;line-height:1.2}
    .history-acc-sub{margin-top:4px;font-size:11px;color:var(--muted);line-height:1.3}
    .history-acc-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;background:#eaf2ff;color:#0f4f91;white-space:nowrap}
    .history-acc-body{display:none;padding:0 14px 12px}
    .history-acc-item.open .history-acc-body{display:block}
    .history-acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .history-field{background:#f8fbff;border:1px solid #dbe7f5;border-radius:12px;padding:10px}
    .history-field.full{grid-column:1/-1}
    .history-field strong{display:block;font-size:11px;color:var(--brand);margin-bottom:4px}
.manual-add-box{margin-top:12px;padding:12px;border:1px dashed #c6d8ed;border-radius:14px;background:#f8fbff}
    .manual-add-title{font-size:12px;font-weight:900;color:var(--brand);margin:0 0 8px}
    .table-wrap table{min-width:640px}

    .import-box{margin-top:12px;padding:14px;border:1px solid #c6d8ed;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#eef5ff)}
    .import-box h4{margin:0 0 10px;color:var(--brand);font-size:14px;font-weight:900}
    .price-box{margin-top:12px;padding:14px;border:1px solid #c6d8ed;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#edf6ff)}
    .price-box h4{margin:0 0 10px;color:var(--brand);font-size:14px;font-weight:900}
    .price-table input{width:92px;min-width:78px;padding:8px;border:1px solid #c6d8ed;border-radius:10px;background:#fff;font-size:12px;text-align:right}
    .price-active-note{font-size:12px;font-weight:800;color:var(--muted);margin-top:8px}
    .toast-sync{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:9999;background:linear-gradient(120deg,#0d3c77,#1c64b5);color:#fff;padding:10px 16px;border-radius:999px;box-shadow:0 12px 24px rgba(5,22,53,.25);font-weight:900;font-size:13px;opacity:0;pointer-events:none;transition:opacity .25s ease, transform .25s ease}
    .toast-sync.show{opacity:1;transform:translateX(-50%) translateY(0)}
    .soft-blue{background:linear-gradient(180deg,#0d3970,#145aa8) !important;color:#fff !important;border:none !important}
    .soft-blue-outline{background:#eef5ff;border:1px solid #c7d9ef;color:#0d447d}


    .section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed #c8d8eb}
    .section-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.4px;text-transform:uppercase;background:#eef5ff;color:#12437d;border:1px solid #c9daf0}
    .section-kicker.tinacos{background:#eaf4ff;color:#0d4a89;border-color:#bdd8f8}
    .section-kicker.tambos{background:#fff3e6;color:#b96a00;border-color:#f0d2aa}
    .section-kicker.produccion{background:#e9fbff;color:#0a6f92;border-color:#bce7f0}
    .section-kicker.mermas{background:#fff0f0;color:#b23737;border-color:#f0c1c1}
    .section-kicker.gastos{background:#f6efff;color:#6d3bb0;border-color:#dbc6ff}
    .pending-card{margin-top:18px;overflow:visible}
    .pending-scroll-hint{margin:10px 0 0;font-size:12px;font-weight:800;color:var(--muted)}
    .pending-card .table-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border-radius:18px}
    .pending-card h3{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
    .pending-meta{font-size:12px;color:var(--muted);font-weight:800}
    .pending-table td,.pending-table th{font-size:12px}
    .pending-scroll-wrap{overflow-x:auto !important;overflow-y:hidden;max-width:100%;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff}
    .pending-scroll-wrap .pending-table{min-width:980px;width:max-content;table-layout:auto}
    .pending-empty{padding:18px;text-align:center;color:var(--muted);font-weight:700}
    .pending-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
    .pending-chip.tinacos{background:#eaf4ff;color:#0d4a89}
    .pending-chip.tambos{background:#fff3e6;color:#b96a00}
    .pending-chip.produccion{background:#e9fbff;color:#0a6f92}
    .pending-chip.mermas{background:#fff0f0;color:#b23737}
    .pending-chip.gastos{background:#f6efff;color:#6d3bb0}

    /* --- Reportes gerenciales --- */
    .gerencial-quick{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
    .gerencial-quick .btn{padding:10px 12px;font-size:12px}
    .gerencial-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eaf4ff;color:#0d4a89;border:1px solid #bdd8f8;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
    .gerencial-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}
    .gerencial-kpi{background:linear-gradient(180deg,#fff,#f6faff);border:1px solid #cbdcf1;border-radius:14px;padding:12px;min-width:0}
    .gerencial-kpi strong{display:block;font-size:10px;color:#5e6e85;text-transform:uppercase;letter-spacing:.35px}
    .gerencial-kpi span{display:block;margin-top:5px;font-size:19px;font-weight:900;color:#123f77;overflow-wrap:anywhere}
    .gerencial-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
    .gerencial-mini-chart{border:1px solid #d8e5f4;border-radius:14px;background:#fff;padding:12px}
    .gerencial-mini-chart h4{margin:0 0 10px;color:#174d84;font-size:13px}
    .gerencial-hbar-row{display:grid;grid-template-columns:92px 1fr 88px;gap:8px;align-items:center;margin:7px 0;font-size:11px}
    .gerencial-hbar-name{font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .gerencial-hbar-track{height:18px;background:#edf3fa;border-radius:999px;overflow:hidden;border:1px solid #dce6f2}
    .gerencial-hbar-fill{height:100%;background:linear-gradient(90deg,#1a73c9,#60adf3);border-radius:999px;min-width:2px}
    .gerencial-hbar-fill.prod{background:linear-gradient(90deg,#cf7b16,#f3ac39)}
    .gerencial-hbar-value{text-align:right;font-weight:900;color:#163f74}
    .gerencial-reading{margin-top:12px;padding:12px 14px;border-radius:14px;background:#eef6ff;border:1px solid #c8ddf5;color:#173f70;font-size:12px;line-height:1.5}
    .gerencial-top-tinaco{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,260px) 84px;gap:10px;align-items:center;border:1px solid #bdd8f8;border-radius:14px;padding:11px 13px;background:linear-gradient(90deg,#f7fbff,#edf6ff)}
    .gerencial-top-tinaco .title{font-size:10px;font-weight:900;color:#5e6e85;text-transform:uppercase;letter-spacing:.35px}
    .gerencial-top-tinaco .product{margin-top:3px;font-size:15px;font-weight:900;color:#123f77;white-space:normal;line-height:1.15}
    .gerencial-top-tinaco .track{height:18px;background:#fff;border:1px solid #d4e2f2;border-radius:999px;overflow:hidden}
    .gerencial-top-tinaco .fill{height:100%;background:linear-gradient(90deg,#0d4a89,#4da3ff);border-radius:999px;min-width:2px}
    .gerencial-top-tinaco .value{text-align:right;font-size:15px;font-weight:900;color:#123f77}
    .gerencial-top-tinaco .sub{display:block;font-size:9px;color:#6a7d93;font-weight:800;margin-top:2px}
    @media (max-width: 900px){.gerencial-kpis{grid-template-columns:1fr 1fr}.gerencial-grid{grid-template-columns:1fr}}
    @media (max-width: 680px){.gerencial-kpis{grid-template-columns:1fr}.gerencial-quick .btn{width:100%}.gerencial-top-tinaco{grid-template-columns:1fr}.gerencial-top-tinaco .value{text-align:left}}
    .print-hidden{}
    @media (max-width: 1024px){
      .app-shell{padding:10px;display:block}
      .side-nav{display:none}
      .mobile-tabs{display:flex}
      .grid-2,.grid-3,.split{grid-template-columns:1fr}
      .stats,.summary-box,.inventory-header{grid-template-columns:repeat(2,1fr)}
    }
    @media (max-width: 680px){
      .topbar{border-radius:18px;padding:16px}
      .topbar h2{font-size:20px}
      .card{padding:14px}
      .card h3 .subtle{width:100%;display:block}
      .form-group{min-width:100%}
      .stats,.summary-box,.inventory-header{grid-template-columns:1fr}
      .btn{width:100%}
      .row>.btn{width:100%}
      .inventory-table th,.inventory-table td,.db-table th,.db-table td{font-size:11px;padding:8px 6px}
      .inventory-table input,.inventory-table select{width:100%;min-width:74px}
      .table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;width:100%}
      .pending-card .table-wrap{display:block;width:100%;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
      .pending-card .table-wrap::after{content:'';display:block;width:1px;height:1px}
      #tablaStockActual th,#tablaStockActual td,#tablaStockRuta th,#tablaStockRuta td{white-space:normal}
      #tablaHistorialWrapper{display:none}
      .history-accordion{display:block}
      .history-acc-grid{grid-template-columns:1fr}
      .inventory-monthly-table-wrap{display:none}
      .inventory-accordion{display:block}
      .inv-accordion-grid{grid-template-columns:1fr}
      .inv-field.full{grid-column:auto}

      /* Mantener pendientes en formato tabla, como historial, también en móvil */
      #tablaPendientes thead{display:table-header-group}
      #tablaPendientes, #tablaPendientes tbody{display:table;width:max-content;min-width:980px}
      #tablaPendientes tr{display:table-row;background:transparent;border:none;border-radius:0;margin:0;padding:0;box-shadow:none}
      #tablaPendientes td,#tablaPendientes th{display:table-cell;padding:9px 8px;white-space:nowrap;border-bottom:1px solid #e5edf8;vertical-align:middle}
      #tablaPendientes td::before{content:none}
      #tablaPendientes th{font-size:10px}
      #tablaPendientes td{font-size:10px}
      .pending-table{min-width:760px;table-layout:fixed}
      .pending-table th:nth-child(1), .pending-table td:nth-child(1){width:76px}
      .pending-table th:nth-child(2), .pending-table td:nth-child(2){width:88px}
      .pending-table th:nth-child(3), .pending-table td:nth-child(3){width:96px}
      .pending-table th:nth-child(4), .pending-table td:nth-child(4){width:94px}
      .pending-table th:nth-child(5), .pending-table td:nth-child(5){width:160px;white-space:normal;line-height:1.2}
      .pending-table th:nth-child(6), .pending-table td:nth-child(6){width:62px;text-align:right}
      .pending-table th:nth-child(7), .pending-table td:nth-child(7){width:78px;text-align:right}
      .pending-table th:nth-child(8), .pending-table td:nth-child(8){width:84px;text-align:right}
      .pending-table th:nth-child(9), .pending-table td:nth-child(9){width:64px;text-align:center}
      .pending-table .btn{width:auto;padding:6px 8px;font-size:11px}
      .pending-date{line-height:1.15;white-space:normal}

      .manual-add-box .row{display:block}
      .manual-add-box .form-group{margin-bottom:10px}
      .topbar{padding-top:calc(20px + env(safe-area-inset-top))}
      .mobile-tabs{padding-bottom:4px;overflow-x:auto;scroll-snap-type:x proximity}
      .mobile-tab{scroll-snap-align:start;min-width:132px}
      .summary-box{grid-template-columns:1fr 1fr}
      .table-wrap{overflow-x:auto !important;overflow-y:hidden !important;-webkit-overflow-scrolling:touch;max-width:100%}
      .pending-card .table-wrap{overflow-x:auto !important;overflow-y:hidden !important;-webkit-overflow-scrolling:touch;max-width:100%}
      .pending-table{min-width:760px !important;width:max-content !important}
      .inventory-table{border-collapse:separate;border-spacing:0}

      .main{overflow-x:visible}
      #tab-registro.active,#tab-dashboard.active{min-width:0}
      #tab-inventario.active{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0;padding-bottom:6px}
      #tab-inventario.active > .split{min-width:0;width:100%}
      #tab-inventario .table-wrap{overflow-x:auto !important;overflow-y:hidden !important;-webkit-overflow-scrolling:touch;padding:0;margin:0;max-width:100%;width:100%}
      .card{box-shadow:none;border:1px solid #ddd}
    }

    body{background:linear-gradient(180deg,#081a38 0%,#0c2550 16%,#12376f 28%,#dfe8f6 28.2%,#edf3fb 100%) !important;}
    .app-shell{max-width:1320px;}
    .main{gap:18px;}
    .card{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;border:1px solid #b9cde7 !important;box-shadow:0 14px 28px rgba(5,23,53,.14), inset 0 1px 0 rgba(255,255,255,.6) !important;}
    .mobile-tabs{background:linear-gradient(180deg,#081b3a,#0b2b59 55%,#0c356b) !important;border:1px solid rgba(255,255,255,.08);}
    .mobile-tab{background:linear-gradient(180deg,#ffffff,#f3f8ff) !important;color:#163e78 !important;border:1px solid #d8e4f2;}
    .mobile-tab.active{background:linear-gradient(120deg,#0d3c77,#266fcb) !important;color:#fff !important;border-color:rgba(255,255,255,.12);box-shadow:0 10px 22px rgba(7,31,71,.22);}
    .side-nav{background:linear-gradient(180deg,#061933 0%,#09234a 24%,#0c356b 62%,#1359aa 100%) !important;box-shadow:0 20px 44px rgba(5,23,53,.25);}
    .nav-btn{background:rgba(255,255,255,.07) !important;border:1px solid rgba(255,255,255,.08);}
    .nav-btn.active,.nav-btn:hover{background:linear-gradient(120deg,rgba(33,107,196,.55),rgba(87,157,255,.36)) !important;}
    .db-table th,.inventory-table th{background:linear-gradient(180deg,#103e77,#1b63b3) !important;}
    .btn-primary{background:linear-gradient(120deg,#0a3a72,#2672ce) !important;}
    .btn-secondary{background:linear-gradient(180deg,#f5f9ff,#eaf2ff) !important;color:#13467f !important;}
    .btn-success{background:linear-gradient(120deg,#14874e,#2fa764) !important;}
    .btn-warning{background:linear-gradient(120deg,#cf7b14,#eea53b) !important;}
    .btn-danger{background:linear-gradient(120deg,#b93c3c,#de5656) !important;}
    .import-box{background:linear-gradient(180deg,#eff6ff,#e4efff) !important;border:1px solid #c2d5ee !important;}
    .section-accent{position:relative;overflow:hidden;}
    .section-accent::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#1c63b4,#57a9ff);}
    .section-tinacos::before{background:linear-gradient(180deg,#0d4a89,#3f9bf8);}
    .section-tambos::before{background:linear-gradient(180deg,#cf7a12,#f0a63d);}
    .section-produccion::before{background:linear-gradient(180deg,#0f6f9f,#34b4da);}
    .section-mermas::before{background:linear-gradient(180deg,#b63737,#db5757);}
    .section-gastos::before{background:linear-gradient(180deg,#6d3bb0,#8d5de0);}
    .section-accent h3{padding-left:8px;}
    .section-accent .btn-block{margin-top:6px;}
    @media (max-width: 680px){
      .mobile-tabs{padding:10px 8px 8px !important;}
      .card{border-radius:20px !important;}
      .mobile-tab{min-width:124px !important;padding:13px 14px !important;}
      .section-accent::before{width:5px;}
    }

  

    /* v31: historial fijo y encabezados alineados */
    #tablaHistorialWrapper{display:block !important;overflow-x:auto !important;overflow-y:hidden !important;-webkit-overflow-scrolling:touch;max-width:100% !important}
    .history-accordion{display:none !important}
    #historyAccordion{display:none !important}
    #tablaHistorial{min-width:980px !important;width:100% !important;border-collapse:collapse !important;table-layout:fixed !important}
    #tablaHistorial thead{display:table-header-group !important}
    #tablaHistorial tbody{display:table-row-group !important}
    #tablaHistorial tr{display:table-row !important;background:transparent !important;border:none !important;border-radius:0 !important;margin:0 !important;padding:0 !important;box-shadow:none !important}
    #tablaHistorial td,#tablaHistorial th{display:table-cell !important;padding:9px 8px !important;white-space:nowrap !important;border-bottom:1px solid #e5edf8 !important;vertical-align:middle !important;box-sizing:border-box !important}
    #tablaHistorial td::before{content:none !important}
    #tablaHistorial th{background:linear-gradient(180deg,#4c8f3b,#3d7f31) !important;color:#fff !important;position:sticky;top:0;z-index:1}
    #tablaHistorial th:nth-child(1), #tablaHistorial td:nth-child(1){width:96px}
    #tablaHistorial th:nth-child(2), #tablaHistorial td:nth-child(2){width:90px}
    #tablaHistorial th:nth-child(3), #tablaHistorial td:nth-child(3){width:116px}
    #tablaHistorial th:nth-child(4), #tablaHistorial td:nth-child(4){width:260px;white-space:normal !important;line-height:1.2}
    #tablaHistorial th:nth-child(5), #tablaHistorial td:nth-child(5){width:74px;text-align:right}
    #tablaHistorial th:nth-child(6), #tablaHistorial td:nth-child(6){width:96px;text-align:right}
    #tablaHistorial th:nth-child(7), #tablaHistorial td:nth-child(7){width:102px;text-align:right}
    #tablaHistorial th:nth-child(8), #tablaHistorial td:nth-child(8){width:82px;text-align:center}
    #tablaHistorial .btn{width:auto !important;padding:6px 8px !important;font-size:11px !important}
    @media (max-width: 680px){
      #tablaHistorialWrapper{display:block !important;overflow-x:auto !important;overflow-y:hidden !important;-webkit-overflow-scrolling:touch;max-width:100% !important}
      .history-accordion{display:none !important}
      #historyAccordion{display:none !important}
      #tablaHistorial{min-width:980px !important;width:980px !important;table-layout:fixed !important}
      #tablaHistorial thead{display:table-header-group !important}
      #tablaHistorial tbody{display:table-row-group !important}
      #tablaHistorial tr{display:table-row !important;background:transparent !important;border:none !important;border-radius:0 !important;margin:0 !important;padding:0 !important;box-shadow:none !important}
      #tablaHistorial td,#tablaHistorial th{display:table-cell !important;padding:9px 8px !important;white-space:nowrap !important;border-bottom:1px solid #e5edf8 !important;vertical-align:middle !important;box-sizing:border-box !important}
      #tablaHistorial td::before{content:none !important}
    }
/* --- CORRECCIONES MOVILES --- */
.split > div { min-width: 0; }
#tablaConsumoMP { min-width: 400px !important; }
.inventory-header ~ .row.print-hidden { display: flex; flex-direction: column !important; width: 100%; gap: 10px; }

/* --- CUENTAS, MEMBRESÍAS Y PERMISOS (SAAS - ETAPA DE PRUEBA) --- */
[hidden]{display:none !important}
.permission-hidden{display:none !important}
.noscript-warning{position:fixed;inset:0;z-index:20000;background:#fff;color:#9d2424;padding:40px;text-align:center;font-size:18px;font-weight:900}
.access-locked{overflow:hidden}
.access-locked .app-shell,.access-locked #fab-container,.access-locked #darkModeButton{display:none !important}
.access-gate{position:fixed;inset:0;z-index:15000;display:grid;place-items:center;overflow-y:auto;padding:24px;background:radial-gradient(circle at 12% 8%,rgba(70,151,243,.32),transparent 32%),linear-gradient(145deg,#06162f,#0b3062 56%,#155eaa)}
.access-card{width:min(760px,100%);background:linear-gradient(180deg,#fff,#f6faff);border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 30px 70px rgba(1,13,34,.42);padding:28px}
.access-brand{display:flex;gap:16px;align-items:center;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid #d7e4f3}
.access-brand img{width:66px;height:66px;border-radius:18px;box-shadow:0 10px 24px rgba(13,61,120,.2)}
.access-brand h1{margin:4px 0 5px;color:#0a3d78;font-size:25px;line-height:1.1}
.access-brand p,.access-heading p{margin:0;color:#60748d;font-size:13px;line-height:1.5}
.access-eyebrow,.users-eyebrow{display:block;color:#2b73bd;font-weight:900;font-size:10px;letter-spacing:1.2px}
.access-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.access-heading h2{margin:0 0 6px;color:#123f77;font-size:21px}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.demo-badge{flex:none;background:#fff2d8;color:#9b5b00;border:1px solid #e9c985;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.55px}
.local-security-note{margin-top:14px;padding:12px 14px;border:1px solid #c9daf0;background:#eef6ff;border-radius:14px;color:#174675;font-size:12px;line-height:1.5}
.form-error{min-height:20px;margin:3px 0 8px;color:#b53030;font-size:12px;font-weight:800}
.membership-lock-icon{width:74px;height:74px;display:grid;place-items:center;margin:0 auto 12px;border-radius:22px;background:#fff0f0;font-size:34px}
#membershipBlockedView{text-align:center}
#membershipBlockedView h2{color:#8f2727;margin:0 0 8px}
#membershipBlockedView p{color:#5f6e82;line-height:1.5}
#membershipBlockedView .btn{margin-top:10px}

.account-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-radius:18px;background:linear-gradient(120deg,#fff,#edf5ff);border:1px solid #bcd1e9;box-shadow:0 8px 18px rgba(5,23,53,.1)}
.account-business,.account-person{display:flex;align-items:center;gap:10px;min-width:0}
.account-person{text-align:right}
.account-business strong,.account-person strong{display:block;color:#123f77;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-person small{display:block;color:#60748d;font-weight:800;font-size:11px;margin-top:2px}
.account-caption{font-size:9px;font-weight:900;color:#71849a;letter-spacing:.8px}
.account-logout{padding:9px 13px !important;font-size:12px !important;width:auto !important}
.membership-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.45px;background:#e8f7ef;color:#177044;border:1px solid #b9e2cd;white-space:nowrap}
.membership-badge.past_due{background:#fff5df;color:#9b5b00;border-color:#ead096}
.membership-badge.paused,.membership-badge.canceled{background:#fff0f0;color:#a22d2d;border-color:#efc1c1}

.users-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border-radius:22px;background:linear-gradient(120deg,#0b3266,#1464b5);color:#fff;box-shadow:0 16px 30px rgba(5,28,66,.2)}
.users-hero h2{margin:5px 0 7px;font-size:25px}
.users-hero p{margin:0;max-width:720px;color:#d9ebff;font-size:13px;line-height:1.5}
.users-hero .users-eyebrow{color:#91caff}
.users-capacity{flex:none;min-width:142px;padding:14px 16px;border:1px solid rgba(255,255,255,.2);border-radius:17px;background:rgba(255,255,255,.1);text-align:center}
.users-capacity strong{display:block;font-size:22px}
.users-capacity span{display:block;margin-top:3px;color:#d9ebff;font-size:10px;font-weight:800;text-transform:uppercase}
.users-grid{grid-template-columns:1fr 1fr !important}
.membership-card,.add-user-card{height:100%}
.membership-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.membership-facts>div{padding:11px;border-radius:13px;background:#f5f9ff;border:1px solid #d9e5f3}
.membership-facts span{display:block;font-size:10px;color:#6a7d93;font-weight:800;margin-bottom:4px}
.membership-facts strong{display:block;color:#173f70;font-size:12px}
.demo-status-control{margin-top:12px;padding:12px;border:1px dashed #d2b56f;border-radius:14px;background:#fffaf0}
.demo-status-control>label{display:block;margin-bottom:8px;color:#835000;font-size:11px;font-weight:900}
.demo-status-control select{flex:1;min-width:200px;padding:10px;border:1px solid #d7c18e;border-radius:10px;background:#fff}
.demo-status-control .row{margin:0}
.demo-status-control .btn{padding:10px 12px;font-size:11px}
.demo-status-control small{display:block;color:#8a7953;font-size:10px;margin-top:6px}
.users-table{min-width:930px}
.users-table td{vertical-align:middle}
.user-main{display:flex;flex-direction:column;gap:2px}
.user-main strong{color:#153f73}
.user-main small{font-size:9px;color:#7c8da1;font-weight:800}
.user-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;background:#e8f7ef;color:#177044}
.user-status.inactive{background:#fff0f0;color:#a22d2d}
.user-role-select{min-width:155px;padding:8px;border:1px solid #c8d8ea;border-radius:9px;background:#fff;font-size:11px;font-weight:800}
.user-actions{display:flex;gap:6px;flex-wrap:wrap}
.user-actions .btn{width:auto !important;padding:7px 9px !important;font-size:10px !important}
.users-mobile-cards{display:none}
.role-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.role-grid article{padding:13px;border:1px solid #d7e4f3;border-radius:14px;background:#f8fbff}
.role-grid article>span{display:block;font-size:22px;margin-bottom:7px}
.role-grid strong{display:block;color:#123f77;font-size:12px}
.role-grid p{margin:5px 0 0;color:#60748d;font-size:10px;line-height:1.45}
.access-audit-list{display:grid;gap:8px}
.audit-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #dbe7f5;border-radius:12px;background:#f9fbfe}
.audit-row strong{display:block;color:#194979;font-size:11px}
.audit-row span{display:block;margin-top:3px;color:#6c7e92;font-size:10px}
.audit-row time{flex:none;color:#71849a;font-size:9px;font-weight:800}
.production-security-note{padding:14px 16px;border-radius:16px;background:#fff8e8;border:1px solid #ead49e;color:#76521c;font-size:12px;line-height:1.5}
.production-security-note strong{color:#63410c}

body.dark-mode .account-bar,body.dark-mode .role-grid article,body.dark-mode .membership-facts>div,body.dark-mode .audit-row{background:#16213a !important;border-color:#3a506b !important;color:#e7eef8 !important}
body.dark-mode .account-bar strong,body.dark-mode .role-grid strong,body.dark-mode .membership-facts strong,body.dark-mode .audit-row strong{color:#b9dcff !important}

/* --- CATÁLOGOS INDEPENDIENTES POR EMPRESA --- */
.catalog-empty-alert{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:16px 18px;border:1px solid #e5be64;border-radius:17px;background:linear-gradient(120deg,#fff9e9,#fff2c9);color:#6c4a0a;box-shadow:0 8px 20px rgba(94,61,0,.08)}
.catalog-empty-alert strong,.catalog-empty-alert span{display:block}.catalog-empty-alert span{margin-top:4px;font-size:12px}.catalog-empty-alert .btn{flex:none;width:auto}
.catalog-form{margin:14px 0 18px;padding:15px;border:1px solid #d8e5f4;border-radius:16px;background:#f8fbff}
.catalog-form-actions,.catalog-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.catalog-form-actions .btn,.catalog-row-actions .btn{width:auto}
.catalog-row-actions .btn{padding:7px 9px;font-size:10px}
.catalog-empty-cell{text-align:center !important;padding:24px !important;color:#6d7d91;font-weight:700}
.recipe-component-row{align-items:flex-end}.recipe-component-row .btn{width:auto;white-space:nowrap}
.recipe-component-chip{display:inline-flex;align-items:center;gap:7px;margin:4px;padding:7px 9px;border:1px solid #bdd4ee;border-radius:999px;background:#edf6ff;color:#174b80;font-size:10px}
.recipe-component-chip button{width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#cce1f7;color:#18466f;font-weight:900;cursor:pointer}
.section-otros::before{background:#7b54b3 !important}.section-kicker.otros{background:#f2ebff;color:#69419d}
body.dark-mode .catalog-form{background:#16213a;border-color:#3a506b}body.dark-mode .catalog-empty-alert{background:#3a301b;border-color:#6d5730;color:#ffe6a8}

/* --- RECETAS POR CAPAS Y VARIANTES DE MATERIA PRIMA --- */
.production-recipe-status{margin:8px 0 12px;padding:11px 13px;border-radius:13px;font-size:11px;font-weight:800;line-height:1.45}
.production-recipe-status.ready{color:#176a43;background:#eaf8f1;border:1px solid #b8e1cd}.production-recipe-status.missing{color:#8e5310;background:#fff7e5;border:1px solid #ead096}
.layer-help{margin:8px 0 12px;padding:10px 12px;border-left:4px solid #2c76bf;border-radius:9px;background:#eef6ff;color:#315675;font-size:11px;line-height:1.5}
.recipe-layer-list{display:grid;gap:10px}.recipe-layer-row{display:grid;grid-template-columns:150px minmax(170px,1fr) minmax(220px,1.2fr) 150px;gap:10px;align-items:end;padding:12px;border:1px solid #cbdcf0;border-radius:14px;background:#fff}
.layer-number{display:flex;align-items:center;gap:9px;align-self:center}.layer-number span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#155da8;color:#fff;font-weight:900}.layer-number strong{color:#174b80;font-size:11px;line-height:1.25}
.recipe-layer-row .form-group{margin:0}.recipe-draft-summary{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.recipe-draft-summary>*{padding:7px 10px;border-radius:999px;background:#edf5ff;border:1px solid #c8dbef;color:#28547e;font-size:10px}.recipe-draft-summary strong{background:#155da8;color:#fff;border-color:#155da8}.layer-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e8f2ff;color:#15558f;font-size:9px;font-weight:900}
.material-stock-title{margin:4px 0 9px;color:#174b80;font-size:11px;font-weight:900}.material-stock-title span{margin-left:6px;color:#71849a;font-size:9px}.material-variant-stock-list{display:grid;gap:8px}.material-variant-stock{display:grid;grid-template-columns:130px repeat(3,minmax(120px,1fr)) 110px;gap:9px;align-items:end;padding:10px;border:1px solid #cbdcf0;border-radius:13px;background:#fff}.material-variant-stock>strong{align-self:center;color:#174b80}.material-variant-stock label{display:grid;gap:4px;color:#5c7087;font-size:9px;font-weight:900}.material-variant-stock input{padding:9px}.material-variant-stock>span{align-self:center;color:#176a43;font-size:10px;font-weight:900}
.variant-chip-list{display:flex;gap:5px;flex-wrap:wrap}.variant-chip-list span{padding:4px 7px;border-radius:999px;background:#edf5ff;color:#235985;border:1px solid #c8dbef;font-size:9px;font-weight:800}.material-stock-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:10px}.material-stock-line strong{color:#315675}.material-stock-line span{white-space:nowrap}
body.dark-mode .recipe-layer-row,body.dark-mode .material-variant-stock{background:#18243b;border-color:#3a506b}body.dark-mode .layer-help{background:#162d49;color:#c6d9ec}body.dark-mode .production-recipe-status.ready{background:#17372c;color:#a9e7ca;border-color:#2d604c}body.dark-mode .production-recipe-status.missing{background:#3a301b;color:#ffe0a0;border-color:#6d5730}

@media (max-width:1024px){
  .role-grid{grid-template-columns:1fr 1fr}
  .users-grid{grid-template-columns:1fr !important}
}

/* Etapa 2F: centro de configuración, aditamentos y movimientos anulados */
.configuration-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;margin-bottom:14px;border-radius:18px;background:linear-gradient(135deg,#0b4f91,#1671c5);color:#fff;box-shadow:0 14px 30px rgba(10,61,120,.18)}
.configuration-hero h2{margin:4px 0 6px;color:#fff}.configuration-hero p{margin:0;max-width:780px;line-height:1.5}.configuration-hero .users-eyebrow{color:#dbeeff}
.configuration-jump-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.configuration-jump-row .btn{width:auto}
#tab-configuracion>.card,#tab-configuracion>.price-box,#tab-configuracion>div>.card,#tab-configuracion>div>.price-box{margin-bottom:16px}
.product-kit-list{display:grid;gap:8px;margin:10px 0}.kit-accessory-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(130px,.7fr) 70px;gap:10px;align-items:end;padding:10px;border:1px solid #c9d9ee;border-radius:12px;background:#f7fbff}.kit-accessory-row>label{align-self:center}.kit-accessory-row .form-group{margin:0}
.movement-cancelled{opacity:.68;background:#f6f7f9}.movement-cancelled td{text-decoration:none}.movement-cancelled .cancelled-value{text-decoration:line-through}.movement-status-cancelled{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fee2e2;color:#9b1c1c;font-weight:900;font-size:11px}.movement-status-active{display:inline-flex;padding:5px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:900;font-size:11px}
.history-action-stack{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.history-action-stack .btn{width:auto}
.inventory-pending{color:#6b7280;font-weight:800}.stock-preview-box{margin-top:8px;padding:10px 12px;border-radius:12px;background:#eef6ff;border:1px solid #bdd5ef;font-size:12px}.stock-preview-box.ready{background:#ecfdf5;border-color:#a7e0c0;color:#11633a}.stock-preview-box.missing{background:#fff1f2;border-color:#fecdd3;color:#9f1239}
@media(max-width:760px){.configuration-hero{align-items:flex-start;flex-direction:column}.configuration-hero .btn{width:100%}.kit-accessory-row{grid-template-columns:1fr}.configuration-jump-row .btn{flex:1 1 46%}}
@media (max-width:680px){
  .access-gate{padding:12px;align-items:start}
  .access-card{padding:18px;border-radius:22px;margin:8px 0}
  .access-brand{align-items:flex-start}
  .access-brand img{width:52px;height:52px}
  .access-brand h1{font-size:19px}
  .access-brand p{font-size:11px}
  .access-grid{grid-template-columns:1fr}
  .access-heading{display:block}
  .access-heading .demo-badge{display:inline-flex;margin-top:10px}
  .account-bar{align-items:flex-start;padding:11px 12px}
  .account-business{display:block}
  .account-business .membership-badge{margin-top:5px}
  .account-person{gap:6px}
  .account-person strong{max-width:120px}
  .account-caption{display:none}
  .users-hero{display:block;padding:18px}
  .users-capacity{margin-top:14px;width:100%}
  .membership-facts{grid-template-columns:1fr}
  .role-grid{grid-template-columns:1fr}
  .users-table-wrap{display:none}
  .users-mobile-cards{display:grid;gap:10px}
  .user-mobile-card{padding:13px;border:1px solid #d7e4f3;border-radius:14px;background:#f8fbff}
  .user-mobile-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}
  .user-mobile-card .user-role-select{width:100%;margin-bottom:9px}
  .user-mobile-card .user-actions{display:grid;grid-template-columns:1fr 1fr}
  .user-mobile-card .user-actions .btn{width:100% !important}
  .audit-row{display:block}
  .audit-row time{display:block;margin-top:6px}
  .catalog-empty-alert{display:block}.catalog-empty-alert .btn{width:100%;margin-top:12px}
  .catalog-form-actions,.catalog-row-actions{display:grid;grid-template-columns:1fr}.catalog-form-actions .btn,.catalog-row-actions .btn{width:100%}
  .recipe-layer-row{grid-template-columns:1fr}.layer-number{margin-bottom:2px}.material-variant-stock{grid-template-columns:1fr 1fr}.material-variant-stock>strong,.material-variant-stock>span{grid-column:1/-1}
}

@media (max-width:1050px) and (min-width:681px){.recipe-layer-row{grid-template-columns:130px 1fr 1fr}.recipe-layer-row .layer-kg{grid-column:2/4}.material-variant-stock{grid-template-columns:110px repeat(2,1fr)}.material-variant-stock>span{grid-column:2/4}}

/* --- FÓRMULAS LIBRES Y GUÍA DE CONFIGURACIÓN --- */
.recipe-production-picker{width:100%}.recipe-production-picker select{font-weight:800;color:#174b80}
.guide-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;border-radius:24px;background:linear-gradient(120deg,#0a3268,#1768ba);color:#fff;box-shadow:0 16px 32px rgba(5,31,72,.22)}
.guide-hero h2{margin:5px 0 8px;font-size:25px}.guide-hero p{max-width:760px;margin:0;color:#dcecff;font-size:13px;line-height:1.55}.guide-hero .users-eyebrow{color:#91caff}
.guide-progress-box{flex:none;min-width:190px;padding:16px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(255,255,255,.1);text-align:center}.guide-progress-box strong{display:block;font-size:25px}.guide-progress-box span{display:block;margin:3px 0 10px;color:#dcecff;font-size:10px;font-weight:800;text-transform:uppercase}.guide-progress-track{height:8px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.2)}.guide-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:#59d991;transition:width .25s ease}
.guide-step-list{display:grid;gap:10px;margin:16px 0}.guide-step{display:grid;grid-template-columns:42px minmax(240px,1fr) auto auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid #d5e3f3;border-radius:16px;background:#fff;box-shadow:0 5px 14px rgba(19,62,113,.05)}
.guide-step-number{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eaf3ff;color:#155da8;font-weight:900}.guide-step h3{margin:0 0 3px;color:#174b80;font-size:13px}.guide-step p{margin:0;color:#65778c;font-size:10px;line-height:1.4}.guide-step .btn{width:auto;padding:8px 10px;font-size:10px}.guide-step-status{min-width:84px;padding:6px 8px;border-radius:999px;background:#fff4dc;color:#996000;border:1px solid #ead096;text-align:center;font-size:9px;font-weight:900}.guide-step.completed{border-color:#b8e1cd;background:#f7fffb}.guide-step.completed .guide-step-number{background:#dff5e9;color:#187247}.guide-step.completed .guide-step-status{background:#e8f7ef;color:#177044;border-color:#b9e2cd}.guide-step.locked .btn{opacity:.55}
.guide-details{margin-top:0}.guide-instructions{margin:10px 0 0;padding-left:22px;color:#4d637a;font-size:11px;line-height:1.7}.guide-example-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #e1eaf5;font-size:11px}.guide-example-row span{color:#5c7087}.guide-example-row strong{color:#174b80;text-align:right}.guide-help-card{border-left:5px solid #2373c5}.guide-help-card p{margin:0;color:#516a83;font-size:12px;line-height:1.6}
body.dark-mode .guide-step{background:#16213a;border-color:#3a506b}body.dark-mode .guide-step.completed{background:#17372c;border-color:#2d604c}body.dark-mode .guide-step h3,body.dark-mode .guide-example-row strong{color:#b9dcff}body.dark-mode .guide-step p,body.dark-mode .guide-instructions,body.dark-mode .guide-help-card p{color:#c5d1df}
@media (max-width:760px){.guide-hero{display:block;padding:18px}.guide-progress-box{width:100%;margin-top:14px}.guide-step{grid-template-columns:38px 1fr}.guide-step .btn,.guide-step-status{grid-column:2;width:100%}.guide-details{grid-template-columns:1fr !important}.guide-example-row{display:block}.guide-example-row strong{display:block;margin-top:4px;text-align:left}}

/* --- MODALIDADES DE VENTA, PRODUCTOS Y COMISIONES POR EMPRESA --- */
.daily-config-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:14px 16px;border:1px solid #bad5ef;border-radius:16px;background:linear-gradient(120deg,#f3f9ff,#e7f3ff);color:#174b80}.daily-config-toolbar strong,.daily-config-toolbar span{display:block}.daily-config-toolbar span{margin-top:3px;color:#54708c;font-size:11px}.daily-config-toolbar .btn{flex:none;width:auto}
.operation-mode-field{min-width:230px}.operation-mode-field select{border-width:2px;border-color:#2c76bf;background:#f5faff;color:#123f70;font-weight:900}.operation-mode-help{margin:-2px 0 11px;padding:8px 10px;border-left:4px solid #2c76bf;border-radius:8px;background:#eef6ff;color:#315675;font-size:10px;line-height:1.4}
.commission-card{border-top:5px solid #2b7a55}.commission-mode-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0}.commission-mode-row .form-group{min-width:270px;margin:0}.commission-mode-row .btn{width:auto}.commission-mode-status{padding:8px 11px;border-radius:999px;background:#fff4dc;color:#996000;border:1px solid #ead096;font-size:10px;font-weight:900}.commission-mode-status.enabled{background:#e8f7ef;color:#177044;border-color:#b9e2cd}.commission-mode-status.disabled{background:#eef2f6;color:#53677c;border-color:#ced8e2}.commission-disabled{opacity:.62}.commission-scope{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e8f2ff;color:#15558f;font-size:9px;font-weight:900}.commission-scope.production{background:#fff0d9;color:#93530d}
body.dark-mode .daily-config-toolbar,body.dark-mode .operation-mode-help{background:#162d49;border-color:#3a6490;color:#c6d9ec}body.dark-mode .operation-mode-field select{background:#16213a;color:#d9ebff}body.dark-mode .commission-mode-status.disabled{background:#263248;color:#d5deea;border-color:#46556d}
@media (max-width:680px){.daily-config-toolbar{display:block}.daily-config-toolbar .btn{width:100%;margin-top:10px}.commission-mode-row{display:grid;grid-template-columns:1fr}.commission-mode-row .form-group,.commission-mode-row .btn{width:100%}.operation-mode-field{min-width:0}}

/* ===== ETAPA 2G-B · COMPRAS, PRECIOS Y REPORTES ===== */
.purchase-hero{margin-bottom:16px}
.purchase-line-list{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.purchase-line{display:grid;grid-template-columns:minmax(210px,2fr) repeat(7,minmax(105px,1fr)) minmax(115px,.9fr);gap:8px;align-items:end;padding:12px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fbff;min-width:0}.purchase-line-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:4px;border-bottom:1px solid #e3ebf5}.purchase-line-toolbar strong{font-size:12px;color:#164d87}
.purchase-cost-hint{display:block;margin-top:4px;font-size:10px;line-height:1.25;color:#65748b}
.purchase-line-total{min-height:42px;border:1px solid #d7e2ee;border-radius:10px;padding:6px 9px;background:#fff;display:flex;flex-direction:column;justify-content:center}.purchase-line-total span{font-size:10px;color:#65748b}.purchase-line-total strong{font-size:14px;color:#123d70}
.purchase-action-stack{align-items:flex-start;flex-wrap:wrap}
.inventory-zero-badge{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:999px;background:#eef1f5;color:#5d6777;font-size:10px;font-weight:800}.status-out{color:#667085;font-weight:800}
.purchase-line .form-group{margin:0;min-width:0}.purchase-line .form-group label{font-size:11px}.purchase-remove-line{width:auto;min-height:36px;padding:7px 12px;white-space:nowrap}
.purchase-hidden{visibility:hidden}.purchase-actions{margin-top:12px}.purchase-totals{margin-top:12px}
.purchase-history-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.purchase-history-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid #d7e2ee;border-radius:10px;background:#fff}.purchase-history-item>div:first-child{display:flex;flex-direction:column;gap:3px}.purchase-history-item.voided{opacity:.65;background:#f7f7f7}.purchase-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef4fb;font-size:11px;font-weight:800;white-space:nowrap}
@media(max-width:1400px){.purchase-line{grid-template-columns:repeat(4,minmax(120px,1fr))}.purchase-item-field{grid-column:span 2}}
@media(max-width:720px){.purchase-line{grid-template-columns:1fr 1fr}.purchase-item-field{grid-column:1/-1}.purchase-line-toolbar{align-items:stretch;flex-direction:column}.purchase-remove-line{width:100%}.purchase-history-item{align-items:flex-start;flex-direction:column}.purchase-history-item .btn{width:100%}}

.combined-report-box{margin-top:14px;padding:12px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fbff;display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.combined-report-box .form-group{min-width:320px;flex:1}.combined-report-box select{min-height:110px}

/* ETAPA 2G-M.1 · Auth/RLS real; operación local hasta M.2 */
.purchase-line-toolbar{
  background:#fff4f4;
  border:1px solid #efb5b5;
  border-radius:10px;
  padding:9px 10px;
  justify-content:flex-start;
  flex-wrap:wrap;
}
.purchase-line-toolbar strong{flex:0 0 auto}
.purchase-remove-line{
  width:auto;
  min-width:190px;
  min-height:44px;
  margin-left:12px;
  padding:10px 16px;
  font-size:12px;
  font-weight:900;
  box-shadow:0 2px 6px rgba(120,20,20,.14);
}
.variant-price-row td{background:#f8fbff;border-top:1px dashed #b9cee7}
.variant-price-row td:first-child{padding-left:28px}
.variant-price-row input::placeholder{color:#78889b;opacity:1}
@media (max-width:680px){
  .purchase-line-toolbar{align-items:stretch;flex-direction:column}
  .purchase-remove-line{width:100%;min-width:0;margin-left:0}
  .variant-price-row td:first-child{padding-left:10px}
}

/* ETAPA 2G-M.1.2 · multiubicación, permisos y evidencia */
#tablaHistorial{min-width:1120px !important}
#tablaHistorial th:nth-child(2),#tablaHistorial td:nth-child(2){width:135px !important;white-space:normal !important;line-height:1.2}
#tablaHistorial th:nth-child(3),#tablaHistorial td:nth-child(3){width:180px !important;white-space:normal !important;line-height:1.15;overflow-wrap:anywhere}
#tablaHistorial th:nth-child(4),#tablaHistorial td:nth-child(4){width:315px !important}
#tablaHistorial th:nth-child(8),#tablaHistorial td:nth-child(8){width:115px !important}
#tablaHistorial td:nth-child(3) .badge,#tablaHistorial td:nth-child(3) .movement-badge{display:inline-block;max-width:100%;white-space:normal !important;overflow-wrap:anywhere;word-break:normal;line-height:1.15;text-align:left}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:7px 0 10px}
.check-option{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid #d3dfed;border-radius:12px;background:#f8fbff;font-size:12px;line-height:1.3;cursor:pointer}
.check-option input{margin-top:2px;flex:0 0 auto}.check-option small{display:block;color:#64748b;margin-top:2px}
.app-dialog{border:0;padding:0;border-radius:20px;max-width:760px;width:min(94vw,760px);box-shadow:0 24px 70px rgba(0,0,0,.3)}
.app-dialog::backdrop{background:rgba(5,20,45,.65)}
.dialog-card{padding:22px;background:#fff}.dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dialog-head h3{margin:4px 0 12px}.dialog-card h4{margin:18px 0 6px;color:#123f76}
.preview-permissions-card{border:1px solid #b9d4f4}.preview-exit{max-width:280px;align-self:end}
body.access-preview .account-bar{outline:3px solid #f59e0b;outline-offset:-3px}
.location-kind{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e9f3ff;color:#0b4f91;font-size:11px;font-weight:800;text-transform:uppercase}
.location-inactive{opacity:.62}.location-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800}
#ubicacionOperacion:disabled{background:#eef4fb;color:#16395f;font-weight:700}
.ticket-evidence{display:inline-flex;gap:5px;align-items:center}.ticket-evidence.legacy{color:#9a6700;font-size:11px}
@media(max-width:760px){#tablaHistorial{width:1120px !important}.dialog-card{padding:16px}.check-grid{grid-template-columns:1fr}.preview-exit{max-width:none}}


/* ETAPA 2G-M.2.3.3 · RB-19 historial de 10 columnas + UX-08 equipos */
#tablaHistorial{min-width:1580px !important;width:100% !important;table-layout:fixed !important}
#tablaHistorial td,#tablaHistorial th{vertical-align:top !important;box-sizing:border-box !important}
#tablaHistorial th:nth-child(1),#tablaHistorial td:nth-child(1){width:112px !important;white-space:nowrap !important}
#tablaHistorial th:nth-child(2),#tablaHistorial td:nth-child(2){width:150px !important;white-space:normal !important;line-height:1.25 !important;overflow-wrap:anywhere}
#tablaHistorial th:nth-child(3),#tablaHistorial td:nth-child(3){width:150px !important;white-space:normal !important;line-height:1.25 !important;overflow-wrap:anywhere}
#tablaHistorial th:nth-child(4),#tablaHistorial td:nth-child(4){width:190px !important;white-space:normal !important;line-height:1.25 !important;overflow-wrap:anywhere}
#tablaHistorial th:nth-child(5),#tablaHistorial td:nth-child(5){width:190px !important;white-space:normal !important;line-height:1.2 !important;text-align:left !important;overflow-wrap:anywhere}
#tablaHistorial th:nth-child(6),#tablaHistorial td:nth-child(6){width:390px !important;white-space:normal !important;line-height:1.28 !important;text-align:left !important;overflow-wrap:anywhere;word-break:normal}
#tablaHistorial th:nth-child(7),#tablaHistorial td:nth-child(7){width:86px !important;text-align:right !important;white-space:nowrap !important}
#tablaHistorial th:nth-child(8),#tablaHistorial td:nth-child(8){width:105px !important;text-align:right !important;white-space:nowrap !important}
#tablaHistorial th:nth-child(9),#tablaHistorial td:nth-child(9){width:112px !important;text-align:right !important;white-space:nowrap !important}
#tablaHistorial th:nth-child(10),#tablaHistorial td:nth-child(10){width:95px !important;text-align:center !important;white-space:normal !important}
#tablaHistorial td:nth-child(5) .badge,#tablaHistorial td:nth-child(5) .movement-badge{display:inline-block;max-width:100%;white-space:normal !important;overflow-wrap:anywhere;line-height:1.15;text-align:left}
#tablaHistorial .history-action-stack{display:flex;flex-direction:column;align-items:center;gap:5px}
@media(max-width:760px){#tablaHistorial{min-width:1580px !important;width:1580px !important}}

.team-members-group{min-width:0}
.team-member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;padding:8px;border:1px solid #c6d8ed;border-radius:14px;background:#f8fbff;max-height:250px;overflow:auto}
.team-member-option{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #d6e3f2;border-radius:12px;background:#fff;cursor:pointer;user-select:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.team-member-option:hover{border-color:#7eabd9;background:#f4f9ff}
.team-member-option:has(input:checked){border-color:#2a75bd;background:#eaf4ff;box-shadow:0 0 0 2px rgba(42,117,189,.08)}
.team-member-option input{margin-top:3px;flex:0 0 auto;accent-color:#1768ad}
.team-member-option span{min-width:0;display:block}
.team-member-option strong{display:block;color:#123f76;line-height:1.2;overflow-wrap:anywhere}
.team-member-option small{display:block;color:#64748b;margin-top:3px;line-height:1.2}
#commissionTeamMembersSummary{display:block;margin-top:7px;font-weight:700;color:#385f87}
@media(max-width:680px){.team-member-grid{grid-template-columns:1fr;max-height:none}}

/* ETAPA 2G-M.2.3.6 · inventario agrupado y análisis comercial */
.inventory-group-row td{background:#eaf3ff !important;color:#0b4f91 !important;font-size:11px !important;letter-spacing:.35px;text-transform:uppercase;border-top:2px solid #b6cdea !important;border-bottom:1px solid #c8d9ec !important;padding:8px 10px !important}
#customerAnalyticsCard .summary-box{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
#customerRankingTable td:first-child,#customerRankingTable th:first-child{text-align:center;width:50px}
#corteObjetivo{font-weight:800}

/* ETAPA 2G-M.3.0 · identidad empresarial y entitlements SaaS */
.plan-feature-hidden{display:none!important}
.business-profile-layout{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:18px;align-items:start}
.business-logo-panel{display:flex;flex-direction:column;gap:9px;align-items:center;padding:14px;border:1px solid #c9d9ec;border-radius:14px;background:#f8fbff}
.business-logo-preview{width:180px;height:110px;object-fit:contain;border:1px solid #d4e0ee;border-radius:10px;background:#fff;padding:8px}
.business-logo-panel input[type="file"]{width:100%;font-size:11px}
.membership-feature-list{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px}
.membership-feature-list li{display:grid;grid-template-columns:22px 1fr auto;gap:7px;align-items:center;padding:8px 10px;border:1px solid #d5e2ef;border-radius:10px;background:#fff;font-size:12px}
.membership-feature-list li.included{background:#f3fbf6;border-color:#c8e7d3}
.membership-feature-list li.locked{background:#fafbfc;color:#68788a}
.membership-feature-list li small{font-size:10px;font-weight:800;color:#8a5a00}
@media(max-width:720px){.business-profile-layout{grid-template-columns:1fr}.business-logo-preview{width:100%;max-width:240px}.membership-feature-list{grid-template-columns:1fr}}

/* =========================================================
   2G-M.3.2 · Centro de comunicación y aprobaciones
   ========================================================= */
.activity-bell{position:relative;width:42px;height:42px;border:1px solid #cbd8e8;background:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;box-shadow:0 3px 10px rgba(15,45,80,.08)}
.activity-bell:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,45,80,.13)}
.activity-bell span{position:absolute;right:-6px;top:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b42318;color:#fff;font:700 11px/20px system-ui;text-align:center;border:2px solid #fff}
.communication-hero{align-items:center;gap:20px}.communication-summary{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:10px;min-width:min(390px,100%)}
.communication-summary>div{background:#fff;border:1px solid #dbe6f2;border-radius:14px;padding:12px 14px;text-align:center;box-shadow:0 4px 14px rgba(20,55,90,.06)}
.communication-summary strong{display:block;font-size:25px;color:#0a3d78}.communication-summary span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#68788b}
.communication-actions{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 14px}.communication-layout{display:grid;grid-template-columns:minmax(250px,.86fr) minmax(420px,1.65fr) minmax(250px,.9fr);gap:14px;align-items:stretch}
.communication-layout>.card{margin:0;min-height:630px}.communication-card-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #e3ebf4}.communication-card-head h3{margin:2px 0 0}
.communication-thread-list,.communication-activity-list{display:flex;flex-direction:column;gap:7px;margin-top:10px;max-height:580px;overflow:auto;padding-right:3px}.comm-thread-item,.activity-item{width:100%;border:1px solid transparent;background:transparent;border-radius:13px;padding:10px;text-align:left;display:grid;cursor:pointer;transition:.15s ease}
.comm-thread-item{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:start}.comm-thread-item:hover,.comm-thread-item.active{background:#edf5ff;border-color:#c9dcf3}.comm-thread-item.unread{background:#f2f7ff}.comm-thread-icon{width:36px;height:36px;border-radius:11px;background:#e9f2ff;display:grid;place-items:center;font-size:18px}.comm-thread-copy{min-width:0}.comm-thread-copy strong,.comm-thread-copy small,.comm-thread-copy em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comm-thread-copy strong{font-size:13px;color:#18344f}.comm-thread-copy small{font-size:11px;color:#728195;margin-top:2px}.comm-thread-copy em{font-size:11px;color:#59697c;margin-top:5px;font-style:normal}.comm-thread-time{font-size:9px;color:#8995a4;white-space:nowrap;text-align:right}.comm-unread-dot{display:block;width:8px;height:8px;border-radius:50%;background:#0f67c7;margin:6px 0 0 auto}
.communication-conversation-card{padding:0!important;display:flex;flex-direction:column;overflow:hidden}.comm-conversation-head{padding:14px 16px;border-bottom:1px solid #e1eaf3;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#fbfdff,#f4f8fd)}.comm-conversation-head>div{display:flex;align-items:center;gap:9px}.comm-conversation-head>div>span{font-size:22px}.comm-conversation-head h3{margin:0;font-size:16px}.comm-conversation-head p,.comm-conversation-head small{margin:2px 0 0;color:#758397;font-size:10px}.comm-messages{flex:1;min-height:430px;max-height:520px;overflow:auto;padding:16px;background:#f8fbff;display:flex;flex-direction:column;gap:10px}.comm-placeholder{min-height:580px;display:grid;place-items:center;align-content:center;text-align:center;color:#738196}.comm-placeholder>span{font-size:46px}.comm-placeholder strong{font-size:17px;color:#31506c;margin-top:8px}.comm-placeholder p{max-width:300px;margin:7px auto 0}.comm-message{max-width:82%;border:1px solid #dce7f1;background:#fff;border-radius:15px;padding:10px 12px;box-shadow:0 2px 8px rgba(31,64,100,.05)}.comm-message.mine{align-self:flex-end;background:#eaf4ff;border-color:#c5dcf5}.comm-message.theirs{align-self:flex-start}.comm-message.kind-alert{border-left:4px solid #d97706}.comm-message.kind-approval_request{border-left:4px solid #6d28d9}.comm-message.kind-approval_response{border-left:4px solid #15803d}.comm-message.priority-critical{border-color:#e8a1a1}.comm-message header{display:flex;gap:7px;align-items:center;margin-bottom:5px}.comm-message header strong{font-size:11px;color:#22425e}.comm-message header span{font-size:9px;color:#738196}.comm-message header time{margin-left:auto;font-size:9px;color:#8793a1}.comm-message p{font-size:12px;line-height:1.55;margin:0;color:#283e52}.priority-tag{display:inline-block;margin-top:6px;padding:2px 6px;border-radius:999px;background:#fff1d6;color:#9a5b00;font-weight:700;font-size:9px}.priority-critical .priority-tag{background:#fee4e2;color:#b42318}.comm-composer{padding:12px;border-top:1px solid #dce6ef;background:#fff}.comm-composer textarea{width:100%;min-height:70px;resize:vertical}.comm-composer>div{display:flex;justify-content:flex-end;gap:8px;margin-top:7px}.comm-composer select{max-width:175px}
.activity-item{grid-template-columns:34px minmax(0,1fr) 8px;gap:8px;align-items:start;border-color:#e5ebf2;background:#fff}.activity-item:hover{background:#f5f9fd}.activity-item.unread{border-color:#bdd5f0;background:#eef6ff}.activity-item.priority-critical{border-left:4px solid #b42318}.activity-item.priority-high{border-left:4px solid #d97706}.activity-icon{width:32px;height:32px;border-radius:10px;background:#eff4fa;display:grid;place-items:center}.activity-item span:nth-child(2){min-width:0}.activity-item strong,.activity-item small,.activity-item em{display:block}.activity-item strong{font-size:11px;color:#193b5a}.activity-item small{font-size:10px;line-height:1.35;color:#67778a;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.activity-item em{font-style:normal;font-size:9px;color:#8995a4;margin-top:4px}.activity-item>b{width:7px;height:7px;border-radius:50%;background:#0f67c7;margin-top:4px}
.comm-empty{padding:22px 12px;text-align:center;color:#7a8795;display:flex;flex-direction:column;gap:4px}.comm-empty strong{color:#455c70}.comm-recipient-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;margin:10px 0 14px}.comm-recipient{border:1px solid #dce6ef;border-radius:12px;padding:10px;display:flex;gap:9px;align-items:center;cursor:pointer}.comm-recipient:has(input:checked){background:#edf6ff;border-color:#9ec4ee}.comm-recipient input{width:18px;height:18px}.comm-recipient span{display:flex;flex-direction:column;min-width:0}.comm-recipient strong{font-size:12px}.comm-recipient small{font-size:10px;color:#728195}
.approval-card{width:100%;border:1px solid #cddded;background:#fff;border-radius:16px;padding:13px;box-shadow:0 4px 14px rgba(29,64,100,.06);order:-1}.approval-card.status-approved{border-color:#a5d6b4;background:#f5fbf6}.approval-card.status-rejected{border-color:#e9b4b0;background:#fff8f7}.approval-card.status-info_requested{border-color:#e8cf98;background:#fffbf2}.approval-card.status-counteroffered{border-color:#d8b4fe;background:#fbf7ff}.approval-card.status-canceled{opacity:.78;background:#f6f7f9}.approval-head{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #e7edf3;padding-bottom:8px}.approval-head>div span{display:block;font-size:9px;color:#6d28d9;font-weight:800;letter-spacing:.06em}.approval-head>div strong{font-size:15px}.approval-head>b{font-size:11px;color:#56697b}.approval-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.approval-grid>div{background:#f6f9fc;border-radius:9px;padding:8px}.approval-grid span{display:block;font-size:9px;color:#758397;text-transform:uppercase}.approval-grid strong{display:block;font-size:11px;margin-top:2px;color:#253f56;word-break:break-word}.approval-grid .approval-impact strong{color:#b42318}.approval-grid .approval-reason{grid-column:span 2}.approval-comment{margin-top:10px;background:#f3f5f7;border-radius:9px;padding:8px;font-size:11px}.approval-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.approval-resubmit{margin-top:11px}.approval-resubmit textarea{width:100%;min-height:70px;margin:5px 0 7px}.discount-preview{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 13px}.discount-preview span{background:#eef5fc;border:1px solid #d3e2f1;border-radius:10px;padding:10px;font-size:11px;color:#5f7183}.discount-preview strong{display:block;font-size:16px;color:#0a3d78;margin-top:2px}
@media(max-width:1250px){.communication-layout{grid-template-columns:minmax(230px,.8fr) minmax(420px,1.5fr)}.communication-activity-card{grid-column:1/-1;min-height:auto!important}.communication-activity-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}}
@media(max-width:820px){.communication-summary{grid-template-columns:repeat(3,1fr);min-width:100%}.communication-layout{grid-template-columns:1fr}.communication-layout>.card{min-height:auto}.communication-thread-list{max-height:280px}.comm-messages{min-height:360px;max-height:500px}.communication-activity-card{grid-column:auto}.communication-activity-list{display:flex;max-height:330px}.comm-recipient-list{grid-template-columns:1fr}.approval-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-grid .approval-reason{grid-column:1/-1}.comm-message{max-width:94%}}
body.dark-mode .activity-bell,body.dark-mode .communication-summary>div,body.dark-mode .comm-message,body.dark-mode .activity-item,body.dark-mode .approval-card,body.dark-mode .comm-composer{background:#172331;color:#e9f2fb;border-color:#34465a}body.dark-mode .comm-thread-item:hover,body.dark-mode .comm-thread-item.active,body.dark-mode .comm-thread-item.unread,body.dark-mode .activity-item.unread{background:#1d3044;border-color:#3b5b7b}body.dark-mode .comm-messages{background:#111b27}body.dark-mode .comm-conversation-head{background:#162333;border-color:#34465a}body.dark-mode .comm-thread-copy strong,body.dark-mode .comm-message p,body.dark-mode .activity-item strong,body.dark-mode .approval-grid strong{color:#e6eef7}body.dark-mode .approval-grid>div,body.dark-mode .discount-preview span{background:#1c2b3a;border-color:#34465a}

.comm-load-more,.purchase-load-more{width:100%;border:1px dashed #b9cde1;background:#f6faff;color:#174d84;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer;margin-top:4px}.comm-load-more:hover,.purchase-load-more:hover{background:#eaf4ff}.comm-load-older{align-self:center;max-width:260px}.approval-next-step{margin-top:10px;padding:9px 10px;border:1px solid #c8ddec;border-radius:10px;background:#eef7ff;font-size:11px;line-height:1.45;color:#31506c}.approval-counter-box{margin-top:10px;padding:10px;border:1px solid #d8b4fe;border-radius:10px;background:#faf5ff}.approval-counter-box strong{display:block;color:#6d28d9;font-size:13px}.approval-counter-box span{display:block;color:#5b6674;font-size:10px;margin-top:3px}.approval-requester-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.approval-folio{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.approval-print-table{width:100%;border-collapse:collapse}.approval-print-table td{border:1px solid #ccd8e4;padding:8px;vertical-align:top}.approval-print-table td:first-child{width:34%;font-weight:800;background:#f4f8fc}.approval-print-status{display:inline-block;padding:6px 10px;border-radius:999px;background:#e9f7ed;color:#176b34;font-weight:900}.approval-print-note{margin-top:14px;padding:10px;border:1px solid #d6e3ef;border-radius:8px;background:#f7fbff;line-height:1.45}
body.dark-mode .comm-load-more,body.dark-mode .purchase-load-more{background:#172b3e;color:#dbeeff;border-color:#41617f}body.dark-mode .approval-counter-box,body.dark-mode .approval-next-step{background:#1b2b3c;color:#dceafa;border-color:#415c78}

/* M.3.2 RC5 · flujo de venta autorizada + historial compacto */

.authorized-sale-row{width:100%;border:1px solid #cde1d4;border-radius:14px;background:#fff;padding:12px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(120px,.75fr) auto;gap:12px;align-items:center;text-align:left;color:#173a2b;cursor:pointer;font:inherit;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.authorized-sale-row:hover{transform:translateY(-1px);border-color:#8fc7a2;box-shadow:0 8px 20px rgba(21,88,58,.08)}
.authorized-sale-row span{min-width:0}.authorized-sale-row strong,.authorized-sale-row b{display:block;color:#123e2b;font-size:13px}.authorized-sale-row small{display:block;color:#607568;font-size:10.5px;margin-top:3px;line-height:1.35}.authorized-sale-row em{font-style:normal;font-weight:900;color:#16633e;font-size:11px;white-space:nowrap}.authorized-sales-more{width:100%;margin-top:10px}
body.dark-mode .authorized-sales-card{background:#14261d;border-color:#315e45}body.dark-mode .authorized-sale-row{background:#172b22;border-color:#355a46;color:#e7f5ec}body.dark-mode .authorized-sale-row strong,body.dark-mode .authorized-sale-row b{color:#e7f5ec}body.dark-mode .authorized-sale-row small{color:#a9c3b2}body.dark-mode .authorized-sale-row em{color:#8bd0a5}
.authorized-sales-card{border:1px solid #b9d6c6;background:linear-gradient(180deg,#fbfffc,#f2fbf5)}
.authorized-sales-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.authorized-sales-head h3{margin:5px 0;color:#15583a}
.authorized-sales-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.authorized-sales-count{min-width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#e6f6eb;color:#17623e;font-size:20px;font-weight:900;border:1px solid #b8ddc4}
.authorized-sales-list{display:grid;gap:10px;margin-top:12px}
.authorized-sale-item{border:1px solid #cde1d4;border-radius:14px;background:#fff;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.authorized-sale-item strong{display:block;color:#123e2b;font-size:13px}
.authorized-sale-item span{display:block;color:#526b5d;font-size:11px;margin-top:3px;line-height:1.35}
.authorized-sale-item .btn{width:auto}
.authorized-sale-active{margin-top:12px;padding:12px 14px;border-radius:14px;background:#0f5132;color:#fff;font-size:12px;line-height:1.45}
.authorized-sale-active strong{font-size:13px}
.authorized-sale-active button{margin-top:8px}
.history-list-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:9px 11px;border-radius:12px;background:#f4f8fc;border:1px solid #dbe7f5;color:#4d6178;font-size:11px}
.history-accordion{display:block !important}
#historyAccordion{display:block !important}
#tablaHistorialWrapper{display:none !important}
.history-acc-title{font-size:12.5px}
.history-acc-sub{font-size:10.5px}
.history-acc-item.open{border-color:#a9c9e8;box-shadow:0 8px 20px rgba(10,49,95,.09)}
.history-acc-status{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:10px}
.history-load-more{width:100%;margin-top:8px}
@media(max-width:680px){.authorized-sale-item,.authorized-sale-row{grid-template-columns:1fr}.authorized-sale-item .btn{width:100%}.authorized-sale-row em{white-space:normal}}
@media print{
  #tablaHistorialWrapper{display:block !important;overflow:visible !important}
  #tablaHistorial{display:table !important}
  .history-accordion,#historyAccordion,#btnHistorialVerMas{display:none !important}
}

/* 2G-M.3.3 · acceso multifunción */
.access-architecture-note{margin:4px 0 14px;padding:12px 14px;border:1px solid var(--border,#d8dee8);border-radius:12px;background:rgba(30,64,175,.04);line-height:1.45}
.operational-function-grid,.responsibility-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.user-function-summary{display:block;margin-top:5px;color:var(--muted,#667085);line-height:1.35;white-space:normal}
.user-function-summary strong{color:var(--text,#1f2937);font-weight:700}
.access-model-grid article{min-height:152px}
#workerAccessDialog .dialog-card{max-width:min(900px,94vw)}
#workerAccessDialog h4{margin-top:18px;margin-bottom:8px}
@media(max-width:720px){.operational-function-grid,.responsibility-grid{grid-template-columns:1fr}.access-model-grid article{min-height:auto}}

/* ETAPA 2G-M.3.4 · Almacenes y cadena de custodia */
.warehouse-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;padding:18px 20px;border:1px solid #d7e4f2;border-radius:18px;background:linear-gradient(135deg,#f9fcff,#eef6ff)}
.warehouse-hero h2{margin:4px 0 6px;color:#143f68}.warehouse-hero p{margin:0;max-width:900px;color:#607286;line-height:1.5}
.warehouse-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.warehouse-kpis article{background:#fff;border:1px solid #d9e5f1;border-radius:15px;padding:13px 14px;box-shadow:0 4px 14px rgba(15,58,98,.05)}.warehouse-kpis span{display:block;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#607286}.warehouse-kpis strong{display:block;margin:3px 0;font-size:25px;color:#0a3d78}.warehouse-kpis small{color:#7c8b9b;font-size:10px;line-height:1.35}
.warehouse-grid{align-items:start}.warehouse-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.warehouse-card-head h3{margin:3px 0 0}.status-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eaf2ff;color:#0a4b86;font-size:9px;font-weight:900;white-space:nowrap}.status-pill.warning{background:#fff4d8;color:#986100}.status-pill.ok{background:#e8f7ee;color:#18763b}.status-pill.danger{background:#feeceb;color:#b42318}
.custody-draft-list,.custody-balance-list,.custody-transfer-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}.custody-draft-row,.custody-balance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #dbe7f2;border-radius:12px;background:#f9fcff}.custody-draft-row strong,.custody-balance-row strong{display:block;font-size:12px;color:#203e5b}.custody-draft-row small,.custody-balance-row small{display:block;margin-top:2px;color:#718197;font-size:10px}.custody-balance-row>b{color:#0a3d78;font-size:17px;white-space:nowrap}.custody-balance-row>b small{display:inline;font-size:9px}
.form-action-bottom{display:flex;align-items:flex-end}.form-action-bottom .btn{width:100%}.icon-btn{border:1px solid #d8e3ef;background:#fff;border-radius:8px;padding:5px 8px;cursor:pointer}.icon-btn.danger{color:#b42318}.btn-block{width:100%}.btn-sm{padding:6px 9px;font-size:10px}.btn-ghost{background:#fff;border:1px solid #d7e1ec;color:#53677d}
.custody-transfer-item{border:1px solid #d9e5f0;border-radius:14px;background:#fff;padding:12px;box-shadow:0 3px 12px rgba(20,58,96,.05)}.custody-transfer-item.self-confirmation{border-color:#efa72f;background:#fffcf5}.custody-transfer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:9px}.custody-transfer-head strong{display:block;color:#173f64;font-size:12px}.custody-transfer-head small{display:block;color:#7a8898;font-size:9px;margin-top:2px}.custody-route{font-size:11px;font-weight:800;color:#395b78;margin-top:8px}.custody-lines{font-size:10px;color:#607286;line-height:1.5;margin-top:5px}.custody-note{font-size:10px;color:#52687c;background:#f6f9fc;border-radius:8px;padding:7px;margin:7px 0 0}.custody-self-alert{margin-top:8px;padding:8px;border-radius:9px;background:#fff1cf;color:#8a5900;font-size:10px;font-weight:800}.custody-transfer-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.custody-transfer-actions .btn{width:auto}.custody-transfer-item.status-rejected,.custody-transfer-item.status-canceled{opacity:.78}
body.dark-mode .warehouse-hero,body.dark-mode .warehouse-kpis article,body.dark-mode .custody-transfer-item,body.dark-mode .custody-draft-row,body.dark-mode .custody-balance-row{background:#172331;color:#e6eef7;border-color:#34465a}body.dark-mode .warehouse-hero h2,body.dark-mode .warehouse-kpis strong,body.dark-mode .custody-transfer-head strong,body.dark-mode .custody-draft-row strong,body.dark-mode .custody-balance-row strong{color:#e8f2fc}body.dark-mode .warehouse-hero p,body.dark-mode .custody-lines,body.dark-mode .custody-route{color:#b4c3d2}
@media(max-width:980px){.warehouse-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-hero{flex-direction:column}.warehouse-hero .btn{width:100%}}
@media(max-width:620px){.warehouse-kpis{grid-template-columns:1fr}.custody-transfer-head{flex-direction:column}.custody-transfer-actions .btn{width:100%}}

