:root{--background:#f8fafc;--foreground:#0f172a;--primary:#3b82f6;--primary-hover:#2563eb;--surface:#fff;--border:#e2e8f0;--text-muted:#64748b;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--radius:.5rem;--success-text:#16a34a;--row-stripe:#f8fafc;--row-highlight-pending:#fee2e2;--row-highlight-unpaid:#ffe4e6;--row-highlight-selected:#f1f5f9;--row-highlight-conflict:#fffbeb;--row-highlight-not-found:#fee2e2;--bg-arrears:#fee2e2;--bg-green-card:#dcfce7;--bg-yellow-card:#fef3c7;--bg-red-card:#fee2e2;--bg-blue-card:#dbeafe;--bg-purple-card:#f3e8ff}@media (prefers-color-scheme:dark){:root{--background:#000;--foreground:#f8fafc;--primary:#3b82f6;--primary-hover:#60a5fa;--surface:#121212;--border:#2d2d2d;--text-muted:#a0a0a0;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #00000080;--success-text:#22c55e;--row-stripe:var(--surface);--row-highlight-pending:#450a0a;--row-highlight-unpaid:#2d0a15;--row-highlight-selected:#1e293b;--row-highlight-conflict:#3f2f12;--row-highlight-not-found:#450a0a;--bg-arrears:#2d0d0d;--bg-green-card:#064e3b;--bg-yellow-card:#451a03;--bg-red-card:#450a0a;--bg-blue-card:#1e3a8a;--bg-purple-card:#3b0764}}*{box-sizing:border-box;margin:0;padding:0}input,select,textarea{background-color:var(--surface);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);outline:none;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--primary)}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:1.15rem;line-height:1.6;overflow-y:scroll}.dashboard-layout{min-height:100vh;display:flex}.sidebar{background-color:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:1.5rem;width:280px;min-width:280px;height:100vh;padding:2.5rem 2rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-title{color:var(--primary);white-space:nowrap;margin-bottom:1.5rem;font-size:1.45rem;font-weight:700}.nav-link{border-radius:var(--radius);color:var(--text-muted);white-space:nowrap;padding:.875rem 1.25rem;font-weight:600;text-decoration:none;transition:all .2s;display:block}.nav-link:hover,.nav-link.active{background-color:var(--primary);color:#fff!important}.main-content{flex-direction:column;flex:1;gap:2.5rem;padding:3rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-title{letter-spacing:-.025em;white-space:nowrap;word-break:keep-all;font-size:2rem;font-weight:800}.card{background-color:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:2rem;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-title{color:var(--text-muted);margin-bottom:.75rem;font-size:1.125rem;font-weight:600}.card-value{font-size:2.25rem;font-weight:800}.grid-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;display:grid}.btn{background-color:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background-color .2s,transform .1s}.btn:hover{background-color:var(--primary-hover)}.btn:active{transform:scale(.98)}@media (max-width:1024px){body{font-size:1rem}.dashboard-layout{flex-direction:column}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);z-index:40;opacity:0;pointer-events:none;background:#0006;width:100vw;height:100vh;transition:opacity .3s ease-in-out;position:fixed;top:0;left:0}.sidebar-overlay.open{opacity:1;pointer-events:auto}.sidebar{z-index:50;width:280px;height:100vh;box-shadow:var(--shadow-md);transition:left .3s ease-in-out;position:fixed;top:0;left:-100%}.sidebar.open{left:0}.main-content{padding:4.5rem 1rem 1rem!important}.page-title{white-space:normal;font-size:1.5rem}.card{padding:1.25rem}.table-container,table,[style*=overflow-x],[style*=overflowX],.overflow-x-auto{-webkit-overflow-scrolling:touch;white-space:nowrap;width:100%;display:block;overflow-x:auto}}.mobile-top-nav{width:100%;height:calc(3.5rem + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:30;background:#121212d9;align-items:center;padding-left:1rem;padding-right:1rem;display:none;position:fixed;top:0;left:0;box-shadow:0 1px 3px #0006}.mobile-top-nav-title{color:var(--primary);letter-spacing:-.02em;margin-left:1rem;font-size:1.15rem;font-weight:800}@media (max-width:1024px){.mobile-top-nav{display:flex}}.auth-layout{background-color:var(--background);flex-direction:row;min-height:100vh;display:flex}.auth-left,.auth-right{flex:50%;display:flex}@media (max-width:1024px){.auth-layout{flex-direction:column;height:auto;min-height:100vh}.auth-left{flex:none;width:100%;padding:1rem!important}.auth-right{display:none!important}.auth-left>div{border-radius:1rem!important;padding:1.5rem!important}}.auth-title{color:var(--primary);letter-spacing:-1px;word-break:keep-all;margin-bottom:1rem;font-size:2.5rem;font-weight:800}.auth-subtitle{color:var(--text-muted);font-size:1.25rem}.auth-input{border:2px solid var(--border);background-color:var(--surface);width:100%;color:var(--foreground);border-radius:.75rem;padding:1.25rem;font-size:1.125rem;transition:border-color .2s}.auth-btn{background-color:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:.75rem;width:100%;margin-top:1rem;padding:1.25rem;font-size:1.25rem;font-weight:700;transition:transform .1s,box-shadow .1s;box-shadow:0 4px 6px #0ea5e940}@media (max-width:1024px){.auth-title{font-size:1.8rem}.auth-subtitle{font-size:1rem}.auth-input{padding:1rem;font-size:1rem}.auth-btn{padding:1rem;font-size:1.1rem}}.desktop-only{display:block}.desktop-only-flex{display:flex}.mobile-only{display:none}@media (max-width:1024px){.desktop-only,.desktop-only-flex{display:none!important}.mobile-only{display:block!important}.mobile-only-flex{display:flex!important}input,select,button,.btn{min-height:44px}}@media (max-width:768px){.modal-content{width:100%;max-height:90vh;padding:1.5rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom)) 1.5rem;border-radius:1.5rem 1.5rem 0 0;margin:0;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideUp;position:fixed;bottom:0;left:0;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.fab-button{transition:transform .2s,box-shadow .2s;bottom:calc(2rem + env(safe-area-inset-bottom))!important;background-color:var(--primary)!important;color:#fff!important;z-index:20!important;cursor:pointer!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;width:3.5rem!important;height:3.5rem!important;display:flex!important;position:fixed!important;right:1.5rem!important;box-shadow:0 4px 12px #2563eb4d!important}.fab-button:active{transform:scale(.95)}.fab-button svg{width:1.5rem;height:1.5rem}.mobile-card{background:var(--surface);box-shadow:var(--shadow-sm);border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1.25rem;transition:transform .1s;display:flex}.mobile-card:active{transform:scale(.98)}.mobile-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:.25rem;padding-bottom:.75rem;display:flex}.mobile-card-title{color:var(--foreground);letter-spacing:-.01em;font-size:1.15rem;font-weight:800}.mobile-card-row{justify-content:space-between;align-items:center;font-size:.95rem;display:flex}.mobile-card-label{color:var(--text-muted);font-weight:500}.mobile-card-value{color:var(--foreground);text-align:right;font-weight:700}.mobile-card-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.search-form{flex-wrap:nowrap;align-items:center;gap:.5rem;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}@media (max-width:1024px){.header-actions{flex-direction:column!important;align-items:stretch!important;width:100%!important}.header-actions>:not(.fab-button){width:100%!important}.search-form{grid-template-columns:1fr;gap:.5rem;width:100%;display:grid!important}.search-form>*{width:100%!important;min-width:0!important;max-width:100%!important}.search-form input,.search-form select,.search-form button{box-sizing:border-box;width:100%!important}.page-header{flex-direction:column!important;align-items:flex-start!important;gap:1rem!important}}.modal-container{background:var(--surface);border-radius:12px;flex-direction:column;width:1300px;max-width:95vw;max-height:90vh;padding:2rem;display:flex;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.modal-grid{flex:1;gap:1.5rem;min-height:0;display:flex}@media (max-width:1024px){.modal-container{border-radius:0;width:100vw;max-width:100vw;height:100vh;max-height:100dvh;padding:1rem;overflow-y:auto}.modal-grid{flex-direction:column;gap:1rem}}.modal-overlay{z-index:9999;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border-radius:var(--radius);max-width:90vw;max-height:90vh;padding:1.5rem;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.responsive-grid-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.responsive-grid-3{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}@media (max-width:640px){.responsive-grid-2,.responsive-grid-3{grid-template-columns:1fr}}@media (max-width:1024px){.modal-grid{min-height:auto;overflow-y:auto}.modal-grid>*{min-height:500px;flex:none!important;height:auto!important}}.tenant-search-form,.rent-search-form,.villa-search-form,.contract-search-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (max-width:1024px){.tenant-search-form,.rent-search-form,.villa-search-form,.contract-search-form{flex-direction:column!important;align-items:stretch!important;gap:.5rem!important;width:100%!important}.tenant-search-form select,.tenant-search-form input,.tenant-search-form button,.rent-search-form select,.rent-search-form input,.rent-search-form button,.rent-search-form .date-range-container,.villa-search-form select,.villa-search-form input,.villa-search-form button,.contract-search-form select,.contract-search-form input,.contract-search-form button,.contract-search-form .date-range-container{box-sizing:border-box!important;width:100%!important}.rent-search-form .date-range-container,.contract-search-form .date-range-container{justify-content:space-between!important}}@media (prefers-color-scheme:dark){table{color:#e2e8f0}table th{color:#fff!important}table td{color:#e2e8f0}}.auth-logo-invert{filter:none}@media (prefers-color-scheme:dark){.auth-logo-invert{filter:invert()brightness(2)}}@media (max-width:768px){.edit-tenant-grid{grid-template-columns:1fr!important;gap:1rem!important}.edit-tenant-grid>div{grid-area:auto/1/auto/-1!important}.edit-amount-grid{grid-template-columns:repeat(2,1fr)!important;gap:.75rem!important}.edit-payment-grid{grid-template-columns:1fr!important;align-items:stretch!important;gap:1rem!important}.edit-payment-grid>div{padding-left:0!important}.modal-content{width:98%!important;margin:1rem auto!important;padding:1rem!important}.modal-header h2{font-size:1.25rem!important}}
