*{box-sizing:border-box;margin:0;padding:0;}
:root{--accent:#1e6bff;--accent2:#00c896;--warn:#f59e0b;--danger:#ef4444;--dark:#0d1117;--sidebar:#1a1f2e;
/* ── Tema claro: superficies del sistema operativo ── */
--os-bg:#ffffff;          /* fondo general (escritorio y áreas del sistema) */
--os-bar:#ffffff;         /* barra de tareas */
--os-line:rgba(15,23,42,.10);   /* separadores y bordes finos */
--os-soft:rgba(15,23,42,.045);  /* relleno suave de chips/botones */
--os-soft2:rgba(15,23,42,.085); /* relleno suave en hover */
--os-txt:#1e293b;         /* texto principal sobre claro */
--os-txt2:#475569;        /* texto secundario */
--os-txt3:#64748b;        /* texto terciario / etiquetas */
}
html{background:var(--os-bg);}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--os-bg);overflow:hidden;height:100vh;}

/* ═══════════════════ LOGIN ═══════════════════ */
#login-screen{position:fixed;inset:0;background:radial-gradient(ellipse at 30% 40%,#0a1f3e,#0d1117 60%,#07110a);display:flex;align-items:center;justify-content:center;z-index:9999;}
.login-box{background:rgba(255,255,255,0.04);border:0.5px solid rgba(255,255,255,0.1);border-radius:16px;padding:40px 36px;width:340px;text-align:center;}
.login-logo{font-size:36px;margin-bottom:8px;}
.login-title{font-size:22px;font-weight:700;color:#fff;margin-bottom:4px;}
.login-sub{font-size:12px;color:rgba(255,255,255,0.4);margin-bottom:28px;}
.login-inp{width:100%;padding:10px 14px;border:0.5px solid rgba(255,255,255,0.15);border-radius:8px;background:rgba(255,255,255,0.06);color:#fff;font-size:13px;margin-bottom:10px;outline:none;}
.login-inp::placeholder{color:rgba(255,255,255,0.3);}
.login-inp:focus{border-color:var(--accent);}
.login-btn{width:100%;padding:11px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-top:4px;transition:opacity .15s;}
.login-btn:hover{opacity:.88;}
.login-err{font-size:11px;color:var(--danger);margin-top:8px;min-height:16px;}
.login-google{width:100%;padding:11px;border:none;border-radius:8px;background:#fff;color:#1f2937;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:opacity .15s;}
.login-google:hover{opacity:.9;}
.login-google:disabled{opacity:.55;cursor:wait;}
.login-g{width:22px;height:22px;border-radius:50%;background:#1a73e8;color:#fff;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.login-sep{display:flex;align-items:center;gap:10px;margin:16px 0 12px;font-size:10.5px;color:rgba(255,255,255,0.35);}
.login-sep::before,.login-sep::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.12);}
.login-register{font-size:11px;color:rgba(255,255,255,0.35);margin-top:16px;}
.login-register a{color:var(--accent);cursor:pointer;text-decoration:none;}

/* ═══════════════════ OS ROOT ═══════════════════ */
#os{display:none;flex-direction:column;height:100vh;width:100vw;position:fixed;inset:0;background:var(--os-bg);}
#os.visible{display:flex;}
#wallpaper{position:absolute;inset:0;background:var(--os-bg);z-index:0;}
#wp-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.035) 1px,transparent 1px);background-size:36px 36px;z-index:0;}
#desktop{flex:1;position:relative;z-index:1;overflow:hidden;}

/* ═══════════════════ WIDGETS DEL ESCRITORIO ═══════════════════ */
/* Tarjetas que viven sobre el escritorio, detrás de las ventanas. */
.wdg{position:absolute;z-index:3;display:flex;flex-direction:column;background:rgba(255,255,255,.94);
  border:.5px solid rgba(15,23,42,.10);border-radius:13px;box-shadow:0 6px 22px rgba(15,23,42,.13);
  overflow:hidden;backdrop-filter:blur(6px);}
.wdg-head{display:flex;align-items:center;gap:6px;padding:7px 9px;cursor:move;user-select:none;
  background:linear-gradient(180deg,rgba(248,250,252,.96),rgba(241,245,249,.9));border-bottom:.5px solid rgba(15,23,42,.07);}
.wdg-title{font-size:10.5px;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wdg-sub{font-size:9px;color:#94a3b8;font-weight:500;white-space:nowrap;}
.wdg-btn{font-size:11px;color:#94a3b8;cursor:pointer;padding:0 3px;border-radius:4px;line-height:1;}
.wdg-btn:hover{color:#1e293b;background:rgba(15,23,42,.07);}
.wdg-body{flex:1;overflow:auto;position:relative;}
.wdg-rz{position:absolute;right:2px;bottom:2px;width:15px;height:15px;cursor:nwse-resize;color:#94a3b8;font-size:10px;
  display:flex;align-items:flex-end;justify-content:flex-end;user-select:none;z-index:6;}
/* Calendario */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 7px 7px;}
.cal-dow{font-size:8px;font-weight:700;color:#94a3b8;text-align:center;padding:2px 0;text-transform:uppercase;}
.cal-day{position:relative;aspect-ratio:1;min-height:20px;border-radius:6px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-size:9.5px;color:#475569;cursor:pointer;border:1px solid transparent;}
.cal-day:hover{background:rgba(30,107,255,.09);}
.cal-day.otro{color:#cbd5e1;}
.cal-day.hoy{border-color:#1e6bff;font-weight:800;color:#1e6bff;}
.cal-day.sel{background:#1e6bff;color:#fff;font-weight:800;}
.cal-day.sel .cal-dot{background:#fff !important;}
.cal-dot{width:4px;height:4px;border-radius:50%;margin-top:1px;}
.cal-n{position:absolute;top:1px;right:2px;font-size:7px;font-weight:800;color:#f97316;}
.cal-day.sel .cal-n{color:#fff;}
body.mobile .wdg{display:none !important;}

/* ═══════════════════ DESKTOP ICONS ═══════════════════ */
.dicon{position:absolute;width:74px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;padding:6px 4px;border-radius:10px;user-select:none;z-index:5;transition:background .15s;}
.dicon:hover{background:rgba(15,23,42,.055);}
.dicon.sel{background:rgba(30,107,255,.13);outline:1px solid rgba(30,107,255,.30);}
.dicon-bubble{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;position:relative;box-shadow:0 4px 12px rgba(15,23,42,.18);transition:transform .15s;}
.dicon:hover .dicon-bubble{transform:scale(1.08);}
.dicon-label{font-size:10.5px;color:#334155;text-align:center;line-height:1.25;font-weight:600;}
.dicon-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;border-radius:9px;background:var(--danger);font-size:9px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--os-bg);padding:0 3px;}

/* ═══════════════════ WINDOWS ═══════════════════ */
.win{position:absolute;background:#fff;border-radius:10px;box-shadow:0 12px 40px rgba(15,23,42,.16),0 2px 8px rgba(15,23,42,.06),0 0 0 .5px rgba(15,23,42,.10);display:flex;flex-direction:column;overflow:hidden;min-width:240px;min-height:80px;z-index:10;}
.win-header{display:flex;align-items:center;height:36px;padding:0 10px;border-bottom:.5px solid rgba(0,0,0,.09);cursor:grab;user-select:none;flex-shrink:0;background:#f8f9fb;}
.win-header.dragging{cursor:grabbing;}
.trafficlights{display:flex;gap:5px;margin-right:10px;}
.tl{width:11px;height:11px;border-radius:50%;cursor:pointer;transition:filter .15s;}
.tl:hover{filter:brightness(.78);}
.tl.cl{background:#ff5f57;}.tl.mn{background:#febc2e;}.tl.mx{background:#28c840;}
.win-title{font-size:11.5px;font-weight:500;color:#3d4252;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.win-body{flex:1;overflow:auto;padding:12px;background:#f7f8fa;}
.win-resize{width:14px;height:14px;position:absolute;bottom:2px;right:2px;cursor:se-resize;opacity:.2;font-size:11px;color:#666;}
/* accent borders */
.acc-blue .win-header{border-top:2px solid #1e6bff;}
.acc-green .win-header{border-top:2px solid #00c896;}
.acc-amber .win-header{border-top:2px solid #f59e0b;}
.acc-purple .win-header{border-top:2px solid #8b5cf6;}
.acc-red .win-header{border-top:2px solid #ef4444;}
.acc-cyan .win-header{border-top:2px solid #06b6d4;}

/* ═══════════════════ TASKBAR ═══════════════════ */
#taskbar{height:50px;background:var(--os-bar);border-top:.5px solid var(--os-line);box-shadow:0 -1px 0 rgba(15,23,42,.04),0 -8px 24px rgba(15,23,42,.05);display:flex;align-items:center;padding:0 10px;gap:5px;z-index:200;position:relative;flex-shrink:0;}
.tb-sep{width:.5px;height:28px;background:var(--os-line);flex-shrink:0;margin:0 4px;}
.tkpi{display:flex;align-items:center;padding:3px 9px;height:36px;border-radius:6px;border:.5px solid var(--os-line);background:var(--os-soft);flex-shrink:0;cursor:pointer;gap:6px;transition:background .15s;}
.tkpi:hover{background:var(--os-soft2);}
.tkpi.ind-oculto{display:none !important;}
.tkpi-inner{display:flex;flex-direction:column;}
.tkpi-label{font-size:8px;color:var(--os-txt3);text-transform:uppercase;letter-spacing:.6px;line-height:1;}
.tkpi-val{font-size:12px;font-weight:700;line-height:1.3;}
.twb{display:flex;align-items:center;gap:5px;padding:3px 9px;height:34px;border-radius:6px;border:.5px solid var(--os-line);background:var(--os-soft);color:var(--os-txt2);font-size:10.5px;cursor:pointer;white-space:nowrap;transition:background .15s;}
.twb:hover{background:var(--os-soft2);}
.twb.active{background:rgba(30,107,255,.10);border-color:rgba(30,107,255,.32);color:#1d4ed8;font-weight:600;}
.twb.minimized{opacity:.55;}
#tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
#tb-clock{font-size:11px;color:var(--os-txt2);font-variant-numeric:tabular-nums;text-align:right;}
#tb-date{font-size:9px;color:var(--os-txt3);text-align:right;}
#tb-user{font-size:10px;color:var(--os-txt2);display:flex;align-items:center;gap:5px;}
.tb-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.tb-avatar img{width:100%;height:100%;object-fit:cover;}
#btn-fs{background:var(--os-soft);border:.5px solid var(--os-line);border-radius:6px;padding:4px 7px;cursor:pointer;color:var(--os-txt2);font-size:13px;}
#btn-fs:hover{background:var(--os-soft2);}

/* ═══════════════════ WINDOW CONTENT SHARED ═══════════════════ */
.wi{width:100%;padding:6px 9px;border:.5px solid rgba(0,0,0,.12);border-radius:6px;font-size:11.5px;background:#fff;color:#1e293b;outline:none;margin-bottom:6px;}
.wi:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(30,107,255,.1);}
.wrow{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#fff;border-radius:6px;margin-bottom:4px;border:.5px solid rgba(0,0,0,.07);font-size:11px;}
.bn{padding:5px 12px;border-radius:6px;border:none;font-size:11px;font-weight:500;cursor:pointer;transition:opacity .15s;}
.bn:hover{opacity:.85;}
.bn.blue{background:#1e6bff;color:#fff;}.bn.green{background:#00c896;color:#fff;}.bn.amber{background:#f59e0b;color:#fff;}.bn.red{background:#ef4444;color:#fff;}.bn.purple{background:#8b5cf6;color:#fff;}.bn.cyan{background:#06b6d4;color:#fff;}.bn.gray{background:#64748b;color:#fff;}
.bn.full{width:100%;margin-top:5px;}
.pill{font-size:9.5px;padding:2px 6px;border-radius:4px;font-weight:500;}
.pill.g{background:#dcfce7;color:#15803d;}.pill.y{background:#fef9c3;color:#854d0e;}.pill.r{background:#fee2e2;color:#dc2626;}.pill.b{background:#dbeafe;color:#1d4ed8;}.pill.p{background:#ede9fe;color:#6d28d9;}.pill.c{background:#cffafe;color:#0e7490;}
.section-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;margin-bottom:5px;}

/* ── 🚛 Mapa de ruta foránea (Leaflet dentro de la ventana) ── */
/* con `body` al frente para ganarle a la hoja de Leaflet, que se carga después */
body .leaflet-container{font-family:inherit;background:#e6eef5;}
body .leaflet-popup-content{margin:9px 22px 9px 11px;font-family:inherit;line-height:1.35;}
body .leaflet-popup-content-wrapper{border-radius:9px;}
body .leaflet-control-attribution{font-size:8px;opacity:.7;}
#ruta-lista::-webkit-scrollbar{width:6px;}
#ruta-lista::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;}

/* ═══════════════════ VENTA WINDOW ═══════════════════ */
.type-tabs{display:flex;gap:4px;margin-bottom:10px;background:#eeeff1;border-radius:8px;padding:3px;}
.type-tab{flex:1;padding:5px 4px;text-align:center;font-size:10.5px;font-weight:500;border-radius:5px;cursor:pointer;color:#64748b;transition:all .15s;}
.type-tab.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px rgba(0,0,0,.1);}
.prod-row{background:#fff;border-radius:8px;border:.5px solid rgba(0,0,0,.08);margin-bottom:5px;overflow:hidden;transition:box-shadow .15s;}
.prod-row:hover{box-shadow:0 2px 8px rgba(0,0,0,.07);}
.prod-main{display:flex;align-items:center;gap:8px;padding:7px 8px;}
.prod-emoji{width:30px;height:30px;border-radius:6px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.prod-info{flex:1;min-width:0;}
.prod-name{font-size:11px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.prod-price-label{font-size:10px;color:#94a3b8;}
.insight-btn{display:inline-flex;align-items:center;gap:2px;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:600;cursor:pointer;border:none;margin-left:3px;transition:filter .15s;}
.insight-btn:hover{filter:brightness(.9);}
.insight-btn.green{background:#dcfce7;color:#15803d;}.insight-btn.yellow{background:#fef9c3;color:#854d0e;}.insight-btn.red{background:#fee2e2;color:#dc2626;}
.qty-wrap{display:flex;align-items:center;gap:4px;}
.qty-btn{width:20px;height:20px;border-radius:4px;border:.5px solid rgba(0,0,0,.12);background:#f1f5f9;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#475569;line-height:1;}
.qty-btn:hover{background:#e2e8f0;}
.qty-num{font-size:11px;font-weight:600;color:#1e293b;min-width:18px;text-align:center;}
.prod-subtotal{font-size:11.5px;font-weight:700;color:#1e6bff;min-width:54px;text-align:right;}
.prod-del{font-size:14px;color:#cbd5e1;cursor:pointer;margin-left:4px;transition:color .15s;}
.prod-del:hover{color:var(--danger);}

/* INSIGHT PANEL */
.insight-panel{display:none;border-top:.5px solid rgba(0,0,0,.07);background:linear-gradient(135deg,#f8faff,#f0fdf9);padding:10px 12px;animation:slideDown .2s ease;}
.insight-panel.open{display:block;}
@keyframes slideDown{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:translateY(0);}}
.insight-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-bottom:7px;}
.ig-card{background:#fff;border-radius:6px;padding:6px 8px;border:.5px solid rgba(0,0,0,.07);}
.ig-label{font-size:8.5px;color:#94a3b8;margin-bottom:2px;}
.ig-val{font-size:14px;font-weight:700;}
.ig-sub{font-size:9px;margin-top:1px;}
.semaforo{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:7px;margin-bottom:7px;border:.5px solid;}
.sem-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.sem-text{font-size:10px;font-weight:500;line-height:1.4;}
.disc-section{background:#fff;border-radius:7px;padding:8px 10px;border:.5px solid rgba(0,0,0,.07);}
.disc-header{display:flex;justify-content:space-between;font-size:9px;color:#64748b;margin-bottom:4px;}
.disc-bar-wrap{position:relative;height:10px;background:#e2e8f0;border-radius:5px;margin-bottom:3px;}
.disc-bar-fill{height:100%;border-radius:5px;transition:width .2s,background .2s;}
.disc-limit{position:absolute;top:-3px;height:16px;width:2px;background:var(--danger);border-radius:1px;}
.disc-limit::after{content:attr(data-l);position:absolute;top:-13px;left:50%;transform:translateX(-50%);font-size:7.5px;color:var(--danger);white-space:nowrap;font-weight:600;}
.disc-footer{display:flex;justify-content:space-between;font-size:9.5px;margin-top:4px;}
.total-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--accent);border-radius:8px;color:#fff;font-size:13px;font-weight:600;margin:8px 0;}
.venta-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;}
.empty-cart{text-align:center;padding:24px 0;color:#94a3b8;font-size:11px;}

/* PEDIDO OPTIONS */
.otype-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:7px;}
.otype-card{background:#fff;border:.5px solid rgba(0,0,0,.1);border-radius:7px;padding:8px;cursor:pointer;text-align:center;transition:all .15s;}
.otype-card:hover{border-color:var(--accent);}
.otype-card.sel{border:1.5px solid var(--accent);background:#eff4ff;}
.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:7px;}
.pay-opt{background:#fff;border:.5px solid rgba(0,0,0,.1);border-radius:6px;padding:6px 8px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s;}
.pay-opt:hover{border-color:var(--accent);}
.pay-opt.sel{border:1.5px solid var(--accent);background:#eff4ff;}

/* PRODUCTOS WINDOW */
.prod-card-list{background:#fff;border-radius:7px;border:.5px solid rgba(0,0,0,.08);padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px;margin-bottom:5px;transition:all .15s;}
.prod-card-list:hover{border-color:var(--accent);transform:translateX(2px);}
.stock-bar{height:4px;border-radius:2px;background:#e2e8f0;margin-top:3px;overflow:hidden;}
.stock-fill{height:100%;border-radius:2px;}

/* PEDIDOS WINDOW */
.order-card{background:#fff;border-radius:8px;border:.5px solid rgba(0,0,0,.08);padding:9px 10px;margin-bottom:6px;}
.order-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px;}
.order-actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap;align-items:center;}
/* Casillas de avance del pedido: Enviado / Entregado */
.ped-chk{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;padding:4px 9px;
  border-radius:7px;cursor:pointer;user-select:none;border:1px solid #cbd5e1;background:#fff;color:#64748b;transition:all .15s;}
.ped-chk:hover{border-color:#94a3b8;background:#f8fafc;}
.ped-chk .bx{width:13px;height:13px;border-radius:4px;border:1.5px solid #cbd5e1;background:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:9px;line-height:1;color:transparent;}
.ped-chk.on.env{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;}
.ped-chk.on.env .bx{background:#1e6bff;border-color:#1e6bff;color:#fff;}
.ped-chk.on.ent{background:#ecfdf5;border-color:#6ee7b7;color:#047857;}
.ped-chk.on.ent .bx{background:#00c896;border-color:#00c896;color:#fff;}
.ped-chk.lock{opacity:.6;cursor:not-allowed;}
.ped-chk.lock:hover{border-color:#93c5fd;background:#eff6ff;}

/* TICKET */
.ticket-paper{background:#fff;border-radius:8px;padding:14px 12px;font-family:'Courier New',monospace;font-size:10.5px;text-align:center;line-height:1.7;border:.5px solid rgba(0,0,0,.1);}
.ticket-dashed{border:none;border-top:1px dashed #ccc;margin:6px 0;}
.ticket-row{display:flex;justify-content:space-between;font-size:10px;}

/* CLIENTES */
.cliente-row{display:flex;align-items:center;gap:8px;padding:8px 9px;background:#fff;border-radius:7px;border:.5px solid rgba(0,0,0,.07);margin-bottom:5px;cursor:pointer;transition:background .15s,border-color .15s;user-select:none;}
.cliente-row:hover{background:#f8fafc;border-color:rgba(30,107,255,.3);}
.cli-info{flex:1;min-width:0;}
.cli-nom{font-size:11.5px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.cli-sub{font-size:9.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;}
.cli-legend{display:flex;gap:9px;justify-content:center;align-items:center;font-size:8.5px;color:#94a3b8;margin:0 0 7px;}
.cli-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px;vertical-align:0;}
.cli-hint{font-size:8.5px;color:#b6c0cf;text-align:center;margin-bottom:6px;}
/* Listado en columnas: Cliente · WhatsApp · Deuda · Avisos (en ventanas angostas se acomoda en dos renglones) */
.cli-tabla{container-type:inline-size;}
.cli-cab,.cli-fila{display:grid;grid-template-columns:minmax(0,1fr) 124px 108px 86px;align-items:center;column-gap:10px;}
.cli-cab{padding:0 9px 4px;font-size:8.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#94a3b8;user-select:none;}
.cli-cab span{white-space:nowrap;}
.cli-cab span[onclick]{cursor:pointer;}
.cli-cab span[onclick]:hover{color:#475569;}
.cli-cab .der{text-align:right;}
.cli-fila{padding:6px 9px;background:#fff;border-radius:7px;border:.5px solid rgba(0,0,0,.07);margin-bottom:4px;transition:background .15s,border-color .15s;}
.cli-fila:hover{background:#f8fafc;border-color:rgba(30,107,255,.3);}
.cli-c-nom{display:flex;align-items:center;gap:8px;min-width:0;}
.cli-av{width:34px;height:34px;font-size:11px;}
.cli-lnk{font-size:11.5px;font-weight:600;color:#1e293b;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.cli-lnk:hover{color:var(--accent);text-decoration:underline;}
.cli-c-tel{min-width:0;white-space:nowrap;}
.cli-wa{font-size:10.5px;font-weight:600;color:#15803d;cursor:pointer;white-space:nowrap;border-radius:4px;padding:1px 3px;margin-left:-3px;}
.cli-wa:hover{background:#dcfce7;text-decoration:underline;}
.cli-c-deu{text-align:right;white-space:nowrap;}
.cli-deu{font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:4px;padding:1px 3px;}
.cli-deu i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;}
.cli-deu:hover{background:#f1f5f9;text-decoration:underline;}
.cli-c-ico{display:flex;gap:4px;justify-content:flex-end;min-height:24px;}
.cli-nada{font-size:10px;color:#cbd5e1;}
@container (max-width: 480px){
  .cli-cab{display:none;}
  .cli-fila{grid-template-columns:minmax(0,1fr) auto;row-gap:2px;}
  .cli-c-nom{grid-column:1;grid-row:1;}
  .cli-c-ico{grid-column:2;grid-row:1;min-height:0;}
  .cli-c-tel{grid-column:1;grid-row:2;padding-left:34px;}
  .cli-c-deu{grid-column:2;grid-row:2;}
  .cli-c-tel .cli-nada,.cli-c-deu .cli-nada{display:none;}
}
/* Historial dentro de la ficha del cliente */
.cli-h-fila{display:flex;align-items:center;gap:8px;padding:7px 9px;background:#fff;border:.5px solid rgba(0,0,0,.08);border-radius:8px;margin-bottom:4px;cursor:pointer;transition:background .15s,border-color .15s;}
.cli-h-fila:hover{background:#f8fafc;border-color:rgba(30,107,255,.3);}
.cli-h-lnk{font-size:10px;font-weight:600;color:var(--accent);cursor:pointer;white-space:nowrap;}
.cli-h-fila:hover .cli-h-lnk,.cli-h-lnk:hover{text-decoration:underline;}
.cliente-actions{display:flex;gap:4px;margin-left:6px;}
.cliente-iconbtn{width:24px;height:24px;border-radius:5px;border:none;background:#f1f5f9;color:#64748b;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.cliente-iconbtn:hover{background:#e2e8f0;color:#1e293b;}
.cliente-iconbtn.money{background:#fef3c7;color:#b45309;}
.cliente-iconbtn.money:hover{background:#fde68a;color:#92400e;}
.cliente-iconbtn.danger:hover{background:#fee2e2;color:#dc2626;}
.cliente-iconbtn.ped{background:#ffedd5;color:#c2410c;}
.cliente-iconbtn.ped:hover{background:#fed7aa;color:#9a3412;}
.cliente-iconbtn.req{background:#ffe4e6;color:#be123c;}
.cliente-iconbtn.req:hover{background:#fecdd3;color:#9f1239;}
.cliente-iconbtn{position:relative;}
.cliente-iconbtn .cnt{position:absolute;top:-4px;right:-4px;min-width:13px;height:13px;border-radius:7px;background:currentColor;color:#fff;font-size:8px;font-weight:800;line-height:13px;text-align:center;padding:0 2px;box-shadow:0 0 0 1.5px #fff;}
.cliente-iconbtn.ped .cnt{background:#ea580c;color:#fff;}
.cliente-iconbtn.req .cnt{background:#e11d48;color:#fff;}
.avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}

/* CLIENTE MODAL (tabbed) */
#cli-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:5500;align-items:center;justify-content:center;}
#cli-modal-overlay.open{display:flex;}
.cli-modal-box{background:#fff;border-radius:14px;width:500px;max-width:94vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.45);overflow:hidden;}
.cli-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:.5px solid rgba(0,0,0,.08);flex-shrink:0;}
.cli-modal-title{font-size:15px;font-weight:600;color:#1e293b;}
.cli-modal-x{font-size:18px;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1;transition:background .15s;}
.cli-modal-x:hover{background:#f1f5f9;color:#475569;}
.cli-tabs{display:flex;border-bottom:.5px solid rgba(0,0,0,.08);flex-shrink:0;padding:0 20px;gap:18px;overflow-x:auto;}
.cli-tab{padding:11px 2px;font-size:12.5px;white-space:nowrap;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;}
.cli-tab:hover{color:#1e293b;}
.cli-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.cli-modal-body{flex:1;overflow-y:auto;padding:18px 20px;background:#fafbfc;}
.cli-tab-panel{display:none;}
.cli-tab-panel.active{display:block;}
.cli-card{background:#fff;border:.5px solid rgba(0,0,0,.08);border-radius:10px;padding:14px 14px 6px;margin-bottom:14px;}
.cli-card-title{font-size:12px;font-weight:600;color:#1e293b;margin-bottom:12px;}
.cli-field{margin-bottom:12px;}
.cli-field label{display:block;font-size:11px;font-weight:500;color:#475569;margin-bottom:5px;}
.cli-field label .req{color:#ef4444;}
.cli-field input,.cli-field select,.cli-field textarea{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;background:#fff;color:#1e293b;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit;}
.cli-field input:focus,.cli-field select:focus,.cli-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(30,107,255,.1);}
.cli-field textarea{resize:vertical;min-height:60px;}
.cli-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cli-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.cli-tel{display:flex;gap:6px;}
.cli-tel select{width:90px;flex-shrink:0;}
.cli-tel input{flex:1;}
.cli-addr-btn{width:100%;padding:9px;border:1px dashed #cbd5e1;border-radius:6px;background:#fff;color:#475569;font-size:12px;cursor:pointer;transition:all .15s;}
.cli-addr-btn:hover{border-color:var(--accent);color:var(--accent);background:#f0f7ff;}
.cli-toggle-opt{font-size:11.5px;color:var(--accent);cursor:pointer;padding:6px 0;display:inline-block;}
.cli-toggle-opt:hover{text-decoration:underline;}
.cli-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:.5px solid rgba(0,0,0,.08);background:#fff;flex-shrink:0;}
.cli-btn{padding:8px 18px;border-radius:7px;border:none;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;}
.cli-btn-cancel{background:#fff;color:#475569;border:1px solid #e2e8f0;}
.cli-btn-cancel:hover{background:#f8fafc;}
.cli-btn-save{background:var(--accent);color:#fff;}
.cli-btn-save:hover{opacity:.9;}
.cli-btn-save:disabled{background:#cbd5e1;cursor:not-allowed;}
.cli-btn-del{background:#fff;color:#dc2626;border:1px solid #fecaca;margin-right:auto;}
.cli-btn-del:hover{background:#fee2e2;}
.cli-btn-portal{background:#fff;color:#1e6bff;border:1px solid #bfdbfe;}
.cli-btn-portal:hover{background:#eff6ff;}
.cli-btn-portalwa{background:#fff;color:#128c4b;border:1px solid #bbf7d0;}
.cli-btn-portalwa:hover{background:#ecfdf5;}
.cli-empty-icon{font-size:32px;text-align:center;color:#cbd5e1;margin:24px 0 8px;}

/* REPORTES */
/* Línea de progreso del pedido — igual a la del portal del cliente */
.trk{display:flex;align-items:flex-start;padding:6px 2px 2px;margin:2px 0 5px;}
.trk .st{flex:1;text-align:center;position:relative;cursor:pointer;}
.trk .dot{width:21px;height:21px;border-radius:50%;background:#e2e8f0;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:10px;margin:0 auto 4px;position:relative;z-index:2;border:2px solid #fff;transition:background .15s,box-shadow .15s;}
.trk .st.done .dot{background:#00c896;color:#fff;}
.trk .st.now .dot{background:#1e6bff;color:#fff;box-shadow:0 0 0 3.5px rgba(30,107,255,.16);}
.trk .lb{font-size:8.5px;color:#94a3b8;line-height:1.2;}
.trk .st.done .lb,.trk .st.now .lb{color:#334155;font-weight:700;}
.trk .st:not(:first-child):before{content:'';position:absolute;left:-50%;top:9.5px;width:100%;height:3px;background:#e2e8f0;z-index:1;}
.trk .st.done:before,.trk .st.now:before{background:#00c896;}
.trk .st:hover .dot{box-shadow:0 0 0 3.5px rgba(30,107,255,.12);}
.trk.cancel{opacity:.45;filter:grayscale(1);}
.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.kpi-mini{background:#fff;border-radius:8px;border:.5px solid rgba(0,0,0,.07);padding:8px 10px;}
.kpi-label{font-size:9px;color:#94a3b8;margin-bottom:2px;}
.kpi-val{font-size:16px;font-weight:700;color:#1e293b;}
.kpi-sub{font-size:9px;color:#00c896;}
.chart-bars{display:flex;align-items:flex-end;gap:4px;height:56px;margin:5px 0;}
.chart-bar{flex:1;border-radius:3px 3px 0 0;background:#1e6bff;opacity:.7;transition:opacity .2s;cursor:pointer;}
.chart-bar:hover{opacity:1;}

/* NOTIFY */
#notify{position:fixed;top:16px;right:16px;z-index:9998;display:flex;flex-direction:column;gap:6px;pointer-events:none;}
.notif{background:#1e293b;border:.5px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 14px;color:#fff;font-size:11.5px;box-shadow:0 4px 16px rgba(0,0,0,.4);animation:notifIn .3s ease;max-width:260px;}
.notif.success{border-left:3px solid #00c896;}
.notif.error{border-left:3px solid #ef4444;}
.notif.info{border-left:3px solid #1e6bff;}
@keyframes notifIn{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}

/* MODAL */
#modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:5000;align-items:center;justify-content:center;}
#modal-overlay.open{display:flex;}

/* DATOS DE PAGO (tarjeta para WhatsApp) */
#esdp-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:8600;align-items:center;justify-content:center;padding:14px;}
#esdp-overlay.open{display:flex;}
#esdp-box{background:#f1f5f9;border-radius:14px;width:340px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.45);overflow:hidden;}
#esdp-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#0f2557;color:#fff;}
#esdp-scroll{overflow-y:auto;padding:10px 12px;}
#esdp-prev img{box-shadow:0 4px 16px rgba(0,0,0,.14);}
#esdp-foot{padding:10px 12px;background:#fff;border-top:.5px solid #e2e8f0;display:grid;gap:4px;}
.modal-box{background:#fff;border-radius:12px;padding:24px;position:relative;width:320px;box-shadow:0 20px 60px rgba(0,0,0,.4);}
.modal-cerrar{position:absolute;top:10px;left:12px;width:12px;height:12px;border-radius:50%;background:#ff5f57;cursor:pointer;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.2);}
.modal-cerrar:hover::after{content:'×';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:12px;color:#7a0d06;font-weight:700;}
.modal-box .modal-title{padding-left:16px;}
/* 📐 ventana emergente con tamaño ajustable (showModal {ajustable}) — solo escritorio */
.modal-box.ajustable{resize:both;overflow:auto;min-width:320px;min-height:320px;max-width:96vw;max-height:94vh;display:flex;flex-direction:column;box-sizing:border-box;}
.modal-box .modal-fit{position:absolute;top:6px;right:8px;margin:0;}
.modal-box.ajustable #modal-body{flex:1;display:flex;flex-direction:column;min-height:0;}
.modal-box.ajustable .crece{flex:1;max-height:none !important;min-height:90px;}
.modal-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:14px;}
.modal-actions{display:flex;gap:8px;margin-top:16px;justify-content:flex-end;}

/* ═══ 🤖 BUDDY — asistente ═══ */
#bd-fab{position:fixed;right:16px;bottom:62px;width:62px;height:62px;z-index:6000;cursor:pointer;display:none;user-select:none;}
#bd-fab.on{display:block;}
/* Arrastrable en PC / tablet: el JS pone .bd-drag cuando hay ratón o pantalla grande */
#bd-fab.bd-drag{cursor:grab;touch-action:none;}
#bd-fab.bd-drag:active{cursor:grabbing;}
/* Con posición propia mandan left/top, no las esquinas por defecto */
#bd-fab.bd-moved{right:auto;bottom:auto;}
#bd-fab img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(15,23,42,.28));animation:bdFlota 3.4s ease-in-out infinite;pointer-events:none;}
#bd-fab::before{content:'';position:absolute;left:50%;bottom:-2px;width:34px;height:9px;margin-left:-17px;border-radius:50%;background:radial-gradient(ellipse,rgba(56,189,248,.75),transparent 70%);animation:bdMotor 1.5s ease-in-out infinite;}
#bd-fab:hover img{transform:scale(1.06);}
#bd-fab.bd-dragging{transition:none;}
#bd-fab.bd-dragging img,#bd-fab.bd-dragging:hover img{animation:none;transform:scale(1.12);filter:drop-shadow(0 14px 24px rgba(15,23,42,.35));}
@keyframes bdFlota{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@keyframes bdMotor{0%,100%{opacity:.5;transform:scaleX(.8);}50%{opacity:1;transform:scaleX(1.2);}}
#bd-badge{position:absolute;top:0;right:0;min-width:19px;height:19px;border-radius:10px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;display:none;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 6px rgba(0,0,0,.4);}
#bd-badge.on{display:flex;}
/* globo de aviso */
#bd-burbuja{position:fixed;right:84px;bottom:74px;max-width:290px;z-index:6000;display:none;}
#bd-burbuja.on{display:block;animation:bdPop .28s cubic-bezier(.2,1.4,.4,1);}
/* Cola del globo al lado contrario de Buddy */
#bd-burbuja.tail-left .bd-burb::after{right:auto;left:-6px;border-left:none;border-right:7px solid #0f2557;}
#bd-burbuja.tail-left .bd-burb.success::after{border-right-color:#065f46;}
#bd-burbuja.tail-left .bd-burb.error::after{border-right-color:#991b1b;}
.bd-burb{background:#0f2557;color:#fff;font-size:11.5px;line-height:1.4;border-radius:12px;padding:9px 12px;box-shadow:0 8px 26px rgba(0,0,0,.4);position:relative;margin-bottom:5px;}
.bd-burb::after{content:'';position:absolute;right:-6px;bottom:11px;width:0;height:0;border-left:7px solid #0f2557;border-top:6px solid transparent;border-bottom:6px solid transparent;}
.bd-burb.success{background:#065f46;}.bd-burb.success::after{border-left-color:#065f46;}
.bd-burb.error{background:#991b1b;}.bd-burb.error::after{border-left-color:#991b1b;}
@keyframes bdPop{from{opacity:0;transform:translateY(8px) scale(.9);}to{opacity:1;transform:none;}}
/* globo de requisición cumplida (con acciones) */
.bd-burb.req{background:linear-gradient(135deg,#065f46,#0f766e);max-width:290px;padding:11px 12px;animation:bdReqGlow 1.5s ease-in-out infinite;}
.bd-burb.req::after{border-left-color:#0f766e;}
#bd-burbuja.tail-left .bd-burb.req::after{border-right-color:#065f46;}
@keyframes bdReqGlow{0%,100%{box-shadow:0 8px 26px rgba(0,0,0,.4),0 0 0 0 rgba(16,185,129,.55);}50%{box-shadow:0 8px 26px rgba(0,0,0,.4),0 0 0 7px rgba(16,185,129,0);}}
.bd-burb .bd-bx{position:absolute;top:4px;right:6px;font-size:13px;line-height:1;color:rgba(255,255,255,.65);cursor:pointer;font-weight:700;}
.bd-burb .bd-bx:hover{color:#fff;}
.bd-burb-acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.bd-burb-acts .bd-ba{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:9.5px;font-weight:700;border-radius:13px;padding:5px 10px;cursor:pointer;white-space:nowrap;}
.bd-burb-acts .bd-ba:hover{background:rgba(255,255,255,.3);}
.bd-burb-acts .bd-ba.wa{background:#25d366;border-color:#25d366;color:#06301a;}
.bd-burb-acts .bd-ba.wa:hover{background:#1eb455;}
.bd-burb-acts .bd-ba.blue{background:#2563eb;border-color:#2563eb;color:#fff;}
.bd-burb-acts .bd-ba.blue:hover{background:#1d4ed8;}
.bd-burb-acts .bd-ba.orange{background:#f97316;border-color:#f97316;color:#fff;}
.bd-burb-acts .bd-ba.orange:hover{background:#ea580c;}
/* requisición que parpadea tras la llegada del producto */
@keyframes reqBlink{0%,100%{box-shadow:0 0 0 2px #f43f5e,0 0 14px rgba(244,63,94,.55);background:#fff1f2;}50%{box-shadow:0 0 0 2px rgba(244,63,94,.15);background:#fff;}}
.req-blink{animation:reqBlink 1.05s ease-in-out infinite;}
@keyframes reqBadgePulse{0%,100%{transform:scale(1);}50%{transform:scale(1.45);}}
.req-badge-blink{animation:reqBadgePulse .8s ease-in-out infinite;}
/* panel */
#bd-panel{position:fixed;right:14px;bottom:58px;width:340px;max-width:calc(100vw - 28px);height:min(560px,calc(100vh - 120px));background:#f1f5f9;border-radius:16px;box-shadow:0 22px 60px rgba(0,0,0,.5);z-index:6100;display:none;flex-direction:column;overflow:hidden;}
#bd-panel.on{display:flex;animation:bdPop .22s ease;}
#bd-head{display:flex;align-items:center;gap:8px;padding:9px 11px;background:linear-gradient(120deg,#0f2557,#1e6bff);color:#fff;flex-shrink:0;}
#bd-head img{width:34px;height:34px;object-fit:contain;flex-shrink:0;}
#bd-head .t{flex:1;line-height:1.2;}
#bd-head .t b{font-size:12.5px;}
#bd-head .t span{font-size:8.5px;opacity:.75;display:block;}
#bd-head .x{cursor:pointer;font-size:12px;opacity:.8;padding:2px 4px;}
#bd-head .x:hover{opacity:1;}
#bd-log{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:7px;}
.bd-conf{margin:7px 0 2px;padding:8px 10px;border:1.5px solid #fbbf24;background:#fffbeb;border-radius:10px;font-size:11px;line-height:1.45;color:#1e293b;}
.bd-conf.hecho{border:1px solid #bbf7d0;background:#f0fdf4;}
.bd-conf-t{font-weight:800;color:#92400e;margin-bottom:3px;}
.bd-conf-r{margin-bottom:6px;}
.bd-conf-b{display:flex;gap:6px;}
.bd-conf-b button{flex:1;border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:700;cursor:pointer;}
.bd-conf-b button.si{background:#16a34a;border-color:#16a34a;color:#fff;}
.bd-conf-b button:disabled{opacity:.5;cursor:default;}
.bd-msg{max-width:88%;font-size:11.5px;line-height:1.5;border-radius:12px;padding:8px 11px;word-break:break-word;}
.bd-msg.bd{background:#fff;color:#1e293b;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
.bd-msg.yo{background:#1e6bff;color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.bd-msg.av{background:#fff7ed;color:#9a3412;align-self:center;max-width:96%;font-size:10.5px;border:1px solid #fed7aa;text-align:center;padding:6px 10px;}
.bd-hora{font-size:8px;color:#94a3b8;margin-top:2px;display:block;}
.bd-msg.yo .bd-hora{color:rgba(255,255,255,.7);}
.bd-card{display:flex;align-items:center;gap:7px;background:#f8fafc;border:.5px solid #e2e8f0;border-radius:9px;padding:5px 7px;margin-top:5px;cursor:pointer;}
.bd-card:hover{background:#eff6ff;border-color:#bfdbfe;}
.bd-card-emo{font-size:17px;flex-shrink:0;}
.bd-card-mid{flex:1;min-width:0;font-size:10.5px;line-height:1.3;overflow:hidden;}
.bd-card-mid b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bd-card-sub{font-size:8.5px;color:#94a3b8;}
.bd-card-precio{font-size:11px;font-weight:800;color:#1e6bff;white-space:nowrap;}
.bd-kpis{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;}
.bd-kpi{background:#f8fafc;border:.5px solid #e2e8f0;border-radius:9px;padding:6px 8px;text-align:center;}
.bd-kpi b{display:block;font-size:13px;color:#0f2557;font-weight:800;}
.bd-kpi span{font-size:8px;color:#94a3b8;}
.bd-vs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;}
.bd-vs-col{background:#f8fafc;border:.5px solid #e2e8f0;border-radius:9px;padding:7px;text-align:center;}
.bd-vs-col span{font-size:8.5px;color:#94a3b8;display:block;text-transform:capitalize;}
.bd-vs-col b{font-size:14px;color:#0f2557;display:block;margin:2px 0;}
.bd-vs-col i{font-size:8px;color:#94a3b8;font-style:normal;}
.bd-delta{text-align:center;font-size:13px;font-weight:800;padding:7px;border-radius:9px;margin-top:5px;}
.bd-delta.up{background:#ecfdf5;color:#047857;}
.bd-delta.down{background:#fef2f2;color:#b91c1c;}
.bd-nota{font-size:9.5px;color:#64748b;margin-top:6px;}
.bd-lista{margin:5px 0 0 15px;padding:0;font-size:10.5px;line-height:1.65;}
.bd-precio{color:#1e6bff;}
.bd-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;}
.bd-chip{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:9.5px;font-weight:600;border-radius:14px;padding:4px 9px;cursor:pointer;}
.bd-chip:hover{background:#dbeafe;}
#bd-pie{flex-shrink:0;padding:8px;background:#fff;border-top:.5px solid #e2e8f0;display:flex;gap:5px;align-items:center;}
#bd-inp{flex:1;border:1px solid #dbe2ec;border-radius:18px;padding:8px 13px;font-size:11.5px;outline:none;font-family:inherit;}
#bd-inp:focus{border-color:#1e6bff;}
#bd-send{width:32px;height:32px;border:none;border-radius:50%;background:#1e6bff;color:#fff;font-size:13px;cursor:pointer;flex-shrink:0;}
.bd-esc{display:flex;gap:3px;padding:4px 0;}
.bd-esc i{width:6px;height:6px;border-radius:50%;background:#cbd5e1;animation:bdEsc 1.1s infinite;}
.bd-esc i:nth-child(2){animation-delay:.18s;} .bd-esc i:nth-child(3){animation-delay:.36s;}
@keyframes bdEsc{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}
@media(max-width:520px){
  #bd-panel{right:7px;left:7px;width:auto;bottom:56px;height:calc(100vh - 118px);}
  #bd-fab{width:54px;height:54px;right:10px;bottom:56px;}
  #bd-burbuja{right:70px;bottom:66px;max-width:calc(100vw - 90px);}
}

/* LOADING */
#loading{position:fixed;inset:0;background:var(--os-bg);display:flex;align-items:center;justify-content:center;z-index:10000;flex-direction:column;gap:12px;}
.loading-spinner{width:36px;height:36px;border:3px solid rgba(15,23,42,.10);border-top-color:#1e6bff;border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.loading-text{font-size:13px;color:var(--os-txt2);}

/* ═══ QUICK PRODUCTS GRID ═══ */
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px;}
.quick-prod{background:#fff;border:.5px solid rgba(0,0,0,.08);border-radius:7px;padding:5px 4px;cursor:pointer;text-align:center;transition:all .15s;overflow:hidden;}
.quick-prod:hover{border-color:#1e6bff;background:#eff4ff;transform:translateY(-1px);}
.quick-prod:active{transform:scale(.97);}
.qp-emoji{font-size:18px;line-height:1.2;}
.qp-name{font-size:8.5px;color:#475569;line-height:1.2;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qp-price{font-size:9px;font-weight:700;color:#1e6bff;}

/* ═══ CART ITEM WITH PRICE/DISCOUNT EDIT ═══ */
.cart-item-row{background:#fff;border-radius:8px;border:.5px solid rgba(0,0,0,.08);margin-bottom:5px;overflow:hidden;transition:box-shadow .15s;}
.cart-item-row:hover{box-shadow:0 2px 8px rgba(0,0,0,.07);}
.cart-main-row{display:flex;align-items:center;gap:6px;padding:6px 8px;}
.cart-edit-row{display:flex;align-items:center;gap:5px;padding:3px 8px 7px;border-top:.5px solid rgba(0,0,0,.05);}
.price-inp{width:64px;padding:3px 5px;border:.5px solid rgba(0,0,0,.15);border-radius:5px;font-size:11px;font-weight:600;color:#1e6bff;text-align:right;outline:none;}
.price-inp:focus{border-color:#1e6bff;box-shadow:0 0 0 2px rgba(30,107,255,.1);}
.disc-inp{width:48px;padding:3px 5px;border:.5px solid rgba(0,0,0,.15);border-radius:5px;font-size:11px;text-align:right;outline:none;}
.disc-inp:focus{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.1);}
.edit-label{font-size:9px;color:#94a3b8;}

/* ═══ CUSTOMER BAR ═══ */
.customer-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#fff;border-radius:7px;border:.5px solid rgba(0,0,0,.08);margin-bottom:5px;cursor:pointer;transition:border-color .15s;}
.customer-bar:hover{border-color:#1e6bff;}
.customer-icon{width:26px;height:26px;border-radius:50%;background:#e0e7ff;color:#3730a3;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.customer-name{flex:1;font-size:11px;font-weight:500;color:#1e293b;}
.customer-hint{font-size:9.5px;color:#94a3b8;}

/* ═══ CUSTOMER DROPDOWN ═══ */
.customer-dropdown{background:#fff;border-radius:8px;border:.5px solid rgba(0,0,0,.1);margin-bottom:5px;max-height:140px;overflow:auto;box-shadow:0 4px 12px rgba(0,0,0,.1);}
.cust-opt{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;border-bottom:.5px solid rgba(0,0,0,.05);transition:background .1s;}
.cust-opt:hover{background:#f0f5ff;}
.cust-opt:last-child{border-bottom:none;}

/* ═══ EXPRESS PRODUCT FORM ═══ */
.express-form{background:#fff;border-radius:8px;border:.5px solid #fde047;padding:10px 12px;margin-bottom:6px;animation:slideDown .2s ease;}
.express-title{font-size:10px;font-weight:600;color:#854d0e;margin-bottom:7px;display:flex;justify-content:space-between;}
.express-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;margin-bottom:6px;}

/* ═══ COBRAR MODAL (full overlay inside desktop) ═══ */
#cobrar-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:8000;align-items:center;justify-content:center;}
#cobrar-modal.open{display:flex;}
.cobrar-box{background:#fff;border-radius:14px;width:340px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.4);}
.cobrar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0;}
.cobrar-header-title{font-size:14px;font-weight:600;color:#1e293b;}
.cobrar-close{width:28px;height:28px;border-radius:50%;background:#f1f5f9;border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:#64748b;}
.cobrar-total-area{text-align:center;padding:16px 18px 12px;}
.cobrar-total-label{font-size:12px;color:#94a3b8;margin-bottom:4px;}
.cobrar-total-amount{font-size:36px;font-weight:800;color:#1e293b;letter-spacing:-1px;}
.cobrar-total-change{font-size:12px;font-weight:500;margin-top:4px;min-height:18px;}
.cobrar-section{padding:10px 16px;border-top:.5px solid rgba(0,0,0,.07);}
.cobrar-efectivo{background:#f8faff;border-radius:10px;padding:12px;}
.cobrar-efe-label{font-size:11px;font-weight:500;color:#1e293b;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.cobrar-efe-row{display:flex;gap:6px;align-items:center;margin-bottom:6px;}
.cobrar-efe-inp{flex:1;padding:8px 10px;border:.5px solid rgba(0,0,0,.15);border-radius:7px;font-size:15px;font-weight:600;color:#1e293b;outline:none;text-align:right;}
.cobrar-efe-inp:focus{border-color:#1e6bff;box-shadow:0 0 0 2px rgba(30,107,255,.1);}
.cobrar-quick-btns{display:flex;gap:5px;}
.cobrar-qbtn{flex:1;padding:7px 4px;border-radius:7px;border:.5px solid rgba(30,107,255,.25);background:#eff4ff;color:#1e6bff;font-size:11px;font-weight:600;cursor:pointer;text-align:center;transition:all .15s;}
.cobrar-qbtn:hover{background:#1e6bff;color:#fff;}
.cobrar-method-row{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:.5px solid rgba(0,0,0,.06);cursor:pointer;transition:background .15s;}
.cobrar-method-row:hover{background:#f8faff;}
.cobrar-method-row.sel{background:#eff6ff;box-shadow:inset 3px 0 0 var(--accent);}
.cobrar-method-row.sel .cobrar-method-name{font-weight:700;color:var(--accent);}
.cobrar-method-row.sel .cobrar-method-arr::before{content:'✓';color:var(--accent);font-weight:800;}
.cobrar-method-row.sel .cobrar-method-arr{font-size:13px;color:transparent;width:12px;}
.cobrar-method-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.cobrar-method-name{flex:1;font-size:12px;font-weight:500;color:#1e293b;}
.cobrar-method-arr{color:#cbd5e1;font-size:16px;}
/* Cobrar: un monto por método de pago (punto 27) */
.cobrar-method-sub{display:block;font-size:9px;font-weight:400;color:#94a3b8;margin-top:1px;line-height:1.3;}
.cobrar-method-row.sel .cobrar-method-sub{color:#64748b;}
.cobrar-pago-peso{font-size:12px;font-weight:600;color:#94a3b8;}
.cobrar-pago-inp{width:92px;padding:7px 8px;border:.5px solid rgba(0,0,0,.15);border-radius:7px;font-size:13px;font-weight:700;color:#1e293b;outline:none;text-align:right;background:#fff;}
.cobrar-pago-inp:focus{border-color:#1e6bff;box-shadow:0 0 0 2px rgba(30,107,255,.1);}
.cobrar-method-row.sel .cobrar-pago-inp{border-color:var(--accent);}
.cobrar-pago-cred{font-size:13px;font-weight:800;color:#b45309;white-space:nowrap;}
.cobrar-confirm-btn{width:calc(100% - 32px);margin:10px 16px 16px;padding:13px;background:#1e6bff;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;}
.cobrar-confirm-btn:hover{opacity:.88;}
.cobrar-confirm-btn.green{background:#00c896;}
.cobrar-confirm-btn:disabled{opacity:.45;cursor:not-allowed;}


/* ═══════════ POS EN VENTANA (adaptable al tamaño) ═══════════ */
.pos-wrap{display:grid;grid-template-columns:1fr min(390px,46%);height:100%;background:#eef2f7;overflow:hidden;}
#pos-left{display:flex;flex-direction:column;overflow:hidden;padding:10px;}
#pos-search-row{display:flex;gap:7px;margin-bottom:8px;}
#pos-search{flex:1;border:2px solid var(--accent);border-radius:11px;padding:8px 12px;font-size:13px;outline:none;background:#fff;min-width:0;}
.pos-cartbtn{display:none;border:none;border-radius:11px;padding:8px 12px;font-size:11.5px;font-weight:700;color:#fff;background:var(--accent);cursor:pointer;white-space:nowrap;}
#pos-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:7px;margin:0 0 8px;}
#pos-actions .vr-btn{padding:8px 3px;gap:3px;}
#pos-actions .vr-btn .ic{font-size:21px;line-height:1;}
#pos-actions .vr-btn .tx{font-size:10px;font-weight:800;line-height:1.15;}
.pos-action{background:#fff;border:1px solid #e9eef5;border-radius:11px;padding:8px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:box-shadow .15s;}
.pos-action:hover{box-shadow:0 2px 10px rgba(15,23,42,.08);}
.pos-action .ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.pos-action span{font-size:10.5px;font-weight:600;color:#1e293b;line-height:1.15;}
.pos-action.lock{opacity:.5;}
#pos-prods{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:7px;align-content:start;padding-bottom:6px;}
.pos-prod{background:#fff;border:1px solid #e9eef5;border-radius:11px;padding:8px 6px;text-align:center;cursor:pointer;transition:transform .1s,box-shadow .15s;}
.pos-prod:hover{transform:translateY(-1px);box-shadow:0 3px 12px rgba(15,23,42,.09);}
.pos-prod img{width:30px;height:30px;object-fit:cover;border-radius:8px;}
.pos-prod .em{font-size:23px;line-height:30px;}
.pos-prod .nm{font-size:9.5px;font-weight:600;color:#1e293b;margin-top:2px;height:22px;overflow:hidden;}
.pos-prod .pr{font-size:11.5px;font-weight:800;color:var(--accent);}
.pos-prod .st{font-size:7.5px;color:#94a3b8;}
#pos-right{background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;}
#pos-tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid #eef2f7;overflow-x:auto;flex-shrink:0;}
.pos-tab{padding:6px 11px;font-size:10.5px;font-weight:600;color:#64748b;border-radius:8px 8px 0 0;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px;}
.pos-tab.act{background:#eef2f7;color:#0f172a;}
.pos-tab .x{font-size:8.5px;color:#94a3b8;padding:0 2px;}
.pos-tab.plus{font-size:14px;padding:4px 9px;color:var(--accent);}
#pos-topbar{display:flex;align-items:center;gap:6px;padding:8px;flex-shrink:0;position:relative;}
.pos-backprods{display:none;border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;padding:5px 9px;font-size:11px;cursor:pointer;color:#334155;font-weight:700;}
.pos-toggle{display:flex;background:#eef2f7;border-radius:9px;padding:2px;}
.pos-toggle div{padding:5px 7px;font-size:9.5px;font-weight:600;border-radius:7px;cursor:pointer;color:#64748b;white-space:nowrap;}
.pos-toggle div.act{background:#fff;color:#0f172a;box-shadow:0 1px 4px rgba(15,23,42,.12);}
#pos-cliente{margin-left:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:5px 9px;font-size:10px;font-weight:600;color:#334155;cursor:pointer;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Globo: recuerda que un pedido necesita cliente */
#pos-cliente.need{background:#fff7ed;border-color:#f59e0b;color:#b45309;animation:cliPulse 1.6s ease-in-out infinite;}
@keyframes cliPulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.45);}50%{box-shadow:0 0 0 5px rgba(245,158,11,0);}}
#pos-clihint{position:absolute;z-index:60;background:#f59e0b;color:#fff;font-size:10px;font-weight:700;padding:6px 10px;border-radius:9px;box-shadow:0 4px 14px rgba(180,83,9,.3);white-space:nowrap;cursor:pointer;}
#pos-clihint:after{content:'';position:absolute;top:-6px;right:16px;border:6px solid transparent;border-top:0;border-bottom-color:#f59e0b;}
#pos-clihint .x{margin-left:7px;opacity:.75;font-weight:400;}
body.mobile #pos-clihint{font-size:11.5px;}
#pos-cart{flex:1;overflow-y:auto;padding:2px 8px;}
.pos-row{display:flex;align-items:center;gap:6px;padding:7px 2px;border-bottom:1px dashed #eef2f7;}
.pos-row .info{flex:1;min-width:0;}
.pos-row .nm{font-size:11px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pos-row .pu{font-size:9px;color:#94a3b8;}
.pos-row .pos-precio{cursor:pointer;border-radius:4px;}
.pos-row .pos-precio:hover{color:#1e6bff;text-decoration:underline;}
.pos-row .pos-nm-lnk{color:#1e40af;cursor:pointer;text-decoration:none;}
.pos-row .pos-nm-lnk:hover{text-decoration:underline;}
.pos-qty{display:flex;align-items:center;gap:5px;background:#f8fafc;border-radius:8px;padding:2px 5px;}
.pos-qty button{border:none;background:#fff;border-radius:6px;width:19px;height:19px;font-size:11px;cursor:pointer;color:#334155;box-shadow:0 1px 3px rgba(15,23,42,.15);}
.pos-qty b{font-size:11px;min-width:15px;text-align:center;}
.pos-row .sub{font-size:11.5px;font-weight:700;color:#0f172a;min-width:52px;text-align:right;}
.pos-row .del{border:none;background:none;cursor:pointer;font-size:11px;opacity:.55;}
#pos-empty{text-align:center;color:#94a3b8;padding:34px 8px;font-size:11px;}
#pos-empty b{font-size:13.5px;color:#64748b;display:block;margin-bottom:3px;}
#pos-nota{font-size:9.5px;color:#a16207;background:#fefce8;border-radius:8px;padding:4px 8px;margin:0 8px;flex-shrink:0;}
#pos-footer{padding:8px;border-top:1px solid #eef2f7;flex-shrink:0;}
#pos-cobrar{width:100%;border:none;border-radius:11px;padding:11px;font-size:14px;font-weight:800;color:#fff;background:var(--accent);cursor:pointer;}
#pos-cobrar:disabled{background:#e2e8f0;color:#94a3b8;cursor:default;}
/* Modo angosto: la ventana se hizo chica → una sola columna con conmutador */
.pos-wrap.pos-narrow{grid-template-columns:1fr;}
.pos-narrow #pos-right{display:none;}
.pos-narrow.show-cart #pos-right{display:flex;border-left:none;}
.pos-narrow.show-cart #pos-left{display:none;}
.pos-narrow .pos-cartbtn{display:block;}
.pos-narrow .pos-backprods{display:block;}

/* ═══════════════════ MODO MÓVIL ═══════════════════ */
/* La clase .mobile la pone/quita el JS según el ancho de pantalla */
body.mobile{overflow:hidden;background:var(--os-bg);}
/* El blanco abarca toda la pantalla, incluidas las zonas del notch y la barra
   inferior del sistema; el contenido se separa con las safe-areas. */
body.mobile #os{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--os-bg);}
body.mobile .login-box{width:min(340px,92vw);padding:32px 24px;}
body.mobile .modal-box{width:min(320px,92vw);padding:18px;}
body.mobile .cobrar-box{width:min(340px,94vw);}

/* Escritorio: iconos en cuadrícula, sin posiciones absolutas */
body.mobile #desktop{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
body.mobile #desktop.icons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:4px;padding:14px 10px 28px;align-content:start;}
body.mobile .dicon{position:static;width:auto;padding:8px 2px;}
body.mobile .dicon-bubble{width:54px;height:54px;font-size:26px;border-radius:16px;}
body.mobile .dicon-label{font-size:11px;}

/* Ventanas: siempre a pantalla completa, una sola a la vez */
body.mobile .win{left:0!important;top:0!important;width:100%!important;height:100%!important;border-radius:0!important;box-shadow:none;min-width:0;}
body.mobile .win-header{height:46px;cursor:default;}
body.mobile .trafficlights{gap:9px;margin-right:12px;}
body.mobile .tl{width:15px;height:15px;}
body.mobile .tl.mx{display:none;}
body.mobile .win-title{font-size:13.5px;font-weight:600;}
body.mobile .win-resize{display:none;}
body.mobile .win-body{padding:10px;}

/* Barra de tareas compacta: solo las ventanas abiertas */
body.mobile #taskbar{height:calc(48px + env(safe-area-inset-bottom));padding:0 7px env(safe-area-inset-bottom);gap:4px;}
body.mobile .tkpi,body.mobile .tb-sep,body.mobile #tb-user,body.mobile #btn-fs,body.mobile #tb-clock,body.mobile #tb-date{display:none;}
body.mobile #tb-wins{gap:5px;overflow-x:auto;}
body.mobile .twb{height:36px;font-size:12px;padding:4px 11px;}

/* POS móvil: solo buscador + partidas + botón de pagar */
body.mobile .pos-wrap{display:flex;flex-direction:column;position:relative;}
body.mobile #pos-left{display:flex!important;flex:0 0 auto;overflow:visible;padding:8px 8px 0;}
body.mobile #pos-actions,body.mobile #pos-tabs,body.mobile .pos-toggle{display:none!important;}
body.mobile .pos-cartbtn,body.mobile .pos-backprods{display:none!important;}
body.mobile #pos-search{font-size:16px;padding:11px 13px;border-radius:12px;}
body.mobile #pos-prods{display:none;position:absolute;left:8px;right:8px;top:54px;max-height:58vh;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 14px 44px rgba(15,23,42,.28);padding:8px;z-index:40;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));}
body.mobile .pos-wrap.searching #pos-prods{display:grid;}
body.mobile .pos-prod{padding:10px 6px;}
body.mobile #pos-right{display:flex!important;flex:1;min-height:0;border-left:none;}
body.mobile #pos-topbar{padding:7px 8px 3px;}
body.mobile #pos-cliente{margin-left:0;max-width:none;flex:1;padding:8px 10px;font-size:11.5px;}
body.mobile .pos-row{padding:10px 2px;}
body.mobile .pos-row .nm{font-size:12.5px;}
body.mobile .pos-qty button{width:26px;height:26px;font-size:14px;}
body.mobile .pos-qty b{font-size:13px;min-width:20px;}
body.mobile .pos-row .sub{font-size:13px;}
body.mobile #pos-cobrar{padding:15px;font-size:16px;border-radius:13px;}
body.mobile #pos-footer{padding:8px 8px calc(8px + env(safe-area-inset-bottom));}

/* ⚙️ Acceso visible a la configuración (junto al usuario) — también en móvil */
#btn-cfg{background:var(--os-soft);border:.5px solid var(--os-line);border-radius:6px;padding:3px 6px;cursor:pointer;color:var(--os-txt2);font-size:13px;line-height:1.2;transition:transform .3s,background .15s;}
#btn-cfg:hover{background:var(--os-soft2);transform:rotate(60deg);}

/* 🎉 «¡FELICIDADES! VENTA REGISTRADA» (apps/ventas/venta-registrada.js) */
#vr-overlay,#vr-overlay-saliendo{position:fixed;inset:0;z-index:9400;display:flex;align-items:center;justify-content:center;padding:16px;
  background:radial-gradient(circle at 50% 35%,rgba(30,64,175,.55),rgba(2,6,23,.82));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .2s ease;}
#vr-overlay.on{opacity:1;}
.vr-card{position:relative;width:min(520px,100%);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;overflow:auto;background:#fff;border-radius:22px;padding:30px 22px 18px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.45);transform:scale(.85);transition:transform .35s cubic-bezier(.2,1.4,.4,1);}
#vr-overlay.on .vr-card{transform:scale(1);}
.vr-x{position:absolute;top:12px;left:12px;width:14px;height:14px;border-radius:50%;border:0;background:#ff5f57;cursor:pointer;padding:0;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25);}
.vr-x:hover{background:#e0443e;}
.vr-max{position:absolute;top:8px;right:10px;width:24px;height:24px;border:0;border-radius:7px;background:#f1f5f9;color:#475569;font-size:15px;line-height:24px;padding:0;cursor:pointer;z-index:2;}
.vr-max:hover{background:#e2e8f0;color:#0f172a;}
.vr-card.max{width:calc(100vw - 32px)!important;height:calc(100vh - 32px)!important;}
.vr-in{width:100%;}
.vr-grip{position:absolute;right:3px;bottom:3px;width:18px;height:18px;cursor:nwse-resize;touch-action:none;z-index:2;
  background:linear-gradient(135deg,transparent 0 45%,#cbd5e1 45% 52%,transparent 52% 64%,#cbd5e1 64% 71%,transparent 71% 83%,#cbd5e1 83% 90%,transparent 90%);}
.vr-card.max .vr-grip{display:none;}
.vr-ok{width:62px;height:62px;margin:0 auto 6px;border-radius:50%;background:linear-gradient(135deg,#22c55e,#15803d);color:#fff;font-size:36px;font-weight:900;line-height:62px;animation:vrPop .55s cubic-bezier(.2,1.6,.4,1) both .1s;}
.vr-fel{font-size:34px;font-weight:900;letter-spacing:1px;background:linear-gradient(90deg,#f59e0b,#ef4444,#8b5cf6,#1e6bff,#f59e0b);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:vrBrillo 3s linear infinite;}
.vr-tit{font-size:15px;font-weight:800;letter-spacing:3px;color:#334155;margin-top:2px;}
.vr-monto{font-size:46px;font-weight:900;color:#15803d;margin:8px 0 2px;font-variant-numeric:tabular-nums;animation:vrPop .5s cubic-bezier(.2,1.5,.4,1) both .2s;}
.vr-sub{font-size:12px;color:#64748b;min-height:16px;}
.vr-cambio{display:inline-block;margin-top:8px;font-size:17px;color:#92400e;background:#fef3c7;border-radius:12px;padding:6px 14px;}
.vr-saldo{display:inline-block;margin-top:8px;font-size:14px;color:#a16207;background:#fefce8;border-radius:12px;padding:5px 12px;}
.vr-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin-top:18px;}
.vr-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;border-radius:14px;padding:14px 6px;color:#fff;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.15);transition:transform .12s ease,filter .12s ease;}
.vr-btn:hover{transform:translateY(-2px);filter:brightness(1.07);}
.vr-btn:focus-visible{outline:3px solid #1e293b;outline-offset:2px;}
.vr-k{position:absolute;top:6px;right:8px;font-size:9px;font-weight:800;background:rgba(255,255,255,.28);border-radius:5px;padding:1px 5px;}
.vr-pie{font-size:10px;color:#94a3b8;margin-top:12px;}
@keyframes vrPop{from{transform:scale(.3);opacity:0;}to{transform:scale(1);opacity:1;}}
@keyframes vrBrillo{to{background-position:300% 0;}}
@media (max-width:480px){.vr-fel{font-size:26px;}.vr-monto{font-size:36px;}.vr-btns{gap:6px;}.vr-btn{padding:12px 4px;}}
@media (prefers-reduced-motion:reduce){.vr-card,.vr-ok,.vr-monto,.vr-fel{animation:none;transition:none;transform:none;}}
/* Productos: ✅ selección y 🌐 e-shop como iconos */
.pm-chk{width:16px;text-align:center;cursor:pointer;font-size:13px;line-height:1;user-select:none;}
.pm-chk[data-on="0"]{opacity:.35;filter:grayscale(1);}
.pm-web{cursor:pointer;font-size:14px;line-height:1;user-select:none;filter:grayscale(1);opacity:.3;transition:opacity .15s,filter .15s;}
.pm-web.on{filter:none;opacity:1;}
.pm-chk:hover,.pm-web:hover{opacity:.8;}
/* 📣 Canal de venta (apps/ventas/canales.js) */
#pos-canal{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:0 8px 6px;flex-shrink:0;}
#pos-canal::-webkit-scrollbar{display:none;}
.pc-lbl{font-size:9px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;margin-right:2px;}
.pc-chip{font-size:9.5px;font-weight:700;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:3px 8px;cursor:pointer;white-space:nowrap;user-select:none;}
.pc-chip.on{color:#fff;}
.pc-camp{font-size:9.5px;color:#1e6bff;cursor:pointer;white-space:nowrap;margin-left:2px;max-width:150px;overflow:hidden;text-overflow:ellipsis;}
.pc-camp.on{font-weight:800;color:#7c3aed;}
/* Cantidad escrita a mano en los carritos (POS, venta, multiventa) */
.qty-in{width:34px;box-sizing:border-box;text-align:center;font:inherit;font-size:11px;font-weight:700;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:2px 0;}
.qty-in:hover{border-color:#94a3b8;} .qty-in:focus{outline:none;border-color:#1e6bff;box-shadow:0 0 0 2px #bfdbfe;}
body.mobile .qty-in{width:42px;font-size:14px;padding:4px 0;}
/* ═══ Encabezado fijo de módulo (Clientes, Contabilidad, Cobrar, Cotizaciones, Gastos…) ═══
   Se queda arriba al bajar, con el color del módulo para distinguirlo de la lista, y letras más grandes. */
.mod-head{position:sticky;top:-12px;z-index:6;margin:-12px -12px 9px;padding:11px 12px 8px;background:var(--mh-bg);border-bottom:2px solid var(--mh-bd);box-shadow:0 10px 14px -12px rgba(15,23,42,.5);}
body.mobile .mod-head{top:-10px;margin:-10px -10px 9px;padding:10px 10px 8px;}
.mod-head .wi,.mod-head input:not([type=checkbox]):not([type=radio]),.mod-head select{font-size:12px !important;padding:7px 10px !important;border:1.5px solid var(--mh-bd) !important;border-radius:9px !important;background:#fff !important;color:#1e293b;}
.mod-head .wi:focus,.mod-head input:focus,.mod-head select:focus{outline:none;border-color:var(--mh-c) !important;box-shadow:0 0 0 3px var(--mh-ring);}
.mod-head button{font-size:11px !important;}
.mod-head .bn{padding:7px 11px;font-weight:700;}
.mod-head .mh-tab{flex:1;padding:7px 4px;border-radius:9px;border:1.5px solid var(--mh-bd);background:rgba(255,255,255,.75);color:#475569;font-weight:700;cursor:pointer;white-space:nowrap;}
.mod-head .mh-tab.on{background:var(--mh-c);border-color:var(--mh-c);color:#fff;box-shadow:0 3px 8px -3px var(--mh-c);}
.mh-violeta{--mh-bg:linear-gradient(180deg,#f5f3ff,#ede9fe);--mh-bd:#c4b5fd;--mh-c:#7c3aed;--mh-ring:#ddd6fe;}
.mh-indigo{--mh-bg:linear-gradient(180deg,#eef2ff,#e0e7ff);--mh-bd:#a5b4fc;--mh-c:#4f46e5;--mh-ring:#c7d2fe;}
.mh-verde{--mh-bg:linear-gradient(180deg,#f0fdf4,#dcfce7);--mh-bd:#86efac;--mh-c:#16a34a;--mh-ring:#bbf7d0;}
.mh-cyan{--mh-bg:linear-gradient(180deg,#ecfeff,#cffafe);--mh-bd:#67e8f9;--mh-c:#0891b2;--mh-ring:#a5f3fc;}
.mh-ambar{--mh-bg:linear-gradient(180deg,#fffbeb,#fef3c7);--mh-bd:#fcd34d;--mh-c:#d97706;--mh-ring:#fde68a;}
.mod-head .cli-cab{color:#6d28d9;font-size:9.5px;padding-top:4px;}
/* 📷 Foto o logo del cliente (ventana del cliente) */
.cli-foto{width:58px;height:58px;border-radius:14px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;background:#f5f3ff;border:2px dashed #c4b5fd;overflow:hidden;}
.cli-foto:hover{border-color:#7c3aed;}
.cli-foto img{width:100%;height:100%;object-fit:cover;display:block;}

/* 🔠 Tamaño de letra (punto 74): --fz lo pone tema.js (0.85 · 1 · 1.15 · 1.3 · 1.5) */
:root{--fz:1;--fzt:1;}
.win-body,.modal-box,.cli-modal-box{zoom:var(--fz);}
#taskbar{height:calc(50px * var(--fzt));}
#taskbar > *, #tb-right > *{zoom:var(--fzt);}
body.mobile #taskbar{height:calc(48px + env(safe-area-inset-bottom));}
body.mobile #taskbar > *, body.mobile #tb-right > *{zoom:1;}
#btn-fzm,#btn-fzp{background:var(--os-soft);border:.5px solid var(--os-line);border-radius:6px;padding:3px 6px;cursor:pointer;color:var(--os-txt2);font-size:11px;font-weight:800;line-height:1.2;}
#btn-fzm:hover,#btn-fzp:hover{background:var(--os-soft2);} #btn-fzm:disabled,#btn-fzp:disabled{opacity:.35;cursor:default;}

/* 📐 Botón «guardar tamaño» de cada ventana */
.win-fit{font-size:13px;line-height:1;color:#94a3b8;cursor:pointer;padding:3px 6px;border-radius:6px;margin-left:4px;user-select:none;transition:background .15s,color .15s;}
.win-fit:hover{background:#eef2ff;color:#4338ca;} .win-fit.ok{background:#dcfce7;color:#15803d;}
body.mobile .win-fit{display:none;}


/* 7-nov · ficha del cliente: tamaño ajustable (escritorio) + botones como mini apps */
@media (pointer:fine){ body:not(.mobile) .cli-modal-box{resize:both;min-width:380px;min-height:420px;max-width:96vw;max-height:94vh;} }
body.mobile .cli-modal-fit{display:none;}
.cli-modal-foot{justify-content:stretch;gap:7px;padding:10px 14px;}
.cli-btn.cli-app{flex:1 1 0;min-width:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 3px 7px;background:#fff;border:1px solid #e8edf3;border-radius:13px;color:#1e293b;box-shadow:0 4px 12px -8px rgba(15,23,42,.35);transition:transform .12s,box-shadow .12s;}
.cli-btn.cli-app:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(15,23,42,.45);}
.cli-btn.cli-app .ic{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 4px 10px -4px rgba(15,23,42,.45);}
.cli-btn.cli-app .tx{font-size:10.5px;font-weight:800;line-height:1.15;white-space:nowrap;}
.cli-btn.cli-app:disabled{opacity:.6;cursor:wait;transform:none;}
