:root{font:13px 'Segoe UI',Arial,sans-serif;color:#dde3e7;background:#253039;--border:#455058;--muted:#9caab5;--panel:#222c33}*{box-sizing:border-box}body{margin:0;display:grid;grid-template-columns:190px minmax(400px,1fr) 280px;grid-template-rows:58px calc(100vh - 58px);height:100vh;overflow:hidden}header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--border);background:#20292f}.brand{font-weight:600;letter-spacing:4px;white-space:nowrap}.brand>span{font-size:24px;vertical-align:-2px}.brand small{font-size:9px;letter-spacing:1px;color:var(--muted);margin-left:16px}button,input,select{font:inherit;color:inherit;background:#354048;border:1px solid #52606a;border-radius:3px;padding:7px 9px}button{cursor:pointer;text-align:left}button:hover{background:#48565f}button:disabled{opacity:.4;cursor:default}.primary,button.active{background:#e5eaed;color:#26343d;border-color:#e5eaed}nav{display:flex;gap:6px}nav button{font-size:12px}.left,.right{background:var(--panel);overflow:auto;padding:20px 14px}.left{border-right:1px solid var(--border);position:relative;display:flex;flex-direction:column;gap:6px}.right{border-left:1px solid var(--border);padding:20px 16px}.left h3,.right h3{font-size:10px;letter-spacing:1.7px;margin:4px 0 12px}.left button{width:100%;font-size:12px}.file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.left p{font-size:11px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.divider{border-top:1px solid var(--border);margin:18px 0 10px}.leftBottom{margin-top:auto;padding-top:25px;font-size:10px;letter-spacing:1px;line-height:2}.leftBottom small{letter-spacing:0;color:var(--muted)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9dad9e;margin-right:6px}details{border-top:1px solid var(--border);padding:14px 0}summary{cursor:pointer;font-size:11px;letter-spacing:.7px;font-weight:600;margin-bottom:12px}details:not([open]) summary{margin-bottom:0}details details{padding:10px 0}label{display:block;font-size:11px;color:var(--muted);margin:10px 0}label input:not([type=checkbox]),label select{display:block;width:100%;margin-top:5px;color:#eff3f5}.check{display:flex;align-items:center;gap:7px;line-height:1.5;color:#d8e0e6}.check input{accent-color:#b9c9d3}.muted{font-size:10px;line-height:1.65;color:var(--muted)}.readout{padding:12px 9px;background:#333f47;border:1px solid #56636b;border-radius:3px;font-weight:600;font-size:14px}.row{display:flex;gap:8px}.row label{flex:1;min-width:0}.factors{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.factors button{text-align:center;font-size:11px;padding:6px}.wide{width:100%;text-align:center}main{position:relative;display:flex;flex-direction:column;min-width:0}.canvasBar{height:48px;flex-shrink:0;padding:0 18px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px}.canvasBar>div{display:flex;align-items:center;gap:7px}.canvasBar button{padding:4px 8px;font-size:11px}.canvasBar span#zoomLabel{width:42px;text-align:center;letter-spacing:0}#viewport{flex:1;overflow:auto;position:relative;display:flex;align-items:flex-start;justify-content:flex-start;padding:30px;cursor:grab}#paper{margin:auto;flex-shrink:0;box-shadow:0 12px 42px #0006;display:none;background:#fff}#paper svg{display:block;width:100%;height:auto}#paper.model{box-shadow:none}#welcome{margin:auto;text-align:center;line-height:1.8;color:#acbbc5}#welcome h1{font-size:24px;font-weight:400;letter-spacing:1px;color:#e5ebee;margin:15px}#welcome .dropIcon{font-size:60px;color:#d3dde3}#welcome p{font-size:13px}#welcome .muted{font-size:11px}footer{display:flex;justify-content:space-between;gap:15px;padding:10px 16px;font-size:11px;border-top:1px solid var(--border);min-height:38px;line-height:1.4}#sizeBadge{white-space:nowrap}#status.error{color:#ffd19a}#busy{position:absolute;inset:48px 0 38px;background:#222c33dc;display:flex;gap:20px;align-items:center;justify-content:center;z-index:5}#busy[hidden]{display:none}body.dragover #viewport{outline:2px dashed #d6e1e8;outline-offset:-16px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #dbe9f2;outline-offset:2px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#52606a;border-radius:4px}@media(max-width:1200px){.brand small{display:none}body{grid-template-columns:165px minmax(400px,1fr) 255px}}
.left>*{flex-shrink:0}
