:root{--bg:#1e2127;--bg-panel:#262a31;--bg-input:#31363f;--border:#3a404a;--fg:#d6dae1;--fg-dim:#8b919c;--accent:#4a90d9;--error:#e06c75;--fs-label:11px;--fs-sm:12px;--fs-base:13px}*{box-sizing:border-box}[hidden]{display:none!important}button,input,select{font:inherit}html,body{background:var(--bg);height:100%;color:var(--fg);font:var(--fs-base)/1.5 -apple-system, "Segoe UI", "Hiragino Sans", "Yu Gothic UI", sans-serif;margin:0;overflow:hidden}body{display:flex}#sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;flex:none;width:300px;display:flex;overflow-y:auto}#app-header{border-bottom:1px solid var(--border);align-items:center;gap:9px;padding:12px 14px;display:flex}#app-icon{flex:none;width:26px;height:26px;display:block}#app-name{letter-spacing:.01em;color:var(--fg);font-size:15px;font-weight:600}#viewer{flex:1;min-width:0;position:relative}#viewer canvas{display:block}#viewer-footer{font-size:var(--fs-sm);color:#454b54;align-items:center;gap:10px;display:flex;position:absolute;bottom:8px;right:10px}#viewer-footer #version{-webkit-user-select:none;user-select:none}#viewer-footer a{color:#454b54;text-decoration:none}#viewer-footer a:hover{color:var(--fg-dim);text-decoration:underline}.pane{border-bottom:1px solid var(--border);padding:12px 14px}.pane-label{font-size:var(--fs-label);letter-spacing:.04em;color:var(--fg-dim);margin-bottom:6px;display:block}.pane-toggle{cursor:pointer;align-items:center;gap:6px;margin-bottom:0;display:flex}.pane-toggle input{accent-color:var(--accent);margin:0}#params-form:not([hidden]){margin-top:10px}#model-select{background:var(--bg-input);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:5px 6px}#model-desc{font-size:var(--fs-sm);color:var(--fg-dim);margin:8px 0 0}.param{margin-bottom:10px}.param-head{align-items:center;gap:6px;display:flex}.param-head label{flex:1}.param-head .unit{color:var(--fg-dim);font-size:var(--fs-sm)}.param input[type=number]{background:var(--bg-input);width:72px;color:var(--fg);border:1px solid var(--border);text-align:right;border-radius:4px;padding:3px 5px}.param input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 0}.param-bool{align-items:center;gap:8px;display:flex}.param-bool input{accent-color:var(--accent)}#parts-list{margin:0;padding:0;list-style:none}#parts-list li{align-items:center;gap:8px;padding:3px 0;display:flex}#parts-list input{accent-color:var(--accent)}.swatch{border:1px solid var(--border);border-radius:3px;flex:none;width:12px;height:12px}.tri-count{color:var(--fg-dim);font-size:var(--fs-sm);margin-left:auto}.btn-row{gap:8px;display:flex}.btn-row+.btn-row{margin-top:8px}.btn-row button{background:var(--bg-input);color:var(--fg);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex:1;padding:6px 0}.btn-row button:hover{border-color:var(--accent)}.btn-row button:disabled{opacity:.5;cursor:default}#reset-row{margin-top:10px}#status{font-size:var(--fs-sm);color:var(--fg-dim);border-top:1px solid var(--border);word-break:break-all;min-height:34px;margin-top:auto;padding:8px 14px}#status.error{color:var(--error)}
