:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font-family:inherit;cursor:pointer}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#1a1a2e;color:#eee;min-height:100vh;min-height:100dvh;overflow-x:hidden}.login-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:#16213e;border-radius:16px;padding:2rem;width:100%;max-width:400px;box-shadow:0 8px 32px #0006;margin:0 auto}.login-card h1{font-size:1.8rem;margin-bottom:.25rem}.subtitle{color:#888;margin-bottom:1.5rem;font-size:.95rem}.otp-form{display:flex;flex-direction:column;gap:.75rem}.otp-form input{padding:.85rem 1rem;border-radius:10px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:1rem;outline:none;transition:border-color .2s}.otp-form input:focus{border-color:#e94560}.otp-form button[type=submit]{padding:.85rem;border-radius:10px;border:none;background:#e94560;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.otp-form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.otp-hint{font-size:.9rem;color:#aaa;text-align:center}.link-btn{background:none;border:none;color:#e94560;font-size:.9rem;cursor:pointer;text-align:center;padding:.25rem}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:#555;font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#2a2a5a}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.85rem;border-radius:10px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;margin-bottom:.75rem;transition:background .2s;width:100%}.oauth-btn:hover{background:#1a4a80}.oauth-btn:disabled{opacity:.5;cursor:not-allowed}.error{color:#e94560;font-size:.875rem;text-align:center;margin-top:.5rem}.dashboard{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem}.dashboard-card{background:#16213e;border-radius:16px;padding:2rem;width:100%;max-width:400px;text-align:center;box-shadow:0 8px 32px #0006;margin:0 auto}.avatar{width:72px;height:72px;border-radius:50%;background:#e94560;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin:0 auto 1rem;overflow:hidden}.dashboard-card h2{font-size:1.5rem;margin-bottom:.5rem}.user-email{color:#aaa;font-size:.95rem;margin-bottom:.25rem}.user-name{font-weight:600;margin-bottom:.25rem}.user-id{color:#555;font-size:.75rem;margin-bottom:1.5rem;word-break:break-all}.logout-btn{padding:.75rem 2rem;border-radius:10px;border:1px solid #e94560;background:transparent;color:#e94560;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#e94560;color:#fff}.user-role{display:inline-block;background:#e94560;color:#fff;font-size:.75rem;font-weight:600;padding:.2rem .75rem;border-radius:20px;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:.05em}.menu-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.menu-row{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:12px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;text-align:left}.menu-row:hover{background:#1a4a80}.menu-icon{font-size:1.3rem;flex-shrink:0}.menu-label{flex:1}.menu-arrow{font-size:1.2rem;color:#555;line-height:1}.list-page{min-height:100vh;min-height:100dvh;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem 1rem}.list-container{width:100%;max-width:480px}.list-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.list-header h2{flex:1;font-size:1.2rem;margin:0}.new-btn{background:#e94560;color:#fff;border:none;border-radius:8px;padding:.45rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.record-card{background:#16213e;border-radius:12px;padding:1rem;margin-bottom:.65rem;box-shadow:0 2px 8px #0000004d}.card-title{font-weight:600;font-size:1rem;margin-bottom:.2rem}.card-meta{color:#aaa;font-size:.85rem;margin-bottom:.5rem}.card-row{display:flex;justify-content:space-between;align-items:center;margin-top:.4rem}.card-amount{font-size:.9rem;font-weight:600;color:#eee}.card-phone{font-size:.85rem;color:#aaa}.card-dates{font-size:.78rem;color:#666;margin-top:.35rem}.card-balance{font-size:.78rem;color:#90caf9;font-weight:600;margin-top:.35rem}.payment-history{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.6rem .75rem;background:#ffffff08;border-radius:8px;list-style:none}.payment-history-item{display:flex;justify-content:space-between;gap:.75rem;font-size:.78rem;color:#aaa;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.06)}.payment-history-item:last-child{border-bottom:none;padding-bottom:0}.badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .55rem;border-radius:20px}.badge-active,.badge-accepted,.badge-occupied{background:#4caf5026;color:#4caf50}.badge-inactive,.badge-expired,.badge-terminated{background:#e9456026;color:#e94560}.badge-vacant{background:#64b5f626;color:#64b5f6}.badge-maintenance{background:#ff980026;color:#ff9800}.badge-pending{background:#ffeb3b26;color:#ffeb3b}.list-loader{padding:1.5rem 0;text-align:center}.list-status{color:#555;font-size:.85rem}.list-spinner{display:inline-block;width:20px;height:20px;border:2px solid #333;border-top-color:#888;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.list-empty{color:#555;font-size:.9rem;text-align:center;padding:2.5rem 0}.form-page{min-height:100vh;min-height:100dvh;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem 1rem}.form-card{background:#16213e;border-radius:16px;padding:1.5rem;width:100%;max-width:480px;box-shadow:0 8px 32px #0006;margin:0 auto}.form-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.form-header h2{font-size:1.3rem;margin:0}.back-btn{background:none;border:none;color:#e94560;font-size:.9rem;cursor:pointer;padding:0;white-space:nowrap}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.field label{font-size:.85rem;color:#aaa}.field input,.field select,.field textarea{padding:.75rem 1rem;border-radius:10px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.95rem;outline:none;width:100%;transition:border-color .2s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#e94560}.field input[type=file]{padding:.5rem;font-size:.85rem}.field textarea{resize:vertical;font-family:inherit}.field select option{background:#16213e}.searchable-select{position:relative;width:100%}.searchable-select-input{padding:.75rem 2.2rem .75rem 1rem;border-radius:10px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.95rem;outline:none;width:100%;transition:border-color .2s}.searchable-select-input:focus{border-color:#e94560}.searchable-select-input::placeholder{color:#aaa}.searchable-select-input:disabled{opacity:.6;cursor:not-allowed}.searchable-select-clear{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#aaa;font-size:1.1rem;line-height:1;padding:.2rem;cursor:pointer}.searchable-select-clear:hover{color:#fff}.searchable-select-options{position:absolute;z-index:20;top:calc(100% + .25rem);left:0;right:0;max-height:260px;overflow-y:auto;margin:0;padding:.25rem;list-style:none;background:#16213e;border:1px solid #2a2a5a;border-radius:10px;box-shadow:0 8px 24px #0006}.searchable-select-options li{padding:.6rem .75rem;border-radius:8px;font-size:.9rem;color:#fff;cursor:pointer}.searchable-select-options li.active{background:#e945602e}.searchable-select-options li.selected{color:#e94560;font-weight:600}.searchable-select-empty{color:#aaa!important;cursor:default!important;background:none!important}.report-filters .searchable-select{flex:1 1 200px;min-width:160px;width:auto}.report-filters .searchable-select-input{padding:.5rem 2rem .5rem .75rem;border-radius:8px;font-size:.9rem}.assignment-add .searchable-select{flex:1}.submit-btn{width:100%;padding:.9rem;border-radius:10px;border:none;background:#e94560;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem;transition:opacity .2s}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.success{color:#4caf50;font-size:.875rem;text-align:center;margin-top:.5rem}@media (max-width: 400px){.field-row{grid-template-columns:1fr}.menu-grid{grid-template-columns:1fr 1fr}}.pending-section{margin-bottom:1.25rem;background:#e9456012;border:1px solid rgba(233,69,96,.2);border-radius:12px;padding:.75rem}.pending-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#e94560;margin-bottom:.5rem;text-align:left}.pending-row{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:none;color:#eee;font-size:.9rem;padding:.4rem 0;cursor:pointer;text-align:left}.pending-dot{width:7px;height:7px;border-radius:50%;background:#e94560;flex-shrink:0}.pending-label{flex:1}.badge-open{background:#64b5f626;color:#64b5f6}.badge-assigned{background:#ff980026;color:#ff9800}.badge-inprogress{background:#ab47bc26;color:#ab47bc}.badge-resolved{background:#4caf5026;color:#4caf50}.badge-closed{background:#96969626;color:#999}.badge-sent{background:#64b5f626;color:#64b5f6}.badge-category{background:#ffeb3b1a;color:#ffeb3b}.field-hint{font-size:.8rem;color:#aaa;margin-top:.25rem}.readonly-field{opacity:.6;cursor:default}.report-page{min-height:100vh;min-height:100dvh;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem 1rem}.report-container{width:100%;max-width:720px}.report-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}.report-filters select,.report-filters input[type=date],.report-filters input[type=text]{padding:.5rem .75rem;border-radius:8px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.9rem;outline:none}.report-filters input[type=date]{color-scheme:dark}.report-filters input[type=text]{flex:1 1 200px;min-width:160px}.report-asof{font-size:.85rem;color:#aaa;margin-left:auto}.report-card{background:#16213e;border-radius:12px;padding:1rem;overflow-x:auto;box-shadow:0 2px 8px #0000004d}.report-table{width:100%;border-collapse:collapse;font-size:.85rem}.report-table th{color:#888;font-weight:600;padding:.4rem .5rem;text-align:right;white-space:nowrap}.report-table th.col-label,.report-table th.col-group{text-align:left}.report-table th.col-group{border-bottom:1px solid #2a2a5a;padding-bottom:.25rem}.col-num{text-align:right;padding:.35rem .5rem;white-space:nowrap}.col-label{padding:.35rem .5rem}.section-header td{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#e94560;padding:.75rem .5rem .25rem}.data-row td{border-bottom:1px solid rgba(255,255,255,.04)}.data-row:hover td{background:#ffffff08}.total-row td{font-weight:600;border-top:1px solid #2a2a5a;padding:.4rem .5rem}.net-row td{font-weight:700;color:#e94560;border-top:2px solid #e94560;padding:.5rem}.drill{cursor:pointer}.drill-link{color:#64b5f6;text-decoration:underline;white-space:nowrap}.drill-label{color:#64b5f6;cursor:pointer}.drill-label:hover{text-decoration:underline}.bs-table{max-width:400px}.bs-imbalance{color:#ff9800;font-size:.8rem;padding:.5rem;text-align:center}.dim{color:#444}.property-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.chip{padding:.3rem .85rem;border-radius:20px;border:1px solid #2a2a5a;background:transparent;color:#888;font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap}.chip:hover{border-color:#e94560;color:#eee}.chip-active{background:#e94560;border-color:#e94560;color:#fff}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1rem}.stat-box{background:#16213e;border-radius:10px;padding:.75rem .5rem;text-align:center;display:flex;flex-direction:column;gap:.15rem;box-shadow:0 2px 6px #0003}.stat-value{font-size:1.15rem;font-weight:700;color:#fff;white-space:nowrap}.stat-label{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 360px){.stats-row{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1rem}}.notice-empty{background:#16213e;border-radius:12px;padding:2rem 1.5rem;text-align:center;color:#888;font-size:.9rem}.notice-section{background:#16213e;border-radius:12px;padding:.75rem 1rem;margin-bottom:.75rem;box-shadow:0 2px 6px #0003}.notice-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#e94560;margin-bottom:.5rem}.notice-item{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:none;color:#eee;font-size:.9rem;padding:.45rem 0;cursor:pointer;text-align:left;border-bottom:1px solid rgba(255,255,255,.04)}.notice-item:last-child{border-bottom:none}.notice-dot{width:7px;height:7px;border-radius:50%;background:#e94560;flex-shrink:0}.notice-item-content{flex:1;display:flex;flex-direction:column;gap:.1rem}.notice-item-label{font-size:.9rem}.notice-item-sub{font-size:.78rem;color:#888}.help-section{background:#16213e;border-radius:12px;padding:.9rem 1rem;margin-bottom:.75rem;box-shadow:0 2px 6px #0003}.help-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#e94560;margin-bottom:.6rem}.help-list{list-style:none;display:flex;flex-direction:column;gap:.45rem}.help-item{font-size:.88rem;color:#ccc;line-height:1.45;padding-left:.9rem;position:relative}.help-item:before{content:"·";position:absolute;left:0;color:#e94560;font-weight:700}.help-link-btn{width:100%;padding:.6rem;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:none;color:#666;font-size:.85rem;cursor:pointer;margin-top:.5rem;transition:color .2s}.help-link-btn:hover{color:#aaa}.record-card-clickable{cursor:pointer;transition:background .15s}.record-card-clickable:hover{background:#1c2d56}.delete-btn{margin-left:auto;background:transparent;border:1px solid #e94560;color:#e94560;border-radius:8px;padding:.3rem .75rem;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.delete-btn:hover{background:#e94560;color:#fff}.delete-confirm{background:#e945601a;border:1px solid rgba(233,69,96,.3);border-radius:10px;padding:.85rem 1rem;margin-bottom:1rem}.delete-confirm p{font-size:.9rem;color:#eee;margin-bottom:.65rem}.delete-confirm-btns{display:flex;gap:.6rem}.delete-confirm-yes{padding:.45rem 1rem;border-radius:8px;border:none;background:#e94560;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s}.delete-confirm-yes:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-no{padding:.45rem 1rem;border-radius:8px;border:1px solid #2a2a5a;background:transparent;color:#aaa;font-size:.85rem;cursor:pointer}.pay-confirm{background:#64b5f61a;border:1px solid rgba(100,181,246,.3);border-radius:10px;padding:.85rem 1rem;margin-top:.5rem}.pay-confirm p{font-size:.9rem;color:#eee;margin-bottom:.65rem}.pay-confirm-amount{display:block;width:100%;padding:.6rem .85rem;border-radius:8px;border:1px solid #2a2a5a;background:#0f3460;color:#fff;font-size:.9rem;outline:none;margin-bottom:.65rem;transition:border-color .2s}.pay-confirm-amount:focus{border-color:#e94560}.pay-confirm-btns{display:flex;gap:.6rem}.pay-confirm-bank,.pay-confirm-cash{padding:.45rem 1rem;border-radius:8px;border:1px solid #64b5f6;background:transparent;color:#64b5f6;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.pay-confirm-bank:hover,.pay-confirm-cash:hover{background:#64b5f61a}.pay-confirm-bank:disabled,.pay-confirm-cash:disabled{opacity:.5;cursor:not-allowed}.pay-confirm-no{padding:.45rem 1rem;border-radius:8px;border:1px solid #2a2a5a;background:transparent;color:#aaa;font-size:.85rem;cursor:pointer}.pay-confirm-yes{padding:.45rem 1rem;border-radius:8px;border:1px solid #ff8a65;background:transparent;color:#ff8a65;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.pay-confirm-yes:hover{background:#ff8a651a}.pay-confirm-yes:disabled{opacity:.5;cursor:not-allowed}.checkbox-list{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0}.checkbox-item{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:#eee;cursor:pointer}.checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:#e94560;cursor:pointer}.resend-btn{width:100%;padding:.75rem;border-radius:10px;border:1px solid #64b5f6;background:transparent;color:#64b5f6;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:.25rem;transition:all .2s}.resend-btn:hover{background:#64b5f61a}.resend-btn:disabled{opacity:.5;cursor:not-allowed}.portal-section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.08)}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin:0 0 .75rem}.portal-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.portal-btn{padding:.4rem .9rem;border-radius:8px;border:1px solid #64b5f6;background:transparent;color:#64b5f6;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.portal-btn:hover{background:#64b5f61a}.portal-btn.danger{border-color:#e57373;color:#e57373}.portal-btn.danger:hover{background:#e573731a}.badge-portal{background:#64b5f626;color:#64b5f6}.badge-no-portal{background:#ffffff0f;color:var(--text-secondary);font-size:.72rem}.badge-pending{background:#ffb74d26;color:#ffb74d}.assignment-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.assignment-row{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;background:#ffffff0a;border-radius:8px;font-size:.9rem}.remove-btn{padding:.2rem .6rem;border-radius:6px;border:1px solid #e57373;background:transparent;color:#e57373;font-size:.8rem;cursor:pointer}.remove-btn:hover{background:#e573731a}.assignment-add{display:flex;gap:.5rem;align-items:center;margin-top:.25rem}.assignment-add select{flex:1}.assignment-add button{padding:.4rem .9rem;border-radius:8px;border:1px solid #81c784;background:transparent;color:#81c784;font-size:.85rem;cursor:pointer}.assignment-add button:disabled{opacity:.4;cursor:not-allowed}.file-link{display:inline-block;margin-top:.35rem;font-size:.82rem;color:#64b5f6;text-decoration:underline}.notif-count{background:#e57373;color:#fff;font-size:.75rem;font-weight:700;border-radius:10px;padding:.1rem .5rem;margin-left:auto;margin-right:.5rem}.notif-sub{background:#ffffff08;border-left:2px solid rgba(255,255,255,.08);margin:0 0 .25rem 1.5rem;border-radius:0 0 8px 8px}.notif-sub-row{display:flex;align-items:center;width:100%;padding:.55rem 1rem;background:transparent;border:none;color:var(--text-secondary);font-size:.88rem;cursor:pointer;text-align:left;gap:.5rem;transition:color .15s}.notif-sub-row:hover{color:var(--text-primary)}.notif-sub-row .pending-dot{width:6px;height:6px;border-radius:50%;background:#ffb74d;flex-shrink:0}.notif-sub-row .menu-arrow{margin-left:auto;opacity:.5;font-size:.8rem}
