@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.p.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.p.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.p.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.nSCcJG_className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.nSCcJG_variable{--font-plex:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root{--bg:#f2f0ea;--surface:#fbfaf6;--surface-alt:#f6f4ee;--border:#e2ded3;--border-strong:#d2cdbf;--control-border:#7a7466;--text:#1c1b17;--text-muted:#5a574d;--brand:#25603f;--brand-soft:#e4eee6;--danger:#b42318;--danger-soft:#fdeceb;--warning:#8a4b00;--warning-soft:#fff3dc;--success:#0a6b3d;--success-soft:#e2f3ea;--radius-xs:3px;--radius-sm:4px;--radius:6px;--radius-lg:10px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-20:20px;--sidebar-width:208px;--sidebar-bg:#f2f0ea;--sidebar-text:#4a473e;--sidebar-muted:#6b675b;--sidebar-line:#e2ded3;--sidebar-active:#e3dfd2;--sidebar-label:#6b675b;--surface-hover:#f1eee6;--line-soft:#e9e5db;--text-faint:#5f5c52;--warning-border:#c27d0e;--focus:#25603f;--on-brand:#fff;--badge-bg:#ebe7dc;--logo-bg:#25603f;--on-logo:#fff;--sidebar-text-strong:#1c1b17;--sidebar-line-strong:#cfc9ba;--sidebar-accent:#25603f;--on-sidebar-accent:#fff;--sidebar-warning:#8a4b00;--sidebar-overlay:#1c1b170d;--sidebar-overlay-soft:#1c1b170f;--sidebar-overlay-strong:#1c1b171a;--backdrop:#14202b73;--backdrop-strong:#0a101880;--shadow-card:none;--shadow-popover:0 6px 20px #14202b24;--shadow-popover-strong:0 6px 20px #14202b33;--shadow-bar:0 -4px 14px #14202b1a;--shadow-drawer:8px 0 28px #00000059;--shadow-dialog:0 20px 50px #14202b47;--chart-room:#25603f;--chart-electric:#b87a14;--chart-water:#4c8fd4;--chart-garbage:#6f7c8f;--chart-adjust:#b4568f;--swatch-teal:#2f7a52;--swatch-red:#c43a63;--swatch-purple:#8658c9;--swatch-navy:#2f6cb8;--fs:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--topbar-height:48px;--gutter:20px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-plex), "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;font-size:calc(14px * var(--fs));margin:0;padding:0;line-height:1.5}a{color:inherit;text-decoration:none}b,strong,th,h1,h2,h3,h4,h5,h6{font-weight:600}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-line);flex-direction:column;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__brand{border-bottom:1px solid var(--sidebar-line);align-items:center;gap:10px;margin-bottom:12px;padding:0 6px 16px;display:flex}.sidebar__logo{border-radius:var(--radius-sm);background:var(--logo-bg);width:30px;height:30px;color:var(--on-logo);flex:0 0 30px;justify-content:center;align-items:center;display:flex}.sidebar__title{font-size:calc(14px * var(--fs));color:var(--sidebar-text-strong);font-weight:600;line-height:1.25}.sidebar__subtitle{font-size:calc(14px * var(--fs));color:var(--sidebar-muted);line-height:1.25}.sidebar__section{font-size:calc(14px * var(--fs));color:var(--sidebar-label);padding:0 10px 6px;font-weight:500}.sidebar__nav{flex-direction:column;gap:2px;display:flex}.sidebar__link{border-radius:var(--radius-sm);min-height:40px;color:var(--sidebar-text);align-items:center;gap:10px;padding:4px 10px;font-weight:500;display:flex}.sidebar__link:hover{background:var(--sidebar-overlay);color:var(--sidebar-text-strong)}.sidebar__link--active,.sidebar__link--active:hover{background:var(--sidebar-active);color:var(--sidebar-text-strong);font-weight:500}.sidebar__icon{flex:0 0 16px}.sidebar__footer{border-top:1px solid var(--sidebar-line);font-size:calc(14px * var(--fs));color:var(--sidebar-muted);margin-top:auto;padding:12px 6px 0;line-height:1.5}.main{flex:1;min-width:0;padding:0 0 32px}.main>:not(.page-header){margin-inline:var(--gutter)}.page-header{z-index:20;min-height:var(--topbar-height);padding:0 var(--gutter);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;margin:0 0 14px;display:flex;position:sticky;top:0}.page-header__title{font-size:calc(18px * var(--fs));white-space:nowrap;margin:0;font-weight:600}.page-header__description{font-size:calc(14px * var(--fs));color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.sidebar__landlords{background:var(--sidebar-overlay-soft);border-radius:var(--radius);gap:2px;margin:0 0 14px;padding:2px;display:flex}.sidebar__landlord{border-radius:var(--radius-sm);height:28px;font-size:calc(14px * var(--fs));color:var(--sidebar-text);white-space:nowrap;flex:1;justify-content:center;align-items:center;font-weight:500;display:flex}.sidebar__landlord:hover{color:var(--sidebar-text-strong)}.sidebar__landlord--active,.sidebar__landlord--active:hover{background:var(--sidebar-active);color:var(--sidebar-text-strong);box-shadow:inset 0 0 0 1px var(--sidebar-line-strong);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.card__title{font-size:calc(14px * var(--fs));color:var(--text);margin:0 0 8px;font-weight:600}.card__header{padding:12px 14px 0}.card--flush{padding:0;overflow:hidden}.grid{gap:12px;display:grid}.grid--2{grid-template-columns:minmax(0,3fr) minmax(0,2fr);margin-bottom:12px}@media (max-width:1100px){.grid--2{grid-template-columns:minmax(0,1fr)}}.card+.card{margin-top:12px}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-muted,.placeholder{color:var(--text-muted)}.placeholder ul{margin:8px 0 0;padding-left:20px}.placeholder li{margin:4px 0}.table--plain th,.table--plain td{border-bottom:1px solid var(--border)}.table--plain tbody tr:hover{background:0 0}.row--sum td{border-top:2px solid var(--border);font-weight:600}.cell--wrap{white-space:normal}.badge{border-radius:var(--radius-xs);font-size:calc(14px * var(--fs));white-space:nowrap;padding:1px 8px;font-weight:600;display:inline-block}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--log-save,.badge--log-close,.badge--log-create,.badge--log-closing-date{background:var(--brand-soft);color:var(--brand)}.badge--log-reopen,.badge--log-rates{background:var(--warning-soft);color:var(--warning)}.badge--log-tenant,.badge--log-status,.badge--log-thresholds,.badge--log-backup,.badge--log-default{background:var(--badge-bg);color:var(--text-muted)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;white-space:nowrap;font-variant-numeric:tabular-nums;width:100%}.table th,.table td{border-bottom:1px solid var(--line-soft);text-align:left;padding:6px 10px}.table th{font-size:calc(14px * var(--fs));color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);font-weight:600;position:sticky;top:0}.table tbody tr:hover{background:var(--surface-hover)}.table .td--number,.td--number{text-align:right;font-variant-numeric:tabular-nums}.table__code{color:var(--text-muted);font-size:calc(14px * var(--fs))}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;display:flex}.toolbar__group{align-items:center;gap:8px;display:flex}.toolbar__spacer{flex:1}.toolbar__divider{background:var(--border);width:1px;height:22px}.toolbar__label{color:var(--text-muted);font-size:calc(14px * var(--fs))}.room-picker{position:relative}.room-picker__summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;min-width:150px;list-style:none;display:inline-flex}.room-picker__summary::-webkit-details-marker{display:none}.room-picker__panel{z-index:20;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);width:280px;box-shadow:var(--shadow-popover);padding:8px;position:absolute;top:calc(100% + 4px);left:0}.room-picker__actions{align-items:center;gap:6px;padding:4px 0;display:flex}.room-picker__list{border-top:1px solid var(--border);border-bottom:1px solid var(--border);max-height:260px;margin:4px 0;padding:0;list-style:none;overflow-y:auto}.room-picker__list li label{font-size:calc(14px * var(--fs));cursor:pointer;padding:4px 2px;display:block}.room-picker__list li label:hover{background:var(--surface-alt)}.btn{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);min-height:36px;color:var(--text);font:inherit;font-size:calc(14px * var(--fs));cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;padding:4px 14px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.btn--primary:hover:not(:disabled){filter:brightness(1.1);background:var(--brand)}.btn--small{min-height:30px;font-size:calc(14px * var(--fs));padding:2px 10px}.input{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);min-height:30px;color:var(--text);font:inherit;padding:4px 8px}.input:focus{outline:2px solid var(--brand);outline-offset:-1px}.input--cell{background:0 0;border-color:#0000;width:100%;min-width:0;min-height:24px;padding:2px 6px}.input--cell:hover:not(:disabled){border-color:var(--control-border)}.input--cell:disabled{color:var(--text-muted);background:0 0}.input--number{text-align:right;font-variant-numeric:tabular-nums}.input--note{min-width:0}.input--error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);font-weight:600}.input--warning{background:var(--warning-soft);border-color:var(--warning-border)}.form-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:8px;display:flex}.field{flex-direction:column;flex:160px;gap:4px;min-width:0;display:flex}.field--narrow{flex:0 0 100px}.field__label{font-size:calc(14px * var(--fs));color:var(--text-muted);font-weight:500}.field__hint{font-size:calc(14px * var(--fs));color:var(--text-muted);margin:4px 0 0}.row-actions,.inline-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-form .input{min-height:24px;font-size:calc(14px * var(--fs));max-width:150px;padding:2px 7px}.house-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (max-width:1100px){.house-grid{grid-template-columns:minmax(0,1fr)}}.house-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:14px 16px;text-decoration:none;display:block}.house-card:hover{border-color:var(--brand);box-shadow:var(--shadow-card)}.house-card__head{justify-content:space-between;align-items:baseline;display:flex}.house-card__name{font-size:calc(15px * var(--fs));margin:0;font-weight:600}.house-card__go{font-size:calc(14px * var(--fs));color:var(--brand)}.house-card__period{font-size:calc(14px * var(--fs));color:var(--text-muted);margin-top:2px}.house-card__total{font-size:calc(22px * var(--fs));font-variant-numeric:tabular-nums;margin-top:8px;font-weight:600}.house-card__hint{font-size:calc(14px * var(--fs));color:var(--text-muted)}.house-card__stats{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0;padding-top:10px;display:grid}.house-card__stats dt{font-size:calc(14px * var(--fs));color:var(--text-muted)}.house-card__stats dd{font-size:calc(14px * var(--fs));font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:600}.stat-row{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex:150px;min-width:0;padding:10px 14px}.stat__label{font-size:calc(14px * var(--fs));color:var(--text-muted);font-weight:500}.stat__value{font-size:calc(24px * var(--fs));letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:3px;font-weight:500}.notice{border-radius:var(--radius);margin-bottom:10px;padding:8px 12px;font-weight:500}.notice--ok{background:var(--success-soft);color:var(--success)}.notice--error{background:var(--danger-soft);color:var(--danger)}.period-picker{align-items:center;gap:6px;margin-bottom:10px;display:flex}.toolbar .period-picker{margin-bottom:0}.period-picker__select{cursor:pointer;width:auto;min-width:96px}.period-picker__nav{gap:6px;min-height:44px;padding:4px 14px}.period-picker .input{min-height:44px}.btn--icon{width:30px;font-size:calc(16px * var(--fs));padding:0;line-height:1}.table-wrap--tall{max-height:calc(100vh - 280px);overflow:auto}.table--grid{table-layout:fixed;width:max-content;min-width:100%}.table--grid td{text-overflow:clip;overflow:hidden}.w-stt{width:calc(44px * var(--fs))}.w-room{width:calc(200px * var(--fs))}.w-prevDate{width:calc(118px * var(--fs))}.w-currDate{width:calc(136px * var(--fs))}.w-prevElectric,.w-prevWater{width:calc(84px * var(--fs))}.w-currElectric,.w-currWater{width:calc(98px * var(--fs))}.w-electricUsage,.w-waterUsage{width:calc(112px * var(--fs))}.w-adjustment{width:calc(128px * var(--fs))}.w-meterReset{width:calc(96px * var(--fs))}.w-note,.w-adjustmentNote{width:calc(210px * var(--fs))}.w-electricityAmount{width:calc(136px * var(--fs))}.w-waterAmount{width:calc(124px * var(--fs))}.w-garbageAmount{width:calc(112px * var(--fs))}.w-roomAmount{width:calc(140px * var(--fs))}.w-total{width:calc(136px * var(--fs))}.table--grid td,.table--grid th{border-right:1px solid var(--line-soft);white-space:nowrap;vertical-align:middle;padding:3px 8px}.table--grid .grp-start{border-left:2px solid var(--border-strong)}.table--grid th{z-index:2;white-space:normal;background:var(--bg);padding:4px 8px;line-height:1.25;position:sticky}.table--grid .grid-groups th{height:calc(34px * var(--fs));text-align:center;background:var(--surface-alt);border-bottom:1px solid var(--border-strong);padding-block:0;font-weight:600;top:0}.table--grid .grid-groups .col-stt-room{text-align:left;vertical-align:bottom;z-index:4;padding-bottom:6px;left:0}.table--grid .grid-cols th{top:calc(34px * var(--fs));vertical-align:bottom;border-bottom:2px solid var(--border-strong)}.table--grid .col-stt,.table--grid .col-room{background:var(--surface);z-index:1;position:sticky}.table--grid .col-stt{text-align:center;padding-inline:4px;left:0}.table--grid .col-room{left:calc(44px * var(--fs));white-space:normal;box-shadow:2px 0 0 var(--border);font-weight:500}.table--grid .col-total{z-index:1;background:var(--surface);box-shadow:-2px 0 0 var(--border);position:sticky;right:0}.table--grid thead .col-total{z-index:3;background:var(--bg)}.table--grid tbody tr:hover .col-room,.table--grid tbody tr:hover .col-stt,.table--grid tbody tr:hover .col-total{background:var(--surface-hover)}.table--grid .td--total{font-weight:600}.table--grid tfoot td{z-index:2;background:var(--bg);border-top:2px solid var(--border-strong);font-weight:600;position:sticky;bottom:0}.table--grid tfoot .col-stt-room{z-index:4;left:0}.table--grid tfoot .col-total{z-index:4;background:var(--bg)}.row-reasons{font-size:calc(14px * var(--fs));margin:2px 0 0;padding:0;font-weight:500;line-height:1.3;list-style:none}.row-reason--error{color:var(--danger);font-weight:600}.row-reason--warning{color:var(--warning)}.grid-empty{text-align:center;color:var(--text-muted);padding:18px}.row--error>td{background:color-mix(in srgb, var(--danger-soft) 60%, transparent)}.row--warning>td{background:color-mix(in srgb, var(--warning-soft) 55%, transparent)}.row--vacant>td{color:var(--text-muted);background:var(--surface-alt);font-style:italic}.row--dirty .col-room{box-shadow:inset 3px 0 0 var(--brand)}.cell--locked{color:var(--text-faint);padding-left:6px}.col-warning{white-space:nowrap}.warning-list{flex-wrap:nowrap;align-items:center;gap:4px;padding:0;display:flex;overflow:hidden}.bill-grid{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:12px;display:grid}.bill{--surface:#fff;--bg:#fff;--text:#161b26;--text-muted:#5b6576;--border:#e3e6eb;--border-strong:#c9ced6;--line-soft:#e9ecf0;--brand:#0e6b6b;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:calc(14px * var(--fs));padding:10px 12px}.bill__header{border-bottom:1.5px solid var(--text);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:6px;display:flex}.bill__room{font-size:calc(14.5px * var(--fs));font-weight:600}.bill__period{font-size:calc(14px * var(--fs));color:var(--text-muted);white-space:nowrap;font-weight:600}.bill__dates{color:var(--text-muted);font-size:calc(14px * var(--fs));text-align:center;border-bottom:1px dashed var(--border-strong);padding:5px 0}.bill__section{border-bottom:1px dashed var(--border-strong);padding:5px 0}.bill__row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-weight:600;display:flex}.bill__detail{font-size:calc(14px * var(--fs));color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:0 8px;display:flex}.bill__detail>span{white-space:nowrap}.bill__detail>span:last-child{margin-left:auto}.bill__total{white-space:nowrap;font-size:calc(14.5px * var(--fs));font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;padding-top:8px;font-weight:600;display:flex}.bill__qr{border-top:1px dashed var(--border,#d5d9e0);justify-content:center;align-items:center;margin-top:8px;padding-top:8px;display:flex}.qr{color:#000;background:#fff;flex:none;width:96px;height:96px}.print-only{display:none}@media print{.sidebar,.no-print,.page-header__description{display:none!important}.main{padding:0}.main>:not(.page-header){margin-inline:0}.page-header{background:0 0;border:0;height:auto;margin-bottom:2mm;padding:0;position:static}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{color:#000;font-size:calc(14px * var(--fs));background:#fff}@page{size:A4 portrait;margin:10mm 10mm 8mm 12mm}.print-only{font-size:calc(14px * var(--fs));color:#000;margin:0 0 3mm;display:block}.bill-grid{grid-template-columns:repeat(3,1fr);gap:0;margin-top:4mm;padding:0 2px 2px 0}.bill{font-size:calc(14px * var(--fs));color:#000;break-inside:avoid;page-break-inside:avoid;border:1.5px dashed #000;border-radius:0;margin:0 -1.5px -1.5px 0;padding:3.5mm 4mm;position:relative}.bill:nth-child(3n+1):before{content:"✂";font-family:Segoe UI Symbol,Apple Symbols,Noto Sans Symbols,sans-serif;font-size:calc(16px * var(--fs));background:#fff;line-height:1;position:absolute;bottom:-.68em;left:-5mm}.bill:nth-child(3n+1):after,.bill:nth-child(3n+2):after{content:"✂";font-family:Segoe UI Symbol,Apple Symbols,Noto Sans Symbols,sans-serif;font-size:calc(16px * var(--fs));background:#fff;line-height:1;position:absolute;top:-1.1em;right:-.55em;transform:rotate(90deg)}.bill__header{border-bottom:2px solid #000}.bill__room{font-size:calc(17px * var(--fs))}.bill__period{font-size:calc(14px * var(--fs));color:#000}.bill__dates{font-size:calc(14px * var(--fs));color:#000;border-bottom:1px dashed #000}.bill__section{border-bottom:1px dashed #000;padding:5px 0}.bill__row{font-size:calc(14px * var(--fs));font-weight:600}.bill__detail{font-size:calc(14px * var(--fs));color:#000}.bill__total{font-size:calc(16px * var(--fs));padding-top:6px;font-weight:600}.bill__qr{border-top:1px dashed #000}.qr{width:34mm;height:34mm}}.mobile-bar,.sidebar-backdrop,.entry-bar,.entry-bar-spacer{display:none}@media screen and (max-width:860px){:root{--gutter:12px}html{-webkit-text-size-adjust:100%}.app{display:block}.mobile-bar{z-index:40;min-height:48px;padding:env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));background:var(--sidebar-bg);color:var(--sidebar-text-strong);align-items:center;gap:10px;display:flex;position:sticky;top:0}.mobile-bar__menu{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin-left:-8px;display:inline-flex}.mobile-bar__title{font-size:calc(15px * var(--fs));white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.mobile-bar__house{font-size:calc(14px * var(--fs));color:var(--sidebar-accent);white-space:nowrap;font-weight:600}.sidebar{z-index:60;width:min(84vw,320px);height:100dvh;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));box-shadow:none;flex:none;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.sidebar--open{box-shadow:var(--shadow-drawer);transform:none}.sidebar-backdrop{z-index:50;background:var(--backdrop-strong);border:0;padding:0;display:block;position:fixed;inset:0}.sidebar__link{height:46px;font-size:calc(15px * var(--fs))}.sidebar__landlords a,.sidebar__landlords button{min-height:40px}.main{padding-bottom:calc(24px + env(safe-area-inset-bottom));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.page-header__user{display:none}.page-header{height:auto;min-height:44px;padding:8px var(--gutter);flex-wrap:wrap;row-gap:2px;position:static}.page-header__description{white-space:normal;flex-basis:100%}.input,select.input,input.input,.input--cell{font-size:max(16px, calc(16px * var(--fs)));min-height:44px}.btn{height:44px;font-size:calc(15px * var(--fs));padding:0 16px}.btn--small{height:36px}.toolbar{gap:8px;padding:8px}.toolbar__spacer,.toolbar__divider{display:none}.toolbar__group{flex-wrap:wrap}.period-picker{flex-wrap:nowrap;gap:6px}.period-picker .toolbar__label{display:none}.period-picker__select{flex:1 1 0;min-width:0}.btn--icon,.period-picker__nav{flex:0 0 44px;width:44px;padding:0}.period-picker__nav-text{display:none}.toolbar__details{width:100%}.toolbar__details>summary{min-height:40px;font-size:calc(14px * var(--fs));color:var(--brand);cursor:pointer;align-items:center;display:flex}.toolbar__details[open]>summary{margin-bottom:6px}.card{padding:10px}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.stat{flex:none;padding:6px 8px}.stat__label{font-size:calc(14px * var(--fs))}.stat__hint,.stat--desktop{display:none}.stat-row--stack{grid-template-columns:minmax(0,1fr);gap:8px}.stat-row--stack .stat{padding:10px 14px}.stat-row--stack .stat__hint{display:block}.stat-row--stack .stat__value{font-size:calc(20px * var(--fs));white-space:normal;overflow:visible}.stat__value{font-size:calc(15px * var(--fs));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.table-wrap{-webkit-overflow-scrolling:touch}.grid--2,.bill-grid{grid-template-columns:minmax(0,1fr)}.entry-controls{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.entry-segment{border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);display:flex;overflow:hidden}.entry-segment button{border:0;border-right:1px solid var(--border);min-height:44px;color:var(--text);font:inherit;font-size:calc(14px * var(--fs));cursor:pointer;background:0 0;flex:1;padding:0 8px}.entry-segment button:last-child{border-right:0}.entry-segment button.is-active{background:var(--brand);color:var(--on-brand);font-weight:600}.entry-segment button:disabled{opacity:.5}.entry-list{flex-direction:column;gap:10px;display:flex}.entry-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);padding:10px 12px 12px}.entry-card--warning{border-left-color:var(--warning-border);background:var(--warning-soft)}.entry-card--error{border-left-color:var(--danger);background:var(--danger-soft)}.entry-card--vacant{opacity:.7}.entry-card--dirty:not(.entry-card--error):not(.entry-card--warning){border-left-color:var(--brand)}.entry-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.entry-card__name{font-size:calc(17px * var(--fs));font-weight:600}.entry-card__badges{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.entry-card__prev{font-size:calc(14px * var(--fs));color:var(--text-muted);font-variant-numeric:tabular-nums;margin:2px 0 8px}.entry-card__fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.entry-field{flex-direction:column;gap:3px;min-width:0;display:flex}.entry-field--wide{grid-column:1/-1}.entry-field>span{font-size:calc(14px * var(--fs));color:var(--text-muted);font-weight:500}.entry-field>small{font-size:calc(14px * var(--fs));color:var(--text-muted);font-variant-numeric:tabular-nums}.input--big{font-size:calc(20px * var(--fs));font-variant-numeric:tabular-nums;min-height:52px;font-weight:600}.entry-card__money{font-size:calc(14px * var(--fs));color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:10px;margin-top:8px;display:flex}.entry-card__money strong{font-size:calc(18px * var(--fs));color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.entry-card__warnings{font-size:calc(14px * var(--fs));margin:8px 0 0;padding:0;line-height:1.4;list-style:none}.entry-card__warnings li+li{margin-top:4px}.entry-card__more{border-top:1px dashed var(--border-strong);margin-top:8px;padding-top:6px}.entry-card__more>summary{min-height:40px;font-size:calc(14px * var(--fs));color:var(--brand);cursor:pointer;align-items:center;display:flex}.entry-card__more[open]>*+*{margin-top:8px}.entry-check{min-height:44px;font-size:calc(15px * var(--fs));align-items:center;gap:10px;display:flex}.entry-check input{width:22px;height:22px}.entry-adjust{flex-direction:column;gap:8px;display:flex}.entry-adjust__label{font-size:calc(14px * var(--fs));color:var(--text-muted);font-weight:500}.entry-adjust__row{grid-template-columns:1.35fr 1fr;gap:8px;display:grid}.entry-bar-spacer{height:calc(76px + env(safe-area-inset-bottom));display:block}.entry-bar{z-index:30;padding:8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--border-strong);box-shadow:var(--shadow-bar);justify-content:space-between;align-items:center;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.entry-bar__info{font-size:calc(14px * var(--fs));white-space:nowrap}.entry-bar__actions{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.entry-bar__actions .badge{display:none}}.readonly-guard{border:0;min-width:0;margin:0;padding:0}.page-header__user{margin-left:auto}.logout-btn{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);height:32px;color:var(--text);font:inherit;font-size:calc(14px * var(--fs));cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.logout-btn:hover{background:var(--bg)}.logout-btn--icon{width:44px;height:44px;color:var(--sidebar-text-strong);background:0 0;border:0;justify-content:center;margin-right:-8px;padding:0}.logout-btn--icon:hover{background:var(--sidebar-overlay-strong)}.confirm-dialog{white-space:normal;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(92vw,460px);color:var(--text);box-shadow:var(--shadow-dialog);padding:22px}.confirm-dialog::backdrop{background:var(--backdrop)}.confirm-dialog__title{font-size:calc(17px * var(--fs));margin:0 0 8px;font-weight:600}.confirm-dialog__text{font-size:calc(15px * var(--fs));color:var(--text);margin:0 0 20px;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:10px;display:flex}.confirm-dialog__actions .btn{height:40px;font-size:calc(14px * var(--fs));padding:0 18px}.login{--login-bg:#f6f2e9;--login-accent:#2f6b47;--login-accent-dark:#25553a;--login-border:#d8d2c3;--login-text:#161b26;color:var(--login-text);background:var(--login-bg);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login__card{border:1px solid var(--login-border);background:#fff;border-radius:16px;width:100%;max-width:440px;padding:36px 32px 32px;box-shadow:0 10px 30px #463c1e1a}.login__logo{border-radius:var(--radius-lg);width:56px;height:56px;color:var(--login-accent);background:#e6efe4;place-items:center;margin:0 auto 14px;display:grid}.login__title{text-align:center;font-size:calc(26px * var(--fs));margin:0;font-weight:600}.login__subtitle{text-align:center;font-size:calc(16px * var(--fs));color:#5f5a4c;margin:6px 0 26px}.login__form{flex-direction:column;gap:20px;display:flex}.login__field{flex-direction:column;gap:8px;display:flex}.login__label{font-size:calc(17px * var(--fs));font-weight:600}.login__input{border:1.5px solid var(--login-border);border-radius:var(--radius-lg);width:100%;height:56px;color:var(--login-text);font:inherit;font-size:calc(18px * var(--fs));background:#fffdf8;padding:0 16px}.login__input::placeholder{color:#6b6657}.login__input:focus{outline-offset:0;border-color:var(--login-accent);outline:3px solid #2f6b4747}.login__password{position:relative}.login__password .login__input{padding-right:76px}.login__toggle{border-radius:var(--radius);min-width:60px;height:44px;color:var(--login-accent);font:inherit;font-size:calc(16px * var(--fs));cursor:pointer;background:0 0;border:0;padding:0 12px;font-weight:600;position:absolute;top:6px;right:6px}.login__toggle:hover{background:#eef3ea}.login__submit{border-radius:var(--radius-lg);background:var(--login-accent);color:#fff;height:56px;font:inherit;font-size:calc(18px * var(--fs));cursor:pointer;border:0;margin-top:4px;font-weight:600}.login__submit:hover:not(:disabled){background:var(--login-accent-dark)}.login__submit:disabled{opacity:.7;cursor:progress}.login__error{border-radius:var(--radius-lg);color:#8f1f15;font-size:calc(16px * var(--fs));background:#fdeceb;border:1px solid #e3b4ae;padding:12px 14px;line-height:1.4}@media screen and (max-width:480px){.login{padding:16px 12px}.login__card{border-radius:var(--radius-lg);padding:28px 20px 24px}.login__title{font-size:calc(24px * var(--fs))}}html[data-font=sm]{--fs:.85;--sidebar-width:184px}html[data-font=lg]{--fs:1.15;--sidebar-width:232px}html[data-font=xl]{--fs:1.3;--sidebar-width:260px}html[data-font=xxl]{--fs:1.5;--sidebar-width:290px}.badge--danger:before{content:"✖ "}.badge--warning:before{content:"▲ "}.badge--success:before{content:"✔ "}@media screen{html[data-accent=red]{--bg:#f8f4f5;--surface-alt:#fbf8f9;--surface-hover:#f9eff2;--border:#eadfe3;--border-strong:#dccfd4;--line-soft:#efe7ea;--badge-bg:#efe7ea;--brand:#a31d4a;--brand-soft:#fbe8ee;--focus:#a31d4a;--logo-bg:#c43a63;--chart-room:#a31d4a;--chart-adjust:#7a5bb4;--sidebar-bg:#f8f4f5;--sidebar-line:#eadfe3;--sidebar-active:#efe3e6;--sidebar-accent:#a31d4a}html[data-accent=purple]{--bg:#f6f4f9;--surface-alt:#faf9fc;--surface-hover:#f1edf8;--border:#e4dfec;--border-strong:#d5cee1;--line-soft:#ebe7f1;--badge-bg:#ebe7f1;--brand:#6b3fb0;--brand-soft:#efe9fa;--focus:#6b3fb0;--logo-bg:#8658c9;--chart-room:#6b3fb0;--sidebar-bg:#f6f4f9;--sidebar-line:#e4dfec;--sidebar-active:#e8e2f1;--sidebar-accent:#6b3fb0}html[data-accent=navy]{--bg:#f2f5f9;--surface-alt:#f8fafc;--surface-hover:#ecf1f8;--border:#dde4ee;--border-strong:#cdd6e3;--line-soft:#e6ebf2;--badge-bg:#e6ebf2;--brand:#1d4f91;--brand-soft:#e3edf9;--focus:#1d4f91;--logo-bg:#2f6cb8;--chart-room:#1d4f91;--chart-water:#1b8aa0;--sidebar-bg:#f2f5f9;--sidebar-line:#dde4ee;--sidebar-active:#e0e7f1;--sidebar-accent:#1d4f91}html[data-theme=dark]{--bg:#0e151c;--surface:#17212b;--surface-alt:#1c2833;--surface-hover:#1f2e3b;--border:#2b3a48;--border-strong:#3d4f60;--control-border:#738699;--line-soft:#243240;--text:#e8edf2;--text-muted:#b2bdc8;--text-faint:#a0adba;--brand:#86cf9f;--brand-soft:#1a3324;--danger:#ff9a8f;--danger-soft:#3a1d1b;--warning:#f3bd6a;--warning-soft:#3a2c12;--warning-border:#d99a2b;--success:#6fd9a0;--success-soft:#153427;--focus:#b3e3c3;--on-brand:#0a2014;--badge-bg:#243240;--chart-room:#86cf9f;--chart-electric:#e0a53a;--chart-garbage:#9aa5b5;--sidebar-bg:#0a1117;--sidebar-active:#1b2c3a;--on-logo:#fff;--sidebar-text:#aab6c3;--sidebar-muted:#8797a8;--sidebar-line:#26384a;--sidebar-label:#a3b3c4;--sidebar-text-strong:#fff;--sidebar-line-strong:#35516a;--sidebar-accent:#9fe0e0;--on-sidebar-accent:#06201f;--sidebar-warning:#ffd68a;--sidebar-overlay:#ffffff0d;--sidebar-overlay-soft:#ffffff0f;--sidebar-overlay-strong:#ffffff1f;--logo-bg:#1f8a8a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=dark][data-accent=red]{--bg:#181015;--surface:#231920;--surface-alt:#2a1e26;--surface-hover:#32242d;--border:#3b2b34;--border-strong:#53404b;--line-soft:#2f222a;--badge-bg:#2f222a;--brand:#ff8fb0;--brand-soft:#4a1c2c;--focus:#ffb4c9;--on-brand:#2b0a14;--chart-room:#ff8fb0;--chart-adjust:#b49cf0;--sidebar-bg:#120a0e;--sidebar-active:#35202a;--logo-bg:#c43a63;--sidebar-text:#c8aab3;--sidebar-muted:#a98b95;--sidebar-line:#44232d;--sidebar-label:#c3a2ad;--sidebar-line-strong:#633644;--sidebar-accent:#ffb4c9;--on-sidebar-accent:#2b0a14}html[data-theme=dark][data-accent=purple]{--bg:#130f1c;--surface:#1d1729;--surface-alt:#241d33;--surface-hover:#2b2340;--border:#342b47;--border-strong:#4a3e63;--line-soft:#271f38;--badge-bg:#271f38;--brand:#c3a6ff;--brand-soft:#34244f;--focus:#dcc9ff;--on-brand:#1a0f2e;--chart-room:#c3a6ff;--sidebar-bg:#0d0a14;--sidebar-active:#2b2142;--logo-bg:#8658c9;--sidebar-text:#bcb0d4;--sidebar-muted:#9d90b8;--sidebar-line:#33264d;--sidebar-label:#b6a8d0;--sidebar-line-strong:#4d3a73;--sidebar-accent:#d4bcff;--on-sidebar-accent:#1a0f2e}html[data-theme=dark][data-accent=navy]{--bg:#0b1220;--surface:#121c2f;--surface-alt:#182339;--surface-hover:#1d2a44;--border:#25344f;--border-strong:#384b6b;--line-soft:#1b2a42;--badge-bg:#1b2a42;--brand:#7fb2f5;--brand-soft:#1a3358;--focus:#b0d0fa;--on-brand:#07162e;--chart-room:#7fb2f5;--chart-water:#4fc3d6;--sidebar-bg:#070d18;--sidebar-active:#172a4a;--logo-bg:#2f6cb8;--sidebar-text:#aebdd6;--sidebar-muted:#8a9bb8;--sidebar-line:#22375a;--sidebar-label:#a6b6d0;--sidebar-line-strong:#2f4d7c;--sidebar-accent:#a9cdfb;--on-sidebar-accent:#07162e}html[data-theme=contrast]{--bg:#fff;--surface:#fff;--surface-alt:#f2f2f2;--surface-hover:#e6e6e6;--border:#1a1a1a;--border-strong:#000;--control-border:#000;--line-soft:#5a5a5a;--text:#000;--text-muted:#1a1a1a;--text-faint:#1a1a1a;--brand:#1b4d31;--brand-soft:#dcebe0;--danger:#8a0000;--danger-soft:#ffe0e0;--warning:#5c3000;--warning-soft:#ffe9b8;--warning-border:#7a4400;--success:#005a2c;--success-soft:#d4f2e0;--focus:#000;--on-brand:#fff;--badge-bg:#f2f2f2;--sidebar-bg:#000;--sidebar-text:#fff;--sidebar-muted:#fff;--sidebar-label:#fff;--sidebar-line:#fff;--sidebar-active:#1b4d31;--on-logo:#fff;--sidebar-text-strong:#fff;--sidebar-line-strong:#fff;--sidebar-accent:#9fe0e0;--on-sidebar-accent:#06201f;--sidebar-warning:#ffd68a;--sidebar-overlay:#ffffff0d;--sidebar-overlay-soft:#ffffff0f;--sidebar-overlay-strong:#ffffff1f;--logo-bg:#1f8a8a}html[data-theme=contrast][data-accent=red]{--brand:#7d0f35;--brand-soft:#fbe3ea;--chart-room:#7d0f35;--sidebar-active:#7d0f35}html[data-theme=contrast][data-accent=purple]{--brand:#4b2488;--brand-soft:#ebe1f8;--chart-room:#4b2488;--sidebar-active:#4b2488}html[data-theme=contrast][data-accent=navy]{--brand:#0f3a73;--brand-soft:#dbe8f8;--chart-room:#0f3a73;--sidebar-active:#0f3a73}html[data-theme=contrast] .card,html[data-theme=contrast] .stat,html[data-theme=contrast] .house-card,html[data-theme=contrast] .input,html[data-theme=contrast] .btn{border-width:2px;border-color:#000}html[data-theme=contrast] .main a:not(.house-card):not(.btn):not(.stat--link){text-decoration:underline}}.help{vertical-align:middle;margin-left:6px;display:inline-block;position:relative}.help__btn{border:1.5px solid var(--text-muted);background:var(--surface);width:22px;height:22px;color:var(--text-muted);font:inherit;cursor:help;border-radius:50%;padding:0;font-size:14px;font-weight:600;line-height:1}.help__text{z-index:30;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);width:min(300px,80vw);color:var(--text);box-shadow:var(--shadow-popover-strong);font-size:calc(14px * var(--fs));text-transform:none;letter-spacing:0;white-space:normal;padding:10px 12px;font-weight:400;line-height:1.45;display:none;position:absolute;top:calc(100% + 6px);left:0}.help:hover .help__text,.help:focus-within .help__text{display:block}.todo-card{border-left:4px solid var(--warning-border)}.todo-card--ok{border-left-color:var(--success)}.todo-list{margin:8px 0 0;padding:0;list-style:none}.todo-list__item{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:10px 0;display:flex}.todo-list__item:first-child{border-top:0}.todo-list__room{font-weight:600}.todo-list__item a{color:var(--brand);font-weight:600}.todo-list__msg{flex:260px;min-width:0}a.stat--link{color:inherit;text-decoration:none;display:block}a.stat--link:hover,a.stat--link:focus-visible{border-color:var(--brand)}.stat__more{color:var(--brand);font-weight:600;font-size:calc(14px * var(--fs));margin-top:6px}.house-card__go{border:1.5px solid var(--brand);border-radius:var(--radius-sm);align-items:center;min-height:36px;padding:0 12px;font-weight:600;display:inline-flex}.house-card:hover .house-card__go{background:var(--brand);color:var(--surface)}.house-card__stats dd{font-size:calc(15px * var(--fs))}.sidebar__landlords{flex-direction:column;gap:2px}.sidebar__landlord{height:auto;min-height:40px;font-size:calc(15px * var(--fs));flex:none;justify-content:flex-start;gap:8px;padding:0 10px}.sidebar__section{letter-spacing:.06em;font-weight:600}.sidebar__backup{border-radius:var(--radius);background:var(--brand);min-height:44px;color:var(--on-brand);text-align:center;justify-content:center;align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.sidebar__backup:hover{filter:brightness(1.12)}.display-settings{flex-direction:column;gap:10px;display:flex}.sidebar__footer .sidebar__section{padding:0 0 8px}.sidebar__utility{border-radius:var(--radius);background:var(--sidebar-overlay);margin-bottom:8px;padding:8px}.sidebar__backup-status{color:var(--sidebar-muted);margin:8px 0 0}.sidebar__backup-status--stale{color:var(--sidebar-warning);font-weight:600}.sidebar__landlord--active,.sidebar__landlord--active:hover{box-shadow:inset 0 0 0 2px var(--sidebar-accent);background:0 0}.sidebar__landlord--active:after{content:"Đang xem";font-size:calc(14px * var(--fs));color:var(--sidebar-accent);margin-left:auto;font-weight:600}.sidebar__link--active,.sidebar__link--active:hover{box-shadow:inset 4px 0 0 var(--sidebar-accent)}.display-settings__row{flex-direction:column;align-items:stretch;gap:4px;display:flex}.display-settings__label{color:var(--sidebar-text)}.display-settings__font{gap:4px;display:flex}.display-settings__font button{flex:1}.display-settings__font button,.display-settings__select{border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);background:var(--sidebar-active);min-width:44px;min-height:44px;color:var(--sidebar-text-strong);font:inherit;cursor:pointer;padding:0 8px;font-weight:600}.display-settings__accents{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.accent-swatch{border:2px solid var(--sidebar-line-strong);border-radius:var(--radius-sm);background:var(--swatch);cursor:pointer;min-width:0;min-height:28px}.accent-swatch--teal{--swatch:var(--swatch-teal)}.accent-swatch--red{--swatch:var(--swatch-red)}.accent-swatch--purple{--swatch:var(--swatch-purple)}.accent-swatch--navy{--swatch:var(--swatch-navy)}.accent-swatch[aria-pressed=true]{border-color:var(--sidebar-text-strong);box-shadow:0 0 0 2px var(--sidebar-bg), 0 0 0 4px var(--sidebar-accent)}.accent-swatch[aria-pressed=true]:after{content:"✔";color:var(--sidebar-text-strong);font-weight:600}.display-settings__font button[aria-pressed=true]{border-color:var(--sidebar-accent);background:var(--sidebar-accent);color:var(--on-sidebar-accent)}.display-settings__font button[aria-disabled=true]{opacity:.6;cursor:not-allowed;border-style:dashed}.display-settings__note{color:var(--sidebar-muted);font-size:calc(14px * var(--fs));font-weight:400}.backup-reminder{border:1px solid var(--warning-border);border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding:12px 14px;display:flex}.backup-reminder__text{flex:260px;min-width:0;font-weight:600}.backup-reminder .btn{min-height:36px}@media screen and (max-width:860px){.backup-reminder{padding:8px 12px}.backup-reminder__more{display:none}}.row--error>td:first-child:before{content:"✖ ";color:var(--danger);font-weight:600}.row--warning>td:first-child:before{content:"▲ ";color:var(--warning);font-weight:600}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--brand);color:var(--on-brand);padding:10px 14px;font-weight:600;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.main:focus{outline:none}.sidebar__help{border:1px solid var(--sidebar-line);border-radius:var(--radius);width:100%;min-height:40px;color:var(--sidebar-text);font:inherit;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;font-weight:600;display:flex}.sidebar__help:hover{background:var(--sidebar-active);color:var(--sidebar-text-strong)}.bill__share{text-align:center;margin-top:10px}.bill__share-msg{font-size:calc(14px * var(--fs));text-align:left;color:var(--text-muted);margin:8px 0 0}input[type=number].input--cell{appearance:textfield}input[type=number].input--cell::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number].input--cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input--cell{min-height:calc(32px * var(--fs));padding-inline:8px}.table--grid input.input--cell:not(:disabled){border-color:var(--control-border);background:var(--surface)}.table--grid input.input--cell.input--error:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.table--grid input.input--cell.input--warning:not(:disabled){background:var(--warning-soft);border-color:var(--warning-border)}.input--cell::placeholder{color:var(--text-muted);opacity:1}.check-big{width:24px;height:24px;accent-color:var(--brand);cursor:pointer;vertical-align:middle;margin:0}.check-big:disabled{cursor:not-allowed;opacity:.6}.table--grid td:has(>.check-big){text-align:center}.cell-text{text-align:right;font-variant-numeric:tabular-nums;padding:3px 8px;display:block}.cell-text--left{text-align:left}.table--grid .cell--locked.cell-text{color:var(--text-faint)}.table--closed tbody td,.table--closed tbody .col-stt,.table--closed tbody .col-room,.table--closed tbody .col-total{background:var(--surface-alt)}.table--closed tbody .cell--locked{color:var(--text)}.closed-note{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-alt);color:var(--text);font-size:calc(15px * var(--fs));margin-bottom:10px;padding:10px 14px}.table--grid .row--error>.col-stt,.table--grid .row--error>.col-room,.table--grid .row--error>.col-total{background:color-mix(in srgb, var(--danger-soft) 60%, var(--surface))}.table--grid .row--warning>.col-stt,.table--grid .row--warning>.col-room,.table--grid .row--warning>.col-total{background:color-mix(in srgb, var(--warning-soft) 55%, var(--surface))}.table--grid .row--vacant>.col-stt,.table--grid .row--vacant>.col-room,.table--grid .row--vacant>.col-total{background:var(--surface-alt)}.stat--button{font:inherit;color:inherit;text-align:left;cursor:pointer}.stat--button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.stat--button[aria-pressed=true]{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}.stat--button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.stat__hint{font-size:calc(15px * var(--fs));color:color-mix(in srgb, var(--text) 78%, var(--surface));margin-top:4px}.btn:disabled,.btn--primary:disabled{opacity:1;background:var(--surface-alt);border:1px dashed var(--border-strong);color:var(--text-muted);filter:none}.btn--warn{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning);font-weight:600}.badge--lg{font-size:calc(16px * var(--fs));border-radius:var(--radius-sm);padding:6px 14px}.action-gap{border-left:2px solid var(--border);margin-left:40px;padding-left:40px}.toolbar__hint{color:var(--text);font-size:calc(14px * var(--fs));margin:0}.toolbar__group--wrap{flex-wrap:wrap}@media screen and (min-width:861px){.entry-controls{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px;display:flex}.entry-controls .input{width:260px;min-height:44px}.entry-segment{border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);display:flex;overflow:hidden}.entry-segment button{border:0;border-right:1px solid var(--border);min-height:44px;color:var(--text);font:inherit;font-size:calc(15px * var(--fs));cursor:pointer;background:0 0;padding:0 16px}.entry-segment button:last-child{border-right:0}.entry-segment button.is-active{background:var(--brand);color:var(--on-brand);font-weight:600}.entry-check{min-height:44px;font-size:calc(15px * var(--fs));cursor:pointer;align-items:center;gap:8px;display:inline-flex}}.sidebar__section{margin-top:18px}.sidebar__section:first-of-type{margin-top:0}.btn--solid{background:var(--text);border-color:var(--text);color:var(--surface);font-weight:600}.btn--solid:hover:not(:disabled){filter:brightness(1.25);background:var(--text)}.btn--primary:disabled,.btn--solid:disabled{opacity:.55;border-style:solid}.btn--primary:disabled{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn--solid:disabled{background:var(--text);border-color:var(--text);color:var(--surface)}.toolbar__actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.action-reason{font-size:calc(14px * var(--fs));color:var(--warning);text-align:right;margin:0;font-weight:600}.stat{min-height:calc(92px * var(--fs));flex-direction:column;display:flex}.stat__hint{margin-top:auto;padding-top:4px}.money--negative{color:var(--danger);font-weight:600}.input--cell{min-height:calc(40px * var(--fs))}.check-big{appearance:none;border:2px solid var(--text);border-radius:var(--radius-sm);background:var(--surface);width:28px;height:28px;position:relative}.check-big:checked{background:var(--brand);border-color:var(--brand)}.check-big:checked:after{content:"✔";color:var(--on-brand);justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex;position:absolute;inset:0}.check-big:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.table--grid .cell--locked.cell-text{color:var(--text);min-height:calc(40px * var(--fs));justify-content:flex-end;align-items:center;font-weight:500;display:flex}.row-reasons li{white-space:normal;overflow-wrap:anywhere}.input::placeholder,.input--cell::placeholder{color:var(--text-muted);opacity:1}.period-picker__status{white-space:nowrap;display:none}@media screen and (max-width:860px){.period-picker{flex-wrap:wrap}.period-picker__status{flex-basis:100%;width:fit-content;display:inline-flex}.stat{min-height:0}.stat--desktop{display:none}.stat-row,.entry-controls,.period-picker{max-width:100%;margin-inline:0}.entry-bar{flex-wrap:wrap}.entry-bar .action-reason{text-align:left;flex-basis:100%}}.room-controls{margin-bottom:10px}.room-common{color:var(--text);margin:0 0 10px}.tenant__name{overflow-wrap:anywhere;font-weight:500}.row-note{max-width:360px;font-size:calc(14px * var(--fs));color:var(--text);white-space:normal;flex-basis:100%;margin:4px 0 0;line-height:1.35}.bill-workspace{grid-template-columns:minmax(260px,1fr) minmax(280px,420px);align-items:start;gap:24px;display:grid}.bill-list{max-height:72vh;padding:8px;overflow-y:auto}.bill-list__item{text-align:left;width:100%;min-height:88px;color:var(--text);background:var(--surface);border:0;border-bottom:1px solid var(--border);cursor:pointer;font:inherit;gap:8px;padding:16px;display:grid}.bill-list__item>span{font-size:.9em}.bill-list__item.is-active{outline:2px solid var(--brand);outline-offset:-2px}.bill-list__item:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}.bill-list__item .badge{justify-self:start}.bill-preview{position:sticky;top:88px}.bill__status{font-size:calc(14px * var(--fs));padding:6px 0;font-weight:600}.bill--draft{border:2px dashed #755100}.bill--draft .bill__status{color:#755100}.bill__review{font-size:calc(14px * var(--fs));color:#755100}.bill__recipient{overflow-wrap:anywhere;font-size:calc(14px * var(--fs));margin:8px 0 0}@media (max-width:760px){.bill-workspace{grid-template-columns:1fr;gap:16px}.bill-list{max-height:42vh}.bill-preview{position:static}}@media print{.bill-print-grid.print-only{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.bill,.bill *{--fs:1}.bill--draft{border-color:#000}.bill--draft .bill__status{color:#000;text-decoration:underline}}.room-mobile-list{display:none}@media screen and (max-width:760px){.room-desktop-table{display:none}.room-mobile-list{gap:16px;display:grid}.room-mobile-card h2{margin:0 0 8px;font-size:1.1em}.room-mobile-card .badge{margin-top:12px}.room-mobile-card .btn{min-height:44px}}.rate-preview{max-height:45vh;overflow:auto}.rate-preview th{background:var(--surface);position:sticky;top:0}.tenancy-fields{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.tenancy-form{max-width:760px;margin-top:20px}.settings-nav{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.settings-nav .btn{min-height:44px}.field>.input{min-width:0;max-width:100%}.finance-summary{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.finance-summary .stat__value{white-space:normal;text-overflow:clip;overflow:visible}.finance-export,.btn--wrap,.workflow-form .btn{white-space:normal;text-align:center;max-width:100%}.workflow-form .btn{height:auto;min-height:44px}.workflow-history p{overflow-wrap:anywhere}.confirm-dialog__actions{flex-wrap:wrap}.confirm-dialog__actions .btn{white-space:normal;max-width:100%;height:auto;min-height:40px;padding:8px 18px}.settings-nav .btn[aria-current=page]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}@media screen and (max-width:860px){.table--cards,.table--cards tbody{white-space:normal;display:block}.table--cards thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.table--cards tr{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:8px 12px;padding:12px;display:grid}.table--cards td{background:0 0;border-bottom:0;padding:0}.table--cards .td--stt{display:none}.table--cards .td--room{grid-area:1/1;font-weight:600}.table--cards .td--status{grid-area:1/2;justify-self:end}.table--cards .td--tenant,.table--cards .td--actions,.table--cards .td--empty{grid-column:1/-1}.table--cards .td--number{text-align:left}.table--cards td[data-label]{justify-content:space-between;gap:8px;display:flex}.table--cards td[data-label]:before{content:attr(data-label);font-size:calc(14px * var(--fs));color:var(--text-muted);font-weight:400}.table--cards .row-actions .btn{flex:auto}.table--cards .row--vacant{background:var(--surface-alt)}.table--cards .td--head,.table--cards .td--wide{grid-area:auto/1/auto/-1;font-weight:600}.table--cards .td--full{grid-area:auto/1/auto/-1}.table--cards td[data-label]:before{white-space:nowrap}.table--cards .td--wide:before{font-weight:400}.table--cards-list .td--room,.table--cards-list td[data-label]{grid-area:auto/1/auto/-1}.table--cards-list td[data-label]{overflow-wrap:anywhere;flex-wrap:wrap}.table--cards-list td[data-label]>*{text-align:right}.btn,.btn--small,.sidebar__link,.sidebar__help,.accent-swatch{min-height:44px}.help__btn,.main td a:not(.btn),.main li>a:not(.btn),.main p>a:not(.btn){position:relative}.help__btn:after,.main td a:not(.btn):after,.main li>a:not(.btn):after,.main p>a:not(.btn):after{content:"";position:absolute;inset:-13px -6px}.help__btn:after{inset:-11px}input[type=checkbox],input[type=radio]{width:24px;height:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
