.customer-login-link,.staff-login-link{margin-top:14px;color:var(--forest);font-size:9px;font-weight:800;text-align:center}
.portal-auth{min-height:100vh;margin:0;padding:4vw;display:grid;place-items:center;background:radial-gradient(circle at 80% 8%,#fff,transparent 32rem),var(--ivory)}
.portal-auth-card{width:min(1050px,100%);min-height:650px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 30px 80px rgba(35,40,35,.14)}
.portal-auth-visual{padding:45px;position:relative;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:var(--forest)}
.portal-auth-visual>*:not(.blueprint){position:relative}
.portal-auth-visual .login-brand{color:#fff}
.portal-auth-visual .brand-mark:before,.portal-auth-visual .brand-mark i{border-color:#fff}
.portal-auth-visual>div:last-child{max-width:480px}
.portal-auth-visual>div:last-child>small{color:#e99571;font-size:10px;font-weight:800}
.portal-auth-visual h1{margin:16px 0 17px;font-size:35px;line-height:1.7}
.portal-auth-visual p{margin:0;color:rgba(255,255,255,.62);font-size:11px;line-height:2}
.portal-auth-form{padding:65px 52px;display:flex;flex-direction:column;justify-content:center}
.portal-auth-form>span,.otp-card>span{color:var(--clay);font-size:9px;font-weight:850}
.portal-auth-form h2{margin:9px 0 0;font-size:27px}
.portal-auth-form>p{margin:8px 0 27px;color:var(--muted);font-size:10px}
.portal-auth-form form{display:grid;gap:15px}
.portal-auth-form label>span{display:block;margin-bottom:7px;font-size:9px;font-weight:750}
.portal-auth-form input{width:100%;height:49px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:#fff;outline:0;direction:ltr;text-align:left}
.portal-auth-form input:focus,.otp-input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(23,59,50,.08)}
.portal-auth-form form>button,.otp-card>form>button{min-height:51px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:8px;color:#fff;background:var(--forest);font-size:10px;font-weight:850}
.portal-auth-form>small{margin-top:22px;color:#969994;font-size:8px;text-align:center}
.staff-login-link{display:block}
.otp-card{width:min(500px,100%);padding:45px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 30px 80px rgba(35,40,35,.14);text-align:center}
.otp-card .portal-brand{justify-content:center;margin-bottom:32px;text-align:right}
.otp-icon{width:72px;height:72px;margin:0 auto 20px;display:grid;place-items:center;border-radius:20px;color:#fff;background:var(--forest);font-size:22px;letter-spacing:5px}
.otp-card h1{margin:8px 0 0;font-size:25px}
.otp-card>p{margin:10px auto 22px;max-width:370px;color:var(--muted);font-size:10px;line-height:2}
.otp-card>form{display:grid;gap:12px}
.otp-input{width:100%;height:62px;padding:0 15px;border:1px solid var(--line);border-radius:9px;background:#fff;outline:0;direction:ltr;text-align:center;font-size:24px;font-weight:850;letter-spacing:9px}
.otp-card>form>button{justify-content:center}
.otp-actions{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:20px}
.otp-actions form{margin:0}.otp-actions button,.otp-actions a{padding:0;border:0;color:var(--forest);background:transparent;font-size:9px;font-weight:800}
.portal-flash{margin:0 0 18px;padding:13px 16px;border-radius:9px;font-size:10px}.portal-flash.success{color:#315a3f;background:#dceadc}.portal-flash.error{color:#913f29;background:#f9dfd4}
.portal-body{min-height:100vh;background:var(--ivory)}
.portal-nav{height:82px;padding:0 max(24px,calc((100vw - 1220px)/2));display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:30px;border-bottom:1px solid var(--line);background:var(--paper)}
.portal-brand strong,.portal-brand small{display:block}.portal-brand strong{color:var(--forest);font-size:20px}.portal-brand small{margin-top:2px;color:var(--muted);font-size:8px}
.portal-nav nav{height:100%;display:flex;align-items:center;gap:8px}.portal-nav nav a{height:100%;padding:0 14px;display:flex;align-items:center;position:relative;color:var(--muted);font-size:10px;font-weight:750}.portal-nav nav a.active{color:var(--forest)}.portal-nav nav a.active:after{content:"";height:3px;position:absolute;inset:auto 14px 0;background:var(--clay);border-radius:4px 4px 0 0}
.portal-user{display:flex;align-items:center;gap:10px}.portal-user>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--forest);font-weight:850}.portal-user strong,.portal-user small{display:block}.portal-user strong{font-size:9px}.portal-user small{margin-top:3px;color:var(--muted);font-size:8px}.portal-user form{margin-right:8px}.portal-user button{height:34px;padding:0 11px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:transparent;font-size:8px}
.portal-main{width:min(1220px,calc(100% - 40px));margin:0 auto;padding:34px 0 60px}
.portal-welcome,.portal-contract-hero{min-height:190px;padding:32px 36px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;position:relative;overflow:hidden;border-radius:18px;color:#fff;background:var(--forest)}
.portal-welcome:after,.portal-contract-hero:after{content:"";width:360px;height:360px;position:absolute;top:-170px;left:-50px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025)}
.portal-welcome>div,.portal-welcome>a,.portal-contract-hero>div,.portal-contract-hero>a{position:relative;z-index:1}
.portal-welcome span{color:#e99571;font-size:9px;font-weight:850}.portal-welcome h1,.portal-contract-hero h1{margin:9px 0 7px;font-size:29px}.portal-welcome p,.portal-contract-hero p{margin:0;color:rgba(255,255,255,.62);font-size:10px;line-height:1.9}
.portal-welcome>a,.portal-contract-hero>a{min-height:43px;padding:0 15px;display:flex;align-items:center;border-radius:8px;color:var(--forest);background:var(--sage);font-size:9px;font-weight:850;white-space:nowrap}
.portal-kpis{margin-top:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.portal-kpis.three{grid-template-columns:repeat(3,1fr)}
.portal-kpis article{min-height:118px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.portal-kpis article.dark{color:#fff;border-color:var(--forest);background:var(--forest)}.portal-kpis article.attention{border-color:rgba(201,110,75,.5);background:#fff4ed}
.portal-kpis span,.portal-kpis strong,.portal-kpis small{display:block}.portal-kpis span{color:var(--muted);font-size:8px}.portal-kpis strong{margin-top:10px;color:var(--forest);font-size:25px}.portal-kpis small{margin-top:5px;color:var(--muted);font-size:8px}.portal-kpis .dark span,.portal-kpis .dark small{color:rgba(255,255,255,.6)}.portal-kpis .dark strong{color:#fff}.portal-kpis .attention strong{color:var(--clay)}
.portal-grid{margin-top:14px;display:grid;grid-template-columns:1fr 310px;gap:14px;align-items:start}
.portal-card{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--paper)}.portal-card>header{min-height:74px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.portal-card>header span,.next-payment>span{color:var(--clay);font-size:8px}.portal-card>header h2,.next-payment h2{margin:4px 0 0;font-size:16px}.portal-card>header a{color:var(--forest);font-size:8px;font-weight:850}
.portal-contract-list>a{min-height:72px;padding:11px 20px;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:11px;border-bottom:1px solid #eee7dc}.portal-contract-list>a:last-child{border-bottom:0}.portal-contract-list>a:hover{background:#f8f4ed}.portal-contract-list>a>i,.profile-strip article>i,.portal-buyers article>i{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--forest);font-style:normal;font-weight:850}.portal-contract-list b,.portal-contract-list small{display:block}.portal-contract-list b{font-size:10px}.portal-contract-list small{margin-top:4px;color:var(--muted);font-size:8px}.portal-contract-list em,.portal-contract-card em,.portal-contract-hero em,.portal-tr em{padding:6px 8px;border-radius:5px;font-size:8px;font-style:normal;font-weight:800}
.reserved{color:#6c561a;background:#f1e6b6}.muted{color:#6f736e;background:#e9e7e2}.danger{color:#913f29;background:#f9dfd4}
.next-payment{padding:25px}.next-payment>h2{font-size:19px}.payment-amount{margin:24px 0 18px;color:var(--forest);font-size:26px;font-weight:900}.payment-amount small{font-size:9px}.next-payment dl{margin:0}.next-payment dl>div{padding:10px 0;display:flex;justify-content:space-between;border-bottom:1px solid #eee7dc}.next-payment dt{color:var(--muted);font-size:8px}.next-payment dd{margin:0;font-size:9px;font-weight:800}.next-payment>a{min-height:40px;margin-top:18px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#fff;background:var(--forest);font-size:9px;font-weight:850}
.portal-empty{padding:34px 20px;text-align:center}.portal-empty strong{color:var(--forest);font-size:10px}.portal-empty p{margin:6px 0 0;color:var(--muted);font-size:8px;line-height:1.8}.portal-empty.wide{grid-column:1/-1;padding:70px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}
.profile-strip{margin-top:14px;padding:15px;display:flex;align-items:center;gap:10px;overflow-x:auto}.profile-strip>div{min-width:110px;padding:0 10px}.profile-strip>div span,.profile-strip>div strong{display:block}.profile-strip>div span{color:var(--muted);font-size:8px}.profile-strip>div strong{margin-top:5px;color:var(--forest);font-size:20px}.profile-strip article{min-width:250px;padding:10px;display:flex;align-items:center;gap:10px;border:1px solid #e8e0d5;border-radius:9px;background:#f8f4ed}.profile-strip article>i{width:34px;height:34px}.profile-strip b,.profile-strip small{display:block}.profile-strip b{font-size:9px}.profile-strip small{margin-top:3px;color:var(--muted);font-size:7px}
.portal-page-head{padding:15px 0 25px}.portal-page-head span{color:var(--clay);font-size:8px;font-weight:850}.portal-page-head h1{margin:6px 0;font-size:28px}.portal-page-head p{margin:0;color:var(--muted);font-size:10px}
.portal-contract-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.portal-contract-card{padding:21px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}.portal-contract-card header{display:flex;align-items:center;justify-content:space-between}.portal-contract-card header>span{color:var(--clay);font-size:8px;font-weight:850}.portal-contract-card h2{margin:23px 0 5px;font-size:18px}.portal-contract-card>p{margin:0;color:var(--muted);font-size:9px}.portal-contract-card dl{margin:20px 0}.portal-contract-card dl>div{padding:9px 0;display:flex;justify-content:space-between;border-bottom:1px solid #eee7dc}.portal-contract-card dt{color:var(--muted);font-size:8px}.portal-contract-card dd{margin:0;font-size:9px;font-weight:800}.portal-contract-card>a{min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#fff;background:var(--forest);font-size:9px;font-weight:850}
.portal-contract-hero{min-height:155px;align-items:center}.portal-contract-hero h1{font-size:25px}.portal-contract-hero em{display:inline-block;color:#315a3f;background:#dceadc}
.portal-detail-grid{margin-top:14px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.portal-detail-grid>main,.portal-detail-grid>aside{display:grid;gap:14px}
.property-list{margin:0;padding:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.property-list>div{padding:13px;border:1px solid #e8e0d5;border-radius:8px;background:#f8f4ed}.property-list dt{color:var(--muted);font-size:8px}.property-list dd{margin:7px 0 0;font-size:10px;font-weight:800}
.portal-table{overflow-x:auto}.portal-tr{min-width:720px;min-height:62px;padding:8px 17px;display:grid;grid-template-columns:50px 1.2fr .8fr 1fr 1fr;align-items:center;gap:9px;border-bottom:1px solid #eee7dc;font-size:9px}.portal-tr:last-child{border-bottom:0}.portal-th{min-height:38px;color:var(--muted);background:#f2ede4;font-size:8px}.portal-tr>span:last-child small{display:block;margin-top:4px;color:var(--muted);font-size:7px}
.portal-buyers{padding:10px 17px}.portal-buyers article{min-height:58px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #eee7dc}.portal-buyers article:last-child{border-bottom:0}.portal-buyers article>i{width:34px;height:34px}.portal-buyers b,.portal-buyers small{display:block}.portal-buyers b{font-size:9px}.portal-buyers small{margin-top:3px;color:var(--muted);font-size:7px}
.documents>a{min-height:64px;padding:10px 17px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #eee7dc}.documents>a>i{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:#fff;background:var(--forest);font-style:normal}.documents b,.documents small{display:block}.documents b{font-size:9px}.documents small{margin-top:4px;color:var(--muted);font-size:7px}
@media(max-width:1000px){.portal-nav{padding:0 20px;grid-template-columns:200px 1fr}.portal-user>div{display:none}.portal-grid,.portal-detail-grid{grid-template-columns:1fr}.portal-contract-grid{grid-template-columns:1fr 1fr}.portal-auth-card{grid-template-columns:1fr}.portal-auth-visual{min-height:340px}.portal-auth-form{padding:45px}}
@media(max-width:700px){.portal-auth{padding:0}.portal-auth-card{border:0;border-radius:0}.portal-auth-visual{min-height:300px;padding:28px}.portal-auth-visual h1{font-size:25px}.portal-auth-form{padding:38px 25px}.otp-card{min-height:100vh;padding:35px 22px;border:0;border-radius:0}.portal-nav{height:auto;padding:14px 15px;grid-template-columns:1fr auto;gap:12px}.portal-nav nav{height:38px;grid-column:1/-1;grid-row:2;order:3}.portal-nav nav a{height:38px}.portal-user form{margin:0}.portal-user>span{display:none}.portal-main{width:min(100% - 24px,1220px);padding-top:18px}.portal-welcome,.portal-contract-hero{padding:25px;display:block}.portal-welcome>a,.portal-contract-hero>a{margin-top:20px;width:max-content}.portal-kpis,.portal-kpis.three{grid-template-columns:1fr 1fr}.portal-contract-grid{grid-template-columns:1fr}.property-list{grid-template-columns:1fr 1fr}.portal-page-head h1{font-size:23px}}
@media(max-width:430px){.portal-kpis,.portal-kpis.three{grid-template-columns:1fr}.property-list{grid-template-columns:1fr}.portal-welcome h1,.portal-contract-hero h1{font-size:22px}.profile-strip{align-items:stretch;flex-direction:column}.profile-strip article{min-width:0;width:100%}}
