:root{font-family:Noto Sans Thai,sans-serif;color:#172b3e;background:#f4f7fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh}.app>aside{position:fixed;inset:0 auto 0 0;width:250px;background:#102c46;color:#d9e5ee;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 22px}.brand>div{width:40px;height:40px;border-radius:11px;background:#fff;color:#183f61;display:grid;place-items:center}.brand span{display:flex;flex-direction:column}.brand b{font-size:20px;color:#fff;line-height:1.2}.brand small{font-size:8px;letter-spacing:1.4px;color:#8fa6b8}.brand>button{display:none}.property{border-top:1px solid #29465e;border-bottom:1px solid #29465e;padding:16px 5px;margin-bottom:15px}.property>span{font-size:10px;text-transform:uppercase;color:#8ba0b2;letter-spacing:.5px}.property>button{display:flex;align-items:center;width:100%;border:0;background:transparent;color:#fff;padding:10px 0 0;gap:9px}.building-mini{width:30px;height:30px;border-radius:7px;background:#254962;display:grid;place-items:center}.property b{margin-right:auto}nav{display:flex;flex-direction:column;gap:3px}nav button{height:42px;border:0;border-radius:8px;background:transparent;color:#afc0ce;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left}nav button:hover,nav button.active{background:#fff;color:#173b5b;font-weight:600}nav button span{flex:1}nav em{font-style:normal;background:#e25555;color:#fff;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px}.help{margin-top:auto;background:#1b405d;border:1px solid #31536c;border-radius:11px;padding:13px;display:flex;flex-direction:column;gap:4px}.help b{font-size:12px;color:#fff}.help span{font-size:10px;color:#a9bdcc}.help button{margin-top:7px;border:0;border-radius:6px;padding:7px;background:#fff;color:#173b5b;font-size:11px;font-weight:600}.version{color:#6f8a9e;text-align:center;margin-top:12px;font-size:9px}main{margin-left:250px;min-height:100vh}.topbar{height:86px;background:#fff;border-bottom:1px solid #e4e9ee;padding:0 30px;display:flex;align-items:center}.topbar h1{margin:0;font-size:23px}.topbar p,.panel-head p{margin:2px 0 0;color:#80909e;font-size:12px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:13px}.search{height:39px;width:290px;border:1px solid #dde4ea;border-radius:8px;display:flex;align-items:center;gap:8px;padding:0 11px;color:#8b99a5;background:#f9fbfc}.search input{border:0;outline:0;background:transparent;width:100%;font-size:12px}.icon-btn{border:1px solid #e2e7eb;background:#fff;width:39px;height:39px;border-radius:9px;display:grid;place-items:center;color:#526676}.alert{position:relative}.alert i{position:absolute;width:7px;height:7px;background:#e55353;border-radius:50%;right:8px;top:7px;border:1px solid #fff}.profile{display:flex;align-items:center;gap:9px;border-left:1px solid #e5e9ed;padding-left:14px}.profile>div,.avatar{width:36px;height:36px;border-radius:9px;background:#dce8f1;color:#173f61;display:grid;place-items:center;font-weight:700}.profile span{display:flex;flex-direction:column}.profile b{font-size:12px}.profile small{color:#8795a1;font-size:10px}.content{padding:25px 30px 45px;max-width:1600px;margin:auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.card{background:#fff;border:1px solid #e5eaef;border-radius:12px;box-shadow:0 2px 7px #172b3e06}.stat{padding:18px;display:flex;align-items:flex-start;gap:13px}.stat-icon{width:43px;height:43px;border-radius:10px;display:grid;place-items:center}.stat-icon.navy{background:#e5eef5;color:#183f61}.stat-icon.green{background:#e5f4ed;color:#228b62}.stat-icon.amber{background:#fff2dc;color:#c27a14}.stat-icon.red{background:#fee9e8;color:#d34848}.stat>div:last-child{display:flex;flex-direction:column}.stat span{font-size:11px;color:#7b8c99}.stat strong{font-size:21px;margin:2px 0}.stat small{font-size:10px;color:#84929d}.grid-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.7fr);gap:18px;margin-bottom:18px}.grid-main.bottom{grid-template-columns:minmax(0,1.5fr) minmax(310px,.75fr)}.panel{padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.panel-head h2{font-size:15px;margin:0}.row{display:flex;gap:8px}.btn{border:0;border-radius:8px;height:36px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:600}.btn.primary{background:#173e60;color:#fff}.btn.primary:hover{background:#0e304d}.btn.ghost{background:#fff;color:#4e6577;border:1px solid #dce4e9}.btn.full{width:100%}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.room-tile{background:#f8fafb;border:1px solid #e7ecef;border-radius:9px;padding:12px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:6px}.room-tile>span{font-size:18px;font-weight:700}.room-tile>small,.room-tile>b{grid-column:1/-1}.room-tile>small{color:#7d8d99;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-tile>b{font-size:10px;color:#526a7b}.room-tile.vacant{background:#f7fbff;border-color:#cfe3f3}.room-tile.maintenance{background:#fffaf3;border-color:#f3dfbd}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:4px 8px;font-size:9px;font-weight:600;white-space:nowrap}.badge i{width:5px;height:5px;border-radius:50%}.badge.green{background:#e4f4ec;color:#187b54}.badge.green i{background:#20a875}.badge.blue{background:#e7f1fa;color:#2e709f}.badge.blue i{background:#438bbd}.badge.orange,.badge.amber{background:#fff0d8;color:#aa6d15}.badge.orange i,.badge.amber i{background:#e69b2f}.badge.red{background:#fee7e6;color:#b83535}.badge.red i{background:#e45050}.donut-wrap{display:grid;place-items:center;padding:4px}.donut{width:125px;height:125px;border-radius:50%;background:conic-gradient(#238d68 0,#238d68 21%,#f1bc59 21%,#f1bc59);display:grid;place-items:center}.donut:before{content:"";width:86px;height:86px;border-radius:50%;background:#fff;position:absolute}.donut span{position:relative;text-align:center;font-size:9px;color:#82909b;display:flex;flex-direction:column}.donut b{font-size:20px;color:#20384b}.legend{display:flex;flex-direction:column;gap:9px;margin-top:11px}.legend span{display:flex;align-items:center;gap:7px;font-size:10px;color:#6e808e}.legend b{margin-left:auto;color:#283f50}.legend i{width:7px;height:7px;border-radius:50%}.l-green{background:#238d68}.l-amber{background:#f1bc59}.table-panel{min-width:0}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:#81909c;font-weight:500;background:#f8fafb;padding:10px;border-top:1px solid #edf0f2;border-bottom:1px solid #edf0f2;white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid #edf0f2;color:#526574;white-space:nowrap}td>b{color:#273e50}td small{display:block;color:#93a0a9;margin-top:2px}.table-scroll{overflow:auto}.repair-list{display:flex;flex-direction:column}.repair{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f2}.repair:last-child{border:0}.repair-icon{width:34px;height:34px;background:#edf3f7;color:#42647c;border-radius:8px;display:grid;place-items:center}.repair-icon.urgent{background:#fee9e8;color:#d64a4a}.repair>div:nth-child(2){display:flex;flex-direction:column}.repair b{font-size:11px}.repair small{font-size:9px;color:#8797a3}.repair>span{margin-left:auto;font-size:9px;color:#546b7d;background:#eef3f6;border-radius:20px;padding:4px 7px}.filters{display:flex;gap:7px;margin:-3px 0 17px;overflow:auto}.filters button{white-space:nowrap;border:1px solid #e1e7eb;background:#fff;border-radius:7px;padding:7px 11px;font-size:10px;color:#657785}.filters button.active{background:#173e60;color:#fff;border-color:#173e60}.room-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.room-cards article{border:1px solid #e3e9ed;border-radius:10px;padding:15px}.room-top{display:flex;justify-content:space-between}.room-top small{font-size:9px;color:#8594a0}.room-top h3{font-size:17px;margin:1px 0 12px}.room-cards dl{margin:0 0 13px}.room-cards dl div{display:flex;justify-content:space-between;border-top:1px solid #edf0f2;padding:7px 0;font-size:10px}.room-cards dt{color:#8795a0}.room-cards dd{margin:0;font-weight:600;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:inline-grid;margin-right:8px;width:30px;height:30px;border-radius:8px}.meter-banner{background:#f2f7fa;border-radius:9px;padding:12px 15px;display:flex;align-items:center;gap:24px;margin-bottom:15px}.meter-banner>div{display:flex;align-items:center;gap:6px;font-size:10px}.meter-banner svg{width:17px}.meter-banner>div:first-child{color:#307fac}.meter-banner>div:nth-child(2){color:#d59024}.meter-banner span{margin-left:auto;font-size:10px;color:#657a89}.meter-input{width:70px;padding:6px;border:1px solid #cfdae1;border-radius:6px;outline:0}.meter-input:focus{border-color:#3d739a;box-shadow:0 0 0 2px #dfecf4}.empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.empty-icon{width:70px;height:70px;border-radius:18px;background:#e7eff5;color:#234d6d;display:grid;place-items:center}.empty h2{margin:16px 0 5px}.empty p{max-width:470px;color:#7d8d99;font-size:12px}.modal-bg{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;background:#081a288c;display:grid;place-items:center;padding:15px}.modal{width:min(580px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 70px #0003;overflow:hidden}.modal header{display:flex;justify-content:space-between;padding:20px;border-bottom:1px solid #e7ebee}.modal h2{margin:0;font-size:18px}.modal p{margin:2px 0 0;color:#8695a0;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:20px}.form-grid label{font-size:11px;font-weight:600;display:flex;flex-direction:column;gap:6px}.form-grid input,.form-grid select{height:40px;border:1px solid #d8e0e5;border-radius:7px;padding:0 10px;outline:0}.modal footer{padding:15px 20px;background:#f8fafb;display:flex;justify-content:flex-end;gap:8px}.mobile-menu,.mobile-search,.scrim{display:none}@media(max-width:1180px){.stats{grid-template-columns:1fr 1fr}.grid-main,.grid-main.bottom{grid-template-columns:1fr}.room-cards{grid-template-columns:1fr 1fr}.side{display:grid;grid-template-columns:1fr 1fr}.side .panel-head{grid-column:1/-1}.donut-wrap{padding:0}}@media(max-width:780px){.app>aside{transform:translate(-100%);transition:.25s;box-shadow:10px 0 30px #00000026}.app>aside.open{transform:none}.brand>button{display:grid;background:transparent;color:#fff;border:0;margin-left:auto}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0c192366;z-index:15}main{margin-left:0}.topbar{height:72px;padding:0 16px;gap:12px}.mobile-menu{display:grid;place-items:center;border:0;background:transparent;padding:0}.topbar h1{font-size:19px}.topbar p{font-size:10px}.top-actions .search,.profile span,.profile>svg{display:none}.profile{padding-left:10px}.content{padding:16px}.mobile-search{display:flex;width:100%;margin-bottom:14px}.stats{gap:10px}.grid-main{gap:12px}.room-grid{grid-template-columns:1fr 1fr}.panel{padding:15px}.room-cards{grid-template-columns:1fr 1fr}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.stat{padding:13px;gap:9px}.stat-icon{width:36px;height:36px}.stat strong{font-size:17px}.stat small{font-size:8px}.room-grid,.room-cards,.form-grid{grid-template-columns:1fr}.side{display:block}.panel-head{gap:10px}.panel-head .row .ghost{display:none}.meter-banner{align-items:flex-start;gap:8px;flex-direction:column}.meter-banner span{margin-left:0}.topbar{position:sticky;top:0;z-index:10}.content{padding:12px}.grid-main{margin-bottom:12px}.profile>div{width:32px;height:32px}.top-actions{gap:6px}}.app-loading{min-height:100vh;display:grid;place-items:center;color:#547086}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.login-visual{background:linear-gradient(145deg,#0d2942,#194d71);color:#fff;padding:42px 7vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:480px;height:480px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-180px;bottom:-190px;box-shadow:0 0 0 80px #ffffff06,0 0 0 160px #ffffff05}.login-brand{display:flex;align-items:center;gap:10px;font-size:20px}.login-brand svg{background:#fff;color:#173e60;padding:8px;width:40px;height:40px;border-radius:10px}.login-visual span{font-size:11px;letter-spacing:3px;color:#9cb8ca}.login-visual h1{font-size:45px;line-height:1.25;margin:13px 0}.login-visual p{color:#bbcfdd;line-height:1.8}.login-visual>small{color:#7698af}.login-form-wrap{display:grid;place-items:center;padding:30px}.login-form{width:min(400px,100%)}.login-mark{display:none}.login-form h2{font-size:28px;margin:0 0 5px}.login-form>p{font-size:12px;color:#81919d;margin-bottom:28px}.login-form>label{display:block;font-size:12px;font-weight:600;margin:15px 0 0}.login-input{height:45px;border:1px solid #d8e1e7;border-radius:8px;margin-top:7px;display:flex;align-items:center;padding:0 12px;gap:9px}.login-input:focus-within{border-color:#3e789f;box-shadow:0 0 0 3px #e6f0f6}.login-input svg{width:17px;color:#7c8e9b}.login-input input{border:0;outline:0;flex:1;min-width:0}.login-input button{border:0;background:none;padding:4px;display:grid}.login-submit{width:100%;height:46px;border:0;border-radius:8px;background:#173e60;color:#fff;font-weight:600;margin-top:23px}.login-submit:disabled{opacity:.65}.login-hint{display:block;text-align:center;color:#91a0aa;margin-top:15px}.login-error{background:#feeceb;color:#b43b3b;border:1px solid #f8cdca;padding:10px 12px;border-radius:7px;font-size:11px}@media(max-width:700px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-wrap{min-height:100vh;padding:25px}.login-mark{display:grid;width:52px;height:52px;border-radius:13px;background:#173e60;color:#fff;place-items:center;margin-bottom:22px}}.profile{background:transparent;border:0;border-left:1px solid #e5e9ed;text-align:left}.period-input{height:36px;border:1px solid #d9e2e8;border-radius:8px;padding:0 9px;color:#4e6577}.no-data{padding:35px;text-align:center;color:#8a99a4;font-size:12px}.form-grid textarea,.settings-form textarea{min-height:85px;border:1px solid #d8e0e5;border-radius:7px;padding:10px;resize:vertical}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);background:#f3f7fa;border-radius:9px;margin-bottom:16px}.summary-strip>div{padding:13px 18px;display:flex;flex-direction:column;border-right:1px solid #dde6ec}.summary-strip>div:last-child{border:0}.summary-strip span{font-size:10px;color:#81909d}.summary-strip b{font-size:17px}.table-scroll a{color:#255f88;text-decoration:none}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.work-card{border:1px solid #e1e8ed;border-radius:10px;padding:15px}.work-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.work-card small{font-size:9px;color:#8796a0}.work-card h3{font-size:14px;margin:13px 0 4px}.work-card p{font-size:10px;color:#758793;min-height:31px}.priority{font-size:9px;border-radius:15px;padding:3px 7px;background:#edf2f5;color:#526a7b}.priority.urgent{background:#fee8e7;color:#c23e3e}.work-foot{border-top:1px solid #edf0f2;padding:10px 0;display:flex;justify-content:space-between;font-size:10px}.finance-stats{grid-template-columns:repeat(3,1fr)}.report-bars{display:flex;flex-direction:column;gap:16px;padding:10px}.report-bars>div{display:grid;grid-template-columns:120px 1fr 120px;align-items:center;gap:12px;font-size:11px}.report-bars>div:before{content:"";grid-column:2;grid-row:1;background:#edf2f5;height:12px;border-radius:10px}.report-bars i{grid-column:2;grid-row:1;height:12px;border-radius:10px;background:#238d68;z-index:1}.report-bars i.amber{background:#e5a53f}.report-bars i.red{background:#d95757}.report-bars b{text-align:right}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-form{display:flex;flex-direction:column;gap:12px}.settings-form.two{display:grid;grid-template-columns:1fr 1fr}.settings-form label{font-size:10px;font-weight:600;display:flex;flex-direction:column;gap:5px}.settings-form input,.settings-form select,.inline-form input,.inline-form select{height:39px;border:1px solid #d8e1e6;border-radius:7px;padding:0 9px;outline:0}.inline-form{display:grid;grid-template-columns:1fr 1.5fr 1fr auto;gap:8px}.charge-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.charge-list span{font-size:10px;background:#eef3f6;border-radius:16px;padding:6px 9px}.audit-list{margin-top:16px;border-top:1px solid #e7ecef}.audit-list div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #edf1f3;font-size:9px}.audit-list span{color:#82929e}.settings-save{grid-column:1/-1;display:flex;justify-content:flex-end}@media(max-width:900px){.work-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.settings-save{grid-column:1}.inline-form{grid-template-columns:1fr 1fr}}@media(max-width:520px){.summary-strip,.finance-stats{grid-template-columns:1fr}.summary-strip>div{border-right:0;border-bottom:1px solid #dde6ec}.work-grid{grid-template-columns:1fr}.report-bars>div{grid-template-columns:85px 1fr}.report-bars b{grid-column:2}.settings-form.two,.inline-form{grid-template-columns:1fr}.period-input{max-width:145px}}.btn.danger{background:#fff;color:#c14343;border:1px solid #f0cccc}.btn:disabled{opacity:.45;cursor:not-allowed}.content{font-size:14px}.content .panel-head h2{font-size:17px}.content .panel-head p,.content table{font-size:13px}.content th,.content td{padding-top:12px;padding-bottom:12px}.content .btn,.content .stat span{font-size:12px}.content .stat small{font-size:11px}.content .room-tile>small,.content .room-tile>b{font-size:11px}.content .badge{font-size:10px}.content .room-cards dl div,.content .work-card p,.content .repair b{font-size:12px}.content .repair small,.content .work-card small{font-size:10px}.content{font-size:1rem}.content table,.content .btn,.content .badge,.content label{font-size:.875rem}.content small{font-size:.75rem}.content .panel-head h2{font-size:1.125rem}.content .panel-head p{font-size:.875rem}.notice{margin:1rem;padding:1rem;background:#fff4d9;color:#624400;border:1px solid #ead193;border-radius:8px;line-height:1.7}.period-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.period-toolbar label{display:flex;align-items:center;gap:.75rem}.period-toolbar input,.panel-head input[type=month]{padding:.6rem;border:1px solid #cad6df;border-radius:8px;font:inherit}.period-toolbar span{font-size:.875rem;color:#5c6d7b}.task-list{padding:1rem;display:grid;gap:.5rem}.task-list button{display:flex;justify-content:space-between;padding:1rem;border:1px solid #dfe7ed;border-radius:8px;background:#fff;font:inherit;color:#173047;cursor:pointer}.task-list b{font-size:1.125rem}.room-detail,.room-shortcuts{display:grid;gap:1rem}.room-shortcuts{display:flex;flex-wrap:wrap;padding:1rem}.content>.panel{margin-bottom:1rem}.modal fieldset{border:0;margin:0}.btn:disabled{opacity:.55;cursor:wait}.meter-input:disabled{background:#eef2f6}.content .meter-input{min-width:85px;min-height:42px;font-size:1rem}.property>b{display:block;padding-top:.5rem}.content td small{display:block}.top-actions>span{font-size:.875rem}@media(max-width:760px){.period-toolbar>span{width:100%}.panel-head{flex-wrap:wrap;gap:1rem}.panel-head>.row{flex-wrap:wrap}.topbar,.top-actions{flex-wrap:wrap}.top-actions .search{display:flex;max-width:100%;width:100%}.top-actions>span{display:none}.content .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.content .stat strong{font-size:1.2rem}.content .stat{padding:1rem}.content .btn{min-height:42px}}@media(max-width:420px){.content .stats{grid-template-columns:1fr}}:root{color-scheme:dark;--bg:#0c0f14;--panel:#171c24;--raised:#202733;--line:#354150;--text:#edf3fa;--muted:#a9b6c7;--sky:#58c3ff;--sky-soft:#173a50;color:var(--text);background:var(--bg)}body,.app,main,.login-page{background:var(--bg);color:var(--text)}a{color:var(--sky)}button,input,select,textarea{font:inherit}input,select,textarea{color:var(--text);color-scheme:dark}input::placeholder,textarea::placeholder{color:#94a3b6;opacity:1}.app>aside{background:#090c11;border-right:1px solid var(--line);color:var(--muted);overflow-y:auto}.brand>div,.login-brand svg,.login-mark{background:var(--sky);color:#07141f}.brand b{color:var(--text)}.brand small,.property>span,.version{color:var(--muted)}.property{border-color:var(--line)}.property b{color:var(--text)}nav button{color:var(--muted);border-radius:7px;min-height:44px}nav button:hover{background:var(--raised);color:var(--text)}nav button.active{background:var(--sky-soft);color:#9eddff;box-shadow:inset 3px 0 var(--sky)}.version{margin-top:auto;padding-top:24px;font-size:.75rem}.topbar{background:#11161e;border-color:var(--line);min-height:86px;height:auto;padding-top:14px;padding-bottom:14px}.topbar h1,.panel-head h2,.room-top h3,.modal h2{color:var(--text)}.topbar p,.panel-head p,.period-toolbar span{color:var(--muted)}.mobile-menu{color:var(--sky)}.card{background:var(--panel);border-color:var(--line);border-radius:10px;box-shadow:0 8px 24px #00000020}.stat{border-top:2px solid #38516a}.stat strong{color:var(--sky);font-variant-numeric:tabular-nums}.stat span,.stat small{color:var(--muted)}.stat-icon.navy,.stat-icon.green{background:var(--sky-soft);color:var(--sky)}.search,.icon-btn,.period-input,.period-toolbar input,.panel-head input[type=month]{background:#111720;border-color:var(--line);color:var(--text)}.search input{background:transparent;color:var(--text)}.search svg,.icon-btn svg{color:var(--muted)}.btn{border-radius:7px;transition:background .15s,border-color .15s}.btn.primary,.login-submit{background:var(--sky);color:#07141f;border:1px solid var(--sky);font-weight:700}.btn.primary:hover,.login-submit:hover{background:#89d6ff;border-color:#89d6ff}.btn.ghost,.icon-btn{background:var(--raised);border:1px solid #455469;color:var(--text)}.btn.ghost:hover,.icon-btn:hover{background:#2b3747;border-color:var(--sky)}.btn.danger{background:#38202a;color:#ffb2bb;border-color:#80515d}.btn:disabled{cursor:not-allowed;opacity:.55}th{background:#111720;color:#bfcfe0;border-color:var(--line);font-weight:600}td{color:#d2dce9;border-color:#2b3543}td>b,td b{color:var(--text)}td small{color:var(--muted)}tbody tr:hover{background:#1e2835}.table-scroll a{color:var(--sky)}.table-scroll a.btn.ghost{color:var(--text)}.table-scroll{scrollbar-color:#485a70 #111720}.badge.green,.badge.blue{background:#18394a;color:#96e0ff}.badge.green i,.badge.blue i{background:var(--sky)}.badge.gray{background:#303947;color:#d6dfeb}.badge.amber,.badge.orange{background:#44371f;color:#f6d38a}.badge.red{background:#43232e;color:#ffb0bc}.donut:before{background:var(--panel)}.donut b{color:var(--text)}.donut span,.legend span{color:var(--muted)}.legend b{color:var(--text)}.l-green{background:var(--sky)}.l-amber{background:#435369}.task-list button{background:#121922;border-color:var(--line);color:var(--text);border-radius:7px}.task-list button:hover{border-color:var(--sky);background:#192b3a}.task-list b{color:var(--sky)}.room-cards article,.work-card{background:#141a22;border-color:var(--line);border-radius:9px}.room-cards dl div,.work-foot,.repair,.audit-list,.audit-list div{border-color:var(--line)}.room-cards dt,.room-top small,.work-card small,.work-card p,.audit-list span{color:var(--muted)}.room-cards dd{color:var(--text)}.room-tile,.room-tile.vacant,.room-tile.maintenance{background:var(--raised);border-color:var(--line);color:var(--text)}.meter-banner,.summary-strip{background:#121f2c;border:1px solid #334b62}.summary-strip>div{border-color:var(--line)}.summary-strip span,.meter-banner span{color:var(--muted)}.summary-strip b,.meter-banner>div:first-child{color:var(--sky)}.meter-banner>div:nth-child(2){color:#d5dfeb}.form-grid input,.form-grid select,.form-grid textarea,.settings-form input,.settings-form select,.settings-form textarea,.inline-form input,.inline-form select,.meter-input{background:#0f151e;border:1px solid #48576b;color:var(--text)}.meter-input:disabled{background:#262e39;color:#a7b7ca;opacity:1}.form-grid label,.settings-form label{color:#dce6f2}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--sky);outline-offset:3px}.search:focus-within,.login-input:focus-within{border-color:var(--sky);box-shadow:0 0 0 3px #58c3ff22}.modal-bg{background:#000000b3;overflow-y:auto;padding:24px 15px}.modal{background:var(--panel);border:1px solid #43546a;border-radius:12px;max-height:calc(100dvh - 48px);overflow-y:auto}.modal header,.modal footer{border-color:var(--line)}.modal footer{background:#111720}.modal p{color:var(--muted)}.notice{background:#142c3d;color:#c0e8ff;border-color:#39627d}.no-data,.app-loading{color:var(--muted)}.charge-list span,.priority,.repair>span{background:#283343;color:#d7e1ee}.priority.urgent{background:#43232e;color:#ffb0bc}.empty-icon,.avatar,.repair-icon{background:var(--sky-soft);color:var(--sky)}.login-page{background:#10151d}.login-visual{background:linear-gradient(145deg,#080b10,#18232f 65%,#143d56);border-right:1px solid var(--line)}.login-visual span{color:var(--sky)}.login-visual p,.login-visual>small{color:var(--muted)}.login-form-wrap{background:#141a22}.login-form h2{color:var(--text)}.login-form>p,.login-hint{color:var(--muted);font-size:.875rem}.login-form>label{font-size:.875rem}.login-input{background:#0e141d;border-color:#48576b;height:48px}.login-input input{background:transparent;color:var(--text)}.login-input svg{color:var(--sky)}.login-error{background:#43232e;color:#ffb0bc;border-color:#80515d;font-size:.875rem}.login-submit{min-height:48px}.report-bars>div:before{background:#354150}.report-bars i{background:var(--sky)}.report-bars i.amber{background:#74859b}.report-bars i.red{background:#d67887}.help{background:var(--raised);border-color:var(--line)}.filters button{background:var(--raised);border-color:var(--line);color:var(--text)}.filters button.active{background:var(--sky);color:#07141f}@media(max-width:780px){.topbar{min-height:76px}.top-actions{max-width:100%}.app>aside{background:#090c11}.scrim{background:#000000a6}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}:root[data-theme=light]{color-scheme:light;--bg:#f2f5f9;--panel:#ffffff;--raised:#edf2f7;--line:#cbd5e1;--text:#182431;--muted:#536477;--sky:#0877b8;--sky-soft:#e0f2fe}html[data-theme=light] input,html[data-theme=light] select,html[data-theme=light] textarea{color-scheme:light}html[data-theme=light] input::placeholder,html[data-theme=light] textarea::placeholder{color:#64748b}html[data-theme=light] .app>aside,html[data-theme=light] .topbar{background:#fff}html[data-theme=light] nav button.active{color:#075985}html[data-theme=light] .brand>div,html[data-theme=light] .login-brand svg,html[data-theme=light] .login-mark{color:#fff}html[data-theme=light] .stat{border-top-color:#72b9dd}html[data-theme=light] .card{box-shadow:0 4px 18px #172b3e08}html[data-theme=light] .search,html[data-theme=light] .period-input,html[data-theme=light] .period-toolbar input,html[data-theme=light] .panel-head input[type=month]{background:#f8fafc}html[data-theme=light] .btn.primary,html[data-theme=light] .login-submit,html[data-theme=light] .filters button.active{color:#fff}html[data-theme=light] .btn.primary:hover,html[data-theme=light] .login-submit:hover{background:#065f98;border-color:#065f98}html[data-theme=light] .btn.ghost,html[data-theme=light] .icon-btn{border-color:#b8c6d5}html[data-theme=light] .btn.ghost:hover,html[data-theme=light] .icon-btn:hover{background:#dbeefa}html[data-theme=light] .btn.danger{background:#fff1f2;color:#a6223d;border-color:#e6a4b2}html[data-theme=light] th{background:#edf2f7;color:#465b70}html[data-theme=light] td{color:#34475b;border-color:#e2e8f0}html[data-theme=light] tbody tr:hover{background:#f0f8fe}html[data-theme=light] .table-scroll{scrollbar-color:#adbacb #edf2f7}html[data-theme=light] .badge.green,html[data-theme=light] .badge.blue{background:#dff1fc;color:#075985}html[data-theme=light] .badge.gray{background:#e7ecf2;color:#475569}html[data-theme=light] .badge.amber,html[data-theme=light] .badge.orange{background:#fff2d5;color:#855500}html[data-theme=light] .badge.red{background:#ffe4e9;color:#a6223d}html[data-theme=light] .task-list button{background:#f8fafc}html[data-theme=light] .task-list button:hover{background:#e8f5ff}html[data-theme=light] .room-cards article,html[data-theme=light] .work-card{background:#fbfcfe}html[data-theme=light] .meter-banner,html[data-theme=light] .summary-strip{background:#eaf3fa;border-color:#bed4e7}html[data-theme=light] .meter-banner>div:nth-child(2){color:#465b70}html[data-theme=light] .form-grid input,html[data-theme=light] .form-grid select,html[data-theme=light] .form-grid textarea,html[data-theme=light] .settings-form input,html[data-theme=light] .settings-form select,html[data-theme=light] .settings-form textarea,html[data-theme=light] .inline-form input,html[data-theme=light] .inline-form select,html[data-theme=light] .meter-input{background:#fff;border-color:#afbdcc}html[data-theme=light] .meter-input:disabled{background:#e9eef4;color:#536477}html[data-theme=light] .form-grid label,html[data-theme=light] .settings-form label{color:#34475b}html[data-theme=light] .modal-bg{background:#14243480}html[data-theme=light] .modal{border-color:#cbd5e1}html[data-theme=light] .modal footer{background:#f1f5f9}html[data-theme=light] .notice{background:#e5f3ff;color:#164e75;border-color:#a9cde5}html[data-theme=light] .charge-list span,html[data-theme=light] .priority,html[data-theme=light] .repair>span{background:#e5edf5;color:#34475b}html[data-theme=light] .priority.urgent{background:#ffe4e9;color:#a6223d}html[data-theme=light] .login-page{background:var(--bg)}html[data-theme=light] .login-visual{background:linear-gradient(145deg,#e8edf3,#d8e9f6);color:var(--text)}html[data-theme=light] .login-form-wrap{background:#fff}html[data-theme=light] .login-input{background:#f8fafc;border-color:#afbdcc}html[data-theme=light] .login-error{background:#ffe4e9;color:#a6223d;border-color:#e6a4b2}html[data-theme=light] .report-bars>div:before{background:#e2e8f0}html[data-theme=light] .help b{color:var(--text)}html[data-theme=light] .help span{color:var(--muted)}.theme-toggle{min-height:44px;flex-shrink:0;white-space:nowrap}.login-theme-control{position:absolute;top:20px;right:24px;z-index:2}.login-page{position:relative}.login-form-wrap{padding-top:88px}@media(max-width:780px){.top-actions .theme-toggle span{display:none}.top-actions .theme-toggle{width:44px;padding:0}.login-theme-control{top:16px;right:16px}html[data-theme=light] .brand>button{color:var(--text)}}.payment-modal{width:min(680px,100%)}.payment-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.payment-form label{min-width:0;width:100%;margin:0}.payment-form input,.payment-form select{display:block;width:100%;min-width:0;max-width:100%;height:44px;padding:0 12px}.payment-form .payment-invoice,.payment-form .payment-note{grid-column:1/-1}.payment-form input[type=file]{padding:7px 10px;line-height:28px;overflow:hidden}.payment-form input[type=file]::file-selector-button{height:28px;margin:-1px 10px -1px 0;padding:0 10px;border:0;border-radius:5px;background:var(--sky-soft);color:var(--text);cursor:pointer}.payment-modal footer .btn{min-width:112px}@media(max-width:620px){.payment-modal{max-height:calc(100dvh - 24px)}.payment-form{grid-template-columns:minmax(0,1fr);padding:16px;gap:13px}.payment-form .payment-invoice,.payment-form .payment-note{grid-column:auto}.payment-modal header{padding:16px}.payment-modal footer{position:sticky;bottom:0;padding:12px 16px}.payment-modal footer .btn{flex:1;min-width:0}}
