*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font:12px/1.45 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);--bg:#f6f7f9;--panel:#fff;--panel2:#f1f3f6;--text:#273544;--muted:#718096;--line:#dde2e8;--accent:#0078d4;--accent-soft:#e8f3fc;--canvas:#e9eef3;--shadow:0 10px 35px #162e4926;--top:#192a3c;--hover:#e9edf2}body.dark{--bg:#171f2a;--panel:#202b38;--panel2:#253140;--text:#dfe6ee;--muted:#92a3b5;--line:#364453;--accent:#4aaaff;--accent-soft:#244564;--canvas:#1b2633;--shadow:0 10px 35px #0007;--top:#111b27;--hover:#304054}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:6px 11px;white-space:nowrap;transition:background .12s,border-color .12s}button:hover{background:var(--hover);border-color:#a8bdd0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:default}.primary{color:#fff;background:#087aca;border-color:transparent}.primary:hover{background:#0064ae;border-color:transparent}.icon-button{width:30px;height:30px;border:0;padding:4px;background:transparent;flex-shrink:0}.icon-button svg{width:19px;height:19px}.icon-button.active{color:var(--accent);background:var(--accent-soft)}input,select,textarea{color:var(--text);border:1px solid var(--line);background:var(--panel);padding:7px 9px;border-radius:4px;max-width:100%;min-width:0}input[type=checkbox]{accent-color:var(--accent)}input[type=color]{padding:2px;height:30px}textarea{font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}.muted{color:var(--muted)}.badge{font-size:10px;font-weight:650;padding:2px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent)}.experimental{background:#fff0d5;color:#936316}#boot{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#f0f4f8;z-index:100;color:#273544}#boot h1{font-size:29px;letter-spacing:-1px;margin:15px 0 0}#boot p{color:#718096}.boot-mark{background:#0078d4;color:#fff;font-size:45px;font-weight:800;line-height:80px;width:80px;text-align:center;border-radius:20px;box-shadow:0 10px 40px #0078d433}#app{display:grid;height:100%;grid-template-rows:38px 40px auto minmax(0,1fr) 67px 24px}.titlebar{display:flex;align-items:center;gap:4px;padding:0 13px;background:var(--top);color:#d9e3ed;border-bottom:1px solid #ffffff10}.brand{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.5px;font-weight:650;padding-right:20px}.brand-mark{display:grid;place-items:center;border-radius:5px;width:24px;height:24px;background:#168bd9;color:#fff}.brand-mark svg{width:18px;height:18px}.titlebar .icon-button{color:#c8d6e5;height:27px;width:27px}.titlebar .icon-button:hover{background:#ffffff1c}.titlebar .divider{height:19px;width:1px;background:#ffffff20;margin:0 7px}.document-title{position:absolute;left:50%;transform:translateX(-50%);max-width:35vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-weight:500}.document-title small{color:#95abc1;font-weight:400}.titlebar .spacer{flex:1}.avatar{background:#3e5d78;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:10px;font-weight:600;margin-left:8px}.local-badge{display:flex;gap:6px;align-items:center;font-size:10px;color:#a5c1d8;margin-right:10px}.local-badge:before{content:'';width:5px;height:5px;border-radius:50%;background:#63c9aa}.workspacebar{display:flex;align-items:center;background:var(--panel);border-bottom:1px solid var(--line);padding:0 15px;gap:18px}.workspace-select{font-size:13px;font-weight:700;border:0;background:transparent;min-width:138px;cursor:pointer;padding:6px 22px 6px 0;color:var(--text)}.workspace-tabs{height:100%;display:flex;align-items:stretch;gap:24px;overflow-x:auto;scrollbar-width:none}.workspace-tab{border:0;border-radius:0;padding:0 0;position:relative;color:var(--muted);font-size:11px;letter-spacing:.7px;font-weight:650;background:transparent}.workspace-tab:hover{background:transparent;color:var(--text)}.workspace-tab.active{color:var(--accent)}.workspace-tab.active:after{content:'';position:absolute;height:3px;background:var(--accent);bottom:0;left:0;right:0}.workspacebar .workspace-hint{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}.ribbon{height:94px;display:flex;gap:0;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--line);background:var(--panel2);padding:5px 10px 0;scrollbar-width:thin}.ribbon-group{display:flex;flex-direction:column;padding:0 13px;border-right:1px solid var(--line);flex-shrink:0}.ribbon-group:last-child{border:0}.ribbon-tools{display:flex;flex:1;align-items:flex-start;gap:3px}.ribbon-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;text-align:center;height:17px;line-height:16px}.tool-button{flex-direction:column;gap:4px;border:1px solid transparent;padding:6px 8px 4px;min-width:50px;height:64px;background:transparent;font-size:10px}.tool-button svg{width:27px;height:27px;color:#437b9e}.dark .tool-button svg{color:#8cb9d7}.tool-button:hover{background:var(--panel);border-color:var(--line)}.tool-button.active{background:var(--accent-soft);border-color:var(--accent)}.tool-button.accent svg{color:var(--accent)}.tool-button.finish{color:#17704c;min-width:80px}.tool-button.finish svg{color:#198559}.main-area{display:grid;grid-template-columns:244px minmax(0,1fr) 258px;min-height:0;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0;z-index:3}.panel-header{display:flex;align-items:center;gap:8px;padding:11px 13px;height:42px;border-bottom:1px solid var(--line);font-size:10px;font-weight:700;letter-spacing:.9px;color:var(--muted);flex-shrink:0}.panel-header .spacer{flex:1}.panel-header .icon-button{width:22px;height:22px}.browser-search{margin:10px 11px 8px;display:flex;align-items:center;gap:7px;color:var(--muted);padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}.browser-search input{border:0;background:none;padding:0;width:100%;font-size:11px;outline:0}.browser-content{overflow:auto;flex:1;padding:3px 0 10px}.tree-row{display:flex;align-items:center;gap:6px;min-height:28px;padding:3px 11px;cursor:pointer;border-left:3px solid transparent;user-select:none;white-space:nowrap}.tree-row:hover{background:var(--hover)}.tree-row.selected{background:var(--accent-soft);border-left-color:var(--accent)}.tree-row.root{font-weight:650;padding-left:8px}.tree-row.group{color:var(--muted);font-size:11px;margin-top:5px}.tree-row.child{padding-left:35px}.tree-row.child svg{color:#6592ad}.tree-row .name{overflow:hidden;text-overflow:ellipsis;flex:1}.tree-row .eye{border:0;padding:0;background:none;width:18px;height:20px;color:#7f95a6;opacity:0}.tree-row:hover .eye,.tree-row .eye.hidden{opacity:1}.tree-row .eye svg{width:15px;height:15px}.tree-row .swatch{width:9px;height:9px;border:1px solid #0002;border-radius:2px}.tree-row small{font-size:9px;color:var(--muted)}.browser-footer{padding:11px 14px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;align-items:center;gap:8px}.browser-footer i{width:6px;height:6px;background:#24a17b;border-radius:50%}.viewport{position:relative;background:var(--canvas);overflow:hidden;min-width:0;touch-action:none}.viewport canvas{display:block;position:absolute;inset:0;width:100%;height:100%;outline:none}.viewport-label{position:absolute;top:16px;left:18px;z-index:2;pointer-events:none;color:#6d8194;font-size:11px}.viewport-label strong{color:#4e6579;font-size:12px;font-weight:550}.dark .viewport-label strong{color:#a3b9cc}.viewport-label span{display:block;font-size:10px;margin-top:3px}.viewport-watermark{position:absolute;bottom:67px;left:19px;pointer-events:none;color:#7890a3;font-size:10px;opacity:.6;letter-spacing:1px}.viewcube{position:absolute;top:20px;right:19px;width:83px;height:84px;z-index:4;filter:drop-shadow(0 3px 4px #34485e12)}.viewcube button{position:absolute;background:var(--panel);border-color:#b9c9d6;font-size:8px;font-weight:600;border-radius:2px;color:#6d8294;min-width:25px;height:24px;padding:4px}.viewcube .cube-front{width:45px;height:36px;left:16px;top:24px;background:var(--panel2);font-size:9px}.viewcube .cube-top{width:45px;left:16px;top:0}.viewcube .cube-right{width:22px;height:36px;top:24px;left:61px;writing-mode:vertical-rl}.viewcube .cube-home{border:0;background:transparent;top:61px;left:0;padding:1px}.viewcube .cube-ortho{border:0;background:transparent;top:61px;left:27px;font-size:8px}.nav-bar{position:absolute;z-index:5;bottom:15px;left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:4px 7px;background:var(--panel);box-shadow:0 3px 16px #273e5a18;border:1px solid var(--line);border-radius:7px;gap:3px}.nav-bar .divider{height:20px;width:1px;background:var(--line);margin:0 3px}.nav-hint{position:absolute;bottom:61px;left:50%;transform:translateX(-50%);font-size:10px;color:#8497a9;white-space:nowrap;pointer-events:none}.inspector{border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0;z-index:3}.inspector-content{padding:16px 15px;overflow:auto}.inspector-title{font-size:16px;font-weight:600;letter-spacing:-.3px;line-height:1.2;margin:0 0 5px}.inspector-subtitle{font-size:10px;color:var(--muted);margin-bottom:20px}.section-heading{font-size:10px;font-weight:650;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin:20px 0 11px;display:flex;align-items:center;justify-content:space-between}.property-row{display:flex;gap:6px;align-items:center;margin:9px 0;font-size:11px}.property-row>span:first-child{flex:1;color:var(--muted)}.property-row strong{font-weight:550}.property-row input,.property-row select{width:110px;padding:5px 6px;font-size:11px}.property-row .unit{font-size:10px;color:var(--muted)}.inspector hr{border:0;border-top:1px solid var(--line);margin:18px 0}.info-card{border:1px solid var(--line);border-radius:5px;padding:12px;margin-top:12px}.info-card strong{display:block;font-size:11px;font-weight:600;margin-bottom:5px}.info-card p{font-size:10px;color:var(--muted);margin:0;line-height:1.65}.info-card.tint{background:var(--accent-soft);border-color:transparent}.info-card .big-number{font-size:26px;font-weight:600;letter-spacing:-1px;color:var(--text)}.full-button{width:100%;margin-top:8px;justify-content:flex-start;font-size:11px;padding:8px}.full-button svg{width:17px;height:17px;color:var(--accent)}.timeline{display:flex;align-items:center;background:var(--panel2);border-top:1px solid var(--line);min-width:0;position:relative}.timeline-controls{display:flex;align-items:center;gap:0;padding:0 12px;height:100%;border-right:1px solid var(--line)}.timeline-controls button{width:24px;padding:3px}.timeline-scroll{display:flex;align-items:center;gap:4px;padding:10px 13px;overflow-x:auto;flex:1;scrollbar-width:thin;height:100%;position:relative}.timeline-scroll:before{content:'';position:absolute;left:13px;right:13px;height:1px;background:var(--line);top:32px}.feature-tile{width:33px;height:33px;flex-shrink:0;position:relative;border:1px solid #c7d3dd;border-radius:4px;background:var(--panel);padding:5px;color:#527c9c;box-shadow:0 1px 2px #00000006}.feature-tile svg{width:22px;height:22px}.feature-tile:hover,.feature-tile.selected{border-color:var(--accent);background:var(--accent-soft)}.feature-tile.selected:after{position:absolute;bottom:-5px;left:3px;right:3px;height:2px;background:var(--accent);content:''}.feature-tile.suppressed{opacity:.35}.feature-tile.error{border-color:#d85b5b;color:#cf5d5d}.feature-tile.future{opacity:.4;filter:grayscale(1)}.history-marker{height:44px;width:3px;background:#e4a438;flex-shrink:0;z-index:1;position:relative;margin:0 4px}.history-marker:before{content:'';position:absolute;top:0;left:-3px;border-top:5px solid #e4a438;border-left:5px solid transparent;border-right:5px solid transparent}.timeline-hint{color:var(--muted);font-size:10px;padding:0 16px;max-width:190px}.statusbar{background:var(--panel);display:flex;align-items:center;padding:0 12px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);gap:12px;overflow:hidden;white-space:nowrap}.statusbar .spacer{flex:1}.statusbar .status-chip{border-left:1px solid var(--line);padding-left:12px}.statusbar .engine-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#27a983;margin-right:5px}.busy-indicator{position:absolute;inset:0;background:#dbe6f03b;backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:20}.busy-indicator.visible{display:flex}.busy-card{padding:18px 28px;display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.spinner{width:20px;height:20px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.busy-card strong{font-size:12px}.busy-card small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.busy-card button{font-size:10px;margin-left:14px}dialog{border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);background:var(--panel);color:var(--text);padding:0;min-width:350px;max-width:min(94vw,600px);max-height:90vh;overflow:auto}dialog.wide{width:750px;max-width:94vw}dialog::backdrop{background:#0b1c304f;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);gap:20px}.dialog-heading h2{font-size:15px;font-weight:600;margin:0;letter-spacing:-.2px}.dialog-description{font-size:11px;line-height:1.7;color:var(--muted);margin:15px 20px 0;max-width:490px}.dialog-fields{padding:15px 20px;display:grid;gap:13px}.form-field{display:flex;flex-direction:column;gap:5px;font-size:11px}.form-field>span{font-weight:550}.form-field input,.form-field select{width:100%}.form-field small{font-size:10px;color:var(--muted);max-width:460px}.check-field{flex-direction:row;align-items:center;justify-content:space-between}.check-field input{width:auto}.form-error{color:#cf514c;font-size:11px;margin:0 20px 10px;max-width:440px}.form-error:empty{display:none}.dialog-footer{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;background:var(--panel2);flex-wrap:wrap}.dialog-footer button{min-width:76px;font-size:11px}.report-content{padding:18px 20px;max-height:65vh;overflow:auto}.report-content pre{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.report-content svg{width:100%;height:auto;max-height:65vh;background:#fff}.report-content table{width:100%;border-collapse:collapse}.report-content th,.report-content td{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left;font-size:11px}.report-content th{font-weight:600;color:var(--muted)}.report-content a{color:var(--accent)}#toasts{position:fixed;bottom:108px;left:50%;transform:translateX(-50%);z-index:1000;display:flex;flex-direction:column;gap:7px;pointer-events:none}.toast{box-shadow:var(--shadow);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:11px 16px;display:flex;align-items:center;gap:10px;min-width:270px;max-width:min(650px,90vw);font-size:11px}.toast>span:first-child{color:#159365;font-size:15px;font-weight:700}.toast.error>span:first-child{color:#ce5353}.palette-input{margin:15px 20px;width:calc(100% - 40px);font-size:15px;padding:12px}.palette-list{padding:0 10px 12px;max-height:50vh;overflow:auto}.palette-item{width:100%;justify-content:flex-start;background:none;border:0;border-radius:4px;padding:10px;font-size:12px}.palette-item svg{color:var(--accent);width:19px;margin-right:7px}.palette-item small{margin-left:auto;color:var(--muted);font-size:10px}.sketch-editor{position:absolute;inset:0;background:var(--canvas);z-index:6}.sketch-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair;outline:none}.sketch-grid{stroke:#92a7b51c;stroke-width:1}.sketch-axis-x{stroke:#bc6d7166;stroke-width:1.5}.sketch-axis-y{stroke:#65a38c66;stroke-width:1.5}.sketch-entity{stroke:#2987c7;stroke-width:2;fill:none;pointer-events:stroke}.sketch-entity.selected{stroke:#ff9b23;stroke-width:3}.sketch-point{stroke:#fff;stroke-width:1.5;fill:#2987c7;cursor:move}.sketch-point.selected{fill:#ff9b23}.sketch-preview{stroke:#218dd3;stroke-width:1.5;stroke-dasharray:6 4;fill:#218dd308;pointer-events:none}.sketch-constraint{fill:#60788c;font-size:10px;pointer-events:none}.sketch-status{position:absolute;bottom:15px;left:16px;background:var(--panel);padding:8px 12px;border-radius:5px;box-shadow:0 2px 10px #0001;font-size:10px;color:var(--muted);pointer-events:none}.sketch-help{position:absolute;top:16px;left:16px;z-index:7}.workspace-overlay{position:absolute;top:18px;left:18px;max-width:340px;background:var(--panel);border:1px solid var(--line);box-shadow:0 3px 15px #20334812;border-radius:6px;padding:15px;z-index:3}.workspace-overlay h3{font-size:13px;margin:0 0 8px}.workspace-overlay p{font-size:10px;color:var(--muted);margin:0 0 10px;line-height:1.6}.workspace-overlay .badge{display:inline-block;margin-bottom:7px}.empty-state{text-align:center;padding:30px 18px;color:var(--muted);font-size:11px}.empty-state svg{margin-bottom:10px;color:#8eabc0}.document-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.document-card{display:block;text-align:left;white-space:normal;padding:16px}.document-card strong{display:block;margin:10px 0 6px}.document-card small{color:var(--muted)}.progress-bar{height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin:12px 0}.progress-bar>div{height:100%;background:var(--accent)}.measure-tag{color:var(--accent);font-size:10px;font-weight:600}.warning-note{color:#9e7629;background:#f3c66722;border:1px solid #e4b75e33;border-radius:5px;padding:11px;font-size:10px;line-height:1.6}.chip-list{display:flex;gap:5px;flex-wrap:wrap}.chip{font-size:9px;padding:3px 6px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}
@media(max-width:1250px){.main-area{grid-template-columns:215px minmax(0,1fr) 230px}.ribbon-group{padding:0 8px}.tool-button{padding-left:6px;padding-right:6px;min-width:46px}.workspacebar .workspace-hint{display:none}.workspace-tabs{gap:18px}.timeline-hint{display:none}}
@media(max-width:1000px){.main-area{grid-template-columns:200px minmax(0,1fr)}.inspector{position:absolute;right:0;top:172px;bottom:91px;width:246px;box-shadow:-4px 0 20px #0001;display:none}.inspector.mobile-open{display:flex}.document-title{max-width:32vw}.local-badge{display:none}.tool-button{min-width:45px}.titlebar{padding:0 9px}.brand{padding-right:8px}}
@media(max-width:700px){#app{grid-template-rows:38px 38px 87px minmax(0,1fr) 59px 23px}.ribbon{height:87px;padding-left:1px}.ribbon-label{font-size:8px}.ribbon-group{padding:0 7px}.tool-button{height:59px;font-size:9px;min-width:45px;gap:4px;padding:5px}.tool-button svg{width:24px;height:24px}.workspacebar{padding:0 10px;gap:12px}.workspace-select{min-width:100px;max-width:125px;font-size:12px}.workspace-tabs{gap:15px}.workspace-tab{font-size:10px}.main-area{grid-template-columns:minmax(0,1fr)}.sidebar{position:absolute;left:0;top:163px;bottom:82px;width:230px;box-shadow:5px 0 20px #0002;display:none}.sidebar.mobile-open{display:flex}.inspector{top:163px;bottom:82px;width:235px}.brand{font-size:12px;letter-spacing:.1px}.brand-mark{width:23px;height:23px}.document-title{display:none}.titlebar .divider{margin:0 2px}.titlebar .icon-button{width:25px}.titlebar .avatar{display:none}.viewport-label{left:14px;top:14px}.viewcube{transform:scale(.82);transform-origin:top right;right:13px;top:14px}.nav-hint{display:none}.viewport-watermark{display:none}.statusbar{padding:0 8px;gap:7px;font-size:9px}.statusbar .status-chip{padding-left:7px}.statusbar .status-details{display:none}.timeline-controls{padding:0 5px}.timeline-scroll{padding:9px;gap:4px}.feature-tile{width:29px;height:29px;padding:4px}.feature-tile svg{width:20px;height:20px}dialog{min-width:min(350px,92vw)}.dialog-fields{padding:13px 16px}.dialog-heading{padding:13px 16px}.dialog-footer{padding:10px 16px}.dialog-description{margin:13px 16px 0}.document-cards{grid-template-columns:1fr}.toast{min-width:240px}.sketch-status{font-size:9px;left:8px;right:8px;bottom:10px}.workspace-overlay{max-width:250px;top:12px;left:12px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:0.001s!important;transition:none!important}}
