:root{--ink:#0c2a30;--bg:#eef5f4;--panel:#fff;--panel-2:#f4f9f8;--border:#d3e2e1;--border-strong:#bcd0cf;--text:#0c2a30;--muted:#4d6b6e;--accent:#0e8c84;--accent-soft:#ddf3f1;--on-accent:#fff;--sel:#ff9f1a;--danger:#d2413a;--ok:#188a5c;--warn:#a8600a;--axis:#c8372d;--trace:#f08a24;--mark-line:var(--ink);--mark-dot:var(--accent);--font:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:"Space Grotesk", Inter, system-ui, sans-serif;--viewport:linear-gradient(180deg, #d6e5e4 0%, #f1f6f6 100%);--shadow:0 6px 22px #141e3224;--r-sm:5px;--r:8px;--r-lg:12px;--ctl:28px;--fs:13px;--fs-sm:12px;--fs-xs:11px;--mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#071a1e;--panel:#0c2a30;--panel-2:#11353c;--border:#1d4850;--border-strong:#2a5a62;--text:#e6f1f0;--muted:#8fb3b1;--accent:#2cc8bc;--accent-soft:#10433f;--on-accent:#062226;--mark-line:#f3f5f7;--danger:#ef6a63;--ok:#4fd1a1;--warn:#f2b25c;--viewport:linear-gradient(180deg, #12343a 0%, #081c20 100%);--shadow:0 6px 22px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{font:var(--fs)/1.4 var(--font);background:var(--bg);color:var(--text);flex-direction:column;display:flex;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}a{color:var(--accent)}h1,h2,h3{margin:0}.muted{color:var(--muted)}.small{font-size:var(--fs-xs)}.spacer{flex:1}kbd{font:var(--fs-xs) var(--mono);color:var(--muted);border:1px solid var(--border);background:var(--panel-2);border-radius:4px;padding:1px 5px}:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:1px}:where(input[type=text],input[type=number],input[type=search],input:not([type]),select,textarea){height:var(--ctl);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);min-width:0;color:var(--text);padding:0 8px}:where(textarea){height:auto;padding:6px 8px}:where(input,select,textarea):focus-visible{outline:2px solid var(--accent-soft);border-color:var(--accent)}:where(.float,.sel-bar,table.props,.flt-section,.menu-sub,.bcf-top,.bcf-body,.views-add,.batch,.py-bar,.qto-controls,.card){--ctl:24px}:where(.float,.sel-bar,table.props,.flt-section,.menu-sub,.bcf-top,.bcf-body,.views-add,.batch,.py-bar) :where(input,select,textarea){font-size:var(--fs-sm);padding-inline:6px}input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:34px;height:24px;padding:0}input[type=range]{accent-color:var(--accent);min-width:0}input[type=checkbox],input[type=radio]{accent-color:var(--accent);margin:0}.search{background:var(--panel-2);width:calc(100% - 16px);margin:0 8px 8px}.tab-body .search{width:100%;margin:0 0 8px}.chk{color:var(--muted);font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.field{flex-direction:column;gap:4px;margin:8px 0;display:flex}.field>span{color:var(--muted);font-size:var(--fs-sm)}.grid2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.grid2 .field{margin:0}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.btn{height:var(--ctl);white-space:nowrap;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn.primary:hover:not(:disabled){color:var(--on-accent);filter:brightness(1.08)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.btn.primary-outline{border-color:var(--accent);color:var(--accent);font-weight:600}.btn.sm{height:24px;font-size:var(--fs-sm);border-radius:var(--r-sm);padding:0 8px}.btn.xs{border-radius:var(--r-sm);height:22px;padding:0 6px;font-size:11.5px}.btn.big{border-radius:var(--r);height:40px;padding:0 22px;font-size:15px}.link{color:var(--accent);background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.icon-btn{color:var(--muted);background:0 0;border:0;flex-shrink:0;padding:0 4px;line-height:1}.icon-btn:hover{color:var(--danger)}.seg{border:1px solid var(--border);border-radius:7px;display:flex;overflow:hidden}.seg button{background:var(--panel-2);border:0;border-right:1px solid var(--border);flex:1;padding:5px 4px}.seg button:last-child{border-right:0}.seg button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);scrollbar-width:none;z-index:5;align-items:center;gap:4px;padding:6px 10px;display:flex;overflow-x:auto}.toolbar>*{flex-shrink:0}.brand{font-family:var(--display);letter-spacing:-.025em;align-items:center;gap:7px;margin-right:8px;font-size:16px;font-weight:600;display:flex}.brand .mark{width:26px;height:26px}.mark{fill:none}.mark-line{stroke:var(--mark-line);stroke-width:4.8px;stroke-linecap:round;stroke-linejoin:round}.mark-dot{fill:var(--mark-dot)}.about-mark .mark{width:44px;height:44px}.about-mark{margin-bottom:6px}.sep{background:var(--border);width:1px;height:20px;margin:0 4px}.toolbar>button,.menu-btn{height:var(--ctl);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-weight:500;display:inline-flex}.toolbar>button:hover,.menu-btn:hover{background:var(--panel-2);border-color:var(--border)}.toolbar>button.on,.menu-btn.open{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.toolbar>.btn.primary{margin-right:2px}select.lang{background:var(--panel-2);padding:0 6px}.about-btn{font-family:Georgia,serif;font-style:italic;font-weight:700}:root[data-theme=dark] .ic-dark,:root:not([data-theme=dark]) .ic-light{display:none}.menu{position:relative}.caret-down{color:var(--muted);margin-left:-2px;font-size:10px}.menu-badge{background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);border-radius:9px;padding:0 6px;font-weight:600;line-height:16px}.menu-pop{z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);min-width:300px;max-width:370px;max-height:calc(100vh - 60px);box-shadow:var(--shadow);padding:6px;position:fixed;overflow:auto}.menu-item{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;padding:7px 8px;display:flex}.menu-item:hover{background:var(--accent-soft)}.menu-item.active b{color:var(--accent)}.mi-icon{background:var(--panel-2);border:1px solid var(--border);width:26px;height:26px;font-size:var(--fs-xs);color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.mi-check{font-size:15px}.mi-text{flex-direction:column;flex:1;min-width:0;display:flex}.mi-text b{font-weight:600}.mi-text small{color:var(--muted);font-size:11.5px;line-height:1.3}.menu-item.small-item{padding:4px 8px}.menu-item.small-item .mi-icon{width:20px;height:20px;font-size:10px}.menu-sep{background:var(--border);height:1px;margin:5px 4px}.menu-head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:4px 8px 2px}.menu-empty{font-size:var(--fs-sm);color:var(--muted);padding:4px 10px}.menu-sub{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px;padding:2px 10px 6px 44px;display:flex}.menu-sub label{align-items:center;gap:6px;display:flex}.menu-sub input[type=number]{width:70px}.storey-pop{min-width:320px;padding:0}.sto-head{border-bottom:1px solid var(--border);background:var(--panel);z-index:1;align-items:center;gap:4px;padding:8px;display:flex;position:sticky;top:0}.sto-head .spacer{flex:1}.sto-head .btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.sto-cut{font-size:var(--fs-xs);color:var(--muted);cursor:pointer;align-items:center;gap:4px;margin-left:6px;display:inline-flex}.sto-list{max-height:52vh;padding:4px 6px;overflow:auto}.sto-group+.sto-group{border-top:1px solid var(--border);margin-top:6px;padding-top:4px}.sto-model{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;align-items:baseline;gap:6px;padding:4px 6px 2px;font-weight:600;display:flex}.sto-model span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sto-model small{font-weight:400}.sto-row{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;display:flex}.sto-row:hover{background:var(--accent-soft)}.sto-dot{border:1.5px solid var(--border);border-radius:50%;flex:none;width:7px;height:7px}.sto-row.active{background:var(--accent-soft)}.sto-row.active .sto-dot{background:var(--accent);border-color:var(--accent)}.sto-row.active .sto-name{color:var(--accent);font-weight:600}.sto-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sto-elev{font:var(--fs-xs) var(--mono);color:var(--muted);flex:none}.sto-foot{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--border);padding:6px 12px 8px}.menu-badge.wide{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.mi-tick{color:var(--accent);font-weight:700}.cs-swatch{background-image:linear-gradient(135deg, var(--a) 0 33%, var(--b) 33% 66%, var(--c) 66%)}.cs-original{--a:#c0392b;--b:#e0b33a;--c:#4e79a7}.cs-muted{--a:#a8726a;--b:#c4b48a;--c:#7f8fa0}.cs-cvd{--a:#0072b2;--b:#e69f00;--c:#009e73}.cs-light{--a:#ece6e2;--b:#eeebe0;--c:#e3e6ea}.cs-vivid{--a:#e0201a;--b:#ffc400;--c:#1f6fd6}.ctx-menu{z-index:2000;background:var(--panel);min-width:230px;max-width:340px;max-height:calc(100vh - 12px);color:var(--text);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:4px;position:fixed;overflow:auto}.ctx-head{flex-direction:column;padding:5px 8px 3px;display:flex}.ctx-head b{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.ctx-head small{color:var(--muted);font-size:var(--fs-xs)}.ctx-item{width:100%;color:var(--text);border-radius:var(--r-sm);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.ctx-item:hover,.ctx-item:focus-visible{background:var(--accent-soft);outline:none}.ctx-icon{text-align:center;width:16px;color:var(--muted);flex:none}.ctx-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ctx-item kbd{background:0 0;border:0;padding:0}.ctx-sep{background:var(--border);height:1px;margin:4px 2px}.layout{flex:1;min-height:0;display:flex;position:relative}.center{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex}.panel.left{border-right:1px solid var(--border);width:340px}.panel.right{border-left:1px solid var(--border);width:360px}body.hide-left #left-panel,body.hide-right #right-panel{display:none}body.editing #right-panel{box-shadow:inset 3px 0 0 var(--accent)}.panel-title{align-items:center;gap:4px;padding:8px 12px 6px 4px;font-weight:600;display:flex}.panel-title .grow{flex:1}.panel-collapse{color:var(--muted);background:0 0;border:0;padding:0 8px;font-size:16px;line-height:1}.panel-collapse:hover{color:var(--accent)}.panel-reopen{border:0;border-right:1px solid var(--border);background:var(--panel);color:var(--muted);flex-direction:column;align-items:center;gap:8px;width:22px;padding:10px 0;font-size:15px;display:flex}.panel-reopen.right{border-right:0;border-left:1px solid var(--border)}.panel-reopen:hover{color:var(--accent);background:var(--panel-2)}.panel-reopen .vtext{writing-mode:vertical-rl;font-size:var(--fs-sm)}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.tab{min-width:0;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:1 0 auto;padding:9px 5px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tabs .panel-collapse{background:var(--panel);flex:none;order:9;position:sticky;right:0}.tab-body{flex:1;padding:8px;display:none;overflow:auto}.tab-body.active{display:block}.empty-hint{color:var(--muted);text-align:center;padding:18px 10px}.panel-actions{flex-wrap:wrap;gap:6px;padding:4px 0 8px;display:flex}.panel-actions .btn{flex:1}.hint-btn{margin:0 4px 8px}.card,.flt-section,.bcf-card,.view-card,.proj-card,.project-bar,.sel-bar{border:1px solid var(--border);border-radius:var(--r);background:var(--panel-2)}.card{margin-bottom:8px;padding:8px 10px}.card-head{align-items:flex-start;gap:8px;display:flex}.card-head>input,.card-head>.swatch-dot{margin-top:3px}.card-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600;line-height:1.3}.card-meta{color:var(--muted);font-size:var(--fs-sm);margin:3px 0 6px}.card-row{align-items:center;gap:8px;margin:4px 0;display:flex}.card-row label{color:var(--muted);flex-shrink:0;width:82px}.card-row input[type=range]{flex:1}.card-btns{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.swatch-dot{border:1px solid #0003;border-radius:3px;flex-shrink:0;width:12px;height:12px}label.swatch-dot{cursor:pointer;width:14px;height:14px;position:relative}label.swatch-dot:hover{box-shadow:0 0 0 2px var(--accent-soft), 0 0 0 3px var(--accent)}label.swatch-dot input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.changes{font-size:var(--fs-sm);margin:2px 0 6px}.changes summary{cursor:pointer;list-style:none}.changes ol{max-height:140px;color:var(--muted);margin:4px 0 0;padding-left:18px;overflow:auto}.badge-mod{color:#8a5300;font-size:var(--fs-xs);background:#fff1d6;border:1px solid #f3c56b;border-radius:10px;padding:0 8px;font-weight:600;display:inline-block}:root[data-theme=dark] .badge-mod{color:#f7c66b;background:#3b2c10;border-color:#6b4c14}.project-bar{align-items:center;gap:6px;margin-bottom:8px;padding:6px 8px;display:flex}.project-bar .proj-ico{color:var(--accent)}.project-bar .proj-text{flex-direction:column;flex:1;min-width:0;display:flex}.project-bar b{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.project-bar small{font-size:var(--fs-xs)}.tree ul{margin:0;padding-left:14px;list-style:none}.tree>ul{padding-left:0}.node{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;display:flex}.node:hover{background:var(--panel-2)}.node.selected{background:var(--accent-soft)}.node.model-root{font-weight:600}.node.dim{opacity:.45}.node .caret{text-align:center;width:14px;color:var(--muted);flex-shrink:0;font-size:10px}.node .eye,.legend-row .eye{opacity:.55;color:inherit;background:0 0;border:0;padding:0 2px;display:inline-flex}.node .eye:hover,.legend-row .eye:hover{opacity:1}.node .eye.off{opacity:.25}.node .cls{color:var(--muted);font-size:var(--fs-xs)}.node .lbl{text-overflow:ellipsis;overflow:hidden}.node .count{color:var(--muted);font-size:var(--fs-xs);margin-left:auto;padding-left:6px}.tree-more{font-size:var(--fs-sm);padding:4px 8px}.sel-bar{z-index:1;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px;padding:5px 6px;display:flex;position:sticky;top:-8px}.sel-bar .sel-count{color:var(--muted);flex:100%;font-size:11.5px}.sel-opacity{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:4px;display:inline-flex}.sel-opacity input{width:90px}.flt-section{flex-direction:column;gap:7px;margin-bottom:10px;padding:8px 10px;display:flex}.flt-section h3{font-size:var(--fs)}.flt-section select,.flt-section input[type=text]{width:100%}.flt-btns{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.flt-count{font-weight:600;font-size:var(--fs-sm)}.legend{flex-direction:column;display:flex}.legend-title{margin-top:2px}.legend-row{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:2px 3px;display:flex}.legend-row:hover{background:var(--panel)}.legend-row.dim{opacity:.45}.legend-row input[type=color]{flex-shrink:0;width:22px;height:18px}.legend-row .lbl{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.legend-row .count{color:var(--muted);font-size:var(--fs-xs)}.rules{flex-direction:column;gap:8px;display:flex}.rule{border-left:3px solid var(--accent);flex-direction:column;gap:4px;padding-left:6px;display:flex}.rule-row{align-items:center;gap:4px;display:flex}.rule-row .op-select{flex-shrink:0;width:auto;max-width:120px}.match-row{align-items:center;gap:6px;display:flex}.match-row select{width:auto}.color-action{align-items:center;gap:4px;display:inline-flex}.color-action input[type=color]{width:26px;height:22px}.bcf-top{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.bcf-top .field{margin:0}.bcf-top input[type=text],.bcf-new :is(input,textarea,select),.bcf-body :is(input:not([type=checkbox]),textarea,select){width:100%}.bcf-listhead{justify-content:space-between;align-items:center;margin:6px 0;display:flex}.bcf-card{margin-bottom:6px;overflow:hidden}.bcf-card.open{border-color:var(--accent)}.bcf-head{cursor:pointer;gap:8px;padding:6px;display:flex}.bcf-head:hover{background:var(--panel)}.bcf-thumb{object-fit:cover;background:var(--border);border-radius:4px;flex-shrink:0;width:64px;height:44px}.bcf-headtext{flex:1;min-width:0}.bcf-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.bcf-meta{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.bcf-status{color:#fff;border-radius:8px;padding:0 6px;font-weight:600}.bcf-status.open{background:#e8590c}.bcf-status.progress{background:#1c7ed6}.bcf-status.resolved{background:#2f9e44}.bcf-status.closed{background:#868e96}.bcf-body{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:6px 8px 8px;display:flex}.bcf-desc{white-space:pre-wrap}.bcf-comments{flex-direction:column;gap:4px;display:flex}.bcf-comment{background:var(--panel);white-space:pre-wrap;border-radius:6px;padding:4px 7px}.bcf-actions{border-top:1px solid var(--border);padding-top:6px}.bcf-body .flt-btns .chk{color:var(--text);flex:1}.views-add{gap:6px;display:flex}.views-add input{flex:1}.views-list{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.view-card{cursor:pointer;gap:8px;padding:6px;display:flex}.view-card:hover,.proj-card:hover{border-color:var(--accent)}.view-card img,.view-noimg{object-fit:cover;background:var(--panel);border-radius:4px;flex:none;width:96px;height:60px}.view-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.view-meta b{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.view-btns{flex-wrap:wrap;gap:4px;margin-top:auto;display:flex}.views-rename{border-color:var(--accent);width:100%}.recent-projects{text-align:left;width:min(560px,100%);margin-top:14px}.recent-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.proj-list{flex-direction:column;gap:6px;display:flex}.proj-card{background:var(--panel);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:6px;display:flex}.proj-card.current{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.proj-card img,.proj-noimg{object-fit:cover;background:var(--panel-2);border-radius:6px;flex:none;width:84px;height:52px}.proj-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.proj-meta b{font-size:var(--fs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.proj-meta small{font-size:11.5px}.proj-files{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.proj-btns{flex:none;gap:4px;display:flex}#props{flex:1;padding:0 8px 12px;overflow:auto}.prop-head{border-bottom:1px solid var(--border);margin-bottom:8px;padding:4px 4px 10px}.prop-head .cls{color:var(--accent);font-weight:600;font-size:var(--fs-sm)}.prop-head .name{word-break:break-word;margin:2px 0;font-size:16px;font-weight:600}.prop-head .guid{color:var(--muted);font-family:var(--mono);font-size:var(--fs-xs);align-items:center;gap:6px;display:flex}.prop-head .guid button{color:var(--accent);font-size:var(--fs-xs);background:0 0;border:0;padding:0}details.sec{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;overflow:hidden}details.sec>summary{cursor:pointer;background:var(--panel-2);align-items:center;gap:6px;padding:6px 9px;font-weight:600;list-style:none;display:flex}details.sec>summary:before{content:"▸";color:var(--muted);font-size:10px;transition:transform .1s}details.sec[open]>summary:before{transform:rotate(90deg)}details.sec>summary .badge{color:var(--muted);font-weight:400;font-size:var(--fs-xs);margin-left:auto}details.sec.qto>summary{color:var(--ok)}details.sec.calc>summary{color:var(--warn)}.sec-note{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--border);padding:5px 9px}table.props{border-collapse:collapse;table-layout:fixed;width:100%}table.props td{border-top:1px solid var(--border);vertical-align:top;word-break:break-word;padding:4px 9px}table.props td:first-child{color:var(--muted);width:44%}table.props td a{cursor:pointer;text-decoration:none}table.props mark{color:#1c222d;background:#ffe58a;border-radius:2px}table.props input,table.props select,.batch input,.batch select{width:100%}.multi-list{margin:6px 0;padding:0;list-style:none}.multi-list li{border-bottom:1px solid var(--border);justify-content:space-between;padding:3px 4px;display:flex}.edit-cell{align-items:center;gap:4px;display:flex}.edit-cell select.kind{flex-shrink:0;width:auto}tr.add-row td{background:var(--panel-2)}.warn{font-size:var(--fs-xs);color:#7a5400;border-top:1px solid var(--border);background:#fff7e0;padding:5px 9px}:root[data-theme=dark] .warn{color:#f2cf7d;background:#2f2610}.batch{border:1px solid var(--accent);border-radius:var(--r);background:var(--accent-soft);margin-bottom:10px;padding:8px 10px}.batch-title{font-weight:600}.batch-grid{grid-template-columns:auto 1fr;align-items:center;gap:5px 8px;display:grid}.batch-grid label{color:var(--muted);font-size:var(--fs-sm)}.batch-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}details.batch>summary{cursor:pointer;font-weight:600;list-style:none}details.batch>summary:before{content:"＋ ";color:var(--accent)}details.batch[open]>summary{margin-bottom:6px}.viewport{background:var(--viewport);flex:1;min-width:0;min-height:0;position:relative}.viewport canvas{outline:none;width:100%;height:100%;display:block}.viewport.picking canvas,.viewport.measuring canvas,#viewport.walking canvas,body.line-drawing #viewport canvas{cursor:crosshair}.statusbar{height:24px;font-size:var(--fs-sm);color:var(--muted);background:color-mix(in srgb, var(--panel) 85%, transparent);border-top:1px solid var(--border);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;padding:3px 12px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.map-attribution{background:color-mix(in srgb, var(--panel) 80%, transparent);color:var(--muted);z-index:2;pointer-events:none;border-radius:4px;padding:2px 6px;font-size:10.5px;position:absolute;bottom:28px;right:8px}.welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;display:flex;position:absolute;inset:0;overflow:auto}.drop-zone{cursor:pointer;border:2px dashed var(--border-strong);background:color-mix(in srgb, var(--panel) 75%, transparent);border-radius:16px;flex-direction:column;align-items:center;gap:6px;width:min(560px,100%);padding:34px 24px 26px;transition:border-color .15s,background .15s;display:flex}.drop-zone:hover,body.dragging .drop-zone{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.drop-zone .drop-icon{width:68px;height:68px}.drop-zone .drop-icon .mark-line{stroke-width:3.4px}.welcome h1{font-family:var(--display);letter-spacing:-.02em;margin-top:4px;font-size:24px;font-weight:500}.drop-zone p{margin:2px 0}.welcome-text{max-width:560px;margin:14px 0 0}.drop-overlay{z-index:1000;pointer-events:none;background:color-mix(in srgb, var(--accent) 14%, #00000040);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.drop-overlay>div{text-align:center;border:3px dashed var(--accent);background:var(--panel);box-shadow:var(--shadow);color:var(--text);border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:36px 56px;display:flex}.drop-overlay svg{width:48px;height:48px;stroke:var(--accent)}.drop-overlay b{font-size:20px}.drop-overlay small{color:var(--muted)}body.dragging .drop-overlay{display:flex}.float{z-index:3;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:8px 10px;position:absolute}.float-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.float-head b{font-size:var(--fs)}.mode-hint,.tool-hint{z-index:6;text-align:center;background:var(--accent);max-width:80%;color:var(--on-accent);box-shadow:var(--shadow);border:0;border-radius:16px;padding:6px 14px;font-size:12.5px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.planes-panel{width:340px;max-height:55%;bottom:36px;left:12px;overflow:auto}body.py-open .planes-panel{max-height:calc(100% - 60px)}.planes-opts{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:6px;display:flex}.planes-step{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:5px;display:inline-flex}.planes-step input{width:62px}.plane-row{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding:7px 0 5px;display:flex}.pl-head,.pl-pos{align-items:center;gap:5px;display:flex}.pl-name{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pl-pick{align-items:center;gap:6px;display:flex;overflow:visible}.pl-pick select{flex:1;min-width:0}.pl-pos input[type=range]{flex:1}.pl-pos .val{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:4px;display:inline-flex}.pl-pos .val input{font-variant-numeric:tabular-nums;width:78px}.plane-row.station .val input{width:96px}.plane-row .btn.xs{min-width:24px}.m-label.section-mark{background:var(--axis);color:#fff;text-align:center;border-radius:4px;min-width:18px;padding:1px 5px;font-size:13px;font-weight:700}.measure-layer{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.snap-marker{border:2px solid var(--sel);background:#ff9f1a33;width:14px;height:14px;position:absolute;top:-7px;left:-7px}.snap-marker[data-kind=vertex]{border-radius:2px}.snap-marker[data-kind=mid]{clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--sel)}.snap-marker[data-kind=edge]{width:12px;height:12px;top:-6px;left:-6px;rotate:45deg}.snap-marker[data-kind=face]{border-radius:50%;width:10px;height:10px;top:-5px;left:-5px}.m-dot{border:2px solid var(--m-color,#2f7de1);background:#fff;border-radius:50%;width:8px;height:8px;position:absolute;top:0;left:0}.m-dot.distance,.m-label.distance,.m-item.distance{--m-color:#2f7de1}.m-dot.chain,.m-label.chain,.m-item.chain{--m-color:#8e44ad}.m-dot.spot,.m-label.spot,.m-item.spot{--m-color:#1fa971}.m-label{white-space:nowrap;background:var(--m-color,#2f7de1);color:#fff;border-radius:10px;padding:4px 7px;font:600 12px/1 system-ui,sans-serif;position:absolute;top:0;left:0;box-shadow:0 1px 4px #00000040}.m-label.preview{--m-color:var(--sel)}.m-label.total{font-size:13px}.m-label.spot{white-space:pre;text-align:left;line-height:1.35}.m-label.align{--m-color:#e8590c;padding:2px 6px;font-size:11px}.m-label.align.name{font-size:12px}.measure-panel{flex-direction:column;width:300px;max-height:calc(100% - 60px);display:flex;top:12px;right:12px;overflow:hidden}.measure-panel>:not(#measure-list){flex:none}#measure-list{flex:auto;min-height:0;overflow:auto}.measure-opts{justify-content:space-between;align-items:center;gap:6px;margin:6px 0 4px;display:flex}.spot-opts{justify-content:flex-start;gap:10px}.measure-hint{margin-bottom:6px}.measure-foot{border-top:1px solid var(--border);justify-content:space-between;padding:5px 0;display:flex}.m-item{border-top:1px solid var(--border);padding:6px 0}.m-item-head{align-items:center;gap:6px;display:flex}.m-swatch{background:var(--m-color);border-radius:50%;flex-shrink:0;width:10px;height:10px}.m-title{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.m-title:hover{color:var(--accent)}.m-value{font-variant-numeric:tabular-nums}.m-lines{border-collapse:collapse;width:100%;font-size:var(--fs-sm);margin-top:3px}.m-lines td{vertical-align:top;padding:1px 0 1px 16px}.m-lines td:first-child{color:var(--muted)}.m-lines td:last-child{text-align:right;font-variant-numeric:tabular-nums;word-break:break-word;padding-left:8px}.drive-panel{z-index:6;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px 10px;font-size:12.5px;display:flex;top:12px;left:50%;transform:translate(-50%)}.drive-panel label{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.drive-panel #drive-station{font-variant-numeric:tabular-nums;width:96px}.drive-panel #drive-eye{width:56px}.drive-panel #drive-path{max-width:180px}.secview{z-index:7;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);width:min(540px,100% - 376px);min-width:320px;height:min(380px,55%);min-height:220px;box-shadow:var(--shadow);resize:both;outline:none;flex-direction:column;display:flex;position:absolute;bottom:36px;right:12px;overflow:hidden}.secview:focus-within,.secview:focus{border-color:var(--accent)}.sv-head{border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;--ctl:24px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.sv-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:120px;font-size:12.5px;overflow:hidden}.sv-ctrl{cursor:default;flex-wrap:wrap;align-items:center;gap:4px;display:flex}.sv-ctrl input{font-size:var(--fs-sm);padding-inline:6px}.sv-station{font-variant-numeric:tabular-nums;width:96px}.sv-step{width:56px}.sv-steplbl{color:var(--muted);align-items:center;gap:3px;font-size:11.5px;display:flex}.sv-body{cursor:grab;touch-action:none;background:#fff;flex:1;min-height:0}.sv-body:active{cursor:grabbing}.sv-svg{stroke:none;stroke-width:1px;fill:none;stroke-linecap:butt;width:100%;height:100%;display:block}.sv-svg text{stroke:none}.sv-body{position:relative}.sv-key{pointer-events:none;background:#ffffffeb;border:1px solid #c9d6d5;border-radius:6px;width:180px;height:130px;position:absolute;bottom:8px;right:8px;box-shadow:0 1px 4px #0c2a3026}.sv-key .kp-box{fill:#dfe9e8;stroke:#9db3b2;stroke-width:1px}.sv-key .kp-line{fill:none;stroke:#f08a24;stroke-width:1.6px}.sv-key .kp-cut{fill:none;stroke:#c8372d;stroke-width:2.2px;stroke-dasharray:8 3 2 3}.sv-key .kp-arrow{fill:#c8372d;stroke:none}.sv-key .kp-letter{fill:#c8372d;stroke:none;font-weight:700;font-family:var(--font)}.sv-key .kp-note{fill:#0c2a30;stroke:none;font-family:var(--font)}.sv-grid line{stroke:#e3e6e8;stroke-width:1px}.sv-grid text{fill:#8a9196;font-family:system-ui,sans-serif}.sv-foot{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;padding:3px 8px;display:flex}body.sv-popup{background:var(--bg);height:100vh;margin:0}.secview.popped{resize:none;width:100vw;max-width:none;height:100vh;box-shadow:none;border:0;border-radius:0;position:static}.cmp-panel{flex-direction:column;gap:6px;width:340px;max-height:calc(100% - 60px);display:flex;top:12px;left:12px;overflow:auto}.cmp-head{align-items:center;display:flex}.cmp-summary{font-size:var(--fs-sm);font-weight:600}.cmp-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.cmp-group{border-top:1px solid var(--border)}.cmp-group-head{text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:6px 2px;display:flex}.cmp-group-head span:nth-child(2){flex:1}.cmp-group-head .caret{color:var(--muted);font-size:10px}.cmp-row{border-radius:var(--r-sm);cursor:pointer;border-left:3px solid #0000;padding:4px 6px}.cmp-row:hover{background:var(--panel-2)}.cmp-row.added{border-left-color:var(--ok)}.cmp-row.removed{border-left-color:var(--bad)}.cmp-row.changed{border-left-color:#f59f00}.cmp-row-head{align-items:baseline;gap:6px;display:flex}.cmp-row-head .lbl{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cmp-row-head .cls{color:var(--muted);font-size:var(--fs-xs);flex-shrink:0;margin-left:auto}.cmp-diffs{width:100%;font-size:var(--fs-xs);border-collapse:collapse;margin-top:2px}.cmp-diffs td{vertical-align:top;word-break:break-word;padding:1px 0}.cmp-diffs td:first-child{color:var(--muted);width:45%;padding-right:6px}.cmp-foot{border-top:1px solid var(--border);justify-content:space-between;padding-top:6px;display:flex}.ids-model{font-size:var(--fs-sm);border-radius:6px;justify-content:space-between;gap:8px;padding:6px 8px;display:flex}.ids-model.ok,.map-detected.ok{color:#136c43;background:#e3f6ec}.ids-model.bad{color:#a61e1e;background:#fdecec}:root[data-theme=dark] :is(.ids-model.ok,.map-detected.ok){color:#6ee0a6;background:#12301f}:root[data-theme=dark] .ids-model.bad{color:#ff9b9b;background:#3a1414}.ids-icon{width:18px;height:18px;font-size:var(--fs-xs);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ids-icon.ok{background:var(--ok)}.ids-icon.bad{background:var(--bad)}.ids-ex-row{align-items:center;gap:6px;display:flex}.ids-ex-row select{flex:1;min-width:0}.ids-ex-row a.btn{text-decoration:none}.ids-examples small{line-height:1.35}:root{--ok:#2fb344;--bad:#e03131}:root[data-cvd]{--ok:#0072b2;--bad:#d55e00}.ids-icon.na{background:#adb5bd}.ids-spec-head{flex-wrap:wrap}.ids-spec-name{flex:1;min-width:120px}.ids-reqs{font-size:var(--fs-sm);margin:4px 0;padding-left:4px;list-style:none}.ids-reqs li.ok{color:var(--ok)}.ids-reqs li.bad{color:var(--danger)}.loading{z-index:20;background:#0a0f1959;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-box{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow);width:min(380px,90vw);padding:18px 22px}.bar{background:var(--panel-2);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.bar>div{background:var(--accent);width:0;height:100%;transition:width .2s}.toast{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--danger);border-radius:var(--r);box-shadow:var(--shadow);z-index:3000;max-width:380px;padding:10px 14px;position:fixed;bottom:16px;right:16px}.toast.ok{border-left-color:var(--ok)}dialog{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--text);box-shadow:var(--shadow);width:min(460px,100vw - 32px);max-width:none;padding:18px 20px}dialog.wide{width:min(640px,100vw - 32px)}dialog::backdrop{background:#0a0f1966}dialog h2{font-family:var(--display);letter-spacing:-.015em;margin-bottom:10px;font-size:19px;font-weight:600}dialog p{margin:8px 0}dialog td{vertical-align:top;padding:3px 12px 3px 0}dialog td:first-child{color:var(--muted)}dialog>.chk,.merge-models .chk{color:var(--text);font-size:var(--fs);margin:5px 0;display:flex}dialog fieldset{border:1px solid var(--border);border-radius:var(--r);margin:8px 0;padding:6px 10px}dialog fieldset>.chk{color:var(--text);font-size:var(--fs);margin:3px 0;display:flex}.dialog-btns{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.dialog-btns form{display:contents}.merge-models{flex-direction:column;gap:4px;max-height:220px;margin:8px 0 12px;display:flex;overflow:auto}.field input[type=file]{font-size:var(--fs-sm)}.about-version{border:1px solid var(--border);border-radius:var(--r);background:var(--panel-2);font-size:var(--fs-sm);flex-direction:column;gap:4px;margin:12px 0 8px;padding:8px 10px;display:flex}.about-update{color:var(--warn);margin-top:4px;font-weight:600}.about-sign{flex-direction:column;gap:2px;margin-top:12px;display:flex}.about-sign b{font-size:14px}#help-dialog table{border-collapse:collapse;width:100%}#help-dialog td{border-bottom:1px solid var(--border);padding:4px 12px 4px 0}#projects-dialog .proj-list{max-height:52vh;margin-bottom:8px;overflow:auto}#profile-dialog{width:min(960px,100vw - 32px)}.prof-row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.prof-row .field{flex:1;min-width:220px;margin-bottom:0}.prof-grid{align-items:end}.prof-fill{align-self:center}.prof-preview{border:1px solid var(--border);border-radius:var(--r);background:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:120px;max-height:46vh;margin:10px 0;display:flex;overflow:auto}.prof-preview img{width:100%;height:auto;display:block}.map-detected{color:#7a5400;background:#fff6e0;border-radius:6px;margin-bottom:8px;padding:8px 10px;font-size:12.5px}:root[data-theme=dark] .map-detected{color:#f2cf7d;background:#2f2610}.map-manual.disabled{opacity:.5}dialog.qto-dialog{width:min(1000px,100vw - 32px)}.qto-controls{--ctl:28px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-bottom:8px;display:grid}.qto-controls select{width:100%}.qto-wrap{border:1px solid var(--border);border-radius:6px;max-height:55vh;overflow:auto}.qto-table{border-collapse:collapse;width:100%;font-size:12.5px}.qto-table th,.qto-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:4px 8px}dialog .qto-table td:first-child{color:var(--text)}.qto-table th{background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}.qto-table .num{text-align:right;font-variant-numeric:tabular-nums}.qto-table tbody tr{cursor:pointer}.qto-table tbody tr:hover{background:var(--accent-soft)}.qto-table tfoot td{background:var(--panel-2);border-top:2px solid var(--border);font-weight:600;position:sticky;bottom:0}.py-panel{background:var(--panel);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;height:320px;display:flex;position:relative}.py-resize{cursor:ns-resize;z-index:2;height:8px;position:absolute;top:-4px;left:0;right:0}.py-bar{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:5px 8px;display:flex;overflow:hidden}.py-bar>*{flex-shrink:0}#py-examples{flex-shrink:1;min-width:90px;max-width:260px}.py-status{font-size:var(--fs-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.py-status.busy:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1s infinite pulse;display:inline-block}.py-status.ok{color:var(--ok)}.py-status.err{color:var(--danger)}@keyframes pulse{50%{opacity:.25}}.py-body{flex:1;grid-template-columns:1.4fr 1fr;min-height:0;display:grid}.py-editor{border-right:1px solid var(--border);min-height:0;overflow:hidden}.py-editor .cm-editor{background:var(--panel);height:100%;color:var(--text);font-size:13px}.py-editor .cm-gutters{background:var(--panel-2);border-right:1px solid var(--border);color:var(--muted)}.py-editor .cm-activeLine,.py-editor .cm-activeLineGutter{background:color-mix(in srgb, var(--accent) 8%, transparent)}.py-editor .cm-cursor{border-left-color:var(--text)}.py-editor .cm-selectionBackground,.py-editor .cm-focused .cm-selectionBackground{background:color-mix(in srgb, var(--accent) 25%, transparent)!important}.py-console{font:12px/1.45 var(--mono);background:var(--panel-2);white-space:pre-wrap;word-break:break-word;margin:0;padding:8px 10px;overflow:auto}.py-console .err{color:var(--danger)}.py-console .info{color:var(--accent)}.py-console .ok{color:var(--ok)}:root[data-theme=dark] .py-editor .ͼb{color:#c792ea}:root[data-theme=dark] .py-editor .ͼd{color:#f78c6c}:root[data-theme=dark] .py-editor .ͼe{color:#c3e88d}:root[data-theme=dark] .py-editor .ͼm{color:#7f8c98}:root[data-theme=dark] .py-editor .ͼg,:root[data-theme=dark] .py-editor .ͼj{color:#82aaff}:root[data-theme=dark] .py-editor .ͼl{color:#89ddff}@media (max-width:1250px){.brand{gap:0;margin-right:4px;font-size:0}.toolbar{gap:2px}}@media (max-width:900px){.panel.left,.panel.right{z-index:9;width:min(340px,88vw);box-shadow:var(--shadow);position:absolute;top:0;bottom:0}.panel.left{left:0}.panel.right{right:0}.toolbar>button>span,.menu-btn>span:not(.menu-badge),.toolbar>.btn.primary>span{display:none}select.lang{max-width:84px}.planes-panel,.measure-panel,.cmp-panel{width:calc(100% - 24px);max-height:45%}.secview{width:calc(100% - 24px);min-width:0;bottom:36px}.py-body{grid-template-rows:1fr 90px;grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}}@media (max-width:600px){.grid3{grid-template-columns:1fr}}fieldset.annot .annot-row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}fieldset.annot .annot-row .field{margin-bottom:0}fieldset.annot .annot-row .chk{color:var(--text);margin-bottom:6px}.ann-classes{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel-2);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 10px;max-height:150px;padding:4px 8px;display:grid;overflow:auto}.ann-classes .chk{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ann-classes .chk small{color:var(--muted)}#drw-annot.off .annot-body{display:none}.sv-points circle{fill:#0b6f69}.sv-points text{fill:#0b6f69;font-family:system-ui,sans-serif}.float-head b,.panel-title,.prop-head .name,.card-name,.project-bar b,.ctx-head b,.sv-title{font-family:var(--display);letter-spacing:-.01em}.prop-head .name{font-weight:600}.m-label,.m-value,.m-lines td:last-child,.station-input,.pl-pos .val input,.sv-station,.sv-foot,#drive-station,.qto-table .num{font-family:var(--mono);font-size:.95em}.m-label{font-weight:500}.m-label.align{--m-color:var(--trace)}.mgroup{border-radius:var(--r);margin-bottom:10px}.mgroup.drop{outline:2px dashed var(--accent);outline-offset:2px;background:var(--accent-soft)}.mg-head{align-items:center;gap:6px;padding:4px 4px 6px;display:flex}.mg-name{min-width:0;font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;cursor:text;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.mgroup.loose .mg-name{font-family:var(--font);font-weight:500;font-size:var(--fs-sm);cursor:default}.mg-count{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px}.mg-body{border-left:2px solid var(--border);margin-left:9px;padding-left:14px}.mgroup.off .mg-body{opacity:.5}.mgroup.loose .mg-body{border-left:0;margin-left:0;padding-left:0}.mg-empty{font-size:var(--fs-sm);color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--r-sm);text-align:center;padding:8px}.mg-caret{color:var(--muted);background:0 0;border:0;flex:none;width:16px;padding:0;font-size:11px}.mg-caret:hover{color:var(--accent)}.model-card{cursor:grab;margin-bottom:6px;padding:6px 8px}.model-card.dragging{opacity:.5}.model-card.off .card-title{opacity:.55}.model-card .card-head{align-items:center;gap:6px}.model-card .card-head>input,.model-card .card-head>.swatch-dot{margin-top:0}.card-title{cursor:text;flex-direction:column;flex:1;min-width:0;display:flex}.card-title .card-name{font-family:var(--display);letter-spacing:-.01em;font-weight:600}.card-file{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere;line-height:1.35}.card-body{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.card-body .card-row select{flex:1}.inline-edit{width:100%;height:24px;font:inherit;font-weight:600}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(./inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(./inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(./inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(./inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(./space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(./space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(./space-grotesk-latin-ext-500-normal-3dgZTiw9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(./space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(./space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2)format("woff2"),url(./space-grotesk-latin-ext-600-normal-VcznFIpX.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff")}
