:root{--paper: #faf7f2;--ink: #1c1917;--soft: #78716c;--line: #e7e0d8;--accent: #c2410c;--accent-dark: #9a3412;--white: #fff;--display: Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color:var(--ink);background:var(--paper);font-family:var(--sans)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--paper);color:var(--ink)}body{overflow:hidden}button,input{font:inherit;color:inherit}#app{height:100%;display:flex;flex-direction:column;min-height:0}.cluster{display:flex;align-items:center;gap:2px}.top,.status,.cmd{display:flex;align-items:center;gap:8px;background:var(--paper)}.top{height:48px;padding:0 10px;border-bottom:1px solid var(--line);flex:none}.brand{display:flex;align-items:center;gap:8px;min-width:0;text-decoration:none;color:inherit}.brand b{font-family:var(--display);font-size:16px;font-weight:600}.brand span{color:var(--soft);font-size:12px;white-space:nowrap}.mark{width:28px;height:28px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none}.spacer{flex:1}.workspace{flex:1;display:flex;min-height:0;min-width:0;position:relative}.tools,.layers{background:var(--white);display:flex;flex-direction:column;gap:2px;flex:none}.tools{width:52px;padding:6px;border-right:1px solid var(--line);overflow:auto}.tools button,.icon-btn,.layer-btn{width:40px;height:40px;border:0;border-radius:8px;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--ink)}.tools button[aria-pressed=true],.icon-btn[aria-pressed=true]{background:var(--accent);color:#fff}.tools button:hover,.icon-btn:hover,.layer-btn:hover{background:#f3ece4}.tools button[aria-pressed=true]:hover,.icon-btn[aria-pressed=true]:hover{background:var(--accent-dark)}.stage{flex:1;min-width:0;position:relative;background:var(--white)}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}canvas.panning{cursor:grab}.layers{width:232px;border-left:1px solid var(--line);background:var(--paper);padding:10px;gap:8px;overflow:auto}.layers h2{margin:0;font-family:var(--display);font-size:16px;font-weight:600;display:flex;align-items:center;gap:6px}.layer-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:6px;align-items:center;padding:4px;border-radius:8px}.layer-row.current{background:#fff;outline:1px solid var(--line)}.swatch{width:12px;height:12px;border-radius:3px;border:1px solid rgb(28 25 23 / 25%)}.layer-row button.name{border:0;background:transparent;text-align:left;padding:0;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-btn{width:28px;height:28px}.layer-add{display:flex;gap:6px}.layer-add input,.cmd input{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;min-width:0}.layer-add input{flex:1;width:0}.layer-add button,.text-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;cursor:pointer}.bottom{border-top:1px solid var(--line);background:var(--paper);flex:none}.cmd{padding:6px 8px 0}.cmd input{flex:1;font-family:var(--mono);font-size:13px}.prompt{font-family:var(--mono);font-size:12px;color:var(--soft);white-space:nowrap;flex:none}.status{min-height:28px;padding:2px 10px 6px;font-size:12px;color:var(--soft);gap:14px;flex-wrap:wrap}.status b{color:var(--ink);font-weight:600}.err{color:var(--accent-dark)}.fine{margin:0;color:var(--soft);font-size:11px;line-height:1.4}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.boot-shell{min-height:100%;display:grid;place-items:center;padding:32px 16px;background:var(--paper);color:var(--ink)}.boot-card{max-width:420px}.boot-badge{width:48px;height:48px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;margin-bottom:16px}.boot-card h1{font-family:var(--display);font-size:32px;line-height:1.1;margin:0 0 8px}.boot-tagline,.boot-loading{color:var(--soft);line-height:1.5}@media(max-width:860px){.brand span{display:none}.layers{display:none;position:absolute;z-index:4;top:0;right:0;bottom:0;width:min(280px,86vw);box-shadow:-8px 0 24px #1c191714}.layers.open{display:flex}}
