body,html{width:100vw;height:100vh;margin:0;padding:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}:root{--simia:#0f4f4a;--simia-oscuro:#0a3a36;--simia-claro:#0f766e;--bg:#f4f7fb;--superficie:#fff;--superficie-mut:#f8fafc;--borde:#dbe4ee;--borde-fuerte:#cbd5e1;--texto:#1f2937;--texto-suave:#64748b;--texto-titulo:#0f172a;--cyan:#4f97bd;--violeta:#7c3aed;--violeta-oscuro:#5b21b6;--danger:#dc2626;--danger-oscuro:#b91c1c;--ok:#16a34a;--r-sm:10px;--r-md:14px;--r-lg:20px;--sombra-suave:0 4px 20px #1f29370f;--sombra-media:0 8px 30px #0f172a1a}.superficie{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--r-md);box-shadow:var(--sombra-suave)}*{box-sizing:border-box}body{color:var(--texto);background:linear-gradient(#f7fafc 0%,#edf3f7 100%);margin:0;font-family:Arial,sans-serif}.app-shell{min-height:100vh;padding:24px}.topbar{background-color:var(--superficie);border:1px solid var(--borde);border-radius:var(--r-md);box-shadow:var(--sombra-suave);justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.brand{align-items:center;gap:14px;min-width:220px;display:flex}.brand-logos{align-items:center;gap:10px;display:flex}.brand-logo{object-fit:contain;background-color:#fff;border-radius:12px;width:48px;height:48px}.brand-text h1{color:#0f172a;margin:0;font-size:26px}.brand-text p{color:#64748b;margin:4px 0 0;font-size:13px}.search-area{flex:1;align-items:center;gap:12px;max-width:640px;display:flex}.search-area input{background-color:#f8fafc;border:1px solid #cfd8e3;border-radius:14px;outline:none;flex:1;height:48px;padding:0 16px;font-size:16px}.search-area input:focus{background-color:#fff;border-color:#0ea5a4}.search-area button,.secondary-btn,.icon-btn{cursor:pointer;border:none;transition:all .2s}.search-area button{color:#fff;background-color:#0f766e;border-radius:14px;height:48px;padding:0 18px;font-size:15px;font-weight:700}.search-area button:hover,.secondary-btn:hover,.icon-btn:hover{opacity:.92}.topbar-actions{align-items:center;gap:10px;display:flex}.secondary-btn{color:#0f766e;background-color:#e6f4f2;border-radius:14px;height:46px;padding:0 16px;font-weight:700}.icon-btn{background-color:#eef2f7;border-radius:14px;width:46px;height:46px;font-size:18px}.main-layout{grid-template-columns:2fr 1fr;align-items:start;gap:22px;margin-top:22px;display:grid}.map-card,.detail-card{background-color:#fff;border:1px solid #dbe4ee;border-radius:24px;box-shadow:0 10px 30px #1f29370f}.map-card{padding:20px}.detail-card{min-height:720px;padding:20px}.card-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.card-header h2{color:#0f172a;margin:0;font-size:22px}.card-header p{color:#64748b;margin:6px 0 0;font-size:14px}.status-badge{color:#15803d;white-space:nowrap;background-color:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}#mapa{background:#eef2f5;border:1px solid #d9e2ea;border-radius:20px;width:100%;height:620px;position:relative;overflow:hidden}#svgMapa{width:100%;height:100%;position:absolute;inset:0}.contorno-lab{fill:none;stroke:#ef4444;stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.estanteria{fill:#14b8a61a;stroke:#14b8a6;stroke-width:4px}.caja-svg{cursor:pointer}.caja-etiqueta{fill:#fff;stroke:#0f766e;stroke-width:2px}.caja-texto{fill:#0f766e;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:18px;font-weight:700}.caja-svg.activa .caja-etiqueta{fill:#0f766e;stroke:#0f766e}.caja-svg.activa .caja-texto{fill:#fff}.caja-svg.destacada .caja-etiqueta{fill:#fee2e2;stroke:#ef4444;stroke-width:3px;animation:1s infinite parpadeoCaja}.caja-svg.destacada .caja-texto{fill:#b91c1c;animation:1s infinite parpadeoTextoCaja}.marcador:hover{background-color:#f0fdfa;transform:translate(-50%,-50%)scale(1.08)}.marcador.activo{color:#fff;background-color:#0f766e}.marcador.destacado{color:#ef4444;border-color:#ef4444;animation:1s infinite pulsoCaja}@keyframes pulsoCaja{0%{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 #ef444473}70%{transform:translate(-50%,-50%)scale(1.12);box-shadow:0 0 0 12px #ef444400}to{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 #ef444400}}.info-content{padding-top:4px}.empty-state{text-align:center;background-color:#f8fafc;border:1px dashed #cbd5e1;border-radius:20px;padding:28px 18px}.empty-icon{margin-bottom:10px;font-size:38px}.empty-state h3{color:#0f172a;margin:0 0 10px}.empty-state p{color:#64748b;margin:0;line-height:1.5}.caja-title{color:#0f172a;margin:0 0 8px;font-size:24px}.caja-meta{color:#64748b;margin:0 0 18px;font-size:14px}.lista-items{flex-direction:column;gap:12px;display:flex}.item-card{background-color:#fbfdff;border:1px solid #dbe4ee;border-radius:16px;padding:14px 16px}.item-card h4{color:#0f172a;margin:0 0 6px;font-size:16px}.item-card p{color:#475569;margin:0;font-size:14px}.search-result-box{background-color:#f8fafc;border:1px solid #dbe4ee;border-radius:18px;padding:18px}.search-result-box h3{color:#0f172a;margin-top:0}.result-chip{color:#0f766e;background-color:#e6f4f2;border-radius:999px;margin-bottom:12px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-block}@media (width<=1100px){.main-layout{grid-template-columns:1fr}.detail-card{min-height:auto}}@media (width<=820px){.topbar{flex-direction:column;align-items:stretch}.brand{min-width:auto}.search-area{max-width:none}.topbar-actions{justify-content:flex-end}#mapa{height:520px}}@keyframes parpadeoCaja{0%{fill:#fee2e2;stroke:#ef4444;opacity:1}50%{fill:#ef4444;stroke:#b91c1c;opacity:.55}to{fill:#fee2e2;stroke:#ef4444;opacity:1}}@keyframes parpadeoTextoCaja{0%{fill:#b91c1c;opacity:1}50%{fill:#fff;opacity:.7}to{fill:#b91c1c;opacity:1}}.acciones-item{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.input-cantidad{background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;width:72px;height:38px;padding:0 10px;font-size:14px}.btn-anadir,.btn-retirar{cursor:pointer;border:none;border-radius:10px;height:38px;padding:0 14px;font-weight:700;transition:all .2s}.btn-anadir{color:#fff;background-color:#0f766e}.btn-retirar{color:#b91c1c;background-color:#fee2e2}.btn-anadir:hover,.btn-retirar:hover{opacity:.9}.modal{z-index:999;background-color:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.oculto{display:none}.modal-contenido{background-color:#fff;border-radius:20px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:24px;display:flex;box-shadow:0 20px 50px #0f172a33}.modal-contenido h2{margin:0}.modal-contenido p{color:#64748b;margin:0}.modal-contenido input{border:1px solid #cbd5e1;border-radius:12px;height:44px;padding:0 14px;font-size:15px}.modal-acciones{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.btn-principal,.btn-secundario{cursor:pointer;border:none;border-radius:12px;height:42px;padding:0 16px;font-weight:700;transition:all .18s}.btn-principal{background-color:var(--simia-claro);color:#fff;box-shadow:0 2px 8px #0f766e40}.btn-secundario{background-color:var(--superficie-mut);color:var(--texto-titulo);border:1px solid var(--borde-fuerte)}.btn-principal:hover{background-color:var(--simia)}.btn-secundario:hover{background-color:#eef2f7}.mensaje-error{color:#b91c1c;min-height:20px;font-size:14px}.modo-admin-activo .topbar{border:2px solid #f97316}.modo-admin-activo .topbar:after{content:"MODO ADMIN ACTIVO";color:#fff;background-color:#f97316;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;position:relative;top:-12px;right:24px}.admin-panel{flex-direction:column;gap:14px;display:flex}.admin-label{color:#475569;font-size:14px;font-weight:700}.admin-row{align-items:center;gap:12px;display:flex}.admin-input{background-color:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;height:52px;padding:0 14px;font-size:16px}.admin-input-title{color:#0f172a;font-size:20px;font-weight:700}.admin-item-row{grid-template-columns:1.6fr .6fr auto auto;align-items:center;gap:12px;margin-bottom:10px;display:grid}.input-cantidad-admin{max-width:100px}.btn-guardar-admin,.btn-anadir-admin{color:#fff;cursor:pointer;background-color:#0f766e;border:none;border-radius:10px;height:44px;padding:0 18px;font-weight:700}.btn-eliminar-admin{color:#fff;cursor:pointer;background-color:#dc2626;border:none;border-radius:10px;height:44px;padding:0 18px;font-weight:700}.admin-separador{border:none;border-top:1px solid #e5e7eb;margin:8px 0}.nuevo-insumo-box{background-color:#f0fdfa;border:2px solid #14b8a6;border-radius:16px;flex-direction:column;gap:12px;padding:18px;display:flex}.nuevo-insumo-box h3{color:#0f766e;margin:0}.menu-ajustes{z-index:1000;background-color:#fff;border:1px solid #dbe4ee;border-radius:16px;min-width:220px;padding:10px;position:absolute;top:92px;right:34px;box-shadow:0 12px 30px #0f172a1f}.menu-ajustes-btn{color:#0f172a;cursor:pointer;background-color:#f8fafc;border:none;border-radius:12px;width:100%;height:44px;font-weight:700;transition:all .2s}.menu-ajustes-btn:hover{background-color:#eef2f7}.admin-global-box{background-color:#fff7ed;border:2px solid #f59e0b;border-radius:16px;flex-direction:column;gap:12px;margin-bottom:18px;padding:18px;display:flex}.admin-global-box h3{color:#9a3412;margin:0}.admin-help{color:#7c2d12;margin:0;font-size:14px}.admin-help-activo{color:#b45309;font-weight:700}.modo-admin-activo.colocando-caja #svgMapa{cursor:crosshair}.modo-admin-activo #svgMapa{cursor:grab}.caja-svg.arrastrando{opacity:.7}.modo-admin-activo.arrastrando-caja #svgMapa{cursor:grabbing}.search-results-panel h3{color:#0f172a;margin-top:0;margin-bottom:14px}.search-results-list{flex-direction:column;gap:12px;display:flex}.search-result-item{cursor:pointer;background-color:#f8fafc;border:1px solid #dbe4ee;border-radius:16px;padding:14px 16px;transition:all .2s}.search-result-item:hover{background-color:#eef6ff;border-color:#93c5fd}.search-result-item h4{color:#0f172a;margin:8px 0}.search-result-item p{color:#475569;margin:4px 0;font-size:14px}.search-result-top{justify-content:flex-start;align-items:center;display:flex}.search-type-badge{color:#6d28d9;background-color:#ede9fe;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.item-badge{color:#166534;background-color:#dcfce7}.modal-base-datos{width:92%;max-width:1100px;max-height:85vh;position:relative;overflow:hidden}.cerrar-modal-tabla{cursor:pointer;color:#64748b;background:0 0;border:none;width:40px;height:40px;font-size:22px;font-weight:700;position:absolute;top:18px;right:18px}.cerrar-modal-tabla:hover{color:#0f172a}.tabla-base-datos-wrapper{border:1px solid #dbe4ee;border-radius:14px;max-height:65vh;margin-top:14px;overflow-y:auto}.tabla-base-datos{border-collapse:collapse;background-color:#fff;width:100%}.tabla-base-datos thead th{color:#fff;text-align:left;background-color:#0f6b7a;padding:16px;font-size:18px;position:sticky;top:0}.tabla-base-datos tbody td{color:#1f2937;border-bottom:1px solid #e5e7eb;padding:16px;font-size:16px}.tabla-base-datos tbody tr:hover{background-color:#f8fafc}.search-box{flex:1;position:relative}.search-box input{width:100%}.sugerencias-busqueda{z-index:1200;background-color:#fff;border:1px solid #dbe4ee;border-radius:14px;max-height:260px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden auto;box-shadow:0 12px 30px #0f172a1f}.sugerencia-item{cursor:pointer;color:#0f172a;background-color:#fff;border-bottom:1px solid #eef2f7;padding:12px 14px;font-size:15px;transition:all .2s}.sugerencia-item:last-child{border-bottom:none}.sugerencia-item:hover{background-color:#f0fdfa}.sugerencia-vacia{color:#64748b;background-color:#f8fafc;padding:12px 14px;font-size:14px}.modal-escaneo{max-width:520px}.preview-escaneo-wrapper{background-color:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;justify-content:center;align-items:center;width:100%;min-height:180px;display:flex;overflow:hidden}.preview-escaneo{object-fit:contain;width:100%;max-height:320px;display:block}.mensaje-escaneo{color:#475569;min-height:20px;margin:0;font-size:14px}.btn-admin-maestro{cursor:pointer;color:#fff;background:#1e293b;border:2px solid #ffffff26;border-radius:50%;outline:none;justify-content:center;align-items:center;width:50px;height:50px;font-size:24px;transition:transform .3s,background-color .2s,border-color .2s,box-shadow .2s;display:flex;box-shadow:0 4px 15px #0006}.btn-admin-maestro:hover{background:#334155;transform:scale(1.05)}.btn-herramienta{cursor:pointer;background:#1e293b;border:2px solid #0000;border-radius:12px;outline:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;transition:all .2s;display:flex;box-shadow:0 4px 10px #0003}.btn-herramienta:hover{background:#334155;transform:scale(1.05)}.btn-herramienta.activo{background:#4f97bd;border:2px solid #fff;transform:scale(1.15);box-shadow:0 0 15px #4f97bd99}.btn-herramienta-suave{background:#3b4d66}.btn-herramienta-suave:hover{background:#475569}.btn-incremental{box-sizing:border-box;cursor:pointer;color:#4f97bd;background:#eef1f5;border:none;border-radius:9px;outline:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:13px;font-weight:700;line-height:1;transition:background .12s,color .12s;display:inline-flex}.btn-incremental:hover{color:#fff;background:#4f97bd}.panel-admin-flotante{z-index:100;pointer-events:auto;box-shadow:var(--sombra-media);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box;background:#fffffff5;border-radius:16px;width:320px;padding:20px;animation:.25s ease-out slideInRight;position:absolute;top:100px;right:85px}.dpad-contenedor-ps{z-index:100;pointer-events:none;-webkit-user-select:none;user-select:none;width:132px;height:132px;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.dpad-ps{pointer-events:auto;cursor:pointer;filter:drop-shadow(0 2px 4px #00000080);background:linear-gradient(165deg,#46536b 0%,#26324a 50%,#131c2e 100%);border:none;outline:none;justify-content:center;align-items:center;padding:0;transition:filter .12s,transform 80ms;display:flex;position:absolute}.dpad-ps.up{clip-path:polygon(7% 0%,93% 0%,100% 9%,100% 67.7%,50% 100%,0% 67.7%,0% 9%);width:42px;height:65px;padding-bottom:12px;top:0;left:45px}.dpad-ps.down{clip-path:polygon(7% 100%,93% 100%,100% 91%,100% 32.3%,50% 0%,0% 32.3%,0% 91%);width:42px;height:65px;padding-top:12px;bottom:0;left:45px}.dpad-ps.left{clip-path:polygon(0% 7%,9% 0%,67.7% 0%,100% 50%,67.7% 100%,9% 100%,0% 91%);width:65px;height:42px;padding-right:12px;top:45px;left:0}.dpad-ps.right{clip-path:polygon(100% 7%,91% 0%,32.3% 0%,0% 50%,32.3% 100%,91% 100%,100% 91%);width:65px;height:42px;padding-left:12px;top:45px;right:0}.dpad-ps:active{transform:scale(.94)}.dpad-ps.giro:hover{filter:drop-shadow(0 0 8px #fbbf24d9)}.dpad-ps.nivel:hover{filter:drop-shadow(0 0 8px #38bdf8d9)}.dpad-ps.giro:active{filter:drop-shadow(0 0 11px #fbbf24)brightness(1.3)}.dpad-ps.nivel:active{filter:drop-shadow(0 0 11px #38bdf8)brightness(1.3)}@keyframes slideInRight{0%{opacity:0;transform:translate(15px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes parpadeoUrgente{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(.94)}}.contador-parpadeo{animation:1s ease-in-out infinite parpadeoUrgente}@keyframes parpadeoEtiqueta3D{0%,to{opacity:1}50%{opacity:.62}}.etiqueta-parpadeo{animation:1s ease-in-out infinite parpadeoEtiqueta3D}.badge-bajo-min{color:#fff;cursor:pointer;background:#ef4444;border:1px solid #ffffff8c;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.etiqueta-3d{color:#fff;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px #00000080;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;transition:all .2s}.etiqueta-3d,.alerta-flotante,.alerta-stock-3d,.bocadillo-alerta,.badge-bajo-min{-webkit-user-select:none;user-select:none}.html-inerte,.html-inerte *,.html-clicable-seccion{pointer-events:none!important}.html-clicable-seccion .badge-bajo-min,.html-clicable-seccion .badge-bajo-min *,.html-clicable-seccion .bocadillo-alerta,.html-clicable-seccion .bocadillo-alerta *{pointer-events:auto!important}.alerta-flotante{position:relative}.alerta-stock-3d{color:#fff;white-space:nowrap;cursor:pointer;text-shadow:0 1px 3px #00000080;background:linear-gradient(135deg,#ef4444,#dc2626);border:1px solid #ffffffd9;border-radius:12px;padding:3px 8px;font-size:9.5px;font-weight:700;box-shadow:0 3px 10px #dc262673}.bocadillo-alerta{color:#b91c1c;white-space:nowrap;pointer-events:none;background:#fee2e2f0;border:1px solid #ef444473;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:3px 7px;font-size:9px;font-weight:700;animation:.25s ease-out aparecerBocadillo;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 6px #dc26262e}.bocadillo-alerta.bocadillo-saliendo{animation:.25s ease-in forwards desvanecerBocadillo}@keyframes aparecerBocadillo{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes desvanecerBocadillo{0%{opacity:1}to{opacity:0}}.bocadillo-alerta:after{content:"";border-top:6px solid #ef444473;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.radial-zona{z-index:9999;width:0;height:0;animation:.16s ease-out radialPop;position:fixed}@keyframes radialPop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.radial-centro{pointer-events:none;background:#38bdf8;border-radius:50%;width:9px;height:9px;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 0 10px #38bdf8d9}.radial-radio{transform-origin:0;pointer-events:none;background:#94a3b859;height:2px;transition:background .15s,box-shadow .15s;position:absolute;top:0;left:0}.radial-radio.activa{background:#38bdf8;box-shadow:0 0 9px #38bdf8d9}.radial-item{animation:.18s ease-out both radialBtn;position:absolute;transform:translate(-50%,-50%)}@keyframes radialBtn{0%{opacity:0}to{opacity:1}}.radial-item .btn-herramienta{box-shadow:0 4px 12px #00000059}.radial-item .btn-herramienta.peligro:hover{background:#7f1d1d;border-color:#f87171;box-shadow:0 0 14px #ef444480}.radial-num{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#fff;pointer-events:none;z-index:2;background:#94a3b88c;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%)}.radial-item.flash{animation:none}.radial-item.flash .btn-herramienta{transition:none;transform:scale(1.12);border-color:#38bdf8!important;box-shadow:0 0 18px #38bdf8f2!important}.radial-burb{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:#0f172a;border-radius:7px;padding:5px 10px;font-size:11px;font-weight:700;transition:opacity .15s,transform .15s;position:absolute;box-shadow:0 4px 12px #00000059}.burb-arriba{opacity:0;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,5px)}.burb-arriba:after{content:"";border-top:6px solid #0f172a;border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;top:100%;left:50%;transform:translate(-50%)}.radial-item:hover .burb-arriba{opacity:1;transform:translate(-50%)}.burb-izq{opacity:0;top:50%;right:calc(100% + 10px);transform:translate(5px,-50%)}.burb-izq:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:6px solid #0f172a;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.radial-item:hover .burb-izq{opacity:1;transform:translateY(-50%)}.burb-der{opacity:0;top:50%;left:calc(100% + 10px);transform:translate(-5px,-50%)}.burb-der:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-right:6px solid #0f172a;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.radial-item:hover .burb-der{opacity:1;transform:translateY(-50%)}
