:root{color:#17221f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--forest:#153d35;--forest-2:#1e5146;--lime:#d8f25f;--ink:#17221f;--muted:#66736f;--line:#dfe5dc;--surface:#fff;--canvas:#f4f6f1;--orange:#e76f3c;--yellow:#d5a922;--blue:#477f9d;--danger:#b84b42;--shadow:0 14px 40px #13322b12;background:#f4f6f1;font-family:Segoe UI Variable,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px;min-height:100%}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #53847547}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;display:flex}.app-main{flex:1;min-width:0;margin-left:256px}.page-content{width:min(1400px,100%);margin:0 auto;padding:36px 42px 70px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px #13322b05}.muted{color:var(--muted)}.eyebrow{color:#557168;letter-spacing:.14em;margin-bottom:8px;font-size:11px;font-weight:800}.eyebrow.light{color:var(--lime)}.brand-mark{width:38px;height:38px;color:var(--forest);background:var(--lime);border-radius:11px;flex:none;place-items:center;display:inline-grid}.brand-mark.large{border-radius:15px;width:52px;height:52px}.avatar{color:#193c35;background:#dce8e2;border:2px solid #fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:11px;font-weight:800;display:inline-grid}.avatar.tiny{width:29px;height:29px;font-size:9px}.avatar-stack{align-items:center;display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-8px}.sidebar{z-index:40;color:#f7fbf8;background:var(--forest);flex-direction:column;width:256px;padding:22px 17px 18px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{align-items:center;gap:11px;padding:0 7px 24px;display:flex}.sidebar-brand>div{gap:1px;display:grid}.sidebar-brand strong{letter-spacing:-.02em;font-size:14px}.sidebar-brand span{color:#9fbbb2;font-size:10px}.tenant-switcher{color:#fff;text-align:left;background:#ffffff13;border:1px solid #ffffff14;border-radius:11px;grid-template-columns:34px 1fr;align-items:center;gap:9px;width:100%;padding:10px;display:grid}.tenant-icon{width:32px;height:32px;color:var(--lime);background:#d8f25f1c;border-radius:8px;place-items:center;display:grid}.tenant-switcher>span:nth-child(2){min-width:0;display:grid}.tenant-switcher small{color:#91aca4;text-transform:uppercase;letter-spacing:.07em;font-size:9px}.tenant-switcher strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-nav{gap:5px;margin-top:28px;display:grid}.nav-caption{color:#76978d;letter-spacing:.13em;padding:0 11px 8px;font-size:9px;font-weight:800}.sidebar-nav button{color:#a9c1ba;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;padding:10px 11px;font-size:12px;font-weight:600;display:flex}.sidebar-nav button:hover{color:#fff;background:#ffffff0f}.sidebar-nav button.active{color:#18382f;background:var(--lime)}.sidebar-nav button em{color:#fff;text-align:center;background:#d65d48;border-radius:999px;min-width:20px;margin-left:auto;padding:2px 6px;font-size:9px;font-style:normal}.sidebar-profile{border-top:1px solid #ffffff14;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;margin-top:auto;padding:15px 7px 2px;display:grid}.sidebar-profile>span:nth-child(2){min-width:0;display:grid}.sidebar-profile strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.sidebar-profile small{color:#88a79e;font-size:9px}.sidebar-scrim{display:none}.topbar{z-index:25;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;justify-content:space-between;align-items:center;gap:22px;height:68px;padding:0 42px;display:flex;position:sticky;top:0}.search-box{color:#72807b;align-items:center;gap:9px;width:min(520px,52vw);display:flex}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;flex:1;padding:10px 0;font-size:12px}.search-box input:focus{outline:0}.search-box kbd{color:#88948f;background:#f2f4f0;border:1px solid #e2e6df;border-radius:5px;padding:3px 7px;font:9px/1.2 Segoe UI,sans-serif}.topbar-actions{align-items:center;gap:10px;display:flex}.sync-pill{color:#2d6a58;background:#edf6f1;border:0;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:9px;font-weight:700;display:flex}.sync-pill.offline{color:#9d513f;background:#fff0e9}.sync-pill:disabled{opacity:1}.topbar-avatar{display:none}.icon-button{color:#53625d;border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:9px;place-items:center;width:36px;height:36px;padding:0;display:inline-grid}.icon-button:hover{color:var(--forest);background:#f2f5f1}.icon-button.dark{color:#9eb8b0;border-color:#ffffff1a;width:31px;height:31px}.icon-button.primary-icon{color:var(--forest);background:var(--lime);border:0}.has-dot{position:relative}.has-dot:after{content:"";background:#e2684c;border:2px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:7px}.menu-button,.mobile-only{display:none}.demo-banner{color:#604c10;background:#fff4bf;border-bottom:1px solid #eddd91;justify-content:center;align-items:center;gap:30px;min-height:38px;padding:6px 24px;font-size:10px;display:flex}.demo-banner>span{align-items:center;gap:6px;font-weight:700;display:inline-flex}.demo-banner label{align-items:center;gap:7px;display:inline-flex}.demo-banner select{color:#5c4a14;background:#fff9dc;border:1px solid #dfca70;border-radius:5px;padding:3px 24px 3px 7px;font-size:10px}.page-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:28px;display:flex}.page-heading h1,.project-detail-heading h1,.firestop-heading h1{color:var(--ink);letter-spacing:-.045em;font-size:clamp(25px,3vw,34px);line-height:1.12}.page-heading>div>p:last-child{max-width:700px;color:var(--muted);margin-top:8px;font-size:12px;line-height:1.6}.heading-actions,.button-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.button{cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:9px 14px;font-size:11px;font-weight:700;transition:transform .15s,background .15s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.button.primary{color:#15352d;background:var(--lime);border:1px solid #c7df55;box-shadow:0 3px 9px #8197231f}.button.primary:hover{background:#e0f878}.button.secondary{color:#284b42;background:#fff;border:1px solid #d7dfd7}.button.secondary:hover,.button.ghost:hover{background:#f1f5f0}.button.ghost{color:#53625d;background:0 0;border:1px solid #0000}.button.danger-soft{color:#9d4439;background:#fff0ed;border:1px solid #f2d2cd}.button.wide{width:100%}.text-button{color:#386558;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:5px;font-size:10px;font-weight:700;display:inline-flex}.back-button{color:#587068;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:0 0 20px;padding:0;font-size:10px;font-weight:700;display:inline-flex}.metric-grid{grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px;display:grid}.metric-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:42px 1fr;gap:13px;min-width:0;padding:18px;display:grid}.metric-card>div{grid-template-columns:auto 1fr;align-items:baseline;min-width:0;display:grid}.metric-card p{color:#6d7a76;grid-column:1/-1;font-size:10px;font-weight:600}.metric-card strong{color:var(--ink);letter-spacing:-.04em;font-size:26px}.metric-card small{color:#87918e;margin-left:8px;font-size:8px}.metric-icon{color:#2f6958;background:#e9f4ee;border-radius:11px;place-items:center;width:42px;height:42px;display:grid}.metric-icon.orange{color:#b5512f;background:#fff0e9}.metric-icon.yellow{color:#957618;background:#fff7d6}.metric-icon.blue{color:#3f718d;background:#eaf3f8}.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(270px,.7fr);gap:17px;margin-bottom:17px;display:grid}.project-overview-card,.attention-card,.activity-card,.table-card,.details-card,.photo-card,.comments-card{padding:20px}.card-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px;display:flex}.card-heading h2{color:var(--ink);letter-spacing:-.02em;font-size:14px}.card-heading p{color:#84908c;margin-top:3px;font-size:9px}.project-list.compact{display:grid}.project-progress{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #edf0ec;grid-template-columns:39px minmax(0,1fr) auto 18px;align-items:center;gap:12px;width:100%;padding:13px 4px;display:grid}.project-progress:hover{background:#fbfcfa}.project-monogram{color:#325d51;background:#e7f0eb;border-radius:10px;place-items:center;width:39px;height:39px;font-size:11px;font-weight:800;display:grid}.project-progress-main{gap:4px;min-width:0;display:grid}.project-title-line{align-items:center;gap:8px;min-width:0;display:flex}.project-title-line strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.project-progress-main>small{color:#85908c;align-items:center;gap:4px;font-size:8px;display:inline-flex}.progress-line{align-items:center;gap:8px;display:flex}.progress-line em{color:#66736f;font-size:8px;font-style:normal}.progress-track{background:#e9ede8;border-radius:999px;flex:1;height:5px;display:block;overflow:hidden}.progress-track i{border-radius:inherit;background:#609581;height:100%;display:block}.attention-card{flex-direction:column;display:flex}.attention-list{align-content:start;min-height:141px;margin-bottom:14px;display:grid}.attention-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #edf0ec;grid-template-columns:9px 1fr auto;align-items:center;gap:10px;padding:12px 2px;display:grid}.attention-list button>span:nth-child(2){gap:2px;display:grid}.attention-list strong{font-size:11px}.attention-list small{color:#87928e;font-size:8px}.status-dot{background:#8c9894;border-radius:50%;width:8px;height:8px}.status-dot.status-pending_review{background:#d5a922;box-shadow:0 0 0 4px #fff6cd}.status-dot.status-rejected{background:#c85d4f;box-shadow:0 0 0 4px #ffebe6}.activity-card{box-shadow:none}.audit-chip,.count-chip,.active-chip{color:#42675c;background:#ecf4f0;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:8px;font-weight:700;display:inline-flex}.activity-row{border-top:1px solid #edf0ec;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 2px;display:grid}.activity-icon{color:#3f7867;background:#e8f3ee;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.activity-icon.review{color:#927317;background:#fff6d1}.activity-row p{color:#586661;font-size:9px}.activity-row time{color:#9aa39f;font-size:8px}.quiet-empty{color:#8b9692;padding:20px 4px;font-size:9px;line-height:1.5}.quiet-empty.padded{text-align:center;padding:30px}.filter-bar{gap:6px;margin:-8px 0 20px;display:flex;overflow-x:auto}.filter-bar button{color:#67746f;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;flex:none;padding:7px 12px;font-size:9px;font-weight:700}.filter-bar button.active{color:#fff;background:var(--forest);border-color:var(--forest)}.projects-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.project-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:15px;gap:9px;min-width:0;padding:20px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 1px #13322b05}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.project-card-top,.project-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-code{color:#537269;letter-spacing:.07em;font-size:9px;font-weight:800}.project-card>strong{color:var(--ink);letter-spacing:-.02em;margin-top:4px;font-size:14px}.project-card>p{color:#606e69;font-size:10px}.project-card>small,.project-card-footer small{color:#87928f;align-items:center;gap:5px;min-width:0;font-size:8px;display:inline-flex}.worker-project-card{grid-template-rows:auto auto 1fr auto;min-height:170px}.worker-project-card>small{align-self:start;line-height:1.5}.worker-project-card .project-card-footer{border-top:1px solid #edf0ec;margin-top:10px;padding-top:12px}.worker-open-project{color:#315f52;align-items:center;gap:5px;font-size:9px;font-weight:800;display:inline-flex}.project-card-progress{border-top:1px solid #edf0ec;border-bottom:1px solid #edf0ec;gap:7px;margin-top:8px;padding:13px 0;display:grid}.project-card-progress>span:first-child{justify-content:space-between;display:flex}.project-card-progress b{font-size:11px}.project-card-progress small{color:#8b9692;font-size:8px}.status-badge{color:#5f6d68;white-space:nowrap;background:#edf0ed;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:4px 8px;font-size:8px;font-weight:800;display:inline-flex}.status-in_progress{color:#326b5a;background:#e5f2ec}.status-on_hold,.status-pending_review{color:#876a13;background:#fff4c8}.status-completed,.status-approved{color:#376977;background:#e7f2f4}.status-archived,.status-retired{color:#6d716f;background:#eceeed}.status-rejected{color:#9d483d;background:#ffebe7}.status-draft{color:#65716d;background:#edf0ed}.project-detail-heading,.firestop-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px;display:flex}.project-detail-heading>div:first-child,.firestop-heading>div:first-child{gap:7px;display:grid}.project-detail-heading p,.firestop-heading>div:first-child>p:last-child{color:#6d7a76;align-items:center;gap:5px;font-size:10px;display:flex}.project-summary-strip{border:1px solid var(--line);background:#fff;border-radius:15px;grid-template-columns:1.2fr .7fr .8fr 1fr;gap:0;margin-bottom:17px;display:grid}.project-summary-strip>div{border-right:1px solid #e7ebe6;align-content:center;gap:5px;min-width:0;padding:16px 20px;display:grid}.project-summary-strip>div:last-child{border:0}.project-summary-strip small{color:#85918d;font-size:8px}.project-summary-strip strong{color:var(--ink);font-size:16px}.project-summary-strip span:not(.progress-track):not(.avatar):not(.avatar-stack){color:#7b8783;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.table-card{padding-bottom:8px;overflow:hidden}.data-table{display:grid}.table-head,.table-row{align-items:center;gap:12px;display:grid}.firestop-table .table-head,.firestop-table .table-row{grid-template-columns:1fr 1.3fr 1.5fr .9fr .45fr 18px}.floor-filter{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.floor-filter label{color:#75827d;text-transform:uppercase;letter-spacing:.05em;font-size:8px;font-weight:800}.floor-filter select{color:#30443e;background:#fff;border:1px solid #dce3dc;border-radius:8px;min-width:128px;padding:8px 28px 8px 10px;font-size:9px;font-weight:700}.table-head{color:#88938f;text-transform:uppercase;letter-spacing:.04em;background:#f5f7f4;border-radius:8px;padding:9px 12px;font-size:8px;font-weight:800}.table-row{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #edf0ec;width:100%;padding:13px 12px;font-size:9px}button.table-row:hover{background:#fafcf9}.table-row>span{gap:2px;min-width:0;display:grid}.table-row b{color:var(--ink);font-size:10px}.table-row small{color:#8a9591;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.table-row>span:nth-last-child(2){color:#6f7d78;align-items:center;gap:4px;display:flex}.photo-cell img{object-fit:cover;border-radius:7px;width:30px;height:30px}.photo-overview-card{margin-top:17px;padding:20px;overflow:hidden}.photo-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.photo-overview-item{min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:#fbfcfa;border:1px solid #e5eae4;border-radius:11px;gap:10px;padding:12px;display:grid}.photo-overview-item:hover{border-color:#b9ccc3;box-shadow:0 8px 22px #13322b0f}.photo-overview-item.missing{background:#fffaf0;border-color:#eadfac}.photo-overview-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.photo-overview-title>span:first-child{gap:2px;min-width:0;display:grid}.photo-overview-title strong{font-size:10px}.photo-overview-title small{color:#84908c;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.photo-thumbnails{grid-template-columns:repeat(3,1fr);gap:5px;height:78px;display:grid}.photo-thumbnails>img,.photo-thumbnails>span{object-fit:cover;color:#7e918a;background:#e9efeb;border-radius:8px;place-items:center;width:100%;min-width:0;height:78px;display:grid}.photo-thumbnails .missing-photo{color:#9a7a1c;background:#fff4c8;flex-direction:column;grid-column:1/-1;gap:4px;display:flex}.missing-photo small{font-size:8px;font-weight:700}.worker-project-heading{gap:7px;margin-bottom:22px;display:grid}.worker-project-heading h1{color:var(--ink);letter-spacing:-.045em;font-size:clamp(25px,3vw,34px);line-height:1.12}.worker-project-heading p{color:#6d7a76;align-items:center;gap:5px;font-size:10px;display:flex}.worker-firestop-card{padding:20px;overflow:hidden}.worker-list-controls{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.worker-search-box{color:#73817c;background:#f7f9f6;border:1px solid #dfe5de;border-radius:9px;flex:1;align-items:center;gap:9px;min-width:240px;max-width:520px;padding:0 11px;display:flex}.worker-search-box input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;padding:10px 0;font-size:10px}.worker-search-box input:focus{outline:0}.worker-selection-bar{color:#4f625c;background:#eef4f0;border-top:1px solid #dce7e1;border-bottom:1px solid #dce7e1;justify-content:space-between;align-items:center;gap:18px;min-height:58px;margin:0 -20px;padding:10px 20px;display:flex}.worker-selection-bar p{max-width:650px;font-size:9px;line-height:1.5}.worker-firestop-table{display:grid}.worker-table-head,.worker-table-row{grid-template-columns:30px minmax(90px,.8fr) minmax(130px,1fr) minmax(180px,1.5fr) minmax(90px,.7fr) auto;align-items:center;gap:12px;display:grid}.worker-table-head{color:#88938f;text-transform:uppercase;letter-spacing:.04em;background:#f5f7f4;border-radius:8px;margin-top:10px;padding:9px 10px;font-size:8px;font-weight:800}.worker-table-row{border-bottom:1px solid #edf0ec;min-height:66px;padding:11px 10px;font-size:9px}.worker-table-row.current-work{background:#f0f7f3;box-shadow:inset 3px 0 #5d9a87}.worker-table-row>span{gap:3px;min-width:0;display:grid}.worker-table-row b{color:var(--ink);font-size:11px}.worker-table-row small{color:#87928e;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.worker-table-row>span:nth-child(4){color:#55635e;line-height:1.45}.worker-check{place-items:center;display:grid}.worker-check input{width:17px;height:17px;accent-color:var(--forest);cursor:pointer;margin:0}.worker-check input:disabled{cursor:default;opacity:.28}.worker-row-open{white-space:nowrap;justify-self:end}.export-bar{color:#49675e;background:#eaf1ed;border:1px solid #d9e4de;border-radius:13px;justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding:15px 18px;display:flex}.export-bar>span{align-items:center;gap:10px;display:flex}.export-bar>span>span{display:grid}.export-bar strong{font-size:10px}.export-bar small{color:#76847f;font-size:8px}.export-bar>div{gap:8px;display:flex}.review-note{color:#8f453c;background:#fff0ed;border:1px solid #f2d2cd;border-radius:11px;gap:10px;margin-bottom:15px;padding:13px 15px;font-size:10px;display:flex}.review-note span{gap:2px;display:grid}.detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:17px;display:grid}.detail-aside{align-content:start;gap:17px;display:grid}.spec-grid{border-top:1px solid #edf0ec;grid-template-columns:1fr 1fr;gap:0;margin:0;display:grid}.spec-grid>div{border-bottom:1px solid #edf0ec;min-width:0;padding:15px 9px 15px 0}.spec-grid>div:nth-child(2n){border-left:1px solid #edf0ec;padding-left:14px}.spec-grid>div.wide{border-left:0;grid-column:1/-1;padding-left:0}.spec-grid dt{color:#84908c;font-size:8px;font-weight:600}.spec-grid dd{color:#283631;margin:4px 0 0;font-size:10px;font-weight:700}.notes-box{background:#f5f7f4;border-radius:9px;margin-top:16px;padding:13px}.notes-box strong{font-size:9px}.notes-box p{color:#65726e;margin-top:4px;font-size:9px;line-height:1.5}.camera-drop{color:#37675a;text-align:left;cursor:pointer;background:#f0f6f2;border:1px dashed #aec9bd;border-radius:10px;align-items:center;gap:11px;width:100%;padding:13px;display:flex}.camera-drop span{gap:2px;display:grid}.camera-drop strong{font-size:9px}.camera-drop small{color:#7a8a84;font-size:7px}.photo-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;display:grid}.photo-item{background:#f7f9f6;border:1px solid #e7ebe6;border-radius:9px;align-content:start;gap:7px;min-width:0;padding:7px;display:grid}.photo-item>span,.photo-item img{object-fit:cover;color:#769086;background:#e9efeb;border-radius:7px;place-items:center;width:100%;height:125px;display:grid}.photo-item p{gap:2px;min-width:0;display:grid}.photo-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.photo-item small{color:#8c9693;font-size:7px}.comment-list{gap:13px;display:grid}.comment{grid-template-columns:29px 1fr;gap:8px;display:grid}.comment p{grid-template-columns:1fr auto;gap:2px 8px;min-width:0;display:grid}.comment strong{font-size:8px}.comment small{color:#929c98;font-size:7px}.comment p span{color:#5f6d68;grid-column:1/-1;font-size:8px;line-height:1.45}.comment-form{border-top:1px solid #edf0ec;gap:7px;margin-top:14px;padding-top:12px;display:flex}.comment-form input{min-width:0;color:var(--ink);background:#f5f7f4;border:1px solid #e2e7e1;border-radius:8px;flex:1;padding:9px 10px;font-size:9px}.review-list{gap:11px;display:grid}.review-item{grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 20px;display:grid}.review-copy{gap:4px;min-width:0;display:grid}.review-copy>span{align-items:center;gap:8px;display:flex}.review-copy>span b{font-size:12px}.review-copy h3{font-size:10px}.review-copy p{color:#6f7c77;align-items:center;gap:4px;font-size:8px;display:flex}.review-copy>small{color:#8b9592;font-size:8px}.review-actions{gap:7px;display:flex}.safety-banner,.tenant-boundary-note{color:#655317;background:#fff5c9;border:1px solid #ecdb8c;border-radius:12px;gap:11px;margin-bottom:17px;padding:14px 16px;font-size:9px;display:flex}.safety-banner span,.tenant-boundary-note p{gap:3px;display:grid}.catalog-tree{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.catalog-category{padding:17px}.catalog-category-title{grid-template-columns:36px 1fr auto;align-items:center;gap:10px;display:grid}.catalog-category-title>span:first-child,.product-icon{color:#356657;background:#e7f1ec;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.catalog-category-title h2{font-size:11px}.catalog-category-title p{color:#89938f;margin-top:2px;font-size:7px}.catalog-products{margin-top:11px;display:grid}.catalog-products>div{border-left:1px solid #dfe6df;grid-template-columns:27px 1fr auto;align-items:center;gap:9px;min-height:45px;margin-left:18px;padding:8px 0 8px 12px;display:grid;position:relative}.catalog-line{border-top:1px solid #dfe6df;width:11px;position:absolute;left:0}.catalog-products .product-icon{border-radius:7px;width:27px;height:27px}.catalog-products p{min-width:0;display:grid}.catalog-products strong{font-size:9px}.catalog-products small{color:#8a9491;font-size:7px}.team-card{padding-top:8px}.team-table .table-head,.team-table .table-row{grid-template-columns:1.5fr 1fr .6fr .7fr 18px}.team-table .table-row{cursor:default}.member-cell{align-items:center;gap:8px;display:flex!important}.member-cell>span:last-child{display:grid}.tenant-boundary-note{color:#3f6559;background:#eaf3ee;border-color:#d1e1d9;margin-top:15px}.empty-state{color:#72817c;text-align:center;align-content:center;place-items:center;gap:8px;min-height:260px;padding:30px;display:grid}.empty-state.fullscreen{min-height:100vh}.empty-state h2{color:var(--ink);font-size:16px}.empty-state p{max-width:500px;font-size:10px;line-height:1.55}.boot-screen{color:#61706b;align-content:center;place-items:center;gap:15px;min-height:100vh;font-size:11px;display:grid}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071a158c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:17px;width:min(560px,100%);max-height:calc(100vh - 48px);padding:22px;overflow:auto;box-shadow:0 30px 90px #081d1747}.modal-card.wide{width:min(760px,100%)}.modal-heading{justify-content:space-between;gap:15px;margin-bottom:21px;display:flex}.modal-heading h2{letter-spacing:-.03em;font-size:18px}.modal-heading p{color:var(--muted);margin-top:4px;font-size:9px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid label,.login-card label{color:#53625d;gap:6px;font-size:9px;font-weight:700;display:grid}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{width:100%;color:var(--ink);resize:vertical;background:#fff;border:1px solid #dce3dc;border-radius:8px;padding:10px 11px;font-size:10px}.form-grid input::placeholder,.form-grid textarea::placeholder,.login-card input::placeholder{color:#a4ada9}.span-2{grid-column:1/-1}.form-section{color:#284a41;border-top:1px solid #e7ebe6;margin-top:5px;padding-top:13px;font-size:10px}.form-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.button.compact{min-height:34px;padding:7px 10px}.password-input-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.credentials-card{gap:16px;display:grid}.credentials-card dl{background:#e4e9e3;border:1px solid #e4e9e3;border-radius:10px;gap:1px;margin:0;display:grid;overflow:hidden}.credentials-card dl>div{background:#fff;grid-template-columns:120px 1fr;gap:12px;padding:11px 13px;display:grid}.credentials-card dt{color:#7b8783;font-size:8px;font-weight:700}.credentials-card dd{overflow-wrap:anywhere;min-width:0;color:var(--ink);margin:0;font-size:10px;font-weight:700}.temporary-password{letter-spacing:.04em;font-family:ui-monospace,Cascadia Code,monospace}.placeholder-warning{color:#725d17;background:#fff7d7;border:1px solid #ebdc9d;border-radius:8px;align-items:flex-start;gap:8px;padding:11px;font-size:8px;line-height:1.45;display:flex}.toast{z-index:120;color:#fff;background:#173f36;border-radius:10px;align-items:center;gap:8px;max-width:380px;padding:12px 15px;font-size:10px;font-weight:700;animation:.2s toast-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 35px #0d312838}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.login-shell{background:#fff;grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-story{color:#fff;background:var(--forest);flex-direction:column;justify-content:space-between;padding:46px 7vw 36px;display:flex;position:relative;overflow:hidden}.login-story:before{content:"";border:1px solid #d8f25f21;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-100px;right:-100px;box-shadow:0 0 0 70px #d8f25f09,0 0 0 140px #d8f25f06}.login-brand{align-items:center;gap:13px;font-size:15px;font-weight:800;display:flex;position:relative}.login-copy{max-width:590px;position:relative}.login-copy h1{letter-spacing:-.055em;max-width:560px;margin:0 0 18px;font-size:clamp(38px,5vw,64px);line-height:1.02}.login-copy>p:not(.eyebrow){color:#bdd0ca;max-width:530px;font-size:14px;line-height:1.7}.login-points{gap:13px;margin-top:42px;display:grid}.login-points span{color:#e1ebe7;align-items:center;gap:11px;font-size:11px;display:flex}.login-points svg{color:var(--lime)}.login-footnote{color:#769b90;font-size:9px;position:relative}.login-panel{place-items:center;padding:40px;display:grid}.login-card{gap:18px;width:min(390px,100%);display:grid}.login-card h2{color:var(--ink);letter-spacing:-.035em;font-size:24px}.login-card .muted{margin-top:8px;font-size:10px;line-height:1.6}.login-card input{padding:12px;font-size:11px}.form-error{color:#a0463b;background:#fff0ed;border-radius:8px;align-items:flex-start;gap:7px;padding:10px;font-size:9px;display:flex}.divider{color:#9aa39f;align-items:center;gap:10px;font-size:8px;display:flex}.divider:before,.divider:after{content:"";background:#e4e8e3;flex:1;height:1px}.login-help{color:#909995;text-align:center;font-size:8px;line-height:1.55}.centered-shell{background:linear-gradient(145deg,#eef3ee,#f8faf6);place-items:center;min-height:100vh;padding:30px;display:grid}.password-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;padding:28px}.password-card h1{color:var(--ink);letter-spacing:-.04em;font-size:25px}.feature-icon{width:48px;height:48px;color:var(--forest);background:var(--lime);border-radius:13px;place-items:center;display:grid}.platform-shell{background:var(--canvas);min-height:100vh}.platform-header{color:#fff;background:var(--forest);justify-content:space-between;align-items:center;gap:20px;height:72px;padding:0 42px;display:flex}.platform-header .sidebar-brand{padding:0}.platform-header .button{color:#d5e3de}.platform-content{width:min(1120px,100%);margin:0 auto;padding:46px 42px 70px}.platform-loading{color:var(--muted);align-items:center;gap:10px;padding:22px;font-size:10px;display:flex}.organization-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.organization-card{grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:19px;display:grid}.organization-card .tenant-icon{width:42px;height:42px;color:var(--forest);background:#e8f3ee}.organization-card h2{color:var(--ink);font-size:13px}.organization-card p{color:#71807b;margin-top:2px;font-size:9px}.organization-card small{color:#929c98;margin-top:7px;font-size:8px;display:block}.mobile-nav{display:none}@media (width<=1120px){.metric-grid,.projects-grid,.catalog-tree{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.attention-list{min-height:auto}.detail-grid{grid-template-columns:1fr}.photo-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-aside{grid-template-columns:1fr 1fr}.project-summary-strip{grid-template-columns:repeat(2,1fr)}.project-summary-strip>div:nth-child(2){border-right:0}.project-summary-strip>div:nth-child(-n+2){border-bottom:1px solid #e7ebe6}}@media (width<=760px){.app-main{margin-left:0;padding-bottom:68px}.sidebar{transition:transform .2s;transform:translate(-105%);box-shadow:18px 0 50px #091f1933}.sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:35;visibility:hidden;opacity:0;background:#08181473;border:0;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-scrim.visible{visibility:visible;opacity:1}.mobile-only{margin-left:auto;display:inline-grid}.topbar{gap:10px;height:60px;padding:0 14px}.menu-button{flex:none;display:inline-grid}.search-box{flex:1;width:auto}.search-box kbd{display:none}.search-box input{font-size:10px}.topbar-actions{gap:6px}.sync-pill{border-radius:9px;justify-content:center;width:34px;height:34px;padding:0}.sync-pill span{display:none}.topbar-avatar{display:inline-grid}.topbar-actions .has-dot{display:none}.page-content{padding:25px 15px 40px}.platform-header{height:64px;padding:0 15px}.platform-content{padding:28px 15px 50px}.organization-grid{grid-template-columns:1fr}.demo-banner{justify-content:space-between;gap:8px;padding-inline:14px}.page-heading,.project-detail-heading,.firestop-heading{flex-direction:column;align-items:flex-start;margin-bottom:21px}.worker-project-heading{margin-bottom:19px}.page-heading h1,.project-detail-heading h1,.firestop-heading h1{font-size:27px}.heading-actions{width:100%}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{grid-template-columns:36px 1fr;gap:9px;padding:13px}.metric-icon{width:36px;height:36px}.metric-card strong{font-size:20px}.metric-card small{display:none}.project-overview-card,.attention-card,.activity-card,.table-card,.details-card,.photo-card,.comments-card,.photo-overview-card{padding:15px}.photo-overview-grid{grid-template-columns:1fr}.photo-thumbnails,.photo-thumbnails>img,.photo-thumbnails>span{height:96px}.project-progress{grid-template-columns:36px minmax(0,1fr) 18px}.project-progress>.avatar-stack{display:none}.project-monogram{width:36px;height:36px}.activity-row{grid-template-columns:32px 1fr}.activity-row time{display:none}.projects-grid,.catalog-tree{grid-template-columns:1fr}.worker-project-card{min-height:145px}.project-summary-strip{grid-template-columns:1fr 1fr}.project-summary-strip>div{padding:13px}.firestop-table .table-head{display:none}.firestop-table .table-row{grid-template-columns:1fr auto 18px;padding:14px 2px}.firestop-table .table-row>span:nth-child(2),.firestop-table .table-row>span:nth-child(3){grid-column:1}.firestop-table .table-row>span:nth-child(4){grid-area:1/2}.firestop-table .table-row>span:nth-child(5){grid-area:2/2}.firestop-table .table-row>span:nth-child(6){grid-area:1/3/4}.worker-firestop-card{padding:14px}.worker-list-controls{flex-direction:column;align-items:stretch}.worker-search-box{width:100%;min-width:0;max-width:none}.worker-list-controls .floor-filter{justify-content:space-between}.worker-list-controls .floor-filter select{flex:1}.worker-selection-bar{flex-direction:column;align-items:stretch;gap:9px;margin-inline:-14px;padding:11px 14px}.worker-selection-bar .button{width:100%}.worker-table-head{display:none}.worker-table-row{grid-template-columns:28px minmax(0,1fr) auto;gap:6px 10px;padding:13px 4px}.worker-table-row>.worker-check{grid-area:1/1/4;align-self:stretch}.worker-table-row>span:nth-child(2){grid-area:1/2}.worker-table-row>span:nth-child(3){grid-area:2/2}.worker-table-row>span:nth-child(4){grid-area:3/2/auto/-1}.worker-table-row>span:nth-child(5){grid-area:1/3;justify-self:end}.worker-row-open{grid-area:2/3}.export-bar{flex-direction:column;align-items:stretch}.export-bar>div{grid-template-columns:1fr 1fr;display:grid}.detail-aside{grid-template-columns:1fr}.review-item{grid-template-columns:9px 1fr;padding:15px}.review-actions{grid-column:2}.team-table .table-head{display:none}.team-table .table-row{grid-template-columns:1fr auto}.team-table .table-row>span:nth-child(3),.team-table .table-row>span:nth-child(5){display:none}.login-shell{grid-template-columns:1fr}.login-story{min-height:330px;padding:27px 24px}.login-copy h1{font-size:38px}.login-copy>p:not(.eyebrow){font-size:11px}.login-points{display:none}.login-panel{padding:36px 24px 50px}.form-grid{grid-template-columns:1fr}.centered-shell{padding:18px}.password-card{padding:22px}.span-2{grid-column:auto}.modal-backdrop{align-items:end;padding:0}.modal-card,.modal-card.wide{border-radius:20px 20px 0 0;width:100%;max-height:92vh}.toast{bottom:78px;left:14px;right:14px}.mobile-nav{z-index:30;height:64px;padding:6px max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;justify-content:space-around;align-items:stretch;display:flex;position:fixed;inset:auto 0 0}.mobile-nav button{color:#78847f;background:0 0;border:0;align-content:center;place-items:center;gap:2px;min-width:60px;font-size:8px;font-weight:700;display:grid}.mobile-nav button.active{color:var(--forest)}}@media (width<=430px){.metric-grid{grid-template-columns:1fr}.metric-card small{display:block}.spec-grid{grid-template-columns:1fr}.spec-grid>div:nth-child(2n){border-left:0;padding-left:0}.spec-grid>div.wide{grid-column:auto}.photo-list{grid-template-columns:1fr}.photo-item>span,.photo-item img{height:180px}.credentials-card dl>div{grid-template-columns:1fr;gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
