@media(pointer:coarse){.btn,.btn-sm{min-height:44px}input,select,textarea{font-size:16px}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--gray-50)}.flats-page .flats-section{margin-bottom:var(--space-lg)}.flats-page .flats-section h2{margin:0 0 var(--space-sm);font-size:20px}.flats-page .error-message{margin-bottom:var(--space-md)}.flats-page .flats-columns code{overflow-wrap:anywhere}.flats-page .flats-done{display:block;margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md)}.flats-page .flats-edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.flats-page .flats-preview{margin-top:var(--space-md)}.flats-page .flats-refused{color:var(--status-error);font-weight:var(--font-weight-medium)}.flats-page .flats-warning{color:var(--status-warning)}.flats-page .flats-editing td{background:var(--color-green-5)}.flats-page .flats-edit-form{display:flex;flex-direction:column;gap:var(--space-sm)}.flats-page .flats-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:0 var(--space-md)}.flats-page .flats-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.home-page .home-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.home-page .home-module h2{margin:0 0 var(--space-xs);font-size:18px}.home-page .home-module p{margin:0 0 var(--space-sm);color:var(--gray-600);font-size:15px}.home-page .home-module-live{display:block;color:inherit;text-decoration:none;border-color:var(--color-green-20)}.home-page .home-module-live:hover{box-shadow:var(--shadow-md)}.home-page .home-admin{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.home-page .home-today{margin:0 0 var(--space-lg);color:var(--gray-500)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-md)}.login-page .card{width:100%;max-width:400px}.login-page h1{margin:0 0 var(--space-xs);font-size:28px;color:var(--color-green)}.login-page .login-subtitle{margin:0 0 var(--space-lg);color:var(--gray-500)}.login-page .login-submit{width:100%;margin-top:var(--space-sm)}.login-page .error-message{margin-bottom:var(--space-md)}.month-page .page-header{flex-wrap:wrap}.month-page .month-nav{display:flex;gap:var(--space-sm)}.month-page .month-section{margin-bottom:var(--space-lg)}.month-page .month-section h2{margin:0 0 var(--space-sm);font-size:20px}.month-page .error-message{margin-bottom:var(--space-md)}.month-page .month-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md)}.month-page .month-total{margin:var(--space-xs) 0 var(--space-sm);font-size:32px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.month-page .month-checks{margin:0;padding:0;list-style:none}.month-page .month-check{padding:var(--space-sm) 0 var(--space-sm) var(--space-md);border-left:3px solid var(--color-green-20);margin-bottom:var(--space-sm)}.month-page .month-check-warn{border-left-color:var(--status-warning)}.month-page .month-check-fail{border-left-color:var(--status-error)}.month-page .month-check-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.month-page .month-finding{margin-top:var(--space-xs);color:var(--gray-800)}.month-page .month-check-fail .month-finding{color:var(--status-error)}.month-page .month-note{margin-top:var(--space-xs);font-size:14px}.month-page details summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.month-page .month-refusals{margin:0;padding-left:var(--space-lg);color:var(--status-warning)}.month-page .month-head{padding:var(--space-md) 0;border-top:1px solid var(--gray-200)}.month-page .month-head h3{margin:0 0 var(--space-sm);font-size:17px}.month-page .month-basis{font-size:14px;font-weight:var(--font-weight-regular)}.month-page .month-unset{margin:0 0 var(--space-sm);color:var(--status-warning)}.month-page .month-quantity{max-width:320px}.month-page .month-item{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:0 var(--space-sm);align-items:end}.month-page .month-item>.btn{margin-bottom:var(--space-md)}.month-page .month-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.month-page .month-readings input{width:110px;min-height:40px;padding:var(--space-xs) var(--space-sm);font-size:15px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);text-align:right}.month-page .month-readings td:last-child input{width:160px;text-align:left}@media(pointer:coarse){.month-page .month-readings input{min-height:44px;font-size:16px}}.month-page .month-rate{padding:var(--space-sm) 0;border-top:1px solid var(--gray-200)}.month-page .month-rate-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-md)}.month-page .month-working{font-size:14px;overflow-wrap:anywhere}.month-page .month-bills{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.month-page .month-bill{padding:var(--space-md)}.month-page .month-bill-head{display:flex;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.month-page .month-bill-head h3{margin:0;font-size:18px}.month-page .month-bill-total{font-size:18px;font-weight:var(--font-weight-semibold);white-space:nowrap}.month-page .month-lines{margin:0;padding:0;list-style:none}.month-page .month-lines li{padding:var(--space-xs) 0;border-top:1px solid var(--gray-100)}.month-page .month-line{display:flex;justify-content:space-between;gap:var(--space-sm)}.month-page .month-line .num{font-variant-numeric:tabular-nums}@media(max-width:480px){.month-page .month-bills,.month-page .month-item{grid-template-columns:minmax(0,1fr)}}.setup-page .setup-section{margin-bottom:var(--space-lg)}.setup-page .setup-section h2{margin:0 0 var(--space-sm);font-size:20px}.setup-page .error-message{margin-bottom:var(--space-md)}.setup-page .setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 var(--space-md)}.setup-page .setup-actions{display:flex;align-items:center;gap:var(--space-md)}.setup-page .setup-head{padding:var(--space-md) 0;border-top:1px solid var(--gray-200)}.setup-page .setup-head-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.setup-page .setup-head-title h3{margin:0;font-size:17px}.setup-page .setup-versions{margin:var(--space-sm) 0 0;padding-left:var(--space-lg);color:var(--gray-700)}.setup-page .setup-versions li{margin-bottom:var(--space-xs)}.setup-page .setup-add{margin-top:var(--space-md)}.setup-page .setup-add summary{list-style:none}.setup-page .setup-add summary::-webkit-details-marker{display:none}.setup-page .setup-version-form,.setup-page .setup-new-head{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--gray-50)}.setup-page .setup-new-head .setup-version-form{margin-top:0;padding:0}.setup-page .setup-exclusions{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--gray-200);border-radius:var(--radius-md)}.setup-page .setup-check{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px}.society-page .card{max-width:560px}.society-page .error-message{margin-bottom:var(--space-md)}.society-page .society-actions{display:flex;align-items:center;gap:var(--space-md)}:root{--color-white: #ffffff;--color-green: #1d4d2c;--color-green-5: rgba(29, 77, 44, .05);--color-green-10: rgba(29, 77, 44, .1);--color-green-20: rgba(29, 77, 44, .2);--color-green-60: rgba(29, 77, 44, .6);--gray-50: #fafbfa;--gray-100: #f5f6f5;--gray-200: #e8eae8;--gray-300: #d1d5d2;--gray-400: #9ca39d;--gray-500: #6b746c;--gray-600: #4a524b;--gray-700: #363c37;--gray-800: #262a27;--gray-900: #1a1d1a;--status-success: var(--color-green);--status-success-bg: var(--color-green-10);--status-warning: #8b6914;--status-warning-bg: rgba(180, 130, 50, .12);--status-error: #9b2c2c;--status-error-bg: rgba(155, 44, 44, .1);--status-info: var(--gray-600);--status-info-bg: var(--gray-100);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(29, 77, 44, .06);--shadow-md: 0 4px 12px rgba(29, 77, 44, .08);--transition-fast: .15s ease}.app{min-height:100vh;background:var(--gray-50);color:var(--gray-900);font-family:var(--font-family);-webkit-font-smoothing:antialiased;overflow-x:hidden}.page{max-width:960px;margin:0 auto;padding:var(--space-lg) var(--space-md)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.page-header h1{margin:0;font-size:28px;font-weight:var(--font-weight-semibold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;padding:var(--space-sm) var(--space-lg);font-family:var(--font-family);font-size:17px;font-weight:var(--font-weight-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-green);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--gray-800)}.btn-outline,.btn-secondary{background:var(--color-white);color:var(--color-green);border-color:var(--color-green-20)}.btn-outline:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:var(--color-green-5)}.btn-danger{background:var(--status-error);color:var(--color-white)}.btn-sm{min-height:36px;padding:var(--space-xs) var(--space-md);font-size:15px}@media(pointer:coarse){.btn-sm{min-height:44px}}.card{background:var(--color-white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:13px;font-weight:var(--font-weight-medium);background:var(--gray-100);color:var(--gray-600)}.badge-success{background:var(--status-success-bg);color:var(--status-success)}.badge-solid{background:var(--color-green);color:var(--color-white)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning)}.badge-error{background:var(--status-error-bg);color:var(--status-error);font-weight:var(--font-weight-semibold)}.table-scroll{position:relative;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:15px}.data-table th,.data-table td{padding:var(--space-sm);border-bottom:1px solid var(--gray-200);text-align:left;vertical-align:top}.data-table th{font-weight:var(--font-weight-semibold);color:var(--gray-600);white-space:nowrap}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--gray-500)}.back-link{display:inline-flex;align-items:center;min-height:44px;color:var(--color-green);text-decoration:none;font-weight:var(--font-weight-medium)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.form-group label{font-size:15px;font-weight:var(--font-weight-medium);color:var(--gray-700)}.form-group input,.form-group select,.form-group textarea{min-height:48px;padding:var(--space-sm) var(--space-md);font-family:var(--font-family);font-size:16px;color:var(--gray-900);background:var(--color-white);border:1px solid var(--gray-300);border-radius:var(--radius-md)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--color-green-20);border-color:var(--color-green)}.error-message{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--status-error-bg);color:var(--status-error);font-size:15px}.loading-state{display:flex;align-items:center;justify-content:center;min-height:50vh;color:var(--gray-500)}
