.portal{--p-bg:#f6f2eb;--p-card:#fffdf9;--p-line:#e6dccd;--p-soft:#f3ebdf;--p-ok:#2f7d4f;--p-ok-bg:#e5f3ea;--p-danger:#b3393f;--p-danger-bg:#fbe9e8;--p-warn:#9a6420;--p-warn-bg:#f8ecd8;--p-radius:16px;background:var(--p-bg);min-height:100dvh;color:var(--ink);grid-template-columns:264px minmax(0,1fr);font-family:DM Sans,Arial,sans-serif;display:grid}.portal *,.portal-login *{box-sizing:border-box}.portal h1,.portal h2,.portal h3{letter-spacing:-.02em;margin:0;font-family:Playfair Display,Georgia,serif;font-weight:500}.portal a{color:inherit}.is-muted{color:#9a8c7e}.is-capitalize{text-transform:capitalize}.portal-sidebar{border-right:1px solid var(--p-line);background:#fffaf2;flex-direction:column;gap:6px;height:100dvh;padding:26px 18px 18px;display:flex;position:sticky;top:0}.portal-brand{padding:0 8px;display:inline-flex}.portal-brand img{height:auto}.portal-area{letter-spacing:.18em;text-transform:uppercase;color:#9f733d;margin:14px 10px 18px;font-size:10px;font-weight:700}.portal-nav{flex-direction:column;gap:3px;display:flex}.portal-nav a{color:#5d4c3f;border-radius:11px;align-items:center;gap:12px;padding:11px 12px;font-size:14px;font-weight:600;transition:background .18s,color .18s;display:flex}.portal-nav a:hover{background:var(--p-soft)}.portal-nav a.active{background:var(--deep);color:#fff;box-shadow:0 8px 18px #2e1c1129}.portal-nav a.active svg{color:#e8c48d}.portal-user{border-top:1px solid var(--p-line);align-items:center;gap:10px;margin-top:auto;padding:12px 8px 4px;display:flex}.portal-user>div{flex:1;min-width:0}.portal-user strong,.portal-user small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.portal-user strong{font-size:13px}.portal-user small{color:var(--muted);font-size:11px}.portal-avatar{color:#fff;letter-spacing:.03em;background:linear-gradient(135deg,#d6ac6f,#9b6128);border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:grid}.portal-avatar.is-small{width:34px;height:34px;font-size:12px}.portal-avatar.is-large{width:72px;height:72px;font-size:24px}.portal-icon-button{border:1px solid var(--p-line);color:#5d4c3f;cursor:pointer;background:#fff;border-radius:10px;place-items:center;width:38px;height:38px;transition:background .18s;display:inline-grid}.portal-icon-button:hover{background:var(--p-soft)}.portal-icon-placeholder{width:38px}.portal-main{flex-direction:column;min-width:0;display:flex}.portal-topbar{display:none}.portal-demo{color:#f3d59c;text-align:center;background:#2e1c11;margin:0;padding:9px 32px;font-size:12px}.portal-content{flex-direction:column;gap:22px;width:min(100%,1240px);margin:0 auto;padding:36px 36px 70px;display:flex}.portal-page-header{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.portal-page-header h1{font-size:clamp(34px,4vw,48px);line-height:1.05}.portal-page-header p{color:var(--muted);max-width:640px;margin:10px 0 0;font-size:15px;line-height:1.55}.portal-page-action{flex:none}.portal-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:#9f733d;margin-bottom:9px;font-size:11px;font-weight:700;display:inline-block}.portal-back{color:#7d5631;align-items:center;gap:7px;width:max-content;font-size:13px;font-weight:700;display:inline-flex}.portal-hint{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.portal-hint a,.portal-list a,.portal-table td a:not(.portal-button){color:#8b5d2f;font-weight:600}.portal-link{color:#8b5d2f;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.portal-link:hover{color:var(--deep)}.portal-card{background:var(--p-card);border:1px solid var(--p-line);border-radius:var(--p-radius);flex-direction:column;gap:16px;min-width:0;padding:24px;display:flex;box-shadow:0 10px 30px #4b30100a}.portal-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.portal-card-head h2{align-items:center;gap:9px;font-size:23px;display:flex}.portal-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;display:grid}.portal-grid-2.is-wide-left{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.portal-grid-2.is-wide-right{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.portal-stack{flex-direction:column;gap:22px;display:flex}.portal-narrow{max-width:760px}.portal-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.portal-stat{border-radius:var(--p-radius);background:var(--p-card);border:1px solid var(--p-line);flex-direction:column;gap:5px;padding:20px 22px;transition:transform .2s,box-shadow .2s;display:flex}a.portal-stat:hover{transform:translateY(-2px);box-shadow:0 14px 28px #4b301014}.portal-stat span{color:var(--muted);font-size:12px;font-weight:600}.portal-stat strong{letter-spacing:-.02em;font-family:Playfair Display,Georgia,serif;font-size:30px;font-weight:500;line-height:1.1}.portal-stat small{color:var(--muted);font-size:12px}.portal-stat.is-dark{color:#fff;background:linear-gradient(140deg,#3a2416,#22150d);border-color:#22150d}.portal-stat.is-dark span,.portal-stat.is-dark small{color:#e2cfb8}.portal-stat.is-gold{background:#fbf1e1;border-color:#ecd6b4}.portal-stat.is-ok strong{color:var(--p-ok)}.portal-stat.is-danger{background:var(--p-danger-bg);border-color:#f0c7c4}.portal-stat.is-danger strong{color:var(--p-danger)}.portal-stats.is-compact .portal-stat{padding:15px 18px}.portal-stats.is-compact .portal-stat strong{font-size:26px}.portal-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.unit-available,.pay-paid,.is-active{background:var(--p-ok-bg);color:var(--p-ok);border-color:#c3e3cf}.unit-unconfirmed,.pay-upcoming{color:#6e6256;background:#f1ede7;border-color:#e2d9cd}.unit-reserved,.pay-due,.pay-partial{background:var(--p-warn-bg);color:var(--p-warn);border-color:#ebd2ab}.unit-sold,.is-admin{color:#f3d59c;background:#2e1c11}.pay-overdue,.is-inactive{background:var(--p-danger-bg);color:var(--p-danger);border-color:#efc4c1}.portal-chip{background:var(--p-soft);color:#6b4a2b;white-space:nowrap;border-radius:7px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.portal-bar{background:#eee5d8;border-radius:99px;height:8px;overflow:hidden}.portal-bar span{border-radius:inherit;background:linear-gradient(90deg,#d6ac6f,#a56f33);height:100%;transition:width .5s;display:block}.portal-bar.is-ok span{background:linear-gradient(90deg,#5fb27f,#2f7d4f)}.portal-bar.is-dark span{background:var(--deep)}.portal-ring{flex:none;position:relative}.portal-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.portal-ring circle{fill:none;stroke-width:11px}.portal-ring-track{stroke:#efe5d6}.portal-ring-value{stroke:#b07a3c;stroke-linecap:round;transition:stroke-dashoffset .8s}.portal-ring>div{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.portal-ring strong{font-family:Playfair Display,Georgia,serif;font-size:32px;font-weight:500;line-height:1}.portal-ring span{color:var(--muted);margin-top:4px;font-size:11px}.portal-progress-summary{align-items:center;gap:24px;display:flex}.portal-progress-summary ul{flex-direction:column;flex:1;gap:7px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.portal-progress-summary li{border-bottom:1px dashed var(--p-line);justify-content:space-between;gap:10px;padding-bottom:6px;display:flex}.portal-progress-hero{text-align:center;justify-content:center;align-items:center;min-height:100%}.portal-progress-hero p{color:var(--muted);max-width:320px;margin:0;font-size:13px}.portal-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.portal-list li{border-bottom:1px solid #efe6da;align-items:center;gap:14px;padding:13px 0;display:flex}.portal-list li:last-child{border-bottom:0}.portal-list li>svg{color:#b07a3c;flex:none}.portal-list li>div{flex:1;min-width:0}.portal-list strong{font-size:14px;display:block}.portal-list small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.portal-amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.portal-inline-totals{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:13px;display:flex}.portal-inline-totals strong{color:var(--ink)}.portal-empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:26px 10px;display:flex}.portal-empty svg{color:#c4a375}.portal-empty strong{color:var(--ink);font-size:15px}.portal-empty p{margin:0;font-size:13px}.portal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.portal-segmented{scrollbar-width:none;background:#ece3d6;border-radius:12px;gap:4px;max-width:100%;padding:4px;display:flex;overflow-x:auto}.portal-segmented a{color:#6a5646;white-space:nowrap;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600}.portal-segmented a.active{color:var(--deep);background:#fff;box-shadow:0 2px 8px #3c240d17}.portal-search{border:1px solid var(--p-line);background:#fff;border-radius:12px;align-items:center;gap:8px;min-width:min(100%,280px);padding:0 13px;display:flex}.portal-search svg{color:#9a8c7e}.portal-search input{font:inherit;background:0 0;border:0;outline:0;width:100%;padding:11px 0;font-size:14px}.portal-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.portal-filters select{border:1px solid var(--p-line);font:inherit;background:#fff;border-radius:10px;padding:9px 12px;font-size:13px}.portal-year{align-items:center;gap:6px;display:flex}.portal-year a{border:1px solid var(--p-line);background:#fff;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.portal-year strong{text-align:center;min-width:70px;font-family:Playfair Display,Georgia,serif;font-size:26px;font-weight:500}.portal-chips-nav{scrollbar-width:none;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.portal-chips-nav a{border:1px solid var(--p-line);white-space:nowrap;background:#fff;border-radius:99px;padding:7px 13px;font-size:12px;font-weight:600}.portal-chips-nav a.active{background:var(--deep);border-color:var(--deep);color:#fff}.portal-table-wrap{background:var(--p-card);border:1px solid var(--p-line);border-radius:var(--p-radius);overflow:hidden}.portal-card .portal-table-wrap{background:0 0;border:0;border-radius:0;margin:0 -24px -24px}.portal-table{border-collapse:collapse;width:100%;font-size:14px}.portal-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:#8a7868;border-bottom:1px solid var(--p-line);background:#faf4ea;padding:12px 16px;font-size:11px;font-weight:700}.portal-table td{vertical-align:middle;border-bottom:1px solid #f0e8dd;padding:13px 16px}.portal-table tr:last-child td{border-bottom:0}.portal-table tbody tr:hover{background:#fdf8f0}.portal-table.is-dense td{padding:10px 16px}.portal-table tr.is-overdue td:first-child{box-shadow:inset 3px 0 var(--p-danger)}.portal-sub{color:var(--muted);margin-top:2px;font-size:11px;display:block}.portal-strong-link{font-weight:700}.portal-row-action{white-space:nowrap;text-align:right;width:1%}.portal-row-action form{display:inline}.portal-row-action>a{color:#8b5d2f;border-radius:9px;place-items:center;width:32px;height:32px;display:inline-grid}.portal-row-action>a:hover{background:var(--p-soft)}.portal-person{align-items:center;gap:11px;display:flex}.portal-person strong,.portal-person small{display:block}.portal-person small{color:var(--muted);font-size:12px;font-weight:400}.portal-grid-scroll{background:var(--p-card);border:1px solid var(--p-line);border-radius:var(--p-radius);-webkit-overflow-scrolling:touch;overflow-x:auto}.portal-pay-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:900px;font-size:13px}.portal-pay-grid th,.portal-pay-grid td{text-align:center;border-bottom:1px solid #f0e8dd;padding:7px 5px}.portal-pay-grid thead th{text-transform:uppercase;letter-spacing:.06em;color:#8a7868;background:#faf4ea;font-size:11px;font-weight:700}.portal-pay-grid thead th a{border-radius:8px;padding:5px 8px;display:inline-block}.portal-pay-grid thead th a.is-selected{background:var(--deep);color:#fff}.portal-pay-grid thead th.is-current a:not(.is-selected){box-shadow:inset 0 -2px #b07a3c}.portal-pay-grid tbody th,.portal-pay-grid tfoot th,.portal-pay-grid thead th:first-child{z-index:1;text-align:left;min-width:170px;box-shadow:1px 0 var(--p-line);background:#fffdf9;padding:9px 14px;position:sticky;left:0}.portal-pay-grid thead th:first-child{background:#faf4ea}.portal-pay-grid tbody th strong,.portal-pay-grid tbody th small{white-space:nowrap;display:block}.portal-pay-grid tbody th small{color:var(--muted);font-size:11px;font-weight:400}.portal-pay-grid tfoot td,.portal-pay-grid tfoot th{background:#faf4ea;border-bottom:0;font-size:12px}.portal-pay-grid tfoot td strong,.portal-pay-grid tfoot td small{display:block}.portal-pay-grid tfoot td small{color:var(--muted);font-size:10px}.portal-pay-cell{width:100%;min-width:56px;height:38px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:9px;place-items:center;font-size:12px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-grid}.portal-pay-cell:hover{transform:scale(1.06);box-shadow:0 5px 12px #3c240d24}.portal-pay-cell.is-paid{background:var(--p-ok-bg);color:var(--p-ok);border-color:#c3e3cf}.portal-pay-cell.is-overdue{background:var(--p-danger);color:#fff}.portal-pay-cell.is-partial{color:var(--p-warn);background:#fff;border:1px dashed #d8a35f}.portal-pay-cell.is-due{background:var(--p-warn-bg);color:var(--p-warn);border-color:#ebd2ab}.portal-pay-cell.is-upcoming{color:#987;background:#f6f1ea}.portal-list.is-payments li{flex-wrap:wrap}.portal-form{flex-direction:column;gap:15px;display:flex}.portal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.portal-form-grid.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-form-grid.is-money{grid-template-columns:minmax(0,1fr) 110px}.portal-field{color:#5d4c3f;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:700;display:flex}.portal-field small{color:var(--muted);font-size:11px;font-weight:400}.portal-field input,.portal-field select,.portal-field textarea{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #dccfbd;border-radius:10px;outline:none;padding:11px 13px;font-size:15px;font-weight:400;transition:border-color .15s,box-shadow .15s}.portal-field textarea{resize:vertical;min-height:80px}.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus{border-color:#b07a3c;box-shadow:0 0 0 3px #b07a3c24}.portal-file input{background:#faf6f0;border-style:dashed;padding:9px}.portal-fieldset{border:1px solid var(--p-line);border-radius:12px;flex-direction:column;gap:14px;margin:0;padding:16px;display:flex}.portal-fieldset legend{letter-spacing:.08em;text-transform:uppercase;color:#9f733d;padding:0 6px;font-size:12px;font-weight:700}.portal-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.portal-button{min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:700;text-decoration:none;transition:background .18s,transform .18s,box-shadow .18s;display:inline-flex}.portal-button:disabled{opacity:.6;cursor:progress}.portal-button.is-primary{background:var(--deep);color:#fff;box-shadow:0 8px 18px #2e1c1129}.portal-button.is-primary:hover{background:#4a2e1c}.portal-button.is-ghost{color:#4b2b19;background:#fff;border-color:#dccfbd}.portal-button.is-ghost:hover{background:var(--p-soft)}.portal-button.is-danger{background:var(--p-danger-bg);color:var(--p-danger);border-color:#efc4c1}.portal-button.is-danger:hover{background:#f6d8d6}.portal-button.is-small{border-radius:9px;min-height:34px;padding:6px 12px;font-size:12px}.portal-button.is-icon{width:34px;min-height:34px;padding:0}.portal-button.is-wide{width:100%}.portal-spin{animation:.8s linear infinite portal-spin}@keyframes portal-spin{to{transform:rotate(360deg)}}.portal-alert{border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:11px 14px;font-size:13px;line-height:1.45;display:flex}.portal-alert svg{flex:none;margin-top:1px}.portal-alert.is-error{background:var(--p-danger-bg);color:var(--p-danger)}.portal-alert.is-ok{background:var(--p-ok-bg);color:var(--p-ok)}.portal-delete-form{margin-top:4px}.portal-disclosure summary{cursor:pointer;color:#8b5d2f;align-items:center;gap:7px;font-size:13px;font-weight:700;list-style:none;display:inline-flex}.portal-disclosure summary::-webkit-details-marker{display:none}.portal-disclosure[open] summary{margin-bottom:12px}.portal-dialog{width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);background:#fffdf9;border:0;border-radius:20px;padding:24px;box-shadow:0 30px 80px #1d100d55}.portal-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1a100ab3}.portal-dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.portal-dialog-head h2{margin:0;font-family:Playfair Display,Georgia,serif;font-size:26px;font-weight:500}.portal-dialog-head p{color:var(--muted);margin:5px 0 0;font-size:13px}.portal-dialog-undo{border-top:1px solid var(--p-line);flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;padding-top:12px;display:flex}.portal-plan-head{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.portal-plan-head span{color:var(--muted);font-size:11px;font-weight:600;display:block}.portal-plan-head strong{font-family:Playfair Display,Georgia,serif;font-size:22px;font-weight:500}.portal-mini-schedule{border:1px solid #efe6da;border-radius:12px;max-height:420px;margin:0;padding:0;list-style:none;overflow:auto}.portal-mini-schedule li{border-bottom:1px solid #f3ece2;grid-template-columns:34px 1fr auto auto;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:grid}.portal-mini-schedule li span:first-child{color:#a89685;font-weight:700}.portal-mini-schedule li span:nth-child(2){text-transform:capitalize}.portal-profile-hero{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.portal-profile-hero>div{flex:1;min-width:240px}.portal-profile-hero h1{font-size:clamp(32px,4vw,46px);line-height:1.05}.portal-contact-row{color:#5d4c3f;flex-wrap:wrap;gap:8px 18px;margin-top:10px;font-size:14px;display:flex}.portal-contact-row a,.portal-contact-row span{align-items:center;gap:6px;display:inline-flex}.portal-details{flex-direction:column;margin:0;display:flex}.portal-details div{border-bottom:1px solid #f0e8dd;justify-content:space-between;gap:16px;padding:12px 0;font-size:14px;display:flex}.portal-details dt{color:var(--muted)}.portal-details dd{text-align:right;margin:0;font-weight:600}.portal-breakdown{flex-direction:column;gap:15px;margin:0;padding:0;list-style:none;display:flex}.portal-breakdown li>div:first-child{justify-content:space-between;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.portal-breakdown strong{font-variant-numeric:tabular-nums;text-align:right}.portal-breakdown small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.portal-stages{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.portal-stages>li{border-bottom:1px solid #f0e8dd;align-items:flex-start;gap:6px;padding-bottom:14px;display:flex}.portal-stages>li>form:first-child{flex:1}.portal-stage-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.portal-stage-form .portal-bar,.portal-stage-form .portal-alert{flex-basis:100%}.portal-field.is-grow{flex:1;min-width:160px}.portal-field.is-tiny{width:86px}.portal-stage-delete{padding-top:21px}.portal-timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.portal-timeline>li{grid-template-columns:92px 1fr;gap:16px;padding:0 0 22px;display:grid;position:relative}.portal-timeline>li:before{content:"";background:var(--p-line);width:1px;position:absolute;top:6px;bottom:0;left:96px}.portal-timeline time{color:#9f733d;padding-top:2px;font-size:12px;font-weight:700}.portal-timeline-body{flex-direction:column;gap:8px;min-width:0;padding-left:20px;display:flex;position:relative}.portal-timeline-body:before{content:"";background:#b07a3c;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-1px;box-shadow:0 0 0 4px #b07a3c26}.portal-timeline-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.portal-timeline h3{font-size:20px}.portal-timeline p{color:#5d4c3f;margin:0;font-size:14px;line-height:1.6}.portal-timeline-photo{aspect-ratio:16/10;background:#eee5d8;border-radius:12px;position:relative;overflow:hidden}.portal-timeline-photo img{object-fit:cover}.buyer-hero{color:#fff;background:radial-gradient(circle at 85% 20%,#5a3a23 0,#2e1c11 55%,#1d110a 100%);border-radius:22px;justify-content:space-between;align-items:center;gap:24px;padding:30px 32px;display:flex;box-shadow:0 20px 50px #2e1c1133}.buyer-hero h1{font-size:clamp(36px,5vw,54px);line-height:1}.buyer-hero p{color:#e7d8c6;max-width:520px;margin:12px 0 0;font-size:15px;line-height:1.6}.buyer-hero .portal-eyebrow{color:#e8c48d}.buyer-hero .portal-ring-track{stroke:#ffffff1f}.buyer-hero .portal-ring-value{stroke:#e8c48d}.buyer-hero .portal-ring span{color:#e7d8c6}.buyer-next{border-radius:var(--p-radius);background:#fffaf2;border:1px solid #ecd6b4;align-items:center;gap:16px;padding:18px 22px;transition:transform .2s,box-shadow .2s;display:flex}.buyer-next:hover{transform:translateY(-2px);box-shadow:0 14px 28px #4b301014}.buyer-next>svg:first-child{color:#b07a3c;flex:none}.buyer-next>div{flex:1;min-width:0}.buyer-next span,.buyer-next small{color:var(--muted);font-size:12px;display:block}.buyer-next strong{font-family:Playfair Display,Georgia,serif;font-size:28px;font-weight:500;line-height:1.15;display:block}.buyer-next.is-overdue{background:var(--p-danger-bg);border-color:#efc4c1}.buyer-next.is-overdue>svg:first-child,.buyer-next.is-overdue strong{color:var(--p-danger)}.buyer-unit{background:var(--p-card);border:1px solid var(--p-line);border-radius:22px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 10px 30px #4b30100a}.buyer-unit-image{background:#f3eee6;min-height:320px;position:relative}.buyer-unit-image img{object-fit:contain;padding:16px}.buyer-unit-body{flex-direction:column;gap:14px;padding:28px;display:flex}.buyer-unit-body h2{font-size:38px}.buyer-unit-facts{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.buyer-unit-facts li{background:var(--p-soft);color:#5d4c3f;border-radius:99px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.buyer-unit-facts svg{color:#b07a3c}.buyer-plan-line{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.buyer-plan-line strong{color:var(--ink)}.buyer-plan-numbers{grid-template-columns:1fr 1fr;gap:10px;display:grid}.buyer-plan-numbers span{color:var(--muted);font-size:12px;display:block}.buyer-plan-numbers strong{font-family:Playfair Display,Georgia,serif;font-size:24px;font-weight:500}.buyer-news{flex-direction:column;gap:8px;display:flex}.buyer-news time{color:#9f733d;font-size:12px;font-weight:700}.buyer-news h3{font-size:22px}.buyer-news p{color:#5d4c3f;margin:0;font-size:14px;line-height:1.6}.buyer-schedule{background:var(--p-card);border:1px solid var(--p-line);border-radius:var(--p-radius);flex-direction:column;gap:12px;padding:24px;display:flex}.buyer-schedule-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.buyer-schedule-head h2{font-size:28px}.buyer-schedule-head span{color:var(--p-ok);font-size:13px;font-weight:700}.buyer-year h3{color:#9f733d;margin:10px 0 6px;font-size:20px}.buyer-months{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.buyer-months li{background:#fff;border:1px solid #efe6da;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.buyer-months li>div{flex:1;min-width:0}.buyer-months strong{font-size:14px;display:block}.buyer-months small{color:var(--muted);font-size:11px;display:block}.buyer-month-icon{color:#987;background:#f1ede7;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid}.buyer-months li.is-paid .buyer-month-icon{background:var(--p-ok-bg);color:var(--p-ok)}.buyer-months li.is-overdue{background:#fff8f7;border-color:#efc4c1}.buyer-months li.is-overdue .buyer-month-icon{background:var(--p-danger);color:#fff}.buyer-months li.is-due .buyer-month-icon,.buyer-months li.is-partial .buyer-month-icon{background:var(--p-warn-bg);color:var(--p-warn)}.buyer-months .portal-badge{display:none}.buyer-stages{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.buyer-stages li{align-items:flex-start;gap:12px;display:flex}.buyer-stages li>svg{color:#c9b8a5;flex:none;margin-top:1px}.buyer-stages li.is-done>svg{color:var(--p-ok)}.buyer-stages li.is-active>svg{color:#b07a3c}.buyer-stages li>div{flex:1}.buyer-stage-line{justify-content:space-between;gap:10px;margin-bottom:6px;font-size:14px;display:flex}.buyer-stages li.is-pending .buyer-stage-line{color:var(--muted)}.buyer-expenses{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.buyer-expenses li{border-bottom:1px solid #f0e8dd;align-items:center;gap:12px;padding:13px 0;display:flex}.buyer-expenses li>div{flex:1;min-width:0}.buyer-expenses strong{font-size:14px;display:block}.buyer-expenses small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.portal-login{min-height:100dvh;color:var(--ink);background:#f6f2eb;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);font-family:DM Sans,Arial,sans-serif;display:grid}.portal-login-photo{background:#2e1c11;position:relative;overflow:hidden}.portal-login-photo img{object-fit:cover}.portal-login-photo:after{content:"";background:linear-gradient(#0000 40%,#1a100ad9);position:absolute;inset:0}.portal-login-photo>div{z-index:1;color:#fff;position:absolute;bottom:44px;left:44px;right:44px}.portal-login-photo span{letter-spacing:.18em;text-transform:uppercase;color:#e8c48d;font-size:11px;font-weight:700}.portal-login-photo strong{margin-top:10px;font-family:Playfair Display,Georgia,serif;font-size:clamp(34px,3.6vw,52px);font-weight:500;line-height:1.08;display:block}.portal-login-card{flex-direction:column;place-self:center;gap:14px;width:min(100%,460px);padding:40px 32px;display:flex}.portal-login-card h1{letter-spacing:-.02em;margin:14px 0 0;font-family:Playfair Display,Georgia,serif;font-size:40px;font-weight:500}.portal-login-card>p{color:var(--muted);margin:0 0 6px;font-size:15px;line-height:1.55}.portal-login-back{color:#8b5d2f;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:700;display:inline-flex}.portal-demo-users{background:#fff8ec;border:1px dashed #d8b88a;border-radius:12px;flex-direction:column;gap:3px;padding:14px 16px;font-size:13px;display:flex}.portal-demo-users strong{letter-spacing:.1em;text-transform:uppercase;color:#9f733d;font-size:12px}.portal-tabbar{display:none}@media (max-width:1100px){.portal{grid-template-columns:220px minmax(0,1fr)}.portal-content{padding:30px 24px 60px}.portal-grid-2,.portal-grid-2.is-wide-left,.portal-grid-2.is-wide-right{grid-template-columns:1fr}}@media (max-width:800px){.portal{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px));display:block}.portal-sidebar{display:none}.portal-topbar{z-index:30;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--p-line);background:#fffaf2f2;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.portal-topbar .portal-brand{padding:0}.portal-demo{padding:8px 16px;font-size:11px}.portal-content{gap:18px;padding:20px 16px 36px}.portal-page-header{flex-direction:column;align-items:flex-start}.portal-page-header h1{font-size:34px}.portal-page-header p{font-size:14px}.portal-page-action,.portal-page-action .portal-button{width:100%}.portal-card{border-radius:14px;padding:18px}.portal-card .portal-table-wrap{margin:0 -18px -18px}.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-stat{padding:14px 15px}.portal-stat strong,.portal-stats.is-compact .portal-stat strong{font-size:22px}.portal-toolbar{flex-direction:column;align-items:stretch}.portal-search{min-width:0}.portal-form-grid,.portal-form-grid.is-3{grid-template-columns:1fr}.portal-form-grid.is-money{grid-template-columns:minmax(0,1fr) 96px}.portal-form-actions{flex-direction:column-reverse}.portal-form-actions .portal-button{width:100%}.portal-tabbar{z-index:40;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--p-line);background:#fffdf9f5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #2e1c1114}.portal-tabbar a{color:#8a7868;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:6px 2px;font-size:10px;font-weight:700;display:flex}.portal-tabbar a span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.portal-tabbar a.active{color:var(--deep);background:var(--p-soft)}.portal-tabbar a.active svg{color:#9b6128}.portal-table thead{display:none}.portal-table,.portal-table tbody,.portal-table tr,.portal-table td{width:100%;display:block}.portal-table tr{border-bottom:1px solid #efe6da;padding:12px 16px;position:relative}.portal-table tbody tr:hover{background:0 0}.portal-table td{text-align:right;border:0;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:13px;display:flex}.portal-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:#a08e7d;text-align:left;flex:none;font-size:11px;font-weight:700}.portal-table td:first-child{padding-right:40px}.portal-table td:first-child:before{display:none}.portal-table td:first-child{text-align:left;justify-content:flex-start;font-size:15px}.portal-table td.portal-row-action{width:auto;padding:0;position:absolute;top:10px;right:10px}.portal-table td.portal-row-action:before{display:none}.portal-table.is-dense td{padding:3px 0}.portal-table tr.is-overdue td:first-child{box-shadow:none}.portal-table tr.is-overdue{box-shadow:inset 3px 0 var(--p-danger)}.portal-sub{margin:0 0 0 6px;display:inline}.portal-pay-grid{min-width:760px}.portal-pay-grid tbody th,.portal-pay-grid tfoot th,.portal-pay-grid thead th:first-child{min-width:118px;max-width:118px;padding:8px 10px}.portal-pay-grid tbody th strong{white-space:normal;font-size:12px;line-height:1.25}.portal-pay-cell{min-width:48px;height:36px}.portal-progress-summary{flex-direction:column;align-items:stretch}.portal-progress-summary .portal-ring{align-self:center}.portal-plan-head strong{font-size:18px}.portal-timeline>li{grid-template-columns:1fr;gap:6px;padding-left:18px}.portal-timeline>li:before{top:6px;left:4px}.portal-timeline-body{padding-left:0}.portal-timeline-body:before{top:-17px;left:-19px}.portal-list li{flex-wrap:wrap;gap:6px 12px}.portal-list li>div{flex-basis:calc(100% - 40px)}.portal-list.is-payments li>div{flex-basis:100%}.portal-list.is-payments .portal-button{margin-left:auto}.portal-profile-hero{gap:14px}.portal-avatar.is-large{width:58px;height:58px;font-size:20px}.buyer-hero{border-radius:18px;flex-direction:column-reverse;align-items:flex-start;gap:16px;padding:24px 20px}.buyer-hero .portal-ring{width:104px!important;height:104px!important}.buyer-hero .portal-ring strong{font-size:26px}.buyer-next strong{font-size:24px}.buyer-unit{border-radius:18px;grid-template-columns:1fr}.buyer-unit-image{min-height:230px}.buyer-unit-body{padding:20px}.buyer-unit-body h2{font-size:32px}.buyer-months{grid-template-columns:1fr}.buyer-schedule{padding:18px}.portal-details div{flex-direction:column;gap:2px}.portal-details dd{text-align:left}.portal-login{grid-template-rows:auto 1fr;grid-template-columns:1fr}.portal-login-photo{min-height:200px}.portal-login-photo>div{bottom:20px;left:20px;right:20px}.portal-login-photo strong{font-size:28px}.portal-login-card{align-self:start;padding:26px 20px 40px}.portal-login-card h1{font-size:32px}.portal-dialog{border-radius:18px;padding:20px}}@media (max-width:380px){.portal-stats{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.portal *{transition:none!important;animation:none!important}}
