:root{--azul: #1e3a5f;--azul-med: #2f6190;--azul-clar: #4a9eda;--verde: #27ae60;--naranja: #e67e22;--rojo: #c0392b;--gris: #ecf0f1;--texto: #2c3e50}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Arial,sans-serif;background:#f4f7fb;color:var(--texto)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--azul) 0%,var(--azul-med) 100%)}.auth-card{background:#fff;border-radius:12px;padding:36px 32px;width:100%;max-width:360px;box-shadow:0 10px 30px #0003}.auth-brand{text-align:center;margin-bottom:24px}.auth-logo{font-size:32px}.auth-brand h1{font-size:20px;color:var(--azul);margin-top:6px}.auth-brand p{font-size:13px;color:#888;margin-top:2px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#555}.auth-form input{border:1px solid #dfe6e9;border-radius:6px;padding:10px 12px;font-size:14px}.auth-form input:focus{outline:none;border-color:var(--azul-clar)}.auth-form button{margin-top:6px;background:var(--azul-med);color:#fff;border:none;border-radius:6px;padding:11px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.auth-form button:hover:not(:disabled){background:var(--azul)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:#fdf2f2;border-left:3px solid var(--rojo);color:var(--rojo);font-size:13px;padding:8px 10px;border-radius:4px}.dashboard{max-width:900px;margin:0 auto;padding:32px 20px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.boton-volver{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--azul-med);font-size:13px;font-weight:600;cursor:pointer;padding:0;margin-bottom:16px}.boton-volver:hover{color:var(--azul);text-decoration:underline}.dashboard-header h1{color:var(--azul);font-size:22px}.dashboard-header p{font-size:13px;color:#666;margin-top:2px}.btn-secundario{background:#fff;border:1px solid #dfe6e9;border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer}.tabla-presupuestos{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #00000012}.tabla-presupuestos th{text-align:left;background:var(--gris);font-size:12px;text-transform:uppercase;color:#666;padding:10px 14px}.tabla-presupuestos td{padding:12px 14px;font-size:14px;border-top:1px solid #f0f0f0}.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:10px;text-transform:capitalize}.badge-borrador{background:#eaf0fb;color:#2980b9}.badge-enviado{background:#fef9e7;color:#d68910}.badge-aceptado{background:#d5f5e3;color:#1e8449}.badge-rechazado{background:#fdedec;color:var(--rojo)}.badge-adicional-obra{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:10px;background:#e0f7fa;color:#00838f;white-space:nowrap;flex:none}.badge-obra-nueva{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:10px;background:#d5f5e3;color:#1e8449;white-space:nowrap;flex:none}.badge-obra-sin-medyseg{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:10px;background:#fdedec;color:var(--rojo);white-space:nowrap;flex:none}.dashboard-ancho{max-width:none;padding-left:36px;padding-right:36px}.tabla-scroll{overflow-x:auto;border-radius:10px;box-shadow:0 2px 8px #00000012}.tabla-presupuestos-ancha{width:100%;min-width:1500px;box-shadow:none}.tabla-presupuestos-ancha th,.tabla-presupuestos-ancha td{padding:16px 22px;font-size:14.5px;white-space:normal;overflow-wrap:break-word}.costes-resumen{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}.costes-resumen-tarjeta{flex:1;min-width:180px;background:#fff;border:1px solid #e3e8f0;border-radius:10px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}.costes-resumen-tarjeta-mala{background:#fdedec;border-color:#f0b8ab}.costes-resumen-tarjeta-buena{background:#eafaf1;border-color:#a9dfbf}.costes-resumen-etiqueta{font-size:11.5px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.02em}.costes-resumen-valor{font-size:22px;font-weight:800;color:var(--texto)}.tabla-costes{width:100%;border-collapse:collapse;background:#fff}.tabla-costes th{text-align:left;padding:10px 14px;font-size:11.5px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.02em;border-bottom:2px solid #e3e8f0;white-space:nowrap}.tabla-costes td{padding:10px 14px;font-size:13.5px;border-bottom:1px solid #eef1f5;white-space:nowrap}.tabla-costes-obra{font-weight:700;white-space:normal}.tabla-costes-fila-pasada{background:#fdf6f5}.tabla-costes-fila-clicable{cursor:pointer}.tabla-costes-fila-clicable:hover{background:#f4f6f9}.tabla-costes-fila-clicable.tabla-costes-fila-pasada:hover{background:#fbe7e4}.tabla-costes-fila-abierta{background:#eaf0fb}.tabla-costes-flecha{width:18px;color:#a3adb8;font-size:11px}.tabla-costes-fila-detalle td{padding:10px 14px;background:#fbfcfe;cursor:default}.tabla-costes-fila-detalle-categoria{background:#fbfcfe}.tabla-costes-fila-detalle-categoria td{padding:8px 14px;font-size:13px;color:#5a6472;border-bottom:1px solid #f0f2f5}.tabla-costes-categoria{padding-left:26px!important}.costes-detalle-vacio{margin:0}.costes-sin-categorizar{margin:10px 0 0;font-size:12px}.tabla-costes-diferencia-mala{color:var(--rojo);font-weight:700}.tabla-costes-diferencia-buena{color:#1e8449;font-weight:700}.costes-asignar{display:flex;align-items:center;gap:8px}.costes-asignar-error{display:block;color:var(--rojo);font-size:11.5px;margin-top:4px}.costes-sin-asignar{margin-top:22px}.costes-sin-asignar .tabla-costes{margin-top:12px}.select-inline{border:1px solid #dfe6e9;border-radius:6px;padding:4px 8px;font-size:12.5px;font-weight:600;background:#fff;cursor:pointer}.select-estatus{border:1px solid transparent;border-radius:10px;font-weight:700}.select-estatus-en-estudio{background:#eaf0fb;color:#2980b9}.select-estatus-en-valoracion{background:#f4ecfb;color:#8e44ad}.select-estatus-en-revision{background:#e8f6f5;color:#17847a}.select-estatus-enviado{background:#fef9e7;color:#d68910}.select-estatus-alvarada{background:#f6efe4;color:#a0672e}.select-estatus-aceptado{background:#d5f5e3;color:#1e8449}.select-estatus-descartado{background:#fdedec;color:var(--rojo)}.select-estatus-modificando{background:#fdf2e9;color:#af601a}.select-prioridad{border:1px solid transparent;border-radius:10px;font-weight:700}.select-prioridad-alta{background:#fdedec;color:var(--rojo)}.select-prioridad-normal{background:#eaf0fb;color:#2980b9}.filtro-tabla{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:18px;padding:8px 18px;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000a}.filtro-campo{display:flex;flex-direction:row;align-items:center;gap:8px}.filtro-campo .input-filtro,.filtro-campo .select-inline{width:130px;padding:7px 12px;font-size:13.5px}.filtro-campo label{font-size:11px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.input-filtro{flex:0 1 130px;border:1px solid #dfe6e9;border-radius:8px;padding:12px 14px;font-size:13.5px;background:#fff}.input-filtro:focus{outline:none;border-color:var(--azul-clar)}.filtro-contador{margin-left:auto;font-size:12px;color:#888;white-space:nowrap}.filtro-vista-general{display:flex;gap:2px;border:1px solid #d8dde3;border-radius:8px;padding:2px;background:#fff}.filtro-vista-general-boton{border:none;background:none;border-radius:6px;width:28px;height:26px;font-size:14px;color:#8a93a3;cursor:pointer;display:flex;align-items:center;justify-content:center}.filtro-vista-general-boton:hover{background:#f4f6f9}.filtro-vista-general-boton-activa{background:var(--azul-med);color:#fff}.filtro-prox-descartar{border:1px solid #f0b8ab;border-radius:20px;padding:6px 14px;font-size:12.5px;font-weight:700;cursor:pointer;background:#fdedec;color:var(--rojo);white-space:nowrap}.filtro-prox-descartar:hover{background:#fbe0dc}.filtro-prox-descartar-activo{background:var(--rojo);border-color:var(--rojo);color:#fff}.filtro-con-notas{border:1px solid #b8d0f0;border-radius:20px;padding:6px 14px;font-size:12.5px;font-weight:700;cursor:pointer;background:#eaf0fb;color:var(--azul-med);white-space:nowrap}.filtro-con-notas:hover{background:#dce6f9}.filtro-con-notas-activo{background:var(--azul-med);border-color:var(--azul-med);color:#fff}.filtro-obras{position:relative}.filtro-obras-boton{border:1px solid #d8dde3;border-radius:6px;padding:7px 12px;font-size:13px;background:#fff;cursor:pointer;min-width:200px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px}.filtro-obras-flecha{font-size:10px;color:#888}.filtro-obras-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;background:#fff;border:1px solid #d8dde3;border-radius:8px;box-shadow:0 6px 18px #0000001f;min-width:260px;max-width:340px;padding:8px}.filtro-obras-acciones{display:flex;justify-content:flex-end;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.filtro-obras-acciones button{border:none;background:none;color:var(--azul-med);font-size:12.5px;font-weight:600;cursor:pointer}.filtro-obras-lista{list-style:none;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.filtro-obras-item{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:5px;font-size:13px;cursor:pointer}.filtro-obras-item:hover{background:#f4f6f9}.pestanas-vista{display:flex;gap:6px;margin-bottom:16px}.pestanas-vista-boton{border:1px solid #d8dde3;background:#fff;color:#555;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer}.pestanas-vista-boton:hover{background:#f4f6f9}.pestanas-vista-boton-activa{background:var(--azul-med);border-color:var(--azul-med);color:#fff}.pendientes-pestanas-vista{margin-bottom:0}.obra-item-agenda-flechas{display:flex;flex-direction:column;gap:2px;margin-left:6px}.boton-icono-mover{background:#eef1f5;color:#555}.boton-icono-mover:hover:not(:disabled){background:#e1e6ec}.dashboard-nota{margin-top:14px;font-size:12px;color:#999}.selector-obras{position:relative;min-width:220px}.selector-obras-campo{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:34px;border:1px solid #dfe6e9;border-radius:8px;padding:4px 8px;background:#fff;cursor:text}.selector-obras-campo:focus-within{border-color:var(--azul-clar)}.selector-obras-input{flex:1 1 80px;min-width:80px;border:none;outline:none;font-size:13.5px;padding:3px 2px}.chip-obra{display:inline-flex;align-items:center;gap:5px;background:#eaf0fb;color:var(--azul-med);font-size:12px;font-weight:600;padding:3px 6px 3px 10px;border-radius:14px;white-space:nowrap}.chip-obra button{border:none;background:none;cursor:pointer;color:inherit;font-size:11px;padding:0;line-height:1;opacity:.7}.chip-obra button:hover{opacity:1}.selector-obras-lista{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #dfe6e9;border-radius:8px;box-shadow:0 4px 14px #0000001f;padding:4px}.selector-obras-opcion{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:13px;border-radius:6px;cursor:pointer}.selector-obras-opcion:hover{background:#f7f9fc}.selector-obras-opcion input{cursor:pointer}.selector-obras-vacio{padding:8px;font-size:12.5px;color:#999}.pantalla-cargando{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#888;font-size:14px}.dev-banner{background:#fef9e7;color:#d68910;border-bottom:1px solid #f9d270;font-size:12.5px;font-weight:600;text-align:center;padding:8px 12px}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:220px;flex-shrink:0;background:var(--azul);color:#fff;display:flex;flex-direction:column;padding:20px 16px}.app-logo{font-size:15px;font-weight:700;margin-bottom:24px}.app-nav{display:flex;flex-direction:column;gap:4px;flex:1}.app-nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;color:#ffffffbf;text-decoration:none;font-size:13.5px;font-weight:500}.app-nav-link:hover{background:#ffffff14;color:#fff}.app-nav-link.activo{background:#ffffff26;color:#fff}.app-nav-grupo{display:flex;flex-direction:column}.app-nav-grupo-boton{width:100%;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left}.app-nav-grupo-flecha{margin-left:auto;font-size:11px;transition:transform .15s ease}.app-nav-grupo-flecha-abierta{transform:rotate(180deg)}.app-nav-subitems{display:flex;flex-direction:column;gap:2px;padding-left:14px;margin-top:2px}.app-nav-sublink{font-size:12.5px;padding:7px 12px}.app-sidebar-footer{border-top:1px solid rgba(255,255,255,.15);padding-top:14px;display:flex;flex-direction:column;gap:10px}.app-usuario{display:flex;flex-direction:column;font-size:12.5px}.app-usuario strong{font-size:13.5px}.app-usuario span{color:#fff9;text-transform:capitalize}.app-sidebar-footer .btn-secundario{background:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#fff}.app-content{flex:1;overflow-y:auto}.obras-seccion+.obras-seccion{margin-top:28px}.obras-seccion-titulo{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 0 10px;margin-bottom:12px;border-bottom:2px solid currentColor;color:#7a8699}.obras-seccion-titulo.select-estatus-en-estudio{color:#2980b9}.obras-seccion-titulo.select-estatus-en-valoracion{color:#8e44ad}.obras-seccion-titulo.select-estatus-en-revision{color:#17847a}.obras-seccion-titulo.select-estatus-enviado{color:#d68910}.obras-seccion-titulo.select-estatus-alvarada{color:#a0672e}.obras-seccion-titulo.select-estatus-aceptado{color:#1e8449}.obras-seccion-titulo.select-estatus-descartado{color:var(--rojo)}.obras-seccion-contador{background:#0000000f;color:#666;border-radius:10px;padding:1px 8px;font-size:11px}.obras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.obras-lista-compacta{display:flex;flex-direction:column;gap:6px}.obra-item-compacto{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e8f0;border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.obra-item-compacto:hover{border-color:var(--azul-clar);box-shadow:0 2px 6px #0000000f}.obra-item-compacto-arrastrable{cursor:grab}.obra-item-compacto-arrastrable:active{cursor:grabbing}.obra-item-compacto-sobrevuelo{border-color:var(--azul-med);box-shadow:0 0 0 2px #2563eb40}.obra-item-compacto-numero{color:#a3adb8;font-weight:700;font-size:12px;flex:none}.obra-item-compacto-nombre{flex:0 1 auto;min-width:0;font-weight:700;color:var(--azul);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obra-item-compacto-mensaje{font-size:12px;flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--rojo);box-shadow:0 0 0 3px #c0392b33}.obra-item-compacto-alerta{font-size:13px;color:var(--rojo);flex:none}.obra-item-compacto-interesante{border:none;background:none;color:#c7ccd4;font-size:15px;line-height:1;cursor:pointer;flex:none;padding:0}.obra-item-compacto-interesante:hover,.obra-item-compacto-interesante-activo{color:var(--naranja)}.obra-item-compacto-proveedor{font-size:11.5px;color:#888;white-space:nowrap;flex:none;margin-left:auto}.obra-item-compacto-fecha-solicitud{font-size:11.5px;color:#a3adb8;white-space:nowrap;flex:none}.obra-item-compacto .select-estatus{flex:none}.obra-card{position:relative;background:#fff;border:1px solid #e3e8f0;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px #0000000a;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s,transform .15s,border-color .15s,background .15s}.obra-card-alerta{border-color:#f0b8ab;background:#fffaf9}.obra-card-alerta:hover{border-color:var(--rojo)}.obra-card:hover{box-shadow:0 4px 14px #0000001f;border-color:var(--azul-clar);transform:translateY(-1px)}.obra-card:focus-visible{outline:2px solid var(--azul-clar);outline-offset:2px}.obra-card-titulo{font-size:14.5px;font-weight:700;color:var(--azul);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obra-card-cliente{font-size:12.5px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obra-card-fecha-solicitud,.obra-card-fecha-envio{font-size:11.5px;color:#a3adb8}.obra-card-meta{display:flex;flex-wrap:nowrap;gap:8px;margin-top:auto}.select-prioridad-normal{background:transparent;color:#aab2bd;font-weight:600}.seguimiento-opciones-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.seguimiento-chip-opcion{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}.seguimiento-pestanas{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.seguimiento-pestana{position:relative;border:1px solid transparent;border-radius:20px;padding:5px 14px;font-size:12.5px;font-weight:600;cursor:pointer;background:var(--gris);color:#7a8699}.seguimiento-pestana-activa{border-color:currentColor;font-weight:700}.seguimiento-pestana-punto{position:absolute;top:2px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--rojo);border:1.5px solid white}.obra-card-insignia-alerta{position:absolute;top:-8px;right:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--rojo);color:#fff;font-size:13px;border-radius:50%;border:2px solid white;box-shadow:0 2px 6px #c0392b66;cursor:help;animation:pulso-alerta 2s ease-in-out infinite}@keyframes pulso-alerta{0%,to{box-shadow:0 2px 6px #c0392b66,0 0 #c0392b80}50%{box-shadow:0 2px 6px #c0392b66,0 0 0 6px #c0392b00}}@media (prefers-reduced-motion: reduce){.obra-card-insignia-alerta{animation:none}}.obra-card-interesante{position:absolute;top:-8px;left:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e3e8f0;border-radius:50%;color:#c7ccd4;font-size:15px;line-height:1;cursor:pointer;padding:0;box-shadow:0 1px 4px #00000014;transition:color .15s,border-color .15s,transform .1s}.obra-card-interesante:hover{color:var(--naranja);transform:scale(1.1)}.obra-card-interesante-activo{color:var(--naranja);border-color:var(--naranja)}.obra-card-insignia-mensajes{position:absolute;bottom:-8px;right:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--azul-clar);font-size:12px;border-radius:50%;border:2px solid white;box-shadow:0 2px 6px #4a9eda80;cursor:help;animation:pulso-mensaje 2s ease-in-out infinite}@keyframes pulso-mensaje{0%,to{box-shadow:0 2px 6px #4a9eda80,0 0 #4a9eda80}50%{box-shadow:0 2px 6px #4a9eda80,0 0 0 6px #4a9eda00}}@media (prefers-reduced-motion: reduce){.obra-card-insignia-mensajes{animation:none}}.chat-obra-boton-nuevo{position:relative}.chat-obra-boton-nuevo:after{content:"";position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:var(--azul-clar);border:1.5px solid white}.modal-header-acciones{display:flex;align-items:center;gap:10px}.modal-header-acciones .obra-card-interesante{position:static;box-shadow:none}.modal-aviso{background:#fef5e9;border-left:3px solid var(--naranja);color:#a3620a;font-size:12.5px;padding:8px 10px;border-radius:4px;margin-bottom:16px}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e3a5f73;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-caja{position:relative;background:#fff;border-radius:12px;padding:28px;width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 50px #00000040}.modal-caja-ancha{max-width:760px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-header h2{color:var(--azul);font-size:19px}.modal-header p{font-size:13px;color:#666;margin-top:2px}.modal-cerrar{background:none;border:none;font-size:16px;color:#999;cursor:pointer;line-height:1;padding:4px}.modal-cerrar:hover{color:var(--texto)}.medicion-caja{max-width:780px}.medicion-cuerpo{display:flex;gap:24px;flex-wrap:wrap}.medicion-cuerpo>*{min-width:0}.medicion-flecha{position:fixed;top:50%;transform:translateY(-50%);z-index:101;width:48px;height:48px;border-radius:50%;border:none;background:#fff;color:var(--azul);font-size:24px;line-height:1;cursor:pointer;box-shadow:0 4px 14px #0003}.medicion-flecha:hover{background:var(--gris)}.medicion-flecha-izq{left:24px}.medicion-flecha-der{right:24px}.medicion-dibujo{flex:1 1 320px;display:flex;flex-direction:column;align-items:center;gap:8px}.medicion-dibujo-aviso{text-align:center}.medicion-lienzo-envoltorio{display:flex;flex-direction:column;gap:8px;width:100%;min-width:0}.medicion-lienzo-herramientas{display:flex;gap:6px}.medicion-lienzo-boton{font-size:12.5px;font-weight:600;border:1px solid #dfe6e9;background:#fff;color:var(--texto);border-radius:6px;padding:6px 10px;cursor:pointer}.medicion-lienzo-boton:hover{background:#f4f6f8}.medicion-lienzo-boton-activo{background:var(--azul-med);border-color:var(--azul-med);color:#fff}.medicion-lienzo{display:block;width:100%;max-width:100%;aspect-ratio:640 / 440;min-height:260px;background:#fafbfc;border:1px solid #e3e8f0;border-radius:8px;touch-action:none;cursor:crosshair}.medicion-panel-derecho{flex:1 1 260px;display:flex;flex-direction:column;gap:16px}.medicion-campos{display:flex;gap:18px}.medicion-campo{flex:1;flex-direction:column;align-items:stretch;gap:4px}.medicion-campo .input-filtro{width:100%;flex:none}.medicion-campo-comentario{flex:1}.medicion-comentario-textarea{resize:vertical;min-height:90px;font-family:inherit;line-height:1.4}.medicion-confirmado-por{margin:0;font-size:12.5px;color:#7a8699}.modal-meta{display:flex;gap:20px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid #f0f0f0}.posiciones-seguimiento{display:flex;flex-direction:column;gap:14px}.posicion-caja{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:12px 14px}.posicion-titulo{font-size:12.5px;font-weight:700;color:var(--azul);margin-bottom:8px}.tipo-caja{background:#fff;border:1px solid #dfe6e9;border-radius:10px;padding:14px}.tipo-caja .posicion-caja+.posicion-caja{margin-top:10px}.tipo-titulo{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#fff;background:var(--azul);padding:4px 12px;border-radius:6px;margin-bottom:10px}.tipo-titulo .obras-seccion-contador{background:#fff3;color:#fff}.celda-editable-material{width:100%;min-width:110px;padding:4px 8px;font-size:12.5px}select.celda-editable-material{width:auto;min-width:130px}.filtro-columna{position:relative;display:inline-flex;align-items:center;gap:4px}.filtro-columna-boton{background:none;border:none;cursor:pointer;font-size:10px;color:#999;padding:2px;line-height:1}.filtro-columna-boton:hover{color:var(--azul)}.filtro-columna-boton-activo{color:var(--azul);font-weight:700}.filtro-columna-lista{position:absolute;z-index:25;top:calc(100% + 4px);left:0;min-width:160px;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #dfe6e9;border-radius:8px;box-shadow:0 4px 14px #00000026;padding:4px;text-transform:none;font-weight:400}.filtro-columna-opcion{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:12px;border-radius:6px;cursor:pointer;white-space:nowrap}.filtro-columna-opcion:hover{background:#f7f9fc}.filtro-columna-opcion input{cursor:pointer}.modal-campo{display:flex;flex-direction:column;gap:6px}.modal-campo span{font-size:11px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.03em}.input-fecha-limite{flex:none;width:150px;padding:4px 8px;font-size:12.5px}.input-fecha-limite-solo-lectura{font-size:12.5px;color:#555}.modal-detalle{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.modal-detalle dt{font-size:11px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px}.modal-detalle dd{font-size:14.5px;color:var(--texto)}.modal-subtitulo{font-size:13px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.03em;margin:22px 0 10px}.chat-obra-flotante{position:absolute;top:54px;right:24px;width:300px;max-width:calc(100% - 48px);background:#fff;border:1px solid #e3e8f0;border-radius:10px;box-shadow:0 10px 30px #0000002e;padding:14px;z-index:30}.notas-obra{max-width:none}.notas-obra-encabezado{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.notas-obra-encabezado .chat-obra-titulo{font-size:15px}.notas-obra-vaciar{border:1px solid #f0b8ab;border-radius:8px;background:#fdedec;color:var(--rojo);font-size:11.5px;font-weight:700;padding:5px 10px;cursor:pointer}.notas-obra-vaciar:hover{background:#fbe0dc}.notas-obra-encabezado-acciones{display:flex;align-items:center;gap:8px}.notas-obra-ver-archivadas{border:1px solid #d8dde3;border-radius:8px;background:#fff;color:#6a7484;font-size:11.5px;font-weight:700;padding:5px 10px;cursor:pointer}.notas-obra-ver-archivadas:hover{background:#f4f6f9}.notas-obra-columnas{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px}.notas-obra-columna{flex:1;min-width:0;border:1px dashed transparent;border-radius:10px;padding:4px;transition:background-color .12s,border-color .12s}.notas-obra-columna-sobrevuelo{background:#eef3fb;border-color:#9fb7e0}.notas-obra-columna-titulo{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#3a4757;margin:0 0 8px;text-transform:uppercase;letter-spacing:.02em}.notas-obra-columna-vacia{font-size:12.5px;padding:10px 4px}.pendientes-encabezados{margin-bottom:6px;padding-bottom:8px;border-bottom:2px solid #e3e8f0}.pendientes-encabezados .notas-obra-columna-titulo{flex:1;min-width:0;margin:0}.pendientes-fila-obra .notas-obra-columnas{margin-bottom:0}.pendientes-celda-vacia{font-size:11.5px;color:#b8c0cc;font-style:italic;padding:8px 4px;margin:0}.notas-obra-lista{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.notas-obra-item{display:flex;align-items:flex-start;gap:12px;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:12px 16px}.notas-obra-item-arrastrable{cursor:grab}.notas-obra-item-arrastrable:active{cursor:grabbing}.notas-obra-item-archivado{opacity:.6}.notas-obra-checkbox{margin-top:3px;width:18px;height:18px;flex:none;cursor:pointer}.notas-obra-checkbox:disabled{cursor:default}.notas-obra-item-cuerpo{flex:1;min-width:0}.notas-obra-item-texto{font-size:14.5px;color:var(--texto);white-space:pre-wrap;margin:0 0 4px}.notas-obra-item-meta{font-size:11.5px;color:#999}.notas-obra-item-tag-adicional{display:block;width:fit-content;margin-bottom:4px}.notas-obra-item-hecho{background:#f0f4f0;border-color:#dbe6db}.notas-obra-item-hecho .notas-obra-item-texto{color:#8a938a;text-decoration:line-through}.notas-obra-respuestas{list-style:none;margin:8px 0 0;display:flex;flex-direction:column;gap:6px;border-left:2px solid #dbe2ec;padding:0 0 0 10px}.notas-obra-respuesta-texto{font-size:13px;color:var(--texto);white-space:pre-wrap;margin:0 0 2px}.notas-obra-respuesta-meta{font-size:11px;color:#999}.notas-obra-respuesta-form{display:flex;gap:6px;margin-top:8px}.notas-obra-respuesta-input{flex:1;font-size:13px;padding:5px 8px}.notas-obra-respuesta-boton{border:1px solid #d8dde3;border-radius:6px;background:#fff;color:#3a4757;font-size:11.5px;font-weight:700;padding:5px 10px;cursor:pointer;flex:none}.notas-obra-respuesta-boton:hover:not(:disabled){background:#f4f6f9}.notas-obra-respuesta-boton:disabled{opacity:.5;cursor:default}.notas-obra-archivar{flex:none;border:1px solid #d8dde3;border-radius:6px;background:#fff;font-size:13px;padding:4px 8px;cursor:pointer;align-self:flex-start}.notas-obra-archivar:hover{background:#f4f6f9}.notas-obra-form{display:flex;align-items:flex-end;gap:8px}.notas-obra-textarea{flex:1;resize:vertical;min-height:44px;font-family:inherit;line-height:1.4}.chat-obra-encabezado{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.chat-obra-titulo{font-size:13px;font-weight:700;color:#7a8699;text-transform:uppercase;letter-spacing:.03em}.chat-obra-boton{background:none;border:none;font-size:17px;line-height:1;cursor:pointer;padding:4px;color:#7a8699}.chat-obra-boton:hover,.chat-obra-boton-activo{color:var(--azul)}.chat-obra-mensajes{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;margin-bottom:10px}.chat-obra-mensaje{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:8px 12px}.chat-obra-mensaje-propio{background:#eaf0fb;border-color:#cddcf3}.chat-obra-mensaje-cabecera{display:flex;justify-content:space-between;gap:10px;margin-bottom:3px}.chat-obra-mensaje-autor{font-size:12px;font-weight:700;color:var(--azul-med)}.chat-obra-mensaje-fecha{font-size:11px;color:#999;white-space:nowrap}.chat-obra-mensaje-texto{font-size:13.5px;color:var(--texto);white-space:pre-wrap;margin:0}.chat-obra-form{display:flex;gap:8px}.chat-obra-form .input-filtro{flex:1}.notificacion-fecha-limite{display:inline-flex;align-items:center;gap:4px;background:#fef5e9;border:1px solid #f6d9ae;color:#a3620a;font-size:12px;font-weight:700;padding:5px 10px;border-radius:20px;white-space:nowrap}.seguimiento-timeline{display:flex;list-style:none;margin-bottom:20px}.seguimiento-paso{flex:1;display:flex;align-items:center;gap:8px;position:relative}.seguimiento-paso:not(:last-child):after{content:"";flex:1;height:2px;background:#e3e8f0;margin:0 6px}.seguimiento-paso-hecho:not(:last-child):after{background:var(--verde)}.seguimiento-paso-punto{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#f0f2f5;color:#9aa4b2;border:2px solid #e3e8f0}.seguimiento-paso-hecho .seguimiento-paso-punto{background:var(--verde);color:#fff;border-color:var(--verde)}.seguimiento-paso-texto{display:flex;flex-direction:column;min-width:0}.seguimiento-paso-etiqueta{font-size:12px;font-weight:600;color:var(--texto);white-space:nowrap}.seguimiento-paso-pendiente .seguimiento-paso-etiqueta{color:#aab2bd}.seguimiento-paso-fecha{font-size:11px;color:#888}.seguimiento-paso-clicable{cursor:pointer;border-radius:6px;padding:2px 4px;margin:-2px -4px;transition:background .15s}.seguimiento-paso-clicable:hover{background:#f0f4fa}.seguimiento-paso-flecha{color:#aab2bd;font-size:9px}.seguimiento-ofertas-panel{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:12px 14px;margin:-8px 0 20px}.seguimiento-ofertas-vacio{font-size:12.5px;color:#888}.seguimiento-ofertas-contenido{display:flex;flex-direction:column;gap:14px}.seguimiento-oferta-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.seguimiento-oferta-form .input-filtro:not(.input-fecha-limite){flex:1 1 220px}.boton-icono{width:28px;height:28px;border:none;border-radius:6px;font-size:17px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}.boton-icono:disabled{opacity:.5;cursor:default}.boton-icono-chico{width:18px;height:18px;font-size:11px;border-radius:4px}.boton-icono-agregar{background:#d5f5e3;color:#1e8449}.boton-icono-agregar:hover:not(:disabled){background:#c1efd2}.boton-icono-eliminar{background:#fdedec;color:var(--rojo)}.boton-icono-eliminar:hover{background:#fbdbd9}.boton-lapiz{background:none;border:none;cursor:pointer;font-size:13px;opacity:.55;padding:2px 4px}.boton-lapiz:hover{opacity:1}.celda-confirmacion{white-space:nowrap}.celda-confirmacion .input-filtro{width:100%;min-width:140px}.confirmacion-acciones{display:inline-flex;align-items:center;gap:6px}.confirmacion-valor{display:inline-flex;align-items:center;gap:6px;color:var(--texto)}.tabla-ficha-confirmacion th:nth-child(3),.tabla-ficha-confirmacion td:nth-child(3){min-width:220px}.tabla-ofertas{width:100%;border-collapse:collapse;font-size:12.5px}.tabla-ofertas th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#7a8699;padding:0 10px 6px;white-space:nowrap}.tabla-ofertas td{padding:8px 10px;border-top:1px solid #e8ecf2;vertical-align:middle}.tabla-adicionales{width:100%;border-collapse:collapse;font-size:12.5px}.tabla-adicionales th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#7a8699;padding:0 10px 6px;white-space:nowrap}.tabla-adicionales td{padding:8px 10px;border-top:1px solid #e8ecf2;vertical-align:top}.adicionales-obra-col-obra{font-weight:700;color:var(--azul);white-space:nowrap}.adicionales-obra-col-detalle{white-space:pre-wrap;min-width:260px}.adicionales-obra-form{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:18px;padding:14px 18px;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:10px}.adicionales-obra-form .filtro-campo{flex-direction:column;align-items:flex-start;gap:4px}.adicionales-obra-form .input-filtro,.adicionales-obra-form .select-inline{flex:none;width:190px;padding:4px 8px;font-size:12.5px}.adicionales-obra-campo-solicitante{flex:none}.adicionales-obra-campo-detalle{flex:1 1 260px}.adicionales-obra-campo-detalle .input-filtro{width:100%}.adicionales-obra-cliente-derivado{font-size:13.5px;font-weight:600;color:var(--azul);padding:7px 0}.adicionales-obra-boton-agregar{border:none;border-radius:8px;background:var(--azul-med);color:#fff;font-size:13.5px;font-weight:700;padding:9px 20px;cursor:pointer;white-space:nowrap;margin-top:20px}.adicionales-obra-boton-agregar:hover:not(:disabled){background:var(--azul)}.adicionales-obra-boton-agregar:disabled{opacity:.5;cursor:default}.badge-estatus-oferta{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:20px;white-space:nowrap}.badge-estatus-oferta-recibido{background:#e7f7ee;color:#1e8a52}.badge-estatus-oferta-pendiente{background:#fef5e9;color:#a3620a}.badge-estatus-oferta-no-recibido{background:#fdedec;color:var(--rojo)}.badge-estatus-adicional{font-size:10.5px;font-weight:700;letter-spacing:.01em;padding:3px 8px;border-radius:20px;white-space:nowrap}.badge-estatus-adicional-en-valoracion{background:#fef5e9;color:#a3620a}.badge-estatus-adicional-enviado{background:#e7f7ee;color:#1e8a52}.badge-estatus-adicional-modificando{background:#fdf2e9;color:#af601a}.badge-estatus-adicional-alvarada{background:#f6efe4;color:#a0672e}.adicionales-obra-estatus-con-alvarada{display:inline-flex;align-items:center;gap:6px}.badge-estatus-adicional-aceptado{background:#d5f5e3;color:#1e8449}.adicionales-obra-pdf-subido{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#1e8449;white-space:nowrap}.adicionales-obra-pdf-falta{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--rojo);white-space:nowrap}.adicionales-obra-pdf-boton{font-size:11.5px;padding:3px 9px;border-radius:8px;border:1px solid #d0d7e2;background:#fff;cursor:pointer;white-space:nowrap}.adicionales-obra-pdf-boton:hover{background:#f4f6f9}.adicionales-obra-pdf-subido-con-reemplazo{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.badge-estatus-oferta-select{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 20px 3px 8px;border-radius:20px;border:none}.badge-estatus-oferta-select-pendiente{background:#fef5e9;color:#a3620a}.badge-estatus-oferta-select-no-recibido{background:#fdedec;color:var(--rojo)}.seguimiento-oferta-proveedor{font-weight:700;color:var(--azul)}.seguimiento-oferta-valor{font-weight:600;color:var(--verde)}.seguimiento-oferta-archivo{color:#aab2bd;font-size:11px;max-width:220px;overflow-wrap:anywhere}@media (max-width: 640px){.seguimiento-oferta-form{flex-direction:column;align-items:stretch}.notas-obra-columnas,.pendientes-columnas{flex-direction:column}}@media (max-width: 900px){.seguimiento-timeline{flex-direction:column;align-items:flex-start;gap:10px}.seguimiento-paso:not(:last-child):after{display:none}}.planos-obra{display:flex;flex-direction:column;gap:12px}.planos-barra{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.planos-barra .seguimiento-pestanas{margin-bottom:0}.planos-calibrar-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#7a8699;cursor:pointer}.planos-enviar-taller{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.planos-enviar-taller-estado{font-size:12px;color:#7a8699}.planos-medidas-contador{font-size:12.5px;font-weight:700;color:#3a4757}.planos-material-toggle{display:flex;gap:2px;border:1px solid #d8dde3;border-radius:8px;padding:2px;background:#fff}.planos-material-boton{border:none;background:none;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:700;color:#8a93a3;cursor:pointer}.planos-material-boton:hover{background:#f4f6f9}.planos-material-boton-carpinteria.planos-material-boton-activo{background:#e6911a;color:#fff}.planos-material-boton-vidrio.planos-material-boton-activo{background:#2563eb;color:#fff}.planos-leyenda{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.planos-leyenda-item{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#555}.planos-leyenda-item:before{content:"";display:inline-block;width:12px;height:12px;border-radius:50%}.planos-leyenda-carpinteria-en-obra:before{background:#b35900}.planos-leyenda-carpinteria-en-fabricacion:before{background:#ffb366}.planos-leyenda-vidrio-en-obra:before{background:#15448f}.planos-leyenda-vidrio-en-fabricacion:before{background:#7fb0f0}.planos-leyenda-medir:before{background:var(--rojo)}.planos-leyenda-completo:before{background:#2db260}.planos-leyenda-medida-si:before{background:#2db260}.planos-leyenda-medida-no:before{background:var(--rojo)}.planos-calibrar-panel{background:#eaf0fb;border-radius:10px;padding:10px 14px}.planos-calibrar-panel .dashboard-nota{margin:0 0 8px}.planos-calibrar-lista{display:flex;flex-wrap:wrap;gap:6px}.planos-calibrar-lista .chip-obra{border:none;cursor:pointer}.planos-calibrar-lista .chip-obra-activo{background:var(--azul-med);color:#fff}.planos-lienzo{position:relative;display:inline-block;max-width:100%;border:1px solid #dfe6e9;border-radius:8px;overflow:hidden}.planos-lienzo img{display:block;max-width:100%;height:auto;-webkit-user-select:none;user-select:none}.planos-marca-grupo{position:absolute;display:flex;align-items:center;gap:4px;transform:translate(-50%,-50%);cursor:pointer}.planos-marca-envoltorio{position:relative;display:inline-flex;flex:none}.planos-marca{flex:none;width:14px;height:14px;border-radius:50%;background:#7a869959;border:2px solid #7a8699}.planos-marca-medida{position:absolute;top:-5px;right:-5px;width:12px;height:12px;border-radius:50%;border:1.5px solid white;font-size:8px;line-height:1;font-weight:800;display:flex;align-items:center;justify-content:center;color:#fff}.planos-marca-medida-si{background:#2db260}.planos-marca-medida-no{background:var(--rojo)}.planos-marca-carpinteria-en-obra{background:#b359008c;border-color:#b35900;box-shadow:0 0 0 4px #b3590040}.planos-marca-carpinteria-en-fabricacion{background:#ffb3668c;border-color:#ffb366;box-shadow:0 0 0 4px #ffb36640}.planos-marca-vidrio-en-obra{background:#15448f8c;border-color:#15448f;box-shadow:0 0 0 4px #15448f40}.planos-marca-vidrio-en-fabricacion{background:#7fb0f08c;border-color:#7fb0f0;box-shadow:0 0 0 4px #7fb0f040}.planos-marca-medir{background:#c0392b8c;border-color:var(--rojo);box-shadow:0 0 0 4px #c0392b40}.planos-marca-completo{background:#2db2608c;border-color:#2db260;box-shadow:0 0 0 4px #2db26040}.planos-marca-etiqueta{display:flex;align-items:baseline;gap:4px;line-height:1.1;background:#ffffffe6;border-radius:4px;padding:1px 5px;white-space:nowrap;box-shadow:0 1px 3px #0000002e;pointer-events:none}.planos-marca-etiqueta-tipo{font-size:9px;font-weight:600;color:#7a8699}.planos-marca-etiqueta-posicion{font-size:15px;font-weight:800;color:#1a2733}.estatus-avance{background:#fff;border:1px solid #e3e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:22px 28px;margin-bottom:22px}.estatus-avance-encabezado{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.estatus-avance-encabezado span{font-size:19px;color:var(--azul);font-weight:600}.estatus-avance-encabezado strong{font-size:32px;color:var(--verde)}.estatus-avance-barra{height:22px;background:var(--gris);border-radius:999px;overflow:hidden}.estatus-avance-barra-relleno{height:100%;background:linear-gradient(90deg,#2db260,var(--verde));border-radius:999px;transition:width .3s ease}.estatus-avance-detalle{margin:10px 0 0;font-size:15px;color:#7a8699}.estatus-total-obra{font-size:19px;margin-bottom:22px}.estatus-total-obra strong{font-size:32px;color:var(--azul)}.estatus-tarjetas{display:flex;flex-wrap:wrap;gap:24px}.estatus-tarjeta{flex:1 1 460px;background:#fff;border:1px solid #e3e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:24px 28px}.estatus-tarjeta h3{margin:0 0 18px;font-size:21px;color:var(--azul)}.estatus-sin-datos{color:#7a8699;font-size:15px}.estatus-tarjeta-cuerpo{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.estatus-donut{position:relative;width:190px;height:190px;min-width:190px;border-radius:50%}.estatus-donut-vacio{background:var(--gris)}.estatus-donut-centro{position:absolute;top:30px;right:30px;bottom:30px;left:30px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.estatus-donut-centro strong{font-size:32px;color:var(--texto)}.estatus-donut-centro span{font-size:13px;color:#7a8699;text-transform:uppercase;letter-spacing:.03em}.estatus-leyenda{list-style:none;margin:0;padding:0;flex:1 1 200px;display:flex;flex-direction:column;gap:12px}.estatus-leyenda li{display:flex;align-items:center;gap:10px;font-size:17px}.estatus-leyenda-punto{width:14px;height:14px;min-width:14px;border-radius:50%}.estatus-leyenda-etiqueta{flex:1;color:var(--texto)}.estatus-leyenda-cantidad{font-weight:600;color:var(--azul);white-space:nowrap;font-size:17px}.estatus-leyenda-cantidad small{font-weight:400;color:#7a8699;font-size:14px}.estatus-leyenda-clicable{cursor:pointer;border-radius:6px;padding:4px 6px;margin:0 -6px;transition:background .15s ease}.estatus-leyenda-clicable:hover{background:#f0f4fa}.estatus-leyenda-clicable:hover .estatus-leyenda-etiqueta{text-decoration:underline}.direccion-contacto{background:#fff;border:1px solid #e3e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000a;padding:18px 20px;margin-bottom:20px}.direccion-contacto h3{margin:0 0 14px;font-size:15px;color:var(--azul)}.direccion-contacto-tenue{background:#f4f7fb;box-shadow:none}.direccion-contacto-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:none;padding:0;margin:0;font-size:14px;font-weight:600;color:var(--azul);cursor:pointer;text-align:left}.direccion-contacto-toggle:hover{color:var(--azul-med)}.direccion-contacto-toggle span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.direccion-contacto-flecha{font-size:10px;color:#7a8699;flex:none}.direccion-contacto-tenue .direccion-contacto-grid{margin-top:16px}.direccion-contacto-grid{display:flex;flex-wrap:wrap;gap:18px}.direccion-contacto-campo-direccion{flex:1 1 260px}.direccion-contacto-grid .filtro-campo{flex:1 1 180px;flex-direction:column;align-items:stretch;gap:4px}.direccion-contacto-grid .filtro-campo .input-filtro{width:100%;flex:none}.direccion-mapa-link{display:inline-block;margin-top:6px;font-size:13px;color:var(--azul-med);text-decoration:none}.direccion-mapa-link:hover{text-decoration:underline}.bitacora-obra{max-width:900px}.bitacora-obra-form{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:10px;padding:14px 16px;margin-bottom:18px}.bitacora-obra-form-fila{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-wrap:wrap}.bitacora-obra-fecha{width:auto;flex:none}.bitacora-obra-nota-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--texto);cursor:pointer}.bitacora-obra-textarea{width:100%;resize:vertical;min-height:44px;font-family:inherit;line-height:1.4;margin-bottom:8px}.bitacora-obra-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.bitacora-obra-item{background:#fff;border:1px solid #e3e8f0;border-radius:8px;padding:12px 16px}.bitacora-obra-item-encabezado{display:flex;align-items:center;gap:10px;margin-bottom:4px}.bitacora-obra-item-fecha{font-size:12.5px;font-weight:700;color:var(--azul)}.bitacora-obra-item-badge{font-size:11px;font-weight:600;color:#b8860b;background:#fff8e6;border:1px solid #f0dca0;border-radius:6px;padding:1px 6px}.bitacora-obra-item-borrar{margin-left:auto;background:none;border:none;cursor:pointer;font-size:13px;opacity:.5}.bitacora-obra-item-borrar:hover{opacity:1}.bitacora-obra-item-texto{font-size:14.5px;color:var(--texto);white-space:pre-wrap;margin:0 0 4px}.bitacora-obra-item-autor{font-size:11.5px;color:#999}.montaje-subpestanas-fila{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.montaje-subpestanas{margin-bottom:16px}.montaje-resumen-imprimir{display:none}.montaje-detalle-fila{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}.montaje-detalle-persona-bloque{display:flex;flex-direction:column;gap:6px}.montaje-detalle-agregar-persona{display:flex;gap:6px;align-items:center}.montaje-detalle-agregar-persona .input-filtro{width:130px;padding:5px 10px;font-size:12px}.montaje-detalle-agregar-persona .btn-secundario{padding:5px 10px;font-size:12px;white-space:nowrap}.montaje-detalle-acristalada{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:22px;cursor:pointer}.montaje-subtitulo{font-size:13px;font-weight:700;color:#3a4757;margin:0 0 8px}.montaje-tabla-materiales td:first-child{font-weight:600}.montaje-documentacion{display:flex;flex-direction:column;gap:22px}.montaje-doc-seccion-encabezado{display:flex;align-items:center;gap:10px;margin-bottom:8px}.montaje-doc-seccion-encabezado .montaje-subtitulo{margin:0;flex:1}.montaje-doc-vacio{font-size:12px}.montaje-doc-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.montaje-doc-item{display:flex;align-items:center;gap:10px;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:8px 12px}.montaje-doc-nombre{font-size:13px;font-weight:600;color:var(--azul-med);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.montaje-doc-nombre:hover{text-decoration:underline}.montaje-doc-meta{font-size:11px;color:#999;flex:1;white-space:nowrap}.montaje-tareas-form{display:flex;gap:8px;margin-bottom:14px}.montaje-tareas-form .input-filtro{flex:1}.montaje-tareas .notas-obra-lista{margin-bottom:24px}.facturacion-obra{display:flex;flex-direction:column;gap:4px}.facturacion-resumen{display:flex;align-items:center;gap:24px;flex-wrap:wrap;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:10px;padding:14px 20px;margin-bottom:20px}.facturacion-resumen-item{display:flex;flex-direction:column;gap:2px}.facturacion-resumen-etiqueta{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#7a8699}.facturacion-resumen-valor{font-size:18px;font-weight:700;color:var(--azul)}.facturacion-resumen-barra{flex:1;min-width:120px;height:8px;border-radius:4px;background:#e3e8f0;overflow:hidden}.facturacion-resumen-barra-relleno{height:100%;background:#1e8449;border-radius:4px;transition:width .2s ease}.facturacion-resumen-pct{font-size:12px;color:#7a8699;white-space:nowrap}.facturacion-fila-superior{display:flex;gap:32px;flex-wrap:wrap;align-items:flex-start;margin-bottom:8px}.facturacion-columna{flex:1;min-width:340px}.facturacion-fila-campos{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}.facturacion-campo-ancho,.facturacion-campo-direccion{flex:1;min-width:220px;flex-direction:column;align-items:stretch;gap:4px}.facturacion-fila-campos .facturacion-campo-ancho .input-filtro,.facturacion-fila-campos .facturacion-campo-direccion .input-filtro{flex:none;width:100%}.facturacion-input-pct{width:80px}.facturacion-datos-cliente{margin-bottom:22px}.facturacion-form-linea{display:flex;gap:8px;align-items:center;margin:10px 0 24px;flex-wrap:wrap}.facturacion-input-concepto{flex:1;min-width:220px}.facturacion-input-ref{width:140px}.facturacion-input-uds,.facturacion-input-precio{width:110px}.facturacion-tabla-lineas td{white-space:nowrap}.facturacion-tabla-lineas td:first-child{white-space:normal}.facturacion-tabla-lineas td:nth-child(2){white-space:normal;max-width:340px}.facturacion-concepto-editable{cursor:text;display:inline-block;border-radius:4px;padding:2px 4px;margin:-2px -4px}.facturacion-concepto-editable:hover{background:#eef2f7}.facturacion-concepto-edicion textarea{width:100%;min-width:260px;resize:vertical;font-family:inherit;font-size:inherit}.facturacion-pendiente{color:var(--rojo);font-weight:700}.facturacion-al-dia{color:#1e8449}.facturacion-fila-totales td{font-weight:700;border-top:2px solid #e3e8f0}.facturacion-anticipos{margin-bottom:24px}.facturacion-lista-anticipos{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.facturacion-anticipo-item{display:flex;gap:16px;align-items:center;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:8px 12px;font-size:13px;flex-wrap:wrap}.facturacion-anticipo-desc{font-weight:600;flex:1;min-width:160px}.facturacion-anticipo-fecha{color:#999;font-size:12px}.facturacion-numero-ronda{font-size:16px;font-weight:700;color:var(--azul)}.facturacion-nueva-ronda{background:#f7f9fc;border:1px solid #e3e8f0;border-radius:10px;padding:16px;margin:10px 0 20px}.facturacion-nueva-ronda-acciones{display:flex;gap:8px;margin-top:12px}.facturacion-aplicar-pct{align-items:flex-end;margin:10px 0}.facturacion-fila-seleccionada{background:#eaf0fb}.facturacion-historial{margin-bottom:10px}.facturacion-resumen-rondas{gap:32px;padding:10px 20px;margin-bottom:14px}.facturacion-resumen-rondas .facturacion-resumen-valor{font-size:16px}.facturacion-lista-rondas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.facturacion-ronda-item{display:flex;gap:14px;align-items:center;background:#f7f9fc;border:1px solid #e3e8f0;border-radius:8px;padding:10px 14px;font-size:13px;flex-wrap:wrap}.facturacion-ronda-item-editando{list-style:none}.facturacion-ronda-numero{font-weight:700;color:var(--azul)}.facturacion-ronda-tipo{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:3px 9px;border-radius:10px;white-space:nowrap}.facturacion-ronda-tipo-proforma{background:#eaf0fb;color:#2980b9}.facturacion-ronda-tipo-factura{background:#d5f5e3;color:#1e8449}.facturacion-ronda-numero-factura{color:#999;font-size:12px;flex:1}@media print{.app-sidebar,.dev-banner,.filtro-tabla,.pendientes-boton-imprimir,.notas-obra-archivar,.notas-obra-respuesta-form{display:none!important}.app-content{overflow:visible}.dashboard{max-width:none;padding:0}.dashboard-header{margin-bottom:10px}.dashboard-header h1{font-size:16px}.dashboard-header p{font-size:10.5px}.obras-seccion+.obras-seccion{margin-top:10px}.obras-seccion-titulo{font-size:11px;margin-bottom:4px}.pendientes-encabezados{margin-bottom:4px;padding-bottom:4px}.notas-obra-columna-titulo{font-size:11px;margin-bottom:4px}.notas-obra-columnas{gap:10px;margin-bottom:6px}.notas-obra-columna{padding:0}.notas-obra-lista{gap:0;margin-bottom:4px}.notas-obra-item{gap:6px;padding:3px 4px;background:none;border:none;border-bottom:1px solid #e3e8f0;border-radius:0;break-inside:avoid}.notas-obra-checkbox{width:11px;height:11px;margin-top:1px}.notas-obra-item-cuerpo{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:6px}.notas-obra-item-texto{font-size:10.5px;margin:0}.notas-obra-item-meta{font-size:9px;white-space:nowrap}.notas-obra-item-meta:before{content:"— "}.notas-obra-respuestas{flex-basis:100%;margin-top:2px;gap:2px}.notas-obra-respuesta-texto{font-size:10.5px}.notas-obra-respuesta-meta{font-size:9px}.pendientes-celda-vacia,.notas-obra-columna-vacia{font-size:9.5px;padding:2px 4px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.dashboard:has(.montaje-obra)>.boton-volver,.dashboard:has(.montaje-obra)>.dashboard-header,.dashboard:has(.montaje-obra)>.seguimiento-pestanas{display:none!important}.montaje-pantalla{display:none!important}.montaje-resumen-imprimir{display:block!important}.montaje-resumen-imprimir h1{font-size:17px;margin:0 0 12px;color:var(--azul)}.montaje-resumen-imprimir h2{font-size:13px;margin:18px 0 8px;padding-bottom:4px;border-bottom:1px solid #ddd;break-after:avoid}.montaje-resumen-tabla{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:11.5px}.montaje-resumen-tabla th,.montaje-resumen-tabla td{text-align:left;padding:3px 8px;border-bottom:1px solid #eee}.montaje-resumen-tabla th{width:200px;color:#7a8699;font-weight:700}.montaje-resumen-imagen{display:block;width:100%;max-width:100%;margin-bottom:14px;break-inside:avoid}.montaje-resumen-plano-contenedor{position:relative;margin-bottom:14px;break-inside:avoid}.montaje-resumen-plano-contenedor .montaje-resumen-imagen{margin-bottom:0}.montaje-resumen-marca{position:absolute;transform:translate(-50%,-50%);background:var(--rojo);color:#fff;font-size:8px;font-weight:700;line-height:1;padding:2px 4px;border-radius:8px;border:1px solid white;white-space:nowrap}.montaje-resumen-doc-referencia{font-size:11.5px;margin:0 0 6px}.montaje-resumen-tareas{list-style:none;margin:0;padding:0;font-size:11.5px;display:flex;flex-direction:column;gap:3px}.montaje-resumen-fotos{display:flex;flex-wrap:wrap;gap:8px}.montaje-resumen-foto{width:170px;height:170px;object-fit:cover;break-inside:avoid}}
