dialog{color:#000;background:#fff;border:solid;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;margin:auto;padding:1em;display:block;position:absolute;left:0;right:0}dialog:not([open]){display:none}dialog+.backdrop{background:#0000001a;position:fixed;top:0;bottom:0;left:0;right:0}._dialog_overlay{position:fixed;top:0;bottom:0;left:0;right:0}dialog.fixed{position:fixed;top:50%;transform:translateY(-50%)}html,body,#root{min-width:0;min-height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}dialog.dialog-fallback{position:fixed;top:50%;transform:translateY(-50%)}dialog.dialog-fallback+.backdrop{background:#122a2559}dialog.photo-viewer-dialog.dialog-fallback+.backdrop{background:#0a1916d1}:root{--ink:#18333a;--muted:#71858a;--line:#e1e9e7;--panel:#fff;--page:#f4f8f6;--teal:#1d8e7a;--gold:#d9a441;--violet:#8672b8;--shadow:0 14px 40px #20494512}*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer}.app-shell{background:var(--page);min-height:100vh;color:var(--ink)}.topbar{padding-block-start:12px;padding-block-end:12px;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;height:auto;min-height:72px;padding:12px 5vw;display:flex}.brand,.topbar-actions,.connection,.welcome-row,.detail-head,.panel-heading,.modal-head,.modal-actions{align-items:center;display:flex}.brand{gap:12px}.brand-mark{color:#fff;background:var(--teal);border-radius:12px;place-items:center;width:38px;height:38px;font-size:20px;font-weight:800;display:grid;box-shadow:0 7px 15px #1d8e7a38}.brand strong,.brand span{display:block}.brand strong{font-size:16px}.brand span{color:var(--muted);margin-top:2px;font-size:11px}.topbar-actions{flex-wrap:wrap;gap:12px;min-width:0}.brand{flex-shrink:0}.connection{color:var(--muted);gap:6px;font-size:12px}.connection i{background:#45b58b;border-radius:50%;width:7px;height:7px}.avatar{width:32px;height:32px;color:var(--teal);background:#e8f3ed;border:0;border-radius:50%;font-weight:700}.main-content{max-width:1400px;margin:0 auto;padding:42px 5vw 72px}.welcome-row{justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--teal);margin:0 0 7px;font-size:11px;font-weight:800}.welcome-row h1{letter-spacing:-.035em;color:var(--ink);margin:0 0 7px;font-size:clamp(28px,4vw,40px)}.muted{color:var(--muted);font-size:13px}.primary-button,.secondary-button{border:0;border-radius:10px;padding:11px 16px;font-weight:700;transition:transform .15s,box-shadow .15s}.primary-button{background:var(--teal);color:#fff;box-shadow:0 9px 20px #1d8e7a2e}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button span{margin-right:4px;font-size:18px}.secondary-button{color:var(--teal);background:#edf5f1}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.metric-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:18px 20px}.metric-card span,.metric-card small{color:var(--muted);font-size:12px;display:block}.metric-card strong{letter-spacing:-.04em;color:var(--ink);margin:8px 6px 2px 0;font-size:30px;display:inline-block}.metric-card.warning strong{color:#bb7a20}.workspace-grid{grid-template-columns:260px minmax(360px,1fr) minmax(320px,390px);gap:16px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;min-width:0}.locations-panel,.overview-panel,.detail-panel{padding:20px}.panel-heading{justify-content:space-between;margin-bottom:18px}.panel-heading h2,.detail-head h2,.modal h2{letter-spacing:-.02em;margin:0;font-size:17px}.panel-heading span,.stage-tag{color:var(--muted);font-size:11px}.icon-button,.close-button{color:var(--teal);background:0 0;border:0;font-size:23px}.search-box{border:1px solid var(--line);color:var(--muted);border-radius:9px;align-items:center;gap:8px;padding:9px 11px;display:flex}.search-box input{background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.location-list{gap:6px;margin-top:14px;display:grid}.location-item{text-align:left;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;padding:12px 10px;display:flex}.location-item:hover,.location-item.active{background:#eef8f3;border-color:#d5ece2}.location-dot,.legend-dot{background:#b5c4c3;border-radius:50%;flex:none;width:9px;height:9px}.location-dot.teal,.legend-dot.teal{background:var(--teal)}.location-dot.amber{background:var(--gold)}.location-dot.violet{background:var(--violet)}.location-copy{flex:1;min-width:0}.location-copy strong,.location-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.location-copy strong{font-size:12px}.location-copy small{color:var(--muted);margin-top:2px;font-size:10px}.location-count{color:var(--teal);font-size:12px;font-weight:800}.empty{color:var(--muted);text-align:center;font-size:12px}.overview-panel{flex-direction:column;display:flex}.stage-tag{background:#f1f5f2;border-radius:20px;padding:5px 8px}.room-map{background:linear-gradient(135deg,#edf5ef,#e0eee8);border:1px solid #d7e7df;border-radius:12px;flex:1;min-height:400px;position:relative;overflow:hidden}.room-map:before{content:"";border:12px solid #fffc;border-radius:3px;position:absolute;top:14%;bottom:14%;left:10%;right:10%;box-shadow:inset 0 0 0 1px #b9d4c9}.room-label{color:#66817a;font-size:12px;font-weight:700;position:absolute;top:22px;left:24px}.bench{color:#55736a;background:#fff;border-radius:7px;justify-content:space-between;align-items:center;height:54px;padding:0 10px;font-size:10px;display:flex;position:absolute;box-shadow:0 6px 15px #265e4d1f}.bench b{width:22px;height:22px;color:var(--teal);background:#e9f7f0;border-radius:50%;place-items:center;display:grid}.bench-one{width:43%;top:31%;left:21%}.bench-two{width:40%;top:53%;left:35%}.map-hotspot{background:var(--teal);color:#fff;border:4px solid #ffffffd9;border-radius:50%;width:34px;height:34px;font-size:11px;font-weight:800;position:absolute;box-shadow:0 5px 12px #156d5942}.map-hotspot:hover{transform:scale(1.1)}.hotspot-one{top:25%;left:20%}.hotspot-two{background:var(--gold);top:48%;left:72%}.room-door{color:#78988b;font-size:10px;position:absolute;bottom:14%;right:9%}.map-caption{color:#77918a;align-items:center;gap:5px;font-size:10px;display:flex;position:absolute;bottom:16px;left:20px}.map-caption .legend-dot{margin-left:8px}.detail-panel{min-height:475px}.detail-head{justify-content:space-between;align-items:flex-start;gap:12px}.detail-head h2{margin:4px 0}.detail-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);gap:24px;margin:18px 0 8px;padding:13px 0;font-size:11px;display:flex}.detail-stats b{color:var(--ink);margin-right:3px;font-size:18px}.asset-list{display:grid}.asset-row{border-bottom:1px solid #edf1ef;align-items:center;gap:10px;padding:13px 0;display:flex}.asset-photo{width:38px;height:38px;color:var(--teal);background:#edf5f1;border-radius:9px;place-items:center;font-size:11px;font-weight:800;display:grid}.asset-copy{flex:1;min-width:0}.asset-copy strong,.asset-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.asset-copy strong{font-size:12px}.asset-copy span{color:var(--muted);margin-top:3px;font-size:10px}.status{color:#32815d;white-space:nowrap;background:#e6f5ed;border-radius:20px;padding:4px 7px;font-size:10px}.status.check{color:#a56a18;background:#fff3db}.modal-backdrop{z-index:10;background:#122a2559;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#fff;border-radius:16px;width:min(500px,100%);padding:24px;box-shadow:0 20px 60px #0d2f2640}.modal-head{justify-content:space-between;margin-bottom:20px}.modal label{color:#55716a;margin:13px 0;font-size:12px;font-weight:700;display:block}.modal input:not([type=checkbox]){border:1px solid var(--line);outline-color:var(--teal);border-radius:8px;width:100%;margin-top:6px;padding:10px;display:block}.form-row{grid-template-columns:1fr 1.4fr;gap:12px;display:grid}.checkbox-label{align-items:center;gap:8px;display:flex!important}.checkbox-label input{accent-color:var(--teal)}.upload-box{text-align:center;background:#f8fcfa;border:1px dashed #9fc5b6;border-radius:10px;padding:14px}.upload-box input{width:100%;margin-top:8px;font-size:11px;display:block}.upload-box small{color:var(--teal);margin-top:5px;display:block}.modal-actions{justify-content:flex-end;gap:9px;margin-top:22px}.form-help{color:var(--muted);margin:10px 0 0;font-size:11px;line-height:1.6}.detail-head>div:first-child{overflow-wrap:anywhere;flex:1;min-width:0}.detail-actions{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.detail-actions button{white-space:nowrap;font-size:12px}.location-notes{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6}.location-editor{color:var(--ink);max-height:calc(100vh - 32px);border:0;max-height:calc(100dvh - 32px);overflow-y:auto}.location-editor::backdrop{background:#122a2559}.location-editor textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;outline-color:var(--teal);border-radius:8px;margin-top:6px;padding:10px;display:block}.anchor-fieldset{border:1px solid var(--line);border-radius:10px;margin:16px 0 0;padding:12px}.anchor-fieldset legend{color:#55716a;padding:0 5px;font-size:12px;font-weight:700}.anchor-fieldset .checkbox-label{margin:0}.anchor-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.anchor-grid label{margin:0;font-size:11px}.anchor-grid input{margin-top:5px;padding:8px}.form-error{color:#ae3030;font-size:12px}.asset-editor textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;outline-color:var(--teal);border-radius:8px;margin-top:6px;padding:10px;display:block}.operation-error{color:#8f4437;background:#fff0eb;border:1px solid #f0c7bd;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;padding:10px 12px;font-size:12px;line-height:1.6;display:flex}.operation-error button{color:inherit;background:0 0;border:0;flex:none;font-size:18px;line-height:1}.loading-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.loading-shell .panel,.empty-ledger{width:min(520px,100%);padding:28px}.loading-shell h1,.empty-ledger h1{color:var(--ink);margin:0 0 10px;font-size:26px}.empty-ledger .primary-button{margin-top:20px}.overview-loading{min-height:475px;padding:20px}.danger-button{color:#a53d3d;background:#fff0ed;border:0;border-radius:10px;padding:11px 16px;font-weight:700}.member-button{padding:8px 11px;font-size:11px}.members-editor,.room-model-editor{color:var(--ink);max-height:calc(100vh - 32px);border:0;max-height:calc(100dvh - 32px);overflow-y:auto}.room-model-editor::backdrop{background:#122a2559}.members-editor::backdrop{background:#122a2559}.member-add-form{border:1px solid var(--line);background:#f8fcfa;border-radius:11px;grid-template-columns:minmax(0,1fr) 130px auto;align-items:end;gap:10px;padding:12px;display:grid}.member-add-form label{margin:0}.member-add-form .primary-button{white-space:nowrap;padding:10px 12px}.member-add-form select,.member-row select{border:1px solid var(--line);width:100%;color:var(--ink);outline-color:var(--teal);background:#fff;border-radius:8px;margin-top:6px;padding:9px}.member-list{gap:8px;margin-top:16px;display:grid}.member-row{border-bottom:1px solid #edf1ef;grid-template-columns:minmax(0,1fr) auto 98px auto auto;align-items:center;gap:8px;padding:10px 0;display:grid}.member-copy{min-width:0}.member-copy strong,.member-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.member-copy strong{font-size:12px}.member-copy span{color:var(--muted);margin-top:3px;font-size:10px}.member-status,.member-role{white-space:nowrap;border-radius:20px;padding:4px 7px;font-size:10px}.member-status.active{color:#32815d;background:#e6f5ed}.member-status.disabled{color:#a53d3d;background:#fff0ed}.member-role{color:#6e5c9f;background:#f0ecfa}.form-success{color:#32815d;font-size:12px}.asset-photo{flex:none;overflow:hidden}.asset-photo img{object-fit:cover;width:100%;height:100%}.photo-button{cursor:zoom-in;border:0;padding:0}.asset-actions{flex:none;gap:5px;display:flex}.asset-list{grid-template-columns:minmax(0,1fr)}.asset-row{min-width:0}.asset-action{color:var(--teal);background:#edf5f1;border:0;border-radius:7px;padding:6px 7px;font-size:10px}.asset-action.danger{color:#a53d3d;background:#fff0ed}.asset-empty{color:var(--muted);padding:12px 0;font-size:12px}.upload-preview{object-fit:contain;background:#eef5f1;border-radius:9px;width:100%;max-height:150px;margin:12px auto 0;display:block}.preview-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.asset-editor{color:var(--ink);max-height:calc(100vh - 32px);border:0;max-height:calc(100dvh - 32px);overflow-y:auto}.asset-editor::backdrop{background:#122a2559}.photo-viewer-backdrop{z-index:30;background:#0a1916d1;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.photo-viewer-dialog{background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:20px;overflow:visible}.photo-viewer-dialog[open]{place-items:center;display:grid}.photo-viewer-dialog::backdrop{background:#0a1916d1}.photo-viewer-panel{width:min(1100px,100%);max-height:calc(100vh - 40px);place-items:center;max-height:calc(100dvh - 40px);display:grid;position:relative}.photo-viewer-image{max-width:100%;max-height:calc(100vh - 80px);object-fit:contain;background:#fff;border-radius:10px;max-height:calc(100dvh - 80px);display:block;box-shadow:0 20px 60px #0006}.photo-viewer-close{z-index:1;color:#fff;background:#000000a6;border:0;border-radius:50%;width:34px;height:34px;font-size:24px;line-height:1;position:absolute;top:-14px;right:-14px}.photo-viewer-stage{place-items:center;min-width:min(280px,75vw);max-width:100%;min-height:180px;display:grid}.photo-viewer-stage>*{grid-area:1/1}.photo-viewer-image{opacity:0;transition:opacity .16s}.photo-viewer-image.is-ready{opacity:1}.photo-viewer-placeholder{width:min(640px,100%);max-height:calc(100vh - 120px);object-fit:contain;border-radius:10px;max-height:calc(100dvh - 120px)}.photo-viewer-message{z-index:1;color:#fff;text-align:center;background:#000000b3;border-radius:10px;align-self:end;margin:12px;padding:10px 14px}.photo-quality-button{color:#fff;background:#203e38;border:1px solid #ffffff80;border-radius:20px;margin-top:12px;padding:8px 16px}.photo-viewer-image{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px)}.photo-results{overflow-wrap:anywhere;padding-left:22px;font-size:13px;line-height:1.8}.photo-maintenance{width:min(600px,100vw - 32px)}.bench{gap:8px}.bench span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bench b{flex-shrink:0}.inventory-export{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.inventory-export p{flex:280px;margin:0;font-size:12px;line-height:1.6}.audit-dialog{width:min(720px,100vw - 32px);max-height:85vh;border:0;max-height:85dvh;overflow:auto}.audit-dialog::backdrop{background:#122a2559}.audit-list{margin:16px 0;padding:0;list-style:none}.audit-list li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:14px 0}.audit-list p{white-space:pre-wrap;font-size:13px}.audit-list summary{cursor:pointer;color:var(--teal);font-size:13px}@media (max-width:900px){.topbar{flex-wrap:wrap;gap:12px;height:auto;min-height:72px;padding-block-start:12px;padding-block-end:12px}.topbar-actions{flex-wrap:wrap;gap:8px}}@media (max-width:1200px){.workspace-grid{grid-template-columns:220px minmax(0,1fr)}.detail-panel{grid-column:1/-1}.room-map{min-height:350px}}@media (max-width:900px){.topbar{padding:12px 18px}.main-content{padding:28px 16px 50px}.welcome-row{flex-direction:column;align-items:flex-start}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:minmax(0,1fr)}.locations-panel,.overview-panel,.detail-panel{padding:16px}.room-map{min-height:300px}.form-row,.anchor-grid{grid-template-columns:1fr}.connection{display:none}.member-add-form{grid-template-columns:1fr}.member-row{grid-template-columns:minmax(0,1fr) auto}.member-row select,.member-row .asset-action{margin-top:0}.member-row .member-status,.member-row .member-role{justify-self:end}.member-row select{grid-column:1/2}.member-row .asset-action{grid-column:auto}}.auth-shell{min-height:100vh;color:var(--ink);background:linear-gradient(145deg,#eef7f2,#f8fbf9);place-items:center;padding:24px;display:grid}.auth-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:34px}.auth-mark{color:#fff;background:var(--teal);border-radius:15px;place-items:center;width:48px;height:48px;margin-bottom:24px;font-size:24px;font-weight:800;display:grid;box-shadow:0 9px 20px #1d8e7a33}.auth-card h1{color:var(--ink);letter-spacing:-.04em;margin:0 0 10px;font-size:28px}.auth-description{color:var(--muted);font-size:13px;line-height:1.7}.auth-form label{color:#55716a;margin:16px 0;font-size:12px;font-weight:700;display:block}.auth-form input{border:1px solid var(--line);outline-color:var(--teal);border-radius:9px;width:100%;margin-top:7px;padding:11px;display:block}.auth-submit{width:100%;margin-top:8px}.auth-submit:disabled{cursor:wait;opacity:.65}.auth-switch{width:100%;color:var(--teal);background:0 0;border:0;margin-top:14px;font-size:12px;display:block}.auth-help{color:var(--muted);margin:18px 0 0;font-size:11px;line-height:1.7}
