@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{--bg:#fff;--canvas:#fafafa;--ink:#111;--ink-2:#555;--ink-3:#8a8a8a;--line:#e2e2e2;--line-2:#cfcfcf;--fill:#f2f2f2;--accent:#d9915a;--danger:#c0392b;--radius:4px;--mono:ui-monospace, "SF Mono", Menlo, monospace;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1, "cv11" 1;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border-radius:var(--radius);background:0 0;border:1px solid #0000;padding:6px 10px}button:hover{background:var(--fill)}button:disabled{opacity:.35;cursor:default;background:0 0}button.primary{background:var(--ink);color:#fff;border-color:var(--ink)}button.primary:hover{background:#333}button.outline{border-color:var(--line-2)}button.active{background:var(--ink);color:#fff}button.icon{place-items:center;width:30px;height:30px;padding:0;display:inline-grid}input[type=text],input[type=number]{border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;width:100%;padding:6px 8px}input:focus{border-color:var(--ink);outline:none}input[type=number]{font-family:var(--mono);font-size:12px}kbd{font-family:var(--mono);border:1px solid var(--line-2);background:#fff;border-bottom-width:2px;border-radius:3px;padding:0 5px;font-size:11px}.muted{color:var(--ink-3)}.mono{font-family:var(--mono)}.row{align-items:center;gap:8px;display:flex}.grow{flex:1}hr{border:0;border-top:1px solid var(--line);margin:12px 0}.home{height:100%;overflow:auto}.home-inner{max-width:960px;margin:0 auto;padding:72px 32px 96px}.brand{align-items:baseline;gap:12px;margin-bottom:48px;display:flex}.brand h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.brand span{color:var(--ink-3)}.home h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:0 0 16px;font-size:13px;font-weight:500}.create{border:1px solid var(--line-2);border-radius:6px;gap:20px;margin-bottom:48px;padding:24px;display:grid}.create .name{max-width:420px}.templates{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.template{text-align:left;border:1px solid var(--line-2);background:#fff;border-radius:6px;align-content:start;gap:8px;padding:14px;display:grid}.template:hover{border-color:var(--ink);background:#fff}.template.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.template strong{font-weight:500}.template p{color:var(--ink-2);margin:0;line-height:1.4}.template svg{width:100%;height:72px;display:block}.spaces{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.space-card{text-align:left;border:1px solid var(--line-2);background:#fff;border-radius:6px;padding:0;display:grid;overflow:hidden}.space-card:hover{border-color:var(--ink);background:#fff}.space-card .thumb{background:var(--canvas);border-bottom:1px solid var(--line);place-items:center;height:150px;display:grid}.space-card .thumb svg{width:100%;height:100%}.space-card .meta{justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.space-card .meta strong{font-weight:500;display:block}.space-card .meta small{color:var(--ink-3)}.space-card .del{opacity:0;color:var(--ink-3)}.space-card:hover .del{opacity:1}.empty{border:1px dashed var(--line-2);text-align:center;color:var(--ink-3);border-radius:6px;padding:40px}.editor{grid-template:"top top top"48px"left center right"1fr/264px 1fr 264px;height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);background:#fff;grid-area:top;align-items:center;gap:8px;padding:0 12px;display:flex}.topbar .name-input{background:0 0;border:1px solid #0000;width:220px;padding:5px 8px;font-weight:500}.topbar .name-input:hover{border-color:var(--line-2)}.topbar .name-input:focus{border-color:var(--ink);background:#fff}.seg{border:1px solid var(--line-2);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg button{border:0;border-radius:0;padding:5px 12px}.seg button+button{border-left:1px solid var(--line-2)}.seg button.active{background:var(--ink);color:#fff}.floors{align-items:center;gap:2px;display:inline-flex}.floors button{color:var(--ink-2);padding:5px 10px}.floors button.active{color:var(--ink);background:var(--fill)}.save-state{color:var(--ink-3);text-align:right;min-width:48px;font-size:12px}.library{border-right:1px solid var(--line);background:#fff;grid-area:left;grid-template-rows:auto auto 1fr;min-height:0;display:grid}.library .search{padding:10px 12px 0}.cats{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:10px 12px;display:flex}.cats button{color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:12px}.cats button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.items{grid-template-columns:1fr 1fr;align-content:start;gap:8px;padding:10px;display:grid;overflow:auto}.item-card{border:1px solid var(--line);border-radius:var(--radius);cursor:grab;text-align:center;background:#fff;justify-items:center;gap:4px;padding:8px 8px 6px;display:grid}.item-card:hover{border-color:var(--ink);background:#fff}.item-card.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.item-card .label{font-size:12px;line-height:1.2}.item-card .size{color:var(--ink-3);font-size:10px;font-family:var(--mono)}.library-locked{color:var(--ink-3);text-align:center;padding:28px 16px;line-height:1.5}.center{background:var(--canvas);grid-area:center;min-width:0;min-height:0;position:relative;overflow:hidden}.center canvas,.center svg.plan{touch-action:none;width:100%;height:100%;display:block}.tools{border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;gap:4px;padding:3px;display:flex;position:absolute;top:12px;left:12px}.tools button{padding:5px 10px}.hint{border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;pointer-events:none;background:#fff;border-radius:999px;align-items:center;gap:10px;padding:6px 14px;font-size:12px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;pointer-events:none;border-radius:999px;padding:6px 14px;font-size:12px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.zoom{border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;gap:4px;padding:3px;display:flex;position:absolute;bottom:12px;right:12px}.zoom button{font-family:var(--mono);padding:4px 8px;font-size:12px}.props{border-left:1px solid var(--line);background:#fff;grid-area:right;align-content:start;gap:14px;min-width:0;padding:14px;display:grid;overflow:hidden auto}.props h3{margin:0;font-size:13px;font-weight:500}.props .sub{color:var(--ink-3);font-size:12px}.field{grid-template-columns:72px 1fr;align-items:center;gap:8px;display:grid}.field label{color:var(--ink-2);font-size:12px}.field>:last-child{min-width:0}.field .unit{position:relative}.field .unit span{color:var(--ink-3);pointer-events:none;font-size:11px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.field .unit input{padding-right:24px}.two{grid-template-columns:1fr 1fr;gap:6px;display:grid}.two .field{grid-template-columns:16px 1fr}.props .danger{color:var(--danger);border-color:var(--line-2)}.props .danger:hover{background:#fdf2f1}.props .preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);place-items:center;padding:10px;display:grid}.props .empty-props{color:var(--ink-3);line-height:1.5}.toggle{justify-content:space-between;align-items:center;display:flex}.switch{border:1px solid var(--line-2);background:#fff;border-radius:999px;width:32px;height:18px;padding:0;position:relative}.switch:after{content:"";background:var(--ink-3);border-radius:50%;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px}.switch.on{background:var(--ink);border-color:var(--ink)}.switch.on:after{background:#fff;left:16px}.swatches{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.swatch{border:1px solid var(--line-2);border-radius:50%;flex:none;width:18px;height:18px;padding:0}.swatch:hover{transform:scale(1.12)}.swatch.on{box-shadow:0 0 0 1.5px var(--ink);border-color:#fff}.shortcuts{color:var(--ink-2);gap:6px;font-size:12px;display:grid}.shortcuts div{justify-content:space-between;gap:8px;display:flex}
