﻿:root{
  --bg:#eef4f8;--card:#ffffff;--line:#d6e1ea;--text:#1f2937;--muted:#64748b;
  --primary:#2563eb;--primary-soft:#dbeafe;--success:#22c55e;--warn:#facc15;--danger:#ef4444;--green-soft:#dcfce7;
}
*{box-sizing:border-box} body{font-family:"Segoe UI",Arial,sans-serif;margin:0;background:linear-gradient(135deg,#eef4f8,#f8fbfd);color:var(--text);font-size:15px}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:36px}.app-shell{min-height:100vh}.topbar{height:54px;display:flex;align-items:center;gap:16px;padding:0 18px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);box-shadow:0 6px 18px rgba(15,23,42,.06);position:relative;z-index:100}.brand-wrap{display:flex;align-items:center;gap:9px;white-space:nowrap}.brand-dot{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--primary);color:white;font-weight:800}.brand{font-weight:800;letter-spacing:.2px}.menu-bar{display:flex;align-items:center;gap:4px;flex:1}.menu-item{position:relative}.menu-item>a,.menu-item>span{display:block;padding:10px 13px;text-decoration:none;color:var(--text);border-radius:12px;cursor:pointer}.menu-item:hover>a,.menu-item:hover>span{background:var(--primary-soft);color:#1d4ed8}.submenu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);min-width:235px;border-radius:14px;padding:7px;box-shadow:0 20px 35px rgba(15,23,42,.16);z-index:200}.menu-item:hover>.submenu,.menu-item:focus-within>.submenu{display:block}.submenu .menu-item>a,.submenu .menu-item>span{padding:9px 12px;border-radius:10px;white-space:nowrap}.submenu .submenu{left:100%;top:0}.session-chip{font-size:12px;color:#334155;background:#f1f5f9;border:1px solid var(--line);padding:7px 10px;border-radius:999px;white-space:nowrap}.page-card{clear:both;margin:28px auto;padding:22px;max-width:1540px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 28px rgba(15,23,42,.06)}h1{font-size:32px;margin:0 0 18px;font-weight:800;letter-spacing:.2px}.panel,.box,.login-box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 7px 18px rgba(15,23,42,.05)}.panel-warm{background:#fff7e8}.form-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:10px 0}label{font-weight:600;color:#334155}input,select,textarea{font-size:15px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;min-height:38px}input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:#60a5fa}.input-lg{min-width:380px}.input-xl{min-width:520px}.btn,button{border:0;border-radius:12px;padding:10px 18px;cursor:pointer;font-weight:700;box-shadow:0 3px 8px rgba(15,23,42,.08)}.btn-primary{background:var(--primary);color:#fff}.btn-green,.btn-success{background:var(--success);color:#052e16}.btn-blue{background:#e0f2fe;color:#075985;border:1px solid #7dd3fc}.btn-gray,.btn-soft{background:#f1f5f9;color:#334155;border:1px solid #d8e2ec}.btn-danger{background:#fee2e2;color:#991b1b}.grid-wrap{max-height:365px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}table{border-collapse:separate;border-spacing:0;width:100%;background:#fff}th,td{border-bottom:1px solid #e2e8f0;padding:9px 10px;text-align:left;font-size:14px}th{background:#f8fafc;font-weight:800;position:sticky;top:0;z-index:1}tr:hover td{background:#f8fbff}.selected td{background:#dbeafe!important}.right{text-align:right}.center{text-align:center}.small{font-size:12px}.muted{color:var(--muted)}.legend{display:flex;gap:12px;align-items:center;margin:8px 0;flex-wrap:wrap}.colorbox{width:34px;height:16px;border-radius:5px;border:1px solid #334155;display:inline-block}.normal{background:#fff}.exonerado{background:#fef08a}.incentivo{background:#7dd3fc}.controlado{background:#fca5a5}.refrigerado{background:#86efac}.row-exonerado td{background:#fffbeb}.row-incentivo td{background:#e0f2fe}.row-controlado td{background:#fee2e2}.row-refrigerado td{background:#dcfce7}.faltante td,.faltante{background:#ef4444!important;color:#111}.sobrante td,.sobrante{background:#93c5fd!important;color:#111}.cuadrado td,.cuadrado{background:#fff!important;color:#111}.modal-back{position:fixed;inset:0;background:rgba(15,23,42,.25);z-index:500}.modal{background:#dbeafe;width:min(680px,92vw);margin:90px auto;padding:24px;border:1px solid #93c5fd;border-radius:22px;box-shadow:0 25px 50px rgba(15,23,42,.25)}.print-area{background:#fff;border:1px solid #222;padding:25px;max-width:950px;margin:auto}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.totals{font-size:18px;font-weight:800;text-align:right;margin:14px 0}.kbd{font-family:Consolas,monospace;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:7px;padding:2px 6px}.login-box{width:min(540px,94vw)}.login-title{text-align:center;margin-bottom:10px}.no-menu-warning{font-weight:bold;color:#b91c1c}
.alert-red{margin:12px 0;padding:12px 16px;border-radius:14px;background:#fff1f2;color:#dc2626;font-weight:800;border:1px solid #fecdd3}
.alert-ok{margin:12px 0;padding:12px 16px;border-radius:14px;background:#ecfdf5;color:#047857;font-weight:800;border:1px solid #a7f3d0}
.info-chip{display:inline-block;padding:8px 14px;border-radius:18px;background:#eef6ff;color:#1e40af;font-weight:700;border:1px solid #bfdbfe}

.perm-panel{display:flex;gap:20px;align-items:center;margin:18px 0;padding:18px;background:#fff;border-radius:18px;border:1px solid #dbe7f3;box-shadow:0 12px 35px rgba(15,23,42,.08)}
.perm-box{display:flex;flex-direction:column;gap:8px}.perm-title{background:#fb7f5f;color:white;font-weight:700;padding:8px 12px;border-radius:10px 10px 0 0;text-align:center}.perm-list{width:280px;height:330px;border:1px solid #cbd5e1;border-radius:0 0 10px 10px;padding:8px;background:#f8fafc}.perm-actions{display:flex;flex-direction:column;gap:14px}

.module-page{display:block;width:100%;}
.module-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.security-users-page{display:block;}
.security-users-page .user-form-panel{display:block;width:100%;max-width:980px;margin:0 0 18px 0;position:relative;z-index:1;}
.security-users-page .user-grid-wrap{clear:both;width:100%;position:relative;z-index:0;margin-top:14px;}
.security-users-page input{max-width:100%;}

/* Escritorio interno tipo MDI: los formularios se abren dentro del cuadro principal, no en ventanas del navegador. */
.internal-desktop{max-width:calc(100vw - 64px);min-height:calc(100vh - 110px);padding:0;overflow:hidden;background:rgba(255,255,255,.62)}
.workspace-shell{display:flex;flex-direction:column;min-height:calc(100vh - 112px);width:100%}
.workspace-tabs{display:flex;gap:6px;align-items:center;min-height:42px;padding:8px 12px;background:#eef6fb;border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap}
.workspace-tab{display:inline-flex;align-items:center;gap:8px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;border-radius:13px 13px 0 0;padding:8px 12px;box-shadow:none;min-width:110px;justify-content:space-between}
.workspace-tab.active{background:#ffffff;color:#0f172a;border-bottom-color:#ffffff;box-shadow:0 -2px 8px rgba(15,23,42,.05)}
.workspace-tab .tab-close{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#e2e8f0;color:#334155;font-weight:900;line-height:1}
.workspace-tab .tab-close:hover{background:#fee2e2;color:#991b1b}
.workspace-frame{position:relative;flex:1;min-height:620px;padding:20px;background:linear-gradient(135deg,#f6fbff,#eef5f8);overflow:auto}
.workspace-panel{width:100%;height:auto;min-height:580px}
.workspace-panel.hidden{display:none}
.workspace-panel.active{display:block}
.workspace-panel h1{margin-top:0}
/* Acceso: formulario centrado y dos ilustraciones reemplazables. */
.login-shell { padding:40px 24px; background:radial-gradient(ellipse at 50% 25%,#fff 0%,#f1f7f5 65%,#eaf1f4 100%); }
.access-page { width:100%; max-width:1180px; margin:auto; }
.access-brand { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:46px; font-size:28px; font-weight:750; letter-spacing:-1px; }
.access-brand-accent { color:#208265; }
.access-brand small { display:block; margin-top:3px; font-size:12px; font-weight:400; letter-spacing:.3px; color:#63756f; }
.access-mark { display:grid; place-items:center; width:48px; height:48px; background:#207e62; border-radius:15px; color:#fff; font-size:32px; }
.access-grid { display:grid; grid-template-columns:minmax(0,1fr) 400px minmax(0,1fr); align-items:center; gap:36px; }
.access-feature { text-align:center; padding:8px; }
.access-feature img { display:block; width:100%; max-width:290px; height:auto; margin:0 auto 22px; }
.access-feature h2 { font-size:20px; line-height:1.3; margin:0 0 12px; color:#243e38; }
.access-feature p { color:#61746e; font-size:14px; line-height:1.75; margin:0 auto; max-width:260px; }
.access-card { padding:38px 32px 26px; border:1px solid #dae7e1; border-radius:24px; background:#fff; box-shadow:0 18px 55px #294d3c12; }
.access-eyebrow { font-size:10px; letter-spacing:1.7px; font-weight:700; color:#258166; }
.access-card h1 { font-size:30px; margin:12px 0 8px; letter-spacing:-.7px; color:#1d3530; }
.access-intro { margin:0 0 28px; color:#6b7d77; font-size:14px; }
.access-card form { display:flex; flex-direction:column; }
.access-card label { font-size:13px; margin-bottom:8px; color:#344d45; }
.access-card input { width:100%; min-width:0; height:48px; margin-bottom:20px; border-color:#d5e1db; border-radius:10px; font-size:14px; background:#fcfefd; }
.access-card input:focus { outline:3px solid #def3e9; border-color:#258166; }
.access-card input::placeholder { color:#8b9993; }
.access-submit { display:flex; justify-content:space-between; align-items:center; width:100%; height:48px; margin-top:4px; background:#207e62; color:white; border-radius:10px; font-size:15px; }
.access-submit:hover { background:#17644e; }
.access-submit:focus-visible { outline:3px solid #75c9ae; outline-offset:3px; }
.access-help { margin:24px 0 0; font-size:11px; line-height:1.6; color:#7b8984; text-align:center; }
.access-error { padding:10px; border-radius:8px; background:#fff0ee; color:#a63128; font-size:13px; margin:0 0 12px; }
.access-footer { text-align:center; margin-top:44px; color:#81918a; font-size:10px; letter-spacing:2px; }
@media(max-width:1000px) { .access-grid { grid-template-columns:minmax(0,1fr) 360px minmax(0,1fr); gap:16px; } .access-feature h2 { font-size:17px; } }
@media(max-width:760px) { .login-shell { padding:28px 16px; } .access-brand { margin-bottom:26px; } .access-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 12px; } .access-card { grid-column:1/-1; grid-row:1; width:100%; max-width:400px; justify-self:center; padding:30px 24px; } .access-feature { padding:0; } .access-feature img { max-width:170px; margin-bottom:12px; } .access-feature h2 { font-size:15px; } .access-feature p { font-size:12px; } .access-footer { margin-top:28px; } }

.seleccion-productos-venta { border: 3px solid #00a6df; padding: 14px; margin: 20px 0; border-radius: 8px; }
.seleccion-productos-venta h4 { margin-top: 0; }

.resumen-modificacion { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:24px; padding:18px; margin:12px 0 20px; background:#eef8ff; border:1px solid #c4def1; border-radius:10px; font-variant-numeric:tabular-nums; }
.resumen-modificacion .total-modificacion { font-size:1.15rem; color:#123e66; }
