:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172026;background:#eef1f4}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{width:100vw;height:100%}html{overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;margin:0;min-width:320px;max-width:100vw;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:none}#app{position:fixed;inset:0;max-width:100vw;height:100dvh;overflow:hidden;background:#eef1f4}.profile-screen,.bim-stub{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#fff;color:#111827}.profile-card{width:min(520px,calc(100vw - 40px))}.profile-kicker{margin:0 0 10px;color:#6b7280;font-size:13px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.profile-card h1{margin:0 0 24px;font-size:clamp(34px,7vw,56px);line-height:.96;letter-spacing:-.055em}.profile-card p:not(.profile-kicker){margin:-8px 0 24px;color:#6b7280;font-size:17px;line-height:1.45}.profile-actions{display:grid;gap:12px}.profile-option,.secondary-action{width:100%;border:1px solid #e5e7eb;border-radius:22px;background:#fff;color:#111827;cursor:pointer;font:inherit;text-align:left;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.profile-option{display:grid;gap:6px;padding:22px 24px}.profile-option:hover,.secondary-action:hover{border-color:#111827;box-shadow:0 18px 50px #0f172a1f;transform:translateY(-1px)}.profile-option strong{font-size:28px;line-height:1}.profile-option span{color:#6b7280;font-size:14px}.secondary-action{display:inline-flex;justify-content:center;width:auto;padding:12px 18px}.profile-pending .viewer-shell,.profile-bim .viewer-shell{visibility:hidden}.profile-km .profile-screen,.profile-bim .profile-screen{display:none}.viewer-shell{position:fixed;inset:0;width:100vw;height:100dvh;min-width:0;min-height:0;overflow:hidden;overscroll-behavior:none}.viewport{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;touch-action:none}.viewport canvas{display:block;width:100%!important;height:100%!important;touch-action:none}.viewport>div[style*="left: 0.75rem"][style*="bottom: 0.75rem"]{display:none!important}.status-pill{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;right:14px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:9px 12px;border:1px solid rgba(18,28,34,.08);border-radius:999px;background:#ffffffd1;box-shadow:0 8px 28px #0f172a1f;backdrop-filter:blur(14px)}.status-pill strong{flex:0 0 auto;font-size:13px;letter-spacing:-.01em}.status-pill span{min-width:0;overflow:hidden;color:#65737e;font-size:12px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.floating-add{position:absolute;top:50%;left:50%;z-index:6;display:grid;width:78px;height:78px;place-items:center;border:0;border-radius:50%;color:#fff;background:#141a20;box-shadow:0 18px 44px #0f172a47;transform:translate(-50%,-50%);cursor:pointer;-webkit-tap-highlight-color:transparent}.floating-add span{display:block;margin-top:-7px;font-size:54px;font-weight:300;line-height:1}.floating-add:disabled,.icon-button:disabled,.save-fragment:disabled{opacity:.55;pointer-events:none}.loading-overlay{position:absolute;inset:0;z-index:7;display:grid;place-items:center;pointer-events:none}.loading-card{display:grid;justify-items:center;gap:9px;min-width:168px;padding:18px 20px;border:1px solid rgba(18,28,34,.08);border-radius:24px;color:#172026;background:#ffffffeb;box-shadow:0 18px 52px #0f172a33;backdrop-filter:blur(14px)}.loading-spinner{width:42px;height:42px;border:4px solid rgba(20,26,32,.14);border-top-color:#141a20;border-radius:50%;animation:model-loading-spin .85s linear infinite}.loading-card strong{font-size:15px;letter-spacing:-.02em}.loading-card span:last-child{max-width:min(280px,calc(100vw - 80px));overflow:hidden;color:#65737e;font-size:12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}@keyframes model-loading-spin{to{transform:rotate(360deg)}}.library-modal{position:fixed;inset:0;z-index:30;display:grid;align-items:end;padding:14px;background:#0f172a3d;backdrop-filter:blur(8px)}.library-sheet{display:grid;gap:14px;width:100%;max-height:min(78vh,620px);overflow:auto;padding:16px;border-radius:26px;background:#fffffff5;box-shadow:0 -18px 60px #0f172a3d}.library-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.library-header strong{font-size:18px;letter-spacing:-.02em}.plain-button{border:0;color:#172026;background:transparent;cursor:pointer;font:inherit;font-size:22px}.back-button{justify-self:start;padding:0;font-size:15px}.library-actions,.library-list-panel,.fragment-cards,.example-list{display:grid;gap:10px}.library-action,.fragment-card{display:grid;gap:7px;width:100%;padding:16px;border:1px solid rgba(23,32,38,.1);border-radius:20px;color:#172026;background:#f8fafc;text-align:left}.library-action{cursor:pointer;font:inherit}.example-list{padding:10px 0;border-top:1px solid rgba(23,32,38,.08);border-bottom:1px solid rgba(23,32,38,.08)}.example-list-title{color:#687782;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.example-action{background:#eef7ff}.library-action strong,.fragment-card strong{font-size:16px}.library-action span,.fragment-card span{color:#687782;font-size:13px;line-height:1.35}.fragment-card{grid-template-columns:minmax(0,1fr)}.fragment-card strong,.fragment-card span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fragment-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fragment-actions button{min-height:42px;border:0;border-radius:14px;color:#fff;background:#141a20;cursor:pointer;font:inherit;font-weight:650}.fragment-actions .danger-button{color:#991b1b;background:#fee2e2}.action-rail{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));z-index:12;display:grid;gap:10px}.action-button{display:grid;width:56px;height:56px;place-items:center;border:1px solid rgba(18,28,34,.08);border-radius:18px;color:#141a20;background:#fff;box-shadow:0 14px 34px #0f172a2e;cursor:pointer;font:inherit;font-size:23px;-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.floating-search,.home-view{font-size:21px}.search-panel{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 132px);z-index:8;display:grid;width:min(430px,calc(100vw - 28px));max-height:min(54vh,420px);gap:10px;padding:10px;border:1px solid rgba(18,28,34,.1);border-radius:18px;background:#ffffffe6;box-shadow:0 18px 46px #0f172a33;backdrop-filter:blur(14px)}.search-panel.is-collapsed{right:calc(max(16px,env(safe-area-inset-right)) + 66px);bottom:max(18px,env(safe-area-inset-bottom));width:min(430px,calc(100vw - 98px));max-height:58px;padding:6px;cursor:pointer}.search-panel.is-collapsed .search-output{display:none}.search-panel.is-collapsed .search-input{pointer-events:none}.search-row{display:grid;grid-template-columns:minmax(0,1fr) 42px 42px;gap:8px}.search-input{width:100%;min-width:0;height:42px;padding:0 13px;border:1px solid rgba(23,32,38,.14);border-radius:12px;color:#172026;background:#fff;font:inherit;font-size:15px;outline:none}.search-input:focus{border-color:#12a85f;box-shadow:0 0 0 3px #12a85f26}.icon-button{height:42px;border:0;border-radius:12px;color:#fff;background:#141a20;cursor:pointer;font:inherit;font-size:20px}.search-output{min-height:42px;max-height:calc(min(54vh,420px) - 72px);overflow:auto}.search-results,.search-list{display:flex;flex-direction:column;gap:7px}.search-summary,.search-more,.empty-state{color:#687782;font-size:13px;line-height:1.4}.search-result{display:grid;gap:2px;width:100%;padding:9px 10px;border:1px solid rgba(23,32,38,.08);border-radius:12px;color:#172026;background:#f8fafc;text-align:left;cursor:pointer}.search-result:active,.search-result:hover{border-color:#12a85f5c;background:#edf9f2}.search-result strong,.search-result span,.search-result small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result strong{font-size:13px}.search-result span,.search-result small{color:#687782;font-size:11px}.progress{position:absolute;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:7;height:7px;overflow:hidden;border-radius:999px;background:#17202626}.progress-bar{width:0%;height:100%;background:linear-gradient(90deg,#12a85f,#76e0a3);transition:width .18s ease}.side-panel,.tree-output,.properties-output{display:none}@media (max-width: 520px){.status-pill{top:max(10px,env(safe-area-inset-top));left:10px;right:10px}.action-rail{right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));gap:8px}.action-button{width:52px;height:52px;border-radius:16px}.search-panel{right:10px;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 120px);width:calc(100vw - 20px)}.search-panel.is-collapsed{right:calc(max(12px,env(safe-area-inset-right)) + 60px);bottom:max(14px,env(safe-area-inset-bottom));width:calc(100vw - 84px);max-height:54px}}@media (min-width: 760px){.status-pill{right:auto;width:380px}.floating-add{width:86px;height:86px}}
