@charset "UTF-8";:root{--bg-app: #f8fafc;--bg-surface: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--text-light: #94a3b8;--border-color: #e2e8f0;--border-hover: #cbd5e1;--primary: #4f46e5;--primary-hover: #4338ca;--primary-active: #3730a3;--primary-light: #e0e7ff;--primary-light-text: #3730a3;--success: #10b981;--success-hover: #059669;--success-light: #d1fae5;--success-text: #065f46;--info: #0ea5e9;--info-light: #e0f2fe;--info-text: #0369a1;--warning: #f59e0b;--warning-light: #fef3c7;--warning-text: #92400e;--danger: #ef4444;--danger-hover: #dc2626;--danger-light: #fee2e2;--danger-text: #991b1b;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(15, 23, 42, .05);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .05), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .08);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:Inter,Plus Jakarta Sans,system-ui,-apple-system,sans-serif;background-color:var(--bg-app);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--text-light);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--text-main);letter-spacing:-.02em}h1{font-size:var(--font-2xl)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl);gap:var(--space-lg);flex-wrap:wrap}.page-header h1{font-size:var(--font-2xl);font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:var(--space-sm)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.actions{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.period-field{display:flex;flex-direction:column;gap:.15rem;font-size:var(--font-xs);color:var(--text-muted)}.period-field input[type=date]{padding:.35rem .6rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);font-size:var(--font-sm);font-family:inherit;color:var(--text-main);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.period-field input[type=date]:hover{border-color:var(--border-hover)}.period-field input[type=date]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.filter-select{max-width:250px;padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);font-size:var(--font-sm);font-family:inherit;color:var(--text-main);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.filter-select:hover{border-color:var(--border-hover)}.filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.card{padding:var(--space-xl);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),border-color var(--transition-fast);position:relative;overflow:hidden}.card.narrow{max-width:28rem;margin:0 auto}.card.alert-card{text-decoration:none;color:inherit;border-left:4px solid var(--primary);display:flex;flex-direction:column;gap:var(--space-xs);cursor:pointer}.card.alert-card:hover{border-color:var(--border-hover) var(--border-hover) var(--border-hover) var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card.alert-card strong{color:var(--text-muted);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em}.card.alert-card .big-number{font-size:2.25rem;font-weight:700;color:var(--text-main);line-height:1.1;margin:var(--space-xs) 0}.card strong{display:block;font-size:var(--font-base);color:var(--text-main);font-weight:600;margin-bottom:var(--space-sm)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-sm);margin-top:var(--space-lg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}table th{background-color:var(--bg-app);color:var(--text-muted);font-weight:600;padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--border-color);letter-spacing:.02em;text-transform:uppercase;font-size:.75rem}table td{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color);color:var(--text-main);background-color:var(--bg-surface);vertical-align:middle;transition:background-color var(--transition-fast)}table tbody tr:last-child td{border-bottom:none}table tbody tr:hover td{background-color:#f8fafc}table.nested{margin:var(--space-md) 0;box-shadow:none}table.nested th{background-color:#f1f5f9}form{display:flex;flex-direction:column;gap:var(--space-lg)}form label{font-size:var(--font-sm);font-weight:600;color:var(--text-main);margin-bottom:calc(-1 * var(--space-xs));display:flex;align-items:center;gap:var(--space-xs)}form input[type=text],form input[type=email],form input[type=password],form input[type=number],form input[type=date],form select,form textarea{width:100%;padding:var(--space-md) var(--space-lg);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-surface);font-size:var(--font-sm);font-family:inherit;color:var(--text-main);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}form input[type=text]::placeholder,form input[type=email]::placeholder,form input[type=password]::placeholder,form input[type=number]::placeholder,form input[type=date]::placeholder,form select::placeholder,form textarea::placeholder{color:var(--text-light)}form input[type=text]:hover:not(:disabled),form input[type=email]:hover:not(:disabled),form input[type=password]:hover:not(:disabled),form input[type=number]:hover:not(:disabled),form input[type=date]:hover:not(:disabled),form select:hover:not(:disabled),form textarea:hover:not(:disabled){border-color:var(--border-hover)}form input[type=text]:focus:not(:disabled),form input[type=email]:focus:not(:disabled),form input[type=password]:focus:not(:disabled),form input[type=number]:focus:not(:disabled),form input[type=date]:focus:not(:disabled),form select:focus:not(:disabled),form textarea:focus:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}form input[type=text]:disabled,form input[type=email]:disabled,form input[type=password]:disabled,form input[type=number]:disabled,form input[type=date]:disabled,form select:disabled,form textarea:disabled{background-color:#f1f5f9;color:var(--text-muted);cursor:not-allowed;border-color:var(--border-color)}form .checkbox{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;margin-top:var(--space-xs)}form .checkbox input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--primary);border-radius:var(--radius-sm);cursor:pointer}.form-inline{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:flex-end;margin-bottom:var(--space-lg);padding:var(--space-lg);background-color:#f8fafc;border-radius:var(--radius-md);border:1px dashed var(--border-color)}.form-inline label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-xs);flex:1;min-width:140px;margin-bottom:0}.form-inline label input,.form-inline label select{padding:.5rem .75rem}.form-inline input,.form-inline select{flex:1;min-width:180px;padding:.5rem .75rem}.form-inline button{height:38px;align-self:flex-end}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.5rem 1rem;font-family:inherit;font-size:var(--font-sm);font-weight:550;line-height:1.25;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:var(--primary);color:#fff}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--primary-hover)}button:active:not(:disabled),.btn:active:not(:disabled){background:var(--primary-active);transform:scale(.98)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}button.secondary,button.btn-secondary,.btn.secondary,.btn.btn-secondary{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-color)}button.secondary:hover:not(:disabled),button.btn-secondary:hover:not(:disabled),.btn.secondary:hover:not(:disabled),.btn.btn-secondary:hover:not(:disabled){background:var(--bg-app);border-color:var(--border-hover)}button.secondary:active:not(:disabled),button.btn-secondary:active:not(:disabled),.btn.secondary:active:not(:disabled),.btn.btn-secondary:active:not(:disabled){background:#e2e8f0}button.danger,button.btn-danger,.btn.danger,.btn.btn-danger{background:var(--danger-light);color:var(--danger-text);border:1px solid var(--danger-light)}button.danger:hover:not(:disabled),button.btn-danger:hover:not(:disabled),.btn.danger:hover:not(:disabled),.btn.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}button.danger:active:not(:disabled),button.btn-danger:active:not(:disabled),.btn.danger:active:not(:disabled),.btn.btn-danger:active:not(:disabled){background:var(--danger-hover)}button.link-button,.btn.link-button{background:none;border:none;color:var(--text-muted);text-decoration:none;padding:0;font-weight:500}button.link-button:hover,.btn.link-button:hover{color:var(--text-main);text-decoration:underline}button.link-button:active,.btn.link-button:active{transform:none}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;line-height:1;text-transform:capitalize;background:#f1f5f9;color:var(--text-muted)}.badge.status-activo,.badge.status-ocupada,.badge.status-pagado,.badge.status-confirmado,.badge.status-emitido,.badge.status-nuevo{background-color:var(--success-light);color:var(--success-text)}.badge.status-disponible,.badge.status-borrador,.badge.status-programado,.badge.status-pendiente,.badge.status-bueno{background-color:var(--info-light);color:var(--info-text)}.badge.status-parcial,.badge.status-por_vencer,.badge.status-mantenimiento,.badge.status-uso_normal{background-color:var(--warning-light);color:var(--warning-text)}.badge.status-vencido,.badge.status-anulado,.badge.status-cancelado,.badge.status-rechazado,.badge.status-danado,.badge.status-no_funciona,.badge.status-faltante{background-color:var(--danger-light);color:var(--danger-text)}.error,.field-error{display:flex;align-items:center;gap:var(--space-xs);color:var(--danger-hover);font-size:var(--font-sm);font-weight:500;margin-bottom:var(--space-sm);background-color:var(--danger-light);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);border-left:3px solid var(--danger)}.field-error{margin:-.5rem 0 var(--space-sm);padding:.25rem var(--space-sm);font-size:.8rem;background:none;border:none;color:var(--danger)}.success{display:flex;align-items:center;gap:var(--space-xs);color:var(--success-text);font-size:var(--font-sm);font-weight:500;margin-bottom:var(--space-sm);background-color:var(--success-light);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);border-left:3px solid var(--success)}.muted{color:var(--text-muted);font-size:var(--font-sm)}.property-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);border-bottom:1px solid var(--border-color);padding-bottom:var(--space-sm)}.property-header strong{margin-bottom:0;font-size:var(--font-lg)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-md);margin:var(--space-md) 0}.kpis div{display:flex;flex-direction:column;background:var(--bg-app);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--border-color)}.kpis div .muted{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.kpis div strong{font-size:var(--font-xl);color:var(--text-main);margin-bottom:0}.badges{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-sm)}.comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-top:var(--space-md);background:var(--bg-app);padding:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--border-color)}.comparison div{display:flex;flex-direction:column;gap:var(--space-xs)}.comparison div strong{font-size:var(--font-sm);color:var(--text-main);margin-bottom:var(--space-xs);border-bottom:1px solid var(--border-color);padding-bottom:var(--space-xs)}.comparison div p{font-size:var(--font-sm);display:flex;align-items:center;gap:var(--space-xs)}.item-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-sm);background-color:var(--bg-app);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-sm);border:1px solid var(--border-color);align-items:center}.item-row input,.item-row select{padding:.4rem .6rem!important}.submit-row{display:flex;justify-content:flex-end;margin-top:var(--space-lg)}.icon{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:1.25rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}@keyframes skeleton-loading{0%{background-color:#f1f5f9}50%{background-color:#e2e8f0}to{background-color:#f1f5f9}}.skeleton{animation:skeleton-loading 1.5s infinite ease-in-out;border-radius:var(--radius-sm);height:1.25rem;width:100%}
