:root{--paper:#f4f2ec;--ink:#1d2630;--ink-soft:#5a6573;--panel:#fff;--panel-edge:#e3e1d8;--orange:#e0641f;--orange-d:#c4540f;--steel:#3c6e9c;--shadow:0 1px 2px rgba(20,30,40,.08),0 6px 18px rgba(20,30,40,.06)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;display:flex;flex-direction:column;height:100vh;overflow:hidden}header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--panel-edge);box-shadow:var(--shadow);z-index:5}.brand{display:flex;flex-direction:column;line-height:1.05}.brand b{font-size:15px}.brand span{font-size:11px;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase}.field{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.field input,.field select{font:inherit;font-size:13px;color:var(--ink);width:60px;padding:5px 7px;border:1px solid var(--panel-edge);border-radius:7px;background:#fbfaf7}.field select{width:auto}.spacer{flex:1}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--panel-edge);background:#fbfaf7;color:var(--ink);padding:7px 12px;transition:.12s}button:hover{border-color:var(--ink-soft)}button.ghost{background:transparent}.danger{color:#b23b3b}main{flex:1;display:flex;min-height:0}aside{width:228px;flex:none;background:var(--panel);border-right:1px solid var(--panel-edge);display:flex;flex-direction:column;min-height:0}.side-h{padding:12px 14px 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.palette{padding:4px 12px 12px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}.chip{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:9px;border-radius:9px;border:1px solid var(--panel-edge);background:#fbfaf7;line-height:1.1;cursor:pointer}.chip:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.chip .sw{width:100%;height:6px;border-radius:3px;margin-bottom:2px}.chip b{font-size:12px;font-weight:600}.chip small{font-size:10.5px;color:var(--ink-soft)}.props{margin-top:auto;border-top:1px solid var(--panel-edge);padding:12px 14px;background:#fbfaf7}.props.hidden{display:none}.props h4{margin:0 0 8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.prow{display:flex;align-items:center;gap:8px;margin-bottom:7px}.prow label{width:46px;font-size:12px;color:var(--ink-soft)}.prow input{flex:1;padding:5px 7px;border:1px solid var(--panel-edge);border-radius:6px;background:#fff;font:inherit;font-size:13px}.unit{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--ink-soft)}.pbtns{display:flex;gap:6px;margin-top:8px}.pbtns button{flex:1;padding:6px}.stage{flex:1;position:relative;min-width:0;overflow:hidden}#cv{display:block;width:100%;height:100%}.overlay{position:absolute}.views{left:14px;top:12px;display:flex;gap:6px}.legend{left:14px;bottom:12px;background:#ffffffe6;border:1px solid var(--panel-edge);border-radius:8px;padding:8px 10px;font-size:11px;color:var(--ink-soft);max-width:240px;line-height:1.5;pointer-events:none}.hint{right:14px;bottom:12px;background:#ffffffeb;border:1px solid var(--panel-edge);border-radius:8px;padding:8px 11px;font-size:11.5px;color:var(--ink-soft);line-height:1.55;max-width:250px;pointer-events:none}.hint b{color:var(--ink)}.toast{left:50%;bottom:18px;transform:translate(-50%);background:var(--ink);color:#fff;padding:8px 14px;border-radius:20px;font-size:12.5px;opacity:0;transition:.25s;pointer-events:none}.toast.show{opacity:.95}@media (max-width:760px){aside{width:152px}.palette{grid-template-columns:1fr}.brand span{display:none}}
