:root{--bg: #f4f5f7;--panel: #ffffff;--text: #1d2330;--muted: #6b7280;--line: #e2e5ea;--accent: #2563eb;--warn-bg: #fff6e0;--warn-text: #8a5a00;--view: #dfe3e8;color-scheme:light dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #15181e;--panel: #1c2029;--text: #e6e8ec;--muted: #9aa3b2;--line: #2c3240;--accent: #6ea0ff;--warn-bg: #3a2f14;--warn-text: #f3cf7a;--view: #252a33}}:root[data-theme=dark]{--bg: #15181e;--panel: #1c2029;--text: #e6e8ec;--muted: #9aa3b2;--line: #2c3240;--accent: #6ea0ff;--warn-bg: #3a2f14;--warn-text: #f3cf7a;--view: #252a33;color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}body{display:grid;grid-template-columns:300px 1fr 330px;background:var(--bg);color:var(--text);font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}aside{background:var(--panel);overflow:auto;padding:12px}#left{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}#right{border-left:1px solid var(--line)}h1{font-size:15px;margin:0 0 4px}h2{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px}input,select,button{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px}button{cursor:pointer}button:hover{border-color:var(--accent)}.muted{color:var(--muted)}#results{list-style:none;margin:0;padding:0;overflow:auto;flex:1}#results li{padding:6px 8px;border-radius:6px;cursor:pointer}#results li:hover{background:var(--bg)}#results li.active{background:color-mix(in srgb,var(--accent) 15%,transparent)}#results li small{display:block;color:var(--muted)}#view{position:relative;background:var(--view);overflow:hidden}#view canvas{display:block}#status{position:absolute;left:12px;top:10px;z-index:2;background:var(--panel);padding:4px 10px;border-radius:6px}#toolbar{position:absolute;right:12px;top:10px;z-index:2;display:flex;gap:10px;align-items:center;background:var(--panel);padding:4px 10px;border-radius:6px}#toolbar label{display:flex;gap:4px;align-items:center}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}.warn{background:var(--warn-bg);color:var(--warn-text);border-radius:6px;padding:6px 8px;margin:6px 0}.row{display:grid;grid-template-columns:1fr 120px;gap:6px;align-items:center;margin:4px 0}.row label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row input[type=number],.row input[type=text],.row select{width:100%}.joint{margin:6px 0}.joint .head{display:flex;justify-content:space-between}.joint input[type=range]{width:100%}.joint .reset{padding:0 5px;margin-left:6px;line-height:1.3}.reset-all{width:100%;margin-bottom:4px}.joint.selected{background:color-mix(in srgb,#f59e0b 16%,transparent);border-radius:6px;margin:6px -6px;padding:2px 6px}.joint-label{font:600 12px system-ui,sans-serif;color:#1c1300;background:#f59e0b;padding:2px 6px;border-radius:4px;pointer-events:none;white-space:nowrap}.index-label{font:600 12px system-ui,sans-serif;color:#04261a;background:#10b981;padding:2px 6px;border-radius:4px;pointer-events:none;white-space:nowrap}details.geo p{margin:6px 0;line-height:1.4}details.geo ul{margin:4px 0;padding-left:18px}#hint{position:absolute;left:12px;bottom:10px;z-index:2;background:var(--panel);padding:3px 10px;border-radius:6px;font-size:12px;pointer-events:none}.frame-label{font:11px system-ui,sans-serif;color:#fff;background:#141e32b3;padding:1px 4px;border-radius:3px;pointer-events:none}details summary{cursor:pointer;color:var(--muted)}#left>label{display:flex;gap:6px;align-items:center}ul.comps{list-style:none;margin:0;padding:0}ul.comps li{padding:4px 8px;border-radius:6px;cursor:pointer}ul.comps li:hover{background:var(--bg)}ul.comps li.active{background:color-mix(in srgb,#f59e0b 22%,transparent)}ul.comps li small{display:block;color:var(--muted)}ul.comps li .see{float:right;border:0;background:none;padding:0 4px;color:var(--muted);opacity:0;cursor:pointer;font-size:14px}ul.comps li:hover .see,ul.comps li.see-on .see{opacity:1}ul.comps li.see-on .see{color:#2563eb}ul.comps li.see-on{font-style:italic}.check .check-ok{float:right;margin-left:6px;padding:0 6px;font-size:11px;border-radius:4px;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;opacity:.8}.check .check-ok:hover{opacity:1}body:not(.editing) .check .check-ok{display:none}.ctx-menu{position:fixed;z-index:50;min-width:210px;padding:4px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #00000040}.ctx-menu button{display:flex;width:100%;justify-content:space-between;gap:16px;padding:5px 10px;border:0;border-radius:5px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.ctx-menu button:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.ctx-menu kbd{color:var(--muted);font:inherit;font-size:12px}.ctx-menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.check{cursor:default}.check[title]{cursor:pointer}.err{background:color-mix(in srgb,#dc2626 15%,transparent);color:light-dark(#991b1b,#fca5a5);border-radius:6px;padding:6px 8px;margin:6px 0}.ok{color:light-dark(#047857,#6ee7b7)}.comp-label{font:600 11px system-ui,sans-serif;color:#fff;background:#141e32c7;border-left:3px solid #475569;padding:1px 5px;border-radius:3px;pointer-events:auto;cursor:pointer;white-space:nowrap}.comp-label:hover{filter:brightness(1.35)}.model-text{font:600 13px system-ui,sans-serif;color:var(--text);pointer-events:none;white-space:nowrap}#right .kv dd{overflow-wrap:anywhere}#right{overflow-x:hidden}ul.comps{overflow:auto;position:relative}.robot-panel{margin-top:12px;border-top:1px solid var(--line);padding-top:6px}.robot-panel h3{font-size:12px;margin:8px 0 4px}.robot-panel .seg{display:flex;gap:4px}.robot-panel .seg button{flex:1}.robot-panel .seg button.on{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent)}.robot-panel .target{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}.robot-panel .good{color:light-dark(#047857,#6ee7b7)}.robot-panel .bad{color:light-dark(#b91c1c,#fca5a5)}#tcpNote{min-height:1.2em;margin-top:4px}#simBox{border-top:1px solid var(--line);padding-top:4px}#simBox h2{margin-top:8px}.sim-bar{display:flex;gap:12px;align-items:center;margin:6px 0;flex-wrap:wrap}.sim-bar label{display:flex;gap:4px;align-items:center}.sim-float{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:2;display:flex;gap:6px;align-items:center;background:var(--panel);padding:4px 6px;border-radius:8px;box-shadow:0 2px 8px #00000040}.sim-float>button{width:34px;height:30px;padding:0;font-size:15px;line-height:1}.sim-float #simPlay:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.sim-float .sim-more{display:none}.sim-float.active{flex-wrap:wrap;width:340px;row-gap:2px}.sim-float.active .sim-more{display:contents}.sim-float #simClock{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:12px}.sim-float .sim-track{order:10;flex-basis:100%;padding:0 2px}#editbar[hidden]{display:none}.view-top{position:absolute;left:12px;right:12px;top:10px;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr);gap:10px;align-items:start;pointer-events:none}.view-top>*{pointer-events:auto}.view-top>#status{position:static;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-top>.sim-float{position:static;transform:none}.view-top>#toolbar{position:static;justify-self:end}#view>.sim-hit{position:absolute;left:50%;top:82px;transform:translate(-50%);z-index:2;margin:0;width:max-content;max-width:min(560px,calc(100% - 24px));text-align:center;background:color-mix(in srgb,#dc2626 30%,var(--panel))}#simTime{width:100%}#simStats .kv{margin:6px 0}#editbar{position:absolute;right:12px;top:52px;z-index:2;display:flex;gap:8px;align-items:center;background:var(--panel);padding:4px 10px;border-radius:6px}#editbar label{display:flex;gap:4px;align-items:center}#editbar button.primary:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:default}#banner{position:absolute;left:50%;transform:translate(-50%);bottom:44px;z-index:3;background:var(--warn-bg);color:var(--warn-text);padding:8px 12px;border-radius:6px;display:flex;gap:8px;align-items:center}#banner[hidden]{display:none}#status.bad{background:color-mix(in srgb,#dc2626 25%,var(--panel))}#editPanel{border-bottom:1px solid var(--line);padding-bottom:8px}#editPanel .edit-id{display:flex;flex-direction:column;gap:2px}#editPanel .edit-id input{font-weight:600}#editPanel .note{font-size:12px;margin:4px 0}#editPanel .seg{display:flex;gap:6px;align-items:center;margin:8px 0;flex-wrap:wrap}#editPanel .seg button.on{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent)}#editPanel .fields{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px}#editPanel .field{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}#editPanel .field input{width:100%;box-sizing:border-box}#editProps{max-height:40vh;overflow-y:auto;display:grid;gap:4px;margin-top:6px}#editProps .prop{display:grid;grid-template-columns:45% 55%;gap:6px;align-items:center;font-size:12px}#editProps .prop span{overflow-wrap:anywhere;color:var(--muted)}#editProps .prop.set span{color:inherit;font-weight:600}#editProps .prop input,#editProps .prop select{width:100%;box-sizing:border-box;padding:3px 6px}.new-layout{display:flex;gap:6px}.new-layout input{flex:1;min-width:0}#addBox input{width:100%;box-sizing:border-box}.add-results{list-style:none;margin:6px 0;padding:0;max-height:30vh;overflow-y:auto}.add-results li{padding:4px 6px;border-radius:4px;cursor:pointer}.add-results li:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.add-results li small{display:block;color:var(--muted)}.sim-track{position:relative}.sim-track input{width:100%}#simMarks{position:absolute;left:8px;right:8px;bottom:-2px;height:6px;pointer-events:none}#simMarks i{position:absolute;width:2px;height:6px;margin-left:-1px;background:#ef4444;border-radius:1px}#simMarks i.out{background:#f59e0b}.sim-hit{margin:4px 0;padding:4px 8px;border-radius:6px;background:#ef444426;color:#fca5a5;font-weight:600}.comp-label.hit{background:#b91c1c!important;color:#fff!important}.comp-label.out{background:#d97706!important;color:#fff!important}#view>.sim-hit.out{background:color-mix(in srgb,#d97706 35%,var(--panel));color:#fde68a}label.check{display:inline-flex;align-items:center;gap:4px;font-size:13px}.import-box{margin-top:8px}.import-box summary{cursor:pointer;font-weight:600}.import-box input,.import-box select,.import-box button{margin:3px 0}.import-box input[type=file],#impName{width:100%}.imp-row{display:flex;gap:8px;font-size:13px}.imp-result ul{margin:4px 0;padding-left:16px;font-size:12px}.imp-result .c-zeker{color:#4ade80}.imp-result .c-waarschijnlijk{color:#facc15}.imp-result .c-schatting{color:#fb923c}body.catalog{grid-template-columns:250px 1fr 6px var(--right-w, clamp(420px, 34vw, 1200px))}body.catalog #left{gap:8px}.small{font-size:12px}.cat-groups{list-style:none;margin:4px 0 0;padding:0;overflow:auto;flex:1}.cat-groups li{display:flex;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer}.cat-groups li:hover{background:var(--bg)}.cat-groups li.active{background:color-mix(in srgb,var(--accent) 15%,transparent);font-weight:600}.cat-groups li.typ{padding-left:22px;font-size:12px}.cat-groups li.empty{opacity:.5}.cat-groups .n,.chip .n{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.cat-center{overflow-y:auto;padding:12px 16px;background:var(--bg)}.cat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:-12px;background:var(--bg);padding:4px 0 8px;z-index:1}.cat-tools{display:flex;gap:8px}.cat-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip{border-radius:999px;padding:2px 10px;font-size:12px;background:var(--panel);border:1px solid var(--line)}.chip.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--panel))}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.cat-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px;cursor:pointer;min-width:0}.cat-card:hover{border-color:var(--accent)}.cat-card.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.cat-card.old{opacity:.6}.cat-card .thumb{aspect-ratio:4 / 3;border-radius:6px;background:var(--view);display:grid;place-items:center;overflow:hidden;margin-bottom:6px}.cat-card .thumb img{width:100%;height:100%;object-fit:contain}.cat-card .ph{font-size:28px;color:var(--muted);opacity:.5;text-transform:uppercase}.cat-card .ph.fail{opacity:.25}.cat-card .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-card .sub,.cat-card .spec{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-more{text-align:center;padding:16px}.cat-detail{display:flex;flex-direction:column;padding:0}#detail{padding:12px;overflow:auto}.cat-title{font-size:15px;text-transform:none;letter-spacing:0;color:var(--text);margin:0 0 2px}.cat-key{margin:8px 0;display:flex;gap:6px;align-items:center}.cat-key code{background:var(--bg);padding:3px 6px;border-radius:4px;font-size:12px;overflow-wrap:anywhere}.cat-key button{padding:2px 8px;font-size:12px}.cat-desc{white-space:pre-line}#detail .kv dd{overflow-wrap:anywhere}.cat-find{margin:0;padding-left:16px;font-size:12px}.cat-find .c-zeker{color:#16a34a}.cat-find .c-waarschijnlijk{color:#ca8a04}.cat-find .c-schatting{color:#ea580c}.cat-props table{font-size:12px;border-collapse:collapse;width:100%}.cat-props td{padding:2px 4px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.cat-props summary{cursor:pointer;margin:10px 0 4px}.cat-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:4px}@media (max-width: 900px){body.catalog{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:auto}.cat-split{display:none}body.catalog #left,body.catalog #right{border:0}.cat-groups{max-height:30vh}}.cat-detail #viewerPanels{padding:0 12px 12px}.cat-add{padding:10px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.cat-add-row{display:flex;gap:6px;align-items:center}.cat-add-row select{flex:1;min-width:0}.cat-add .small{margin-top:4px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:disabled{opacity:.5;cursor:default}.cat-add .ok{color:#16a34a}.cat-add .err{color:#dc2626}.cat-split{cursor:col-resize;background:var(--line)}.cat-split:hover,body.dragging .cat-split{background:var(--accent)}body.dragging{-webkit-user-select:none;user-select:none;cursor:col-resize}body.catalog #right.cat-detail{display:flex;flex-direction:column;overflow:hidden;padding:0;border-left:0}#toolbar.cat-vtools{position:static;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;border-radius:0;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--panel)}#toolbar.cat-vtools button{padding:2px 8px}.cat-view{position:relative;flex:none;height:46vh;min-height:200px;max-height:80vh;resize:vertical;overflow:hidden;background:var(--view);border-bottom:1px solid var(--line)}.cat-view canvas{display:block}.cat-view #status{font-size:12px;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-scroll{flex:1;overflow:auto;min-height:0}.cat-scroll #detail{padding:12px 12px 0}.cat-scroll #info>h2:first-child{display:none}.cat-split{position:relative;z-index:3}.cat-split:before{content:"";position:absolute;top:0;right:-6px;bottom:0;left:-6px}.drag-hint{background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px dashed var(--accent);border-radius:6px;padding:6px 8px}.cat-card[draggable=true]{cursor:grab}.cat-card[draggable=true]:active{cursor:grabbing}.cat-card.dragging{outline:2px dashed var(--accent);outline-offset:2px;opacity:.6}.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{flex:1;border:0;border-radius:0;padding:6px 4px;background:var(--bg);white-space:nowrap;font-size:12px}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--accent);color:#fff}.seg button .n{opacity:.7;font-size:11px}.cat-own{margin:10px 0;display:flex;flex-direction:column;gap:6px}.cat-own>button{align-self:flex-start}.cat-own-top{margin:8px 0 4px}.cat-own h2{margin:6px 0 0}.cat-own textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;resize:vertical}.own-row{display:flex;gap:6px;align-items:center}.own-row input{flex:1;min-width:0}.own-props{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px}.own-props table{width:100%;border-collapse:collapse;font-size:12px}.own-props td{padding:2px 6px}.own-props td:first-child{color:var(--muted);white-space:nowrap}.own-props input,.own-props select{width:100%;padding:2px 6px}.cat-own button.primary:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.cat-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;margin:-2px 0 2px}.cat-status button{padding:3px 8px;font-size:12px}.cat-error{flex-basis:100%;color:#dc2626;white-space:pre-wrap}.cat-empty{grid-column:1 / -1;max-width:640px;padding:24px;line-height:1.5}.cat-empty h2{font-size:16px;text-transform:none;letter-spacing:0;color:inherit;margin:0 0 8px}.cat-empty code{font-size:12px}.app-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.app-nav>.nav-btn{flex:1 1 auto}.nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;white-space:nowrap;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:inherit;text-decoration:none;font-weight:600}a.nav-btn:hover{border-color:var(--accent);color:var(--accent)}.app-nav>.nav-btn.back-btn{flex:1 0 100%;justify-content:flex-start;overflow:hidden;background:var(--accent);border-color:var(--accent);color:#fff}.back-btn b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}a.nav-btn.back-btn:hover{color:#fff;filter:brightness(1.1)}.nav-btn[aria-current]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);cursor:default}#save:not(:disabled){background:#1d4ed8;border-color:#1d4ed8;color:#fff}#save:not(:disabled):hover{background:#1e40af;border-color:#1e40af}#save:disabled{cursor:default;color:var(--text);opacity:1}#save .ok{color:#16a34a;font-weight:700}#layTitle{overflow-wrap:anywhere}#left>label.small{display:flex;gap:6px;align-items:center}#compsBox{display:flex;flex-direction:column;flex:1 1 260px;min-height:160px}#compsBox h2{margin-top:4px}#compsBox ul.comps{flex:1;min-height:0;border:1px solid var(--line);border-radius:6px;padding:2px}#left>section{flex:none}#left>#compsBox{flex:1 1 260px}body.layouts{grid-template-columns:250px 1fr}.lay-opt{display:flex;gap:6px;align-items:center}.lay-opt select{flex:1}.lay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}a.lay-card{color:inherit;text-decoration:none;display:block}.lay-card .lay-thumb{aspect-ratio:16 / 10;background:#fff}.lay-card .ok{color:#16a34a}.lay-card .warn{color:#ca8a04}.lay-card .bad{color:#dc2626}@media (max-width: 900px){body.layouts{grid-template-columns:1fr}}.file-nav{margin-top:-4px}.lay-file{font-size:12px;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;vertical-align:middle;white-space:nowrap}.recent-box{margin-bottom:22px}.recent-card{position:relative}.recent-card.gone{opacity:.55;cursor:default}.recent-card .ri-x{position:absolute;top:12px;right:12px;z-index:1;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;padding:2px 7px;border-radius:4px;opacity:0;transition:opacity .12s}.recent-card:hover .ri-x,.recent-card:focus-within .ri-x{opacity:1}.recent-card .ri-x:hover{color:var(--text);border-color:var(--accent)}.lay-dir{margin-left:6px;font-weight:400}.copilot-dlg{width:min(560px,calc(100vw - 32px));border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:var(--panel);color:var(--text);box-shadow:0 12px 40px #00000040}.copilot-dlg::backdrop{background:#00000059}.copilot-dlg[open]{position:fixed;margin:0;z-index:60;max-height:calc(100vh - 16px);overflow:auto;box-sizing:border-box}.copilot-dlg .cp-head{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;margin:-16px -18px 8px;padding:10px 18px;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.copilot-dlg [hidden]{display:none!important}.copilot-dlg .cp-guide{display:flex;gap:10px;align-items:center;margin-bottom:8px}.copilot-dlg .cp-rounds{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 8px}.copilot-dlg .cp-lbl{display:block;font-size:13px;margin:4px 0 3px}.copilot-dlg .cp-now{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:8px;padding:10px 12px;margin-bottom:8px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));display:flex;flex-direction:column;gap:6px}.copilot-dlg .cp-now-h{font-size:14px}.copilot-dlg .cp-do{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px}.copilot-dlg .cp-next{align-self:flex-start;margin-top:2px}.copilot-dlg .cp-rounds button{text-align:left;padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:inherit;cursor:pointer;font:inherit;font-size:13px}.copilot-dlg .cp-rounds button b{display:inline-block;min-width:1.3em}.copilot-dlg .cp-rounds button.next{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.copilot-dlg .cp-rounds button.done:after{content:" ✓";color:#16a34a}.copilot-dlg .cp-rounds button:disabled{opacity:.45;cursor:default}.copilot-dlg .cp-recv{margin:6px 0;padding:6px 8px;border-radius:6px;background:var(--bg);border:1px solid var(--line)}.copilot-dlg .cp-recv.bad{background:#dc662524}.copilot-dlg .cp-report{margin:6px 0;max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px 8px}.copilot-dlg .cp-report pre{margin:4px 0 0;white-space:pre-wrap;font-size:12px}.copilot-dlg .cp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.copilot-dlg h2{margin:0;font-size:17px}.copilot-dlg .cp-x{border:0;background:none;color:var(--muted);font-size:16px;cursor:pointer}.copilot-dlg .cp-mode{display:flex;gap:16px;margin-bottom:8px;font-size:13px}.copilot-dlg textarea{width:100%;box-sizing:border-box;resize:vertical;font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text)}.copilot-dlg .cp-actions{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.copilot-dlg .cp-status{min-height:1.2em;margin-bottom:6px}.copilot-dlg .cp-status.bad{color:#c62828}.copilot-dlg .cp-status .warn{color:var(--warn-text)}.copilot-dlg .cp-steps{margin:6px 0 10px;padding-left:20px}.copilot-dlg .cp-steps li{margin:2px 0}.copilot-dlg .cp-more{margin-top:6px;font-size:13px}.copilot-dlg .cp-more summary{cursor:pointer;color:var(--muted)}.copilot-dlg .cp-more label{display:block;margin:6px 0}.copilot-dlg .cp-more input[type=url],.copilot-dlg .cp-more input[type=number]{width:100%;box-sizing:border-box;margin-top:2px}.cp-toast{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;gap:8px;align-items:center;max-width:min(520px,calc(100vw - 32px));padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:0 8px 28px #0003;font-size:13px}.cp-toast span{flex:1}.exp{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;grid-template-columns:380px 1fr;background:var(--bg)}.exp-form{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px;padding:14px 16px;overflow:auto}.exp-head{display:flex;flex-direction:column;gap:8px;position:sticky;top:-14px;z-index:2;margin:-14px -16px 0;padding:14px 16px 8px;background:var(--bg);border-bottom:1px solid var(--line)}.exp-head h1{font-size:17px;margin:0}.exp-head .exp-x{flex:0 0 auto;color:var(--muted)}.exp-body details{border-top:1px solid var(--line);padding:8px 0 10px}.exp-body summary{font-weight:600;cursor:pointer;padding:2px 0 6px}.exp-f{display:flex;flex-direction:column;gap:3px;margin:6px 0;font-size:12px;color:var(--muted);flex:1;min-width:0}.exp-f input,.exp-f select,.exp-f textarea,.exp-sec input,.exp-sec textarea,.exp-rows input{color:var(--text);font:inherit;width:100%}.exp-f input[type=color]{height:30px;padding:2px}.exp-f textarea,.exp-sec textarea{resize:vertical;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:5px 7px}.exp-row{display:flex;gap:8px;align-items:center}.exp-chk{display:flex;gap:6px;align-items:center;margin:4px 0}.exp-chks{display:flex;flex-wrap:wrap;gap:0 14px}.exp-logo[hidden]{display:none}.exp-logo{display:flex;flex-direction:column;gap:6px;margin:4px 0 6px}.exp-logo img{max-height:36px;max-width:160px;object-fit:contain;align-self:flex-start}.exp-leg{list-style:none;margin:4px 0 0;padding:0;counter-reset:leg}.exp-leg li{display:flex;gap:4px;align-items:center;margin:3px 0;counter-increment:leg}.exp-leg li:before{content:counter(leg);min-width:20px;text-align:center;font-weight:700;font-size:12px}.exp-leg li input:not([type]){flex:1;min-width:0}.exp-leg button{padding:2px 6px;min-width:0}.exp-leg button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.exp-sec{border:1px solid var(--line);border-radius:8px;padding:6px;margin:6px 0;display:flex;flex-direction:column;gap:5px}.exp-sec .exp-row input{flex:1}.exp-rows .exp-row{margin:4px 0}.exp-h3{font-size:12px;margin:10px 0 2px}.exp-file{display:flex;align-items:center;gap:4px}.exp-togs{display:flex;flex-wrap:wrap;gap:0 12px;max-height:120px;overflow:auto;font-size:12px}.exp-togs .exp-chk{margin:2px 0}.exp-view{display:flex;flex-direction:column;min-width:0}.exp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.exp-msg{padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.exp-msg.bad{background:var(--warn-bg);color:var(--warn-text)}.exp-msg button{margin-left:8px}.exp-frame{flex:1;border:0;width:100%;background:#d4d6d8}@media (max-width: 900px){.exp{grid-template-columns:1fr;grid-template-rows:55% 45%}.exp-form{order:2;border-right:0;border-top:1px solid var(--line)}}#steps{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:4;display:flex;flex-direction:column;background:var(--panel);border-top:2px solid var(--accent);box-shadow:0 -4px 14px #00000040}#steps[hidden]{display:none}#steps.tall{height:78%}#steps .st-head{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line)}#steps .st-sub{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#steps .st-sp{flex:1}#steps .st-x,#steps .st-size{border:0;background:none;color:var(--muted);font-size:15px;cursor:pointer}#steps .st-op{background:var(--accent);border-color:var(--accent);color:#fff}#steps .st-cols{flex:1;min-height:0;display:grid;grid-template-columns:190px minmax(260px,1fr) minmax(320px,1.15fr)}#steps .st-cols>*{overflow:auto;padding:8px 10px;min-height:0}#steps .st-nav{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}#steps .st-nav button{text-align:left;border:1px solid transparent;background:none;padding:5px 8px;border-radius:6px;cursor:pointer;display:flex;gap:6px;align-items:baseline}#steps .st-nav button .muted{margin-left:auto;font-size:11px}#steps .st-nav button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}#steps .st-nav button.on{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}#steps .st-add{margin-top:8px;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px}#steps .st-list{border-right:1px solid var(--line)}#steps .st-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}#steps .st-steps li{display:flex;gap:8px;align-items:flex-start;padding:5px 8px;border:1px solid var(--line);border-radius:6px;cursor:pointer}#steps .st-steps li:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}#steps .st-steps li.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}#steps .st-steps li.now{box-shadow:inset 4px 0 #22c55e}#steps .st-steps li.bad{border-color:#dc2626}#steps .st-n{font-weight:600;color:var(--muted);min-width:18px;text-align:right;font-variant-numeric:tabular-nums}#steps .st-body{display:flex;flex-direction:column;min-width:0}#steps .st-sum{overflow-wrap:anywhere}#steps .st-txt{font-size:12px;color:var(--muted);font-style:italic}#steps .st-lbl{font-size:11px;color:var(--accent)}#steps .st-addrow{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:8px;font-size:12px}#steps .st-addrow button{font-size:12px;padding:2px 7px}#steps .st-form{display:flex;flex-direction:column;gap:6px}#steps .st-fhead{display:flex;gap:4px;align-items:center}#steps .st-fhead b{font-size:14px}#steps .st-f{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:2px}#steps .st-f input{color:var(--text)}#steps fieldset{border:1px solid var(--line);border-radius:8px;padding:4px 8px 8px;margin:0;display:flex;flex-direction:column;gap:4px}#steps legend{font-weight:600;padding:0 4px;display:flex;gap:6px;align-items:center}#steps legend button{border:0;background:none;color:var(--muted);cursor:pointer;padding:0 2px}#steps .st-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}#steps .st-row>span{font-size:12px;color:var(--muted)}#steps .st-wrap{row-gap:2px}#steps .st-num{width:66px}#steps .st-name{width:120px;font-weight:600}#steps .st-expr{min-width:66px;width:180px;font-family:ui-monospace,Consolas,monospace;font-size:12px}#steps .st-num.st-expr{width:110px}#steps .st-pv{border-top:1px dashed var(--line);padding-top:4px;margin-top:4px}#steps .st-chk{display:inline-flex;gap:4px;align-items:center;font-size:12px}#steps .st-note{font-size:12px}#steps .st-gen ul{margin:4px 0 8px 18px;padding:0}#steps .st-msgs{border-top:1px solid var(--line);padding:4px 10px;max-height:70px;overflow:auto;font-size:12px}#steps .st-msgs .bad{color:#dc2626}#steps .st-msgs .warn{color:var(--warn-text)}#steps .st-msgs .ok{color:#16a34a}.app-nav>.nav-btn.about-btn{flex:0 0 auto;padding:7px 9px;font-size:15px;line-height:1}.about-btn:hover{border-color:var(--accent);color:var(--accent)}.about-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#00000073}.about{width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:20px 22px 16px;border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 10px 40px #00000059}.about-top{display:flex;align-items:center;gap:16px;margin-bottom:14px}.about-logo svg{display:block;width:92px;height:auto}.about-logo svg .g{fill:var(--text)}.about h1{margin:0 0 2px;font-size:20px}.about-ver{font-size:15px;margin-bottom:2px}.about table{width:100%;margin:14px 0 4px;border-collapse:collapse;font-size:12.5px}.about td{padding:4px 6px;border-top:1px solid var(--line);vertical-align:top}.about td:first-child{width:130px;color:var(--muted);white-space:nowrap}.about td:last-child{word-break:break-all;-webkit-user-select:text;user-select:text}.about-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.about-btns button{padding:6px 14px}.about-btn.in-head{float:right;padding:3px 7px;font-size:14px;font-weight:600}#partPanel,.part-bar[hidden]{display:none}body.part-editing #partPanel{display:block}body.part-editing #right>section:not(#partPanel){display:none}body.part-editing #left{pointer-events:none;opacity:.45}body.part-editing #simBar,body.part-editing #undo,body.part-editing #redo,body.part-editing #steps{display:none!important}.part-bar{position:absolute;left:12px;top:96px;z-index:3;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100% - 24px);background:var(--panel);padding:5px 10px;border-radius:8px;box-shadow:0 2px 10px #00000040;border:1px solid #f59e0b}.part-bar b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.part-bar .pe-live{min-width:150px;font-variant-numeric:tabular-nums;font-size:12px}.part-bar button{padding:4px 10px}.part-bar button.primary:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.pe-seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.pe-seg button{border:0;border-radius:0;background:var(--bg)}.pe-seg button+button{border-left:1px solid var(--line)}.pe-seg button.active{background:var(--accent);color:#fff}.pe-tag{font:600 10px system-ui,sans-serif;color:#fff;background:#784600cc;padding:0 4px;border-radius:3px;pointer-events:none;white-space:nowrap}.pe-tag.on{background:#f59e0b;color:#111}#partPanel h2{margin-top:0}.pe-general{width:100%;text-align:left;margin:8px 0 4px;padding:6px 8px}.pe-general.on,.pe-list li.on{background:color-mix(in srgb,#f59e0b 22%,transparent);border-color:#f59e0b}.pe-group{margin-top:8px}.pe-ghead{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.pe-adds{margin-left:auto;display:flex;gap:3px;text-transform:none;letter-spacing:0}.pe-adds button{padding:2px 6px;font-size:11px}.pe-list{list-style:none;margin:3px 0 0;padding:0;max-height:170px;overflow:auto}.pe-list li{display:flex;align-items:baseline;gap:6px;padding:3px 6px;border:1px solid transparent;border-radius:5px;cursor:pointer}.pe-list li:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.pe-list li small{margin-left:auto}.pe-ic{width:14px;text-align:center;color:var(--muted)}.pe-list.pe-tree{max-height:340px}.pe-fold{font-weight:500}.pe-tog{width:14px;flex:none;text-align:center;color:var(--muted);cursor:pointer}.pe-tog:hover{color:var(--accent)}.pe-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin:2px 0 6px}.pe-crumbs button{padding:1px 6px;font-size:11px}.pe-form{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.pe-form:empty{display:none}.pe-fhead{font-weight:600;margin-bottom:4px;text-transform:capitalize}.pe-sub{margin:8px 0 2px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.pe-wide{display:block;margin:4px 0}.pe-wide>span{display:block;font-size:12px;color:var(--muted)}.pe-wide input,.pe-wide select,.pe-wide textarea{width:100%}.pe-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.pe-num{display:flex;flex-direction:column;font-size:11px;color:var(--muted)}.pe-num input{width:100%}.pe-num input[type=color]{height:26px;padding:1px}.pe-row{display:flex;gap:6px;margin-top:8px}.pe-axbtns{display:inline-flex;gap:2px;margin-left:auto}.pe-axbtns button{padding:1px 5px;font-size:11px}.pe-try{width:100%}.pe-checks{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;max-height:120px;overflow:auto}.pe-ready{margin:8px 0;padding:6px 8px;border-radius:6px;background:var(--bg);font-size:12px;display:grid;gap:3px}.pe-ready button{justify-self:start;margin-top:4px}.pe-props{width:100%;border-collapse:collapse}.pe-props td{padding:1px 2px}.pe-props input{width:100%}.pe-props button{padding:1px 6px}.pe-msgs{margin-top:10px;font-size:12px;display:grid;gap:2px}.pe-msgs .err{color:#dc2626}.pe-msgs .warn{color:var(--warn-text)}.pe-msgs .ok{color:#16a34a}.edit-part{width:100%;margin-top:6px}.np-kind{display:flex;gap:6px;align-items:center}#npName{width:100%}.specwin{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:var(--bg)}.spec-head{display:flex;flex-direction:column;gap:6px;padding:12px 16px 8px;border-bottom:1px solid var(--line)}.spec-head .app-nav{align-items:center}.spec-head .app-nav>.nav-btn{flex:0 0 auto}.spec-head .exp-x{margin-left:auto;color:var(--muted)}.spec-head h1{font-size:17px;margin:0}.spec-head h1 .muted{font-weight:400;font-size:14px;margin-left:6px}.spec-dur select{margin-left:4px}.spec-body{flex:1;overflow:auto;padding:10px 16px 30px}.spec-intro{max-width:1100px;margin:0 0 10px}.specwin code,.specwin .mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.spec-sheet{overflow-x:auto;outline:none}.sp-t{border-collapse:collapse;font-size:13px;min-width:100%}.sp-t th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:4px 4px 6px;border-bottom:1px solid var(--line);vertical-align:bottom;white-space:nowrap}.sp-t td{padding:2px 3px;border-bottom:1px solid var(--line);vertical-align:middle}.sp-t input,.sp-t select{font:inherit;color:var(--text);width:100%;min-width:0;padding:3px 5px}.sp-t input[data-f=label]{min-width:170px}.sp-t input[data-f=note]{min-width:150px}.sp-id{width:90px!important}.sp-unit{width:64px!important}.sp-how{white-space:nowrap}.sp-how>select{width:auto;margin-right:4px}.sp-how .sp-expr{width:200px}.sp-how>select[data-f=table]{width:140px}.sp-mm{display:inline-flex;gap:2px;align-items:center}.sp-mm .sp-n{width:62px}.sp-mv{white-space:nowrap}.sp-intern{color:var(--muted, #6b7280);margin-right:3px}.sp-intern.on{background:#fde68a;color:#78350f}.sp-mv button,.sp-t td>button{padding:1px 5px;min-width:0;font-size:11px}.sp-cfg{min-width:120px}.sp-cfg.on{color:var(--accent)}.sp-cfg>input{font-weight:600}.sp-cfgb{display:flex;gap:4px;align-items:center;margin-top:3px;font-weight:400}.sp-cfgb label{display:flex;gap:3px;align-items:center;margin-right:auto}.sp-cfgb input{width:auto}.sp-cfgb button,.sp-addc{padding:1px 6px;min-width:0;font-size:11px}.sp-addc{margin-left:8px}.sp-v{min-width:110px}.sp-v .sp-num{text-align:right;font-variant-numeric:tabular-nums}.sp-out{text-align:right;font-variant-numeric:tabular-nums;padding-right:8px!important;font-weight:600}.sp-stale{opacity:.45}.sp-bad{box-shadow:inset 0 0 0 2px #d33}.sp-k-formula td,.sp-k-result td{background:color-mix(in srgb,var(--accent) 4%,transparent)}.sp-k-sim td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.sp-grp td{padding-top:12px;border-bottom:1px solid var(--line)}.sp-grp input{font-weight:700;border-color:transparent;background:transparent;max-width:360px}.sp-grp input:focus{border-color:var(--line)}.sp-empty{padding:14px 6px!important}.sp-add{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap}.spec-msgs{margin:6px 0 12px;display:flex;flex-direction:column;gap:2px}.spec-msgs .sp-err{color:#c62828}.spec-msgs .sp-warn{color:var(--warn-text)}.spec-tabs h2{font-size:15px;margin:18px 0 6px;display:flex;gap:10px;align-items:center}.spec-tabs h2 button{font-size:12px;font-weight:400}.sp-tab{border:1px solid var(--line);border-radius:8px;padding:8px;margin:8px 0;outline:none}.sp-tab:focus-within,.sp-tab:focus{border-color:var(--accent)}.sp-tabhead{display:flex;gap:6px;align-items:center;margin-bottom:6px}.sp-tabhead input{font:inherit;color:var(--text)}.sp-tabhead input[data-tn]{width:160px;font-weight:600}.sp-tabhead input[data-tnote]{flex:1}.sp-tabwrap{overflow:auto;max-height:340px}.sp-tt{border-collapse:collapse;font-size:12px}.sp-tt th{text-align:left;padding:3px 4px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);font-weight:600;white-space:nowrap}.sp-tt th code{font-weight:400;color:var(--accent)}.sp-tt td{padding:1px 2px}.sp-tt input{font:inherit;color:var(--text);width:84px;padding:2px 4px}.sp-paste{border:2px dashed var(--line);border-radius:8px;padding:18px;text-align:center;color:var(--muted);outline:none}.sp-paste:focus{border-color:var(--accent);color:var(--accent)}.spec-names{margin-top:16px}.spec-names summary{font-weight:600;cursor:pointer}.sp-names{display:flex;flex-wrap:wrap;gap:4px 8px}.costwin .cost-note{margin-left:8px}.costwin .cost-note.bad{color:#c62828}.cost-t td.num,.cost-t th.num,.cost-sum td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cost-t td.b{font-weight:600}.cost-t td{white-space:nowrap}.cost-t .cost-n{width:80px;text-align:right}.cost-t .cost-key{min-width:240px}.cost-t button{padding:1px 6px;min-width:0;font-size:12px}.cost-t label{display:inline-flex;gap:2px;align-items:center;margin-left:4px}.cost-t label input{width:auto}.cost-narrow{min-width:0!important;width:auto}.cost-excl td{opacity:.45;text-decoration:line-through}.cost-excl td:last-child{opacity:1;text-decoration:none}.cost-miss{color:#c62828;font-weight:600}.cost-warn{margin:0 0 10px;padding:6px 10px;border-radius:6px;background:#dc66251f}.cost-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}@media (max-width: 1100px){.cost-grid{grid-template-columns:1fr}}.cost-sum{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--panel);position:sticky;top:0}.cost-sum h2{font-size:14px;margin:6px 0}.cost-sum table{width:100%;border-collapse:collapse;font-size:13px}.cost-sum td{padding:2px 0}.cost-sum .cost-line td{border-top:1px solid var(--line);padding-top:4px}.cost-sum .cost-price td{font-size:16px;color:var(--accent)}.cost-pct{width:46px;text-align:right;padding:1px 4px;margin:0 2px}.cost-ph{display:inline-flex;gap:4px;align-items:center}.cost-ph select{width:auto}.cost-edit td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.cost-form{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 2px;white-space:normal}.cost-form label{display:inline-flex;gap:4px;align-items:center;font-size:12px;margin:0}.cost-form input{width:auto;min-width:70px}.cost-form .cost-n{width:80px}.cost-form-b{display:inline-flex;gap:6px}.cost-tabs{margin-bottom:10px}.cost-tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.cost-bar{display:flex;gap:6px;margin-bottom:8px;align-items:center}.cost-bar input[type=search]{width:320px}.cost-used{display:flex;flex-direction:column;gap:3px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px;margin-bottom:8px}.cost-used>div{margin-top:6px;display:flex;gap:6px}.cost-import{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:12px;background:var(--panel)}.cost-import h2{font-size:14px;margin:4px 0}.cost-prev{font-size:12px}.cost-prev tr.b td{font-weight:600}.cost-prev td{max-width:220px;overflow:hidden;text-overflow:ellipsis}.cost-col-k{background:color-mix(in srgb,var(--accent) 14%,transparent)}.cost-col-p{background:#2ea0432e}.cost-axis td{border-bottom:1px solid var(--line);padding-top:0}.cost-axis .cost-axis-l{text-align:right;padding-right:8px}.cost-t tr:has(+.cost-axis) td{border-bottom:0}.cost-hrs{display:inline-flex;flex-wrap:wrap;gap:4px 10px;align-items:center;flex-basis:100%}.cost-h2{font-size:15px;margin:18px 0 4px}.cost-notin{margin:10px 4px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cost-notin>div{flex-basis:100%}.cost-chip{border:1px solid var(--line);border-radius:12px;padding:1px 4px 1px 9px;white-space:nowrap}.cost-chip button,button.small{font-size:11px;padding:0 5px}.cost-t td.ctr{text-align:center}.step-pop{position:fixed;z-index:60;width:340px;background:var(--panel, #1f2328);color:inherit;border:1px solid var(--line);border-radius:8px;padding:12px 14px;box-shadow:0 8px 28px #00000059}.step-pop p{margin:6px 0 8px}.step-pop label{display:block;margin:4px 0 10px}.step-pop-b{display:flex;gap:6px;justify-content:flex-end}body.ribbon-page{grid-template-columns:250px 1fr 330px;grid-template-rows:auto minmax(0,1fr)}body.ribbon-page>aside,body.ribbon-page>main{grid-row:2;min-height:0}#ribbon{grid-column:1 / -1;grid-row:1;position:relative;z-index:20;background:var(--panel);border-bottom:1px solid var(--line)}.rb-top{display:flex;align-items:center;gap:4px;padding:4px 8px 0}.rb-home{text-decoration:none;color:inherit;font-weight:600;padding:5px 10px;margin-right:8px;border-radius:6px;white-space:nowrap}.rb-home:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.rb-tabs{display:flex;gap:2px;align-self:flex-end}.rb-tabs [role=tab]{border:0;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;background:none;color:var(--muted);padding:6px 14px 7px}.rb-tabs [role=tab]:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 8%,transparent)}.rb-tabs [role=tab][aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.rb-spacer{flex:1}.rb-top #save{padding:4px 12px}.rb-fold{border:0;background:none;width:30px;padding:4px 0;color:var(--muted)}.rb-fold:hover{color:var(--text)}.rb-body{border-top:1px solid var(--line);background:var(--panel)}.rb-panel{display:flex;flex-wrap:nowrap;align-items:stretch;padding:6px 4px 2px;min-height:68px}.rb-panel[hidden]{display:none}.rb-group{display:flex;flex-direction:column;justify-content:space-between;padding:0 10px;border-right:1px solid var(--line);flex:0 1 auto;min-width:min-content}.rb-group:last-child{border-right:0}.rb-group[hidden]{display:none}.rb-items{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;min-height:36px}.rb-label{font-size:11px;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 0 1px}.rb-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid transparent;border-radius:6px;background:none;color:inherit;font:inherit;text-decoration:none;white-space:nowrap}.rb-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.rb-btn:disabled{opacity:.45;cursor:default}.rb-btn[aria-expanded=true]{background:color-mix(in srgb,var(--accent) 14%,transparent)}.rb-btn[hidden]{display:none}.rb-field{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;padding:0 4px}.rb-drop,.rb-search{position:relative}#addBox .rb-search input{width:380px}.rb-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:50;width:360px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #0000004d;padding:10px 12px}.rb-pop[hidden]{display:none}.rb-pop.import-box:not([hidden]){margin:0;display:flex;flex-direction:column;gap:4px}.rb-pop.import-box input:not([type=checkbox]),.rb-pop.import-box>button{width:100%}ul.add-results.rb-pop{width:380px;max-height:55vh;overflow-y:auto;margin:0;padding:4px;list-style:none}#ribbon.folded .rb-body{display:none}#ribbon.folded.peek .rb-body{display:block;position:absolute;left:0;right:0;top:100%;box-shadow:0 8px 20px #00000040;border-bottom:1px solid var(--line)}#ribbon #editbar,#ribbon #toolbar{position:static;background:none;padding:0 10px;border-radius:0;display:flex;flex-direction:column;gap:0}#ribbon #editbar[hidden]{display:none}body.ribbon-page #left{gap:4px}body.ribbon-page #left h2{margin-top:10px}body.ribbon-page{grid-template-columns:var(--lw, 250px) minmax(0,1fr) var(--rw, 330px)}body.ribbon-page.left-auto{grid-template-columns:0 minmax(0,1fr) var(--rw, 330px)}body.ribbon-page.right-auto{grid-template-columns:var(--lw, 250px) minmax(0,1fr) 0}body.ribbon-page.left-auto.right-auto{grid-template-columns:0 minmax(0,1fr) 0}body.ribbon-page>aside{position:relative}.pn-pin{position:absolute;top:4px;right:4px;z-index:3;border:0;background:none;padding:2px 4px;font-size:12px;opacity:.35;filter:grayscale(1);transform:rotate(45deg);transition:transform .15s}.pn-pin.on{opacity:.8;filter:none;transform:none}.pn-pin:hover{opacity:1}.pn-split{position:absolute;top:0;bottom:0;width:6px;z-index:6;cursor:col-resize}.pn-split.left{left:0}.pn-split.right{right:0}.pn-split:hover,body.pn-dragging .pn-split{background:color-mix(in srgb,var(--accent) 45%,transparent)}body.pn-dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}body.left-auto .pn-split.left,body.right-auto .pn-split.right{display:none}.pn-tab{display:none;position:absolute;top:50%;z-index:6;transform:translateY(-50%);writing-mode:vertical-rl;padding:12px 3px;font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--line);cursor:default;-webkit-user-select:none;user-select:none}.pn-tab.left{left:0;border-right:0;border-radius:6px 0 0 6px;transform:translateY(-50%) rotate(180deg)}.pn-tab.right{right:0;border-right:0;border-radius:6px 0 0 6px}.pn-tab:hover{color:var(--accent)}body.left-auto .pn-tab.left,body.right-auto .pn-tab.right{display:block}body.left-auto #left,body.right-auto #right{position:fixed;top:var(--rb-h, 110px);bottom:0;z-index:15;background:var(--panel);box-shadow:0 0 24px #00000059;transition:transform .18s ease}body.left-auto #left{left:0;width:var(--lw, 250px);transform:translate(-102%)}body.right-auto #right{right:0;width:var(--rw, 330px);transform:translate(102%)}body.left-auto.left-open #left,body.right-auto.right-open #right{transform:none}body.left-open .pn-tab.left,body.right-open .pn-tab.right{visibility:hidden}body.ribbon-page.fullview{grid-template-columns:0 minmax(0,1fr) 0;grid-template-rows:0 minmax(0,1fr)}body.fullview #ribbon,body.fullview>aside,body.fullview .pn-split,body.fullview .pn-tab{display:none!important}.pn-exitfull{display:none;position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:7;opacity:.55}.pn-exitfull:hover{opacity:1}body.fullview .pn-exitfull{display:block}.viewcube{position:absolute;left:10px;bottom:8px;z-index:4;width:112px;height:112px}.viewcube[hidden]{display:none}.viewcube canvas{display:block}.vc-home{position:absolute;right:-6px;top:2px;width:24px;height:24px;padding:0;border-radius:50%;font-size:14px;line-height:1;opacity:.7}.vc-home:hover{opacity:1}body.left-auto .viewcube{left:26px}.axis-triad{position:absolute;right:8px;bottom:6px;z-index:4;width:110px;height:110px;pointer-events:none}.axis-triad[hidden]{display:none}.axis-triad canvas{display:block}body.right-auto .axis-triad{right:26px}#view #hint{left:132px;max-width:calc(100% - 256px)}body.cube-off #view #hint{left:12px;max-width:calc(100% - 136px)}body.axes-off #view #hint{max-width:calc(100% - 144px)}body.cube-off.axes-off #view #hint{max-width:calc(100% - 24px)}body.left-auto:not(.cube-off) #view #hint{left:148px}body.hud-off #view #hint{display:none}body.hud-off #view #status{visibility:hidden}body.ribbon-page>#left{grid-column:1}body.ribbon-page>#view{grid-column:2}body.ribbon-page>#right{grid-column:3}.rb-btn.rb-toggle.on{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.rb-pop.rm-pop:not([hidden]){display:flex;flex-direction:column;gap:8px;width:330px}.rm-pop .rm-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.rm-pop .rm-row label{display:inline-flex;gap:4px;align-items:center}.rm-pop input[type=range]{width:100%}.inp-reset{position:relative;display:block;min-width:0}.inp-reset>input{width:100%;box-sizing:border-box;padding-right:24px}.inp-reset>.rst{position:absolute;right:3px;top:50%;transform:translateY(-50%);border:0;background:none;padding:0 3px;font-size:13px;line-height:1;color:var(--muted);opacity:.45;cursor:pointer}.inp-reset>.rst:hover{opacity:1;color:var(--accent)}.inp-reset>.rst[hidden]{display:none}.inp-reset>input[type=number]{-moz-appearance:textfield}.inp-reset>input[type=number]::-webkit-inner-spin-button{margin-right:18px}#editPanel #editPose{grid-template-columns:1fr 1fr 1fr}#comps li.asm-root{font-weight:600}#comps li.asm-member{padding-left:22px;opacity:.85}#comps li.asm-member small{font-weight:400}.asm-box{border:1px solid var(--line, #334155);border-radius:6px;padding:8px;margin:6px 0;display:grid;gap:6px}.asm-file{word-break:break-all}.asm-state{font-size:12px;padding:4px 6px;border-radius:4px}.asm-state.ok{background:#22c55e1f;color:#16a34a}.asm-state.warn{background:#f59e0b24;color:#b45309}.asm-state.bad{background:#ef444424;color:#dc2626}.asm-state button{margin-left:4px}.asm-uid{font-family:ui-monospace,monospace;font-size:10px;word-break:break-all}dialog.asm-dlg{max-width:460px;border:1px solid var(--line, #334155);border-radius:8px;padding:14px;background:var(--panel, #fff);color:inherit;box-shadow:0 10px 30px #0000004d}dialog.asm-ask:not([open]){display:none}dialog.asm-ask[open]{position:fixed;top:80px;left:50%;transform:translate(-50%);margin:0;z-index:70}.asm-dlg p{margin:8px 0}.asm-dlg .asm-q{width:100%;margin:8px 0;box-sizing:border-box}.asm-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}.asm-list button{width:100%;text-align:left;margin:1px 0}.asm-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}.rb-items>*{max-width:100%}.rb-search input{max-width:100%;min-width:160px}.rb-items>label.rb-field:has(>input[type=checkbox]){white-space:normal}.photo-dlg{position:fixed;margin:0;z-index:60;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:inherit;box-shadow:0 10px 32px #0000004d;width:min(1040px,calc(100vw - 32px));height:min(640px,calc(100vh - 140px));min-width:520px;min-height:320px;resize:both;overflow:hidden;display:none;flex-direction:column;box-sizing:border-box}.photo-dlg[open]{display:flex}.photo-dlg .ph-head{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.photo-dlg .ph-info{flex:1;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-dlg .ph-x{border:0;background:none;font-size:15px;cursor:pointer;color:inherit;padding:2px 6px}.photo-dlg .ph-body{flex:1;display:flex;min-height:0}.photo-dlg .ph-view{flex:1;position:relative;min-width:0;background:repeating-conic-gradient(#0000 0,#0000 25%,#8881 0,#8881 50%) 0 0 / 16px 16px}.photo-dlg .ph-view canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.photo-dlg .ph-busy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--panel);padding:6px 12px;border-radius:6px;box-shadow:0 2px 8px #00000040}.photo-dlg .ph-side{width:250px;flex:none;overflow-y:auto;padding:6px 10px 10px;border-left:1px solid var(--line);font-size:13px}.photo-dlg fieldset{border:0;padding:0;margin:6px 0 8px}.photo-dlg legend{font-weight:600;padding:0;margin-bottom:3px}.photo-dlg label{display:flex;flex-direction:column;gap:1px;margin:3px 0}.photo-dlg label.ph-chk{flex-direction:row;align-items:center;gap:6px}.photo-dlg input[type=range],.photo-dlg select{width:100%}.photo-dlg .ph-btns{display:flex;gap:6px;margin:6px 0}.photo-dlg .ph-btns button{flex:1}.photo-dlg .ph-sync,.photo-dlg .ph-reset{width:100%;margin-top:3px}.prefs-dlg{position:fixed;top:70px;right:24px;left:auto;margin:0;z-index:70;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 90px);overflow:auto;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 10px 32px #0000004d}.prefs-dlg .pf-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 7%,var(--panel));font-size:14px}.prefs-dlg .pf-x{border:0;background:none;color:inherit;font-size:15px;cursor:pointer;padding:2px 6px}.prefs-dlg form{padding:4px 14px 12px}.prefs-dlg fieldset{border:0;padding:0;margin:10px 0 6px}.prefs-dlg legend{font-weight:600;padding:0;margin-bottom:6px}.prefs-dlg .pf-theme{display:flex;gap:6px;flex-wrap:wrap}.prefs-dlg .pf-theme label{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:6px;padding:5px 9px;cursor:pointer}.prefs-dlg .pf-theme label:has(:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.prefs-dlg fieldset>label{display:flex;flex-direction:column;gap:2px;margin:7px 0}.prefs-dlg fieldset>label span{display:flex;justify-content:space-between}.prefs-dlg output{color:var(--muted);font-variant-numeric:tabular-nums}.prefs-dlg input[type=range]{width:100%}.prefs-dlg .pf-hint{margin:0 0 4px;color:var(--muted);font-size:12px}.prefs-dlg .pf-presets{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:8px;color:var(--muted)}.prefs-dlg .pf-foot{display:flex;justify-content:space-between;margin-top:12px}.rb-opts{margin-right:2px}.rb-undo{font-size:18px;line-height:1;padding:3px 0}.rb-undo:disabled{opacity:.35}.rb-undo[hidden]{display:none}#redo{margin-right:6px}.rb-drop:has(>.rb-split){display:inline-flex;align-items:center}.rb-btn.rb-split{padding:6px 5px;margin-left:-4px}.lang-dlg{border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:22px 26px;text-align:center;box-shadow:0 12px 40px #00000059}.lang-dlg::backdrop{background:#0a0f1973}.lang-dlg b{display:block;font-size:16px;margin-bottom:16px}.lang-dlg .lang-btns{display:flex;gap:12px;justify-content:center;margin-bottom:14px}.lang-dlg .lang-btns button{min-width:130px;padding:9px 16px;font-size:14px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer}.lang-dlg .lang-btns button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.lang-dlg small{color:var(--muted)}.prefs-dlg .pf-mcp{margin:10px 0 4px}.prefs-dlg .pf-mcp summary{cursor:pointer;font-weight:600}.prefs-dlg .pf-mcp code{font-size:11px}.prefs-dlg .pf-kv{grid-template-columns:max-content 1fr;font-size:12px;margin:6px 0}.prefs-dlg .pf-kv dd{word-break:break-all}.prefs-dlg .pf-snip{margin:6px 0;font-size:12px}.prefs-dlg .pf-snip button{float:right;font-size:11px;padding:1px 8px}.prefs-dlg .pf-snip pre{clear:both;margin:4px 0 0;padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:4px;font-size:11px;white-space:pre-wrap;word-break:break-all}.sel-box{position:absolute;z-index:5;pointer-events:none;border:1px solid #3b82f6;background:#3b82f61f}.sel-box.cross{border:1px dashed #22c55e;background:#22c55e1a}#editPanel .mixed input::placeholder{font-style:italic}#editPanel .multi-ids span{color:var(--text)}.rb-note{align-self:center;font-size:12px;opacity:.75;padding:0 6px;white-space:nowrap}.pattern-dlg{border:1px solid var(--line, #444);border-radius:8px;padding:14px 16px;min-width:340px;background:var(--panel, #1e1e1e);color:inherit}.pattern-dlg::backdrop{background:#00000059}.pattern-dlg h3{margin:0 0 6px}.pattern-dlg p{margin:0 0 8px;max-width:380px}.pattern-dlg fieldset{border:1px solid var(--line, #444);border-radius:6px;margin:0 0 8px;padding:6px 10px;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.pattern-dlg label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.pattern-dlg input{width:90px}.pattern-dlg .pat-sum{margin:4px 0 10px}.pattern-dlg .pat-sum.bad{color:#ef4444}.pattern-dlg .dlg-btns{display:flex;justify-content:flex-end;gap:8px}body.hud-off .tip{display:none}body.hud-off #simBox:has(#simStats>.tip){display:none}.first-dlg form{display:flex;flex-direction:column;gap:10px;min-width:340px;max-width:440px}.first-dlg .fr-title{font-size:15px}.first-dlg .fr-sub{margin:-6px 0 0;opacity:.8}.first-dlg fieldset{border:1px solid var(--line);border-radius:8px;margin:0;padding:6px 10px 8px;display:flex;flex-direction:column;gap:6px}.first-dlg legend{font-weight:600;padding:0 4px}.first-dlg .fr-opt{display:flex;gap:8px;align-items:flex-start;cursor:pointer;text-align:left}.first-dlg .fr-opt small{display:block;opacity:.75}.first-dlg .fr-foot{opacity:.7}.prefs-dlg .pf-check{display:flex;gap:6px;align-items:center}.chk-btn{min-width:34px;height:28px;padding:0 9px;margin-left:6px;border-radius:6px;border:1px solid var(--line);font:600 13px system-ui,sans-serif;cursor:pointer;white-space:nowrap}.chk-btn.chk-ok{background:none;color:#16a34a}.chk-btn.chk-warn{background:#f59e0b;border-color:#d97706;color:#1f1300}.chk-btn.chk-err{background:#dc2626;border-color:#b91c1c;color:#fff}.chk-btn:hover{filter:brightness(1.1)}.check-dlg{position:fixed;top:70px;right:24px;left:auto;margin:0;z-index:65;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 90px);overflow:auto;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 10px 32px #0000004d}.check-dlg .pf-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 7%,var(--panel));font-size:14px;position:sticky;top:0}.check-dlg .pf-head .pf-x{margin-left:auto}.check-dlg .check-body{padding:6px 12px 10px}.check-dlg .pf-x{border:0;background:none;color:inherit;font-size:15px;cursor:pointer;padding:2px 6px}.comp-label.sel{background:#f59e0b;color:#1f1300;border-left-color:#b45309;box-shadow:0 0 0 2px #f59e0b73,0 2px 8px #00000059}.comp-label.sel-main{background:#fbbf24;box-shadow:0 0 0 3px #fbbf2499,0 2px 10px #0006;font-size:12px}.fpv-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;font:13px system-ui,sans-serif}.fpv-cross{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%)}.fpv-cross:before,.fpv-cross:after{content:"";position:absolute;background:#fff;box-shadow:0 0 0 1px #0000008c}.fpv-cross:before{left:10px;top:0;width:2px;height:22px}.fpv-cross:after{top:10px;left:0;height:2px;width:22px}.fpv-help{position:absolute;left:50%;bottom:14px;transform:translate(-50%);padding:6px 12px;border-radius:6px;background:#0f172ab8;color:#f1f5f9;white-space:nowrap}.fpv-sw{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-2px;border:1px solid #fff}.fpv-pause{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);padding:16px 22px;border-radius:10px;background:#0f172ae0;color:#f8fafc;text-align:center;pointer-events:auto;max-width:420px}.fpv-pause b{font-size:16px}.fpv-pause button{font:inherit;padding:6px 14px;border-radius:6px;border:1px solid #64748b;background:#1e293b;color:#f8fafc;cursor:pointer}.fpv-pause button:hover{background:#334155}.fpv-pause .small{font-size:11px;color:#cbd5e1}.fpv-hud.locked .fpv-pause{display:none}.fpv-hud:not(.locked) .fpv-cross{display:none}body.fpv-on #view canvas{cursor:crosshair}.fpv-stats{position:absolute;left:16px;bottom:54px;display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-radius:8px;background:#0f172a9e;color:#f8fafc;min-width:220px}.fpv-stats>div{display:flex;align-items:center;gap:8px}.fpv-bar{flex:1;height:10px;border-radius:5px;background:#ffffff2e;overflow:hidden}.fpv-bar i{display:block;height:100%;width:100%;background:#22c55e;transition:width .15s}.fpv-fuel .fpv-bar i{background:#06b6d4;transition:none}.fpv-hud:not(.hover) .fpv-fuel{display:none}.fpv-hud:not(.mp) .fpv-hp{display:none}.fpv-hud.mp .fpv-solo{display:none}.fpv-hpn{min-width:26px;text-align:right}.fpv-feed{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.fpv-feed div{padding:4px 10px;border-radius:6px;background:#0f172a9e;color:#f8fafc;animation:fpv-in .2s}@keyframes fpv-in{0%{opacity:0;transform:translate(20px)}}.fpv-scores{position:absolute;left:50%;top:18%;transform:translate(-50%);padding:12px 18px;border-radius:10px;background:#0f172ad9;color:#f8fafc;display:none}.fpv-hud.scores .fpv-scores{display:block}.fpv-scores table{border-collapse:collapse}.fpv-scores th,.fpv-scores td{padding:3px 10px;text-align:left}.fpv-scores td:nth-child(n+3),.fpv-scores th:nth-child(n+3){text-align:right}.fpv-scores tr.me td{font-weight:700}.fpv-dead{position:absolute;left:50%;top:20%;transform:translate(-50%,-50%);padding:16px 24px;border-radius:10px;text-align:center;background:#7f1d1dcc;color:#fff;display:none}.fpv-dead b{font-size:20px}.fpv-hud.dead .fpv-dead{display:block}.fpv-hud.dead{background:radial-gradient(transparent 40%,#7f1d1d73)}.fpv-hud.flash:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;animation:fpv-flash .5s forwards;pointer-events:none}@keyframes fpv-flash{0%{opacity:.95}to{opacity:0}}.fpv-hud:not(.adm) .fpv-adm{display:none}.fpv-hud.hit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 120px #ef4444bf;animation:fpv-hit .45s forwards}@keyframes fpv-hit{to{opacity:0}}.game-dlg fieldset{display:flex;flex-direction:column;gap:8px}.game-dlg fieldset.gm-me{display:grid;grid-template-columns:1fr auto;align-items:center}.game-dlg input[name=name]{width:150px}.game-dlg input[name=addr]{width:170px}.game-dlg .gm-colors{display:flex;gap:5px}.game-dlg .gm-col{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 1px #0000004d}.game-dlg .gm-col.on{border-color:var(--text, #fff)}.game-dlg .gm-addr{display:flex;gap:6px}.game-dlg .gm-game{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0;color:var(--text);font-size:13px}.game-dlg .gm-err{color:#ef4444}.game-dlg .gm-err:empty{display:none}.game-dlg p{max-width:420px}.game-dlg .gm-lan input{width:auto}body.play{margin:0;height:100vh;overflow:hidden}.play-view{position:relative;width:100vw;height:100vh;background:#dfe5eb}.play-msg{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);z-index:6;padding:18px 26px;border-radius:10px;max-width:460px;background:#0f172ad9;color:#f8fafc;font:14px system-ui,sans-serif;text-align:center}.play-msg b{font-size:17px}.play-btns{display:flex;gap:8px;justify-content:center}.gs-panel{position:absolute;left:14px;bottom:14px;z-index:6;width:300px;padding:10px 12px;border-radius:10px;display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--panel, #1e1e1e) 94%,transparent);border:1px solid var(--line, #444);box-shadow:0 6px 24px #00000040;font-size:13px}body.fpv-on .gs-panel{display:none}.gs-head{display:flex;align-items:center;gap:8px}.gs-head .gs-stop{margin-left:auto}.gs-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gs-mode button.on{background:var(--accent, #3b82f6);color:#fff;border-color:transparent}.gs-relay code{-webkit-user-select:all;user-select:all;font-size:12px}.gs-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.gs-feed:empty{display:none}.gs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:180px;overflow:auto;font-size:12px}.gs-list:empty{display:none}.gs-p{display:flex;align-items:center;gap:6px}.gs-dot{width:8px;height:8px;border-radius:50%;flex:none;background:#22c55e}.gs-traag .gs-dot{background:#f59e0b}.gs-slecht .gs-dot,.gs-weg .gs-dot{background:#ef4444}.gs-weg{opacity:.6}.gs-pn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid var(--c);padding-left:5px}.gs-tag{font-size:10px;padding:0 5px;border-radius:8px;background:#94a3b840}.gs-adm{padding:0 4px;font-size:12px;line-height:16px;min-height:0;border-radius:6px;opacity:.45;background:transparent;border:1px solid transparent;cursor:pointer}.gs-adm:hover{opacity:.9;border-color:#94a3b880}.gs-adm.on{opacity:1;background:#22d3ee33;border-color:#22d3ee99}.gs-tag-adm{background:#22d3ee33}.gs-via{margin-left:auto}.gs-st{color:var(--muted, #94a3b8);min-width:64px;text-align:right}.gs-sharebox{display:flex;flex-direction:column;gap:6px}.gs-sharebox[hidden]{display:none}.gs-text{width:100%;box-sizing:border-box;resize:vertical;font:12px/1.4 ui-monospace,Consolas,monospace;padding:6px 8px;border-radius:6px}.gs-share[aria-expanded=true]{background:var(--accent, #3b82f6);color:#fff;border-color:transparent}.gs-feed div{color:var(--muted, #94a3b8)}.play-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:8px;background:#0f172ac7;color:#f8fafc;font:14px system-ui,sans-serif}.play-form{display:flex;flex-direction:column;gap:8px;text-align:left;min-width:300px}.play-form b{font-size:17px;text-align:center}.play-form label{display:flex;justify-content:space-between;align-items:center;gap:10px}.play-form input{width:180px;padding:5px 8px;border-radius:6px;border:1px solid #64748b;background:#0f172a;color:#f8fafc;font:inherit}.play-form .play-err{color:#fca5a5;margin:0;min-height:0}.play-form .play-err:empty{display:none}.play-msg button,.play-bar button{font:inherit;padding:6px 14px;border-radius:6px;border:1px solid #64748b;background:#1e293b;color:#f8fafc;cursor:pointer}.play-msg button.primary,.play-bar button.primary{background:#2563eb;border-color:#2563eb}.game-dlg .gm-check input{width:auto}.game-dlg .gm-netopts{display:flex;flex-direction:column;gap:6px}.game-dlg .gm-netopts input,.game-dlg .gm-viarelay input{width:200px}.game-dlg details label{display:flex;justify-content:space-between;margin:6px 0}.play-bar[hidden],.gs-panel [hidden]{display:none}.prefs-dlg.pf-big{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(940px,calc(100vw - 32px));height:min(700px,calc(100vh - 48px));max-height:none;overflow:hidden}.prefs-dlg.pf-big[open]{display:flex;flex-direction:column}.pf-big .pf-body{flex:1;display:flex;min-height:0}.pf-big .pf-nav{width:210px;flex:none;display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--accent) 3%,var(--panel));overflow:auto}.pf-big .pf-nav button{text-align:left;border:0;background:none;color:inherit;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.pf-big .pf-nav button span{display:inline-block;width:22px}.pf-big .pf-nav button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.pf-big .pf-nav button.on{background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.pf-big .pf-main{flex:1;overflow:auto;padding:8px 22px 16px}.pf-big .pf-sec fieldset{max-width:620px}.pf-big .pf-foot{margin:0;padding:10px 14px;border-top:1px solid var(--line)}.pf-big .pf-col{flex-direction:column;align-items:stretch}.pf-big .pf-presets button.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.pf-big .pf-check{margin:6px 0}.pf-kgroup{margin:12px 0 4px;max-width:680px}.pf-ktitle{font-weight:600;margin-bottom:4px}.pf-krow{display:grid;grid-template-columns:minmax(180px,1fr) auto 28px;gap:8px;align-items:center;padding:4px 6px;border-radius:6px}.pf-krow:nth-child(odd){background:color-mix(in srgb,var(--text) 3%,transparent)}.pf-krow.pf-clash{background:color-mix(in srgb,#f59e0b 12%,transparent)}.pf-klabel small{display:block;color:#d97706;font-size:11px}.pf-kchips{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.pf-chip{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg)}.pf-chip button{border:0;background:none;color:inherit;cursor:pointer;padding:2px 8px;font:12px/18px ui-monospace,Consolas,monospace}.pf-chip .pf-kdel{padding:2px 5px;color:var(--muted);border-left:1px solid var(--line);font-family:inherit}.pf-chip button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.pf-chip.pf-wait{padding:2px 8px;font-size:12px;border-color:var(--accent);color:var(--accent);animation:pf-blink 1s infinite alternate}@keyframes pf-blink{to{opacity:.55}}.pf-kadd,.pf-kreset{border:1px solid var(--line);background:none;color:inherit;border-radius:6px;cursor:pointer;padding:1px 7px}.pf-kreset:disabled{opacity:.3;cursor:default}.fr-more{display:block;margin-top:4px;color:var(--muted)}@media (max-width: 640px){.pf-big .pf-nav{width:52px}.pf-big .pf-nav button{font-size:0}.pf-big .pf-nav button span{font-size:16px}}.prefs-dlg fieldset>label.pf-check{flex-direction:row;align-items:center;gap:8px}
