:root{font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e6e9ef;background:#0f1115;font-synthesis:none;text-rendering:optimizeLegibility;font-smooth:always;--bg: #0f1115;--panel: #181c23;--panel-raised: #202630;--line: #2a303b;--text: #e6e9ef;--muted: #98a2b3;--blue: #4c9aff;--green: #3ecf8e;--amber: #f5a524;--red: #f0616d;--mono: "DM Mono", ui-monospace, SFMono-Regular, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;width:100%;margin:0;overflow:hidden}body{min-width:320px;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.app{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}.topbar{position:relative;z-index:20;height:52px;min-height:52px;padding:0 18px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #242a33;background:#111318}.brand{display:inline-flex;align-items:center;gap:9px;min-width:244px;text-decoration:none;color:var(--text);font-size:15px;font-weight:700;letter-spacing:-.035em}.brand-mark{width:25px;height:25px;display:grid;place-items:center;border:1px solid #354a65;border-radius:6px;background:linear-gradient(135deg,#203955,#172432)}.brand-mark svg{width:19px;height:19px;fill:#8ac2ff}.brand-dot{color:#637387;padding:0 5px}.brand b{color:#88a3c2;font-size:10px;letter-spacing:.11em}.header-license{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid #57422a;border-radius:4px;color:#f7bd6b;font:10px var(--mono);letter-spacing:.04em;text-decoration:none;white-space:nowrap}.header-message{display:flex;align-items:center;gap:7px;margin-left:auto;color:#9ca8b8;font-size:11px}.privacy-dot,.caption-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #3ecf8e1c}.header-actions{display:flex;align-items:center;gap:7px;margin-left:14px}.button{position:relative;display:inline-flex;justify-content:center;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid transparent;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}.button-primary{color:#f4f8ff;background:#2677d6;border-color:#3489e9;box-shadow:0 3px 9px #1462bc2e}.button-primary:hover{background:#3388e7}.button-secondary{color:#d4dae4;border-color:#343b47;background:#1b2028}.button-secondary:hover{background:#252c37;border-color:#475260}.button input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.samples-wrap{position:relative}.samples-dropdown{position:absolute;top:calc(100% + 9px);right:0;z-index:40;width:min(360px,calc(100vw - 24px));padding:5px;border:1px solid #343c49;border-radius:9px;background:#1a1f27;box-shadow:0 16px 40px #0009}.samples-dropdown button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:11px;border:0;border-radius:6px;background:transparent;color:#e4eaf2;text-align:left;cursor:pointer}.samples-dropdown button:hover{background:#242d39}.samples-dropdown b,.samples-dropdown small{display:block}.samples-dropdown b{margin-bottom:3px;font-size:12px}.samples-dropdown small{max-width:275px;color:var(--muted);font-size:10px;line-height:1.45}.icon-button{width:32px;height:32px;border:1px solid var(--line);border-radius:6px;background:#1b2028;color:#aeb8c6;cursor:pointer}.panel-toggle{display:none}.workspace{position:relative;display:flex;flex:1;min-height:0;overflow:hidden}.left-panel,.right-panel{position:relative;z-index:5;display:flex;flex-direction:column;flex:0 0 258px;min-width:0;overflow:hidden;background:var(--panel)}.left-panel{border-right:1px solid var(--line)}.left-panel.collapsed{flex-basis:0;border-right:0}.right-panel{flex-basis:286px;border-left:1px solid var(--line)}.file-card{flex:0 0 auto;margin:13px 12px 0;padding:11px 12px 10px;border:1px solid #2d3541;border-radius:7px;background:linear-gradient(130deg,#202732,#1b2028)}.file-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.file-icon{display:grid;place-items:center;width:28px;height:25px;border:1px solid #334f6d;border-radius:4px;color:#87bfff;background:#18314b;font:9px var(--mono)}.stage-pulse{width:7px;height:7px;border-radius:50%;background:#5e6b7b}.stage-pulse.ready{background:var(--green);box-shadow:0 0 0 3px #3ecf8e19}.stage-pulse.reading,.stage-pulse.parsing,.stage-pulse.scene{background:var(--blue);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 5px #4c9aff22}}.file-card>strong{display:block;overflow:hidden;color:#e2e8f1;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.file-meta{display:flex;gap:6px;margin-top:5px;color:#8f9cad;font-size:9px}.read-tracker{display:flex;gap:4px;margin-top:10px}.read-tracker span{height:2px;flex:1;border-radius:2px;background:#343d49}.read-tracker span.complete{background:#3caa83}.panel-content{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#394351 transparent;scrollbar-width:thin}.left-panel>.panel-content{margin-top:18px}.panel-section{padding:17px 14px;border-bottom:1px solid #282e38}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-heading h2{margin:3px 0 0;font-size:13px;font-weight:700;letter-spacing:-.02em}.eyebrow{color:#7f8b9d;font:9px var(--mono);letter-spacing:.12em}.subtle{color:#788597;font-size:10px}.muted{color:#8792a1;font-size:9px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.layer-actions{display:flex;align-items:center;gap:7px;margin:-4px 0 10px;color:#556172}.layer-actions button{padding:0;border:0;background:none;color:#91a0b3;font-size:9px;cursor:pointer}.layer-actions button:hover{color:#d9e6f5}.layer-list{display:flex;flex-direction:column;gap:2px}.layer-row{display:grid;grid-template-columns:18px minmax(0,1fr) 22px;align-items:center;gap:6px;min-height:31px;padding:0 4px;border-radius:4px}.layer-row:hover{background:#222832}.layer-swatch{width:12px;height:12px;padding:0;border:1px solid #ffffff30;border-radius:3px;background:var(--layer-color);cursor:pointer}.layer-name{display:flex;justify-content:space-between;align-items:center;min-width:0;padding:4px 0;border:0;background:none;color:#cbd3de;font-size:10px;text-align:left;cursor:pointer}.layer-name span{margin-left:8px;color:#728093}.layer-row input{justify-self:end;width:13px;height:13px;margin:0;accent-color:#4c9aff;cursor:pointer}.empty-note{margin:8px 0;color:#7d8999;font-size:10px;line-height:1.55}.left-footer{display:flex;align-items:center;gap:7px;min-height:37px;padding:0 15px;border-top:1px solid #282e38;color:#7d8999;font-size:9px}.local-mark{color:#4abd93;font-size:14px}.drawing-area{position:relative;display:flex;flex:1;min-width:0;min-height:0;overflow:hidden;background:#14171c}.viewport-shell{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;background:#14171c}.viewport-renderer,.viewport-overlay{position:absolute;inset:0;width:100%;height:100%}.viewport-renderer{touch-action:none;cursor:crosshair}.viewport-overlay{pointer-events:none}.view-hint{position:absolute;top:12px;left:13px;display:flex;flex-wrap:wrap;gap:6px;max-width:62%;pointer-events:none}.view-hint span{padding:4px 6px;border:1px solid #2c333e;border-radius:4px;background:#181c23dc;color:#929eae;font:9px var(--mono)}.fit-float{position:absolute;top:11px;right:12px;display:none;width:34px;height:34px;border:1px solid #37404d;border-radius:6px;background:#1b2029e8;color:#dbe4ef;cursor:pointer}.tool-dock{position:absolute;z-index:4;bottom:21px;left:50%;display:flex;align-items:stretch;gap:3px;padding:5px;border:1px solid #313a46;border-radius:9px;background:#1a1f27ed;box-shadow:0 9px 30px #0005;transform:translate(-50%);backdrop-filter:blur(10px)}.tool-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:63px;min-height:44px;padding:4px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:#a8b3c2;cursor:pointer}.tool-button:hover{background:#2a313b;color:#eff5fe}.tool-button.selected{border-color:#37699e;background:#203751;color:#9dccff}.tool-button>span{font-size:16px;line-height:18px}.tool-button small{font-size:9px;white-space:nowrap}.tool-export{color:#93c5ff}.dwg-disabled{color:#707a87;opacity:.55;cursor:not-allowed}.viewport-caption{position:absolute;right:12px;bottom:13px;display:flex;align-items:center;gap:7px;color:#7b8798;font:9px var(--mono);pointer-events:none}.viewport-caption .caption-dot{width:5px;height:5px}.caption-divider{color:#46505e}.right-panel .panel-section:first-child{padding-top:18px}.property-type{display:flex;align-items:center;gap:8px;margin:8px 0 16px;color:#edf3fb;font:11px var(--mono)}.type-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px #4c9aff1e}.properties-grid,.metric-list{display:grid;grid-template-columns:minmax(84px,.7fr) minmax(0,1.3fr);row-gap:10px;margin:0;font-size:10px}.properties-grid dt,.metric-list dt{color:#8290a2}.properties-grid dd,.metric-list dd{overflow:hidden;margin:0;color:#d7dee8;text-overflow:ellipsis;white-space:nowrap}.properties-grid dd.mono{font-size:9px}.selection-empty{display:flex;flex-direction:column;align-items:center;padding:31px 18px 23px;color:#7e8a9a;text-align:center}.selection-glyph{display:grid;place-items:center;width:38px;height:38px;border:1px solid #374251;border-radius:50%;color:#7e9bbb;font-size:23px}.selection-empty p{max-width:195px;margin:12px 0 7px;font-size:10px;line-height:1.55}.selection-empty span{color:#667384;font-size:9px}.edit-label{display:flex;flex-direction:column;gap:6px;margin-top:16px;color:#8793a3;font-size:9px}.edit-label select,.layout-block select{width:100%;height:28px;padding:0 8px;border:1px solid #333b47;border-radius:5px;background:#1c222b;color:#d4dce7;font-size:10px}.edit-controls{display:flex;align-items:center;gap:4px;margin-top:10px;color:#8491a2;font-size:9px}.edit-controls>span{margin-right:4px}.edit-controls button{min-width:27px;height:27px;padding:0 6px;border:1px solid #343d49;border-radius:4px;background:#202630;color:#c9d3df;font-size:11px;cursor:pointer}.edit-controls button:hover:not(:disabled){border-color:#54769e;background:#293849}.edit-controls button:disabled{opacity:.4;cursor:default}.edit-controls button.danger-button{margin-left:auto;padding:0 8px;color:#f0949d}.history-controls{justify-content:flex-end}.history-controls button{padding:0 9px;font-size:9px}.metrics-section{padding-bottom:13px}.metric-cards{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.metric-cards div{display:flex;flex-direction:column;gap:3px;padding:9px 9px 8px;border:1px solid #2d3540;border-radius:5px;background:#1d232c}.metric-cards strong{color:#e9eff7;font:12px var(--mono)}.metric-cards span{color:#8290a1;font-size:9px}.metric-list{row-gap:7px}.metric-list dd{color:#b5c4d6;font:9px var(--mono);text-align:right}.small-heading{margin:15px 0 8px;color:#8592a4;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.license-notice{display:grid;gap:5px;margin-top:16px;padding:10px;border:1px solid #383d47;border-radius:6px;background:#1b2028;color:#9ba6b5;font-size:9px;line-height:1.5}.license-notice strong{color:#e0c18e;font-size:9px}.license-notice p{margin:0}.license-notice a{width:fit-content;color:#8bbfff;text-decoration:none}.license-notice a:hover{text-decoration:underline}.type-counts{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.type-counts div{display:flex;justify-content:space-between;gap:7px;padding:3px 0;color:#b4bfcd;font-size:9px}.type-counts strong{color:#dbe3ee;font-size:9px}.layout-block{margin-top:8px}.layout-block .small-heading{margin-top:12px}.warnings-section{padding-bottom:11px}.warning-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:9px;background:#2a3039;color:#a8b3c0;font:10px var(--mono)}.warning-count.has-warning{background:#4c3923;color:#f7ba5b}.no-warnings{display:flex;align-items:center;gap:8px;color:#7f8b99;font-size:9px}.no-warnings span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#1d3b32;color:#5bd5a0}.no-warnings p{margin:0}.warning-list{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}.warning-item{display:flex;gap:7px;color:#d7c6a6}.warning-item.info{color:#a9c8e9}.warning-item.error{color:#f0a4a8}.warning-symbol{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;border-radius:50%;background:#4b3922;color:var(--amber);font:10px var(--mono)}.warning-item.info .warning-symbol{background:#25384d;color:#8ebbea}.warning-item.error .warning-symbol{background:#492c32;color:var(--red)}.warning-item strong{display:block;margin:1px 0 3px;color:currentColor;font:9px var(--mono)}.warning-item p{margin:0;color:#a8b1bd;font-size:9px;line-height:1.45}.status-bar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;height:30px;min-height:30px;padding:0 14px;border-top:1px solid #292f39;background:#161a20;color:#8793a3;font:9px var(--mono)}.coordinates,.status-center,.status-right{display:flex;align-items:center;gap:11px}.coordinates b,.status-center b{color:#ced8e5;font-weight:400}.crosshair-small{color:#5d94d3;font-size:14px}.status-separator{color:#45505e}.fps-indicator{display:flex;align-items:center;gap:5px}.fps-indicator i,.online-status i,.snap-status i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#56c697}.status-right{gap:13px}.snap-status{display:flex;align-items:center;gap:5px;color:#7c8898}.snap-status i{background:#bd9560}.online-status{display:flex;align-items:center;gap:6px;color:#79b99a;font-size:8px;letter-spacing:.05em}.error-banner{position:absolute;z-index:15;top:14px;left:50%;display:flex;align-items:flex-start;gap:11px;width:min(510px,calc(100% - 24px));padding:12px;border:1px solid #713b43;border-radius:7px;background:#2b1d22f5;box-shadow:0 8px 25px #0005;transform:translate(-50%)}.error-banner>span{display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;border-radius:50%;background:#623139;color:#ffa0a8;font-weight:700}.error-banner strong{color:#ffd7d9;font-size:11px}.error-banner p{margin:4px 0;color:#edb1b6;font-size:10px}.error-banner small{color:#ae8c91;font-size:9px}.error-banner button{margin-left:auto;border:0;background:transparent;color:#d89ca3;font-size:17px;cursor:pointer}.empty-viewport{display:grid;flex:1;place-items:center;background:#14171c}.empty-drawing{display:flex;flex-direction:column;align-items:center;text-align:center}.empty-cross{display:grid;place-items:center;width:57px;height:57px;border:1px solid #33404f;border-radius:50%;color:#6da7e7;font-size:35px}.empty-drawing h2{margin:15px 0 5px;font-size:16px}.empty-drawing p{margin:0 0 15px;color:#8894a4;font-size:11px}.drop-overlay{position:absolute;z-index:30;inset:52px 0 30px;display:grid;place-items:center;background:#080b10c9;backdrop-filter:blur(3px)}.drop-card{display:flex;flex-direction:column;align-items:center;gap:9px;padding:37px 46px;border:1px dashed #579be2;border-radius:12px;background:#182535;color:#e6f2ff}.drop-card>span{color:#82bdff;font-size:33px}.drop-card strong{font-size:15px}.drop-card small{color:#9bacc0;font-size:10px}.modal-backdrop{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:#05070bc9;backdrop-filter:blur(4px)}.export-modal{width:min(480px,100%);max-height:min(630px,100%);overflow:auto;padding:20px;border:1px solid #394351;border-radius:10px;background:#1a1f27;box-shadow:0 20px 70px #0008}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:15px;border-bottom:1px solid #2b323d}.modal-header h2{margin:4px 0 0;font-size:17px}.modal-header button{width:29px;height:29px;border:1px solid #333d49;border-radius:5px;background:#222832;color:#b6c0cf;font-size:18px;cursor:pointer}.export-report{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:17px 0}.export-report>div{min-height:68px;padding:12px;border:1px solid #2c3541;border-radius:6px;background:#1e242d}.export-report h3{margin:0 0 9px;color:#8e9aab;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.export-report p{display:flex;justify-content:space-between;margin:5px 0;color:#d1d9e3;font-size:10px}.export-report p b{font:10px var(--mono)}.export-notes{margin:0;padding:12px 12px 12px 25px;border-radius:5px;background:#212832;color:#aeb9c8;font-size:10px;line-height:1.6}.modal-done{width:100%;margin-top:16px}.mobile-sheet,.mobile-sheet-backdrop{display:none}@media(max-width:1200px)and (min-width:900px){.left-panel{flex-basis:225px}.right-panel{flex-basis:260px}.brand{min-width:208px}.header-message{margin-left:auto}}@media(max-width:899px){.topbar{height:50px;min-height:50px;padding:0 11px;gap:9px}.brand{min-width:0;flex:0 0 auto;gap:7px;font-size:14px}.brand-mark{width:24px;height:24px}.brand b{font-size:8px}.header-license{padding:3px 5px;font-size:8px}.header-license .license-full{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-message{margin-left:auto;gap:5px;font-size:0}.privacy-dot{width:7px;height:7px}.header-actions{gap:5px;margin-left:0}.header-actions .button{height:44px;min-width:44px;padding:0 8px;font-size:10px}.panel-toggle{display:none}.workspace{overflow:hidden}.left-panel,.right-panel{display:none}.drawing-area,.viewport-shell{position:absolute;inset:0}.tool-dock{bottom:218px;gap:1px;padding:4px}.tool-button{min-width:59px;min-height:45px;padding:4px 6px}.tool-button small{font-size:8px}.viewport-caption{bottom:200px;right:11px;font-size:8px}.view-hint{top:10px;left:10px}.fit-float{display:block}.mobile-sheet{position:absolute;z-index:6;right:0;bottom:0;left:0;display:flex;flex-direction:column;height:197px;border-top:1px solid #353e4b;border-radius:13px 13px 0 0;background:#191e26f5;box-shadow:0 -10px 35px #0004;transition:height .18s ease;backdrop-filter:blur(12px)}.mobile-sheet.closed{height:62px}.sheet-grabber{display:grid;flex:0 0 19px;place-items:center;cursor:pointer}.sheet-grabber span{width:34px;height:3px;border-radius:4px;background:#5d6979}.mobile-tabs{display:grid;flex:0 0 44px;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #2c333d}.mobile-tabs button{position:relative;border:0;background:transparent;color:#8592a3;font-size:10px;font-weight:600;cursor:pointer}.mobile-tabs button.active{color:#9ac9ff}.mobile-tabs button.active:after{position:absolute;right:15px;bottom:-1px;left:15px;height:2px;background:#4c9aff;content:""}.mobile-tabs i{position:absolute;top:2px;right:17%;display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#5a4123;color:#ffd08b;font:8px var(--mono);font-style:normal}.mobile-sheet>.panel-content{overflow-y:auto}.mobile-sheet .panel-section{padding:10px 14px 13px;border-bottom:0}.mobile-sheet .section-heading{margin-bottom:9px}.mobile-sheet .section-heading .eyebrow{display:none}.mobile-sheet .section-heading h2{font-size:12px}.mobile-sheet .layer-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}.mobile-sheet .layer-row{min-height:31px}.mobile-sheet .panel-section[data-testid=warnings-panel]{padding-top:0}.mobile-sheet .panel-section[data-testid=props-panel]{padding-top:10px}.mobile-sheet .panel-section[data-testid=props-panel] .section-heading{display:none}.mobile-sheet .selection-empty{flex-direction:row;justify-content:flex-start;gap:10px;padding:7px 3px;text-align:left}.mobile-sheet .selection-glyph{width:31px;height:31px;flex:0 0 31px;font-size:18px}.mobile-sheet .selection-empty p{margin:0}.mobile-sheet .selection-empty span{display:none}.mobile-sheet .metrics-section{display:block}.mobile-sheet:has([data-testid=metrics-panel]) .layout-block{display:block}.mobile-sheet .properties-grid{row-gap:7px}.mobile-sheet .edit-controls{flex-wrap:wrap}.status-bar{height:29px;min-height:29px;padding:0 9px}.status-right{display:flex;flex-shrink:0;gap:0;margin-left:7px}.status-right .snap-status{display:none}.status-center{gap:7px;margin-left:auto}.coordinates{gap:7px}.coordinates span:nth-of-type(1){display:none}.status-bar,.status-center,.coordinates{font-size:8px}.drop-overlay{inset:50px 0 29px}.drop-card{width:calc(100% - 40px);padding:25px 18px}.error-banner{top:9px}.mobile-sheet-backdrop{display:none}}@media(max-width:390px){.header-message{display:none}.header-actions{margin-left:auto}.header-actions .button{padding:0 7px}.tool-dock{bottom:216px}.tool-button{min-width:54px}.viewport-caption{bottom:198px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
