:root{
  --green:#139447;
  --green-dark:#0b7b39;
  --green-soft:#e9f8ef;
  --green-pale:#f3fbf6;
  --blue:#1688e5;
  --blue-soft:#eaf5ff;
  --red:#e5484d;
  --red-dark:#bf3038;
  --red-soft:#fff0f1;
  --orange:#e58a19;
  --orange-soft:#fff5e7;
  --violet:#6558d8;
  --violet-soft:#f0efff;
  --navy:#101a3a;
  --text:#172033;
  --muted:#768194;
  --muted-2:#9aa5b3;
  --bg:#f5f8fb;
  --card:#fff;
  --line:#e3e9ef;
  --line-strong:#d3dce5;
  --shadow:0 4px 16px rgba(24,42,66,.07);
  --shadow-soft:0 2px 8px rgba(24,42,66,.05);
  --radius:14px;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.muted{color:var(--muted)}
svg{display:block}.chevron{width:18px;height:18px;color:#7f8995;flex:0 0 auto}
.site-header{position:sticky;top:0;z-index:30;height:64px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}
.header-inner{height:100%;max-width:1180px;margin:auto;padding:0 16px;display:flex;align-items:center}.brand{display:flex;align-items:center;gap:9px;min-width:0}.brand-logo{width:36px;height:36px;flex:0 0 auto}.brand-copy{display:grid;line-height:1.1}.brand-copy strong{color:var(--navy);font-size:15px;font-weight:800;white-space:nowrap}.brand-copy small{margin-top:3px;color:var(--muted);font-size:10px}.header-actions{margin-left:auto}.header-icon{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:10px}.header-icon svg{width:23px;height:23px;color:var(--navy)}.notification-link:after{content:"";position:absolute;right:7px;top:7px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:var(--red)}
.app-shell{min-height:calc(100vh - 64px)}.desktop-sidebar{display:none}.main-content{min-width:0;padding:0 0 calc(72px + env(safe-area-inset-bottom))}.content-wrap{max-width:720px;margin:0 auto}.page-head{padding:24px 16px 10px}.page-head .eyebrow,.eyebrow{margin:0 0 5px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page-head h1{margin:0;color:var(--navy);font-size:27px;line-height:1.1;font-weight:800}.page-head p:last-child{margin:7px 0 0;color:var(--muted);font-size:14px}
/* Home */
.home-hero{position:relative;margin-bottom:56px;background:#fff}.home-hero-image{height:188px;background:linear-gradient(90deg,rgba(4,41,72,.4),rgba(4,41,72,.05)),url('/ordzhonikidze-sunset.webp') center 54%/cover no-repeat}.home-hero-copy{position:absolute;left:18px;top:64px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.25)}.home-hero-copy h1{margin:0 0 3px;font-size:25px;line-height:1.06;font-weight:800}.home-hero-copy p{margin:0;font-size:12px;font-weight:500}.home-plot-card{position:absolute;left:14px;right:14px;bottom:-43px;min-height:88px;padding:13px 14px;display:flex;align-items:center;gap:11px;border:1px solid #e3e8ed;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(20,39,61,.14)}.plot-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green);flex:0 0 auto}.plot-icon svg{width:25px;height:25px}.plot-main{display:grid;min-width:0;flex:1}.plot-main strong{color:var(--navy);font-size:16px;font-weight:800;line-height:1.25}.plot-main small{margin-top:2px;color:var(--muted);font-size:11px}.plot-badges{display:flex;gap:5px;margin-top:5px}.plot-badges em{padding:3px 7px;border-radius:6px;background:var(--green-soft);color:var(--green-dark);font-size:9px;font-style:normal;font-weight:700}
.attention-block,.home-shortcuts,.news-block{padding-left:14px;padding-right:14px}.section-head{display:flex;align-items:center;gap:8px;margin:0 0 9px}.section-head h2{margin:0;color:var(--navy);font-size:16px;font-weight:800}.section-head>a,.section-head>span:not(.count-badge){margin-left:auto;color:var(--green);font-size:12px}.count-badge{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:10px;background:var(--red);color:#fff;font-size:11px;font-weight:800}.attention-list{display:grid;gap:7px}.attention-row{min-height:65px;padding:10px 11px;display:flex;align-items:center;gap:10px;border-radius:12px}.attention-row>span:nth-child(2){display:grid;min-width:0;flex:1}.attention-row strong{font-size:13px;line-height:1.25;color:var(--navy)}.attention-row small{margin-top:2px;color:#667285;font-size:10px}.attention-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;font-size:23px;font-weight:500;flex:0 0 auto}.attention-icon svg{width:22px;height:22px}.attention-water{background:#fff0f1}.attention-water .attention-icon{background:#ffdfe1;color:var(--red)}.attention-money{background:#fff0f1}.attention-money .attention-icon{background:#ffdfe1;color:var(--red)}.attention-message{background:#fff7e8}.attention-message .attention-icon{background:#ffedc8;color:var(--orange)}.attention-ok{background:var(--green-soft)}.attention-ok .attention-icon{background:#cff1dc;color:var(--green)}
.home-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.shortcut{min-height:92px;padding:12px;display:flex;flex-direction:column;border-radius:12px}.shortcut-icon{width:32px;height:32px;display:grid;place-items:center;margin-bottom:8px;border-radius:9px}.shortcut-icon svg{width:20px;height:20px}.shortcut strong{font-size:13px;font-weight:800;color:var(--navy)}.shortcut small{margin-top:2px;color:#6f7a88;font-size:9px}.shortcut-payments{background:#eaf8ef}.shortcut-payments .shortcut-icon{background:#cef0da;color:var(--green)}.shortcut-water{background:#ebf6ff}.shortcut-water .shortcut-icon{background:#d2edff;color:var(--blue)}.shortcut-docs{background:#fff6e8}.shortcut-docs .shortcut-icon{background:#ffe6bc;color:var(--orange)}.shortcut-appeals{background:#eaf8f1}.shortcut-appeals .shortcut-icon{background:#d1efdc;color:var(--green)}
.news-block{margin-top:16px;padding-bottom:18px}.news-row{min-height:61px;display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.news-thumb{width:94px;height:48px;border-radius:8px;background:url('/ordzhonikidze-sunset.webp') center/cover no-repeat;flex:0 0 auto}.news-row>span:nth-child(2){display:grid;min-width:0;flex:1}.news-row strong{font-size:12px;color:var(--navy)}.news-row small{margin-top:3px;color:var(--muted);font-size:10px}.empty-inline,.empty-state{padding:20px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:12px}
/* Mobile bottom navigation */
.bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;height:calc(62px + env(safe-area-inset-bottom));padding:4px 7px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);background:rgba(255,255,255,.98);box-shadow:0 -2px 12px rgba(24,42,66,.04)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#7d8796;font-size:9px}.bottom-nav a svg{width:20px;height:20px}.bottom-nav a.active{color:var(--green);font-weight:800}
/* Sub-page headers */
.portal-subpage .site-header,.portal-chat .site-header{display:none}.portal-subpage .main-content,.portal-chat .main-content{padding-top:0}.subpage-header,.chat-header{height:58px;padding:0 12px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;background:#fff;border-bottom:1px solid var(--line)}.subpage-header h1{margin:0;text-align:left;color:var(--navy);font-size:18px;font-weight:800}.subpage-back,.subpage-bell,.subpage-plus,.subpage-static{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:var(--navy)}.subpage-back svg,.subpage-bell svg,.subpage-plus svg,.subpage-static svg{width:22px;height:22px}.subpage-bell,.subpage-plus,.subpage-static{justify-self:end}
/* Payments */
.payment-due{margin:12px 12px 10px;padding:15px 16px;border-radius:13px;background:var(--red-soft)}.payment-due>span{display:block;color:var(--red-dark);font-size:11px}.payment-due>strong{display:block;margin:2px 0;color:var(--red-dark);font-size:31px;line-height:1.08;font-weight:800}.payment-due p{margin:0 0 10px;color:#6e6070;font-size:11px}.payment-credit,.payment-ok{background:var(--green-soft)}.payment-credit>span,.payment-credit>strong,.payment-ok>span,.payment-ok>strong{color:var(--green-dark)}.primary-action,.new-appeal-button{width:100%;min-height:46px;padding:11px 14px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:9px;background:var(--green);color:#fff;font-weight:800;text-align:center}.primary-action svg,.new-appeal-button svg{width:20px;height:20px}.segmented{margin:0 12px 5px;padding:4px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:10px;background:#f2f5f8}.segmented button{height:34px;border:0;border-radius:8px;background:transparent;color:#657083;font-size:11px}.segmented button.active{background:#fff;color:var(--green-dark);font-weight:800;box-shadow:0 1px 4px rgba(20,40,60,.08);border-bottom:2px solid var(--green)}.ledger-list{margin:0 12px;background:#fff;border-radius:12px;overflow:hidden}.ledger-row{min-height:65px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.ledger-row:last-child{border-bottom:0}.ledger-row>span:first-child,.ledger-amount{display:grid}.ledger-row strong{color:var(--navy);font-size:12px}.ledger-row small{margin-top:3px;color:var(--muted);font-size:10px}.ledger-amount{text-align:right}.ledger-amount strong{font-size:14px}.ledger-amount em{justify-self:end;margin-top:3px;padding:2px 7px;border-radius:7px;font-size:9px;font-style:normal;font-weight:700}.ledger-amount em.paid{background:var(--green-soft);color:var(--green-dark)}.ledger-amount em.due{background:var(--red-soft);color:var(--red-dark)}.minor-title{margin:18px 14px 8px;color:var(--navy);font-size:14px;font-weight:800}.download-row{margin:10px 12px 0;min-height:50px;padding:10px 13px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px}.download-row svg{width:24px;height:24px;color:var(--navy)}.download-row span{font-size:12px;font-weight:700}.help-callout{margin:10px 12px 18px;padding:12px;display:flex;gap:10px;background:var(--blue-soft);border-radius:11px}.callout-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-size:18px;font-weight:800;flex:0 0 auto}.help-callout strong{display:block;font-size:12px;color:var(--navy)}.help-callout p{margin:2px 0 9px;color:#657385;font-size:10px}.secondary-action,.outline-action{min-height:38px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--navy);font-size:11px;font-weight:700}.outline-action{margin:14px;min-height:46px;border-color:#aab8c3}.outline-action svg{width:18px;height:18px}
/* Water */
.water-summary{margin:12px;padding:14px;border:1px solid #dfeaf4;border-radius:13px;background:#f2f8fd}.water-summary-line{display:flex;align-items:center;gap:10px}.water-drop{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#d9eeff;color:var(--blue);flex:0 0 auto}.water-drop svg{width:24px;height:24px}.water-drop.big{width:54px;height:54px}.water-summary-line>div{display:grid;min-width:0;flex:1}.water-summary-line span{color:#647386;font-size:10px}.water-summary-line strong{color:var(--navy);font-size:23px;line-height:1.1}.water-summary-line small{margin-top:3px;color:var(--muted);font-size:10px}.water-summary-line em{padding:3px 7px;border-radius:7px;background:var(--green-soft);color:var(--green);font-size:9px;font-style:normal;font-weight:800}.water-consumption{display:flex;align-items:end;justify-content:space-between;margin:13px 0 10px;padding-top:11px;border-top:1px solid #d8e5ef}.water-consumption span{color:#647386;font-size:10px}.water-consumption strong{font-size:20px;color:var(--navy)}.reading-details{margin-top:12px}.reading-details>summary{list-style:none;cursor:pointer}.reading-details>summary::-webkit-details-marker{display:none}.reading-form{margin-top:10px;padding:12px;border-radius:10px;background:#fff}.reading-form label,.reference-form label{display:grid;gap:5px;margin-bottom:10px;color:var(--navy);font-size:11px;font-weight:700}.reading-form input,.reference-form input,.reference-form select,.reference-form textarea,.login-form input,.chat-compose input,.chat-compose textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--text);outline:none}.reading-form input:focus,.reference-form input:focus,.reference-form textarea:focus,.login-form input:focus,.chat-compose textarea:focus{border-color:#7aa98e;box-shadow:0 0 0 3px rgba(19,148,71,.09)}.reading-form button,.reference-form button,.login-form button{width:100%;min-height:45px;border:0;border-radius:9px;background:var(--green);color:#fff;font-weight:800}.section-head.compact{margin:15px 12px 7px}.section-head.compact h2{font-size:14px}.reading-list{margin:0 12px;border-radius:12px;background:#fff;overflow:hidden}.reading-row{min-height:58px;padding:9px 11px;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;border-bottom:1px solid var(--line)}.reading-row:last-child{border-bottom:0}.reading-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green)}.reading-icon svg{width:17px;height:17px}.reading-row>span:nth-child(2){display:grid}.reading-row>span:nth-child(2) strong{font-size:11px}.reading-row small{color:var(--green);font-size:9px}.reading-row>strong{font-size:12px}.info-row{margin:10px 12px;min-height:48px;padding:10px 12px;display:flex;align-items:center;gap:9px;border-radius:10px;background:var(--blue-soft)}.info-row>svg:first-child{width:22px;height:22px;color:var(--blue)}.info-row span{flex:1;color:#526479;font-size:11px}.water-empty{margin:14px 12px;padding:27px 18px;text-align:center;border:1px solid var(--line);border-radius:13px;background:#fff}.water-empty .water-drop{margin:0 auto 11px}.water-empty strong{display:block;color:var(--navy);font-size:16px}.water-empty p{color:var(--muted);font-size:12px}
/* Appeals */
.appeals-tabs{margin-top:9px}.tiny-count{margin-left:3px;padding:1px 5px;border-radius:8px;background:var(--red);color:#fff;font-size:8px}.appeal-list{margin:4px 12px;background:#fff;border-radius:12px;overflow:hidden}.appeal-row{position:relative;min-height:75px;padding:10px 36px 10px 49px;display:block;border-bottom:1px solid var(--line)}.appeal-row:last-child{border-bottom:0}.appeal-icon{position:absolute;left:10px;top:16px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--violet-soft);color:var(--violet)}.appeal-icon.blue{background:var(--blue-soft);color:var(--blue)}.appeal-icon.gray{background:#eef1f4;color:#667384}.appeal-icon svg{width:17px;height:17px}.appeal-main{display:grid}.appeal-main small{color:var(--muted);font-size:9px}.appeal-main strong{margin-top:3px;color:var(--navy);font-size:12px}.appeal-main em{justify-self:start;margin-top:4px;padding:2px 6px;border-radius:6px;background:var(--green-soft);color:var(--green-dark);font-size:8px;font-style:normal}.appeal-date{position:absolute;right:10px;top:10px;color:#9aa4b0;font-size:8px}.appeal-row>.chevron{position:absolute;right:10px;bottom:14px}.new-appeal-button{width:auto;margin:10px 12px;background:#fff;color:var(--navy);border:1px solid var(--line);font-size:12px}.info-callout{margin:10px 12px;padding:11px;display:flex;align-items:flex-start;gap:8px;border-radius:10px;background:var(--blue-soft);color:#5d6d80;font-size:10px}.info-callout svg{width:19px;height:19px;color:var(--blue);flex:0 0 auto}
/* Conversation */
.portal-chat{background:#fff}.portal-chat .main-content{padding-bottom:88px}.chat-header{grid-template-columns:42px 1fr;height:58px}.chat-header>div{display:grid}.chat-header strong{font-size:13px;color:var(--navy)}.chat-header span{justify-self:start;margin-top:2px;padding:2px 7px;border-radius:7px;background:var(--orange-soft);color:#956317;font-size:9px}.conversation{padding:14px 12px 80px;display:grid;gap:11px}.bubble{max-width:86%;padding:10px 11px;border-radius:11px;background:#eef4f9;color:var(--text);font-size:11px;box-shadow:none}.bubble.mine{justify-self:end;background:#dff5e6}.bubble.board{justify-self:start;background:#edf3f8}.bubble p{margin:5px 0 0}.bubble-author{display:flex;justify-content:space-between;gap:10px;color:var(--navy);font-size:9px;font-weight:800}.bubble-author time{color:#526275;font-weight:400}.attachment{margin-top:8px;padding:8px;display:flex;align-items:center;gap:8px;border-radius:8px;background:rgba(255,255,255,.7)}.attachment svg{width:18px;height:18px}.attachment span{display:grid;font-size:10px}.attachment small{color:var(--muted)}.chat-compose{position:fixed;z-index:45;left:0;right:0;bottom:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:7px;border-top:1px solid var(--line);background:#fff}.chat-compose p{margin:0;flex:1}.chat-compose label{display:none}.chat-compose textarea{min-height:40px;max-height:100px;resize:none}.chat-compose input[type=file]{max-width:90px}.chat-compose button{width:38px;height:38px;border:0;border-radius:50%;background:var(--navy);color:#fff}.resolved-bar{margin:14px;padding:12px;display:flex;align-items:center;gap:8px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);font-weight:800}.resolved-bar svg{width:20px;height:20px}
/* Documents */
.document-tabs{margin-top:9px}.document-list{margin:5px 12px;background:#fff;border-radius:12px;overflow:hidden}.document-row{position:relative;min-height:70px;padding:10px 74px 10px 48px;display:block;border-bottom:1px solid var(--line)}.document-row:last-child{border-bottom:0}.file-icon{position:absolute;left:10px;top:15px;width:30px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--red-soft);color:var(--red)}.file-icon.personal{background:var(--green-soft);color:var(--green)}.file-icon.news{background:var(--blue-soft);color:var(--blue)}.file-icon svg{width:19px;height:19px}.document-main{display:grid}.document-main strong{color:var(--navy);font-size:11px;line-height:1.3}.document-main small{margin-top:3px;color:var(--muted);font-size:9px}.document-main p{margin:5px 0;color:#687487;font-size:10px}.doc-badge{position:absolute;right:26px;top:17px;padding:2px 6px;border-radius:6px;font-size:8px}.doc-badge.common{background:var(--blue-soft);color:var(--blue)}.doc-badge.mine{background:var(--green-soft);color:var(--green-dark)}.document-row>.chevron{position:absolute;right:7px;top:26px}
/* More/profile/security/plots */
.more-list,.profile-list,.security-list,.plot-list{margin:4px 12px 14px;background:#fff;border-radius:12px;overflow:hidden}.more-list>a,.profile-list>a{min-height:65px;padding:10px 34px 10px 54px;position:relative;display:flex;align-items:center;border-bottom:1px solid var(--line)}.more-list>a:last-child,.profile-list>a:last-child{border-bottom:0}.more-icon,.profile-list-icon{position:absolute;left:11px;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef2f5;color:#637080}.more-icon.green{background:var(--green-soft);color:var(--green)}.more-icon.orange{background:var(--orange-soft);color:var(--orange)}.more-icon.yellow{background:#fff8da;color:#c88b09}.more-icon svg,.profile-list-icon svg{width:19px;height:19px}.more-list>a>span:nth-child(2),.profile-list>a>span:nth-child(2){display:grid}.more-list strong,.profile-list strong{font-size:12px;color:var(--navy)}.more-list small,.profile-list small{margin-top:3px;color:var(--muted);font-size:9px}.more-list .chevron,.profile-list .chevron{position:absolute;right:10px}.profile-card{margin:12px;padding:12px;display:flex;align-items:center;gap:10px;border-radius:12px;background:#fff;border:1px solid var(--line)}.profile-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#eef2f5;color:#6b7583}.profile-avatar svg{width:24px;height:24px}.profile-card>div:last-child{display:grid}.profile-card strong{color:var(--navy);font-size:13px}.profile-card small{margin-top:3px;color:var(--muted);font-size:9px}.report-data-link{display:block;margin:12px;text-align:center;color:var(--blue);font-size:10px}.security-list{background:transparent;display:grid;gap:9px}.security-list section{padding:13px;display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px}.security-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:var(--green-soft);color:var(--green);flex:0 0 auto}.security-icon.warning{background:var(--orange-soft);color:var(--orange)}.security-icon svg{width:20px;height:20px}.security-list strong{color:var(--navy);font-size:12px}.security-list p{margin:3px 0 8px;color:var(--muted);font-size:10px}.plot-list{background:transparent;display:grid;gap:9px}.plot-list-card{position:relative;min-height:94px;padding:13px 40px 13px 62px;display:flex;align-items:center;border:1px solid var(--line);border-radius:13px;background:#fff}.plot-thumb{position:absolute;left:12px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--green-soft);color:var(--green)}.plot-thumb svg{width:24px;height:24px}.plot-list-main{display:grid}.plot-list-main strong{color:var(--navy);font-size:13px}.plot-list-main small{margin-top:3px;color:var(--muted);font-size:9px}.plot-statuses{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.status-pill{padding:2px 6px;border-radius:6px;font-size:8px;font-style:normal}.status-pill.green{background:var(--green-soft);color:var(--green-dark)}.status-pill.red{background:var(--red-soft);color:var(--red-dark)}.status-pill.blue{background:var(--blue-soft);color:var(--blue)}.plot-list-card>.chevron{position:absolute;right:11px}
/* Forms */
.appeal-form-card{margin:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.reference-form p{margin:0 0 11px}.reference-form label{display:block;margin-bottom:5px}.reference-form textarea{min-height:105px;resize:vertical}.reference-form input[type=file]{padding:8px;border:1px dashed var(--line-strong);background:#fbfcfd}.reference-form select{appearance:none;background:#fff}
/* Login */
.portal-login{background:#fff}.portal-login .main-content{min-height:100vh;padding:0}.portal-login .content-wrap{max-width:none}.login-page{width:min(100%,400px);min-height:100vh;margin:0 auto;padding:44px 22px 28px;display:flex;flex-direction:column}.login-logo-row{display:flex;align-items:center;gap:10px}.login-logo-row img{width:46px;height:46px}.login-logo-row>div{display:grid}.login-logo-row strong{color:var(--navy);font-size:18px}.login-logo-row small{margin-top:2px;color:var(--muted);font-size:10px}.login-slogan{margin:18px 0 30px;color:#6d7888;font-size:12px}.login-panel h1{margin:0 0 20px;color:var(--navy);font-size:20px;font-weight:800}.login-form p{margin:0 0 10px}.login-form label{display:block;margin:0 0 5px;color:#657082;font-size:11px}.login-form input{min-height:47px}.login-form button{margin-top:6px}.login-divider{height:36px;display:flex;align-items:center;gap:8px;color:#9aa3ae;font-size:10px}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--line)}.invite-button{min-height:45px;padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--navy);font-size:11px;font-weight:700}.invite-button svg{width:18px;height:18px}.access-link,.login-help-link{display:block;margin-top:15px;text-align:center;color:var(--blue);font-size:10px}.login-help-link{margin-top:auto;padding-top:20px}
/* Invitations and password recovery share the login controls. */
.login-shell{width:min(100%,480px);margin:0 auto;padding:32px 16px;overflow-wrap:anywhere}
.login-shell .card{padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-soft)}
.login-shell .card .card{margin:16px 0;padding:14px;box-shadow:none}
.login-shell h1{margin:0 0 18px;color:var(--navy);font-size:26px;line-height:1.2}
.login-shell h2{font-size:20px;line-height:1.3}
.login-shell .login-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.login-shell .login-brand h1{margin:0}
.login-shell .brand-mark{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:12px;background:var(--green-soft);color:var(--green-dark);font-weight:800}
.login-shell form p{margin:0 0 16px}
.login-shell form label{display:block;margin-bottom:6px;font-weight:700}
.login-shell form input:not([type="hidden"]){width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--text)}
.login-shell button,.login-shell .button{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:10px 14px;border:1px solid transparent;border-radius:10px;background:var(--green);color:#fff;font-weight:700;text-align:center;cursor:pointer}
.login-shell .button.secondary{border-color:var(--line-strong);background:#fff;color:var(--navy)}
.login-shell .meta,.login-shell .helptext{display:block;margin-top:5px;color:var(--muted);font-size:14px;line-height:1.45}
.login-shell .status-good{border-color:#b7d8c4;background:var(--green-pale)}
.login-shell .badge{display:inline-flex;padding:4px 9px;border-radius:8px;background:var(--green-soft);color:var(--green-dark);font-size:14px}
.login-shell input:focus-visible,.login-shell button:focus-visible,.login-shell .button:focus-visible{outline:3px solid var(--green-dark);outline-offset:3px}
.login-shell .errorlist,.login-form .errorlist,.reference-form .errorlist,.reading-form .errorlist{margin:8px 0;padding:10px 12px;list-style:none;border-left:3px solid var(--red-dark);border-radius:6px;background:var(--red-soft);color:var(--red-dark);font-size:14px;line-height:1.5}
.login-shell form input[aria-invalid="true"],.login-form [aria-invalid="true"],.reference-form [aria-invalid="true"],.reading-form [aria-invalid="true"]{border-color:var(--red-dark)}
.login-form label,.reading-form label,.reference-form label{font-size:14px}
.login-slogan,.login-role-note,.access-link,.login-help-link{font-size:14px;line-height:1.5}
.access-link,.login-help-link{min-height:44px;padding:12px 0}
.invite-button{font-size:14px}
/* System states */
.system-state{margin:12px;padding:13px;display:flex;align-items:center;gap:10px;border-radius:11px}.system-state.success{background:var(--green-soft)}.state-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;flex:0 0 auto}.state-icon svg{width:23px;height:23px}.system-state strong{font-size:12px;color:var(--navy)}.system-state p{margin:2px 0 0;color:#627083;font-size:9px}.notification-list{margin:10px 12px;background:#fff;border-radius:12px;overflow:hidden}.notification-row{min-height:67px;padding:10px 34px 10px 52px;position:relative;display:flex;align-items:center;border-bottom:1px solid var(--line)}.notification-icon{position:absolute;left:10px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#eef2f5}.notification-icon svg{width:18px;height:18px}.notification-red .notification-icon{background:var(--red-soft);color:var(--red)}.notification-green .notification-icon{background:var(--green-soft);color:var(--green)}.notification-blue .notification-icon{background:var(--blue-soft);color:var(--blue)}.notification-row>span:nth-child(2){display:grid}.notification-row strong{font-size:11px;color:var(--navy)}.notification-row small{margin-top:2px;color:var(--muted);font-size:9px}.notification-row>.chevron{position:absolute;right:10px}
.document-tabs a{min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#657083;font-size:11px;text-decoration:none}
.document-tabs a.active{background:#fff;color:var(--green-dark);font-weight:800;box-shadow:0 1px 4px rgba(20,40,60,.08);border-bottom:2px solid var(--green)}
.document-tabs a:focus-visible{outline:2px solid var(--green-dark);outline-offset:1px}
.document-main{overflow-wrap:anywhere}
/* Desktop reference */
@media(min-width:900px){body{background:#f4f7f8}.site-header{display:none}.app-shell{max-width:1180px;margin:24px auto;min-height:760px;display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.desktop-sidebar{display:flex;flex-direction:column;padding:17px 12px;background:#eef5f1;border-right:1px solid #dce8e1}.desktop-brand{padding:4px 5px 17px;display:flex;align-items:center;gap:8px}.desktop-brand img{width:34px;height:34px}.desktop-brand span{display:grid}.desktop-brand strong{color:var(--navy);font-size:14px}.desktop-brand small{color:var(--muted);font-size:9px}.desktop-nav{display:grid;gap:2px}.desktop-nav a{min-height:39px;padding:8px 10px;display:flex;align-items:center;gap:9px;border-radius:8px;color:#516071;font-size:11px}.desktop-nav a svg{width:18px;height:18px}.desktop-nav a.active{background:#cfeeda;color:var(--green-dark);font-weight:800}.desktop-nav-sep{height:1px;margin:9px 8px;background:#d4dfd9}.desktop-logout{margin-top:auto}.desktop-logout button{width:100%;min-height:38px;padding:8px 10px;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#657181;font-size:11px}.desktop-logout button svg{width:18px;height:18px}.main-content{padding:0 0 32px}.content-wrap{max-width:none}.bottom-nav{display:none}.home-hero{margin-bottom:50px}.home-hero-image{height:220px}.home-hero-copy{top:120px;left:28px}.home-hero-copy h1{font-size:28px}.home-plot-card{left:26px;right:auto;width:340px}.attention-block,.home-shortcuts,.news-block{padding-left:26px;padding-right:26px}.home-shortcuts{grid-template-columns:repeat(4,1fr)}.news-block{max-width:720px}.portal-subpage .main-content,.portal-chat .main-content{padding-top:0}.portal-subpage .site-header,.portal-chat .site-header{display:none}.subpage-header,.chat-header{margin:0;height:64px}.payment-due,.water-summary,.appeal-list,.document-list,.notification-list,.appeal-form-card,.segmented,.help-callout,.info-callout,.new-appeal-button,.download-row,.reading-list,.info-row{margin-left:26px;margin-right:26px}.payment-due{max-width:520px}.ledger-list{margin-left:26px;margin-right:26px;max-width:720px}.minor-title,.section-head.compact{margin-left:26px;margin-right:26px}.more-list,.profile-list,.security-list,.plot-list,.profile-card{margin-left:26px;margin-right:26px;max-width:720px}.page-head{padding-left:26px}.login-page{width:390px;padding-top:70px}.portal-login .main-content{display:block}.portal-login .content-wrap{max-width:none}.chat-compose{position:sticky;left:auto;right:auto;bottom:0}.conversation{min-height:600px}}
@media(min-width:1200px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.home-hero-image{height:230px}.home-shortcuts{max-width:760px}}

/* Resident reading receipts and moderation states. */
.water-feedback{font-size:13px;line-height:1.5}.water-submission-help{font-size:12px;line-height:1.55;margin:10px 0 0}
.water-submissions .reading-row .submission-status{font-size:11px;font-weight:700}.water-submissions .submission-status-pending{color:#854d0e}.water-submissions .submission-status-rejected{color:#b42318}.water-submissions .submission-status-approved{color:var(--green-dark)}
.water-reading-form .errorlist{padding:10px 14px;margin:0 0 12px;list-style:none;border-radius:8px;background:var(--red-soft);color:var(--red-dark);font-size:13px}

/* Readable summaries and real financial section navigation. */
.shortcut small,.attention-row small,.news-row small,.plot-main small{font-size:12px;line-height:1.45}
.finance-section-nav{display:flex;gap:8px;margin:16px 12px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.finance-section-nav a{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border-radius:9px;background:var(--green-pale);color:var(--green-dark);font-size:14px;font-weight:700;text-decoration:none}
.finance-section-nav a:hover{background:var(--green-soft)}
.finance-section-nav a:focus-visible{outline:3px solid var(--green-dark);outline-offset:2px}
.finance-ledger-section{margin:20px 12px;scroll-margin-top:20px}
.finance-ledger-section h2{margin:0 0 10px;color:var(--navy);font-size:17px;line-height:1.4}
.finance-ledger-section .ledger-list{margin:0;max-width:none;border:1px solid var(--line)}
.finance-ledger-section .empty-state{border:0;border-radius:0;font-size:14px;line-height:1.5}
.finance-ledger-section .ledger-row>span:first-child{min-width:0;overflow-wrap:anywhere}
.finance-ledger-section .ledger-row strong{font-size:14px}
.finance-ledger-section .ledger-row small{font-size:12px;line-height:1.45}
.finance-ledger-section .ledger-amount{flex:0 0 auto;max-width:45%;overflow-wrap:anywhere}
.finance-ledger-section .ledger-amount strong{font-size:16px}
.finance-ledger-section .ledger-amount em{font-size:11px;line-height:1.4}
.portal-payments .payment-due>span,.portal-payments .payment-due p,.portal-payments .help-callout p{font-size:12px;line-height:1.45}
.portal-payments .help-callout p{color:#59666c}
.portal-payments .download-row span,.portal-payments .help-callout strong{font-size:14px;line-height:1.4}
.portal-payments .secondary-action{min-height:44px;font-size:13px}
.portal-feedback{font-size:14px;line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.portal-feedback-success{background:var(--green-soft);color:var(--green-dark)}
.portal-feedback-success svg{color:var(--green-dark)}
.portal-feedback-error{background:var(--red-soft);color:var(--red-dark)}
@media(min-width:900px){
  .attention-block,.home-shortcuts,.news-block{max-width:760px}
  .desktop-nav a,.desktop-logout button{min-height:44px;font-size:14px}
  .desktop-brand small{font-size:12px;line-height:1.4}
  .finance-section-nav,.finance-ledger-section{margin-left:26px;margin-right:26px;max-width:720px}
  .portal-payments .payment-due,.portal-payments .download-row,.portal-payments .help-callout{max-width:720px}
}

.shortcut-forum{background:#f0efff}.shortcut-forum .shortcut-icon{background:#dfdcff;color:#6255a5}.bottom-nav.forum-enabled{grid-template-columns:repeat(6,minmax(0,1fr))}
