:root{--ink:#2b2b2b;--muted:#7a7a7a;--rule:#dadada;--accent:#3d5a6c;--panel:#f6f6f4;--canvas:#f8f7f4;--warning:#b00020;--white:#fff;--management:#f4f2ee;--management-deep:#eae7e0;--savings:#edf3eb;--savings-deep:#e0eadd;--waste:#f5f0e6;--waste-deep:#ece4d5;--water:#e8f1f8;--water-deep:#d7e7f2;--gas:#fbeee5;--gas-deep:#f5decf;--electricity:#fbf6e0;--electricity-deep:#f5ecc6;--bank:#f4f2ee;--bank-deep:#eae7e0;--radius:14px;--shadow:0 1px 2px #2b2b2b0a, 0 4px 16px #2b2b2b0a;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--canvas);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--white);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;padding:18px 32px;display:flex}.brand{color:var(--ink);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:10px;font-size:1.02rem;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand svg{width:26px;height:26px}.who{color:var(--muted);align-items:center;gap:12px;font-size:.88rem;display:flex}.org-link{text-overflow:ellipsis;white-space:nowrap;max-width:16em;overflow:hidden}.avatar{background:var(--accent);width:34px;height:34px;color:var(--white);border-radius:50%;place-items:center;font-size:.9rem;font-weight:600;display:grid}.page{max-width:920px;margin:0 auto;padding:48px 32px 80px}.footer{text-align:center;color:var(--muted);padding:0 0 40px;font-size:.8rem}h1{letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;font-size:2.2rem;font-weight:300}h2{margin:0 0 4px;font-size:1.1rem;font-weight:500}.lead{color:var(--muted);margin:0 0 36px;font-size:1.05rem}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.muted{color:var(--muted)}.error{color:var(--warning)}.back{color:var(--muted);margin-bottom:20px;font-size:.9rem;display:inline-block}.section{margin:48px 0 16px}select{font:inherit;border:1px solid var(--rule);background:var(--white);color:var(--ink);border-radius:8px;max-width:100%;padding:8px 10px}button:disabled{opacity:.5;cursor:default}input{font:inherit;border:1px solid var(--rule);background:var(--white);color:var(--ink);box-sizing:border-box;border-radius:8px;max-width:100%;padding:9px 12px}.form label{margin-bottom:16px;display:block}.form label input{width:100%;margin-top:6px;display:block}.bank-text{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-family:ui-monospace,Consolas,monospace;font-size:.82rem}.panel.note{margin-top:4px;padding:10px 14px;font-size:.85rem}.help{vertical-align:middle;margin-left:6px;display:inline-block;position:relative}.help-button{border:1px solid var(--rule);background:var(--white);width:20px;height:20px;color:var(--muted);text-transform:none;letter-spacing:0;border-radius:50%;padding:0;font-size:.72rem;font-weight:600;line-height:18px}.help-button:hover,.help-button[aria-expanded=true]{border-color:var(--accent);color:var(--accent);filter:none}.help-text{z-index:10;background:var(--white);border:1px solid var(--rule);width:max-content;max-width:min(300px,80vw);box-shadow:var(--shadow);color:var(--ink);text-transform:none;letter-spacing:0;white-space:normal;border-radius:10px;padding:12px 14px;font-size:.88rem;font-weight:400;line-height:1.45;position:absolute;top:26px;left:0}.lang-switch{align-items:center;gap:2px;display:inline-flex}.lang-switch button{color:var(--muted);letter-spacing:.05em;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:.78rem}.lang-switch button.active{color:var(--accent);font-weight:600}.lang-switch button:hover{color:var(--ink);filter:none}.lang-switch .help-text{left:auto;right:0}.wrap{overflow-wrap:anywhere}.soon{color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:2px 10px;font-size:.75rem}button,.button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--white);cursor:pointer;border-radius:999px;padding:10px 22px}button:hover,.button:hover{filter:brightness(1.08);text-decoration:none}button.quiet,.button.quiet{color:var(--accent);border-color:var(--rule);background:0 0;padding:6px 14px}button.link{color:var(--accent);background:0 0;border:none;padding:0}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.card{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;padding:24px 26px;display:block}a.card:hover{border-color:var(--accent);text-decoration:none}.card .title{margin:6px 0 2px;font-size:1.35rem;font-weight:400}.card .figure{color:var(--accent);margin-top:22px;font-size:1.9rem;font-weight:300}.card .figure.ok{color:var(--ink);font-size:1.15rem;font-weight:400}.dot{vertical-align:1px;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.summary{background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin:28px 0 32px;display:grid;overflow:hidden}.summary>div{background:var(--white);padding:20px 24px}.summary .value{margin-top:4px;font-size:1.55rem;font-weight:300}.summary .value.accent{color:var(--accent)}.tabs{background:var(--white);border:1px solid var(--rule);border-radius:999px;flex-wrap:wrap;gap:4px;margin-bottom:28px;padding:4px;display:inline-flex}.tabs a{color:var(--muted);border-radius:999px;padding:7px 18px}.tabs a:hover{color:var(--ink);text-decoration:none}.tabs a.active{background:var(--accent);color:var(--white)}.list{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}.row{border-bottom:1px solid var(--rule);color:inherit;align-items:center;gap:16px;padding:18px 24px;display:flex}.row:last-child{border-bottom:none}a.row:hover{background:var(--canvas);text-decoration:none}.row .grow{flex:1;min-width:0}.row .amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.05rem}.row .sub{color:var(--muted);font-size:.85rem}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.93rem}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--ink);padding:8px 12px;font-size:.7rem;font-weight:500}td{vertical-align:top;padding:9px 12px}td.num,th.num{text-align:right;white-space:nowrap}.narrow-only{display:none}tr.sub td{font-weight:600}tr.gap td{padding:3px;background:var(--white)!important}tr.total td{border-top:1px solid var(--ink);padding-top:14px;font-size:1.05rem;font-weight:600}.due{background:var(--accent);color:var(--white);border-radius:10px;justify-content:space-between;align-items:baseline;margin-top:20px;padding:16px 22px;font-size:1.2rem;font-weight:600;display:flex}.panel{background:var(--panel);border-radius:10px;margin-top:20px;padding:18px 22px}tr.group-management td{background:var(--management)}tr.group-management.sub td{background:var(--management-deep)}tr.group-savings td{background:var(--savings)}tr.group-savings.sub td{background:var(--savings-deep)}tr.group-waste td{background:var(--waste)}tr.group-waste.sub td{background:var(--waste-deep)}tr.group-water td{background:var(--water)}tr.group-water.sub td{background:var(--water-deep)}tr.group-gas td{background:var(--gas)}tr.group-gas.sub td{background:var(--gas-deep)}tr.group-electricity td{background:var(--electricity)}tr.group-electricity.sub td{background:var(--electricity-deep)}.meter .now{margin-top:14px;font-size:1.9rem;font-weight:300}.meter .now small{color:var(--muted);margin-left:4px;font-size:.95rem}.chart{align-items:flex-end;gap:5px;height:64px;margin:18px 0 6px;display:flex}.chart .bar{background:var(--accent);opacity:.22;border-radius:3px 3px 0 0;flex:1;min-height:2px}.chart .bar.last{opacity:.85}.chart-labels{color:var(--muted);gap:5px;font-size:.68rem;display:flex}.chart-labels span{text-align:center;flex:1}details{margin-top:14px}summary{cursor:pointer;color:var(--muted);font-size:.88rem}details table{margin-top:10px;font-size:.86rem}details td{border-bottom:1px solid var(--rule)}.welcome{text-align:center;max-width:520px;margin:64px auto}.welcome h1{font-size:2.6rem}.welcome .lead{margin-bottom:32px}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px 16px;padding:14px 18px}.who{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;margin-left:auto}.who .avatar{display:none}.org-link{text-align:right;flex-basis:100%;max-width:100%}.page{padding:28px 16px 60px}h1{font-size:1.7rem}.welcome h1{font-size:2rem}.row{padding:16px 18px}.card{padding:20px}table{font-size:.86rem}td,th{padding:7px 8px}.hide-narrow{display:none}.narrow-only{color:var(--muted);font-size:.8rem;display:block}.invoice-card{padding:12px}.summary{grid-template-columns:1fr 1fr}.summary>div{padding:14px 16px}.summary>div:first-child:nth-last-child(odd){grid-column:1/-1}.summary .value{font-size:1.25rem}.tabs{display:flex}.tabs a{text-align:center;flex:auto;padding:10px}.row{gap:10px}.who .email{display:none}}.steps{flex-wrap:wrap;gap:6px;margin:12px 0 20px;padding:0;list-style:none;display:flex}.steps li{color:var(--muted);border:1px solid var(--rule);border-radius:999px;font-size:.8rem}.steps li.open{outline:2px solid var(--ink);outline-offset:1px}.steps button{color:inherit;font-size:inherit;background:0 0;border:none;padding:6px 12px}.steps li.done{color:var(--ink);background:var(--canvas)}.steps li.next{color:var(--white);background:var(--accent);border-color:var(--accent)}.reading-place{margin-bottom:12px;padding:16px 18px}.reading{border-top:1px solid var(--rule);align-items:center;gap:12px;padding:10px 0;display:flex}.reading .grow{flex:1;min-width:0}.reading .sub{color:var(--muted);font-size:.8rem}.reading input{text-align:right;width:8.5em;font-size:16px}.reading .value{text-align:right;min-width:5em}.reading-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.reading-place .amount{font-variant-numeric:tabular-nums;white-space:nowrap}.bill-fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 12px;margin:12px 0;display:grid}.bill-field{flex-direction:column;gap:4px;display:flex}.bill-field .sub{color:var(--muted);font-size:.8rem}.bill-field input{box-sizing:border-box;width:100%;font-size:16px}.reading-place .sub{color:var(--muted);font-size:.8rem}.calc-apartment{border-top:1px solid var(--rule);margin:0;padding:10px 0}.calc-apartment summary{color:var(--ink);justify-content:space-between;gap:12px;font-size:1rem;display:flex}.calc-apartment .reading-head{margin-top:6px}.calc-warnings{margin:8px 0 0;padding-left:18px;font-size:.88rem}.reading-foot{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:8px 12px;padding-top:12px;display:flex}.person{border-top:1px solid var(--rule);padding:12px 0}.contact{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:8px;display:flex}.contact-value{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}@media (width<=640px){.contact-value{flex-basis:100%}.contact .check{margin-right:auto}}.contact-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.contact-add input:not([type=checkbox]){flex:1;min-width:12em;font-size:16px}.check{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.check input{flex:none;width:auto;margin:0;padding:0}.reading-foot.flat{border-top:none;margin-bottom:12px;padding-top:0}.invoice-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}@media (width<=640px),(pointer:coarse){input,select,textarea{font-size:16px}button:not(.link):not(.help-button),.button,select,input:not([type=checkbox]){min-height:44px}.lang-switch button{min-width:40px}.steps button{min-height:40px}.help-button{position:relative}.help-button:after{content:"";position:absolute;inset:-12px}.check{min-height:44px}.check input{width:22px;height:22px}.back{margin-bottom:10px;padding:10px 0}summary{padding:8px 0}}@media (width<=640px){.help-text,.lang-switch .help-text{width:auto;max-width:none;position:fixed;top:auto;left:16px;right:16px}}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters input,.filters select{flex:140px;min-width:0}.wake-loading{text-align:center;padding-top:30vh}.wake{z-index:50;text-align:center;background:var(--canvas);padding:48px 16px;position:fixed;inset:0;overflow:auto}.wake .lead{margin-bottom:20px}.drop-game{max-width:420px;margin:0 auto}.drop-field{background:var(--white);touch-action:manipulation;border:1px solid var(--rule);border-radius:var(--radius);height:320px;position:relative;overflow:hidden}.drop-pipe{background:var(--accent);height:14px;position:absolute;top:0;left:0;right:0}button.drop{background:var(--accent);border:none;border-radius:50% 50% 50% 0;width:44px;height:44px;min-height:0;padding:0;animation:linear forwards drop-fall;position:absolute;top:-8px;transform:rotate(-45deg)}@keyframes drop-fall{to{top:276px}}
