:root{--bg:#05070c;--surface:#0e131d;--surface-2:#161d2b;--border:#232c40;--text:#eaf1fb;--text-dim:#7f8ba3;--accent:#2f8fff;--accent-hover:#1f74e0;--accent-glow:#29d1ff;--danger:#e5484d;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button{cursor:pointer;font-family:inherit}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;width:340px;padding:32px;display:flex}.login-logo{object-fit:contain;filter:drop-shadow(0 0 18px #2f8fff59);align-self:center;width:88px;height:88px;margin-bottom:4px}.login-card h1{text-align:center;letter-spacing:.06em;color:var(--text);text-shadow:0 0 16px #2f8fff73;margin:0;font-size:22px}.login-card .subtitle{color:var(--text-dim);text-align:center;margin:-8px 0 8px;font-size:12px}.login-card label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-card input{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}.login-card input:focus{border-color:var(--accent);outline:none}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:8px;margin-top:8px;padding:11px;font-size:14px;font-weight:600}.login-card button:hover{background:var(--accent-hover)}.login-card button:disabled{opacity:.6;cursor:default}.error{border:1px solid var(--danger);color:#ff9a9d;background:#e5484d1f;border-radius:8px;padding:8px 10px;font-size:13px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:220px;padding:20px 14px;display:flex}.brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:12px;padding:0 10px 20px;display:flex}.brand-logo{object-fit:contain;border-radius:8px;flex-shrink:0;width:40px;height:40px}.brand-texto{flex-direction:column;min-width:0;display:flex}.brand-nombre{letter-spacing:.04em;color:var(--text);text-shadow:0 0 12px #2f8fff66;font-size:15px;font-weight:800}.brand-sub{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;font-size:10px}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:var(--text-dim);border-radius:8px;padding:9px 12px;font-size:14px;text-decoration:none}.sidebar nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar nav a.active{background:var(--accent);color:#fff}.usuario-box{border-top:1px solid var(--border);padding-top:14px;font-size:13px}.usuario-nombre{font-weight:600}.usuario-rol{color:var(--text-dim);text-transform:capitalize;margin-bottom:10px}.usuario-box button{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;padding:8px;font-size:13px}.usuario-box button:hover{background:var(--border)}.content{flex:1;padding:28px 36px}.page-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.page-header h1{margin:0;font-size:20px}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}button:hover{background:var(--accent-hover)}button:disabled{opacity:.6;cursor:default}.btn-secundario{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-weight:500}.btn-secundario:hover{background:var(--border)}.filtros{margin-bottom:14px}.filtros select,select,input[type=number],input[type=text],input[type=email],input[type=password],textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-family:inherit;font-size:13px}.tabla{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.tabla th,.tabla td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px;font-size:13px}.tabla th{color:var(--text-dim);background:var(--surface-2);font-weight:600}.tabla tbody tr:hover{background:var(--surface-2)}.tabla .vacio{text-align:center;color:var(--text-dim);padding:24px}.rol-cell{text-transform:capitalize}.stock-bajo{color:var(--danger);font-weight:700}.badge{border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.badge-ok{color:#4ade80;background:#34c75926}.badge-off{color:var(--text-dim);background:#8b93ab26}.badge-entrada{color:#4ade80;background:#34c75926}.badge-salida{color:#f87171;background:#e5484d26}.badge-ajuste{color:#7ea2ff;background:#4f7cff26}.subheading{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:24px 0 10px;font-size:14px}.subheading:first-of-type{margin-top:0}.modal-ancho{width:640px}.fila-producto{flex-wrap:wrap}.fila-producto label{min-width:0}.fila-producto label:first-child{flex:2 200px}.fila-producto label:nth-child(2){flex:0 90px}.fila-producto select{text-overflow:ellipsis;width:100%;min-width:0}.btn-agregar{flex:none;align-self:flex-end}.tabla-carrito{margin-top:4px}.input-precio{width:90px}.total-carrito{text-align:right;font-size:16px;font-weight:700}.fila-clickeable{cursor:pointer}.detalle-venta{background:var(--surface-2);padding:14px!important}.tabla-anidada{border:1px solid var(--border)}.badge-danger{color:#f87171;background:#e5484d26}.stat-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px}.stat-valor{font-size:24px;font-weight:700}.stat-ok{color:#4ade80}.stat-danger{color:#f87171}.filtros-fila{gap:10px;display:flex}.dashboard-grid{grid-template-columns:1.3fr 1fr;align-items:start;gap:16px;margin-bottom:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:18px}.panel .subheading{margin-top:0}.badge-critico{color:#f87171;background:#d03b3b26}.chart-vacio{color:var(--text-dim);padding:20px 0;font-size:13px}.chart-wrap{position:relative;overflow-x:auto}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-bar{fill:var(--accent);transition:fill .1s}.chart-bar-activa{fill:var(--accent-hover)}.chart-eje-label{fill:var(--text-dim);font-size:10px}.chart-tooltip{background:var(--surface-2);border:1px solid var(--border);pointer-events:none;white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:0;transform:translate(-50%)}.ranking{flex-direction:column;gap:10px;display:flex}.ranking-fila{grid-template-columns:140px 1fr 32px;align-items:center;gap:10px;font-size:13px;display:grid}.ranking-nombre{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ranking-barra-track{background:var(--surface-2);border-radius:4px;height:10px;overflow:hidden}.ranking-barra{background:var(--accent);border-radius:4px;height:100%}.ranking-valor{text-align:right;font-weight:600}.modal-overlay{z-index:50;background:#06091099;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;width:520px;max-width:92vw;max-height:88vh;padding:24px;display:flex;overflow-y:auto}.modal-card h2{margin:0;font-size:18px}.modal-card label{color:var(--text-dim);flex-direction:column;flex:1;gap:6px;font-size:12px;display:flex}.form-row{gap:12px;display:flex}.inline-field{gap:8px;display:flex}.inline-field select,.inline-field input{flex:1}.inline-field button{white-space:nowrap;padding:8px 12px;font-size:12px}.checkbox-field{align-items:center;color:var(--text)!important;flex-direction:row!important;gap:8px!important;font-size:13px!important}.checkbox-field input{width:auto}.modal-actions{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}
