*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:#f2f2f2}:root{--brand:#2c6fad;--brand-dark:#2d6ea5;--brand-light:#e8f1fb;--brand-hover:#2c6fad14;--danger:#d93025;--success:#1e8e3e;--warning:#f29900;--text:#202124;--muted:#5f6368;--border:#e8eaed;--bg:#f2f2f2;--card:#fff;--sidebar-w:14.375rem;--shape-xs:.25rem;--shape-sm:.5rem;--shape-md:.75rem;--shape-lg:1rem;--shape-xl:1.75rem;--shape-full:6.25rem;--elev-1:0 1px 3px #3c40431a, 0 1px 2px #3c40430f;--elev-2:0 2px 6px #3c40431a, 0 1px 3px #3c404314;--elev-3:0 4px 12px #3c40431f, 0 2px 4px #3c404314}body{background:var(--bg);color:var(--text);overscroll-behavior-x:none;min-height:100dvh;font-family:Quicksand,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}input,select,textarea,button,optgroup{font-family:inherit}#root{text-align:left;border:none;width:100%;min-height:100dvh;display:block}.layout{min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--brand-dark);color:#fff;z-index:100;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-logo{border-bottom:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem 1.25rem 0;display:flex}.sidebar-logo-img{width:auto;height:56px;display:block}.sidebar-logo-text{letter-spacing:.03em;color:#fff;font-size:1.375rem;font-weight:700}.sidebar-logo-text span{color:#8ab4f8}.sidebar-nav{flex:1;padding:.5rem .75rem .75rem;overflow-y:auto}.sidebar-nav a{color:#fffc;border-radius:var(--shape-full);align-items:center;gap:.75rem;margin-bottom:.125rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav a:hover{color:#fff;background:#ffffff1a}.sidebar-nav a.active{color:#1557b0;background:#8ab4f8;font-weight:700}.sidebar-nav-divider{background:#ffffff1f;border:0;height:1px;margin:.5rem .25rem}.sidebar-user{color:#ffffffb3;text-align:center;border-top:1px solid #ffffff1a;flex-shrink:0;padding:.875rem 1.25rem;font-size:.8125rem}.sidebar-user strong{color:#fff;margin-bottom:.125rem;font-size:.875rem;display:block}.btn-logout{color:#fff;border-radius:var(--shape-full);cursor:pointer;text-align:center;background:#ffffff1a;border:none;width:100%;margin-top:.5rem;padding:.375rem .75rem;font-size:.75rem;text-decoration:none;transition:background .15s;display:block}.btn-logout:hover{background:#fff3}.sidebar-overlay{z-index:99;background:#00000080;position:fixed;inset:0}.hamburger{cursor:pointer;color:var(--text);border-radius:var(--shape-full);background:0 0;border:none;padding:.25rem .5rem;font-size:1.375rem;line-height:1;transition:background .15s;display:block}.hamburger:hover{background:var(--brand-hover)}.main{flex:1;min-width:0;min-height:100dvh;margin-left:0}.topbar{border-bottom:1px solid var(--border);z-index:50;box-shadow:0 1px 0 var(--border);background:#fff;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex;position:sticky;top:0}.topbar h1{color:var(--text);margin:0;font-size:1rem;font-weight:500}.page{background:var(--bg);min-height:calc(100dvh - 57px);padding:1rem}@media (width>=768px){.sidebar{transform:none}.hamburger{display:none}.main{margin-left:var(--sidebar-w)}.topbar{box-shadow:none;padding:.875rem 1.75rem}.topbar h1{font-size:1.125rem}.page{padding:1.5rem 1.75rem}th{white-space:nowrap}.bottom-tabs,.bottom-tab-floating{display:none}}.bottom-tabs{z-index:95;background:var(--brand);padding:4px 0 calc(env(safe-area-inset-bottom,0px) + 6px);border-top:1px solid #ffffff26;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-tab{cursor:pointer;color:#9eb7e1;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:6px 4px;font-family:inherit;text-decoration:none;display:flex}.bottom-tab-label{letter-spacing:.2px;white-space:nowrap;font-size:10px;font-weight:600}.bottom-tab-active{color:#fff}.bottom-tab-floating{bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:96;color:#fff;flex-direction:column;align-items:center;text-decoration:none;display:flex;position:fixed;left:50%;transform:translate(-50%)}.bottom-tab-floating-btn{background:#2bb5a0;border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex;box-shadow:0 6px 14px #00000040}.bottom-tab-floating-label{display:none}.bottom-tab-floating-active .bottom-tab-floating-btn{color:var(--brand);background:#fff}.bottom-tab-floating-active .bottom-tab-floating-btn svg{color:var(--brand);stroke:var(--brand)}.bottom-tab-pulse{position:relative}.bottom-tab-pulse:after{content:"";pointer-events:none;border-radius:10px;animation:1.6s ease-out infinite bottom-tab-pulse;position:absolute;inset:4px;box-shadow:0 0 #ffffffb3}@keyframes bottom-tab-pulse{0%{box-shadow:0 0 #ffffffb3}70%{box-shadow:0 0 0 14px #fff0}to{box-shadow:0 0 #fff0}}@media (width<=767.98px){.main,.page{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 280px)!important}.layout-tenant .topbar{background:var(--brand);color:#fff;box-shadow:0 1px #0000000d}.layout-tenant .topbar h1{color:#fff;text-align:center;flex:1;margin-right:36px;font-weight:700}.layout-tenant .topbar .hamburger{color:#fff}.layout-tenant .topbar-email{display:none}.layout-tenant .chat-input-bar{z-index:80;position:fixed;bottom:72px;left:0;right:0;box-shadow:0 -1px 4px #0000000d}.layout-tenant .chat-input-tip{margin-bottom:4px;font-size:10px}.layout-tenant .chat-scroll{padding-bottom:120px!important}.layout-tenant .page-header>h1,.layout-tenant .page-header>h2{display:none}.layout-tenant .btn-add{top:env(safe-area-inset-top,0px);color:#fff;z-index:60;width:40px;height:40px;box-shadow:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-top:6px;padding:0;line-height:1;display:inline-flex;position:fixed;right:8px}.layout-tenant .btn-add .btn-label{display:none}.layout-tenant .btn-add svg{width:24px;height:24px}}@media (width>=768px) and (width<=1199px){:root{--sidebar-w:4.25rem}.sidebar-logo{padding:.5rem .25rem 0}.sidebar-logo-img{height:36px}.sidebar-logo-text{display:none!important}.sidebar-nav{padding:.5rem .375rem .75rem}.sidebar-nav a{border-radius:var(--shape-md);justify-content:center;gap:0;padding:.625rem 0;font-size:0}.sidebar-nav a>svg{flex-shrink:0}.sidebar-nav-divider{margin:.375rem .5rem}.sidebar-user{padding:.625rem .375rem}.sidebar-user>strong,.sidebar-user>span{display:none}.sidebar-user img,.sidebar-user>svg{width:36px!important;height:36px!important;margin-bottom:.5rem!important}.btn-logout{padding:.5rem 0;font-size:0}}.card{background:var(--card);border-radius:var(--shape-xl);border:1px solid var(--border);box-shadow:var(--elev-1);padding:1.25rem}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}@media (width>=480px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.875rem}}.stat-card{background:var(--card);border-radius:var(--shape-xl);border:1px solid var(--border);box-shadow:var(--elev-1);padding:1rem 1.25rem;transition:box-shadow .2s,background .15s}.stat-card:hover{box-shadow:var(--elev-2);background:#fafbff}.stat-card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.6875rem}.stat-card .value{color:var(--brand);margin-top:.25rem;font-size:1.5rem;font-weight:700}.stat-card .sub{color:var(--muted);margin-top:.125rem;font-size:.75rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(17.5rem,100%),1fr));gap:1.25rem;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr));gap:1rem;display:grid}.charts-row-wrapper{position:relative}.charts-row{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:start;gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.charts-row::-webkit-scrollbar{display:none}.charts-row>*{scroll-snap-align:start;flex:0 0 88%;min-width:0}.swipe-chevron{width:32px;height:32px;color:var(--muted);background:var(--card);border:1px solid var(--border);box-shadow:var(--elev-1);cursor:pointer;z-index:2;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;transition:background .15s,color .15s,box-shadow .15s;animation:1.6s ease-in-out infinite swipe-chevron-pulse;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.swipe-chevron:hover{background:var(--brand-light);color:var(--brand);box-shadow:var(--elev-2)}.swipe-chevron:active{transform:translate(2px,-50%)}@keyframes swipe-chevron-pulse{0%,to{opacity:.85;transform:translateY(-50%)}50%{opacity:1;transform:translate(4px,-50%)}}.swipe-chevron.prev{animation:1.6s ease-in-out infinite swipe-chevron-pulse-prev;left:6px;right:auto}.swipe-chevron.prev:active{transform:translate(-2px,-50%)}@keyframes swipe-chevron-pulse-prev{0%,to{opacity:.85;transform:translateY(-50%)}50%{opacity:1;transform:translate(-4px,-50%)}}@keyframes upload-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.upload-bounce-icon{animation:1.6s ease-in-out infinite upload-bounce;display:inline-flex}.stat-row-pills{grid-template-columns:repeat(5,minmax(0,1fr));gap:.375rem;margin-bottom:1.25rem;display:grid}.stat-row-pills .stat-card{border-left:3px solid var(--stat-accent,var(--brand));justify-content:space-between;align-items:center;gap:.25rem;min-width:0;padding:.375rem .5rem;display:flex}.stat-row-pills .stat-card .value{color:#1f2937;flex:none;margin-top:0;font-size:1rem;font-weight:700}.stat-row-pills .stat-card .icon{color:var(--stat-accent,var(--muted));flex:none}@media (width>=540px){.stat-row-pills{gap:.625rem}.stat-row-pills .stat-card{border-left-width:4px;gap:.5rem;padding:.5rem .75rem}.stat-row-pills .stat-card .value{font-size:1.125rem}}@media (width<=767.98px){.charts-row>:not(:first-child){display:none}.charts-row>:first-child{flex:0 0 100%}.charts-row-wrapper .swipe-chevron{display:none}.charts-row{scroll-snap-type:none;overflow-x:visible}}@media (width>=768px){.charts-row{grid-template-columns:repeat(auto-fit,minmax(min(22rem,100%),1fr));gap:16px;padding-bottom:0;display:grid;overflow:visible}.charts-row>*{flex:none;width:auto}.swipe-chevron{display:none}}.faults-breakdown-grid{grid-template-columns:1fr auto;align-items:start;column-gap:12px;display:grid}.faults-breakdown-grid .faults-chart{aspect-ratio:1;justify-self:center;width:100%;max-width:160px}.faults-breakdown-grid .faults-snapshot{display:none}@media (width>=720px){.faults-breakdown-grid{column-gap:28px}.faults-breakdown-grid .faults-chart{max-width:200px}}@media (width>=1280px){.faults-breakdown-grid{grid-template-columns:minmax(200px,1fr) auto auto}.faults-breakdown-grid .faults-snapshot{border-left:1px solid var(--border);align-self:stretch;padding-left:24px;display:flex}}.grid-2-responsive{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=479px){.grid-2-responsive{grid-template-columns:1fr}}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=767px){.col-property,.col-edit-desktop{display:none}}@media (width>=768px){.col-edit-mobile{display:none}}.fault-table-desktop td .fault-title-sub,.tenant-table-desktop td .fault-title-sub{margin-top:2px;font-size:.75rem;font-weight:400;line-height:1.3;display:block}.fault-table-desktop td .fault-title-sub a,.tenant-table-desktop td .fault-title-sub a{color:var(--brand,#2c6fad);text-decoration:none}.fault-table-desktop td .fault-title-sub a:hover,.tenant-table-desktop td .fault-title-sub a:hover{text-decoration:underline}.fault-table-desktop tbody td strong{color:#7a1e2c}@media (width>=768px) and (width<=1199px){.fault-table-desktop td .fault-title-sub{white-space:nowrap;text-overflow:ellipsis;max-width:22rem;overflow:hidden}.fault-table-desktop td[data-label=Priority] .badge,.fault-table-desktop td[data-label=Status] .badge{color:#0000;vertical-align:middle;cursor:help;border-radius:50%;width:.75rem;min-width:.75rem;height:.75rem;padding:0;font-size:0;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.fault-table-desktop td[data-label=Priority] .badge.badge-red,.fault-table-desktop td[data-label=Status] .badge.badge-red{background:#d93025}.fault-table-desktop td[data-label=Priority] .badge.badge-yellow,.fault-table-desktop td[data-label=Status] .badge.badge-yellow{background:#f29900}.fault-table-desktop td[data-label=Priority] .badge.badge-green,.fault-table-desktop td[data-label=Status] .badge.badge-green{background:#1e8e3e}.fault-table-desktop td[data-label=Priority] .badge.badge-blue,.fault-table-desktop td[data-label=Status] .badge.badge-blue{background:var(--brand)}.fault-table-desktop td[data-label=Priority] .badge.badge-gray,.fault-table-desktop td[data-label=Status] .badge.badge-gray{background:#80868b}}.tenant-list-mobile{display:none}@media (width<=767px){.tenant-table-desktop{display:none}.tenant-list-mobile{display:block}}.contact-link{color:var(--brand,#2c6fad);align-items:center;gap:6px;min-width:0;text-decoration:none;display:inline-flex}.contact-link:hover .contact-text{text-decoration:underline}.contact-icon{flex-shrink:0}.contact-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=1100px){.contact-text{display:none}}.prop-list-mobile{display:none}@media (width<=767px){.prop-table-desktop{display:none}.prop-list-mobile{display:block}}.prop-action-btn{align-items:center;min-width:0;padding:6px;display:inline-flex}.prop-action-btn .prop-action-label{display:none}.prop-action-row{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;gap:2px;width:100%}.bill-actions-mobile,.bill-status-inline-mobile{display:none!important}.addr-rest-mobile-hide{display:inline}@media (width<=767.98px){.addr-rest-mobile-hide{display:none}}.bill-action-pill:hover:not(:disabled){filter:brightness(.94)}.bill-action-pill:active:not(:disabled){transform:scale(.92)}.bill-action-pill:focus-visible{outline-offset:2px;outline:2px solid #0f172a}@media (width<=767.98px){.bill-actions-desktop{display:none!important}.bill-actions-mobile{display:flex!important}.bill-status-cell-desktop{display:none!important}.bill-status-inline-mobile{display:inline-flex!important}.table-cards tr.bill-row{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;gap:8px 12px;display:grid!important}.table-cards tr.bill-row.bill-row{padding:.75rem .875rem}.table-cards tr.bill-row>.bill-check-cell{grid-area:1/1}.table-cards tr.bill-row>.bill-period-cell{border-bottom:1px solid var(--border);grid-area:1/1/auto/-1;justify-content:space-between!important;align-items:center!important;margin:0!important;padding:0 0 .5rem!important;font-size:.875rem!important;font-weight:500!important;display:flex!important}.table-cards tr.bill-row:has(.bill-check-cell)>.bill-period-cell{grid-column:2/-1}.table-cards tr.bill-row>.bill-units-cell,.table-cards tr.bill-row>.bill-total-cell{text-align:right;grid-row:2;justify-content:flex-end;align-items:center;gap:4px;font-size:.8125rem;margin:0!important;padding:0!important;display:inline-flex!important}.table-cards tr.bill-row>.bill-units-cell{grid-column:1;justify-content:flex-start}.table-cards tr.bill-row>.bill-total-cell{grid-column:2}.table-cards tr.bill-row>.bill-units-cell:before,.table-cards tr.bill-row>.bill-total-cell:before{margin-right:4px}.table-cards tr.bill-row>.bill-actions-cell{grid-area:2/3;align-items:center;justify-content:flex-end!important;margin:0!important;padding:0!important;display:flex!important}}.prop-table-desktop .prop-icon-btn{cursor:pointer;border-radius:var(--shape-sm);color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem;transition:background .15s,color .15s;display:inline-flex}.prop-table-desktop .prop-icon-btn:hover{background:var(--brand-hover);color:var(--text)}.fault-table-desktop .prop-icon-btn{cursor:pointer;border-radius:var(--shape-sm);color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem;transition:background .15s,color .15s;display:inline-flex}.fault-table-desktop .prop-icon-btn:hover{background:var(--brand-hover);color:var(--text)}.prop-table-desktop .prop-status-menu{background:var(--card);border:1px solid var(--border);z-index:100;border-radius:8px;min-width:140px;margin-top:4px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.prop-table-desktop .prop-status-menu-item{cursor:pointer;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.prop-table-desktop .prop-status-menu-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.fault-list-mobile{display:none}@media (width<=767px){.fault-table-desktop{display:none}.fault-list-mobile{display:block}}.doc-list-mobile{display:none}@media (width<=767px){.doc-table-desktop{display:none}.doc-list-mobile{margin:0;padding:0;list-style:none;display:block}.doc-row{border-bottom:1px solid var(--border);background:var(--card);align-items:center;gap:.5rem;padding:.75rem .875rem;display:flex}.doc-row:last-child{border-bottom:none}.doc-row-body{flex:1;min-width:0}.doc-row-title{color:var(--text);word-break:break-word;font-size:.9375rem;font-weight:600;line-height:1.25}.doc-row-sub{color:var(--muted);word-break:break-word;flex-wrap:wrap;align-items:center;gap:0;margin-top:2px;font-size:.8125rem;line-height:1.3;display:flex}.doc-row-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.doc-icon-btn{cursor:pointer;border-radius:var(--shape-sm);color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem;text-decoration:none;display:inline-flex}.doc-icon-btn:hover{background:var(--brand-hover);color:var(--text)}.doc-icon-btn-danger{color:var(--danger)}.doc-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:4px}.doc-status-red{background:var(--danger)}.doc-status-yellow{background:var(--warning)}.doc-status-green{background:var(--success)}.doc-status-gray{background:var(--muted)}}table{border-collapse:collapse;width:100%;font-size:.875rem}@media (width<=767px){.table-cards{overflow:visible}.card:has(.table-cards){box-shadow:none;background:0 0;border:none;padding:0}.table-cards table,.table-cards thead,.table-cards tbody,.table-cards tr,.table-cards td{width:100%;display:block}.table-cards thead{position:absolute;left:-9999px}.table-cards tr{background:var(--card);border:1px solid var(--border);border-radius:var(--shape-lg);box-shadow:var(--elev-1);margin-bottom:.75rem;padding:.875rem 1rem;position:relative}.table-cards tr:has(td.cell-avatar){padding-left:3.5rem}.table-cards tr:hover td{background:0 0}.table-cards td{text-align:right;word-break:break-word;border:none;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.3125rem 0;display:flex}.table-cards td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:left;flex-shrink:0;font-size:.6875rem;font-weight:500}.table-cards tr:not(:has(td.cell-avatar))>td:first-child{text-align:left;border-bottom:1px solid var(--border);justify-content:flex-start;margin-bottom:.375rem;padding:0 0 .625rem;font-size:1rem;font-weight:600}.table-cards tr:has(td.cell-avatar)>td.cell-avatar+td{text-align:left;border-bottom:1px solid var(--border);justify-content:flex-start;margin-bottom:.375rem;padding:0 0 .625rem;font-size:1rem;font-weight:600}.table-cards tr:not(:has(td.cell-avatar))>td:first-child:before{display:none}.table-cards tr:has(td.cell-avatar)>td.cell-avatar+td:before{display:none}.table-cards td.cell-avatar{border:none;width:2rem;margin:0;padding:0;display:block;position:absolute;top:.875rem;left:1rem}.table-cards td.cell-avatar:before{display:none}.table-cards tr:not(:has(td.cell-avatar))>td:not([data-label]):not(:first-child){justify-content:flex-end}.table-cards tr:has(td.cell-avatar)>td:not([data-label]):not(.cell-avatar):not(.cell-avatar+td){justify-content:flex-end}.table-cards td:empty{display:none}.table-cards .col-property{display:flex}.notif-list{margin:0;padding:0;list-style:none}.notif-row{border-bottom:1px solid var(--border);background:var(--card);cursor:pointer;align-items:center;gap:.75rem;padding:.875rem 1rem;transition:background .15s;display:flex}.notif-row:first-child{border-top-left-radius:var(--shape-lg);border-top-right-radius:var(--shape-lg)}.notif-row:last-child{border-bottom:1px solid var(--border);border-bottom-left-radius:var(--shape-lg);border-bottom-right-radius:var(--shape-lg)}.notif-row:hover{background:var(--brand-hover)}.notif-dot{background:#9ca3af;border-radius:50%;flex-shrink:0;width:10px;height:10px}.notif-dot-active{background:var(--success)}.notif-dot-pending{background:var(--warning)}.notif-dot-inactive,.notif-dot-unknown{background:#9ca3af}.notif-body{flex:1;min-width:0}.notif-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.notif-sub{color:var(--muted);word-break:break-word;margin-top:2px;font-size:.8125rem;line-height:1.3}.notif-chev{color:var(--muted);flex-shrink:0}.notif-action{cursor:pointer;color:var(--danger);border-radius:var(--shape-sm);background:0 0;border:none;flex-shrink:0;align-items:center;padding:.375rem;transition:background .15s;display:inline-flex}.notif-action:hover{background:#d9302514}:is(.card:has(>.notif-list),.card:has(.notif-list)){padding:0;overflow:hidden}.prop-row{border-bottom:1px solid var(--border);background:var(--card);align-items:center;gap:.625rem;padding:.875rem;display:flex;overflow:visible}.prop-row:last-child{border-bottom:none}.prop-row-check{cursor:pointer;width:18px;height:18px;accent-color:var(--brand);flex-shrink:0;margin:0}.prop-row-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.prop-row-icon-child{margin-left:28px}.prop-row-body{flex:1;min-width:0}.prop-row-title{color:var(--text);word-break:break-word;font-size:.9375rem;font-weight:600;line-height:1.25}.prop-row-sub{color:var(--brand);word-break:break-word;margin-top:2px;font-size:.75rem;font-weight:400;line-height:1.3}.prop-row-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.prop-icon-btn{cursor:pointer;border-radius:var(--shape-sm);color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;padding:.375rem;transition:background .15s,color .15s;display:inline-flex}.prop-icon-btn:hover{background:var(--brand-hover);color:var(--text)}.prop-icon-btn-danger{color:var(--danger)}.prop-icon-btn-danger:hover{color:var(--danger);background:#d9302514}.prop-row-status-wrap{display:inline-flex;position:relative}.prop-status-menu{background:var(--card);border:1px solid var(--border);border-radius:var(--shape-md);z-index:100;min-width:140px;box-shadow:var(--elev-2);margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden}.prop-status-menu-item{cursor:pointer;color:var(--text);align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;display:flex}.prop-status-menu-item:hover{background:var(--brand-hover)}.prop-status-menu-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.prop-list-header{border-bottom:1px solid var(--border);background:var(--bg-secondary,#f8f9fa);color:var(--muted);align-items:center;gap:.625rem;padding:.625rem .875rem;font-size:.8125rem;font-weight:500;display:flex}.prop-list-header label{cursor:pointer;color:var(--text);flex:1;align-items:center;gap:.5rem;display:flex}.prop-list-header-count{color:var(--muted);font-size:.75rem}.prop-row-child{background:#f5f5f5}.prop-row-toggle{color:var(--muted);padding:2px 12px 2px 0;font-size:.75rem;line-height:1;display:inline-block}.prop-row-body[role=button]:hover{background:var(--brand-hover);border-radius:var(--shape-sm)}.prop-row-units{color:var(--muted);margin-left:.375rem;font-size:.6875rem;font-weight:500}.fault-row{border-bottom:1px solid var(--border);background:var(--card);align-items:center;gap:.625rem;padding:.875rem;display:flex}.fault-row:last-child{border-bottom:none}.fault-row-child{background:var(--brand-light);border-left:3px solid var(--brand);padding-left:1.75rem}.fault-row-body{flex:1;min-width:0}.fault-row-title{color:#7a1e2c;word-break:break-word;flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.9375rem;font-weight:600;line-height:1.25;display:flex}.fault-row-sub{color:var(--brand);word-break:break-word;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:.75rem;line-height:1.3;display:-webkit-box;overflow:hidden}.fault-row-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.fault-priority-dot{background:#9ca3af;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin:0 6px}.fault-priority-dot-high{background:var(--danger)}.fault-priority-dot-normal{background:var(--brand)}.fault-priority-dot-low{background:#9ca3af}.fault-block-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:2px 4px;font-size:.6875rem}.table-cards-expand td{border-radius:var(--shape-md);text-align:left;display:block;background:var(--bg,#f9f9f9)!important;padding:.625rem .75rem!important}.table-cards-expand td:before{display:none!important}}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--border);padding:.75rem 1rem;font-size:.6875rem;font-weight:500}td{border-bottom:1px solid var(--border);padding:.75rem 1rem}.ledger-table-tight th,.ledger-table-tight td{padding-left:.5rem;padding-right:.5rem}tr:last-child td{border-bottom:none}tr:hover td{background:#0000000a}.search-input{border:1px solid var(--border);border-radius:var(--shape-full);background:#fff;outline:none;width:100%;max-width:22.5rem;padding:.625rem 1rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.search-input:hover{border-color:var(--text)}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-light)}.form-group{margin-bottom:1rem}.form-group label{color:var(--text);margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--shape-md);width:100%;color:var(--text);background:#fff;outline:none;padding:.5625rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--text)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-light)}.form-group textarea{resize:vertical;min-height:5rem}.form-group input[type=file]{cursor:pointer;padding:.375rem}.btn{border-radius:var(--shape-full);cursor:pointer;letter-spacing:.0125em;white-space:nowrap;border:none;align-items:center;gap:.375rem;padding:.5rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:box-shadow .2s,background .15s;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;border-radius:inherit;pointer-events:none;background:currentColor;transition:opacity .15s;position:absolute;inset:0}.btn:hover:after{opacity:.08}.btn:active:after{opacity:.16}.btn:disabled{opacity:.38;cursor:not-allowed}.btn:disabled:after{display:none}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{box-shadow:var(--elev-1)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{box-shadow:var(--elev-1)}.btn-ghost{color:var(--brand);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--brand-light);border-color:var(--brand)}.btn-ghost:after{display:none}.btn-sm{padding:.3125rem .875rem;font-size:.75rem}@media (width<=767px){.btn-add{border-radius:50%;flex-shrink:0;justify-content:center;gap:0;width:2.5rem;height:2.5rem;padding:.5rem}.btn-add .btn-label{display:none}}.badge{border-radius:var(--shape-full);text-transform:capitalize;white-space:nowrap;padding:.1875rem .625rem;font-size:.6875rem;font-weight:600;display:inline-block}.badge-green{color:#137333;background:#e6f4ea}.badge-red{color:#c5221f;background:#fce8e6}.badge-yellow{color:#b06000;background:#fef7e0}.badge-blue{background:var(--brand-light);color:var(--brand)}.badge-gray{color:var(--muted);background:#f1f3f4}.modal-backdrop{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border-radius:var(--shape-xl);width:min(32.5rem,100%);max-height:min(90vh,100dvh - 1rem);box-shadow:var(--elev-3);background:#fff;padding:1.25rem;overflow-y:auto}.modal h2{margin-bottom:1.25rem;font-size:1.0625rem;font-weight:500}.modal-footer{z-index:1;background:#fff;border-top:1px solid #eee;flex-wrap:wrap;justify-content:flex-end;gap:.625rem;margin:1.25rem -1.25rem -1.25rem;padding:.875rem 1.25rem 1.25rem;display:flex;position:sticky;bottom:-1.25rem}.modal--top-aligned{align-self:flex-start;margin-top:40px;overflow-x:hidden}@media (width>=480px){.modal{padding:1.75rem}.modal-footer{margin:1.25rem -1.75rem -1.75rem;padding:.875rem 1.75rem 1.75rem;bottom:-1.75rem}}@media (width<=640px){.modal-backdrop{align-items:stretch;padding:0}.modal{border-radius:0;width:100%;height:100dvh;max-height:100dvh;max-width:100%!important}.modal--top-aligned{align-self:stretch!important;margin-top:0!important}.modal-footer{padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}}.page-header{flex-flow:column wrap;justify-content:space-between;align-items:flex-start;gap:.625rem;margin-bottom:1.25rem;display:flex}.page-header h2{font-size:1.125rem;font-weight:500}@media (width>=480px){.page-header{flex-direction:row;align-items:center}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.login-card{border-radius:var(--shape-xl);width:min(26.25rem,100%);box-shadow:var(--elev-2);border:1px solid var(--border);background:#fff;padding:2.5rem 2rem}.login-card h1{color:var(--text);margin-bottom:.25rem;font-size:1.5rem;font-weight:400}.login-card .subtitle{color:var(--muted);margin-bottom:1.5rem;font-size:.875rem}.login-card .btn-primary{justify-content:center;width:100%;margin-top:.25rem;padding:.75rem;font-size:.9375rem}.demo-hint{color:var(--muted);text-align:center;background:var(--bg);border-radius:var(--shape-sm);margin-top:1rem;padding:.625rem;font-size:.75rem}.empty{text-align:center;color:var(--muted);padding:2.5rem 1.25rem;font-size:.875rem}.error-msg{color:var(--danger);margin-top:.625rem;font-size:.8125rem}.section-title{color:var(--text);margin-bottom:.875rem;font-size:.9375rem;font-weight:500}.flex-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.fault-timeline{background:var(--card);border:1px solid var(--border);border-radius:var(--shape-lg);margin:1rem 0;padding:1rem}.fault-timeline-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.fault-timeline-title{color:var(--text);font-size:.9375rem;font-weight:600}.fault-stage-chip{border-radius:var(--shape-full);background:var(--brand-light);color:var(--brand);align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.fault-stage-chip.resolved{color:#137333;background:#e6f4ea}.fault-stage-chip.in-progress{color:#b06000;background:#fef7e0}.fault-stage-chip.pending{background:var(--brand-light);color:var(--brand)}.fault-stage-chip.reopened{color:#c5221f;background:#fce8e6}.fault-bar{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;padding:.5rem 0 1rem;display:flex;position:relative}.fault-bar-cell{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex;position:relative}.fault-bar-step{background:var(--card);border:2px solid var(--border);width:28px;height:28px;color:var(--muted);z-index:1;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.fault-bar-step.done{background:var(--brand);border-color:var(--brand);color:#fff}.fault-bar-step.current{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-light)}.fault-bar-step.current.reopened{background:var(--warning);border-color:var(--warning);box-shadow:0 0 0 4px #fef7e0}.fault-bar-label{color:var(--muted);text-align:center;margin-top:.375rem;font-size:.6875rem;line-height:1.2}.fault-bar-line{background:var(--border);z-index:0;height:2px;position:absolute;top:14px;left:50%;right:-50%}.fault-bar-line.done{background:var(--brand)}.fault-timeline-list{border-top:1px solid var(--border);margin:0;padding:.75rem 0 0;list-style:none}.fault-timeline-row{grid-template-columns:28px 1fr auto;align-items:start;gap:.625rem;padding:.625rem 0;display:grid;position:relative}.fault-timeline-row+.fault-timeline-row:before{content:"";background:var(--border);width:2px;position:absolute;top:-12px;bottom:calc(100% - 14px);left:13px}.fault-timeline-row.muted{opacity:.65}.fault-timeline-icon{background:var(--brand-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.fault-timeline-body{min-width:0}.fault-timeline-title-row{color:var(--text);font-size:.8125rem;font-weight:600}.fault-timeline-subtitle{color:var(--muted);margin-top:.125rem;font-size:.75rem}.fault-timeline-time{color:var(--muted);white-space:nowrap;padding-top:.125rem;font-size:.6875rem}.fault-timeline-empty{color:var(--muted);text-align:center;padding:.75rem 0;font-size:.8125rem}.fault-timeline-toggle{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-top:.25rem;padding:.5rem 0 0;font-size:.75rem;font-weight:500}.fault-timeline-toggle:hover{text-decoration:underline}.fault-add-update{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.fault-add-update select,.fault-add-update input[type=datetime-local]{border:1px solid var(--border);border-radius:var(--shape-sm);flex:1;min-width:140px;padding:.5rem .625rem;font-size:.8125rem}
