@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&family=Playfair+Display:wght@700&display=swap";:root{color:var(--text-primary);font-synthesis:none;text-rendering:optimizelegibility;--forest:#18452f;--forest-dark:#103524;--cream:#f5f2e9;--paper:#fcfbf6;--gold:#c59a4b;--muted:#6f7a73;--line:#dfe3dc;--color-primary-900:#102a5c;--color-primary-700:#1d4c9b;--color-primary-500:#2f74d0;--color-sky-500:#38a6e8;--color-sky-100:#e5f5ff;--color-background:#f5f9ff;--color-surface:#fff;--color-text:#14213d;--color-muted:#64748b;--color-success:#16825d;--color-warning:#b7791f;--color-danger:#c2414d;--text-strong:#102447;--text-primary:#243b5a;--text-secondary:#526983;--text-muted:#6b7f96;--text-disabled:#94a3b8;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--shadow-sm:0 2px 8px #0f37780f;--shadow-md:0 12px 28px #0f377817;--shadow-lg:0 24px 56px #0f377824;background:#f5f2e9;font-family:Noto Sans Thai,Leelawadee UI,Tahoma,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text-primary);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:100%}.auth-page{grid-template-columns:minmax(360px,44%) 1fr;min-height:100vh;display:grid}.brand-panel{color:#fff;background:var(--forest);flex-direction:column;justify-content:center;padding:64px clamp(48px,7vw,110px);display:flex;position:relative;overflow:hidden}.brand-panel:before{content:"";border:1px solid #ffffff1a;border-radius:50%;width:460px;height:460px;position:absolute;top:-210px;left:-180px;box-shadow:0 0 0 80px #ffffff06}.brand-panel:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 36px,#ffffff0d 37px 38px);width:300px;height:360px;position:absolute;inset:auto -60px -100px auto;transform:skewY(-12deg)}.brand-content,.brand-footer{z-index:1;position:relative}.brand-mark{color:#fff;border:1px solid #ffffff52;place-items:center;width:58px;height:58px;padding:14px;display:grid}.brand-mark.small{width:42px;height:42px;padding:9px}.eyebrow{letter-spacing:.18em;color:#fff9;margin:26px 0 8px;font-size:.7rem;font-weight:700}.eyebrow.accent{color:var(--gold);margin-top:0}.brand-panel h1{letter-spacing:-.04em;margin:0;font-family:Playfair Display,IBM Plex Sans Thai,serif;font-size:clamp(3.5rem,6vw,5.8rem);line-height:.98}.brand-description{color:#ffffffb8;margin-top:28px;font-size:1.15rem;line-height:1.8}.brand-footer{color:#ffffff73;margin:0;font-size:.82rem;position:absolute;bottom:38px}.form-panel{background:var(--paper);place-items:center;padding:48px 28px;display:grid}.auth-card{width:min(100%,450px)}.mobile-brand{display:none}.auth-card h2{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(1.8rem,3vw,2.4rem)}.form-intro{color:var(--muted);margin:0 0 30px}.auth-tabs{border:1px solid var(--line);background:#f1f2ed;grid-template-columns:1fr 1fr;margin-bottom:26px;padding:4px;display:grid}.auth-tabs button{color:var(--muted);background:0 0;border:0;padding:10px;font-weight:600}.auth-tabs button.active{color:var(--forest);background:#fff;box-shadow:0 2px 8px #14322314}label{margin:18px 0 7px;font-size:.86rem;font-weight:600;display:block}input{color:#17231c;background:#fff;border:1px solid #ccd4ce;border-radius:0;outline:none;width:100%;padding:13px 14px;transition:border-color .2s,box-shadow .2s}input:focus{border-color:var(--forest);box-shadow:0 0 0 3px #18452f1a}.password-field{position:relative}.password-field input{padding-right:48px}.icon-button{color:#728078;background:0 0;border:0;width:35px;height:35px;padding:8px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.notice{border-left:3px solid;margin-top:18px;padding:11px 13px;font-size:.85rem}.notice.error{color:#923d31;background:#fff0ed;border-color:#c45b4c}.notice.success{color:#28603f;background:#ebf6ef;border-color:#4e9568}.primary-button{background:var(--forest);color:#fff;border:0;justify-content:space-between;align-items:center;width:100%;margin-top:26px;padding:14px 18px;font-weight:600;transition:background .2s,transform .2s;display:flex}.primary-button:hover:not(:disabled){background:var(--forest-dark);transform:translateY(-1px)}.primary-button span{font-size:1.3rem}.bootstrap-note{text-align:center;color:#849087;margin-top:28px;font-size:.78rem;line-height:1.6}.bootstrap-note strong{color:#56645b}.loading-screen{background:var(--forest);color:#fff;place-content:center;justify-items:center;gap:14px;min-height:100vh;display:grid}.loading-screen p{color:#ffffffb3}.dashboard-page{background:var(--cream);grid-template-columns:235px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--forest);color:#fff;flex-direction:column;height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:12px;padding:0 8px 34px;display:flex}.sidebar-brand div:last-child{display:grid}.sidebar-brand strong{font-size:.94rem}.sidebar-brand span{color:var(--gold);letter-spacing:.15em;font-size:.6rem}.sidebar nav{gap:6px;display:grid}.sidebar nav a{color:#ffffff9e;align-items:center;gap:12px;padding:11px 14px;font-size:.9rem;text-decoration:none;display:flex}.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:#ffffff17}.sidebar nav a span{text-align:center;width:20px;color:var(--gold)}.sign-out{color:#ffffffb8;background:0 0;border:1px solid #fff3;margin-top:auto;padding:11px}.dashboard-content{min-width:0;padding:clamp(28px,5vw,62px)}.dashboard-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.dashboard-header h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3.1rem)}.dashboard-header p:last-child{color:var(--muted);margin:6px 0 0}.user-pill{background:var(--paper);border:1px solid var(--line);align-items:center;gap:10px;padding:9px 12px;display:flex}.user-pill>span{width:34px;height:34px;color:var(--forest);background:#e5eee8;border-radius:50%;place-items:center;font-weight:700;display:grid}.user-pill div{display:grid}.user-pill strong{font-size:.82rem}.user-pill small{color:var(--muted);font-size:.68rem}.bootstrap-banner{background:var(--paper);border:1px solid var(--line);align-items:center;gap:12px;min-height:58px;margin-bottom:20px;padding:12px 16px;display:flex}.bootstrap-banner div{display:grid}.bootstrap-banner strong{font-size:.84rem}.bootstrap-banner small{color:var(--muted)}.bootstrap-banner button{border:1px solid var(--forest);color:var(--forest);background:0 0;margin-left:auto;padding:6px 10px}.status-dot{background:var(--gold);border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 4px #c59a4b26}.ready .status-dot,.status-dot.ready{background:#4d9467;box-shadow:0 0 0 4px #4d946726}.error .status-dot,.status-dot.error{background:#bf5b50;box-shadow:0 0 0 4px #bf5b5026}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-grid article{background:var(--paper);border:1px solid var(--line);gap:14px;min-width:0;padding:20px;display:flex}.stat-grid article>div{min-width:0;display:grid}.stat-grid small{color:var(--muted);white-space:nowrap}.stat-grid strong{font-size:1.85rem;line-height:1.2}.stat-grid p{color:#929990;white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:.7rem;overflow:hidden}.stat-icon{flex:none;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.stat-icon.green{color:#397a52;background:#e3eee7}.stat-icon.amber{color:#9d7130;background:#f4ead7}.stat-icon.blue{color:#4b7384;background:#e2ebef}.stat-icon.rose{color:#a0554b;background:#f2e4e1}.dashboard-grid{grid-template-columns:1.05fr .95fr;gap:14px;margin-top:14px;display:grid}.dashboard-grid>article{background:var(--paper);border:1px solid var(--line);padding:24px}.card-heading{justify-content:space-between;align-items:flex-start;display:flex}.card-heading h2{margin:0;font-size:1.2rem}.card-heading>span{color:#dfe3dc;font-family:Playfair Display,serif;font-size:2rem}.empty-card{text-align:center}.empty-card .card-heading{text-align:left}.empty-illustration{width:72px;height:72px;color:var(--forest);background:#e9efe9;margin:30px auto 12px;padding:17px}.empty-card h3{margin:0;font-size:1rem}.empty-card>p{color:var(--muted);max-width:380px;margin:7px auto 18px;font-size:.84rem}.secondary-button{border:1px solid var(--line);color:var(--muted);cursor:default;background:0 0;padding:8px 18px}.activity-item{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:25px 0;display:grid}.activity-item div{display:grid}.activity-item strong{font-size:.86rem}.activity-item small,.activity-item time{color:var(--muted);font-size:.7rem}.activity-placeholder{color:#a2aaa4;place-items:center;min-height:140px;font-size:.8rem;display:grid}@media (width<=1020px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=720px){.auth-page{background:var(--paper);display:block}.brand-panel{display:none}.form-panel{align-items:start;min-height:100vh;padding:28px 20px 42px}.mobile-brand{align-items:center;gap:12px;margin-bottom:45px;display:flex}.mobile-brand .brand-mark{background:var(--forest);width:44px;height:44px;padding:10px}.mobile-brand>div:last-child{display:grid}.mobile-brand strong{font-size:.9rem}.mobile-brand span{color:var(--muted);font-size:.7rem}.dashboard-page{padding-bottom:68px;display:block}.sidebar{z-index:5;flex-direction:row;align-items:center;width:100%;height:64px;padding:7px 10px;position:fixed;top:auto;bottom:0}.sidebar-brand,.sign-out{display:none}.sidebar nav{grid-template-columns:repeat(4,1fr);gap:2px;width:100%;display:grid}.sidebar nav a{flex-direction:column;gap:1px;padding:3px;font-size:.62rem}.sidebar nav a span{font-size:1rem}.dashboard-content{padding:28px 16px}.dashboard-header{align-items:flex-start}.user-pill{padding:7px}.user-pill div{display:none}.stat-grid{grid-template-columns:1fr 1fr}.stat-grid article{gap:10px;padding:15px;display:grid}.bootstrap-banner{align-items:flex-start}}@media (width<=420px){.stat-grid{grid-template-columns:1fr}.stat-grid article{grid-template-columns:auto 1fr}.dashboard-header h1{font-size:1.9rem}.dashboard-grid>article{padding:19px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.admin-shell{background:#f4f5f1;grid-template-columns:268px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{z-index:30;color:#fff;background:linear-gradient(160deg,#153d2b 0%,#0d2d20 100%);flex-direction:column;height:100vh;padding:26px 18px 22px;display:flex;position:sticky;top:0}.admin-brand{align-items:center;gap:12px;padding:0 8px 30px;display:flex}.admin-brand-mark{color:#f0d397;border:1px solid #ffffff52;flex:none;place-items:center;width:44px;height:44px;font-weight:700;display:grid}.admin-brand>div{min-width:0;display:grid}.admin-brand strong{white-space:nowrap;font-size:.95rem}.admin-brand small{color:#d5ad62;letter-spacing:.14em;font-size:.58rem}.drawer-close{color:#fff;background:0 0;border:0;margin-left:auto;font-size:1.8rem;line-height:1;display:none}.drawer-backdrop{display:none}.nav-section-label{color:#ffffff61;letter-spacing:.12em;text-transform:uppercase;margin:0 13px 9px;font-size:.62rem;font-weight:700}.admin-nav{gap:7px;display:grid}.admin-nav button{text-align:left;color:#ffffffa6;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.admin-nav button:hover,.admin-nav button.active{color:#fff;background:#ffffff1a}.admin-nav button.active{box-shadow:inset 3px 0 #d3aa5b}.admin-nav button>span:last-child{gap:1px;display:grid}.admin-nav button strong{font-size:.88rem}.admin-nav button small{color:#ffffff6e;font-size:.66rem}.nav-icon{color:#e1be77;background:#ffffff12;flex:none;place-items:center;width:31px;height:31px;display:grid}.coming-soon{color:#ffffff5e;border:1px dashed #ffffff26;align-items:center;gap:11px;margin-top:20px;padding:13px;display:flex}.coming-soon>span{font-size:1.3rem}.coming-soon div{display:grid}.coming-soon strong{font-size:.76rem}.coming-soon small{font-size:.65rem}.sidebar-account{border-top:1px solid #ffffff1a;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:auto;padding:13px 8px 0;display:grid}.sidebar-account>span{color:#d9b96f;background:#ffffff17;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.sidebar-account>div{min-width:0;display:grid}.sidebar-account strong{color:#ffffffc7;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.sidebar-account small{color:#ffffff61;font-size:.62rem}.sidebar-account button{color:#ffffffa6;background:0 0;border:1px solid #ffffff26;grid-column:1/-1;padding:8px;font-size:.7rem}.sidebar-account button:hover{color:#fff;border-color:#ffffff4d}.admin-workspace{min-width:0}.admin-topbar{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fcfbf6f0;border-bottom:1px solid #e0e4de;align-items:center;gap:18px;min-height:74px;padding:12px clamp(22px,4vw,48px);display:flex;position:sticky;top:0}.topbar-title{min-width:0;display:grid}.topbar-title strong{font-size:.94rem}.topbar-title small{color:var(--muted);font-size:.68rem}.menu-button{border:1px solid var(--line);background:#fff;width:40px;height:40px;padding:10px;display:none}.menu-button span{background:var(--forest);height:2px;margin:4px 0;display:block}.topbar-user{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-user>div{min-width:0;display:grid}.topbar-user strong{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.82rem;overflow:hidden}.topbar-user small{color:var(--muted);font-size:.68rem}.user-avatar{width:38px;height:38px;color:var(--forest);background:#e4eee7;border-radius:50%;place-items:center;font-weight:700;display:grid}.logout-button{color:#5f6d64;background:0 0;border:1px solid #d8ddd8;margin-left:8px;padding:8px 12px;font-size:.75rem}.logout-button:hover{color:#913f36;background:#fff7f5;border-color:#d4aaa4}.page-stack{gap:20px;max-width:1460px;margin:0 auto;display:grid}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-header h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.2}.page-header>div>p:last-child{color:var(--muted);margin:7px 0 0}.page-kicker{color:#a8792f;letter-spacing:.16em;margin:0 0 5px;font-size:.64rem;font-weight:700}.status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;width:fit-content;min-height:26px;padding:4px 9px;font-size:.7rem;font-weight:600;display:inline-flex}.migration-notice{background:#faf9f3;border:1px solid #d8dfda;align-items:flex-start;gap:13px;padding:15px 17px;display:flex}.migration-notice>span{color:#fff;background:#61796b;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-family:serif;font-weight:700;display:grid}.migration-notice strong{font-size:.82rem}.migration-notice p{color:var(--muted);margin:2px 0 0;font-size:.75rem}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;display:grid}.metric-card{background:var(--paper);border:1px solid #dfe3df;min-width:0;padding:20px;position:relative;overflow:hidden}.metric-card small{color:var(--muted);font-size:.76rem;display:block}.metric-card>strong{margin-top:4px;font-size:2rem;line-height:1.2;display:block}.metric-card p{color:#939b95;white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:.68rem;overflow:hidden}.metric-mark{height:3px;position:absolute;inset:0 0 auto}.metric-mark.forest{background:#397653}.metric-mark.blue{background:#55869b}.metric-mark.amber{background:#c48c37}.metric-mark.violet{background:#766a9c}.metric-mark.line{background:#3b9a65}.dashboard-panels{grid-template-columns:1fr 1fr;gap:13px;display:grid}.content-card{background:var(--paper);border:1px solid #dfe3df;min-width:0;padding:24px}.section-heading{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.section-heading h2{margin:0;font-size:1.15rem}.vacant-room-list{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.vacant-room-list span{color:#704f1e;text-align:center;background:#f5eddd;border-left:3px solid #bd8736;min-width:96px;padding:13px 16px;font-weight:700}.rent-icon{color:#fff;background:var(--forest);border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.rent-total{color:var(--forest);margin-top:23px;font-size:clamp(2rem,4vw,3rem);display:block}.rent-panel>p{color:var(--muted);margin:7px 0 0;font-size:.75rem}.muted-copy{color:var(--muted)}.room-toolbar{background:var(--paper);border:1px solid #dfe3df;justify-content:space-between;align-items:center;gap:18px;padding:13px;display:flex}.search-field{background:#fff;border:1px solid #d5dbd6;align-items:center;gap:9px;width:min(430px,100%);margin:0;padding-left:12px;display:flex}.search-field>span{color:#718078;font-size:1.2rem}.search-field input{box-shadow:none;border:0;padding:10px 12px 10px 0}.filter-tabs{background:#edf0ed;padding:3px;display:flex}.filter-tabs button{color:#66736b;background:0 0;border:0;padding:8px 14px;font-size:.76rem}.filter-tabs button.active{color:var(--forest);background:#fff;font-weight:600;box-shadow:0 1px 5px #1432231a}.room-table-wrap{background:var(--paper);border:1px solid #dfe3df;overflow:auto}.room-table{border-collapse:collapse;width:100%;min-width:1180px;font-size:.78rem}.room-table th{color:#65726a;text-align:left;white-space:nowrap;background:#edf0ed;padding:13px 12px;font-size:.68rem;font-weight:600}.room-table td{vertical-align:middle;border-top:1px solid #e5e8e5;padding:14px 12px}.room-table tbody tr:hover{background:#fafbf8}.room-table td:first-child{display:grid}.room-table td:first-child small{color:var(--muted)}.room-code{color:var(--forest);font-size:.86rem}.unverified-date{color:#8d5d20;font-size:.72rem;font-weight:600}.table-footnote{color:#849088;margin:0;font-size:.7rem}.feedback-state{background:var(--paper);border:1px solid #dfe3df;align-items:center;gap:14px;min-height:120px;padding:24px;display:flex}.feedback-state h2{margin:0;font-size:1rem}.feedback-state p{color:var(--muted);margin:3px 0 0;font-size:.8rem}.feedback-state button{border:1px solid var(--forest);color:var(--forest);background:0 0;margin-left:auto;padding:8px 13px}.feedback-icon{background:#edf0ed;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.error-state{border-left:4px solid #b65a4f}.error-state .feedback-icon{color:#933f36;background:#fae7e3}.loading-state{gap:18px;display:grid}.loading-state.fullscreen{background:#f4f5f1;place-content:center;min-height:100vh;padding:30px}.loading-state.fullscreen .skeleton-grid{width:min(720px,80vw)}.loading-state-heading{align-items:center;gap:10px;display:flex}.loading-state-heading p{color:var(--muted);margin:0;font-size:.8rem}.loading-spinner{border:2px solid #ccd5cf;border-top-color:var(--forest);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.skeleton-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:13px;display:grid}.skeleton-card{background:var(--paper);border:1px solid #e1e5e1;align-content:center;gap:10px;min-height:132px;padding:20px;display:grid}.skeleton-card span,.skeleton-card strong,.skeleton-card small{background:linear-gradient(90deg,#edf0ed,#f8f9f7,#edf0ed) 0 0/200% 100%;border-radius:2px;height:10px;animation:1.3s infinite shimmer;display:block}.skeleton-card strong{width:45%;height:27px}.skeleton-card small{width:70%}.gate-page,.access-denied-page{background:#f4f5f1;place-items:center;min-height:100vh;padding:24px;display:grid}.gate-page>*{width:min(680px,100%)}.access-denied-card{background:var(--paper);text-align:center;border:1px solid #dfe3df;width:min(480px,100%);padding:40px}.access-denied-card>span{color:#923f36;background:#f7e4e0;border-radius:50%;place-items:center;width:48px;height:48px;margin:0 auto 18px;font-weight:700;display:grid}.access-denied-card h1{margin:0}.access-denied-card>p:not(.page-kicker){color:var(--muted)}.access-denied-card button{color:#fff;background:var(--forest);border:0;margin-top:10px;padding:11px 18px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=1120px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=860px){.admin-shell{display:block}.admin-sidebar{width:min(310px,88vw);transition:transform .22s;position:fixed;left:0;transform:translate(-105%);box-shadow:16px 0 40px #0003}.admin-sidebar.open{transform:translate(0)}.drawer-close{display:block}.drawer-backdrop{z-index:25;opacity:0;pointer-events:none;background:#04120c7a;border:0;padding:0;transition:opacity .2s;display:block;position:fixed;inset:0}.drawer-backdrop.visible{opacity:1;pointer-events:auto}.menu-button{display:block}.admin-content{padding:28px 20px 45px}.dashboard-panels{grid-template-columns:1fr}}@media (width<=700px){.topbar-title small,.topbar-user>div,.logout-button{display:none}.admin-topbar{padding:10px 15px}.topbar-title strong{font-size:.8rem}.user-avatar{margin-left:auto}.metric-grid{grid-template-columns:1fr 1fr}.room-toolbar{flex-direction:column;align-items:stretch}.search-field{max-width:none}.filter-tabs{grid-template-columns:repeat(3,1fr);display:grid}.filter-tabs button{padding-inline:7px}.room-table-wrap{background:0 0;border:0;overflow:visible}.room-table{min-width:0;display:block}.room-table thead{display:none}.room-table tbody{gap:12px;display:grid}.room-table tr{background:var(--paper);border:1px solid #dfe3df;grid-template-columns:1fr 1fr;padding:15px;display:grid}.room-table td{text-align:right;border-top:1px solid #eceeeb;grid-template-columns:minmax(110px,42%) 1fr;gap:8px;padding:8px 4px;display:grid}.room-table td:first-child{text-align:right;border-top:0;grid-column:1/-1;grid-template-columns:minmax(110px,42%) 1fr;display:grid}.room-table td:before{content:attr(data-label);color:#7a857e;text-align:left;font-size:.68rem;font-weight:500}.room-table td:first-child:before{align-self:center}.room-table td:nth-child(n+3){grid-column:1/-1}.room-table td>.status-badge{margin-left:auto}.room-table td:first-child small{grid-column:2}.room-code{font-size:1rem}}.meter-table td{vertical-align:top}.utility-entry{text-align:left;gap:5px;min-width:178px;padding:8px 0;display:grid}.utility-main-inputs{grid-template-columns:minmax(86px,.9fr) minmax(76px,1fr);gap:6px;display:grid}.utility-main-inputs select,.utility-detail select{color:#36516e;min-width:0;height:41px;font:inherit;background:#f8fbfe;border:1px solid #d4e4f1;border-radius:10px;padding:6px 7px;font-size:.72rem}.utility-main-inputs input{width:100%;min-width:0}.utility-previous,.utility-error{min-height:17px;padding-left:2px;font-size:.68rem;line-height:1.35}.utility-previous{color:#73879b}.utility-error{color:#bb3340;font-weight:700}.utility-entry.invalid .utility-main-inputs input,.utility-entry.invalid .utility-main-inputs select{background:#fffafb;border-color:#e76d77}.utility-entry.invalid .utility-main-inputs input:focus{box-shadow:0 0 0 3px #e76d7729}.utility-detail{color:#5d7690;background:#f3f9fe;border-radius:9px;flex-wrap:wrap;align-items:end;gap:7px 10px;padding:7px 8px;font-size:.68rem;display:flex}.utility-detail label{color:#5c748d;gap:3px;margin:0;font-size:.65rem;font-weight:700;display:grid}.utility-detail label select{min-width:86px;height:34px}.utility-detail>span{color:#1767aa;padding-bottom:5px;font-weight:700}.replacement-detail{grid-template-columns:1fr 1fr;display:grid}.replacement-detail>span{grid-column:1/-1;padding-bottom:0}.replacement-detail input{text-align:center;background:#fff;border:1px solid #d4e4f1;border-radius:8px;width:100%;min-width:0;height:34px;padding:6px}select:focus-visible{outline-offset:2px;outline:3px solid #38a6e86b}@media (width<=700px){.meter-table{min-width:620px}.utility-entry{min-width:204px}.utility-main-inputs{grid-template-columns:96px minmax(92px,1fr)}.utility-main-inputs select,.utility-main-inputs input{height:44px}.utility-detail{padding:8px}}html,body,#root{min-height:100%}body{background:var(--color-background);min-height:100vh}.admin-shell,.admin-workspace{min-width:0;min-height:100vh}.admin-workspace,.admin-content{background:var(--color-background);overflow:visible}.admin-content{min-width:0;min-height:calc(100vh - 76px)}.meter-page{width:min(100%,1240px);min-height:calc(100vh - 76px);padding-bottom:56px}.meter-table-wrap{max-height:none;overflow:visible}.meter-table{table-layout:fixed;min-width:0}.meter-table thead th{top:0}.meter-table thead th:first-child,.meter-table tbody th{width:118px}.meter-table td,.meter-view-electricity .meter-table td,.meter-view-water .meter-table td{width:auto}.meter-view-tabs{width:fit-content;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #dce9f3;border-radius:12px;gap:7px;padding:4px;display:flex}.meter-view-tabs button{color:#5d7187;background:0 0;border:0;border-radius:8px;min-height:38px;padding:7px 15px;font-size:.8rem;font-weight:700}.meter-view-tabs button.active{color:#fff;background:var(--color-primary-700);box-shadow:0 5px 12px #1d4c9b2e}.utility-entry{min-width:0}.utility-main-inputs{align-items:stretch;display:flex}.utility-main-inputs select{flex:none;font-size:14px}.utility-main-inputs select.meter-mode-normal{width:88px}.utility-main-inputs select.meter-mode-rollover{width:110px}.utility-main-inputs select.meter-mode-replacement{width:136px}.utility-main-inputs input{flex:1 1 0;width:auto;min-width:0;max-width:none}.meter-card-list,.meter-single-list{display:none}@media (width<=767px){html,body,#root,.admin-shell,.admin-workspace{max-width:100%}.admin-content{min-width:0;min-height:calc(100vh - 74px)}.meter-page{width:100%;min-width:0;min-height:0;padding-bottom:104px}.meter-view-tabs{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;justify-content:stretch;width:100%;min-width:0;position:sticky;top:62px}.meter-view-tabs button{flex:1;min-height:42px}.meter-table-wrap{display:none}.meter-card-list{gap:12px;display:grid}.meter-room-card{box-shadow:var(--shadow-sm);background:#fff;border:1px solid #dfeaf4;border-radius:15px;gap:14px;padding:15px;display:grid}.meter-room-card h2,.meter-single-list h2{color:var(--color-primary-900);margin:0;font-size:1rem}.meter-room-card section{gap:5px;display:grid}.meter-room-card h3{color:#55738f;margin:0;font-size:.75rem}.meter-room-card,.meter-room-card section,.meter-single-list,.meter-single-list article,.meter-single-list article>.utility-entry{width:100%;min-width:0}.meter-single-list{gap:9px;min-width:0;display:grid}.meter-single-list article{min-width:0;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #dfeaf4;border-radius:13px;grid-template-columns:78px minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.meter-single-list h2{min-width:0;padding-top:10px;font-size:.84rem}.utility-entry{width:100%;min-width:0}.utility-main-inputs{grid-template-columns:auto minmax(0,1fr);gap:8px;width:100%;min-width:0;display:grid}.utility-main-inputs select{flex:none;min-width:84px;max-width:140px;width:auto!important}.utility-main-inputs input{width:100%;min-width:0;max-width:100%;height:44px;font-size:1rem}.utility-detail{width:100%}.replacement-detail{grid-template-columns:1fr}.replacement-detail>span{grid-column:auto}.replacement-detail input{height:40px}.meter-mobile-save{padding-bottom:max(10px, env(safe-area-inset-bottom))}.meter-mobile-save .meter-button{min-height:50px}}@media (width<=370px){.admin-content{padding-inline:11px}.meter-room-card{padding:13px}.meter-single-list article{grid-template-columns:1fr;padding:10px}.meter-single-list article h2{padding-top:0}.utility-main-inputs{grid-template-columns:1fr;gap:6px}.utility-main-inputs select.meter-mode-normal,.utility-main-inputs select.meter-mode-rollover,.utility-main-inputs select.meter-mode-replacement{min-width:0;max-width:none;width:100%!important}.utility-main-inputs input{min-width:0}}img,input,select,button{box-sizing:border-box}.admin-main,.meter-page,.meter-mobile-card,.meter-mobile-entry{min-width:0}@media (width<=440px){.admin-content{padding-inline:14px}.page-header{flex-direction:column;align-items:flex-start;gap:10px}.metric-grid{grid-template-columns:1fr}.metric-card{padding:17px}.metric-card>strong{font-size:1.7rem}.content-card{padding:19px}.room-table tr{grid-template-columns:1fr}.room-table td{grid-column:1/-1}.migration-notice{padding:13px}}.admin-shell{background:var(--color-background)}.admin-sidebar{background:linear-gradient(165deg, var(--color-primary-900), #173d7e 62%, #1e5bb6);padding:28px 16px 20px;box-shadow:8px 0 28px #102a5c1f}.admin-brand{padding:0 8px 34px}.admin-brand-mark{color:#fff;background:linear-gradient(135deg, var(--color-sky-500), #6fc8f6);border:0;border-radius:14px;width:46px;height:46px;font-size:1.4rem;box-shadow:0 10px 20px #03143c38}.admin-brand strong{font-size:1rem}.admin-brand small{color:#dbf1ffb3}.nav-section-label{color:#daedff7a}.admin-nav{gap:8px}.admin-nav button{border-radius:12px;min-height:58px;padding:10px 12px;transition:background .2s,transform .2s}.admin-nav button:hover{background:#ffffff1a;transform:translate(2px)}.admin-nav button.active{background:linear-gradient(100deg,#5bc2f54d,#ffffff21);box-shadow:inset 3px 0 #87d9ff,0 8px 16px #03143c1f}.admin-nav button small{color:#dbf1ff99}.nav-icon{color:#e4f6ff;background:#ffffff1c;border-radius:10px;width:33px;height:33px}.coming-soon{color:#dbf1ff99;background:#ffffff0a;border-color:#c4e8ff2e;border-radius:14px}.sidebar-account{border-color:#cce8ff29}.sidebar-account>span{color:#d9f2ff;background:#ffffff21}.sidebar-account strong{color:#fff}.sidebar-account small{color:#dbf1ff9e}.sidebar-account button{color:#e9f7ffd9;border-color:#cbe9ff38;border-radius:10px;min-height:38px}.admin-topbar{min-height:76px;box-shadow:var(--shadow-sm);background:#ffffffeb;border:0}.topbar-title strong{color:var(--color-text);font-size:1rem}.topbar-title small{color:var(--color-muted)}.user-avatar{color:var(--color-primary-700);background:var(--color-sky-100)}.logout-button{min-height:38px;color:var(--color-muted);border-radius:10px}.menu-button{border-color:#d9e7f4;border-radius:10px}.menu-button span{background:var(--color-primary-700)}.admin-content{padding:clamp(26px,4vw,54px)}.page-stack{gap:22px;max-width:1500px}.page-kicker{color:var(--color-primary-500)}.page-header h1{color:var(--color-text);font-size:clamp(2rem,3vw,2.8rem)}.page-header>div>p:last-child{color:var(--color-muted)}.page-header-meta{align-items:center;gap:10px;display:flex}.page-header-meta time{color:var(--color-muted);white-space:nowrap;font-size:.78rem}.status-badge{min-height:28px;padding:5px 10px;font-weight:700}.status-badge.success{color:#087456;background:#dcf8ec}.status-badge.neutral{color:#526174;background:#edf2f7}.status-badge.warning{color:#9a650d;background:#fff3d3}.status-badge.info{color:#1767aa;background:var(--color-sky-100)}.data-notice{border-radius:var(--radius-md);color:#24517b;background:linear-gradient(90deg,#effaff,#f8fcff);border:1px solid #cbe8fa;align-items:flex-start;gap:12px;padding:15px 18px;display:flex}.data-notice>span{color:#fff;background:var(--color-sky-500);border-radius:50%;flex:none;place-items:center;width:25px;height:25px;font-family:Georgia,serif;font-weight:700;display:grid}.data-notice strong{font-size:.84rem}.data-notice p{color:#5a7790;margin:2px 0 0;font-size:.76rem}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.stat-card{border-radius:var(--radius-md);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-sm);border:1px solid #e1ebf5;gap:13px;padding:18px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.stat-card:after{content:"";opacity:.55;border-radius:0 0 0 62px;width:62px;height:62px;position:absolute;top:0;right:0}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.stat-card>div{z-index:1;min-width:0;position:relative}.stat-card p{color:var(--color-muted);margin:0;font-size:.72rem}.stat-card strong{color:var(--color-text);white-space:nowrap;margin:4px 0 2px;font-size:clamp(1.35rem,1.75vw,1.85rem);line-height:1.2;display:block}.stat-card small{color:#8ba0b7;white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.stat-card-icon{z-index:1;border-radius:12px;flex:none;place-items:center;width:39px;height:39px;font-size:1.15rem;font-weight:700;display:grid;position:relative}.stat-card-primary .stat-card-icon{color:#fff;background:var(--color-primary-700)}.stat-card-primary:after{background:#daeaff}.stat-card-sky .stat-card-icon{color:#1677b4;background:#dff4ff}.stat-card-sky:after{background:#d5f1ff}.stat-card-success .stat-card-icon{color:#087456;background:#ddf8ec}.stat-card-success:after{background:#d8f5e8}.stat-card-warning .stat-card-icon{color:#a76d11;background:#fff3d7}.stat-card-warning:after{background:#ffefca}.stat-card-info .stat-card-icon{color:#316dae;background:#e3f0ff}.stat-card-info:after{background:#dcecff}.stat-card-rent{background:linear-gradient(145deg,#f6fbff,#e9f6ff);border-color:#cceafa}.stat-card-rent .stat-card-icon{color:#fff;background:var(--color-sky-500)}.stat-card-rent:after{background:#c5ecff}.dashboard-panels{grid-template-columns:1.08fr .92fr;gap:16px}.content-card{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);border-color:#e1ebf5}.section-heading h2{color:var(--color-text)}.section-icon{width:38px;height:38px;color:var(--color-primary-700);background:var(--color-sky-100);border-radius:12px;place-items:center;font-size:1.2rem;display:grid}.occupancy-body{grid-template-columns:auto 1fr;align-items:center;gap:clamp(24px,4vw,46px);padding-top:22px;display:grid}.occupancy-ring{text-align:center;width:136px;height:136px;color:var(--color-text);background:radial-gradient(closest-side, #fff 77%, transparent 78% 100%), conic-gradient(var(--color-primary-500) var(--occupancy), #dceaf6 0);border-radius:50%;place-content:center;display:grid}.occupancy-ring strong{font-size:1.7rem;line-height:1}.occupancy-ring span{color:var(--color-muted);margin-top:4px;font-size:.64rem}.occupancy-detail{gap:13px;display:grid}.occupancy-detail p{color:var(--color-muted);align-items:center;gap:8px;margin:0;font-size:.8rem;display:flex}.occupancy-detail p strong{color:var(--color-text);margin-left:auto}.occupancy-key{background:var(--color-primary-500);border-radius:50%;width:9px;height:9px}.occupancy-key.vacant{background:#9fc4e0}.occupancy-progress{background:#e3eef7;border-radius:999px;height:9px;overflow:hidden}.occupancy-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary-700), var(--color-sky-500));height:100%;display:block}.vacant-room-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.vacant-room-card{background:#f3fbff;border:1px solid #cfeafa;border-radius:14px;align-items:center;gap:10px;padding:13px;display:flex}.vacant-room-icon{color:#1677b4;background:#dff4ff;border-radius:10px;place-items:center;width:35px;height:35px;display:grid}.vacant-room-card div{display:grid}.vacant-room-card strong{color:var(--color-primary-900);font-size:.9rem}.vacant-room-card small{color:#65819b;font-size:.67rem}.room-toolbar{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e1ebf5;align-items:center;padding:14px}.room-search{background:#f9fcff;border:1px solid #d9e7f4;border-radius:12px;align-items:center;gap:9px;width:min(440px,100%);margin:0;padding:0 12px;transition:border-color .2s,box-shadow .2s;display:flex}.room-search:focus-within{border-color:var(--color-sky-500);box-shadow:0 0 0 3px #38a6e826}.room-search>span{color:#5d8fb7;font-size:1.25rem}.room-search input{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:11px 0}.room-search button{color:#54718d;background:#e5f2fb;border:0;border-radius:50%;width:28px;height:28px;font-size:1.15rem;line-height:1}.room-filter-chips{gap:7px;display:flex}.room-filter-chips button{color:#536b82;background:#fff;border:1px solid #dce7f1;border-radius:10px;min-height:38px;padding:7px 11px;font-size:.75rem;font-weight:600}.room-filter-chips button span{color:#66819b;background:#edf5fb;border-radius:999px;place-items:center;min-width:20px;margin-left:3px;font-size:.64rem;display:inline-grid}.room-filter-chips button.active{border-color:var(--color-primary-700);color:#fff;background:var(--color-primary-700);box-shadow:0 5px 12px #1d4c9b2e}.room-filter-chips button.active span{color:var(--color-primary-700);background:#fff}.room-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.room-card{border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e0ebf5;gap:18px;padding:20px;transition:transform .2s,box-shadow .2s;display:grid}.room-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.room-card.vacant{background:linear-gradient(145deg,#fff,#f2fbff);border-color:#cceafa}.room-card-header{justify-content:space-between;gap:12px;display:flex}.room-card-header p{color:#7891aa;margin:0;font-size:.68rem;font-weight:700}.room-card-header h2{color:var(--color-primary-900);margin:2px 0 0;font-size:1.35rem}.room-card-header small{color:var(--color-muted);font-size:.7rem}.room-tenant{align-items:center;gap:11px;min-height:48px;display:flex}.tenant-avatar{color:#fff;background:linear-gradient(135deg, var(--color-primary-700), var(--color-sky-500));object-fit:cover;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:1rem;font-weight:700;display:grid;overflow:hidden}.room-card.vacant .tenant-avatar{color:#1973ab;background:#ddf3ff}.room-tenant div{gap:2px;min-width:0;display:grid}.room-tenant strong{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.room-tenant small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.room-rate-list{border-block:1px solid #e8eff6;gap:8px;margin:0;padding:13px 0;display:grid}.room-rate-list div{justify-content:space-between;gap:10px;display:flex}.room-rate-list dt{color:var(--color-muted);font-size:.72rem}.room-rate-list dd{color:#273c55;margin:0;font-size:.74rem;font-weight:700}.room-card-meta{gap:8px;display:grid}.line-status,.move-in-status{color:#6b7e91;align-items:center;gap:6px;width:fit-content;font-size:.69rem;display:inline-flex}.line-status i{background:#aebdca;border-radius:50%;width:7px;height:7px}.line-status.active{color:#087456}.line-status.active i{background:#19a675}.move-in-status{color:#9b690e}.room-card footer{color:#8595a5;text-align:right;font-size:.67rem}.table-footnote{color:#7c91a5}.feedback-state,.access-denied-card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border-color:#e1ebf5}.loading-state.fullscreen,.gate-page,.access-denied-page{background:var(--color-background)}.skeleton-card{border-radius:var(--radius-md);background:#fff;border-color:#e1ebf5}.skeleton-card span,.skeleton-card strong,.skeleton-card small{background:linear-gradient(90deg,#edf4fa,#f8fcff,#edf4fa)}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #38a6e86b}@media (width<=1240px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.room-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.admin-sidebar{background:linear-gradient(165deg, var(--color-primary-900), #173d7e 62%, #1e5bb6)}.dashboard-panels{grid-template-columns:1fr}.room-toolbar{flex-direction:column;align-items:stretch}.room-search{width:100%}.room-filter-chips{flex-wrap:wrap}}@media (width<=700px){.page-header-meta{flex-direction:column;align-items:flex-start;gap:6px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card{padding:15px}.stat-card-icon{width:35px;height:35px}.stat-card strong{font-size:1.35rem}.occupancy-body{gap:22px}.room-card-grid{grid-template-columns:1fr;gap:13px}.room-filter-chips{grid-template-columns:repeat(3,1fr);display:grid}.room-filter-chips button{padding-inline:6px;font-size:.68rem}.vacant-room-list{grid-template-columns:1fr}}@media (width<=440px){.admin-content{padding:20px 14px 35px}.metric-grid{grid-template-columns:1fr}.stat-card{padding:16px}.page-header h1{font-size:1.9rem}.data-notice{padding:13px}.occupancy-body{grid-template-columns:1fr;justify-items:center}.occupancy-detail{width:100%}.room-card{padding:18px}.room-filter-chips button span{display:none}}.meter-page{max-width:1180px}.meter-page .page-header{margin-bottom:-4px}.meter-toolbar{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e1ebf5;justify-content:space-between;align-items:end;gap:16px;padding:14px;display:flex}.meter-period-fields{gap:10px;display:flex}.meter-period-fields label{color:var(--color-muted);gap:5px;margin:0;font-size:.73rem;font-weight:700;display:grid}.meter-period-fields select{min-height:42px;color:var(--color-text);font:inherit;background:#f9fcff;border:1px solid #d9e7f4;border-radius:10px;padding:8px 34px 8px 11px;font-size:.86rem}.meter-toolbar-actions{gap:8px;display:flex}.meter-button{border:1px solid #0000;border-radius:10px;min-height:42px;padding:9px 15px;font-size:.83rem;font-weight:700;transition:transform .15s,box-shadow .15s}.meter-button:hover:not(:disabled){transform:translateY(-1px)}.meter-button.primary{color:#fff;background:linear-gradient(135deg, var(--color-primary-700), var(--color-primary-500));box-shadow:0 7px 14px #1d4c9b2e}.meter-button.secondary{color:var(--color-primary-700);background:#fff;border-color:#cfe1ef}.meter-button.invoice{color:#087456;background:#effcf6;border-color:#bde5d4}.meter-notice{border:1px solid;border-radius:11px;margin:-8px 0 0;padding:11px 14px;font-size:.8rem;font-weight:600}.meter-notice.success{color:#087456;background:#effcf6;border-color:#b9ead6}.meter-notice.error{color:#ab343f;background:#fff6f6;border-color:#ffc9c9}.meter-table-wrap{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #dfeaf4;overflow:visible}.meter-table{border-collapse:separate;border-spacing:0;width:100%;min-width:560px}.meter-table th,.meter-table td{border-bottom:1px solid #e9f0f6;height:59px}.meter-table thead th{z-index:3;color:#54718d;text-align:center;white-space:nowrap;background:#f3f9fe;padding:12px 16px;font-size:.76rem;font-weight:700;position:sticky;top:0}.meter-table thead th:first-child{z-index:4;text-align:left;width:128px}.meter-table tbody th{z-index:2;width:128px;color:var(--color-primary-900);text-align:left;background:#fff;padding:10px 16px;font-size:.9rem;position:sticky;left:0}.meter-table td{text-align:center;width:38%;padding:7px 12px}.meter-table tbody tr:last-child th,.meter-table tbody tr:last-child td{border-bottom:0}.meter-table tbody tr:focus-within,.meter-table tbody tr:focus-within th{background:#f5fbff}.meter-table input{min-width:120px;max-width:210px;height:41px;color:var(--color-text);text-align:center;font-variant-numeric:tabular-nums;background:#fbfdff;border-color:#d4e4f1;border-radius:10px;margin:0 auto;padding:8px}.meter-table input:focus{border-color:var(--color-sky-500);box-shadow:0 0 0 3px #38a6e829}.meter-mobile-save{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.invoice-modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#071c3d94;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.invoice-modal{width:min(780px,100%);max-height:min(820px,100vh - 44px);color:var(--text-primary);background:#fff;border:1px solid #d8e8f4;border-radius:22px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 28px 70px #051a3c57}.invoice-modal-header{border-bottom:1px solid #e5eef6;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px 16px;display:flex}.invoice-modal-header h2{color:var(--text-strong);margin:2px 0 5px;font-size:1.55rem}.invoice-modal-header p{color:var(--text-muted);margin:0;font-size:.78rem}.invoice-modal-header .page-kicker{color:var(--color-primary-500);letter-spacing:.12em;font-size:.68rem;font-weight:800}.invoice-modal-close{color:#557089;background:#f6fafd;border:1px solid #dce8f2;border-radius:12px;flex:none;width:40px;height:40px;font-size:1.45rem;line-height:1}.invoice-phase-notice{color:#24517b;background:#f1faff;border:1px solid #cbe8fa;border-radius:11px;margin:14px 24px 0;padding:10px 12px;font-size:.74rem;font-weight:600}.invoice-selection-actions{align-items:center;gap:8px;padding:14px 24px;display:flex}.invoice-selection-actions button{min-height:38px;color:var(--color-primary-700);background:#fff;border:1px solid #d5e5f1;border-radius:10px;padding:7px 11px;font-size:.72rem;font-weight:700}.invoice-selection-actions span{color:var(--text-muted);margin-left:auto;font-size:.72rem}.invoice-room-list{scrollbar-gutter:stable;flex:auto;min-height:150px;padding:0 24px 14px;overflow-y:auto}.invoice-room-option{cursor:pointer;border-bottom:1px solid #e8f0f6;grid-template-columns:auto 88px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;min-height:58px;padding:9px 12px;display:grid}.invoice-room-option:first-child{border-top:1px solid #e8f0f6}.invoice-room-option:hover{background:#f7fbff}.invoice-room-option.disabled{cursor:not-allowed;background:#fafcfd}.invoice-room-option input{width:19px;height:19px;accent-color:var(--color-primary-700);margin:0}.invoice-room-code{color:var(--text-strong);font-size:.86rem;font-weight:800}.invoice-room-status{color:#087456;min-width:0;font-size:.72rem}.invoice-room-option.disabled .invoice-room-status{color:#9a650d}.invoice-room-option strong{color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.78rem}.invoice-modal-state{min-height:220px;color:var(--text-muted);text-align:center;place-content:center;gap:12px;padding:24px;display:grid}.invoice-modal-state.error{color:#ab343f}.invoice-modal-state button{min-height:38px;color:var(--color-primary-700);background:#fff;border:1px solid #dce8f2;border-radius:10px;font-weight:700}.invoice-modal-footer{padding:16px 24px max(16px, env(safe-area-inset-bottom));background:#f8fbfe;border-top:1px solid #dfeaf3;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.invoice-modal-footer>div{gap:3px;min-width:0;display:grid}.invoice-modal-footer span{color:var(--text-muted);font-size:.72rem}.invoice-modal-footer strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.invoice-due-date{background:#fbfdff;border-top:1px solid #e8f0f6;grid-template-columns:auto minmax(170px,230px);align-items:center;gap:5px 12px;padding:12px 24px;display:grid}.invoice-due-date label{margin:0;font-size:.76rem}.invoice-due-date input{border:1px solid #d5e5f1;border-radius:10px;width:100%;min-width:0;min-height:42px;padding:8px 10px}.invoice-due-date small{color:var(--text-muted);grid-column:1/-1;font-size:.68rem}.invoice-issue-error{color:#ab343f;background:#fff6f6;border:1px solid #ffc9c9;border-radius:10px;margin:10px 24px;padding:10px 12px;font-size:.75rem;font-weight:700}.invoice-failure-list{color:#895407;background:#fff9ec;border-radius:10px;margin:0 24px 10px;padding:9px 12px;font-size:.71rem}.invoice-failure-list p{margin:3px 0}.invoice-confirmation{flex:auto;padding-bottom:18px;overflow-y:auto}.invoice-confirmation dl{border:1px solid #e1ebf4;border-radius:13px;gap:0;margin:18px 24px 0;display:grid;overflow:hidden}.invoice-confirmation dl div{border-bottom:1px solid #e8f0f6;grid-template-columns:145px minmax(0,1fr);gap:16px;padding:11px 14px;display:grid}.invoice-confirmation dl div:last-child{border-bottom:0}.invoice-confirmation dt{color:var(--text-muted);font-size:.73rem}.invoice-confirmation dd{color:var(--text-strong);text-align:right;overflow-wrap:anywhere;margin:0;font-size:.78rem;font-weight:700}.invoice-success-state{text-align:center;flex-direction:column;flex:auto;align-items:center;gap:8px;min-height:0;padding:24px;display:flex;overflow-y:auto}.invoice-success-icon{color:#fff;background:#16966d;border-radius:50%;place-items:center;width:52px;height:52px;font-size:1.5rem;font-weight:800;display:grid}.invoice-success-state>strong{color:var(--text-strong);font-size:1.05rem}.invoice-success-state>span{color:#087456;font-weight:800}.invoice-success-state>p{color:var(--text-muted);margin:6px 0 0;font-size:.72rem}.invoice-number-list{gap:7px;width:min(520px,100%);margin-top:10px;display:grid}.invoice-number-list div{text-align:left;background:#f8fbfe;border:1px solid #dce9f3;border-radius:10px;grid-template-columns:78px minmax(0,1fr) auto;gap:10px;padding:10px 12px;font-size:.73rem;display:grid}.invoice-number-list strong{overflow-wrap:anywhere}.invoice-close-result{grid-column:3}h1,h2,h3,h4,h5,h6,.page-header h1,.room-card-header h2,.meter-table tbody th{color:var(--text-strong)}label,.meter-period-fields label{color:var(--text-secondary);font-weight:600}input,select{color:var(--text-primary)}input::placeholder{color:var(--text-muted);opacity:1}.form-intro,.bootstrap-note,.topbar-title small,.topbar-user small,.page-header>div>p:last-child,.stat-card p,.room-tenant small,.utility-previous{color:var(--text-muted)}.topbar-title strong,.topbar-user strong,.section-heading h2,.content-card h2{color:var(--text-strong)}.meter-table input,.meter-period-fields select{color:var(--text-primary)}.invoice-adjusted-badge,.invoice-manual-badge{color:#075985;background:#e0f2fe;border-radius:999px;width:max-content;margin-top:4px;padding:2px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.invoice-manual-badge{vertical-align:middle;margin:0 0 0 6px}.invoice-item-list em{color:#526f88;white-space:normal;font-size:.68rem;font-style:normal}.invoice-item-list strong.negative{color:#b42331}.invoice-adjustment-backdrop{justify-content:center;align-items:center;padding:18px}.invoice-adjustment-dialog{width:min(760px,100%);min-width:0;max-height:calc(100vh - 36px);color:var(--text-primary);background:#fff;border-radius:18px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 70px #071c3d4d}.invoice-adjustment-dialog>header{border-bottom:1px solid #e1ebf5;justify-content:space-between;align-items:flex-start;gap:12px;padding:19px 22px 14px;display:flex}.invoice-adjustment-dialog>header h2{color:var(--text-strong);margin:2px 0;font-size:1.15rem}.invoice-adjustment-dialog>header span{color:var(--text-muted);font-size:.74rem}.invoice-adjustment-dialog>header button{color:#557089;background:#f6fafd;border:1px solid #dbe8f2;border-radius:10px;flex:none;width:40px;height:40px;font-size:1.3rem}.invoice-adjustment-scroll{flex:auto;gap:19px;min-width:0;min-height:0;padding:19px 22px 25px;display:grid;overflow-y:auto}.invoice-adjustment-scroll>section{gap:10px;min-width:0;display:grid}.invoice-adjustment-scroll h3{color:var(--text-strong);margin:0;font-size:.87rem}.invoice-adjustment-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.invoice-adjustment-heading>span{color:var(--text-muted);font-size:.68rem}.invoice-adjustment-heading button{color:#075985;background:#f0f9ff;border:1px solid #bfe0f3;border-radius:9px;min-height:36px;padding:6px 10px;font-size:.72rem;font-weight:800}.invoice-adjustment-locked{background:#f8fbfd;border:1px solid #dfebf4;border-radius:11px;display:grid;overflow:hidden}.invoice-adjustment-locked>div{border-bottom:1px solid #e7eff6;justify-content:space-between;gap:12px;padding:9px 11px;font-size:.75rem;display:flex}.invoice-adjustment-locked>div:last-child{border-bottom:0}.invoice-adjustment-help{color:var(--text-muted);margin:0;font-size:.69rem;line-height:1.55}.invoice-adjustment-item{background:#fbfdff;border:1px solid #dce9f3;border-radius:12px;grid-template-columns:minmax(0,1.35fr) minmax(130px,.65fr) auto;gap:9px;min-width:0;padding:12px;display:grid}.invoice-adjustment-item.discount{background:#fffaf1;border-color:#f2d7a5}.invoice-adjustment-item label,.invoice-adjustment-overall-reason{min-width:0;color:var(--text-secondary);gap:5px;font-size:.71rem;font-weight:700;display:grid}.invoice-adjustment-item label.wide{grid-column:1/3}.invoice-adjustment-item input,.invoice-adjustment-item textarea,.invoice-adjustment-overall-reason textarea{box-sizing:border-box;width:100%;min-width:0;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #cfe2ef;border-radius:9px;padding:8px 10px;font-size:.8rem}.invoice-adjustment-item input{min-height:42px}.invoice-adjustment-item textarea,.invoice-adjustment-overall-reason textarea{resize:vertical}.invoice-adjustment-item input:focus,.invoice-adjustment-item textarea:focus,.invoice-adjustment-overall-reason textarea:focus{border-color:var(--color-sky-500);outline:3px solid #38a6e826}.invoice-adjustment-item label small,.invoice-adjustment-overall-reason small{color:#b42331;font-size:.66rem}.invoice-adjustment-item .remove{color:#a9323d;background:#fff;border:1px solid #fecaca;border-radius:9px;align-self:end;min-height:39px;padding:7px 10px;font-size:.7rem;font-weight:700}.invoice-adjustment-summary{background:#f5fbff;border:1px solid #cfe4f1;border-radius:12px;padding:13px}.invoice-adjustment-summary dl{gap:6px;margin:0;display:grid}.invoice-adjustment-summary dl div{color:var(--text-secondary);justify-content:space-between;gap:10px;font-size:.76rem;display:flex}.invoice-adjustment-summary dt,.invoice-adjustment-summary dd{margin:0}.invoice-adjustment-summary .total{color:var(--text-strong);border-top:1px solid #d7e8f3;margin-top:3px;padding-top:8px;font-size:.88rem;font-weight:800}.invoice-adjustment-dialog>footer{padding:13px 22px max(13px,env(safe-area-inset-bottom));background:#fbfdff;border-top:1px solid #e1ebf5;grid-template-columns:1fr 1.35fr;gap:9px;display:grid}.invoice-adjustment-dialog>footer button{min-height:44px}@media (width<=700px){.invoice-adjustment-backdrop{align-items:flex-end;padding:0}.invoice-adjustment-dialog{border-radius:18px 18px 0 0;width:100%;max-height:94vh}.invoice-adjustment-dialog>header,.invoice-adjustment-scroll,.invoice-adjustment-dialog>footer{padding-inline:15px}.invoice-adjustment-item{grid-template-columns:minmax(0,1fr) minmax(112px,.7fr)}.invoice-adjustment-item label.wide{grid-column:1/-1}.invoice-adjustment-item .remove{grid-column:1/-1;width:100%}.invoice-adjustment-scroll{padding-bottom:28px}}@media (width<=380px){.invoice-adjustment-item{grid-template-columns:1fr}.invoice-adjustment-item label.wide,.invoice-adjustment-item .remove{grid-column:auto}.invoice-adjustment-dialog>footer{grid-template-columns:1fr}}.invoice-list-table-v2{min-width:1120px}.invoice-heading{background:url(/branding/logo-bankornkaw.png) 0/22mm no-repeat;padding-left:26mm}@media (width<=700px){.admin-brand-logo{width:40px;height:40px}}.invoice-page-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.invoice-print-action{background:#f5fbff;border:1px solid #cfe4f1;justify-content:space-between;align-items:center;gap:10px;display:flex}.invoice-print-action button{color:#fff;background:#0e7490;border:1px solid #0e7490;border-radius:9px;min-height:42px;padding:8px 12px;font-weight:800}.invoice-print-action button:disabled{cursor:not-allowed;opacity:.55}.invoice-print-action small{color:var(--text-muted);font-size:.72rem}.invoice-print-backdrop{z-index:130}.invoice-print-dialog{background:#fff;border:1px solid #dbe8f2;border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;width:min(680px,100%);max-height:min(760px,100vh - 36px);display:grid;overflow:hidden;box-shadow:0 24px 60px #071c3d4d}.invoice-print-dialog>header{border-bottom:1px solid #e1ebf5;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 15px;display:flex}.invoice-print-dialog h2{color:var(--text-strong);margin:2px 0 3px;font-size:1.14rem}.invoice-print-dialog header span{color:var(--text-muted);font-size:.76rem}.invoice-print-dialog>header button{width:36px;height:36px;color:var(--text-secondary);background:#f6fafd;border:1px solid #dbe8f2;border-radius:9px;font-size:1.25rem}.invoice-print-scroll{min-height:0;padding:15px 22px;overflow-y:auto}.invoice-print-actions{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.invoice-print-actions button{color:#075985;background:#f0f9ff;border:1px solid #b7dced;border-radius:9px;min-height:38px;padding:7px 10px;font-weight:750}.invoice-print-actions span{color:var(--text-secondary);font-size:.77rem;font-weight:700}.invoice-print-list{gap:7px;display:grid}.invoice-print-list label{cursor:pointer;border:1px solid #dceaf3;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;display:grid}.invoice-print-list label:has(input:checked){background:#f0f9ff;border-color:#38a6e8}.invoice-print-list label.disabled{cursor:not-allowed;opacity:.62;background:#f8fafc}.invoice-print-list input{accent-color:#0284c7;width:18px;height:18px}.invoice-print-list span{gap:2px;min-width:0;display:grid}.invoice-print-list small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.invoice-print-list b{color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem}.invoice-print-list em{color:#9a3412;grid-column:2/-1;font-size:.69rem;font-style:normal}.invoice-print-empty{color:var(--text-muted);text-align:center}.invoice-print-dialog>footer{padding:13px 22px max(13px, env(safe-area-inset-bottom));background:#fbfdff;border-top:1px solid #e1ebf5;grid-template-columns:1fr 1.4fr;gap:9px;display:grid}.invoice-print-dialog>footer button{min-height:44px}.invoice-summary-print-dialog{background:#fff;border:1px solid #dbe8f2;border-radius:18px;gap:16px;width:min(460px,100%);padding:20px;display:grid;box-shadow:0 24px 60px #071c3d4d}.invoice-summary-print-dialog>header{justify-content:space-between;gap:12px;display:flex}.invoice-summary-print-dialog h2{margin:2px 0}.invoice-summary-print-dialog>header button{background:#f6fafd;border:1px solid #dbe8f2;border-radius:9px;width:36px;height:36px}.invoice-summary-print-dialog>div{background:#f5fbff;border-radius:12px;gap:7px;padding:13px;display:grid}.invoice-summary-print-dialog p{color:var(--text-muted);margin:0;font-size:.75rem}.invoice-summary-print-dialog footer{grid-template-columns:1fr 1.4fr;gap:9px;display:grid}.invoice-summary-print-dialog footer button{min-height:44px}@media (width<=700px){.invoice-page-actions{justify-content:stretch;width:100%}.invoice-page-actions button{flex:150px}.invoice-print-dialog{border-radius:18px 18px 0 0;width:100%;max-height:94vh}.invoice-print-backdrop{align-items:flex-end;padding:0}.invoice-print-dialog>header,.invoice-print-scroll,.invoice-print-dialog>footer{padding-inline:15px}.invoice-print-actions{flex-direction:column;align-items:stretch}.invoice-print-list label{grid-template-columns:auto minmax(0,1fr)}.invoice-print-list b,.invoice-print-list em{grid-column:2}.invoice-print-action{flex-direction:column;align-items:stretch}}@media (width<=380px){.invoice-print-dialog>footer,.invoice-summary-print-dialog footer{grid-template-columns:1fr}.invoice-summary-print-dialog{padding:16px}.invoice-page-actions{grid-template-columns:1fr;display:grid}}.invoice-list-table-v2 th,.invoice-list-table-v2 td{vertical-align:middle}.invoice-room-code,.invoice-net-total{color:var(--text-strong);font-weight:800}.invoice-net-total{color:#075b9b}.invoice-delivery{color:var(--text-secondary);white-space:nowrap;gap:2px;font-weight:700;display:grid}.invoice-delivery small{color:var(--text-muted);font-size:.65rem;font-weight:600}.invoice-delivery.failed{color:#ae3540}.invoice-delivery.queued{color:#9a650d}.invoice-delivery.sent,.invoice-delivery.delivered{color:#087456}.invoice-tools{gap:6px;display:flex}.invoice-icon-button{width:34px;min-width:34px;line-height:1;padding:0!important;font-size:1rem!important}.invoice-icon-button:disabled,.invoice-list-card button:disabled{opacity:.45;cursor:not-allowed}.invoice-list-card footer{grid-template-columns:1fr 1fr;gap:8px;display:grid}.invoice-list-card footer button{min-width:0;min-height:42px}.invoice-card-total{border-top:1px solid #e9f0f6;padding-top:8px}.invoice-card-total dd{color:#075b9b;font-size:.92rem}.invoice-list-card dd{white-space:normal;overflow-wrap:anywhere}.invoice-list-card dd small{color:var(--text-muted);margin-top:2px;font-size:.65rem;font-weight:600;display:block}.invoice-dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#071c3d7a;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.invoice-due-dialog{background:#fff;border:1px solid #dbe8f2;border-radius:16px;gap:14px;width:min(430px,100%);padding:20px;display:grid;box-shadow:0 20px 55px #071c3d45}.invoice-due-dialog>header{justify-content:space-between;gap:12px;display:flex}.invoice-due-dialog h2{color:var(--text-strong);margin:2px 0 0;font-size:1.15rem}.invoice-due-dialog>header button{width:36px;height:36px;color:var(--text-secondary);background:#f6fafd;border:1px solid #dbe8f2;border-radius:9px;font-size:1.25rem}.invoice-due-dialog>p,.invoice-due-dialog small{color:var(--text-muted);margin:0;font-size:.77rem}.invoice-due-dialog label{color:var(--text-secondary);gap:6px;font-size:.78rem;font-weight:700;display:grid}.invoice-due-dialog input{width:100%;min-height:43px;color:var(--text-primary);background:#fff;border:1px solid #cfe2ef;border-radius:9px;padding:8px 10px}.invoice-due-dialog footer{grid-template-columns:1fr 1.35fr;gap:8px;display:grid}.invoice-due-dialog footer button{min-height:42px}.invoice-dialog-error{background:#fff6f6;border:1px solid #ffc9c9;border-radius:9px;margin:0;padding:9px 10px;color:#a9323d!important}.invoice-due-dialog textarea{resize:vertical;width:100%;min-width:0;color:var(--text-primary);font:inherit;box-sizing:border-box;background:#fff;border:1px solid #cfe2ef;border-radius:9px;padding:10px}.invoice-due-dialog textarea:focus,.invoice-due-dialog input:focus{border-color:var(--color-primary-500);outline:3px solid #0ea5e929}.invoice-dialog-summary{background:#f4f9fd;border-radius:11px;gap:4px;padding:12px;display:grid}.invoice-dialog-summary strong{color:var(--text-strong)}.invoice-dialog-summary span{color:var(--text-muted);font-size:.75rem}.invoice-warning{background:#fffbeb;border:1px solid #f4d99d;border-radius:10px;padding:10px;color:#815510!important}.invoice-warning.danger{background:#fff6f6;border-color:#fecaca;color:#a9323d!important}.meter-button.danger{color:#fff;background:#c2414d}.invoice-reissue-dialog{width:min(560px,100%);max-height:calc(100vh - 36px);overflow-y:auto}.invoice-reissue-preview{border:1px solid #dce8f2;border-radius:12px;display:grid;overflow:hidden}.invoice-reissue-preview>div{border-bottom:1px solid #e7eff6;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.invoice-reissue-preview>div:last-child{border-bottom:0}.invoice-reissue-preview span{color:var(--text-muted);font-size:.75rem}.invoice-reissue-preview strong{color:var(--text-strong);font-size:.8rem}.invoice-reissue-preview .total{background:#eff9ff}.invoice-dialog-error ul{margin:6px 0 0;padding-left:18px}.invoice-reissue-badge{color:#075985;background:#e0f2fe;border-radius:999px;width:max-content;margin-top:4px;padding:2px 7px;font-size:.62rem;font-weight:800;display:block}.invoice-reissue-badge.muted{color:#475569;background:#e2e8f0}.invoice-management{background:#f8fbfe;border:1px solid #dbe8f2;border-radius:13px;padding:14px}.invoice-management p,.invoice-reissue-links p{color:var(--text-muted);margin:0;font-size:.75rem}.invoice-management>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.invoice-management button,.invoice-reissue-links button{min-height:40px;color:var(--color-primary-700);background:#fff;border:1px solid #cfe2ef;border-radius:9px;padding:8px 10px;font-weight:700}.invoice-management button.danger{color:#b42331;border-color:#fecaca}.invoice-management button.danger-outline{color:#9f2732;background:#fff7f7;border-color:#f7b8bd}.invoice-management button:disabled{cursor:not-allowed;opacity:.48}.invoice-management small{color:#a9323d}.invoice-reissue-links button{text-align:left;width:100%}@media (width<=700px){.invoice-list-card{gap:12px}.invoice-card-top>div>span{white-space:normal}.invoice-list-card dl{grid-template-columns:1fr 1fr}.invoice-list-card dl div{min-width:0}.invoice-list-card dd{text-align:right}.invoice-list-card dl div:first-child{grid-column:1/-1}.invoice-list-card dl div:first-child dd{text-align:left}.invoice-management>div{grid-template-columns:1fr}}@media (width<=380px){.invoice-list-card footer{grid-template-columns:1fr}.invoice-due-dialog{padding:16px}.invoice-due-dialog footer,.invoice-management>div{grid-template-columns:1fr}.invoice-reissue-dialog{border-radius:16px 16px 0 0;max-height:92vh}}.admin-brand{align-items:center;gap:12px;padding-bottom:24px}.admin-brand-logo{object-fit:contain;flex:0 0 72px;width:72px;height:72px}.admin-brand>div,.invoice-heading{min-width:0}@media (width<=700px){.admin-brand-logo{flex-basis:52px;width:52px;height:52px}}.invoice-page{min-width:0;max-width:1440px}.invoice-page-header{align-items:end}.invoice-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.invoice-summary-card{min-width:0;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #deebf5;border-radius:15px;gap:4px;padding:16px;display:grid}.invoice-summary-card p,.invoice-summary-card small{color:var(--text-muted);margin:0;font-size:.7rem}.invoice-summary-card strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1.1rem;overflow:hidden}.invoice-summary-card.blue{background:#f5fbff;border-color:#cce9fb}.invoice-summary-card.green{background:#f4fcf8;border-color:#ccebdd}.invoice-summary-card.orange{background:#fffaf1;border-color:#f5dfb6}.invoice-summary-card.red{background:#fff8f8;border-color:#f5d2d5}.invoice-filter-bar{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e1ebf5;grid-template-columns:120px 145px 130px 148px minmax(210px,1fr) auto;align-items:end;gap:10px;padding:14px;display:grid}.invoice-filter-bar label{min-width:0;color:var(--text-muted);gap:5px;margin:0;font-size:.7rem;font-weight:700;display:grid}.invoice-filter-bar select,.invoice-filter-bar input{box-sizing:border-box;width:100%;min-width:0;min-height:42px;color:var(--text-primary);font:inherit;background:#fbfdff;border:1px solid #d6e5f1;border-radius:10px;padding:8px 10px;font-size:.82rem}.invoice-filter-bar input:focus,.invoice-filter-bar select:focus{border-color:var(--color-sky-500);box-shadow:0 0 0 3px #38a6e829}.invoice-clear-filter{min-height:42px;color:var(--color-primary-700);white-space:nowrap;background:#fff;border:1px solid #d5e5f1;border-radius:10px;padding:8px 12px;font-size:.76rem;font-weight:700}.invoice-table-wrap{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #dfeaf4;overflow-x:auto}.invoice-list-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1180px}.invoice-list-table th,.invoice-list-table td{color:var(--text-secondary);text-align:left;white-space:nowrap;border-bottom:1px solid #e9f0f6;padding:12px 13px;font-size:.74rem}.invoice-list-table thead th{z-index:2;color:#54718d;background:#f3f9fe;font-size:.7rem;position:sticky;top:0}.invoice-list-table tbody tr:last-child td{border-bottom:0}.invoice-list-table tbody tr:hover{background:#f8fcff}.invoice-list-table td strong{color:var(--text-strong)}.invoice-list-table button,.invoice-list-card button{min-height:34px;color:var(--color-primary-700);background:#fff;border:1px solid #cfe2ef;border-radius:8px;padding:6px 9px;font-size:.7rem;font-weight:700}.invoice-status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:25px;padding:3px 8px;font-size:.67rem;font-weight:800;display:inline-flex}.invoice-status.unpaid{color:#9a650d;background:#fff2d9}.invoice-status.payment_submitted{color:#6752a3;background:#eee9ff}.invoice-status.partially_paid{color:#38649b;background:#e8f3ff}.invoice-status.paid{color:#087456;background:#dcf7ea}.invoice-status.overdue{color:#ae3540;background:#ffeaec}.invoice-status.void{color:#62717f;background:#e9eef2}.invoice-card-list{display:none}.invoice-list-card{min-width:0;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #deebf5;border-radius:15px;gap:14px;padding:15px;display:grid}.invoice-card-top{justify-content:space-between;gap:12px;min-width:0;display:flex}.invoice-card-top>div{gap:2px;min-width:0;display:grid}.invoice-card-top p,.invoice-card-top span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.7rem;overflow:hidden}.invoice-card-top strong{color:var(--text-strong);font-size:1rem}.invoice-list-card dl{border-top:1px solid #e9f0f6;grid-template-columns:1fr 1fr;gap:9px 14px;margin:0;padding-top:12px;display:grid}.invoice-list-card dl div{gap:2px;min-width:0;display:grid}.invoice-list-card dt{color:var(--text-muted);font-size:.65rem}.invoice-list-card dd{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.74rem;font-weight:700;overflow:hidden}.invoice-list-card>button{width:100%;min-height:42px}.invoice-pagination{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;padding:0 2px;font-size:.74rem;display:flex}.invoice-pagination>div{gap:8px;display:flex}.invoice-pagination button{min-height:38px;color:var(--color-primary-700);background:#fff;border:1px solid #d1e1ee;border-radius:9px;padding:7px 11px;font-size:.74rem;font-weight:700}.invoice-pagination button:disabled{opacity:.5;cursor:not-allowed}.invoice-list-skeleton,.invoice-detail-skeleton{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e1ebf5;gap:10px;padding:18px;display:grid}.invoice-list-skeleton span,.invoice-detail-skeleton span{background:linear-gradient(90deg,#edf4fa,#f8fcff,#edf4fa);border-radius:10px;height:44px}.invoice-list-skeleton span:nth-child(2){width:88%}.invoice-list-skeleton span:nth-child(3){width:95%}.invoice-list-skeleton span:nth-child(4){width:77%}.invoice-drawer-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#071c3d7a;justify-content:flex-end;display:flex;position:fixed;inset:0}.invoice-detail-drawer{width:min(660px,100%);min-width:0;min-height:100vh;color:var(--text-primary);background:#fff;flex-direction:column;display:flex;box-shadow:-18px 0 45px #071c3d3b}.invoice-detail-drawer>header{border-bottom:1px solid #e1ebf5;justify-content:space-between;align-items:flex-start;gap:14px;padding:21px 24px 16px;display:flex}.invoice-detail-drawer h1{color:var(--text-strong);margin:2px 0 0;font-size:1.35rem}.invoice-detail-drawer>header button{color:#557089;background:#f6fafd;border:1px solid #dbe8f2;border-radius:11px;flex:none;width:40px;height:40px;font-size:1.35rem}.invoice-detail-scroll{flex:auto;min-height:0;padding:22px 24px 30px;overflow-y:auto}.invoice-detail-drawer>footer{padding:14px 24px max(14px, env(safe-area-inset-bottom));background:#fbfdff;border-top:1px solid #e1ebf5}.invoice-detail-drawer>footer button{width:100%}.invoice-detail-identity{justify-content:space-between;gap:12px;display:flex}.invoice-detail-identity>div{gap:3px;min-width:0;display:grid}.invoice-detail-identity p,.invoice-detail-identity span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.73rem;overflow:hidden}.invoice-detail-identity h2{color:var(--text-strong);margin:0;font-size:1.32rem}.invoice-detail-period{color:var(--text-muted);margin:10px 0 18px;font-size:.76rem}.invoice-detail-totals{border:1px solid #dbe9f3;border-radius:13px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.invoice-detail-totals div{border-bottom:1px solid #e6eff6;border-right:1px solid #e6eff6;gap:4px;padding:11px 13px;display:grid}.invoice-detail-totals div:nth-child(2n){border-right:0}.invoice-detail-totals div:nth-last-child(-n+1){border-bottom:0}.invoice-detail-totals span{color:var(--text-muted);font-size:.69rem}.invoice-detail-totals strong{color:var(--text-strong);font-size:.88rem}.invoice-detail-totals .outstanding{color:#9a650d;background:#fffaf0;border-right:0;grid-column:1/-1}.invoice-detail-section{gap:10px;margin-top:24px;display:grid}.invoice-detail-section h3{color:var(--text-strong);margin:0;font-size:.91rem}.invoice-item-list,.invoice-history-list{border:1px solid #e1ebf4;border-radius:12px;display:grid;overflow:hidden}.invoice-item-list>div,.invoice-history-list>div{border-bottom:1px solid #e7eff6;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:11px 12px;display:flex}.invoice-item-list>div:last-child,.invoice-history-list>div:last-child{border-bottom:0}.invoice-item-list>div>div,.invoice-history-list>div>div{gap:2px;min-width:0;display:grid}.invoice-item-list span,.invoice-history-list span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.invoice-item-list strong,.invoice-history-list strong{color:var(--text-strong);font-size:.78rem}.invoice-utility-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.invoice-utility-detail{border:1px solid #dceaf4;border-radius:12px;min-width:0;overflow:hidden}.invoice-utility-detail header{background:#f5fbff;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.invoice-utility-detail header strong{color:var(--text-strong);font-size:.8rem}.invoice-utility-detail header span{color:#356589;font-size:.65rem;font-weight:700}.invoice-utility-detail dl{grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:12px;display:grid}.invoice-utility-detail dl div{gap:2px;min-width:0;display:grid}.invoice-utility-detail dt{color:var(--text-muted);font-size:.65rem}.invoice-utility-detail dd{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.73rem;font-weight:700;overflow:hidden}.invoice-detail-error{color:#a9323d;background:#fff6f6;border:1px solid #ffc9c9;border-radius:12px;gap:6px;padding:16px;display:grid}.invoice-detail-error span{font-size:.78rem}.sidebar-account small,.admin-nav button small{color:#dbf1ffb8}@media (width<=700px){.meter-page{gap:16px;padding-bottom:82px}.meter-toolbar{flex-direction:column;align-items:stretch;padding:12px}.meter-period-fields{grid-template-columns:1fr 1.35fr;display:grid}.meter-toolbar-actions{grid-template-columns:1fr 1fr;display:grid}.meter-toolbar-actions .meter-button{padding-inline:7px}.meter-table-wrap{border-radius:13px;max-height:none;margin-inline:-1px}.meter-table{min-width:510px}.meter-table thead th:first-child,.meter-table tbody th{width:105px;padding-inline:12px}.meter-table td{padding-inline:9px}.meter-table input{width:min(100%,145px);min-width:105px;height:46px;font-size:1rem}.meter-mobile-save{z-index:20;padding:10px 14px max(10px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-top:1px solid #dceaf5;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 22px #0f37781a}.meter-mobile-save .meter-button{width:100%;min-height:48px}.invoice-modal-backdrop{place-items:end center;padding:0}.invoice-modal{border-radius:20px 20px 0 0;width:100%;max-height:92vh}.invoice-modal-header{padding:18px 16px 13px}.invoice-phase-notice{margin:11px 16px 0}.invoice-selection-actions{flex-wrap:wrap;padding:12px 16px}.invoice-selection-actions span{width:100%;margin:2px 0 0}.invoice-room-list{padding-inline:12px}.invoice-room-option{grid-template-columns:auto 78px minmax(0,1fr);gap:8px;padding-inline:8px}.invoice-room-option strong{grid-column:3}.invoice-modal-footer{padding:13px 16px max(13px, env(safe-area-inset-bottom));grid-template-columns:1fr 1fr}.invoice-modal-footer>div{grid-column:1/-1}.invoice-modal-footer .meter-button{min-height:46px;padding-inline:8px}.invoice-due-date{grid-template-columns:1fr;padding:11px 16px}.invoice-due-date small{grid-column:auto}.invoice-confirmation dl{margin-inline:16px}.invoice-confirmation dl div{grid-template-columns:110px minmax(0,1fr);gap:10px}.invoice-issue-error,.invoice-failure-list{margin-inline:16px}.invoice-success-state{padding:20px 16px}.invoice-number-list div{grid-template-columns:70px minmax(0,1fr)}.invoice-number-list div>span:last-child,.invoice-close-result{grid-column:2}.invoice-page{padding-bottom:30px}.invoice-page-header{align-items:flex-start}.invoice-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-summary-card:last-child{grid-column:1/-1}.invoice-filter-bar{grid-template-columns:1fr 1fr;padding:12px}.invoice-search{grid-column:1/-1}.invoice-clear-filter{width:100%}.invoice-table-wrap{display:none}.invoice-card-list{gap:11px;display:grid}.invoice-pagination{flex-direction:column;align-items:stretch}.invoice-pagination>div{grid-template-columns:1fr 1fr;display:grid}.invoice-detail-drawer{width:100%}.invoice-detail-drawer>header,.invoice-detail-scroll,.invoice-detail-drawer>footer{padding-inline:16px}.invoice-detail-scroll{padding-bottom:24px}.invoice-utility-list{grid-template-columns:1fr}}@media (width<=380px){.invoice-room-option{grid-template-columns:auto 72px minmax(0,1fr)}.invoice-room-status{font-size:.68rem}.invoice-modal-footer{grid-template-columns:1fr}.invoice-modal-footer>div{grid-column:auto}.invoice-selection-actions button{flex:1;padding-inline:6px}.invoice-confirmation dl div{grid-template-columns:1fr;gap:3px}.invoice-confirmation dd{text-align:left}.invoice-close-result{grid-column:auto}.invoice-summary-grid{grid-template-columns:1fr}.invoice-summary-card:last-child{grid-column:auto}.invoice-filter-bar{grid-template-columns:1fr}.invoice-search{grid-column:auto}.invoice-list-card dl,.invoice-detail-totals{grid-template-columns:1fr}.invoice-detail-totals div,.invoice-detail-totals div:nth-child(2n){border-right:0}.invoice-detail-totals div:nth-last-child(-n+1){border-bottom:1px solid #e6eff6}.invoice-detail-totals .outstanding{border-bottom:0}}.admin-content,.auth-card,.content-card,.meter-toolbar,.meter-table-wrap,.meter-room-card,.meter-single-list article{color:var(--text-primary)}.topbar-title strong,.topbar-user strong,.page-header h1,.section-heading h2,.content-card h2,.room-card-header h2{color:var(--text-strong)}.topbar-title small,.topbar-user small,.meter-period-fields label,.utility-previous,.table-footnote{color:var(--text-muted)}.meter-table thead th{color:var(--text-secondary)}.meter-table tbody th{color:var(--text-strong)}.meter-table input,.meter-period-fields select,.utility-main-inputs input,.utility-main-inputs select,.utility-detail input,.utility-detail select{color:var(--text-primary)}.meter-button.secondary,.logout-button,.room-filter-chips button{color:var(--text-secondary)}
