:root{--bg:#f5f6f8;--card:#fff;--text:#1a1d21;--muted:#6b7280;--line:#e3e6ea;--accent:#16a34a;--danger:#c92a2a;--warn:#f59f00;--sidebar-bg:#1a2332;--sidebar-text:#aab4c4;--sidebar-active-bg:#16a34a;--sidebar-active-text:#fff;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent)}.loading{color:var(--muted);padding:2rem}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.25rem}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login{gap:.9rem;width:min(380px,100%);display:grid}.login h1{margin:0 0 .25rem;font-size:1.2rem}label{color:var(--muted);gap:.3rem;font-size:.87rem;display:grid}input,select,textarea{border:1px solid var(--line);color:var(--text);background:var(--card);border-radius:7px;padding:.55rem .7rem;font-family:inherit;font-size:1rem}textarea{resize:vertical}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:.55rem .9rem;font-size:.95rem}button:disabled{opacity:.6;cursor:default}.error{color:var(--danger);margin:0;font-size:.87rem}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);flex-direction:column;gap:.25rem;padding:1rem .75rem;display:flex}.sidebar .marca{color:#fff;padding:.5rem .6rem 1.2rem;font-size:1rem;font-weight:700}.sidebar button{color:var(--sidebar-text);text-align:left;background:0 0;border-radius:8px;align-items:center;gap:.6rem;padding:.55rem .6rem;font-size:.92rem;display:flex}.sidebar button.on{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar button .icono{font-size:1.05rem}.contenido{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:.7rem 1.25rem;display:flex}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:.87rem}.topbar .campana,.topbar .contador-bot{color:var(--text);background:0 0;padding:.3rem .5rem;font-size:1.1rem;position:relative}.topbar .campana .aviso-num,.topbar .contador-bot .aviso-num{background:var(--danger);color:#fff;border-radius:999px;padding:.2rem .35rem;font-size:.65rem;line-height:1;position:absolute;top:-2px;right:-2px}main{width:100%;max-width:1200px;margin:0 auto;padding:1.25rem}.tabs{gap:.4rem;margin-bottom:1rem;display:flex}.tabs button{color:var(--muted);border:1px solid var(--line);background:0 0}.tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.stack{gap:.8rem;display:grid}.muted{color:var(--muted)}.esc.overdue{border-left:4px solid var(--danger)}.esc-head{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.esc-head .spacer{flex:1}.locator{font-family:ui-monospace,monospace;font-weight:600}.badge{color:var(--muted);background:#eef1f5;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.badge.danger{color:var(--danger);background:#ffe3e3}.summary{margin:0 0 .6rem}.kv{grid-template-columns:auto 1fr;gap:.25rem .9rem;margin:0;font-size:.9rem;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.search{width:100%;margin-bottom:.9rem}.grid{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;font-size:.9rem;overflow:hidden}.grid th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:#f0f2f5;padding:.6rem .7rem;font-weight:600}.grid td{border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .7rem}.grid tr:last-child td{border-bottom:0}.detalle{max-width:30ch}.cancelada td{opacity:.55}.dos-columnas{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:1rem;display:grid}@media (width<=720px){.dos-columnas{grid-template-columns:1fr}}.lista{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.fila{text-align:left;background:var(--card);width:100%;color:var(--text);border:1px solid var(--line);gap:.1rem;padding:.55rem .7rem;display:grid}.fila.on{border-color:var(--accent)}.fila .muted{font-size:.82rem}.chat{gap:.45rem;max-height:55vh;padding:.2rem;display:grid;overflow-y:auto}.burbuja{background:#eef1f5;border-radius:10px;max-width:78%;padding:.45rem .65rem}.burbuja.outbound{background:#dcf3e4;justify-self:end}.burbuja p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.burbuja time{color:var(--muted);font-size:.7rem}.aviso{margin-top:.8rem;font-size:.82rem}.aviso-confirmar{border-left:4px solid var(--accent);margin-top:.8rem}.aviso-confirmar h3{margin:0 0 .5rem;font-size:.95rem}.aviso-confirmar textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:7px;padding:.55rem .7rem;font-size:.92rem}.acciones{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}button.secundario{color:var(--muted);border:1px solid var(--line);background:0 0}button.peligro{background:var(--danger)}.form-linea{flex-wrap:wrap;align-items:end;gap:.5rem;margin-top:.6rem;display:flex}.form-linea label{flex:140px}.paginacion{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.tarjetas{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.tarjeta-inmueble{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:10px;transition:box-shadow .15s,transform .15s;overflow:hidden}.tarjeta-inmueble:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}.tarjeta-inmueble .foto-wrap{position:relative}.tarjeta-inmueble .foto{object-fit:cover;background:#eef1f5;width:100%;height:140px;display:block}.tarjeta-inmueble .foto-placeholder{background:#eef1f5;place-items:center;width:100%;height:140px;font-size:2.2rem;display:grid}.tarjeta-inmueble .cuerpo{gap:.3rem;padding:.75rem .85rem;display:grid}.tarjeta-inmueble .precio{font-size:1.15rem;font-weight:700}.boton-editar-tarjeta{width:30px;height:30px;color:var(--text);background:#ffffffeb;border-radius:999px;padding:0;font-size:.95rem;line-height:1;position:absolute;top:.4rem;right:.4rem;box-shadow:0 1px 4px #0003}.modal-fondo{z-index:100;background:#0f141c8c;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.modal-panel{background:var(--card);border-radius:12px;width:min(560px,100%);max-height:90vh;padding:1.75rem;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.modal-panel-ancho{width:min(960px,100%)}.import-resumen{flex-wrap:wrap;gap:1.25rem;margin:.6rem 0;font-size:.9rem;display:flex}.import-resumen strong{font-size:1.1rem}.import-progreso{gap:.5rem;display:grid}.form-inmueble{gap:1.15rem;display:grid}.form-inmueble .form-linea,.form-inmueble .checkboxes,.form-inmueble .fotos-form,.form-inmueble .acciones{margin-top:0}.form-inmueble-cabecera{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.form-inmueble-cabecera h2{margin:0;font-size:1.2rem;font-weight:700}.cerrar-modal{color:var(--muted);background:0 0;padding:0 .3rem;font-size:1.4rem;line-height:1}.zona-peligro{border-top:1px solid var(--line);padding-top:1.15rem}.zona-peligro h3{color:var(--danger);margin:0 0 .6rem;font-size:.9rem;font-weight:700}.ficha{gap:1.25rem;max-width:760px;display:grid}.ficha-galeria{gap:.5rem;display:grid}.ficha-foto-principal{object-fit:cover;border-radius:12px;width:100%;max-height:360px;display:block}.ficha-foto-vacia{background:#eef1f5;border-radius:12px;place-items:center;width:100%;height:220px;font-size:3rem;display:grid}.ficha-miniaturas{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.ficha-miniaturas img{object-fit:cover;border:2px solid var(--line);cursor:pointer;opacity:.75;border-radius:8px;width:100%;height:80px}.ficha-miniaturas img:hover{opacity:1}.ficha-miniaturas img.activa{border-color:var(--accent);opacity:1}.ficha-cabecera{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ficha-cabecera h2{margin:.4rem 0 .2rem;font-size:1.4rem}.ficha-ubicacion{color:var(--muted);margin:0}.ficha-precio{white-space:nowrap;font-size:1.7rem;font-weight:700}.ficha-precio .muted{font-size:.95rem;font-weight:400}.ficha-stats{background:var(--bg);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;padding:.9rem;display:grid}.ficha-stat{text-align:center;gap:.15rem;display:grid}.ficha-stat strong{text-transform:capitalize;font-size:1.1rem}.ficha-stat span{color:var(--muted);font-size:.78rem}.ficha h3{margin:0 0 .4rem;font-size:.95rem}.ficha p{margin:0;line-height:1.5}.ficha-extras{flex-wrap:wrap;gap:.5rem;display:flex}.pill{color:var(--text);background:#eef1f5;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex}.badge.disponible{color:#2b8a3e;background:#d3f9d8}.badge.reservado{color:#997404;background:#fff3bf}.badge.vendido,.badge.alquilado{color:var(--muted);background:#eef1f5}.filtros{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.fotos-form{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;display:flex}.fotos-form .miniatura{width:72px;height:72px;position:relative}.fotos-form .miniatura img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:100%;height:100%}.fotos-form .miniatura button{background:var(--danger);border-radius:999px;width:20px;height:20px;padding:0;font-size:.7rem;line-height:1;position:absolute;top:-6px;right:-6px}.checkboxes{color:var(--text);flex-wrap:wrap;gap:.9rem;font-size:.87rem;display:flex}.checkboxes label{flex-direction:row;align-items:center;gap:.35rem;display:flex}.lista-inmuebles-escalada{border:1px solid var(--line);border-radius:8px;gap:.15rem;max-height:300px;padding:.4rem;display:grid;overflow-y:auto}.lista-inmuebles-escalada label{color:var(--text);flex-direction:row;align-items:center;gap:.5rem;font-size:.87rem;display:flex}.fila-inmueble-seleccionable{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:6px;padding:.5rem .6rem;font-size:.87rem;display:block}.fila-inmueble-seleccionable:hover{background:var(--bg)}.inmueble-elegido{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.enlace-detalle{color:var(--accent);font:inherit;background:0 0;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s;display:inline}.enlace-detalle:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.dia-seleccionado{text-align:center;color:var(--muted);margin:-.3rem 0 .9rem}.dia-seleccionado strong{color:var(--text)}.calendario{background:var(--card);border:1px solid var(--line);border-radius:10px;max-width:480px;margin-top:1.25rem;padding:1rem}.calendario-cabecera{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.calendario-cabecera strong{text-transform:capitalize;font-size:.95rem}.calendario-grid{grid-template-columns:repeat(7,1fr);gap:.3rem;display:grid}.calendario-dow{margin-bottom:.3rem}.calendario-dow-celda{text-align:center;color:var(--muted);font-size:.72rem;font-weight:600}.calendario-celda{aspect-ratio:1;background:var(--bg);color:var(--text);border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:0;font-size:.82rem;display:flex;position:relative}.calendario-celda:hover{border-color:var(--line)}.calendario-celda.hoy{border-color:var(--accent);font-weight:700}.calendario-celda.seleccionado{background:var(--accent);color:#fff}.calendario-vacia{cursor:default;background:0 0}.calendario-conteo{background:var(--accent);color:#fff;border-radius:999px;padding:.1rem .35rem;font-size:.62rem;line-height:1}.calendario-celda.seleccionado .calendario-conteo{color:var(--accent);background:#fff}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.kpi-card{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:10px;justify-items:center;gap:.35rem;padding:1.25rem;display:grid}.kpi-card strong{color:var(--text);font-size:2rem;font-weight:700}.kpi-card span{color:var(--muted);font-size:.85rem}.banner-urgente{color:var(--danger);background:#ffe3e3;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex}.banner-urgente button{background:var(--danger)}.timeline{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.timeline-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.6rem;display:flex}.timeline-item:last-child{border-bottom:0;padding-bottom:0}.timeline-item time{white-space:nowrap;font-size:.8rem}
