:root{--bg:#16181b;--panel:#1e2125;--panel-2:#262a2f;--line:#31363d;--text:#dde1e6;--dim:#8b929b;--accent:#4da3ff;--warn:#e6a23c;--err:#f0605a;--ok:#4cc38a;color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:12.5px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}.app{grid-template-rows:44px 1fr;grid-template-columns:268px 1fr 308px;height:100%;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);grid-column:1/-1;align-items:center;gap:16px;padding:0 14px;display:flex}.brand{letter-spacing:.02em;white-space:nowrap;font-weight:650}.hostname{color:var(--dim);margin-left:10px;font-weight:400}.status{color:var(--dim);text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.status .err,.warn{color:var(--warn)}.status .err{color:var(--err)}.actions{gap:8px;display:flex}aside{background:var(--panel);min-height:0;overflow-y:auto}aside.left{border-right:1px solid var(--line)}aside.right{border-left:1px solid var(--line)}.center{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.viewport{flex:1;min-height:0;position:relative}.viewport canvas{display:block}.viewbar{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1e2125e0;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex;position:absolute;top:10px;left:10px}.viewbar .explode{width:120px}.mini{color:var(--dim);align-items:center;gap:4px;display:flex}.toolhint{color:var(--warn)}button,select,input[type=number],input[type=text]{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;min-height:26px;padding:4px 9px}button{cursor:pointer}button:hover:not(:disabled){background:#2d3238;border-color:#4a5159}button:disabled{opacity:.45;cursor:default}button.primary{color:#fff;background:#2a6fc0;border-color:#3b82d6;font-weight:600}button.primary:hover:not(:disabled){background:#3380d8}button.active{border-color:var(--accent);color:var(--accent)}button.icon{min-height:22px;color:var(--dim);background:0 0;border-color:#0000;padding:0 6px}button.link{color:var(--warn);background:0 0;border:none;min-height:0;padding:0 4px}input[type=number]{width:74px}input[type=color]{border:1px solid var(--line);background:0 0;border-radius:4px;width:34px;height:24px;padding:0}input[type=range]{accent-color:var(--accent);min-width:0}.section{border-bottom:1px solid var(--line)}.section-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:9px 12px;display:flex}.section-head h3{letter-spacing:.07em;text-transform:uppercase;color:#b4bbc4;flex:1;margin:0;font-size:11px;font-weight:650}.chev{color:var(--dim);transition:transform .12s;display:inline-block}.chev.open{transform:rotate(90deg)}.section-body{flex-direction:column;gap:7px;padding:2px 12px 12px;display:flex}.count{color:var(--dim);font-size:11px}.row{align-items:center;gap:8px;min-height:26px;display:flex}.row-label{color:#aab1ba;flex:0 0 104px}.row select,.row input[type=text]{flex:1;min-width:0}.row.slider input{flex:1}.row-value{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 52px}.row-value small{color:var(--dim)}.row.toggle input{margin-left:auto}.row.filament input[type=text]{flex:1}.hint{color:var(--dim);margin:0;line-height:1.45}.hint.pad{padding:14px}.meta{color:var(--dim);margin:2px 0 0;line-height:1.5}.divider{background:var(--line);height:1px;margin:4px 0}.drop{border:1px dashed #414851;border-radius:7px;align-items:center;gap:10px;padding:10px;display:flex}.dims{align-items:flex-end;gap:6px;display:flex}.dims label{color:var(--dim);flex-direction:column;flex:1;gap:2px;font-size:10.5px;display:flex}.dims input{width:100%}.btn-row{flex-wrap:wrap;gap:6px;display:flex}.btn-row button{white-space:nowrap;flex:1}.list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.list li{border-radius:5px;align-items:center;gap:8px;min-height:26px;padding:3px 6px;display:flex}.list li small,.list li.empty{color:var(--dim)}.list.parts li{cursor:pointer}.list.parts li:hover{background:var(--panel-2)}.list li.selected{background:#24405e}.list li.dim{opacity:.45}.grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.swatch{border:1px solid #ffffff40;border-radius:3px;flex:none;width:12px;height:12px}.family-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.family{text-align:left}.family.active{border-color:var(--accent);background:#24405e}.check-grid{grid-template-columns:1fr 1fr;gap:4px 8px;display:grid}.check-grid label{color:#aab1ba;align-items:center;gap:6px;display:flex}.chips{background:var(--panel-2);border-radius:6px;gap:2px;padding:2px;display:flex}.chip{min-height:24px;color:var(--dim);background:0 0;border:none}.chip.active{color:var(--text);background:#3a4048}.tray{background:var(--panel);border-top:1px solid var(--line);flex-direction:column;flex:none;height:196px;min-height:0;display:flex}.tray-tabs{justify-content:space-between;align-items:center;padding:7px 10px;display:flex}.tray-body{flex:1;min-height:0;overflow:auto}.thumbs{gap:10px;height:100%;padding:0 10px 10px;display:flex}.thumb{background:#24272c;flex-direction:column;flex:none;width:190px;padding:0;display:flex;overflow:hidden}.thumb img,.thumb-empty{object-fit:cover;width:100%;height:112px;display:block}.thumb span{color:var(--dim);text-align:left;padding:4px 8px;font-size:11px}.thumb.bad{border-color:var(--err)}.thumb:hover{border-color:var(--accent)!important}.findings{flex-direction:column;gap:4px;margin:0;padding:0 12px 10px;list-style:none;display:flex}.findings li{border-left:3px solid var(--line);padding:3px 0 3px 10px;line-height:1.4}.findings li b{margin-right:6px}.findings .ok{border-color:var(--ok)}.findings .ok b{color:var(--ok)}.findings .warn{border-color:var(--warn)}.findings .warn b{color:var(--warn)}.findings .error{border-color:var(--err)}.findings .error b{color:var(--err)}.findings .info b{color:var(--dim)}.kit{grid-template-columns:minmax(280px,1fr) minmax(280px,1.3fr);gap:20px;padding:0 12px 10px;display:grid}.kit table{border-collapse:collapse;align-self:start}.kit td{vertical-align:top;padding:3px 10px 3px 0}.dimtext{color:var(--dim)}.kit ol{margin:0;padding-left:18px;line-height:1.5}.toast{border:1px solid var(--err);cursor:pointer;background:#5a2320;border-radius:7px;max-width:70%;padding:8px 14px;position:absolute;top:56px;left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#363b42;border-radius:5px}
