:root{--paper:#edf0ee;--sheet:#f8faf8;--ink:#1c272b;--muted:#5b6a6e;--line:#c9d1ce;--wall:#2a363b;--floor:#fff;--accent:#23627f;--accent-ink:#fff;--ok:#2c7a4b;--warn:#a8701a;--bad:#b8382c;--walk:#5fa7c7;--c-bed:#7f9cc4;--c-wardrobe:#c49a6c;--c-desk:#86b083;--c-dresser:#cf8f8f;--c-extra:#a99fd0;--c-piano:#8792a0;--label:#16212a;--f-display:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--f-body:"Barlow", "Segoe UI", system-ui, sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#12191b;--sheet:#182124;--ink:#e2e9e6;--muted:#93a3a6;--line:#2f3c40;--wall:#8fa2a8;--floor:#1e282b;--accent:#6bb3d4;--accent-ink:#0d1517;--ok:#5cc285;--warn:#e0a64a;--bad:#ef7466;--walk:#4e9cc0;--c-bed:#5f7fa9;--c-wardrobe:#a57d52;--c-desk:#649363;--c-dresser:#ad6c6c;--c-extra:#847ab0;--c-piano:#5f6a78;--label:#f2f6f5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#12191b;--sheet:#182124;--ink:#e2e9e6;--muted:#93a3a6;--line:#2f3c40;--wall:#8fa2a8;--floor:#1e282b;--accent:#6bb3d4;--accent-ink:#0d1517;--ok:#5cc285;--warn:#e0a64a;--bad:#ef7466;--walk:#4e9cc0;--c-bed:#5f7fa9;--c-wardrobe:#a57d52;--c-desk:#649363;--c-dresser:#ad6c6c;--c-extra:#847ab0;--c-piano:#5f6a78;--label:#f2f6f5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink)}body{font-family:var(--f-body);padding-block:20px 40px;padding-inline:16px;font-size:15px;line-height:1.45}.wrap{gap:16px;max-width:1320px;margin:0 auto;display:grid}header.top{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px 24px;display:flex}h1{font-family:var(--f-display);letter-spacing:.01em;text-wrap:balance;margin:0;font-size:2.1rem;font-weight:700;line-height:1}.meta{font-family:var(--f-mono);color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:.78rem;display:flex}.tabs{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tab{font-family:var(--f-display);letter-spacing:.02em;border:1px solid var(--line);background:var(--sheet);color:var(--ink);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:6px 12px;font-size:1.02rem;font-weight:600;display:inline-flex}.tab[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tab .dot{background:var(--ok);border-radius:50%;width:8px;height:8px}.tab .dot.bad{background:var(--bad)}.tab .x{font-family:var(--f-body);opacity:.6;padding-left:2px}.tab .x:hover{opacity:1}.tab .x.confirm{opacity:1;color:var(--bad);font-size:.85rem;font-weight:600}.tab.editing{cursor:text;border-color:var(--accent)}.tab.editing input{font:inherit;color:var(--ink);background:var(--floor);border:1px solid var(--line);border-radius:3px;width:16em;max-width:60vw;padding:1px 6px}.tools{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}button{font:inherit;cursor:pointer}.btn{border:1px solid var(--line);background:var(--sheet);color:var(--ink);border-radius:4px;padding:6px 12px;font-size:.9rem}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;display:grid}@media (width<=960px){.main{grid-template-columns:minmax(0,1fr)}}.sheet{background:var(--sheet);border:1px solid var(--line);border-radius:6px}.plan{padding:8px;position:relative}.plan svg{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.plan-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 18px;padding:6px 10px 4px;font-size:.82rem;display:flex}.legend i{vertical-align:-2px;border-radius:2px;width:12px;height:12px;margin-right:5px;display:inline-block}.plan-foot label{cursor:pointer;color:var(--ink);align-items:center;gap:6px;display:inline-flex}.hint{margin-left:auto;font-size:.78rem}aside{gap:12px;min-width:0;display:grid}.card{gap:10px;min-width:0;padding:14px 16px;display:grid}.card h2{font-family:var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:1.05rem;font-weight:600}.verdict{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chip{font-family:var(--f-display);letter-spacing:.03em;color:#fff;background:var(--ok);border-radius:3px;padding:3px 10px;font-size:1.05rem;font-weight:600}.chip.bad{background:var(--bad)}:root[data-theme=dark] .chip,.chip{color:var(--paper)}.verdict .name{font-family:var(--f-display);font-size:1.25rem;font-weight:600}.stats{grid-template-columns:1fr 1fr;gap:8px 14px;margin:0;display:grid}.stats div{gap:0;display:grid}.stats dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.74rem}.stats dd{font-family:var(--f-mono);font-variant-numeric:tabular-nums;margin:0;font-size:.98rem}ul.issues{gap:6px;margin:0;padding:0;list-style:none;display:grid}ul.issues li{grid-template-columns:10px 1fr;align-items:baseline;gap:8px;font-size:.9rem;display:grid}ul.issues li:before{content:"";background:var(--muted);border-radius:50%;width:8px;height:8px;transform:translateY(-1px)}ul.issues li.error:before{background:var(--bad)}ul.issues li.warn:before{background:var(--warn)}.procon{gap:8px;font-size:.9rem;display:grid}.procon h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.78rem;font-weight:600}.procon ul{gap:3px;margin:2px 0 0;padding-left:18px;display:grid}.procon .pro li::marker{content:"+  ";color:var(--ok);font-weight:700}.procon .con li::marker{content:"–  ";color:var(--bad);font-weight:700}.editor{grid-template-columns:1fr 1fr;gap:8px 10px;display:grid}.editor .full{grid-column:1/-1}.editor label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);gap:2px;font-size:.74rem;display:grid}.editor input,.editor select{font:inherit;text-transform:none;letter-spacing:0;color:var(--ink);background:var(--floor);border:1px solid var(--line);border-radius:4px;width:100%;min-width:0;padding:5px 8px;font-size:.95rem}.editor input[type=number]{font-family:var(--f-mono)}.row{flex-wrap:wrap;gap:6px;display:flex}.muted{color:var(--muted);margin:0;font-size:.86rem}.results{gap:8px;display:grid}.res{border:1px solid var(--line);background:var(--floor);border-radius:4px;grid-template-columns:96px 1fr;align-items:center;gap:10px;padding:6px;display:grid}.res svg{width:96px;height:auto;display:block}.res .t{gap:4px;min-width:0;font-size:.85rem;display:grid}.res .t b{font-family:var(--f-display);font-size:1rem;font-weight:600}.res .t span{font-family:var(--f-mono);color:var(--muted);font-size:.74rem}textarea.copy{width:100%;min-height:120px;font-family:var(--f-mono);background:var(--floor);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:8px;font-size:.74rem}.s-wall{fill:var(--wall)}.s-floor,.s-gap{fill:var(--floor)}.s-thin{fill:none;stroke:var(--wall);stroke-width:1px}.s-swing{fill:none;stroke:var(--muted);stroke-width:.8px;stroke-dasharray:3 2}.s-chim{fill:var(--paper);stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 3}.s-rad{fill:var(--sheet);stroke:var(--muted);stroke-width:1px}.s-dim{stroke:var(--muted);stroke-width:.6px;fill:none}.s-dimt{fill:var(--muted);font-family:var(--f-mono);font-size:8.5px}.s-note{fill:var(--muted);font-family:var(--f-body);font-size:7.5px}.s-zone{fill:var(--muted);opacity:.08}.s-walk{fill:var(--walk);opacity:.22}.item{cursor:grab}.item:active{cursor:grabbing}.item .fp{fill:var(--c);stroke:color-mix(in srgb, var(--c) 60%, var(--ink));stroke-width:1px}.item .det{fill:color-mix(in srgb, var(--c) 70%, var(--floor));stroke:color-mix(in srgb, var(--c) 55%, var(--ink));stroke-width:.6px}.item .detl{stroke:color-mix(in srgb, var(--c) 45%, var(--ink));stroke-width:.7px;fill:none}.item .front{stroke:var(--ink);stroke-width:2.2px;stroke-linecap:butt}.item.sel .fp{stroke:var(--accent);stroke-width:2.4px}.item.bad .fp{stroke:var(--bad);stroke-width:2.4px;stroke-dasharray:5 3}.item text{pointer-events:none}.lbl{fill:var(--label);font-family:var(--f-display);font-size:10px;font-weight:600}.lbld{fill:var(--label);font-family:var(--f-mono);opacity:.85;font-size:7.5px}.clr{fill:var(--c);fill-opacity:.16;stroke:var(--c);stroke-width:.9px;stroke-dasharray:3 2.5}.clr.bad{fill:var(--bad);fill-opacity:.14;stroke:var(--bad)}.clr.warn{fill:var(--warn);fill-opacity:.14;stroke:var(--warn)}.clr-min{stroke:var(--c);stroke-width:.9px;stroke-dasharray:1 2}.clr-min.bad{stroke:var(--bad)}.clr-min.warn{stroke:var(--warn)}.item .keys{fill:var(--floor);stroke:var(--ink);stroke-width:.5px}.item .blackkey{fill:var(--ink)}.item .notch{fill:var(--paper);stroke:var(--ink);stroke-width:.8px}.notch-t{fill:var(--muted);font-family:var(--f-body);pointer-events:none;font-size:7px}.check{cursor:pointer;grid-template-columns:none;align-items:center;gap:6px;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;font-size:.85rem!important;display:flex!important}.editor .check input{width:auto}.chair{fill:none;stroke:color-mix(in srgb, var(--c) 50%, var(--ink));stroke-width:.9px;stroke-dasharray:2 2}@media (prefers-reduced-motion:no-preference){.tab,.btn{transition:background .15s,border-color .15s}}html,body{min-height:100%;margin:0}.topbar{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.topbar .spacer{flex:1}.room-select,.field input,.field select{font:inherit;color:var(--ink);background:var(--floor);border:1px solid var(--line);border-radius:4px;padding:6px 10px}.room-select{font-family:var(--f-display);font-size:1.05rem;font-weight:600}.who{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.who b{color:var(--ink);font-weight:600}.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:.85rem;text-decoration:underline}.seg{border:1px solid var(--line);border-radius:4px;display:inline-flex;overflow:hidden}.seg button{background:var(--sheet);color:var(--ink);border:0;padding:5px 10px;font-size:.85rem}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.tab .owner{font-family:var(--f-body);opacity:.65;font-size:.74rem;font-weight:500}.tab .score{font-family:var(--f-mono);opacity:.75;font-size:.72rem}.banner{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--sheet);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;font-size:.9rem;display:flex}.votes{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vote{border:1px solid var(--line);background:var(--floor);color:var(--ink);font-family:var(--f-mono);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.9rem;display:inline-flex}.vote[aria-pressed=true].up{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 18%, var(--floor))}.vote[aria-pressed=true].down{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 18%, var(--floor))}.vote svg{fill:currentColor;width:16px;height:16px}.ranking{gap:8px;display:grid}.rank{border:1px solid var(--line);background:var(--floor);cursor:pointer;border-radius:4px;grid-template-columns:28px 96px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;display:grid}.rank .pos{font-family:var(--f-display);text-align:center;font-size:1.2rem;font-weight:700}.rank svg{width:96px;height:auto;display:block}.rank .t{gap:2px;min-width:0;font-size:.85rem;display:grid}.rank .t b{font-family:var(--f-display);font-size:1rem;font-weight:600}.rank .net{font-family:var(--f-mono);font-size:1rem}.toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--paper);z-index:10;border-radius:4px;max-width:calc(100vw - 32px);padding:8px 14px;font-size:.9rem;position:fixed;transform:translate(-50%)}.saving{color:var(--muted);font-size:.78rem;font-family:var(--f-mono)}.auth{place-items:center;min-height:100vh;padding:16px;display:grid}.auth form{gap:12px;width:min(380px,100%);padding:22px;display:grid}.auth h1{font-size:1.8rem}.field{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);gap:4px;font-size:.78rem;display:grid}.field input{text-transform:none;letter-spacing:0;font-size:1rem}.error{color:var(--bad);margin:0;font-size:.9rem}.invite-list{gap:6px;font-size:.85rem;display:grid}.invite-list code{font-family:var(--f-mono);word-break:break-all;font-size:.78rem}.editor input:disabled,.editor select:disabled{opacity:.6}[hidden]{display:none!important}.item.locked{cursor:pointer}body{padding:0}.shell{flex-direction:column;min-height:100vh;display:flex}.appbar{z-index:10;padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px;background:var(--sheet);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:56px;display:flex;position:sticky;top:0}.brand{font-family:var(--f-display);letter-spacing:.01em;font-size:1.35rem;font-weight:700}.appbar .spacer{flex:1}.account{color:var(--ink);border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;max-width:40vw;min-height:38px;padding:6px 14px;font-weight:600;text-decoration:none;display:inline-flex;overflow:hidden}.account:hover{border-color:var(--muted)}.back{color:var(--accent);align-items:center;min-height:38px;font-weight:600;text-decoration:none;display:inline-flex}.burger{border:1px solid var(--line);background:var(--floor);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:44px;height:44px;padding:0;display:none}.burger span{background:var(--ink);border-radius:1px;width:18px;height:2px;display:block}.body{flex:1;grid-template-columns:290px minmax(0,1fr);min-height:0;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--paper);align-content:start;align-self:start;gap:12px;height:calc(100vh - 56px);padding:12px;display:grid;position:sticky;top:56px;overflow-y:auto}.sidebar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.layout-list{gap:2px;display:grid}.layout-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:grid}.layout-item:hover{background:var(--sheet)}.layout-item[aria-current=true]{background:var(--sheet);border-color:var(--accent)}.layout-item .dot{background:var(--ok);border-radius:50%;width:9px;height:9px}.layout-item .dot.bad{background:var(--bad)}.li-text{gap:2px;min-width:0;display:grid}.li-name{font-family:var(--f-display);overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.2}.li-meta{color:var(--muted);font-size:.78rem}.li-score{font-family:var(--f-mono);color:var(--muted);font-size:.8rem}.scrim{display:none}.content{align-content:start;gap:12px;min-width:0;padding:16px;display:grid}.layout-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;display:flex}.lh-title{min-width:0}.layout-head h1{overflow-wrap:anywhere;font-size:1.6rem;line-height:1.15}.lh-title p{margin:4px 0 0}.lh-actions{flex-wrap:wrap;gap:6px;display:flex}.rename{font:inherit;font-family:var(--f-display);color:var(--ink);background:var(--floor);border:1px solid var(--accent);border-radius:4px;width:min(36em,100%);padding:2px 8px;font-size:1.4rem;font-weight:600}.btn{min-height:38px}.btn.danger{background:var(--bad);border-color:var(--bad);color:var(--paper);font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.main{grid-template-columns:minmax(0,1fr) 360px}.panels{align-content:start;gap:12px;min-width:0;display:grid}.card details>summary{cursor:pointer;align-items:center;gap:6px;min-height:32px;list-style:none;display:flex}.card details>summary::-webkit-details-marker{display:none}.card details>summary:before{content:"▸";color:var(--muted)}.card details[open]>summary:before{content:"▾"}.card details>summary h2{display:inline}.card details[open]>summary{margin-bottom:10px}.card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.pad{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pad .btn{min-width:46px;min-height:44px;padding:4px 10px;font-size:1.15rem}.pad .step{margin-left:4px}.add-box summary{cursor:pointer;color:var(--accent);padding:6px 0;font-size:.9rem}.add-box .row{margin-top:6px}.legend-box{font-size:.82rem}.legend-box summary{cursor:pointer;color:var(--ink)}.legend-box[open]{flex-wrap:wrap;flex-basis:100%;gap:4px 14px;display:flex}.legend-box[open] summary{flex-basis:100%}.verdict{justify-content:space-between}.rank{text-align:left;color:var(--ink);font:inherit;grid-template-columns:28px 84px minmax(0,1fr);width:100%}.rank svg{width:84px}.page{gap:12px;width:100%;max-width:720px;margin:0 auto;padding:16px;display:grid}.page h1{font-size:1.8rem}.form{gap:12px;display:grid}.form textarea{min-height:110px}.invite{border-bottom:1px solid var(--line);gap:6px;padding:10px 0;display:grid}.invite.used{color:var(--muted)}.invite code{font-family:var(--f-mono);word-break:break-all;font-size:.78rem}@media (width<=1279px){.main{grid-template-columns:minmax(0,1fr)}.panels{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (width<=899px){.burger{display:inline-flex}.hide-mobile{display:none!important}.appbar{gap:8px;padding-inline:10px}.brand{font-size:1.15rem}.body{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:30;width:min(86vw,340px);height:auto;padding-top:calc(14px + env(safe-area-inset-top,0px));padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 0 24px #00000040}body.drawer-open{overflow:hidden}body.drawer-open .sidebar{transform:none}.scrim{z-index:25;background:#00000073;display:block;position:fixed;inset:0}.scrim[hidden]{display:none!important}.content{gap:10px;padding:10px}.layout-head{align-items:stretch}.layout-head h1{font-size:1.3rem}.lh-actions{width:100%}.lh-actions .btn{flex:auto}.banner .btn{width:100%}.panels{grid-template-columns:minmax(0,1fr)}.plan{padding:4px}.plan-foot{padding-inline:6px}.card{padding:12px}input,select,textarea{font-size:16px!important}.editor{grid-template-columns:1fr 1fr}.rank{grid-template-columns:24px 72px minmax(0,1fr)}.rank svg{width:72px}}@media (prefers-reduced-motion:no-preference){.sidebar{transition:transform .2s}}@media (width<=899px){#editCard.has-item{z-index:20;max-height:48vh;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-bottom:0;border-radius:12px 12px 0 0;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -8px 24px #0000004d}body.sheet-open .content{padding-bottom:50vh}.lbl{font-size:12px}.lbld{font-size:9px}}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.page.wide{max-width:1320px}.explore-link{width:100%}.divider{border:0;border-top:1px solid var(--line);width:100%;margin:0}.explore-grid{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:16px;display:grid}.params{max-height:calc(100vh - 88px);position:sticky;top:72px;overflow-y:auto}.furn{border:1px solid var(--line);border-radius:6px;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:8px 10px 10px;display:grid}.furn legend{padding:0 4px}.furn legend .check{font-family:var(--f-display);font-weight:600;font-size:1rem!important}.furn:has(input[data-include]:not(:checked)) .field{opacity:.45}.results-col{align-content:start;gap:12px;min-width:0;display:grid}.result-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.result{text-align:left;border:1px solid var(--line);background:var(--sheet);color:var(--ink);cursor:pointer;font:inherit;border-radius:6px;gap:8px;padding:10px;display:grid}.result:hover{border-color:var(--muted)}.result[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.result svg{width:100%;height:auto;display:block}.result .t{gap:4px;font-size:.85rem;display:grid}.result .t b{font-family:var(--f-display);font-size:1rem;font-weight:600}.preview svg{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}@media (width<=899px){.explore-grid{grid-template-columns:minmax(0,1fr)}.params{max-height:none;position:static}.result-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.params .field,.furn .field{min-width:0}.params .field input,.params .field select{width:100%;min-width:0}@media (width<=899px){.sidebar{flex-direction:column;gap:12px;height:100dvh;display:flex;overflow:hidden}.sidebar>.explore-link,.sidebar>.divider,.sidebar>.sidebar-head{flex:none}.layout-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0;padding-bottom:env(safe-area-inset-bottom,0px);flex:auto;align-content:start;overflow-y:auto}}
