:root{--marino:#0f2440;--marino-2:#1c3a5f;--marino-tenue:#8fabc9;--azul:#1a5ba8;--azul-claro:#4f9de0;--papel:#f5f7fa;--tinta:#0f2440;--gris:#5b6b7e;--linea:#e0e6ee;--blanco:#fff;--disp:#1a5ba8;--disp-bg:#e2edf9;--res:#c2871e;--res-bg:#fbf0dd;--vend:#a8442f;--vend-bg:#fbeae5;--nd:#b5bdc7;--nd-bg:#eef1f5;--nd-texto:#7d8b9c;--exito:#1e8e5a;--exito-bg:#e5f3ea;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-lg:18px;--text-xl:24px;--text-2xl:32px;--text-3xl:42px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--border-thin:1px;--border-thick:1.5px;--shadow-md:0 8px 24px #0f24400d}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--papel);color:var(--tinta);font-family:Plus Jakarta Sans,system-ui,sans-serif}.mono,button,input,select{font-family:inherit}a{color:inherit}.modal-base{width:min(480px,92vw);color:var(--tinta);border:none;border-radius:10px;margin:auto;padding:26px;font-family:Plus Jakarta Sans,sans-serif;box-shadow:0 20px 50px #00000040}.modal-base::backdrop{background:#0f244066}.modal-titulo{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-titulo h4{font-size:16px;font-weight:800}.modal-cerrar{cursor:pointer;color:var(--gris);background:0 0;border:none;padding:2px 6px;font-size:14px}.modal-cuerpo label{color:var(--gris);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 3px;font-size:11.5px;font-weight:600;display:block}.modal-cuerpo label:first-child{margin-top:0}.modal-cuerpo label.lista-checkbox{text-transform:none;letter-spacing:normal;color:var(--tinta);gap:8px;font-size:13px;display:flex}.modal-cuerpo label.lista-checkbox input{flex-shrink:0;width:auto}.modal-cuerpo input,.modal-cuerpo select,.modal-cuerpo textarea{border:1.5px solid var(--linea);width:100%;color:var(--tinta);background:#fff;border-radius:6px;padding:9px 10px;font-family:inherit;font-size:14px}.modal-cuerpo input:focus,.modal-cuerpo select:focus,.modal-cuerpo textarea:focus{border-color:var(--azul);outline:none}.modal-cuerpo textarea{resize:vertical}.modal-fila-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12.5px}.modal-acciones{gap:8px;margin-top:18px;display:flex}.modal-acciones button{cursor:pointer;border:none;border-radius:6px;flex:1;padding:10px;font-family:inherit;font-size:13.5px;font-weight:700}.modal-acciones button:disabled{opacity:.6;cursor:not-allowed}.modal-acciones .ok{background:var(--azul);color:#fff}.modal-acciones .ok.peligro{background:var(--vend)}.modal-acciones .no{background:var(--nd-bg);color:var(--tinta)}.selector-cliente-elegido{border:1.5px solid var(--linea);background:var(--disp-bg);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:13.5px;display:flex}.selector-cliente-elegido button{color:var(--azul);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:12.5px;font-weight:600}.selector-cliente-busqueda{gap:6px;display:flex}.selector-cliente-busqueda button{border:1.5px solid var(--linea);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:0 12px;font-size:12.5px;font-weight:600}.selector-cliente-resultados{border:1px solid var(--linea);border-radius:6px;max-height:140px;margin-top:6px;list-style:none;overflow-y:auto}.selector-cliente-resultados li button{text-align:left;cursor:pointer;border:none;border-bottom:1px dashed var(--linea);background:0 0;width:100%;padding:8px 10px;font-size:13px}.selector-cliente-resultados li:last-child button{border-bottom:none}.selector-cliente-resultados li button:hover{background:var(--papel)}.selector-cliente-nuevo{color:var(--azul);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:4px 0;font-size:12.5px;font-weight:700}.form-cliente-nuevo{background:var(--papel);border-radius:6px;margin-top:8px;padding:10px}.form-cliente-nuevo button{background:var(--azul);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:10px;padding:9px;font-size:13px;font-weight:700}.form-cliente-nuevo button:disabled{opacity:.6;cursor:not-allowed}.tabla-cuotas-wrap{border:1px solid var(--linea);border-radius:6px;max-height:340px;overflow-y:auto}.tabla-cuotas{border-collapse:collapse;width:100%;font-size:12.5px}.tabla-cuotas th,.tabla-cuotas td{text-align:right;border-bottom:1px solid var(--linea);white-space:nowrap;padding:6px 8px}.tabla-cuotas th:first-child,.tabla-cuotas td:first-child{text-align:left}.tabla-cuotas thead{background:var(--papel);position:sticky;top:0}.tabla-cuotas td.con-mora{color:var(--vend);font-weight:700}.chip-cuota{border-radius:99px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.chip-cuota.PENDIENTE{background:var(--disp-bg);color:var(--disp)}.chip-cuota.PARCIAL{background:var(--res-bg);color:var(--res)}.chip-cuota.PAGADA{background:var(--exito-bg);color:var(--exito)}.chip-cuota.VENCIDA{background:var(--vend-bg);color:var(--vend)}.chip-cuota.REFINANCIADA{background:var(--nd-bg);color:var(--nd-texto)}.modal-recibo-info{font-size:14px;line-height:1.6}.layout{background:var(--papel);min-height:100vh;display:flex}.layout aside{background:var(--marino);width:240px;color:var(--marino-tenue);border-radius:24px;flex-direction:column;flex-shrink:0;height:calc(100vh - 32px);margin:16px 0 16px 16px;padding:24px 16px;transition:height .3s;display:flex;position:sticky;top:16px;overflow-y:auto;box-shadow:0 20px 40px -10px #0f244026}.layout .logo-container{justify-content:space-between;align-items:center;padding:0 8px 32px;display:flex}.layout .logo{align-items:baseline;gap:2px;display:flex}.layout .logo b{letter-spacing:-.03em;color:#fff;font-size:22px;font-weight:800}.layout .logo span{color:var(--azul-claro);font-size:22px;font-weight:500}.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:none;padding:4px;display:none}.layout nav{flex-direction:column;flex:1;display:flex}.layout nav a{color:var(--marino-tenue);border-radius:9999px;align-items:center;gap:12px;margin-bottom:4px;padding:12px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.layout nav a.on{color:#fff;background:#ffffff1a;box-shadow:0 4px 12px #0000000d}.layout nav a:hover:not(.on){color:#fff;background:#ffffff0d;transform:translate(4px)}.nav-spacer{flex:1}.layout nav a.nav-pinned{border-top:1px solid #ffffff0d;border-radius:16px;margin-top:16px;padding-top:16px}.layout-main{flex-direction:column;flex:1;min-width:0;margin:16px;display:flex}.topbar{-webkit-backdrop-filter:blur(12px);background:#f5f7facc;border-radius:20px;align-items:center;margin-bottom:8px;padding:16px 24px;display:flex}.topbar .user{color:var(--gris);align-items:center;gap:16px;margin-left:auto;font-size:13px;display:flex}.topbar .avatar{background:var(--azul);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex;box-shadow:0 4px 12px #1a5ba833}.notificaciones-bell{position:relative}.notificaciones-bell-trigger{width:40px;height:40px;color:var(--gris);background:var(--blanco);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 4px 14px #0f24400a}.notificaciones-bell-trigger:hover{color:var(--azul);transform:translateY(-2px)scale(1.05);box-shadow:0 8px 24px #0f244014}.notificaciones-bell-trigger:active{transform:translateY(0)scale(.95)}@keyframes pulse-badge{0%{box-shadow:0 0 #dc262666}70%{box-shadow:0 0 0 6px #dc262600}to{box-shadow:0 0 #dc262600}}.notificaciones-bell-badge{background:var(--vend);color:#fff;text-align:center;border:2px solid var(--blanco);border-radius:9999px;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:800;line-height:16px;animation:2s infinite pulse-badge;position:absolute;top:0;right:0}.notificaciones-bell-panel{z-index:20;background:#fff;border:none;border-radius:20px;width:320px;padding:16px;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 20px 50px -10px #0f244026}.notificaciones-bell-vacio{color:var(--gris);text-align:center;padding:8px;font-size:13px}.notificaciones-bell-seccion{padding:8px 6px}.notificaciones-bell-seccion+.notificaciones-bell-seccion{border-top:1px solid var(--linea);margin-top:8px}.notificaciones-bell-seccion b{color:var(--tinta);margin-bottom:6px;font-size:13px;display:block}.notificaciones-bell-seccion p{color:var(--gris);font-size:13px}.notificaciones-bell-seccion ul{flex-direction:column;gap:6px;list-style:none;display:flex}.notificaciones-bell-seccion li{color:var(--gris);font-size:12.5px}.menu-usuario{position:relative}.menu-usuario-trigger{font:inherit;color:var(--tinta);background:var(--blanco);cursor:pointer;border:none;border-radius:9999px;align-items:center;gap:12px;padding:6px 16px 6px 6px;font-size:13px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 10px #0f24400d}.menu-usuario-trigger:hover{transform:translateY(-2px);box-shadow:0 6px 14px #0f244014}.menu-usuario-panel{z-index:20;background:#fff;border:none;border-radius:20px;width:240px;padding:12px;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 20px 50px -10px #0f244026}.menu-usuario-info{background:var(--papel);border-radius:12px;margin-bottom:12px;padding:12px}.menu-usuario-info b{color:var(--tinta);margin-bottom:2px;font-size:14px;font-weight:700;display:block}.menu-usuario-info span{color:var(--gris);font-size:12px}.menu-usuario-item{text-align:left;width:100%;font:inherit;color:var(--gris);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;transition:background .2s,color .2s;display:block}.menu-usuario-item:hover{background:var(--papel);color:var(--tinta)}.menu-usuario-item.peligro{color:var(--vend)}.menu-usuario-item.peligro:hover{background:var(--vend-bg)}@media (width<=860px){.layout{flex-direction:column}.layout aside{border-radius:20px;flex-direction:column;width:auto;height:auto;margin:16px;padding:16px;position:static;overflow:hidden}.layout .logo-container{width:100%;padding:0}.layout .logo{padding:0}.menu-toggle{display:block}.layout nav{flex-direction:column;width:100%;margin-top:16px;display:none}.layout aside.menu-abierto nav{display:flex}.nav-spacer{display:none}.layout nav a{white-space:normal;margin-bottom:4px;padding:12px 16px}.layout nav a.nav-pinned{border-top:1px solid #ffffff0d;border-left:none;border-radius:16px;margin-top:8px;margin-left:0;padding-top:16px;padding-left:16px}.layout-main{margin:0 16px 16px}}.login-fondo{background:var(--papel);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;flex-direction:column;width:min(360px,100%);padding:32px 28px;display:flex;box-shadow:0 20px 50px #0f244014}.login-logo{text-align:center;margin-bottom:4px}.login-logo b{color:var(--marino);font-size:24px;font-weight:800}.login-logo span{color:var(--gris);font-size:24px;font-weight:400}.login-subtitulo{text-align:center;color:var(--gris);margin-bottom:22px;font-size:13px}.login-tarjeta label{color:var(--gris);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 4px;font-size:11.5px;font-weight:600}.login-tarjeta input{border:1.5px solid var(--linea);border-radius:6px;padding:10px 12px;font-size:14px}.login-tarjeta input:focus{border-color:var(--azul);outline:none}.login-error{color:var(--vend);background:var(--vend-bg);border-radius:6px;margin-top:12px;padding:8px 10px;font-size:13px}.login-tarjeta button{background:var(--azul);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:20px;padding:12px;font-size:14px;font-weight:700}.login-tarjeta button:hover{opacity:.9}.login-tarjeta button:disabled{opacity:.6;cursor:not-allowed}.login-exito{color:var(--exito);background:var(--exito-bg);border-radius:6px;margin-top:12px;padding:8px 10px;font-size:13px}.login-enlace{text-align:center;margin-top:16px;font-size:13px}.login-enlace a{color:var(--azul);text-decoration:none}.login-enlace a:hover{text-decoration:underline}.inicio-premium{padding:var(--sp-8) var(--sp-6);background:var(--papel);gap:var(--sp-8);flex-direction:column;min-height:100vh;display:flex}.inicio-header{justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.inicio-saludo{gap:var(--sp-1);flex-direction:column;display:flex}.inicio-saludo h2{font-size:var(--text-2xl);font-weight:var(--font-extrabold);color:var(--tinta);letter-spacing:-.02em}.inicio-fecha{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gris)}.inicio-acciones{gap:var(--sp-3);flex-wrap:wrap;display:flex}.inicio-btn-pill{border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-bold);justify-content:center;align-items:center;padding:10px 24px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #0000000d}.btn-blue{background:var(--azul);color:var(--blanco)}.btn-blue:hover{background:var(--azul-claro);transform:translateY(-2px);box-shadow:0 6px 20px #1a5ba840}.btn-white{background:var(--blanco);color:var(--tinta);border:var(--border-thin) solid var(--linea)}.btn-white:hover{background:var(--papel);box-shadow:var(--shadow-md);transform:translateY(-2px)}.inicio-wrapper{gap:var(--sp-8);flex-direction:column;display:flex}.inicio-fila-kpis{gap:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.inicio-card-kpi{background:var(--blanco);padding:var(--sp-6);gap:var(--sp-4);border:1px solid #ffffff80;border-radius:20px;flex-direction:column;transition:transform .25s,box-shadow .25s;display:flex;box-shadow:0 10px 40px -10px #0f24400f}.inicio-card-kpi:hover{transform:translateY(-4px);box-shadow:0 20px 40px -10px #0f24401a}.inicio-kpi-header{justify-content:space-between;align-items:center;display:flex}.inicio-kpi-label{font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--gris)}.inicio-kpi-numero{font-size:48px;font-weight:var(--font-extrabold);color:var(--tinta);letter-spacing:-.02em;line-height:1}.inicio-icon-lg{width:var(--sp-6);height:var(--sp-6)}.inicio-fila-graficos{gap:var(--sp-6);grid-template-columns:1fr;align-items:start;display:grid}.inicio-panel-principal,.inicio-panel-secundario{background:var(--blanco);padding:var(--sp-8);gap:var(--sp-6);border-radius:24px;flex-direction:column;display:flex;box-shadow:0 10px 40px -10px #0f24400f}.inicio-panel-header{justify-content:space-between;align-items:center;display:flex}.inicio-panel-titulo{font-size:var(--text-base);font-weight:var(--font-extrabold);color:var(--tinta);letter-spacing:-.01em}.text-red{color:var(--vend)}.inicio-grafico-contenedor{width:100%}.grafico-eje-base,.grafico-eje-tope{stroke:var(--linea);stroke-dasharray:4 4}.grafico-texto{fill:var(--gris);font-size:11px;font-weight:var(--font-medium)}.inicio-badge-red{background:var(--vend-bg);color:var(--vend);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-bold);padding:4px 12px}.inicio-lista-alertas{gap:var(--sp-4);flex-direction:column;display:flex}.inicio-lista-alertas.horizontal{flex-flow:wrap}.inicio-item-alerta{align-items:center;gap:var(--sp-4);min-width:250px;padding:var(--sp-4);background:#fef2f2;border:1px solid #a8442f1a;border-radius:16px;flex:1;transition:transform .2s;display:flex}.inicio-item-alerta:hover{transform:translateY(-4px)}.inicio-alerta-icono{color:var(--vend);padding:var(--sp-2);border-radius:var(--radius-full);background:#a8442f1a;justify-content:center;align-items:center;display:flex}.inicio-icon-sm{width:20px;height:20px}.inicio-alerta-info{flex-direction:column;display:flex}.inicio-alerta-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--vend);opacity:.8}.inicio-alerta-valor{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--vend)}.inicio-error{background:var(--vend-bg);color:var(--vend);padding:var(--sp-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium)}.skeleton-box{background:var(--blanco);border-radius:20px}@keyframes skeleton-glow{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.skeleton-pulse{background:var(--linea);border-radius:var(--radius-md);animation:1.5s ease-in-out infinite skeleton-glow}@media (width<=1024px){.inicio-fila-graficos{grid-template-columns:1fr}}@media (width<=600px){.inicio-fila-kpis{grid-template-columns:1fr}.inicio-premium{padding:var(--sp-4)}}.dashboard{flex-direction:column;flex:1;min-height:0;display:flex}.dashboard-mensaje{text-align:center;color:var(--gris);padding:40px}.dashboard-header{padding:14px 22px 0}.proyecto-selector{flex-direction:column;display:flex}.proyecto-selector small{letter-spacing:.08em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:600}.proyecto-selector select{color:var(--tinta);cursor:pointer;background:0 0;border:none;outline:none;margin-top:4px;padding:0;font-size:20px;font-weight:800}.proyecto-selector select:focus{color:var(--azul)}.kpis{gap:16px;margin-top:24px;padding:0 22px 8px;display:flex;overflow-x:auto}.kpi{background:var(--blanco);border-radius:16px;flex:1;min-width:140px;padding:16px 20px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 14px #0f24400a}.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f24400f}.kpi small{letter-spacing:.07em;text-transform:uppercase;color:var(--gris);white-space:nowrap;font-size:10.5px;font-weight:600}.kpi .v{margin-top:4px;font-size:28px;font-weight:800}.kpi.disp .v{color:var(--disp)}.kpi.res .v{color:var(--res)}.kpi.vend .v{color:var(--vend)}.dashboard-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;margin:12px 22px 0;padding:8px 12px;font-size:13px}.dashboard-content{flex:1;align-items:flex-start;gap:16px;min-height:0;padding:16px 22px;display:flex}.plano-wrap{background:var(--blanco);border:none;border-radius:24px;flex:1;min-width:0;overflow:hidden;box-shadow:0 10px 40px -10px #0f24400f}.plano-head{border-bottom:1px solid #0f24400d;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 24px;display:flex}.plano-head h2{font-size:14px;font-weight:700}.leyenda{color:var(--gris);flex-wrap:wrap;gap:12px;margin-left:auto;font-size:11px;display:flex}.editar-plano-enlace{color:var(--azul);white-space:nowrap;background:#0a66c20d;border-radius:9999px;padding:6px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s}.editar-plano-enlace:hover{background:var(--azul);color:#fff}.leyenda i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.plano-scroll{padding:10px;overflow:auto}.plano-vacio{text-align:center;color:var(--gris);padding:40px 20px;font-size:13.5px}svg.plano{width:100%;min-width:560px;height:auto;display:block}.lote-g{cursor:pointer;outline:none}.lote-r{stroke:#fff;stroke-width:.6px;transition:opacity .12s}.lote-g:hover .lote-r{opacity:.82}.lote-g.sel .lote-r{stroke:var(--tinta);stroke-width:.5px}.lote-g:focus-visible .lote-r{outline:2px solid var(--res);outline-offset:1px}text.lnum{fill:#fff;pointer-events:none;font-family:Plus Jakarta Sans,sans-serif;font-size:3.2px;font-weight:600}.panel{background:var(--blanco);border:none;border-radius:24px;flex-shrink:0;width:290px;padding:24px;position:sticky;top:16px;box-shadow:0 10px 40px -10px #0f24400f}.panel-vacio{color:var(--gris);font-size:13px}.panel .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:600}.panel h3{margin:2px 0 10px;font-size:22px;font-weight:800}.chip{letter-spacing:.03em;border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip.DISPONIBLE{background:var(--disp-bg);color:var(--disp)}.chip.RESERVADO{background:var(--res-bg);color:var(--res)}.chip.VENDIDO{background:var(--vend-bg);color:var(--vend)}.chip.NO_DISPONIBLE{background:var(--nd-bg);color:var(--nd-texto)}.panel dl{margin:14px 0;font-size:13px}.panel dl div{border-bottom:1px solid #0f24400a;justify-content:space-between;padding:10px 0;display:flex}.panel dt{color:var(--gris)}.panel dd{font-weight:600}.hint{color:var(--gris);margin-top:10px;font-size:11.5px;line-height:1.45}.panel-acciones{border-top:1px solid #0f24400d;margin-top:24px;padding-top:20px}.btn{text-align:center;cursor:pointer;border:none;border-radius:9999px;width:100%;margin-top:8px;padding:12px;font-family:inherit;font-size:14.5px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:block}.panel-acciones .btn:first-child{margin-top:0}.btn.p{background:var(--azul);color:#fff}.btn.s{color:var(--azul);border:1.5px solid var(--azul);background:0 0}.btn.p:hover:not(:disabled){background:var(--azul-oscuro,#084d96);transform:translateY(-1px);box-shadow:0 4px 12px #0a66c24d}.btn.s:hover:not(:disabled){background:#0a66c20d;transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=860px){.dashboard-content{flex-direction:column;padding:12px}.panel{width:100%;position:static}}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor-mensaje{text-align:center;color:var(--gris);padding:40px}.editor-header{background:var(--marino);color:var(--marino-tenue);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 18px;display:flex}.editor-crumb{color:var(--marino-tenue);font-size:12.5px}.editor-proyecto{color:#fff;background:#ffffff1f;border:none;border-radius:6px;padding:6px 10px;font-size:12.5px;font-weight:600}.editor-modos{background:#ffffff1f;border-radius:6px;margin-left:auto;padding:2px;display:flex}.editor-modos button{color:var(--marino-tenue);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:7px 13px;font-size:12.5px;font-weight:700}.editor-modos button.on{color:var(--azul);background:#fff}.editor-bar{background:var(--blanco);border-bottom:1px solid var(--linea);flex-wrap:wrap;align-items:center;gap:8px;padding:9px 18px;display:flex}.editor-zoom{border-right:1px solid var(--linea);align-items:center;gap:4px;margin-right:4px;padding-right:10px;display:flex}.editor-zoom span{color:var(--gris);text-align:center;min-width:38px;font-size:12px;font-weight:700}.editor-zoom button{border:1.5px solid var(--linea);width:26px;height:26px;color:var(--tinta);cursor:pointer;background:#fff;border-radius:6px;font-family:inherit;font-size:13px;font-weight:700}.editor-zoom button:disabled{opacity:.5;cursor:not-allowed}.editor-zoom button:last-child{width:auto;padding:0 8px;font-size:11px}.editor-boton{cursor:pointer;border:1.5px solid var(--linea);color:var(--tinta);background:#fff;border-radius:6px;padding:8px 12px;font-size:12.5px;font-weight:600;position:relative}.editor-boton:hover:not(:disabled){border-color:var(--azul)}.editor-boton:disabled{opacity:.5;cursor:not-allowed}.editor-boton.p{background:var(--azul);color:#fff;border-color:var(--azul)}.editor-boton input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.editor-estado{color:var(--gris);margin-left:auto;font-size:12px}.editor-precio-m2{color:var(--gris);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.editor-precio-m2 input{border:1.5px solid var(--linea);border-radius:6px;width:90px;padding:6px 8px;font-family:inherit;font-size:12.5px}.editor-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;margin:10px 18px 0;padding:8px 12px;font-size:13px}.editor-wrap{flex:1;align-items:flex-start;gap:14px;min-height:0;padding:14px 18px;display:flex}.editor-lienzo{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;flex:1;min-width:0;position:relative;overflow:auto}.editor-lienzo svg{touch-action:manipulation;display:block}.editor-lienzo svg.trazando{cursor:crosshair}.poligono-existente polygon{transition:opacity .12s}.poligono-existente:hover polygon{opacity:.85}.editor-draft{fill:#1a5ba840;stroke:var(--disp);stroke-width:2px;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;cursor:move}.editor-vtx{fill:#fff;stroke:var(--azul);stroke-width:2px;cursor:grab;vector-effect:non-scaling-stroke}.poligono-dxf-candidato{cursor:pointer}.poligono-dxf-candidato polygon{fill:#c2871e40;stroke:var(--res);stroke-width:2px;stroke-dasharray:6 4;transition:opacity .12s}.poligono-dxf-candidato:hover polygon{opacity:.7}.editor-guia-linea{stroke:var(--gris);stroke-width:1px;stroke-dasharray:3 3;pointer-events:none;vector-effect:non-scaling-stroke}.editor-guia-nodo,.editor-guia-nodo-borde{fill:none;stroke-linecap:round;pointer-events:none;vector-effect:non-scaling-stroke}.editor-guia-nodo-borde{stroke:#fff;stroke-width:9px}.editor-guia-nodo{stroke:var(--azul);stroke-width:7px}text.editor-pnum{fill:#fff;pointer-events:none;font-family:Plus Jakarta Sans,sans-serif;font-size:10px;font-weight:600}.editor-ph-linea{stroke:#d5dce4;stroke-width:1px}text.editor-ph-texto{fill:#a9b3c0;letter-spacing:.15em;text-anchor:middle;font-family:Plus Jakarta Sans,sans-serif;font-size:10px}.editor-panel{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;flex-shrink:0;width:340px;padding:14px}.editor-panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--gris);font-size:13px;font-weight:800}.editor-capas-panel{border-bottom:1px solid var(--linea);margin-bottom:16px;padding-bottom:14px}.editor-capas-analizar,.editor-capas-cambiar{width:100%;margin-top:10px}.editor-capas-panel>.editor-capas-lista{max-height:340px;overflow-y:auto}.editor-capas-lista{flex-direction:column;gap:8px;margin-top:8px;list-style:none;display:flex}.editor-capas-lista li{flex-direction:column;gap:2px;display:flex}.editor-capas-lista label{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.editor-capas-lista input:disabled+.editor-capa-nombre{color:var(--gris)}.editor-capa-nombre{overflow-wrap:anywhere;flex:1}.editor-capa-cuenta{color:var(--gris);background:var(--nd-bg);border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700}.editor-capa-vacia,.editor-capa-detalle{margin-left:24px;font-size:11px}.editor-capa-vacia{color:var(--gris)}.editor-capa-detalle{color:var(--disp)}.editor-hint{color:var(--gris);margin-top:8px;font-size:12px;line-height:1.5}.editor-vacio{color:var(--gris);padding:14px 0;font-size:12.5px}.editor-lista{max-height:300px;margin-top:10px;list-style:none;overflow:auto}.editor-lista li{border-bottom:1px dashed var(--linea);align-items:center;gap:8px;padding:7px 4px;font-size:13px;display:flex}.editor-lista li i{border-radius:2px;flex-shrink:0;width:10px;height:10px}.editor-lista li b{font-weight:700}.editor-lista li small{color:var(--gris);margin-left:auto}.editor-lista li button{color:var(--vend);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px}.editor-probar-info{border-top:1px solid var(--linea);margin-top:14px;padding-top:10px;font-size:13px}.editor-probar-info .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:600}.editor-dialog{border:none;border-radius:10px;width:min(380px,90vw);margin:auto;padding:26px;font-family:Plus Jakarta Sans,sans-serif;box-shadow:0 20px 50px #00000040}.editor-dialog::backdrop{background:#0f244066}.editor-dialog h4{margin-bottom:12px;font-size:16px;font-weight:800}.editor-dialog label{color:var(--gris);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 3px;font-size:11.5px;font-weight:600;display:block}.editor-dialog select,.editor-dialog input{border:1.5px solid var(--linea);width:100%;color:var(--tinta);background:#fff;border-radius:6px;padding:9px 10px;font-family:inherit;font-size:14px}.editor-dialog select:focus,.editor-dialog input:focus{border-color:var(--azul);outline:none}.editor-dialog-dxf{width:min(440px,92vw)}.editor-dialog-toggle{background:var(--nd-bg);border-radius:8px;gap:6px;margin-bottom:4px;padding:3px;display:flex}.editor-dialog-toggle button{color:var(--gris);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 10px;font-family:inherit;font-size:12px;font-weight:700}.editor-dialog-toggle button.on{color:var(--azul);background:#fff}.editor-dialog-fila{grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;display:grid}.editor-dialog-fila select,.editor-dialog-fila input{width:auto}.editor-dialog-fila button{border:1.5px solid var(--linea);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:9px 10px;font-family:inherit;font-size:12px;font-weight:600}.editor-dialog-fila button:disabled{opacity:.5;cursor:not-allowed}.editor-dialog-fila-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.editor-dialog label.editor-dialog-checkbox{text-transform:none;letter-spacing:normal;color:var(--tinta);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.editor-dialog-checkbox input{width:auto}.editor-dialog-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12.5px}.editor-dialog-acciones{gap:8px;margin-top:16px;display:flex}.editor-dialog-acciones button{cursor:pointer;border:none;border-radius:6px;flex:1;padding:10px;font-family:inherit;font-size:13.5px;font-weight:700}.editor-dialog-acciones .ok{background:var(--azul);color:#fff}.editor-dialog-acciones .no{background:var(--nd-bg);color:var(--tinta)}.editor-toast{background:var(--tinta);color:#fff;text-align:center;border-radius:8px;max-width:90vw;padding:10px 16px;font-size:13px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@media (width<=820px){.editor-wrap{flex-direction:column}.editor-panel{width:100%}}.editor-zona-dxf{flex-direction:column;gap:4px;margin-top:10px;font-size:12px;font-weight:600;display:flex}.editor-zona-dxf small{color:var(--gris);font-weight:400}.lista-pagina{padding:22px}.lista-header{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;display:flex}.lista-header h2{font-size:20px;font-weight:800}.lista-header .btn-nuevo{color:#fff;background:var(--azul);cursor:pointer;border:none;border-radius:9999px;margin-left:auto;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1)}.lista-header .btn-nuevo:hover{background:var(--azul-oscuro,#084d96);transform:translateY(-1px);box-shadow:0 4px 12px #0a66c24d}.lista-header .btn-secundario{margin-left:auto}.lista-selector{flex-direction:column;display:flex}.lista-selector small{letter-spacing:.08em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:600}.lista-selector select{color:var(--tinta);cursor:pointer;background:0 0;border:none;outline:none;margin-top:4px;padding:0;font-size:20px;font-weight:800}.lista-selector select:focus{color:var(--azul)}.lista-filtros{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.lista-busqueda{gap:6px;display:flex}.lista-busqueda input{border:1px solid #0f24401a;border-radius:9999px;outline:none;min-width:240px;padding:10px 16px;font-family:inherit;font-size:13.5px;transition:border-color .2s,box-shadow .2s}.lista-busqueda input:focus{border-color:var(--azul);box-shadow:0 0 0 3px #0a66c21a}.lista-busqueda button{color:var(--azul);cursor:pointer;white-space:nowrap;background:#0a66c20d;border:none;border-radius:9999px;padding:0 18px;font-size:13.5px;font-weight:700;transition:all .2s}.lista-busqueda button:hover{background:#0a66c21a}.lista-filtro-select{color:var(--gris);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.lista-filtro-select select{color:var(--tinta);background:#fff;border:1px solid #0f24401a;border-radius:12px;outline:none;padding:8px 12px;font-family:inherit;font-size:13.5px;transition:border-color .2s}.lista-filtro-select select:focus{border-color:var(--azul)}.lista-checkbox{cursor:pointer;color:var(--tinta);align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex}.lista-checkbox input[type=checkbox]{accent-color:var(--azul);cursor:pointer;width:16px;height:16px}.lista-seccion{background:var(--blanco);border:none;border-radius:24px;padding:24px;box-shadow:0 10px 40px -10px #0f24400f}.lista-seccion+.lista-seccion{margin-top:16px}.cliente-ficha>div{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.cliente-ficha b{font-size:15px}.cliente-ficha span{color:var(--gris);font-size:12px}.btn-secundario{color:var(--azul);cursor:pointer;white-space:nowrap;background:#0a66c20d;border:none;border-radius:9999px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:700;transition:all .2s;display:inline-block}.btn-secundario:hover{background:#0a66c21a;transform:translateY(-1px)}.lista-mensaje,.lista-vacio{color:var(--gris);padding:20px 0;font-size:13.5px}.lista-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;margin-bottom:14px;padding:10px 12px;font-size:13px}.tabla-lista-wrap{border:none;border-radius:16px;overflow-x:auto;box-shadow:0 4px 14px #0f24400a}.tabla-lista{border-collapse:collapse;width:100%;font-size:13px}.tabla-lista th,.tabla-lista td{text-align:right;white-space:nowrap;border-bottom:1px solid #0f24400a;padding:14px 18px}.tabla-lista th:first-child,.tabla-lista td:first-child,.tabla-lista th:nth-child(2),.tabla-lista td:nth-child(2){text-align:left}.tabla-lista thead{background:#0f244005}.tabla-lista th{letter-spacing:.06em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:700}.tabla-lista tbody tr:last-child td{border-bottom:none}.tabla-lista tbody tr.fila-clic{cursor:pointer}.tabla-lista tbody tr.fila-clic:hover{background:var(--papel)}.tabla-lista .acciones-fila{justify-content:flex-end;gap:6px;display:flex}.tabla-lista .acciones-fila button{color:var(--tinta);cursor:pointer;white-space:nowrap;background:#0f24400a;border:none;border-radius:9999px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s}.tabla-lista .acciones-fila button:hover{background:#0f244014}.tabla-lista .acciones-fila button.peligro{border-color:var(--vend);color:var(--vend)}.tabla-lista .acciones-fila button:disabled{opacity:.5;cursor:not-allowed}.lista-paginacion{color:var(--gris);justify-content:center;align-items:center;gap:16px;margin-top:14px;font-size:12.5px;display:flex}.lista-paginacion button{color:var(--tinta);cursor:pointer;background:#0f24400a;border:none;border-radius:9999px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:700;transition:all .2s}.lista-paginacion button:hover:not(:disabled){background:#0f244014}.lista-paginacion button:disabled{opacity:.5;cursor:not-allowed}.chip-activo{letter-spacing:.03em;background:var(--disp-bg);color:var(--disp);border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-inactivo{letter-spacing:.03em;background:var(--nd-bg);color:var(--nd-texto);border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-rol{letter-spacing:.03em;background:var(--nd-bg);color:var(--gris);border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-rol.ADMIN{background:var(--marino);color:#fff}.chip-venta{letter-spacing:.03em;border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-venta.ACTIVA{background:var(--disp-bg);color:var(--disp)}.chip-venta.CANCELADA{background:var(--nd-bg);color:var(--gris)}.chip-venta.RESCINDIDA{background:var(--vend-bg);color:var(--vend)}.chip-reserva{letter-spacing:.03em;border-radius:9999px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-reserva.VIGENTE{background:var(--res-bg);color:var(--res)}.chip-reserva.CONVERTIDA{background:var(--exito-bg);color:var(--exito)}.chip-reserva.VENCIDA{background:var(--vend-bg);color:var(--vend)}.chip-reserva.ANULADA{background:var(--nd-bg);color:var(--nd-texto)}.lista-tabs{background:var(--linea);border-radius:8px;gap:6px;padding:3px;display:flex}.lista-tabs button{color:var(--gris);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:700}.lista-tabs button.on{background:var(--blanco);color:var(--azul)}.reportes{padding:22px}.reportes-header{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:18px;display:flex}.reportes-header h2{font-variation-settings:"wdth" 110;font-size:20px;font-weight:800}.reportes-tabs{background:var(--linea);border-radius:8px;gap:6px;padding:3px;display:flex}.reportes-tabs button{color:var(--gris);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:700}.reportes-tabs button.on{background:var(--blanco);color:var(--azul)}.reportes-mensaje,.reportes-vacio{color:var(--gris);padding:20px 0;font-size:13.5px}.reportes-error{background:var(--vend-bg);color:var(--vend);border-radius:6px;padding:10px 12px;font-size:13px}.reporte-seccion{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;padding:18px}.kpis-reporte{background:var(--linea);border:1px solid var(--linea);border-radius:6px;flex-wrap:wrap;gap:1px;margin-bottom:16px;display:flex;overflow:hidden}.kpi-reporte{background:var(--blanco);flex:1;min-width:130px;padding:11px 16px}.kpi-reporte small{letter-spacing:.07em;text-transform:uppercase;color:var(--gris);white-space:nowrap;font-size:10.5px;font-weight:600}.kpi-reporte .v{margin-top:2px;font-size:19px;font-weight:800}.kpi-reporte.mora .v{color:var(--vend)}.kpi-reporte.mora{background:var(--vend-bg)}.reporte-filtros{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:14px;display:flex}.reporte-filtros .btn-secundario{margin-left:auto}.reporte-checkbox{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.reporte-fecha{color:var(--gris);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.reporte-fecha input{border:1.5px solid var(--linea);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.tabla-reporte-wrap{border:1px solid var(--linea);border-radius:6px;overflow-x:auto}.tabla-reporte{border-collapse:collapse;width:100%;font-size:13px}.tabla-reporte th,.tabla-reporte td{text-align:right;border-bottom:1px solid var(--linea);white-space:nowrap;padding:9px 12px}.tabla-reporte th:first-child,.tabla-reporte td:first-child,.tabla-reporte th:nth-child(2),.tabla-reporte td:nth-child(2){text-align:left}.tabla-reporte thead{background:var(--papel)}.tabla-reporte th{letter-spacing:.06em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:700}.tabla-reporte tbody tr:last-child td{border-bottom:none}.celda-mora{color:var(--vend);font-weight:700}.chip-num{font-weight:700}.chip-num.disp{color:var(--disp)}.chip-num.res{color:var(--res)}.chip-num.vend{color:var(--vend)}.reporte-paginacion{color:var(--gris);justify-content:center;align-items:center;gap:16px;margin-top:14px;font-size:12.5px;display:flex}.reporte-paginacion button{border:1.5px solid var(--linea);cursor:pointer;background:#fff;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:600}.reporte-paginacion button:disabled{opacity:.5;cursor:not-allowed}.bitacora-titulo{color:var(--tinta);margin-bottom:12px;font-size:14.5px;font-weight:800}.bitacora-form{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.bitacora-form textarea{resize:vertical;border:1px solid #0f24401a;border-radius:12px;outline:none;padding:10px 14px;font-family:inherit;font-size:13.5px;transition:border-color .2s,box-shadow .2s}.bitacora-form textarea:focus{border-color:var(--azul);box-shadow:0 0 0 3px #0a66c21a}.bitacora-form-fila{align-items:flex-end;gap:12px;display:flex}.bitacora-form-fila label{color:var(--gris);flex-direction:column;gap:4px;font-size:11px;font-weight:600;display:flex}.bitacora-form-fila input[type=date]{border:1px solid #0f24401a;border-radius:9999px;outline:none;padding:8px 12px;font-family:inherit;font-size:13.5px;transition:border-color .2s}.bitacora-form-fila input[type=date]:focus{border-color:var(--azul)}.bitacora-form-fila button{color:#fff;background:var(--azul);cursor:pointer;white-space:nowrap;border:none;border-radius:9999px;margin-left:auto;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:700;transition:all .2s}.bitacora-form-fila button:hover:not(:disabled){background:var(--azul-oscuro,#084d96);transform:translateY(-1px)}.bitacora-form-fila button:disabled{opacity:.5;cursor:not-allowed}.bitacora-lista{flex-direction:column;gap:10px;list-style:none;display:flex}.bitacora-nota{background:#0f244005;border:none;border-radius:12px;padding:12px 16px}.bitacora-nota-meta{color:var(--gris);margin-bottom:4px;font-size:11.5px}.bitacora-nota p{white-space:pre-wrap;font-size:13.5px}.chip-promesa{background:var(--disp-bg);color:var(--disp);border-radius:9999px;margin-left:8px;padding:4px 12px;font-size:11.5px;font-weight:700;display:inline-block}.chip-promesa.vencida{background:var(--vend-bg);color:var(--vend)}.cobrar-resumen{gap:28px;margin:16px 0;display:flex}.cobrar-resumen>div{flex-direction:column;gap:2px;display:flex}.cobrar-resumen small{letter-spacing:.06em;text-transform:uppercase;color:var(--gris);font-size:10.5px;font-weight:600}.cobrar-resumen b{font-size:19px;font-weight:800}.mora-texto{color:var(--vend);font-weight:700}.lista-seccion h3{color:var(--tinta);margin-bottom:12px;font-size:14.5px;font-weight:800}.estado-cuenta-ventas{flex-direction:column;gap:14px;display:flex}.tarjeta-venta{border:1px solid var(--linea);border-radius:8px;overflow:hidden}.tarjeta-venta-header{background:var(--papel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.tarjeta-venta-header>div:first-child{flex-direction:column;gap:2px;display:flex}.tarjeta-venta-header-derecha{align-items:center;gap:10px;display:flex}.tarjeta-venta-sub{color:var(--gris);font-size:12px}.tarjeta-venta-seccion{padding:14px 16px}.tarjeta-venta-seccion+.tarjeta-venta-seccion{border-top:1px solid var(--linea)}.tarjeta-venta-seccion h4{letter-spacing:.04em;text-transform:uppercase;color:var(--gris);margin-bottom:10px;font-size:11px;font-weight:700}
