.login-bg{align-items:center;background-color:var(--ink);background-position:bottom;background-repeat:no-repeat;background-size:cover;display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative}.login-deco{background:radial-gradient(ellipse 60% 50% at 80% 20%,#c9943a2e 0,#0000 60%),radial-gradient(ellipse 40% 60% at 10% 80%,#1a7a6e26 0,#0000 60%);inset:0;pointer-events:none;position:absolute}.pin-card{animation:scaleIn .3s ease;background:var(--white);border-radius:22px;box-shadow:0 24px 80px #00000059;max-width:92vw;padding:44px 40px 36px;position:relative;text-align:center;width:360px;z-index:1}.pin-card.shake{animation:shake .4s ease}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.login-mark{align-items:center;background:var(--ink);border-radius:14px;color:var(--gold);display:flex;font-size:1.5rem;height:48px;justify-content:center;margin:0 auto 18px;width:48px}.login-mark,.pin-title{font-family:var(--font-serif)}.pin-title{color:var(--ink);font-size:1.6rem}.pin-sub{color:var(--ink-3);font-size:.875rem;margin-bottom:28px;margin-top:4px}.auth-field{margin-bottom:16px;text-align:left}.auth-field label{color:var(--ink-3);display:block;font-size:.78rem;font-weight:500;margin-bottom:6px}.auth-field input{background:var(--paper);border:1.5px solid var(--paper-3);border-radius:12px;box-sizing:border-box;color:var(--ink);font-family:var(--font-sans);font-size:.95rem;padding:12px 14px;transition:border-color .15s;width:100%}.auth-field input:focus{background:var(--white);border-color:var(--gold);outline:none}.auth-error{background:#fee2e2;border-radius:9px;color:#991b1b;font-size:.82rem;margin-bottom:14px;padding:9px 12px;text-align:left}.auth-submit{background:var(--ink);border:none;border-radius:12px;color:var(--white);cursor:pointer;font-family:var(--font-sans);font-size:.95rem;font-weight:600;margin-top:4px;padding:13px;transition:background .15s,transform .1s;width:100%}.auth-submit:hover:not(:disabled){background:#1a2733}.auth-submit:active:not(:disabled){transform:scale(.98)}.auth-submit:disabled{cursor:default;opacity:.6}.pin-dots{display:flex;gap:16px;justify-content:center;margin-bottom:32px}.pin-dot{background:var(--paper-3);border-radius:50%;height:14px;transition:all .15s;width:14px}.pin-dot.filled{background:var(--ink);transform:scale(1.1)}.pin-dot.err{background:var(--red)}.pin-pad{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:240px}.pin-key{background:var(--paper);border:none;border-radius:16px;color:var(--ink);cursor:pointer;font-family:var(--font-sans);font-size:1.4rem;font-weight:500;height:62px;transition:all .12s}.pin-key:hover{background:var(--paper-2)}.pin-key:active{background:var(--gold-lt);transform:scale(.94)}.pin-back{color:var(--ink-3);font-size:1.2rem}.profile-card{animation:scaleIn .3s ease;background:var(--white);border-radius:22px;box-shadow:0 24px 80px #00000059;max-width:92vw;padding:44px 40px 36px;position:relative;text-align:center;width:380px;z-index:1}.profile-list{display:flex;flex-direction:column;gap:10px;margin-top:24px;text-align:left}.profile-item{align-items:center;background:var(--paper);border:1.5px solid var(--paper-3);border-radius:14px;cursor:pointer;display:flex;gap:14px;padding:14px 16px;transition:all .15s}.profile-item:hover{background:var(--gold-lt);border-color:var(--gold)}.profile-avatar,.profile-avatar-lg{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-family:var(--font-serif);font-size:1.3rem;font-weight:600;height:44px;justify-content:center;width:44px}.profile-avatar-lg{border-radius:16px;font-size:1.6rem;height:56px;margin:0 auto 14px;width:56px}.role-owner{background:var(--ink);color:var(--gold)}.role-manager{background:var(--teal);color:var(--white)}.profile-info{flex:1 1}.profile-name{color:var(--ink);font-size:.95rem;font-weight:600}.profile-role{color:var(--ink-3);font-size:.8rem;margin-top:2px}.profile-arrow{color:var(--ink-3);font-size:1.4rem}.pin-back-btn{background:none;border:none;border-radius:8px;color:var(--ink-3);cursor:pointer;font-family:var(--font-sans);font-size:.85rem;left:20px;padding:4px 8px;position:absolute;top:18px}.pin-back-btn:hover{background:var(--paper);color:var(--ink)}.kpi-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.kpi-card{background:var(--white);border:1px solid var(--paper-3);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px}.kpi-primary{background:var(--ink);border-color:var(--ink)}.kpi-primary .kpi-label{color:#ffffff8c}.kpi-primary .kpi-value{color:var(--white)}.kpi-primary .kpi-sub{color:#fff6}.kpi-green{border-left:4px solid var(--teal)}.kpi-red{border-left:4px solid var(--red)}.kpi-label{color:var(--ink-3);font-size:.75rem;font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.kpi-value{font-feature-settings:"tnum";color:var(--ink);font-size:1.45rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.kpi-sub{color:var(--ink-3);font-size:.78rem;margin-top:4px}.dash-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 340px}.dash-chart{min-width:0}.dash-props{display:flex;flex-direction:column;gap:12px;min-width:0}.prop-card{padding:16px 18px}.prop-card-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.prop-name{color:var(--ink);font-size:.95rem;font-weight:700}.prop-tenant{color:var(--ink-3);font-size:.8rem;margin-top:2px}.prop-rent{color:var(--teal);font-size:1.05rem;font-weight:700;white-space:nowrap}.prop-rent span{color:var(--ink-3);font-size:.75rem;font-weight:400}.prop-card-foot{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.lease-badge{background:var(--paper);border:1px solid var(--paper-3);border-radius:20px;color:var(--ink-3);font-size:.72rem;padding:3px 9px}.lease-badge.expiring{background:var(--amber-lt);border-color:var(--amber);color:var(--amber)}.prop-type-badge{background:var(--teal-lt);border-radius:20px;color:var(--teal);font-size:.7rem;font-weight:600;padding:3px 9px}.billing-actions{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.billing-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.billing-card{padding:22px}.billing-card-header{align-items:flex-start;border-bottom:1px solid var(--paper-2);display:flex;justify-content:space-between;margin-bottom:18px;padding-bottom:14px}.billing-prop-name{color:var(--ink);font-family:var(--font-serif);font-size:1.15rem}.billing-tenant{color:var(--ink-2);font-size:.82rem;font-weight:500;margin-top:2px}.billing-addr{color:var(--ink-3);font-size:.75rem;line-height:1.4;margin-top:3px}.billing-invoice-no{color:var(--ink-3);font-size:.78rem;white-space:nowrap}.billing-fields{display:flex;flex-direction:column;gap:8px}.billing-row{align-items:center;display:flex;justify-content:space-between;padding:7px 0}.billing-row.fixed{border-bottom:1px dashed var(--paper-3);color:var(--ink-2);font-size:.9rem}.billing-row.input-row{gap:12px}.billing-row.input-row label{color:var(--ink-2);flex:1 1;font-size:.82rem;white-space:nowrap}.billing-input{border:1.5px solid var(--paper-3);border-radius:8px;color:var(--teal);font-family:var(--font-sans);font-size:.88rem;font-weight:600;outline:none;padding:6px 10px;text-align:right;transition:border-color .15s;width:110px}.billing-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-lt)}.billing-total-row{align-items:center;background:var(--ink);border-radius:var(--radius);color:var(--white);display:flex;font-size:.85rem;font-weight:600;justify-content:space-between;letter-spacing:.03em;margin:8px -6px -2px;padding:12px 14px}.billing-total-amt{font-feature-settings:"tnum";font-size:1.1rem;font-variant-numeric:tabular-nums;font-weight:700}.billing-card-actions{border-top:1px solid var(--paper-2);display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px}.billing-sent-toggle{align-items:center;border-radius:10px;display:flex;gap:10px;justify-content:space-between;margin-top:12px;padding:10px 12px}.billing-sent-toggle.is-sent{background:#d1fae5}.billing-sent-toggle.not-sent{background:var(--paper-2)}.billing-sent-label{font-size:.82rem;font-weight:600}.billing-sent-toggle.is-sent .billing-sent-label{color:#065f46}.billing-sent-toggle.not-sent .billing-sent-label{color:var(--ink-3)}.invoice-modal{width:600px}.invoice-preview{font-size:.88rem}.inv-header{align-items:flex-start;background:var(--ink);border-radius:10px;color:var(--white);display:flex;justify-content:space-between;margin-bottom:16px;padding:20px 22px}.inv-title{color:var(--white);font-family:var(--font-serif);font-size:1.4rem}.inv-owner{color:#fff9;font-size:.78rem;margin-top:3px}.inv-no{color:var(--gold);font-size:.9rem}.inv-period{color:#fff9;font-size:.8rem;margin-top:3px}.inv-to{border-bottom:1px solid var(--paper-2);margin-bottom:14px;padding:12px 0}.inv-to-label{color:var(--ink-3);font-size:.7rem;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.inv-to-name{color:var(--ink);font-weight:700}.inv-to-addr{color:var(--ink-3);font-size:.82rem;margin-top:2px}.inv-table{border-collapse:collapse;font-size:.85rem;margin-bottom:0;width:100%}.inv-table th{background:var(--paper);border-bottom:1px solid var(--paper-3);color:var(--ink-3);font-size:.72rem;letter-spacing:.04em;padding:8px 10px;text-transform:uppercase}.inv-table td{border-bottom:1px solid var(--paper-2);padding:8px 10px}.inv-total-row{background:var(--ink);border-radius:0 0 8px 8px;color:var(--white);display:flex;font-size:.9rem;font-weight:700;justify-content:space-between;padding:12px 10px}.inv-bank{padding:14px 0 0}.inv-bank-row{display:flex;font-size:.82rem;gap:14px;padding:4px 0}.inv-bank-row span:first-child{color:var(--ink-3);flex-shrink:0;width:120px}.inv-bank-row span:last-child{color:var(--ink);font-weight:500}.send-choice-modal{max-width:440px;padding:32px 30px;text-align:center}.send-choice-title{color:var(--ink);font-family:var(--font-serif);font-size:1.3rem;margin-bottom:10px}.send-choice-sub{color:var(--ink-3);font-size:.88rem;line-height:1.55;margin-bottom:24px}.send-choice-actions{display:flex;flex-direction:column;gap:10px}.send-choice-actions .btn{width:100%}.send-choice-cancel{margin-top:16px}.pay-summary{align-items:center;background:var(--white);border:1px solid var(--paper-3);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:0;margin-bottom:22px;padding:18px 28px}.pay-sum-item{flex:1 1}.pay-sum-label{color:var(--ink-3);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pay-sum-val{font-feature-settings:"tnum";color:var(--ink);font-size:1.3rem;font-variant-numeric:tabular-nums;font-weight:700;margin-top:3px}.pay-sum-val.green{color:var(--teal)}.pay-sum-val.red{color:var(--red)}.pay-sum-divider{background:var(--paper-3);height:40px;margin:0 24px;width:1px}.pay-toolbar{gap:14px;justify-content:space-between}.pay-filters,.pay-toolbar{align-items:center;display:flex}.pay-filters{flex-wrap:wrap;gap:6px}.filter-btn{background:var(--white);border:1.5px solid var(--paper-3);border-radius:20px;color:var(--ink-2);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 14px;transition:all .15s}.filter-btn:hover{border-color:var(--ink-2);color:var(--ink)}.filter-btn.active{background:var(--ink);border-color:var(--ink);color:var(--white)}.pay-filter-divider{background:var(--paper-3);height:24px;margin:0 4px;width:1px}.prop-filter{background:var(--white);border:1.5px solid var(--paper-3);border-radius:8px;color:var(--ink);cursor:pointer;font-size:.82rem;outline:none;padding:6px 12px}.prop-filter:focus{border-color:var(--gold)}.exp-prop-summary{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:22px}.exp-prop-card{border:2px solid var(--paper-3);cursor:pointer;padding:18px 20px;transition:all .15s}.exp-prop-card:hover{border-color:var(--ink-2);transform:translateY(-1px)}.exp-prop-card.active{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-lt)}.exp-prop-card.portfolio.active{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-lt)}.exp-prop-name{color:var(--ink-2);font-size:.88rem;font-weight:700;margin-bottom:6px}.exp-prop-amt{font-feature-settings:"tnum";color:var(--red);font-size:1.2rem;font-variant-numeric:tabular-nums;font-weight:700}.exp-prop-count{color:var(--ink-3);font-size:.75rem;margin-top:3px}.prop-dot{border-radius:50%;display:inline-block;height:8px;margin-right:7px;vertical-align:middle;width:8px}.prop-dot-bryanston{background:var(--teal)}.prop-dot-brooklyn{background:var(--gold)}.prop-dot-lonehill{background:var(--ink-2)}.cat-badge{background:var(--paper);border:1px solid var(--paper-3);border-radius:6px;color:var(--ink-2);display:inline-block;font-size:.78rem;font-weight:500;padding:3px 9px}.exp-row-actions{display:flex;gap:4px;justify-content:flex-end}.icon-btn{background:none;border:1px solid var(--paper-3);border-radius:6px;color:var(--ink-3);cursor:pointer;font-size:.85rem;padding:3px 7px;transition:all .15s}.icon-btn:hover{background:var(--paper-2);border-color:var(--ink-2);color:var(--ink-1)}.icon-btn-red:hover{background:#c0392b14;border-color:var(--red);color:var(--red)}.btn-danger{border:none}.btn-danger:hover{background:#a93226}.props-list{display:flex;flex-direction:column;gap:16px}.prop-section{border-radius:12px;overflow:hidden;transition:box-shadow .2s}.prop-section-open{box-shadow:0 4px 24px #00000014}.prop-section-header{align-items:flex-start;cursor:pointer;display:flex;justify-content:space-between;padding:20px 24px;transition:background .15s;-webkit-user-select:none;user-select:none}.prop-section-header:hover{background:var(--paper-2)}.prop-section-left{flex:1 1;min-width:0}.prop-section-name{color:var(--ink-1);font-size:1.1rem;font-weight:700;margin-bottom:2px}.prop-section-addr{color:var(--ink-3);font-size:.82rem;margin-bottom:10px}.prop-section-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{border-radius:20px;font-size:.75rem;font-weight:600;padding:2px 10px}.tag-current{background:#1a7a6e1f;color:var(--teal)}.tag-past{background:var(--paper-2);color:var(--ink-3)}.tag-type{background:#c9943a1f;color:var(--gold)}.prop-section-right{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px;margin-left:24px}.prop-section-rent{color:var(--ink-1);font-size:1.2rem;font-weight:700}.prop-section-rent span{font-weight:400;margin-left:2px}.prop-section-lease,.prop-section-rent span{color:var(--ink-3);font-size:.75rem}.prop-section-lease.expiring{color:var(--red);font-weight:600}.prop-section-chevron{color:var(--ink-3);font-size:.7rem;margin-top:4px}.prop-section-body{border-top:1px solid var(--paper-2);display:flex;flex-direction:column;gap:28px;padding:24px}.prop-detail-block{display:flex;flex-direction:column;gap:12px}.sub-text{color:var(--ink-3);font-size:.8rem}.sub-text.note{color:var(--gold);font-style:italic}.period-grid{display:flex;flex-wrap:wrap;gap:8px}.period-btn{background:var(--paper-1);border:1px solid var(--paper-2);border-radius:20px;color:var(--ink-2);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 14px;transition:all .15s}.period-btn:hover{background:#1a7a6e0f;border-color:var(--teal);color:var(--teal)}.period-btn-active{border-color:var(--teal)}.period-btn-active,.period-btn-active:hover{background:var(--teal);color:#fff}.period-detail{display:flex;flex-direction:column;gap:14px;margin-top:4px}.period-summary-bar{display:flex;flex-wrap:wrap;gap:16px}.period-summary-item{background:var(--paper-2);border-radius:10px;display:flex;flex-direction:column;gap:2px;min-width:120px;padding:10px 18px}.period-summary-item.green{background:#1a7a6e14}.period-summary-item.red{background:#c0392b14}.period-summary-label{color:var(--ink-3);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.period-summary-val{color:var(--ink-1);font-size:1.05rem;font-weight:700}.period-summary-item.green .period-summary-val{color:var(--green)}.period-summary-item.red .period-summary-val{color:var(--red)}.owner-wrap{background:var(--paper);max-width:900px;min-height:100vh;padding:0 0 60px}.owner-hero{background:linear-gradient(135deg,#0f2027,#203a43 50%,#2c5364);background-position:50%;background-size:cover;border-radius:0 0 24px 24px;height:220px;margin-bottom:36px;overflow:hidden;position:relative}.owner-hero-overlay{background:linear-gradient(180deg,#0a192359 0,#0a1923b8);inset:0;position:absolute}.owner-hero-content{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;height:100%;justify-content:space-between;padding:28px 40px;position:relative;z-index:1}.owner-greeting{color:#fff;font-family:var(--font-serif);font-size:2rem;line-height:1.15}.owner-month{color:#ffffffa6;font-size:.9rem;margin-top:4px}.owner-status-badge{border-radius:40px;font-size:.85rem;font-weight:600;padding:8px 18px;white-space:nowrap}.owner-status-badge.all-clear{background:#d1fae5;color:#065f46}.owner-status-badge.pending{background:#fef3c7;color:#92400e}.owner-section-label{color:var(--ink-3);font-size:.78rem;font-weight:600;letter-spacing:.08em;margin:28px 40px 14px;text-transform:uppercase}.owner-kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin:0 40px 8px}.owner-kpi{background:var(--white);border:1px solid var(--paper-3);border-radius:16px;padding:18px 20px}.owner-kpi.primary{background:var(--ink);border-color:var(--ink)}.owner-kpi.primary .owner-kpi-label{color:#fff9}.owner-kpi.primary .owner-kpi-value{color:var(--white)}.owner-kpi.primary .owner-kpi-sub{color:var(--gold)}.owner-kpi.green .owner-kpi-value{color:var(--teal)}.owner-kpi-label{color:var(--ink-3);font-size:.75rem;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.owner-kpi-value{color:var(--ink);font-family:var(--font-serif);font-size:1.45rem;line-height:1.1}.owner-kpi-sub{color:var(--ink-3);font-size:.76rem;margin-top:6px}.owner-chart-card{background:var(--white);border:1px solid var(--paper-3);border-radius:16px;margin:0 40px;padding:20px 22px}.owner-invoice-bar{background:var(--white);border:1px solid var(--paper-3);border-radius:14px;margin:0 40px 20px;padding:16px 20px}.owner-invoice-bar-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.owner-invoice-bar-label{color:var(--ink-2);font-size:.85rem;font-weight:500}.owner-invoice-bar-count{color:var(--ink-3);font-size:.85rem;font-weight:600}.owner-invoice-track{background:var(--paper-3);border-radius:6px;height:8px;overflow:hidden}.owner-invoice-fill{background:linear-gradient(90deg,var(--teal),#2a9d8e);border-radius:6px;height:100%;transition:width .4s ease}.owner-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin:0 40px 36px}.owner-stat{background:var(--white);border:1px solid var(--paper-3);border-radius:16px;padding:20px 22px}.owner-stat-label{color:var(--ink-3);font-size:.78rem;letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.owner-stat-value{color:var(--ink);font-family:var(--font-serif);font-size:1.5rem}.owner-stat-value.collected{color:var(--teal)}.owner-stat-value.outstanding{color:#b45309}.owner-properties{display:flex;flex-direction:column;gap:16px;margin:0 40px}.owner-prop-card{background:var(--white);border:1.5px solid var(--paper-3);border-radius:18px;padding:24px 26px;transition:box-shadow .2s}.owner-prop-card.paid{border-color:#6ee7b7}.owner-prop-card.partial{border-color:#fcd34d}.owner-prop-card.unpaid{border-color:#fca5a5}.owner-prop-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.owner-prop-name{color:var(--ink);font-family:var(--font-serif);font-size:1.2rem}.owner-prop-tenant{color:var(--ink-3);font-size:.85rem;margin-top:3px}.rent-badge{border-radius:20px;font-size:.8rem;font-weight:600;padding:5px 14px}.rent-badge.paid{background:#d1fae5;color:#065f46}.rent-badge.partial{background:#fef3c7;color:#92400e}.rent-badge.unpaid{background:#fee2e2;color:#991b1b}.owner-invoice-status{border-radius:9px;font-size:.8rem;font-weight:500;margin-bottom:14px;padding:8px 12px}.owner-invoice-status.sent{background:#d1fae5;color:#065f46}.owner-invoice-status.not-sent{background:var(--paper);color:var(--ink-3)}.owner-prop-amounts{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.owner-amount-row{color:var(--ink-2);display:flex;font-size:.9rem;justify-content:space-between}.owner-amount-row.received{color:var(--teal)}.owner-amount-row.outstanding{color:#b45309;font-weight:600}.owner-confirm{border-top:1px solid var(--paper-3);margin-bottom:14px;padding-top:14px}.owner-confirm-label{color:var(--ink-3);display:block;font-size:.8rem;margin-bottom:8px}.owner-confirm-btns{display:flex;gap:10px}.confirm-btn{background:var(--white);border:1.5px solid var(--paper-3);border-radius:10px;color:var(--ink-3);cursor:pointer;flex:1 1;font-family:var(--font-sans);font-size:.85rem;font-weight:600;padding:10px;transition:all .15s}.confirm-btn:hover{border-color:var(--ink-3)}.confirm-btn.received.active{background:#d1fae5;border-color:#6ee7b7;color:#065f46}.confirm-btn.outstanding.active{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.owner-prop-address{border-top:1px solid var(--paper-3);color:var(--ink-3);font-size:.78rem;padding-top:12px}.owner-prop-portfolio{display:flex;flex-direction:column;gap:16px;margin:0 40px}.owner-portfolio-card{background:var(--white);border:1.5px solid var(--paper-3);border-radius:18px;overflow:hidden;transition:box-shadow .2s}.owner-portfolio-card.open{border-color:var(--teal);box-shadow:0 4px 24px #00000014}.owner-portfolio-header{align-items:center;cursor:pointer;display:flex;gap:20px;padding:20px 24px;transition:background .15s}.owner-portfolio-header:hover{background:var(--paper)}.owner-portfolio-img{background-position:50%;background-size:cover;border-radius:12px;flex-shrink:0;height:64px;width:64px}.owner-portfolio-img-bryanston{background:linear-gradient(135deg,#1a7a6e,#0d4a43)}.owner-portfolio-img-brooklyn{background:linear-gradient(135deg,#c9943a,#7a5a1e)}.owner-portfolio-img-lonehill{background:linear-gradient(135deg,#2c3e50,#1a252f)}.owner-portfolio-info{flex:1 1;min-width:0}.owner-portfolio-name{color:var(--ink);font-family:var(--font-serif);font-size:1.1rem;margin-bottom:3px}.owner-portfolio-addr{color:var(--ink-3);font-size:.8rem;margin-bottom:8px}.owner-portfolio-tags{display:flex;flex-wrap:wrap;gap:6px}.ptag{border-radius:20px;font-size:.74rem;font-weight:600;padding:2px 10px}.ptag-current{background:#1a7a6e1f;color:var(--teal)}.ptag-past{background:#f0ece4;background:var(--paper-2,#f0ece4);color:var(--ink-3)}.owner-portfolio-meta{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px}.owner-portfolio-rent{font-feature-settings:"tnum";color:var(--ink);font-size:1.15rem;font-variant-numeric:tabular-nums;font-weight:700}.owner-portfolio-rent span{font-weight:400}.owner-portfolio-lease,.owner-portfolio-rent span{color:var(--ink-3);font-size:.75rem}.owner-portfolio-lease.expiring{color:var(--red);font-weight:600}.owner-portfolio-chevron{color:var(--ink-3);font-size:.65rem;margin-top:4px}.owner-portfolio-body{background:#f9f6f0;background:var(--paper,#f9f6f0);border-top:1px solid #ece8e0;border-top:1px solid var(--paper-2,#ece8e0);display:flex;flex-direction:column;gap:24px;padding:24px}.owner-prop-facts{display:flex;flex-wrap:wrap;gap:12px}.owner-fact{background:var(--white);border:1px solid var(--paper-3);border-radius:12px;min-width:120px;padding:12px 18px}.owner-fact-label{color:var(--ink-3);font-size:.72rem;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.owner-fact-val{color:var(--ink);font-family:var(--font-serif);font-size:1rem;font-weight:600}.owner-sub-label{color:var(--ink-3);font-size:.75rem;font-weight:600;letter-spacing:.07em;margin-bottom:10px;text-transform:uppercase}.owner-tenant-table{border-collapse:collapse;font-size:.85rem;width:100%}.owner-tenant-table th{background:var(--white);border-bottom:1px solid var(--paper-3);color:var(--ink-3);font-size:.72rem;letter-spacing:.05em;padding:8px 12px;text-align:left;text-transform:uppercase}.owner-tenant-table td{border-bottom:1px solid #ece8e0;border-bottom:1px solid var(--paper-2,#ece8e0);color:var(--ink-2);padding:10px 12px;vertical-align:middle}.owner-tenant-table tr:last-child td{border-bottom:none}@media (max-width:900px){.owner-kpi-grid{grid-template-columns:repeat(2,1fr)}.owner-chart-card,.owner-invoice-bar,.owner-kpi-grid,.owner-prop-portfolio,.owner-properties,.owner-section-label,.owner-summary{margin-left:20px;margin-right:20px}.owner-hero-content{padding:20px}}@media (max-width:600px){.owner-summary{grid-template-columns:1fr}.owner-kpi-grid{grid-template-columns:repeat(2,1fr)}.owner-portfolio-header{flex-wrap:wrap}}.settings-wrap{max-width:760px}.settings-section{background:var(--white);border:1px solid var(--paper-3);border-radius:18px;margin-bottom:20px;padding:28px 30px}.settings-section-title{align-items:center;color:var(--ink);display:flex;font-family:var(--font-serif);font-size:1.15rem;gap:10px;margin-bottom:8px}.settings-icon{font-size:1rem}.settings-hint{color:var(--ink-3);font-size:.85rem;line-height:1.5;margin-bottom:18px}.settings-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.settings-emailjs-note{background:var(--paper);border-radius:10px;color:var(--ink-2);font-size:.82rem;line-height:1.7;margin-top:16px;padding:12px 14px}.settings-emailjs-note code{background:var(--paper-3);border-radius:4px;font-family:monospace;font-size:.82rem;margin:0 3px;padding:2px 6px}.settings-pins{display:flex;flex-direction:column;gap:16px}.settings-pin-row{align-items:center;border-bottom:1px solid var(--paper-3);display:flex;gap:16px;padding:14px 0}.settings-pin-row:last-child{border-bottom:none}.settings-pin-avatar{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-family:var(--font-serif);font-size:1.1rem;font-weight:600;height:38px;justify-content:center;width:38px}.settings-pin-avatar.role-owner{background:var(--ink);color:var(--gold)}.settings-pin-avatar.role-manager{background:var(--teal);color:var(--white)}.settings-pin-info{flex:1 1}.settings-pin-name{color:var(--ink);font-size:.9rem;font-weight:600}.settings-pin-role{color:var(--ink-3);font-size:.78rem}.settings-pin-inputs{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.settings-pin-inputs input{width:110px}.settings-pin-err{color:var(--red);font-size:.78rem;width:100%}input.input-err{border-color:var(--red)!important}.settings-footer{display:flex;justify-content:flex-end;padding-top:4px}.btn-saved{background:var(--teal)!important}@media (max-width:600px){.settings-grid{grid-template-columns:1fr}.settings-section{padding:20px 18px}.settings-pin-row{flex-wrap:wrap}}.shell{display:flex;min-height:100vh}.sidebar{background:var(--ink);display:flex;flex-direction:column;flex-shrink:0;height:100vh;justify-content:space-between;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;width:230px}.sidebar-top{padding:28px 18px 20px}.sidebar-brand{gap:12px;margin-bottom:36px;padding-left:4px}.brand-mark,.sidebar-brand{align-items:center;display:flex}.brand-mark{background:var(--gold);border-radius:12px;flex-shrink:0;font-size:1.3rem;height:40px;justify-content:center;width:40px}.brand-mark,.brand-name{color:var(--white);font-family:var(--font-serif)}.brand-name{font-size:1.1rem;line-height:1.1}.brand-sub{color:#ffffff73;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.sidebar-nav{display:flex;flex-direction:column;gap:3px}.nav-item{align-items:center;background:none;border:none;border-radius:10px;color:#ffffff8c;cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.9rem;gap:11px;padding:10px 14px;text-align:left;transition:all .15s;width:100%}.nav-item:hover{background:#ffffff12;color:#ffffffd9}.nav-item.active{background:var(--gold);color:var(--white)}.nav-icon{flex-shrink:0;font-size:1.1rem}.sidebar-foot{border-top:1px solid #ffffff14;padding:18px}.sidebar-owner{gap:10px}.owner-avatar,.sidebar-owner{align-items:center;display:flex}.owner-avatar{background:var(--teal);border-radius:50%;color:var(--white);flex-shrink:0;font-size:.9rem;font-weight:700;height:34px;justify-content:center;width:34px}.owner-name{color:#fffc;font-size:.8rem;font-weight:500;line-height:1.2}.owner-role{color:#fff6;font-size:.72rem}.main-content{background:var(--paper);flex:1 1;min-width:0;overflow-y:auto;padding:40px 44px}.sync-badge{align-items:center;border-radius:8px;display:flex;font-size:.72rem;gap:7px;margin-bottom:14px;padding:7px 11px}.sync-badge.on{background:#1a7a6e2e;color:#6fd6c6}.sync-badge.off{background:#ffffff0f;color:#ffffff80}.sync-dot{border-radius:50%;height:7px;width:7px}.sync-badge.on .sync-dot{background:#1a7a6e;box-shadow:0 0 0 3px #1a7a6e40}.sync-badge.off .sync-dot{background:#ffffff59}.owner-avatar.role-owner{background:var(--gold);color:var(--ink)}.owner-avatar.role-manager{background:var(--teal);color:var(--white)}.signout-btn{background:none;border:1px solid #ffffff1f;border-radius:8px;color:#fff6;cursor:pointer;display:block;font-family:var(--font-sans);font-size:.8rem;margin-top:12px;padding:8px;transition:all .15s;width:100%}.signout-btn:hover{background:#ffffff12;color:#ffffffb3}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0f1923;--ink-2:#2d3d4f;--ink-3:#5a7080;--paper:#f7f4ef;--paper-2:#ede9e2;--paper-3:#e0dbd2;--gold:#c9943a;--gold-lt:#f5e8d0;--teal:#1a7a6e;--teal-lt:#d0ede9;--red:#c0392b;--red-lt:#fde8e6;--green:#1e7e4a;--green-lt:#d8f0e4;--amber:#b7770d;--amber-lt:#fef3dd;--white:#fff;--shadow-sm:0 1px 3px #0f192314;--shadow-md:0 4px 16px #0f19231a;--shadow-lg:0 8px 32px #0f192321;--radius:10px;--radius-lg:16px;--font-serif:"DM Serif Display",Georgia,serif;--font-sans:"DM Sans",system-ui,sans-serif}html{font-size:15px}body{background:#f7f4ef;background:var(--paper);color:#0f1923;color:var(--ink);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font-sans);line-height:1.5;min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#ede9e2;background:var(--paper-2)}::-webkit-scrollbar-thumb{background:#e0dbd2;background:var(--paper-3);border-radius:3px}.serif{font-family:"DM Serif Display",Georgia,serif;font-family:var(--font-serif)}.mono{font-family:Courier New,monospace;font-size:.92em}.btn{align-items:center;border:none;border-radius:10px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:DM Sans,system-ui,sans-serif;font-family:var(--font-sans);font-size:.875rem;font-weight:500;gap:7px;padding:9px 18px;transition:all .15s;white-space:nowrap}.btn-primary{background:#0f1923;background:var(--ink);color:#fff;color:var(--white)}.btn-primary:hover{background:#2d3d4f;background:var(--ink-2);box-shadow:0 4px 16px #0f19231a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-gold{background:#c9943a;background:var(--gold);color:#fff;color:var(--white)}.btn-gold:hover{background:#b8832e;box-shadow:0 4px 16px #0f19231a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-teal{background:#1a7a6e;background:var(--teal);color:#fff;color:var(--white)}.btn-teal:hover{background:#155f56;transform:translateY(-1px)}.btn-ghost{background:#0000;border:1.5px solid #e0dbd2;border:1.5px solid var(--paper-3);color:#2d3d4f;color:var(--ink-2)}.btn-ghost:hover{background:#ede9e2;background:var(--paper-2)}.btn-danger{background:#c0392b;background:var(--red);color:#fff;color:var(--white)}.btn-sm{font-size:.8rem;padding:6px 13px}.btn-lg{font-size:1rem;padding:13px 26px}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none!important}.card{background:#fff;background:var(--white);border:1px solid #e0dbd2;border:1px solid var(--paper-3);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0f192314;box-shadow:var(--shadow-sm)}.card-pad{padding:24px}.card-pad-lg{padding:32px}.field{display:flex;flex-direction:column;gap:5px}.field label{color:#2d3d4f;color:var(--ink-2);font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.field input,.field select,.field textarea{background:#fff;background:var(--white);border:1.5px solid #e0dbd2;border:1.5px solid var(--paper-3);border-radius:10px;border-radius:var(--radius);color:#0f1923;color:var(--ink);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font-sans);font-size:.925rem;outline:none;padding:9px 13px;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#c9943a;border-color:var(--gold);box-shadow:0 0 0 3px #f5e8d0;box-shadow:0 0 0 3px var(--gold-lt)}.field textarea{min-height:80px;resize:vertical}.badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.03em;padding:3px 10px;text-transform:uppercase}.badge-paid{background:#d8f0e4;background:var(--green-lt);color:#1e7e4a;color:var(--green)}.badge-outstanding{background:#fde8e6;background:var(--red-lt);color:#c0392b;color:var(--red)}.badge-partial{background:#fef3dd;background:var(--amber-lt);color:#b7770d;color:var(--amber)}.tbl{border-collapse:collapse;font-size:.9rem;width:100%}.tbl th{background:#f7f4ef;background:var(--paper);border-bottom:2px solid #e0dbd2;border-bottom:2px solid var(--paper-3);color:#2d3d4f;color:var(--ink-2);font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:10px 14px;text-align:left;text-transform:uppercase}.tbl td{border-bottom:1px solid #ede9e2;border-bottom:1px solid var(--paper-2);color:#0f1923;color:var(--ink);padding:12px 14px}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:#f7f4ef;background:var(--paper)}.tbl .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.page-header{margin-bottom:28px}.page-header h1{color:#0f1923;color:var(--ink);font-family:"DM Serif Display",Georgia,serif;font-family:var(--font-serif);font-size:2rem;line-height:1.2}.page-header p{font-size:.925rem;margin-top:4px}.page-header p,.section-label{color:#5a7080;color:var(--ink-3)}.section-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;margin-bottom:12px;text-transform:uppercase}.grid-2{grid-gap:16px;grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-gap:16px;grid-template-columns:repeat(3,1fr)}.grid-4{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.toast-wrap{bottom:28px;display:flex;flex-direction:column;gap:10px;position:fixed;right:28px;z-index:9999}.toast{animation:slideUp .2s ease;background:#0f1923;background:var(--ink);border-radius:10px;border-radius:var(--radius);box-shadow:0 8px 32px #0f192321;box-shadow:var(--shadow-lg);color:#fff;color:var(--white);font-size:.875rem;padding:12px 20px}.toast.success{background:#1a7a6e;background:var(--teal)}.toast.error{background:#c0392b;background:var(--red)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{align-items:center;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f192380;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal{animation:scaleIn .15s ease;background:#fff;background:var(--white);border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 8px 32px #0f192321;box-shadow:var(--shadow-lg);max-height:90vh;max-width:95vw;overflow-y:auto;padding:32px;width:520px}.modal-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.modal-header h2{font-family:"DM Serif Display",Georgia,serif;font-family:var(--font-serif);font-size:1.5rem}.modal-close{background:none;border:none;color:#5a7080;color:var(--ink-3);cursor:pointer;padding:4px}.modal-close:hover{color:#0f1923;color:var(--ink)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.divider{background:#ede9e2;background:var(--paper-2);height:1px;margin:20px 0}.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.amount-lg{font-feature-settings:"tnum";font-size:1.6rem;font-variant-numeric:tabular-nums;font-weight:700}
/*# sourceMappingURL=main.1f95f12c.css.map*/