:root{--rojo:#D92323;--rojo-osc:#B71C1C;--azul:#12326B;--azul-claro:#1B4A9B;--verde:#25D366;--verde-osc:#128C4A;--amarillo:#FFC107;--fondo:#FFF8F0;--card:#ffffff;--borde:#E8DDD3;--texto:#222222;--muted:#4B5563;--radius:14px;--shadow:0 2px 10px rgba(18,50,107,.1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fondo);color:var(--texto)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;padding:10px 12px;border:1.5px solid var(--borde);border-radius:10px;background:#fff;width:100%}input:focus,select:focus,textarea:focus{outline:3px solid var(--azul-claro);outline-offset:1px;border-color:var(--azul)}button:focus-visible,a:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--azul-claro)}label{font-weight:600;font-size:.9rem;display:block;margin-bottom:6px}a{color:var(--azul-claro)}.topbar{position:sticky;top:0;z-index:40;background:var(--azul);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.topbar .logo{font-weight:900;font-size:1.15rem;letter-spacing:.3px}.topbar .logo span{color:var(--amarillo)}.topbar .sub{font-size:.72rem;opacity:.9;line-height:1.2}.topbar .spacer{flex:1}.topbar .userbox{text-align:right;font-size:.82rem;line-height:1.25}.badge-rol{background:var(--rojo);color:#fff;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700;text-transform:uppercase}.btn{background:var(--rojo);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:700}.btn:hover{background:var(--rojo-osc)}.btn.azul{background:var(--azul)}.btn.azul:hover{background:var(--azul-claro)}.btn.verde{background:var(--verde-osc)}.btn.verde:hover{background:#0e6b38}.btn.wa{background:var(--verde);color:#063}.btn.secundario{background:#fff;color:var(--azul);border:1.5px solid var(--azul)}.btn.chico{padding:6px 10px;font-size:.85rem;border-radius:8px}.btn:disabled{opacity:.55;cursor:not-allowed}.container{max-width:1100px;margin:0 auto;padding:16px 16px 96px}@media (min-width:768px){.container{padding-bottom:32px}}.nav-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.nav-tabs button{background:#fff;border:1.5px solid var(--borde);border-radius:999px;padding:8px 16px;font-weight:700;color:var(--azul)}.nav-tabs button.activo{background:var(--azul);color:#fff;border-color:var(--azul)}@media (max-width:767px){.nav-tabs.movil-oculta{display:none}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fff;border-top:2px solid var(--borde);display:flex}.bottom-nav button{flex:1;background:none;border:none;padding:10px 2px 12px;font-size:.78rem;font-weight:700;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px}.bottom-nav button .ico{font-size:1.3rem}.bottom-nav button.activo{color:var(--rojo)}.bottom-nav .cart-count{background:var(--rojo);color:#fff;border-radius:999px;font-size:.68rem;padding:1px 7px}@media (min-width:768px){.bottom-nav{display:none}}.card{background:var(--card);border:1px solid var(--borde);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.grid{display:grid;gap:14px}.grid.kpis{grid-template-columns:repeat(2,1fr)}@media (min-width:768px){.grid.kpis{grid-template-columns:repeat(4,1fr)}.grid.dos{grid-template-columns:1fr 1fr}}.kpi .num{font-size:1.7rem;font-weight:900;color:var(--azul)}.kpi .lbl{color:var(--muted);font-size:.85rem;font-weight:600}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--borde);vertical-align:top}th{color:var(--azul);font-size:.8rem;text-transform:uppercase}.table-wrap{overflow-x:auto}.search-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.search-row input{flex:1;min-width:180px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px}.chip{white-space:nowrap;background:#fff;border:1.5px solid var(--borde);border-radius:999px;padding:10px 16px;font-weight:600;font-size:.85rem;min-height:44px;display:inline-flex;align-items:center}.chip.activo{background:var(--rojo);color:#fff;border-color:var(--rojo)}.lineas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}@media (min-width:768px){.lineas-grid{grid-template-columns:repeat(3,1fr)}}.linea-card{background:var(--card);border:1.5px solid var(--borde);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 14px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:84px;width:100%}.linea-card:hover{border-color:var(--rojo)}.linea-card:active{transform:scale(.98)}.linea-nombre{font-weight:800;color:var(--azul);font-size:1rem;line-height:1.25}.linea-count{color:var(--muted);font-size:.85rem;font-weight:600}.producto{display:flex;gap:12px;align-items:flex-start}.producto .info{flex:1}.producto .nombre{font-weight:700;line-height:1.3}.producto .meta{color:var(--muted);font-size:.82rem}.precio{font-weight:900;color:var(--rojo);font-size:1.05rem;white-space:nowrap}.add-box{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:stretch}.add-box select{width:auto;flex:1;min-width:110px}.stepper{display:inline-flex;align-items:stretch;gap:4px}.stepper input{width:58px;text-align:center}.step-btn{min-width:44px;min-height:44px;border:1.5px solid var(--azul);background:#fff;color:var(--azul);border-radius:10px;font-size:1.25rem;font-weight:900;line-height:1;padding:0 10px}.step-btn:active{background:var(--azul);color:#fff}.precio-base{font-size:.72rem;font-weight:600;color:var(--muted);white-space:nowrap;text-align:right}.cliente-picker{position:relative;flex:1;min-width:200px}.cliente-lista{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1.5px solid var(--borde);border-radius:12px;box-shadow:var(--shadow);max-height:264px;overflow:auto}.cliente-opcion{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--borde);padding:10px 12px;min-height:44px}.cliente-opcion:last-child{border-bottom:none}.cliente-opcion:active,.cliente-opcion:hover{background:var(--fondo)}.add-box .btn{min-height:44px}@media (max-width:767px){.btn.chico{min-height:44px;padding:10px 14px}}.estado{border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.estado.nuevo{background:#fef3c7;color:#92400e}.estado.confirmado{background:#dbeafe;color:#1e40af}.estado.facturado{background:#d1fae5;color:#065f46}.estado.entregado{background:#e0e7ff;color:#3730a3}.estado.anulado,.estado.pausado{background:#fee2e2;color:#991b1b}.grid.import-kpis{grid-template-columns:repeat(2,1fr);margin-top:10px}@media (min-width:768px){.grid.import-kpis{grid-template-columns:repeat(4,1fr)}}.kpi.peligro{border-color:var(--rojo);background:#fff1f1}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,var(--azul) 0%,var(--azul-claro) 55%,var(--rojo) 130%)}.login-card{background:#fff;border-radius:20px;padding:28px;max-width:400px;width:100%;box-shadow:0 10px 40px #00000040}.login-card h1{margin:0 0 4px;color:var(--azul);font-size:1.5rem}.login-card h1 span{color:var(--rojo)}.login-card p{color:var(--muted);margin:0 0 18px}.error{background:#fee2e2;color:#991b1b;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-weight:600}.ok{background:#d1fae5;color:#065f46;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-weight:600}.form-grid{display:grid;gap:12px}.form-grid.dos{grid-template-columns:1fr}@media (min-width:640px){.form-grid.dos{grid-template-columns:1fr 1fr}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:60;display:flex;align-items:flex-end;justify-content:center}@media (min-width:768px){.modal-bg{align-items:center}}.modal{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:20px}@media (min-width:768px){.modal{border-radius:18px}}.carrito-item{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--borde);padding:10px 0}.muted{color:var(--muted)}.small{font-size:.85rem}.right{text-align:right}.mt{margin-top:14px}.flex{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.total-box{background:#fff3cd;border:1.5px dashed var(--amarillo);border-radius:12px;padding:14px}.print-only{display:none}@page{size:A4;margin:12mm}@page termica{size:80mm auto;margin:4mm}@media print{body{background:#fff}.topbar,.bottom-nav,.nav-tabs,.no-print{display:none!important}.print-only{display:block}.container{padding:0;max-width:none}.card{box-shadow:none;border:none}.modal-bg{position:static;background:none;display:block}.modal{max-height:none;overflow:visible;max-width:none;width:100%;border-radius:0;padding:0;box-shadow:none}.table-wrap{overflow:visible}body.print-termica .modal{page:termica;max-width:80mm;width:80mm;margin:0 auto}body.print-termica .modal table{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}body.print-termica .modal th,body.print-termica .modal td{padding:3px 4px}body.print-termica .total-box{border:none;background:none;padding:6px 0}}.sku{font-weight:800;color:#12326b;white-space:nowrap;letter-spacing:.01em}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:84px;z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:92vw;pointer-events:none}@media (min-width:768px){.toasts{bottom:24px}}.toast{background:var(--azul);color:#fff;padding:12px 18px;border-radius:999px;font-weight:700;font-size:.92rem;box-shadow:0 6px 24px #0000004d;text-align:center;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.aviso{background:#fef3c7;color:#92400e;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-weight:600}.badge-nuevos{background:#fef3c7;color:#92400e;border-radius:999px;padding:3px 12px;font-size:.8rem;font-weight:800;vertical-align:middle;white-space:nowrap}.banner-offline{position:fixed;top:0;left:0;right:0;z-index:96;background:#7c2d12;color:#fff;text-align:center;font-weight:700;font-size:.9rem;padding:10px 14px;box-shadow:0 2px 10px #00000040}.con-banner{padding-top:42px}.con-banner .topbar{top:42px}.ayuda{background:#dbeafe;color:#1e40af;border:1.5px solid #BFDBFE;border-radius:12px;padding:12px 14px;margin-bottom:12px;display:flex;gap:10px;align-items:center;font-weight:600;font-size:.92rem}.ayuda .btn{flex-shrink:0}
