:root{--ink:#172523;--muted:#687572;--green:#163a35;--mint:#d8ebe3;--cream:#f5f3ed;--line:#dfe4e1;--white:#fff;--red:#a33b32;--amber:#9a6816;--shadow:0 12px 35px rgba(22,58,53,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#f8faf9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.topbar{height:76px;background:var(--green);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));color:white}.brand{display:flex;align-items:center;gap:13px;color:white;text-decoration:none}.brand span{font-family:Georgia,serif;font-size:28px;font-weight:700;letter-spacing:-1px}.brand small{opacity:.72;border-left:1px solid #ffffff40;padding-left:13px}.topbar nav{display:flex;height:100%;gap:24px}.topbar nav a{display:flex;align-items:center;color:#dbe7e3;text-decoration:none;font-size:14px;border-bottom:3px solid transparent;padding:3px 4px 0}.topbar nav a.active{color:white;border-bottom-color:#a9d7c6}main{max-width:1200px;margin:0 auto;padding:48px 24px 72px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.page-heading h1{font-family:Georgia,serif;font-size:38px;line-height:1.1;margin:5px 0 7px;letter-spacing:-.7px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:800;color:#4e766d;margin:0}.muted{color:var(--muted);margin:0}.button,.primary,.small{border:1px solid #b9c6c2;border-radius:8px;padding:11px 16px;background:white;color:var(--ink);font:600 14px inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--green);border-color:var(--green);color:white}.small{padding:7px 10px;font-size:12px}.actions{display:flex;gap:9px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kpi{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.kpi .label{font-size:13px;color:var(--muted);margin-bottom:16px}.kpi .value{font:700 27px Georgia,serif}.kpi .hint{font-size:11px;color:var(--muted);margin-top:7px}.kpi.highlight{background:var(--green);color:white}.kpi .label,.kpi .hint{color:#d5e3df}.kpi.negative .value{color:#ffc6bd}.note{display:flex;gap:16px;background:var(--cream);border-radius:12px;margin-top:22px;padding:20px 22px}.note-mark{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:var(--green);font-weight:800}.note p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.card,.table-card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card{padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#53615e}input,select{width:100%;border:1px solid #cbd4d1;border-radius:7px;padding:11px 12px;background:white;color:var(--ink);font:14px inherit;outline:none}input:focus,select:focus{border-color:#548779;box-shadow:0 0 0 3px #d8ebe3}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{border:0;background:transparent;padding:12px 16px;color:var(--muted);font-weight:650;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--green);border-bottom-color:var(--green)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:14px 17px;border-bottom:1px solid #edf0ee;font-size:13px}th{background:#f7f9f8;color:#61706c;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.right{text-align:right}.table-footer{display:flex;justify-content:flex-end;padding:16px}.pill{display:inline-flex;border-radius:999px;padding:4px 8px;background:#e8f2ee;color:#315c52;font-size:11px;font-weight:700}.pill.expense{background:#f6e9e6;color:#8a3d35}.row-actions button{border:0;background:none;color:var(--red);cursor:pointer}.empty{text-align:center;color:var(--muted);padding:32px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-head h2{font:700 21px Georgia,serif;margin:0}.list-item{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:13px 0}.list-item small{display:block;color:var(--muted);margin-top:3px}.list-item button{border:0;background:none;color:var(--red);cursor:pointer}dialog{border:0;border-radius:14px;padding:0;width:min(620px,calc(100vw - 32px));box-shadow:0 30px 90px #12231f55}dialog::backdrop{background:#132621a8;backdrop-filter:blur(2px)}.dialog-form{padding:25px;display:flex;flex-direction:column;gap:20px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{font:700 26px Georgia,serif;margin:4px 0}.icon{border:0;background:#eff3f1;border-radius:50%;width:32px;height:32px;font-size:21px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}.dialog-form>label{margin-top:3px}#toast{position:fixed;right:24px;bottom:24px;background:#173a35;color:white;padding:13px 17px;border-radius:8px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}.banner{padding:13px 16px;border:1px solid #ecd6aa;background:#fff8e8;color:#715218;border-radius:8px;margin-bottom:15px;font-size:13px}@media(max-width:800px){.topbar{padding:0 16px}.brand small{display:none}.topbar nav{gap:8px}.topbar nav a{font-size:12px}.page-heading{align-items:flex-start;flex-direction:column}.kpis{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}main{padding:32px 16px}.table-card{overflow-x:auto}table{min-width:720px}}@media(max-width:520px){.kpis{grid-template-columns:1fr}.topbar nav a{padding-inline:2px}.actions{width:100%}.actions>*{flex:1}.page-heading h1{font-size:32px}}
.tenant-checks{margin:0;border:1px solid var(--line);border-radius:8px;padding:12px}.tenant-checks legend{padding:0 5px;color:#53615e;font-size:12px;font-weight:700}.tenant-checks.is-disabled{background:#f3f5f4;color:#9aa4a1}.tenant-checks.is-disabled legend,.tenant-checks.is-disabled label{color:#9aa4a1}.tenant-checks.is-disabled input{opacity:.55}
.message-details{display:flex;flex-direction:column;gap:10px;margin-top:-8px}.message-detail{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#f7f9f8}.message-detail strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.message-detail span{font-size:14px;color:var(--ink)}
.delete-entries-button{align-self:center;border:1px solid #d7aaa5;border-radius:7px;padding:8px 11px;background:#fff7f6;color:var(--red);font:600 12px inherit;cursor:pointer}
#category-actions[hidden]{display:none}
#message-checkbox-label[hidden]{display:none}
#message-input:disabled{background:#eef1f0;color:#687572;cursor:not-allowed}
#property-form-actions>[hidden],#owner-form-actions>[hidden],#water-reading-actions>[hidden]{display:none}
#tenant-form .tenant-view-unavailable{color:#7d8986;cursor:not-allowed}
#tenant-form input[name="viewPassword"]:disabled{background:#eef1f0;color:#687572;cursor:not-allowed}
#property-form input:disabled,#owner-form input:disabled{background:#eef1f0;color:#687572;cursor:not-allowed}
#property-form.is-readonly label:has([data-property-editable]),#owner-form.is-readonly label:has([data-owner-editable]){color:#7d8986}
.owner-building-stack{display:grid;gap:18px}
#consumption-form input[data-water-editable]:disabled{background:#eef1f0;color:#687572;cursor:not-allowed}
#consumption-form.is-readonly .consumption-meter-head strong:nth-child(2),#consumption-form.is-readonly .consumption-meter-head strong:nth-child(3){color:#7d8986}
.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e6f0ec,#f8faf9 52%,#d8ebe3)}.auth-gate[hidden]{display:none}body:not(.is-authenticated)>.topbar,body:not(.is-authenticated)>main,body:not(.is-authenticated)>dialog,body:not(.is-authenticated)>#toast{display:none}.auth-card{width:min(440px,100%);padding:38px;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(22,58,53,.14)}.auth-brand{display:flex;flex-direction:column;gap:3px;margin-bottom:42px;color:var(--green);text-decoration:none}.auth-brand span{font:700 32px Georgia,serif;letter-spacing:-1px}.auth-brand small{color:var(--muted)}.auth-card h1{font:700 32px Georgia,serif;margin:7px 0 10px}.auth-form{display:flex;flex-direction:column;gap:18px;margin-top:26px}.auth-form small{font-weight:400;color:var(--muted)}.auth-form .primary{width:100%;margin-top:6px}.auth-error{margin:0;color:var(--red);font-size:13px}.logout-button{border:1px solid #ffffff55;border-radius:7px;padding:8px 11px;background:transparent;color:#fff;font:600 12px inherit;cursor:pointer}@media(max-width:520px){.auth-card{padding:28px 24px}.auth-card h1{font-size:29px}.logout-button{padding:7px 8px}.topbar{gap:10px}.topbar nav{flex:1;justify-content:space-between}}
/* Preserve the muted labels on ordinary KPI cards after the action layout override. */
.kpi:not(.highlight) .label,.kpi:not(.highlight) .hint{color:var(--muted)}
.account-session{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-bottom:10px}.billing-year-picker{display:flex;flex-direction:row;align-items:center;gap:8px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.billing-year-picker select{width:96px;padding:5px 28px 5px 10px;font-size:12px;font-weight:700;letter-spacing:0}.account-user{margin-left:auto;color:var(--muted);font-size:12px}.account-user strong{color:var(--ink);font-weight:700}.account-lock{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--green);font-size:13px;cursor:pointer}.account-lock:hover,.account-lock:focus-visible{border-color:#548779;box-shadow:0 0 0 3px #d8ebe3;outline:0}
.user-management{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.user-form{margin-top:18px}.invitation-result{margin-top:24px;padding:18px;border:1px solid #9dcfc8;border-radius:10px;background:#f1faf8}.invitation-result>p{margin:6px 0 16px}.invitation-result>label{display:block;margin-top:12px}.copy-field{display:flex;gap:8px;margin-top:6px}.copy-field input{min-width:0;flex:1}.user-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.user-list-row:last-child{border-bottom:0}.user-list-row small{display:block;color:var(--muted);margin-top:3px}.user-status{font-size:12px;font-weight:700;color:var(--green);white-space:nowrap}@media(max-width:760px){.user-management{grid-template-columns:1fr}.copy-field{align-items:stretch;flex-direction:column}}

.auth-password-field{display:flex;flex-direction:column;gap:7px}.auth-password-control{position:relative}.auth-password-control input{width:100%;padding-right:48px}.auth-password-toggle{position:absolute;right:0;top:0;width:44px;height:100%;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:0 8px 8px 0;background:transparent;color:var(--muted);cursor:pointer}.auth-password-toggle:hover{color:var(--green)}.auth-password-toggle:focus-visible{outline:2px solid var(--green);outline-offset:-3px}.auth-password-toggle .eye-slash{display:none}.auth-password-toggle[aria-pressed="true"] .eye-slash{display:block}

.scan-capture-actions{flex-wrap:wrap}.scan-capture-actions button{white-space:normal}@media(max-width:520px){.scan-capture-actions{flex-direction:column}.scan-capture-actions button{width:100%}}
