:root{--background:#f4f7f6;--surface:#fff;--surface-soft:#eef5f2;--text:#17211d;--muted:#5b6963;--line:#dce4df;--primary:#16796f;--primary-strong:#0f5d55;--warning:#a56912;--danger:#a92319;--shadow:0 18px 45px #17211d14}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:Arial,Noto Sans Thai,sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);height:100vh;padding:24px;position:sticky;top:0;overflow:auto}.brand{align-items:center;gap:12px;min-width:0;margin-bottom:32px;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:48px;height:48px;font-size:24px;font-weight:700;display:grid}.brand strong,.brand small{display:block}.brand small{color:var(--muted);margin-top:2px}nav{display:grid}.nav-menu{gap:22px}.nav-group{gap:8px;display:grid}.nav-group h2{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:12px}.nav-link-stack{gap:6px;display:grid}.nav-menu a{color:var(--muted);border-radius:8px;gap:1px;padding:10px 12px;display:grid}.nav-menu a span{color:inherit;font-weight:700}.nav-menu a small{color:var(--muted);font-size:12px}.nav-menu a:hover,.nav-menu a.active{background:var(--surface-soft);color:var(--text)}.nav-menu a.active{box-shadow:inset 4px 0 0 var(--primary)}.sidebar-note{color:var(--muted);margin-top:24px}.user-panel{border-top:1px solid var(--line);color:var(--muted);gap:6px;margin-top:24px;padding-top:16px;display:grid}.user-panel span,.user-panel strong{display:block}.user-panel strong{color:var(--text);text-transform:capitalize}.user-panel button{color:var(--primary-strong);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.main-content{padding:32px}.page-section{max-width:1180px}.narrow-section{max-width:560px}.eyebrow{color:var(--primary-strong);text-transform:uppercase;margin:0 0 8px;font-size:14px;font-weight:700}h1{margin:0;font-size:34px;line-height:1.15}h2{line-height:1.2}.lead{color:var(--muted);max-width:680px;font-size:18px;line-height:1.6}.action-row{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.no-margin{margin-top:0}.primary-action{background:var(--primary);color:#fff;cursor:pointer;font:inherit;border:0;border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:0 20px;font-weight:700;display:inline-flex}.secondary-link{border:1px solid var(--line);color:var(--primary-strong);border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:0 20px;font-weight:700;display:inline-flex}.primary-action:hover{background:var(--primary-strong)}.secondary-link:hover,.secondary-action:hover{border-color:#8cbdb2}.compact-link{justify-content:center;min-height:44px}.page-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.count-pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:8px 12px;font-weight:700}.dashboard-section{gap:20px;display:grid}.dashboard-hero{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff 0%,#ecf6f2 100%);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(240px,320px);align-items:stretch;gap:24px;padding:28px;display:grid}.dashboard-hero h1{font-size:42px}.hero-action-panel{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;align-content:center;gap:10px;padding:18px;display:grid}.hero-action-panel span,.dashboard-card span{color:var(--muted);font-size:14px;font-weight:700}.hero-action-panel strong{font-size:22px}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.dashboard-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:8px;padding:18px;display:grid;box-shadow:0 10px 24px #17211d0a}.dashboard-card:hover{border-color:#a9ccc4;transform:translateY(-1px)}.dashboard-card strong{font-size:36px;line-height:1}.dashboard-card p{color:var(--muted);margin:0}.dashboard-card.warning{background:#fffaf0;border-color:#e6c98d}.wide-card{grid-column:1/-1}.wide-card strong{font-size:24px}.property-overview-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:16px;padding:20px;display:grid}.section-heading-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading-row h2{margin:0;font-size:26px}.property-card-list{gap:12px;display:grid}.property-card{border:1px solid var(--line);border-radius:8px;gap:16px;padding:18px;display:grid}.property-card-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.property-card h3,.property-card p{margin:0}.property-card h3{font-size:22px}.property-card p{color:var(--muted);margin-top:6px}.property-alert-count{background:var(--surface-soft);text-align:right;border-radius:8px;gap:2px;min-width:92px;padding:10px 12px;display:grid}.property-alert-count span,.status-metric span{color:var(--muted);font-size:13px;font-weight:700}.property-alert-count strong{color:var(--primary-strong);font-size:28px;line-height:1}.property-status-row,.property-action-row{flex-wrap:wrap;gap:10px;display:flex}.status-metric{border:1px solid var(--line);background:#f8fbfa;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:8px 10px;display:flex}.status-metric strong{color:var(--text)}.status-metric.warning{background:#fff7e6;border-color:#f0cf8a}.status-metric.warning strong{color:var(--warning)}.next-work-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px;display:grid}.next-work-panel h2,.next-work-panel p{margin:0}.next-work-panel p{color:var(--muted);margin-top:8px}.next-work-actions{flex-wrap:wrap;gap:10px;display:flex}.metric-row{flex-wrap:wrap;gap:8px;display:flex}.room-list{gap:12px;display:grid}.room-group-list{gap:16px;display:grid}.room-group{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.room-group summary{cursor:pointer;background:#eef5f2;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;list-style:none;display:flex}.room-group summary::-webkit-details-marker{display:none}.room-group summary:before{color:var(--primary-strong);content:"▾";font-weight:700}.room-group:not([open]) summary:before{content:"▸"}.room-group summary span{color:var(--text);flex:1;font-weight:700}.room-group summary strong{color:var(--muted);font-size:14px}.room-group .room-list{padding:12px}.contract-list{gap:10px;display:grid}.invoice-group-list,.invoice-approve-form{gap:16px;display:grid}.invoice-approve-bar{background:var(--surface);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.invoice-approve-bar div{gap:4px;display:grid}.invoice-approve-bar span{color:var(--muted)}.red-flag-list{gap:10px;display:grid}.red-flag-approval-form,.red-flag-groups{gap:18px;display:grid}.approval-reason{color:var(--muted);flex:1;gap:6px;min-width:280px;font-weight:700;display:grid}.approval-reason input{border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;min-height:44px;padding:0 12px}.red-flag-group{gap:10px;display:grid}.group-header{border:1px solid var(--line);background:#eef5f2;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.group-header h2,.group-header p{margin:0}.group-header p{color:var(--muted);margin-top:4px}.notice{color:var(--warning);background:#fff7e6;border:1px solid #f0cf8a;border-radius:8px;margin-bottom:16px;padding:14px 16px;font-weight:700}.empty-state{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:18px;font-weight:700}.form-stack{gap:18px;margin-top:28px;display:grid}.form-stack label{color:var(--muted);gap:8px;font-weight:700;display:grid}.form-stack input,.form-stack select,.form-stack textarea{border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;min-height:52px;padding:0 14px}.form-stack textarea{resize:vertical;padding:12px 14px}.management-stack{gap:14px;margin-bottom:18px;display:grid}.building-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:14px;padding:16px;display:grid}.building-create-form{grid-template-columns:1.2fr 1fr 1.4fr auto;align-items:end;gap:14px;display:grid}.building-list{gap:10px;display:grid}.building-edit-form{border:1px solid var(--line);background:#f8fbfa;border-radius:8px;grid-template-columns:1fr 1.4fr .35fr auto auto;align-items:end;gap:10px;padding:12px;display:grid}.management-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.2fr 1fr .5fr .9fr .9fr auto;align-items:end;gap:14px;margin-bottom:18px;padding:16px;display:grid}.batch-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:14px;padding:16px;display:grid}.batch-panel-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.management-panel h2,.building-create-form h2,.batch-panel h2{margin:0;font-size:20px}.batch-grid{grid-template-columns:1fr .5fr .8fr .6fr .6fr;gap:14px;display:grid}.building-create-form label,.building-edit-form label,.management-panel label,.batch-grid label,.room-edit-form label{color:var(--muted);gap:6px;font-size:14px;font-weight:700;display:grid}.building-create-form input,.building-edit-form input,.management-panel input,.management-panel select,.batch-grid input,.batch-grid select,.batch-grid textarea,.room-edit-form input,.room-edit-form select{border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;min-width:0;min-height:44px;padding:0 12px}.batch-grid textarea{resize:vertical;min-height:104px;padding:10px 12px}.room-codes-field{grid-column:1/-1}.building-edit-form div{gap:4px;display:grid}.building-edit-form span{color:var(--muted);font-size:14px}.room-edit-form{grid-template-columns:minmax(180px,1.2fr) minmax(72px,.45fr) minmax(110px,.7fr) minmax(120px,.8fr) minmax(92px,auto) auto;align-items:end;gap:12px;min-width:0;display:grid}.checkbox-label{align-items:center;min-height:44px;display:flex!important}.checkbox-label input{width:18px;height:18px;min-height:0}.workflow-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:18px;padding:16px;display:flex}.inline-form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.inline-form label{color:var(--muted);gap:6px;font-weight:700;display:grid}.inline-form input,.reading-form input{border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;min-height:44px;padding:0 12px}.secondary-action,.danger-action,.ghost-action{cursor:pointer;font:inherit;border-radius:8px;min-height:44px;padding:0 14px;font-weight:700}.secondary-action{color:var(--primary-strong);background:#e8f2ef;border:1px solid #b8d5ce}.danger-action{color:var(--danger);background:#fff1f0;border:1px solid #f1aaa4}.ghost-action{border:1px solid var(--line);color:var(--muted);background:0 0}.reading-month{color:var(--muted);margin:18px 0}.reading-month h2,.reading-section h2{color:var(--text);margin-bottom:6px}.reading-section{margin-top:28px}.reading-list{gap:10px;display:grid}.reading-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.4fr .7fr 2.2fr .7fr .8fr 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.reading-row div{gap:4px;display:grid}.reading-row span{color:var(--muted);font-size:14px}.reading-form{grid-template-columns:minmax(90px,1fr) minmax(100px,1fr) auto;gap:8px;display:grid}.status-badge{color:var(--muted);text-transform:capitalize;border-radius:8px;padding:8px 10px}.status-badge strong,.status-badge span{display:block}.status-entered,.status-approved{color:#14623a;background:#e8f7ef}.status-missing{background:#f2f4f3}.status-needs-review{color:var(--warning);background:#fff7e6}.room-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.5fr 1.5fr 1fr 1fr;align-items:start;gap:16px;padding:16px;display:grid}.editable-room-row{grid-template-columns:minmax(0,1.6fr) minmax(360px,.9fr)}.locked-note{color:var(--muted);white-space:nowrap;font-size:14px;font-weight:700}.room-row-details{border:1px solid var(--line);background:#f8fbfa;border-radius:8px;grid-template-columns:minmax(150px,1.2fr) minmax(96px,.7fr) minmax(88px,.6fr) minmax(86px,auto);align-items:start;gap:12px;min-width:0;padding:12px;display:grid}.room-row-details strong{overflow-wrap:anywhere}.room-history-action{justify-items:start;gap:4px;display:grid}.room-history-action form{width:100%}.contract-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.1fr 1.4fr .9fr .9fr 1.4fr .7fr;align-items:center;gap:16px;padding:16px;display:grid}.invoice-building-group{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.invoice-building-group summary{cursor:pointer;background:#eef5f2;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;list-style:none;display:flex}.invoice-building-group summary::-webkit-details-marker{display:none}.invoice-building-group summary:before{color:var(--primary-strong);content:"▾";font-weight:700}.invoice-building-group:not([open]) summary:before{content:"▸"}.invoice-building-group summary span{flex:1;font-size:20px;font-weight:700}.invoice-building-group summary strong{color:var(--muted);text-align:right;font-size:14px}.invoice-floor-stack{gap:18px;padding:16px;display:grid}.invoice-floor-group{gap:12px;display:grid}.invoice-floor-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.invoice-floor-heading h2{margin:0;font-size:20px}.invoice-floor-heading span{color:var(--muted);font-weight:700}.invoice-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.invoice-review-card{border:1px solid var(--line);border-radius:8px;gap:14px;padding:16px;display:grid}.invoice-select{color:var(--muted);align-items:center;gap:8px;font-weight:700;display:flex}.invoice-select input{width:18px;height:18px}.invoice-card-topline{justify-content:space-between;align-items:start;gap:12px;display:flex}.invoice-card-topline div,.invoice-tenant-line{gap:4px;display:grid}.invoice-card-topline span,.invoice-tenant-line span,.invoice-card-footer span{color:var(--muted);font-size:14px}.invoice-card-topline strong:first-of-type{font-size:30px;line-height:1}.invoice-card-total{color:var(--primary-strong);text-align:right;font-size:22px;line-height:1.1}.invoice-badge-row{flex-wrap:wrap;gap:6px;display:flex}.soft-badge,.warning-badge{border-radius:8px;padding:6px 8px;font-size:13px;font-weight:700}.soft-badge{color:var(--primary-strong);background:#edf4f1}.warning-badge{color:var(--warning);background:#fff7e6}.invoice-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.invoice-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.invoice-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:18px}.invoice-card h2{margin:0 0 16px;font-size:22px}.detail-list{gap:12px;margin:0;display:grid}.detail-list div{gap:4px;display:grid}.detail-list dt{color:var(--muted);font-size:14px}.detail-list dd{margin:0;font-weight:700}.invoice-lines-card{margin-bottom:16px}.invoice-lines{border:1px solid var(--line);border-radius:8px;overflow:hidden}.invoice-lines-header,.invoice-line{grid-template-columns:1.7fr .5fr .6fr .8fr;gap:12px;padding:12px 14px;display:grid}.invoice-lines-header{color:var(--muted);background:#eef5f2;font-size:14px;font-weight:700}.invoice-line{border-top:1px solid var(--line);align-items:center}.invoice-line div{gap:4px;display:grid}.invoice-line span{color:var(--muted)}.invoice-totals{justify-content:end;gap:8px;margin-top:16px;display:grid}.invoice-totals div{grid-template-columns:120px 160px;gap:24px;display:grid}.invoice-totals span,.muted-text{color:var(--muted)}.invoice-totals strong{text-align:right}.text-capitalize{text-transform:capitalize}.command-hub-section{max-width:1480px}.command-hub-grid{grid-template-columns:minmax(260px,.8fr) minmax(420px,1.4fr) minmax(300px,.9fr);gap:16px;display:grid}.command-inbox,.command-chat,.command-side-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:16px}.command-inbox h2,.command-chat h2,.command-side-panel h2{margin:0 0 14px;font-size:22px}.command-conversation-list,.command-timeline{gap:10px;display:grid}.command-conversation{border:1px solid var(--line);border-radius:8px;gap:10px;padding:12px;display:grid}.command-conversation.selected{border-color:var(--primary);box-shadow:inset 4px 0 0 var(--primary)}.command-conversation div:first-child{gap:4px;display:grid}.command-conversation span,.command-chat-header span,.command-message span{color:var(--muted);font-size:14px}.command-conversation-meta{flex-wrap:wrap;gap:6px;display:flex}.command-chat{grid-template-rows:auto minmax(360px,1fr) auto;gap:14px;display:grid}.command-chat-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.command-chat-header h2{margin-bottom:4px}.command-timeline{align-content:start;max-height:640px;padding-right:4px;overflow:auto}.command-message{border:1px solid var(--line);border-radius:8px;gap:8px;max-width:82%;padding:12px;display:grid}.command-message.inbound{justify-self:start}.command-message.outbound{background:#e8f2ef;justify-self:end}.command-message div{justify-content:space-between;gap:10px;display:flex}.command-message p{white-space:pre-wrap;margin:0}.reply-form{border-top:1px solid var(--line);gap:10px;padding-top:12px;display:grid}.reply-form textarea{border:1px solid var(--line);color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:12px 14px}.red-flag-row{background:var(--surface);border:1px solid var(--line);border-left-width:6px;border-radius:8px;grid-template-columns:.7fr 1.6fr 1.1fr 1.2fr .9fr 1.7fr;align-items:center;gap:16px;padding:16px;display:grid}.red-flag-row div{gap:4px;display:grid}.red-flag-row span{color:var(--muted);font-size:14px}.red-flag-high{border-left-color:#b42318}.red-flag-medium{border-left-color:var(--warning)}.flag-severity{color:#b42318;text-transform:uppercase;font-weight:700}.flag-checkbox{color:var(--muted);align-items:center;gap:8px;font-weight:700;display:flex}.flag-checkbox input{width:20px;height:20px}.contract-row div{gap:4px;display:grid}.contract-row span{color:var(--muted);font-size:14px}.room-row div{gap:4px;display:grid}.room-row span{color:var(--muted);font-size:14px}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid var(--line);border-right:0;height:auto;padding:16px;position:static;overflow:visible}.brand{margin-bottom:16px}.brand-mark{width:42px;height:42px}.nav-menu{gap:14px}.nav-link-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.nav-menu a{min-width:0}.main-content{padding:24px 16px}h1,.dashboard-hero h1{font-size:30px}.dashboard-hero,.next-work-panel{grid-template-columns:1fr;padding:20px}.property-card-main{grid-template-columns:1fr}.property-alert-count{text-align:left}.section-heading-row,.property-action-row,.next-work-actions{flex-direction:column;align-items:stretch}.page-header{flex-direction:column;align-items:flex-start}.room-row,.editable-room-row,.batch-grid,.building-create-form,.building-edit-form,.management-panel,.room-edit-form{grid-template-columns:1fr}.batch-panel-heading{flex-direction:column;align-items:stretch}.contract-row,.command-hub-grid,.invoice-detail-grid,.invoice-line,.invoice-lines-header,.invoice-row,.red-flag-row,.reading-row,.reading-form{grid-template-columns:1fr}.invoice-totals{justify-content:stretch}.invoice-totals div{grid-template-columns:1fr 1fr}.group-header{flex-direction:column;align-items:stretch}.command-message{max-width:100%}.invoice-approve-bar{flex-direction:column;align-items:stretch}}
