:root,body[data-theme="ivory"]{--bg:#f5f7fb;--card:#fff;--text:#1c273a;--muted:#718096;--line:#e7ecf4;--accent:#315fd4;--tint:#edf3ff;background:var(--bg)}.shell{max-width:840px;padding-top:calc(22px + var(--tg-content-safe-area-inset-top,0px));padding-bottom:calc(126px + env(safe-area-inset-bottom))}header{border:0;background:#ffffffd9;margin:0 -4px 28px;padding:13px 15px;border-radius:20px;box-shadow:0 3px 18px #1e355009}.brand{font-size:15px;letter-spacing:-.25px}.brand-symbol{border:0;background:#315fd4;color:white;box-shadow:0 4px 12px #315fd42a;border-radius:12px}.icon-button{border:0;background:#f3f6fb;box-shadow:none}.object-heading{padding:4px 3px}.object-heading h1{font-size:26px;font-weight:600;letter-spacing:-.8px;line-height:1.3;max-width:630px}.access-label{font-size:11px;background:#fff;padding:7px 10px;border-radius:9px;color:#627a99}.joint-payment{position:relative;overflow:hidden;background:linear-gradient(120deg,#234caf,#376bd8);border:0;box-shadow:0 13px 30px #284f9d1a;color:white;padding:26px;border-radius:25px;margin:25px 0 30px}.joint-payment:after{content:"";position:absolute;right:-75px;top:-95px;width:240px;height:240px;border:1px solid #ffffff15;border-radius:50%;box-shadow:0 0 0 28px #ffffff05,0 0 0 58px #ffffff04;pointer-events:none}.joint-payment .pay-heading,.joint-payment .pay-sum,.joint-payment .small,.joint-payment .row,.joint-payment button{position:relative;z-index:1}.joint-payment .pay-icon{color:#fff;background:#ffffff15;border:1px solid #ffffff20;box-shadow:none}.joint-payment .small,.joint-payment .pay-foot,.joint-payment .row>span{color:#dbe5fb}.joint-payment .pay-sum{font-size:39px;font-weight:550;letter-spacing:-1px;margin:26px 0 12px}.joint-payment h3{font-size:15px}.joint-payment .primary{background:#fff;border-color:#fff;color:#244eaa;font-weight:600;box-shadow:0 4px 10px #18367220;min-height:52px}.joint-payment .primary:hover{background:#eff4ff}.joint-payment .text-button{color:#e2ebff}.joint-payment .row{border-color:#ffffff24}.section-heading h2{font-size:19px;letter-spacing:-.3px}.pay-card,.meter-card,.card,.insight-card{border:1px solid #e8edf4;box-shadow:0 5px 18px #2c456306;border-radius:22px}.pay-card .pay-sum{font-size:29px;margin-top:22px}.pay-icon{border:0;box-shadow:inset 0 1px 0 #fff9;border-radius:14px;background:linear-gradient(145deg,#f2f6ff,#e5edfc)}.pay-card .primary{background:#edf3ff;border-color:#e4ecfc;color:#315cbb;font-weight:550;box-shadow:none}.pay-card .primary:hover{background:#e1ebff}.primary,.secondary{border-radius:14px;min-height:49px}.primary{background:#315fd4;border-color:#315fd4}.secondary{background:#f7f9fd;border-color:#e6ecf6}.payment-balance{padding-top:17px;margin-bottom:17px;gap:12px}.payment-balance>div:last-child strong{color:#244987}.document-link{box-shadow:0 4px 14px #20395504;border-radius:18px;transition:background .15s}.document-link:hover{background:#f9fbff}.document-link strong{font-size:14px;line-height:1.45}.document-link small{line-height:1.5}.meter-card .number{font-size:34px;font-weight:550}.period-control{background:white;box-shadow:0 5px 18px #24437b06;border-color:#e4ebf6;padding:16px;border-radius:19px}.period-current>strong{font-size:22px}.period-current>small{color:#6e83a5}.metric-tabs button{border-color:#e5ebf5;border-radius:11px;min-height:42px}.metric-tabs button.selected{background:#315fd4;border-color:#315fd4;color:white}.range-tabs button.selected{background:#edf3ff;color:#315fd4}.insight-amount{font-size:35px;font-weight:550}.expense-column.selected .bar-area i{background:#315fd4}.expense-column .bar-area i{background:#d0dcf4}.contract-summary{background:#fff;border-color:#e5ebf5;box-shadow:0 5px 18px #243b6306}.contract-summary h2{color:#244b9a}.bank-details{background:#f7f9fd;border-color:#e4ebf5}.reading-schedule{background:#f2f5fa;color:#60718a}.login-panel{padding-top:42px}.login-panel h1{font-size:40px;letter-spacing:-1.5px}.login-emblem{box-shadow:0 14px 38px #315fd412;background:linear-gradient(150deg,#fff,#e5edfc);border-color:#dae5f6}.login-features{gap:32px}.login-features span{font-size:12px}#nav{max-width:760px;border:1px solid #e0e7f2;box-shadow:0 10px 40px #17396918;background:#ffffffed;padding:9px;border-radius:22px;bottom:calc(15px + env(safe-area-inset-bottom))}#nav button{min-height:52px;font-size:10px;gap:7px;border-radius:13px}#nav button.active{background:#edf3ff;color:#315fd4}#nav svg{width:21px;height:21px}dialog{border:1px solid #e3eaf5;border-radius:24px;box-shadow:0 25px 90px #162c5540}dialog::backdrop{background:#19325555;backdrop-filter:blur(6px)}.footer-note{margin-top:30px}
@media(min-width:680px){.shell{padding-left:34px;padding-right:34px}.object-heading h1{font-size:29px}.joint-payment{padding:32px}.joint-payment .primary{max-width:360px}.joint-payment .pay-sum{font-size:45px}.payment-grid{gap:18px}.pay-card{padding:25px}.login-panel{padding-top:70px}.login-panel h1{font-size:44px}}
@media(max-width:370px){header{padding:10px}.brand{font-size:14px}.object-heading h1{font-size:22px}.joint-payment{padding:21px}.joint-payment .pay-sum{font-size:32px}.login-panel h1{font-size:34px}.login-features{gap:23px}.period-current>strong{font-size:19px}}

.document-row{display:flex;align-items:center;gap:9px;margin-top:14px}.document-row .document-link{margin:0;flex:1;min-width:0}.document-download{flex-shrink:0;width:43px;height:45px;background:#edf3ff;color:#315fd4}

.tenant-login-form{display:grid;gap:10px;text-align:left;margin-top:28px}.tenant-login-form label{font-size:13px;font-weight:600;color:#556174}.tenant-login-form input{box-sizing:border-box;width:100%;padding:16px 18px;border:1px solid #dce3ed;border-radius:16px;background:#fff;font:inherit;color:#202936}.tenant-login-form input:focus{outline:3px solid #dce8ff;border-color:#6a8dc5}.tenant-login-form button{margin-top:12px;width:100%}.login-divider{display:flex;align-items:center;gap:14px;margin:20px 0;color:#8190a4;font-size:13px}.login-divider:before,.login-divider:after{content:'';flex:1;height:1px;background:#e4eaf2}

.shared-bank{margin:18px 0 30px}.shared-bank>.secondary{width:100%}.shared-bank .pay-foot{text-align:center}.bank-details{white-space:pre-wrap;overflow-wrap:anywhere}.payment-balance>div{gap:16px}
