:root{--bg: #e9ebee;--panel: #ffffff;--panel-2: #f5f6f8;--border: #d4d7dc;--text: #2b2f36;--muted: #6b7280;--accent: #0696d7;--accent-2: #e6f4fb;--orange: #f37021;--danger: #d6342c;--warn: #e8a317;--ok: #2e9e4f;--sketch: #1673d1;--appbar: #3a3d42;--appbar-text: #e8e8e8;--shadow: 0 4px 18px rgba(20, 30, 40, .18);--radius: 6px;--font: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}:root[data-theme=dark]{--bg: #24272c;--panel: #2e3237;--panel-2: #363a40;--border: #484d55;--text: #e4e6ea;--muted: #9aa1ab;--accent: #2aa6e0;--accent-2: #1d3a4a;--appbar: #1b1d20;--shadow: 0 4px 18px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px/1.35 var(--font);overflow:hidden}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:4px 6px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.ico{width:18px;height:18px;flex:none;display:block}.hidden{display:none!important}#app{display:grid;grid-template-rows:38px auto 1fr auto;height:100vh}#appbar{background:var(--appbar);color:var(--appbar-text);display:flex;align-items:center;gap:2px;padding:0 6px}.ab-btn{background:none;border:0;padding:6px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--appbar-text)}.ab-btn:hover{background:#ffffff1f}.ab-btn.active{background:#fff3}.ab-btn:disabled{opacity:.35;cursor:default;background:none}.ab-spacer{flex:1}.ab-state{font-size:12px;opacity:.8;margin-right:8px;white-space:nowrap}.ab-state.err{color:#ff9a8f;opacity:1}#doc-tabs{display:flex;align-items:flex-end;height:100%;margin-left:10px;min-width:0}.doc-tab{display:flex;align-items:center;gap:8px;background:var(--bg);color:var(--text);height:30px;margin-top:8px;padding:0 8px 0 12px;border-radius:6px 6px 0 0;max-width:320px;white-space:nowrap}.doc-tab .name{overflow:hidden;text-overflow:ellipsis}.doc-tab .dirty{color:var(--orange);font-weight:700}.doc-tab button{background:none;border:0;padding:2px;border-radius:3px;cursor:pointer;display:flex}.doc-tab button:hover{background:#0000001a}.doc-tab .ico{width:14px;height:14px}#toolbar{background:var(--panel);border-bottom:1px solid var(--border);display:flex;min-height:86px}#workspace-switch{display:flex;align-items:center;padding:0 8px;border-right:1px solid var(--border)}#btn-workspace{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;font-weight:600;cursor:pointer;white-space:nowrap}#btn-workspace:hover{border-color:var(--accent)}#tb-body{display:flex;flex-direction:column;flex:1;min-width:0}#tb-tabs{display:flex;gap:2px;padding:4px 8px 0}.tb-tab{background:none;border:0;border-bottom:2px solid transparent;padding:3px 10px;font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--muted);cursor:pointer}.tb-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tb-tab.contextual{color:#fff;background:var(--sketch);border-radius:3px 3px 0 0;border-bottom-color:var(--sketch)}#tb-groups{display:flex;gap:2px;padding:4px 6px;overflow-x:auto;scrollbar-width:thin}.tb-group{display:flex;flex-direction:column;align-items:stretch;padding:0 6px;border-right:1px solid var(--border)}.tb-group:last-child{border-right:0}.tb-group .tools{display:flex;gap:1px}.tb-group .glabel{text-align:center;font-size:10.5px;font-weight:600;letter-spacing:.05em;color:var(--muted);margin-top:2px;text-transform:uppercase;cursor:default}.tb-btn{background:none;border:1px solid transparent;border-radius:4px;padding:4px;min-width:34px;display:flex;flex-direction:column;align-items:center;cursor:pointer;color:var(--text)}.tb-btn .ico{width:26px;height:26px}.tb-btn:hover{background:var(--accent-2);border-color:var(--accent)}.tb-btn.active{background:var(--accent-2);border-color:var(--accent);color:var(--accent)}.tb-btn.big{flex-direction:row;gap:6px;padding:6px 10px;font-weight:600}.tb-btn.finish{background:var(--sketch);color:#fff;border-color:var(--sketch)}.tb-btn.finish:hover{filter:brightness(1.1)}.tb-btn .lbl{font-size:10.5px;margin-top:1px;white-space:nowrap}#main{position:relative;min-height:0}#workarea{position:absolute;inset:0;display:flex}#canvas-wrap{position:relative;flex:1;min-width:0;overflow:hidden}#gl{position:absolute;inset:0;width:100%;height:100%;display:block}#viewports{position:absolute;inset:0}.vp{position:absolute;outline:none}.vp.multi{border:1px solid var(--border)}.vp.multi.active{border-color:var(--accent)}.vp-label{position:absolute;left:8px;top:6px;font-size:11px;font-weight:600;color:var(--muted);pointer-events:none;text-transform:uppercase}#viewcube{position:absolute;top:8px;right:8px;width:130px;height:130px;z-index:5}#viewcube canvas{width:100%;height:100%}#viewcube .home{position:absolute;left:2px;top:2px;background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:2px;cursor:pointer;opacity:.85}#viewcube .home:hover{opacity:1;border-color:var(--accent)}#viewcube .home .ico{width:16px;height:16px}#browser{width:250px;background:var(--panel);border-right:1px solid var(--border);overflow:auto;flex:none;user-select:none}#browser.collapsed{width:34px;overflow:hidden}.br-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;font-weight:700;font-size:11px;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);z-index:1}.br-head button{background:none;border:0;cursor:pointer;padding:2px;color:var(--muted)}.tree{list-style:none;margin:0;padding:2px 0}.tree .tree{padding-left:14px}.node{display:flex;align-items:center;gap:4px;padding:3px 6px;cursor:default;border-radius:3px;margin:0 4px}.node:hover{background:var(--panel-2)}.node.selected{background:var(--accent-2);outline:1px solid var(--accent)}.node .tw{width:14px;text-align:center;color:var(--muted);cursor:pointer;font-size:10px}.node .vis{background:none;border:0;padding:1px;cursor:pointer;color:var(--muted);display:flex}.node .vis .ico,.node>.ico{width:15px;height:15px}.node .label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node .label input{width:100%;padding:1px 3px}.node.err .label{color:var(--danger)}.node .swatch{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.2)}#sidepanel{width:340px;background:var(--panel);border-left:1px solid var(--border);overflow:auto;flex:none}.sp-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);z-index:1}.sp-head h2{margin:0;font-size:15px}.sp-head button{background:none;border:0;cursor:pointer;padding:3px;color:var(--muted)}.sp-body{padding:10px 14px 30px}.sp-body h3{font-size:13px;margin:18px 0 6px;color:var(--accent)}.sp-body p,.sp-body li{color:var(--text)}.sp-body .muted{color:var(--muted)}.sp-body kbd,kbd{background:var(--panel-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:0 5px;font:11.5px/1.6 ui-monospace,Consolas,monospace;white-space:nowrap}.tut-step{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:5px;margin:2px 0}.tut-step.done{opacity:.6}.tut-step.done .txt{text-decoration:line-through}.tut-step input{margin-top:2px}.tut-step.current{background:var(--accent-2)}.tut-progress{height:6px;border-radius:3px;background:var(--panel-2);overflow:hidden;margin:6px 0 4px}.tut-progress>div{height:100%;background:var(--ok);transition:width .3s}.sp-body table{border-collapse:collapse;width:100%}.sp-body td{padding:3px 4px;border-bottom:1px solid var(--border);vertical-align:top}#cmd-dialog{position:absolute;top:12px;right:150px;width:300px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:10;max-height:calc(100% - 80px);display:flex;flex-direction:column}.dlg-head{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel-2);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.04em;cursor:move}.dlg-head .ico{width:18px;height:18px;color:var(--accent)}.dlg-head .x{margin-left:auto;background:none;border:0;padding:2px;cursor:pointer}.dlg-body{padding:8px 10px;overflow:auto}.dlg-row{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:6px;margin:5px 0}.dlg-row>label{color:var(--muted)}.dlg-row .unit-input{display:flex;align-items:center;gap:4px}.dlg-row .unit-input input{width:100%;min-width:0}.dlg-row .unit-input span{color:var(--muted);font-size:12px}.dlg-row input[type=checkbox]{justify-self:start}.dlg-row .pickbtn{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--panel-2);cursor:pointer;text-align:left}.dlg-row .pickbtn.active{border-color:var(--accent);background:var(--accent-2);color:var(--accent)}.dlg-row .pickbtn .cnt{font-weight:700}.dlg-section{font-weight:700;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 2px;border-top:1px solid var(--border);padding-top:8px}.dlg-msg{font-size:12px;color:var(--muted);margin:6px 0}.dlg-msg.err{color:var(--danger)}.dlg-foot{display:flex;justify-content:flex-end;gap:6px;padding:8px 10px;border-top:1px solid var(--border)}.btn{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;padding:5px 14px;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.seg{display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.seg button{flex:1;background:var(--panel);border:0;border-right:1px solid var(--border);padding:4px 6px;cursor:pointer;font-size:12px}.seg button:last-child{border-right:0}.seg button.on{background:var(--accent);color:#fff}#sketch-palette{position:absolute;top:12px;right:150px;width:290px;background:var(--panel);border:1px solid var(--sketch);border-radius:var(--radius);box-shadow:var(--shadow);z-index:9;max-height:calc(100% - 80px);display:flex;flex-direction:column}#sketch-palette .dlg-head{background:var(--sketch);color:#fff}#sketch-palette .dlg-head .ico{color:#fff}.ent{border:1px solid var(--border);border-radius:5px;padding:6px;margin:6px 0}.ent.sel{border-color:var(--sketch);background:var(--accent-2)}.ent-head{display:flex;align-items:center;gap:6px;font-weight:600;margin-bottom:4px}.ent-head .ico{width:15px;height:15px;color:var(--sketch)}.ent-head button{margin-left:auto;background:none;border:0;cursor:pointer;padding:1px;color:var(--muted)}.ent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 8px}.ent-grid label{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.ent-grid input{width:100%;min-width:0;padding:2px 4px}#hud{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:8;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:6px}.hud-msg{background:#1e232ae0;color:#fff;padding:6px 12px;border-radius:16px;font-size:12.5px;box-shadow:var(--shadow)}.dim-tag{position:absolute;pointer-events:none;background:var(--sketch);color:#fff;font-size:11.5px;padding:1px 6px;border-radius:3px;white-space:nowrap;transform:translate(12px,-26px);z-index:7}#busy{position:absolute;left:12px;bottom:54px;display:flex;gap:8px;align-items:center;background:var(--panel);padding:5px 10px;border-radius:14px;box-shadow:var(--shadow);z-index:7;font-size:12px}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#navbar{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;gap:1px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:3px;box-shadow:0 2px 8px #0000001a;z-index:6}#navbar .sep{width:1px;background:var(--border);margin:3px}.nb-btn{background:none;border:1px solid transparent;border-radius:4px;padding:4px 5px;cursor:pointer;display:flex;align-items:center;gap:2px;color:var(--text)}.nb-btn:hover{background:var(--accent-2)}.nb-btn.active{background:var(--accent-2);border-color:var(--accent);color:var(--accent)}.nb-btn .caret{font-size:9px;color:var(--muted)}#timeline{background:var(--panel);border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:4px 8px;min-height:46px}.tl-controls{display:flex;gap:1px}.tl-controls button{background:none;border:1px solid transparent;border-radius:4px;padding:4px;cursor:pointer;color:var(--muted);display:flex}.tl-controls button:hover{background:var(--accent-2);color:var(--accent)}.tl-controls .ico{width:13px;height:13px}.tl-track{flex:1;display:flex;align-items:center;gap:2px;overflow-x:auto;padding:4px 2px;min-height:40px;scrollbar-width:thin}.tl-item{position:relative;flex:none;width:32px;height:32px;border-radius:4px;border:1px solid var(--border);background:var(--panel-2);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text)}.tl-item:hover{border-color:var(--accent)}.tl-item.sel{background:var(--accent-2);border-color:var(--accent)}.tl-item.sketch{color:var(--sketch)}.tl-item.after{opacity:.35}.tl-item.suppressed{opacity:.45;background:repeating-linear-gradient(45deg,var(--panel-2),var(--panel-2) 4px,var(--border) 4px,var(--border) 5px)}.tl-item.err{border-color:var(--danger);color:var(--danger);background:#fdecea}.tl-item.warnflag:after{content:"!";position:absolute;top:-5px;right:-5px;width:13px;height:13px;border-radius:50%;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.tl-item .ico{width:20px;height:20px}.tl-marker{flex:none;width:10px;height:36px;position:relative;cursor:ew-resize}.tl-marker:before{content:"";position:absolute;left:4px;top:0;bottom:0;width:3px;background:var(--orange);border-radius:2px}.tl-marker:after{content:"";position:absolute;left:0;top:-2px;border:5px solid transparent;border-top-color:var(--orange);border-top-width:7px}.tl-info{font-size:11.5px;color:var(--muted);white-space:nowrap}.tl-empty{color:var(--muted);font-size:12px;padding:0 6px}.gallery{flex:1;display:flex;gap:8px;overflow-x:auto;padding:4px;align-items:center}.gallery .thumb{position:relative;flex:none;height:64px;border:1px solid var(--border);border-radius:4px;overflow:hidden;cursor:pointer;background:var(--panel-2)}.gallery .thumb img{height:100%;display:block}.gallery .thumb:hover{border-color:var(--accent)}#timeline.gallery-mode{min-height:80px}#datapanel{position:absolute;left:0;top:0;bottom:0;width:320px;background:var(--panel);border-right:1px solid var(--border);box-shadow:var(--shadow);z-index:20;display:flex;flex-direction:column}.dp-team{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--panel-2);border-bottom:1px solid var(--border);font-weight:600}.dp-team button,.dp-tools button{background:none;border:0;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;gap:5px;color:var(--text)}.dp-team button:hover,.dp-tools button:hover{background:var(--accent-2)}.dp-proj{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);font-weight:600}.dp-proj .back{background:none;border:0;cursor:pointer;padding:2px;display:flex}.dp-tools{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border)}.dp-tools .grow{flex:1}.dp-tools select{padding:3px;font-size:12px}.dp-list{flex:1;overflow:auto;padding:6px}.dp-item{display:flex;align-items:center;gap:8px;padding:6px;border-radius:5px;border:1px solid transparent;cursor:pointer;position:relative}.dp-item:hover{background:var(--panel-2);border-color:var(--border)}.dp-item .thumb{width:64px;height:48px;border-radius:4px;background:var(--panel-2) center/cover no-repeat;border:1px solid var(--border);flex:none;display:flex;align-items:center;justify-content:center;color:var(--muted)}.dp-item .meta{flex:1;min-width:0}.dp-item .meta .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-item .meta .s{font-size:11.5px;color:var(--muted)}.dp-item .acts{display:none;gap:2px}.dp-item:hover .acts{display:flex}.dp-item .acts button{background:none;border:0;padding:3px;border-radius:3px;cursor:pointer;color:var(--muted);display:flex}.dp-item .acts button:hover{background:var(--accent-2);color:var(--accent)}.dp-item .acts .ico{width:15px;height:15px}.dp-item .pinned{color:var(--orange)}.dp-item.current{border-color:var(--accent)}.badge{display:inline-block;font-size:10.5px;padding:0 5px;border-radius:8px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.menu{position:fixed;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);padding:4px;z-index:1000;min-width:190px}.menu .mi{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;cursor:pointer;white-space:nowrap}.menu .mi:hover{background:var(--accent-2)}.menu .mi.disabled{opacity:.45;pointer-events:none}.menu .mi .k{margin-left:auto;color:var(--muted);font-size:11.5px;padding-left:16px}.menu .mi .ico{width:16px;height:16px}.menu .msep{height:1px;background:var(--border);margin:4px 2px}.menu .mtitle{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;padding:4px 10px 2px;letter-spacing:.05em}.marking{position:fixed;z-index:1000;width:0;height:0}.marking .mk{position:absolute;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:5px 10px;display:flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px #00000026}.marking .mk:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.marking .mk .ico{width:16px;height:16px}.marking .hub{position:absolute;width:22px;height:22px;border-radius:50%;border:2px solid var(--accent);transform:translate(-50%,-50%);background:var(--panel)}.marking .mk-list{position:absolute;top:120px;left:0;transform:translate(-50%)}.modal-back{position:fixed;inset:0;background:#0f141c66;z-index:900;display:flex;align-items:center;justify-content:center}.modal{background:var(--panel);border-radius:8px;box-shadow:var(--shadow);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 60px);display:flex;flex-direction:column}.modal.wide{width:min(900px,calc(100vw - 32px))}.modal .m-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal .m-head h2{margin:0;font-size:15px}.modal .m-head button{background:none;border:0;cursor:pointer;padding:3px}.modal .m-body{padding:14px 16px;overflow:auto}.modal .m-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--border)}.form-row{display:grid;grid-template-columns:170px 1fr;gap:8px;align-items:center;margin:8px 0}.form-row label{color:var(--muted)}.tabs-h{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:10px}.tabs-h button{background:none;border:0;border-bottom:2px solid transparent;padding:6px 12px;cursor:pointer;font-weight:600;color:var(--muted)}.tabs-h button.on{color:var(--accent);border-bottom-color:var(--accent)}.sc-table{width:100%;border-collapse:collapse}.sc-table td{padding:4px 6px;border-bottom:1px solid var(--border)}.sc-table td:last-child{text-align:right;white-space:nowrap}.sc-table .capture{outline:2px solid var(--orange)}.toolbox{position:fixed;z-index:1000;width:330px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.toolbox input{width:calc(100% - 16px);margin:8px;padding:6px 8px}.toolbox .tb-list{max-height:320px;overflow:auto;padding:0 4px 6px}.toolbox .tb-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer}.toolbox .tb-item.hi,.toolbox .tb-item:hover{background:var(--accent-2)}.toolbox .tb-item .k{margin-left:auto;color:var(--muted);font-size:11.5px}.toolbox .tb-item .star{background:none;border:0;cursor:pointer;color:var(--muted);padding:0 2px}.toolbox .tb-item .star.on{color:var(--orange)}.toolbox .tb-title{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;padding:4px 10px}#toasts{position:fixed;bottom:70px;right:16px;display:flex;flex-direction:column;gap:6px;z-index:2000}.toast{background:var(--appbar);color:#fff;padding:8px 14px;border-radius:6px;box-shadow:var(--shadow);max-width:380px;animation:tin .2s ease-out}.toast.err{background:var(--danger)}.toast.ok{background:var(--ok)}@keyframes tin{0%{transform:translateY(8px);opacity:0}}.render-view img{max-width:100%;display:block;margin:0 auto;border-radius:4px}.mat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mat{border:2px solid transparent;border-radius:6px;padding:4px;text-align:center;cursor:pointer;font-size:11px}.mat:hover{border-color:var(--border)}.mat.on{border-color:var(--accent)}.mat .ball{width:42px;height:42px;border-radius:50%;margin:0 auto 3px;box-shadow:inset -6px -8px 12px #00000059,inset 4px 4px 8px #ffffff73}@media(max-width:900px){#browser{width:190px}#sidepanel{position:absolute;right:0;top:0;bottom:0;z-index:15;width:min(340px,100vw)}#cmd-dialog,#sketch-palette{right:8px;top:146px;width:min(300px,calc(100% - 16px))}.tb-btn .lbl{display:none}}@media(max-width:600px){#browser{display:none}#viewcube{width:96px;height:96px}#datapanel{width:100%}}#login{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at 30% 20%,#4a5058,#2a2d32 70%)}.login-card{background:var(--panel);color:var(--text);width:min(380px,100%);border-radius:10px;box-shadow:var(--shadow);padding:26px 26px 22px;display:flex;flex-direction:column;gap:12px}.login-logo{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:15px}.login-logo svg{width:28px;height:28px}.login-logo span{color:var(--text)}.login-card h1{margin:4px 0 0;font-size:19px}.login-sub{margin:0;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.login-card input{padding:8px 10px;font-size:14px}.login-card .btn{padding:9px;font-size:14px;margin-top:4px}.login-err{color:var(--danger);min-height:1em;font-size:12.5px}.ab-user{margin-left:4px}.ab-user .avatar{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}.ab-user .uname{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-h{font-size:13px;margin:18px 0 4px;padding-top:10px;border-top:1px solid var(--border)}.uf-pwd{display:flex;gap:6px}.uf-pwd input{flex:1;min-width:0;font-family:ui-monospace,monospace}.chk{display:flex!important;align-items:center;gap:6px;color:var(--text)!important}.us-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.us-bar .btn{display:inline-flex;align-items:center;gap:4px}.us-bar .btn svg,.us-act svg{width:15px;height:15px}.muted{color:var(--muted)}.us-table{width:100%;border-collapse:collapse}.us-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;padding:4px 6px;border-bottom:1px solid var(--border)}.us-table td{padding:6px;border-bottom:1px solid var(--border);vertical-align:middle}.us-table tr.off td{opacity:.55}.us-act{text-align:right;white-space:nowrap}.us-act .btn{padding:3px 8px;display:inline-flex;align-items:center}.badge.admin{background:var(--accent-2);color:var(--accent);border-color:var(--accent)}@media(max-width:900px){.ab-user .uname{display:none}.us-table th:nth-child(2),.us-table td:nth-child(2),.us-table th:nth-child(6),.us-table td:nth-child(6){display:none}}@media(max-width:600px){.modal .us-table{font-size:12px}}#sketch-overlay{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}#sketch-overlay>div{position:absolute;left:0;top:0;pointer-events:auto;white-space:nowrap}.sk-dim{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-size:11.5px;font-weight:600;cursor:pointer;box-shadow:0 1px 3px #0000001f}.sk-dim:hover{border-color:var(--accent)}.sk-dim.sel{border-color:var(--orange);color:var(--orange)}.sk-dim.driven{color:var(--muted);font-weight:400}.sk-dim.pending{opacity:.8;border-style:dashed;pointer-events:none}.sk-glyph{min-width:15px;height:15px;padding:0 2px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;background:#f7f7f2;color:#3a3d42;border:1px solid #b9bcc2;border-radius:3px;cursor:pointer}.sk-glyph:hover{border-color:var(--accent)}.sk-glyph.sel{background:var(--orange);color:#fff;border-color:var(--orange)}.sk-input{position:absolute;z-index:12;background:var(--panel);border:1px solid var(--accent);border-radius:5px;box-shadow:var(--shadow);padding:6px 8px;display:flex;gap:10px}.sk-input label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.sk-input .unit-input{display:flex;align-items:center;gap:3px}.sk-input input{width:90px;font-weight:600}.sk-status{padding:2px 0 4px;font-weight:600}.sk-status .ok{color:var(--ok)}.sk-status .warn{color:var(--sketch)}.sk-opts{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0}.chk{display:flex;align-items:center;gap:5px;font-size:12.5px;cursor:pointer}.sk-cgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.sk-cbtn{height:28px;border:1px solid var(--border);background:var(--panel-2);border-radius:4px;cursor:pointer;font-weight:700;color:var(--text)}.sk-cbtn:hover{border-color:var(--accent)}.sk-cbtn.active{background:var(--sketch);color:#fff;border-color:var(--sketch)}.sk-pbtns{display:flex;gap:4px;flex-wrap:wrap}.sk-pbtns .btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:12px}.sk-pbtns .ico{width:15px;height:15px}.sk-dimrow{display:grid;grid-template-columns:26px 1fr 78px 22px 20px;gap:4px;align-items:center;padding:2px 3px;border-radius:4px;font-size:12px}.sk-dimrow.sel{background:var(--accent-2)}.sk-dimrow .nm{color:var(--muted);font-weight:600}.sk-dimrow .u{color:var(--muted)}.sk-dimrow input{width:100%;min-width:0;padding:2px 4px}.sk-dimrow button{background:none;border:0;cursor:pointer;padding:0;color:var(--muted)}.sk-dimrow button .ico{width:13px;height:13px}.ct-grid{display:grid;grid-template-columns:repeat(6,auto);gap:1px}.tb-btn.sk-ct{min-width:30px;padding:2px}.tb-btn.sk-ct .glyph{font-weight:800;font-size:13px;height:17px;display:flex;align-items:center}.tb-btn.sk-ct .lbl{font-size:9px;max-width:54px;overflow:hidden;text-overflow:ellipsis}.dlg-row .unit-input.expr input{color:var(--accent);font-style:italic}.dlg-row .unit-input.bad input,input.bad{outline:2px solid var(--danger);outline-offset:-1px}.tut-pick{width:100%;margin-bottom:8px;font-weight:600}.params-dlg h3{margin:6px 0;font-size:13px}.pr-table{width:100%;border-collapse:collapse;margin-bottom:8px}.pr-table th{text-align:left;font-size:11px;color:var(--muted);padding:3px 4px;border-bottom:1px solid var(--border)}.pr-table td{padding:3px 4px;border-bottom:1px solid var(--border);font-size:12.5px}.pr-table td input{width:100%;min-width:60px}.pr-table td.val{white-space:nowrap;font-variant-numeric:tabular-nums}.pr-table .err{color:var(--danger);font-size:11px}.pr-table .btn{padding:2px 5px}.pr-table .btn .ico,.params-dlg [data-add] .ico{width:14px;height:14px}.params-dlg [data-add]{display:inline-flex;align-items:center;gap:4px}#sketch-palette #sk-head{cursor:pointer;user-select:none}#sketch-palette #sk-head .caret{margin-left:auto}#sketch-palette.collapsed .dlg-body,#sketch-palette.collapsed .dlg-foot{display:none}#sketch-overlay>div.pending{pointer-events:none}#drawing-root{position:absolute;inset:0;z-index:8;background:#8f969e;overflow:hidden;cursor:default}[data-theme=dark] #drawing-root{background:#3b4047}#drawing-root.busy:after{content:"Calcul des vues…";position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--panel);padding:4px 12px;border-radius:12px;box-shadow:var(--shadow)}#drawing-root .dw-stage{position:absolute;inset:0}#drawing-root svg.sheet{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 4px 24px #00000059;background:#fff}#drawing-root .dv,#drawing-root .dd,#drawing-root .dn{cursor:move}#drawing-root .dv:hover .dv-hit{stroke:#9cc7ef}#drawing-root .dw-hint{position:absolute;left:50%;bottom:12px;transform:translate(-50%);background:#1e2228d1;color:#fff;padding:5px 12px;border-radius:14px;font-size:12px;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.badge.shared{background:#fff3e0;color:#b25d00;border-color:#f0b46a}.jt{border:1px solid var(--border);border-radius:6px;padding:8px;margin:8px 0}.jt-head{display:flex;align-items:center;gap:6px}.jt-head .btn{margin-left:auto;padding:2px 5px}.jt-head .btn .ico,.jt-ctl .btn .ico{width:14px;height:14px}.jt-ctl{display:flex;align-items:center;gap:6px;margin-top:6px}.jt-ctl input[type=range]{flex:1;min-width:0}
