:root{color-scheme:dark;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;--bg: #14110d;--panel: #1c1813;--line: rgba(255, 255, 255, .12);--accent: #ffd479;--green: #8ce99a}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;overflow:hidden}body{background:var(--bg);color:#eee;font-size:13px}.layout{display:flex;height:100vh;width:100vw}.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.viewport-hint{position:absolute;top:10px;left:12px;z-index:5;pointer-events:none;font-size:11px;color:#9a8f80;background:#14110d99;border:1px solid var(--line);border-radius:6px;padding:4px 8px;-webkit-user-select:none;user-select:none}#gpu-canvas{flex:1;min-height:0;display:block;width:100%;background:#0f0d0a}.bottom{height:42%;display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--line)}.tabs{display:flex;background:#16130f;flex-shrink:0}.tabs button{border:none;border-right:1px solid var(--line);border-radius:0;padding:6px 18px;font-size:12px;background:transparent;color:#9a8f80}.tabs button.on{background:#181511;color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.floorplan{flex:1;min-height:0;width:100%;display:block;background:#181511;cursor:crosshair}.sidebar{width:340px;flex-shrink:0;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);padding:12px 14px 40px}.sidebar section{padding:12px 0;border-bottom:1px solid var(--line)}.sidebar h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9a8f80;margin:0 0 8px}.brand{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;padding-bottom:8px}.brand .tag{font-size:10px;background:var(--accent);color:#1c1813;border-radius:5px;padding:1px 6px;font-weight:700}.brand .fps{margin-left:auto;color:var(--green);font-variant-numeric:tabular-nums;font-size:12px}.row{display:flex;gap:6px;margin:6px 0}.seg{display:flex;gap:0;margin:6px 0}.seg button{flex:1;border-radius:0}.seg button:first-child{border-radius:7px 0 0 7px}.seg button:last-child{border-radius:0 7px 7px 0}.seg button.on{background:var(--accent);color:#1c1813;border-color:var(--accent);font-weight:600}button,select,input{font:inherit;color:#eee;background:#ffffff12;border:1px solid var(--line);border-radius:7px;padding:6px 9px}button{cursor:pointer}button:hover{background:#ffffff26}button.danger{color:#ff8787;border-color:#ff878766;width:100%;margin-top:8px}select,input,input[type=number]{width:100%}.muted{color:#9a8f80;font-size:11px;margin-top:4px}.err{color:#ff8787;padding:8px;border:1px solid rgba(255,135,135,.3);border-radius:7px;margin:8px 0}.list{list-style:none;margin:8px 0 0;padding:0;max-height:180px;overflow-y:auto}.list li{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:6px;cursor:pointer}.list li span:first-child{flex:1}.list li.sel{background:#ffd47924;outline:1px solid var(--accent)}.list li:hover{background:#ffffff0f}.list .price{color:var(--green);font-variant-numeric:tabular-nums}label{display:block;margin:8px 0;font-size:12px;color:#cdc3b4}label select,label input{margin-top:4px}.dims{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.dims label{margin:6px 0 0}.price-table{width:100%;border-collapse:collapse;margin:10px 0;font-variant-numeric:tabular-nums}.price-table td{padding:3px 0;color:#cdc3b4}.price-table td:last-child{text-align:right}.price-table tr.sum td{border-top:1px solid var(--line);padding-top:6px;font-weight:600;color:#fff}.sched{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:8px;margin:6px 0}.sched select{margin-top:0}.total{font-size:16px}.total strong{color:var(--accent);font-size:20px}.total-bar{position:sticky;top:0;z-index:4;margin:0 -14px 10px;padding:10px 14px 12px;background:var(--panel);border-bottom:1px solid var(--accent);box-shadow:0 8px 18px #00000073}.total-bar .muted{margin-top:2px}.parts{margin:10px 0}.parts summary{cursor:pointer;color:#9a8f80;font-size:12px;-webkit-user-select:none;user-select:none}.parts-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:12px}.parts-table td{padding:2px 0;color:#cdc3b4;border-bottom:1px solid rgba(255,255,255,.05)}.parts-table td.num{text-align:right;font-variant-numeric:tabular-nums;color:#9a8f80}
