*{box-sizing:border-box}:root{font-family:'Albert Sans',Arial,sans-serif;color:#f5f5f5;background:#000;font-synthesis:none;color-scheme:dark}body{margin:0;font-size:13px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,summary{cursor:pointer}button{border:1px solid #303030;background:#111;color:#ddd;border-radius:5px;padding:9px 13px;line-height:1.2}button:hover,summary:hover{background:#202020;color:#fff}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.rug:focus-visible{outline:2px solid #bf1b2a;outline-offset:3px}a{color:inherit}header{height:64px;padding:0 24px;display:flex;gap:28px;align-items:center;border-bottom:1px solid #202020}.brand{display:flex;align-items:center}.brand img{width:136px;height:auto;display:block}h1{font-size:13px;font-weight:400;color:#888;margin:0}main{display:grid;grid-template-columns:264px minmax(0,1fr);height:calc(100dvh - 64px)}aside{padding:20px 16px;overflow:auto;border-right:1px solid #202020;scrollbar-width:thin;scrollbar-color:#333 transparent}.searchbox{display:flex;align-items:center;gap:9px;border:1px solid #353535;border-radius:5px;padding:0 11px;color:#888;background:#0c0c0c}.searchbox input{border:0;background:none;padding:11px 0;width:100%;min-width:0;color:#eee;outline:none}.searchbox:focus-within{border-color:#999}.searchbox input::placeholder{color:#777}.catalogue-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#777;margin:11px 0 7px}.icon{width:32px;height:32px;padding:0;font-size:20px;background:transparent}.catalogue-meta button{border:0;font-size:19px}.products{display:grid;gap:2px}.product{display:grid;grid-template-columns:60px minmax(0,1fr) 25px;gap:11px;align-items:center;padding:12px 3px;border-bottom:1px solid #1d1d1d}.product img{width:60px;height:80px;object-fit:contain;background:#000}.product h3{font-size:12px;font-weight:400;line-height:1.4;margin:0 0 7px}.product p{font-size:11px;color:#777;margin:0}.product button{width:25px;height:25px;border:0;background:none;padding:0;color:#aaa;font-size:21px}.product.added button{color:#e02c3d}.product.added h3{color:#fff}.product.added{background:#ffffff04}.secondary{width:100%;margin-top:15px;font-size:12px}.small{font-size:11px;color:#999;line-height:1.5}.small:empty{display:none}.workspace{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:#0b0b0b}.toolbar{height:60px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 20px;gap:8px;background:#080808;border-bottom:1px solid #1b1b1b}.toolgroup{display:flex;align-items:center;gap:7px}.toolgroup button{font-size:12px}.toolgroup .icon{font-size:20px}#settings{position:relative}#settings summary{list-style:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:22px;line-height:1;border:1px solid #303030;border-radius:5px}summary::-webkit-details-marker{display:none}.settings-menu{position:absolute;right:0;top:41px;width:210px;z-index:50;padding:8px;background:#151515;border:1px solid #363636;border-radius:7px;box-shadow:0 10px 30px #0008}.settings-menu button,.settings-menu label{display:flex;align-items:center;gap:8px;width:100%;padding:11px 10px;background:none;border:0;border-radius:3px;color:#ccc;font-size:12px;text-align:left}.settings-menu button:hover,.settings-menu label:hover{background:#222}.settings-menu input{accent-color:#bf1b2a}#stage{flex:1;position:relative;overflow:hidden;min-height:200px;touch-action:none;cursor:grab;outline:none;background-color:#0b0b0b}#world{position:absolute;inset:0;transform-origin:0 0}#room{position:absolute;left:0;top:0;border:1px dashed #686868;display:none;pointer-events:none;background:#ffffff02}#room:before{content:attr(data-label);position:absolute;top:-24px;left:0;font-size:12px;color:#aaa;white-space:nowrap}#empty{position:absolute;inset:0;display:grid;place-items:center;color:#666;font-size:15px;pointer-events:none}.scale{position:absolute;bottom:23px;left:25px;text-align:center;font-size:11px;color:#777;pointer-events:none}#scale-line{height:5px;border:1px solid #666;border-top:0;margin-bottom:6px}.rug{position:absolute;transform-origin:center;cursor:grab;touch-action:none;outline:none}.rug:active{cursor:grabbing}.rug img{position:absolute;max-width:none;pointer-events:none;user-select:none}.rug .outline{position:absolute;inset:0;pointer-events:none;border:1px solid transparent}.rug.selected .outline{border:1px solid #bf1b2a}.rug-caption{position:absolute;z-index:11;white-space:nowrap;padding:3px 6px;color:#aaa;background:#0b0b0bcc;text-align:center;pointer-events:none;font-size:11px;line-height:1.4}.rug-caption small:empty{display:none}#inspector{position:relative;flex-shrink:0;border-top:1px solid #252525;background:#080808;padding:13px 20px;display:flex;gap:18px;align-items:center;justify-content:space-between;min-height:62px}.selection-name{min-width:0}.selection-name h3{font-size:12px;font-weight:400;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:350px}.selection-name p{font-size:11px;color:#777;margin:0}.inspector-actions{display:flex;gap:7px;align-items:center}.inspector-actions button{font-size:12px;white-space:nowrap}.inspector-actions a{font-size:12px;color:#aaa;text-decoration:none;white-space:nowrap;padding:6px}.inspector-actions a:hover{color:#fff}.selection-details{position:relative}.selection-details summary{list-style:none;width:32px;height:32px;text-align:center;line-height:26px;font-size:22px;border:1px solid #303030;border-radius:5px}.selection-panel{position:absolute;bottom:43px;right:0;width:290px;background:#151515;border:1px solid #363636;border-radius:7px;padding:16px;z-index:50;box-shadow:0 10px 30px #0008}.selection-panel p{font-size:11px;color:#999;line-height:1.5;white-space:normal;margin:0 0 12px}.selection-panel label{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:10px;margin:10px 0}.selection-panel input{width:80px}.selection-panel select{max-width:160px}.selection-panel input,.selection-panel select{border:1px solid #444;background:#080808;color:#ddd;border-radius:4px;padding:6px}.selection-panel button{width:100%;margin:7px 0}.selection-panel .warning{color:#dda890}.selection-panel .explanation{border-top:1px solid #333;padding-top:12px;margin-top:12px;font-size:11px}.primary{background:#bf1b2a;border-color:#bf1b2a;color:#fff}.primary:hover{background:#a61926}dialog{border:1px solid #444;border-radius:8px;background:#0d0d0d;color:#eee;max-width:560px;width:calc(100% - 32px);padding:24px}dialog::backdrop{background:#000a;backdrop-filter:blur(4px)}dialog h2{font-size:20px;font-weight:600;margin:0}dialog p{font-size:12px;line-height:1.6;color:#999}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{border:0;background:none;font-size:22px}dialog label{display:flex;flex-direction:column;gap:6px;font-size:12px;margin:12px 0}dialog input,dialog select{width:100%;padding:10px;border:1px solid #444;border-radius:4px;background:#161616;color:#eee}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}#cal-preview{position:relative;background:#000;max-width:240px;margin:auto}#cal-image{display:block;width:100%;height:auto}#cal-box{position:absolute;border:1px solid #bf1b2a;pointer-events:none}.bounds-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#222;color:#eee;border:1px solid #444;font-size:12px;border-radius:6px;z-index:100}[hidden]{display:none!important}@media(max-width:900px){main{grid-template-columns:225px minmax(0,1fr)}aside{padding:15px 12px}.product{grid-template-columns:48px minmax(0,1fr) 22px;gap:7px}.product img{width:48px;height:67px}.toolbar{padding:0 12px}#inspector{padding:12px;gap:10px;flex-wrap:wrap}.selection-name h3{max-width:220px}.inspector-actions{margin-left:auto}}@media(max-width:600px){header{height:52px;padding:0 16px;gap:22px}.brand img{width:115px}main{height:calc(100dvh - 52px);grid-template-columns:150px minmax(0,1fr)}aside{padding:12px 8px}.searchbox{padding:0 8px;gap:5px}.searchbox svg{display:none}.searchbox input{font-size:12px}.product{grid-template-columns:40px minmax(0,1fr);position:relative;padding:12px 0 25px;gap:6px}.product img{width:40px;height:59px}.product h3{font-size:10px}.product p{font-size:10px}.product button{position:absolute;right:0;bottom:3px}.toolbar{height:auto;min-height:58px;flex-wrap:wrap;padding:8px;gap:6px}.toolbar button{padding:7px 8px;font-size:11px}.toolbar .icon{width:27px;height:27px;padding:0;font-size:18px}.toolgroup{gap:4px}#settings summary{width:27px;height:27px}.inspector-actions{flex-wrap:wrap;margin:0;gap:4px}.inspector-actions button,.inspector-actions a{font-size:10px;padding:7px}.selection-name h3{max-width:180px}#inspector{padding:10px}.selection-panel{position:fixed;bottom:90px;right:12px;width:min(290px,calc(100vw - 24px))}.scale{left:15px;bottom:15px}.bounds-inputs{gap:5px}.bounds-inputs input{padding:7px 3px}}

#furniture-menu{position:relative}#furniture-menu>summary{list-style:none;white-space:nowrap;border:1px solid #303030;background:#111;color:#ddd;border-radius:5px;padding:9px 12px;font-size:12px;line-height:1.2}#furniture-menu .settings-menu{left:0;right:auto;width:150px}.furniture-shape{display:block;pointer-events:none;overflow:visible}.furniture .outline{border-radius:5px}.furniture-dimensions{display:flex;align-items:center;gap:7px;color:#777;font-size:11px;white-space:nowrap}.furniture-dimensions label{display:flex;align-items:center;gap:6px}.furniture-dimensions input{width:60px;padding:7px 6px;background:#111;border:1px solid #333;border-radius:4px;color:#eee;font-size:12px}@media(max-width:1100px){#inspector:has(.furniture-dimensions){flex-wrap:wrap}.furniture-dimensions label{font-size:10px}}@media(max-width:600px){#furniture-menu>summary{font-size:11px;padding:7px 8px}.furniture-dimensions{flex-wrap:wrap;gap:4px}.furniture-dimensions input{width:50px}.furniture-dimensions label{gap:3px}}

/* Only direct object manipulation is visible on the canvas. */
#inspector{position:absolute;z-index:60;display:flex;align-items:center;justify-content:flex-start;gap:3px;min-height:0;padding:4px;background:#141414f5;border:1px solid #353535;border-radius:6px;box-shadow:0 4px 14px #0005;width:max-content;max-width:calc(100% - 16px);cursor:default;flex-wrap:nowrap}
#inspector button{width:30px;height:30px;padding:0;border:0;background:transparent;font-size:20px;color:#bbb}#inspector button:hover{background:#292929;color:#fff}#inspector .furniture-dimensions{gap:4px;flex-wrap:nowrap}#inspector .furniture-dimensions input{width:56px;padding:6px 3px;font-size:12px}#inspector .furniture-dimensions input::-webkit-inner-spin-button{display:none}#inspector .furniture-dimensions span{font-size:11px}header{height:52px}header .brand img{width:120px}main{height:calc(100dvh - 52px)}
/* Whole product cards are native keyboard- and touch-operable buttons. */
.product{width:100%;text-align:left;border:0;border-bottom:1px solid #1d1d1d;border-radius:0;background:transparent;color:#ddd;cursor:pointer;line-height:1.4;white-space:normal}.product:hover{background:#ffffff07}.product-title{display:block;font-size:12px;font-weight:400;line-height:1.4;margin:0 0 7px}.product-size{display:block;font-size:11px;color:#777}.product-mark{font-size:21px;color:#aaa;text-align:center}.product.added .product-mark{color:#e02c3d}.product.added .product-title{color:#fff}.product-info{min-width:0}#catalogue-toggle,#catalogue-close{display:none}#catalogue-backdrop{position:fixed;inset:52px 0 0;z-index:90;background:#0008;backdrop-filter:blur(3px)}
@media(max-width:700px){
  body{overflow:hidden;width:100%;overscroll-behavior:none}header{height:56px;padding:0 16px;justify-content:space-between}header .brand img{width:118px}#catalogue-toggle{display:block;min-height:44px;border:0;background:transparent;font-size:15px;color:#eee;padding:10px 0 10px 18px}main{display:block;height:calc(100dvh - 56px)}.workspace{height:100%;width:100%}.toolbar{height:60px;min-height:60px;padding:7px 12px;flex-wrap:nowrap;gap:6px}.toolbar .toolgroup{gap:6px;min-width:0}.toolbar button,#furniture-menu>summary{min-height:44px;font-size:12px;padding:13px 10px;white-space:nowrap;display:flex;align-items:center;justify-content:center}.toolbar #zoomin,.toolbar #zoomout{display:none}#settings summary{height:44px;width:44px;border:0;font-size:25px}#furniture-menu .settings-menu{left:0;right:auto;top:50px;width:165px}.settings-menu{top:50px;right:0}.settings-menu button,.settings-menu label{min-height:48px;font-size:14px;justify-content:flex-start}.settings-menu input{width:18px;height:18px}#stage{min-height:0;flex:1}.scale{bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));left:18px}#empty{font-size:14px}
  #catalogue{position:fixed;z-index:100;inset:auto 0 0;max-height:76dvh;height:76dvh;display:flex;flex-direction:column;padding:18px 16px max(16px,env(safe-area-inset-bottom));border:1px solid #333;border-bottom:0;border-radius:18px 18px 0 0;background:#080808;overflow:hidden;transform:translateY(102%);visibility:hidden;pointer-events:none;transition:transform .18s ease,visibility .18s}.catalogue-open #catalogue{transform:translateY(0);visibility:visible;pointer-events:auto}#catalogue-close{display:block;position:absolute;top:13px;right:9px;width:44px;height:44px;font-size:25px;border:0;background:none}#catalogue .searchbox{flex-shrink:0;margin-right:44px;padding:0 12px;min-height:44px}#catalogue .searchbox input{font-size:16px;padding:12px 0}#catalogue .searchbox svg{display:block}#catalogue .catalogue-meta{flex-shrink:0;margin:8px 0;font-size:12px}#catalogue .catalogue-meta button{width:44px;height:38px}#catalogue .products{display:block;overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;-webkit-overflow-scrolling:touch;touch-action:pan-y}#catalogue .product{display:grid;grid-template-columns:68px minmax(0,1fr) 34px;gap:16px;padding:12px 4px;min-height:110px}#catalogue .product img{width:68px;height:88px}#catalogue .product-title{font-size:14px;line-height:1.4;margin:0 0 8px}#catalogue .product-size{font-size:13px}#catalogue .product-mark{font-size:24px}#catalogue .secondary{flex-shrink:0;min-height:44px;margin-top:10px;font-size:14px}#catalogue-backdrop{top:56px}
  #inspector{left:50%!important;top:auto!important;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 24px);padding:5px;gap:4px;border-radius:9px;box-shadow:0 4px 30px #0009}#inspector button{width:44px;height:44px;font-size:24px}#inspector .furniture-dimensions{gap:5px}#inspector .furniture-dimensions input{width:64px;height:44px;font-size:16px;padding:8px 4px}#inspector .furniture-dimensions span{font-size:12px}dialog{max-height:calc(100dvh - 24px);overflow:auto}dialog input,dialog select{font-size:16px}#toast{bottom:90px;max-width:calc(100% - 28px);width:max-content;padding:12px 16px}
}
@media(prefers-reduced-motion:reduce){#catalogue{transition:none}}

.scale-note{position:absolute;bottom:12px;right:20px;margin:0;font-size:11px;line-height:1.4;color:#ff0000;pointer-events:none;z-index:40}@media(max-width:700px){.scale-note{bottom:max(9px,env(safe-area-inset-bottom));right:14px;font-size:10px}#inspector{bottom:max(56px,calc(env(safe-area-inset-bottom) + 48px))}}

/* Product details are shown only for the selected rug. */
header h1{color:#bbb;font-size:14px;white-space:nowrap}
#inspector.has-product{left:50%!important;top:auto!important;bottom:56px;transform:translateX(-50%);width:420px;max-width:calc(100% - 24px);display:block;padding:10px 12px;border-radius:9px}
.selected-product{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;min-width:0;font-size:13px}
.selected-product-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;color:#eee}
.selected-product-price{flex-shrink:0;white-space:nowrap;color:#ccc}
.product-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.product-link{display:flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:10px 16px;border-radius:5px;background:#bf1b2a;color:#fff;font-size:14px;text-decoration:none}
.product-link:hover{background:#a61926}
.product-link:focus-visible{outline:2px solid #fff;outline-offset:3px}
.object-actions{display:flex;gap:4px}
#inspector.has-product button{width:44px;height:44px;font-size:24px}

@media(max-width:700px){
  header{gap:14px}header h1{margin-right:auto;font-size:13px}header .brand img{width:106px}#catalogue-toggle{padding-left:0;font-size:14px;white-space:nowrap}
  #inspector.has-product{bottom:max(56px,calc(env(safe-area-inset-bottom) + 48px));padding:10px;width:420px}
  .selected-product{gap:8px;font-size:13px}.product-actions{gap:8px}.product-link{padding:10px 12px;flex:1;gap:8px}
}

.rug-caption{padding:2px 4px;font-size:10px}#empty button,#empty a{pointer-events:auto}#empty-add{min-height:48px;padding:12px 20px;color:#ddd;background:transparent}

#empty-add{background:#bf1b2a;border-color:#bf1b2a;color:#fff;font-size:16px;font-weight:600;padding:16px 26px;min-height:56px}
#empty-add:hover{background:#a61926}
@media(max-width:700px){header h1{display:none}#catalogue-toggle{background:#bf1b2a;color:#fff;border:1px solid #bf1b2a;border-radius:5px;padding:12px 15px;font-weight:600;font-size:14px;min-height:44px}}

#catalogue-filters{flex-shrink:0;margin-top:10px;border-bottom:1px solid #292929;min-height:44px}#catalogue-filters>summary{padding:13px 0;min-height:44px;font-size:13px;color:#ddd}#filter-form{display:grid;gap:14px;padding:4px 0 14px;overflow-y:auto;max-height:54dvh}#filter-form label,#filter-form legend{font-size:12px;color:#bbb}#filter-form fieldset{border:0;margin:0;padding:0;min-width:0}#filter-form legend{padding:0;margin-bottom:6px}.filter-select{display:grid;gap:6px}#filter-form select,#filter-form input:not([type=checkbox]){width:100%;min-width:0;background:#161616;color:#eee;border:1px solid #393939;border-radius:4px;padding:10px;font:inherit;min-height:44px}.filter-range{display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);align-items:center;gap:5px}.filter-choices{display:flex;flex-wrap:wrap;gap:6px}.filter-choices label{display:flex;align-items:center;gap:6px;min-height:38px;padding:7px 9px;border:1px solid #303030;border-radius:4px;cursor:pointer}.filter-choices label:has(input:checked){border-color:#bf1b2a;color:#fff!important;background:#bf1b2a20}.filter-choices input{accent-color:#bf1b2a;margin:0;width:16px;height:16px}.filter-actions{display:flex;gap:8px}.filter-actions button{flex:1;min-height:44px;font-size:12px;padding:9px 6px}@media(max-width:700px){#catalogue-filters{margin-top:8px}#filter-form{max-height:calc(76dvh - 220px);overscroll-behavior:contain;touch-action:pan-y}#filter-form select,#filter-form input:not([type=checkbox]){font-size:16px}#filter-form label,#filter-form legend{font-size:13px}.filter-choices label{min-height:44px}#catalogue-filters[open]~.products{flex-basis:80px}}

.toolbar #catalogue-toggle{display:flex;align-items:center;justify-content:center;min-height:44px;padding:11px 14px;background:#bf1b2a;border:1px solid #bf1b2a;color:#fff;font-size:13px;font-weight:600;white-space:nowrap}.toolbar #catalogue-toggle:hover{background:#a61926}#inspector #remove{display:flex;align-items:center;justify-content:center}#remove svg{pointer-events:none;flex:none}@media(max-width:700px){header{height:48px}header h1{display:block;margin:0;color:#aaa;font-size:12px}main{height:calc(100dvh - 48px)}#catalogue-backdrop{top:48px}.toolbar{padding:7px 12px;gap:4px}.toolbar .toolgroup{gap:8px}.toolbar #catalogue-toggle{font-size:14px;padding:12px 14px;min-height:44px}#inspector.has-product{border-radius:8px}.product-link{border-radius:5px}}

/* The canvas pans through its transform, never through native focus scrolling. */
#stage{overflow:clip}
#labels{position:absolute;inset:0;pointer-events:none;z-index:35}
.filter-actions{background:#080808;padding-top:16px}

/* Always-visible 50 cm reference grid; no grid or snapping controls. */
#stage{background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px)}

#inspector #rotate{display:flex;align-items:center;justify-content:center}#rotate svg{flex:none;pointer-events:none}#inspector.has-product #rotate{width:auto;gap:6px;padding:0 10px;font-size:12px}#rotate span{pointer-events:none}@media(max-width:360px){.product-link{font-size:12px;gap:6px;padding:10px 8px}}
@media(max-width:360px){.toolbar{padding-inline:8px}.toolbar .toolgroup{gap:4px}.toolbar #catalogue-toggle,#furniture-menu>summary{font-size:12px;padding-inline:8px}}

/* Filtering has its own mobile view, with a scrollable form and separate footer. */
#filter-form{display:flex;flex-direction:column;gap:0;max-height:none;overflow:visible}
.filter-fields{display:grid;gap:22px;padding:6px 0 18px}
#filter-form legend{margin-bottom:10px;color:#ddd}
.dimension-grid{display:grid;grid-template-columns:55px minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;font-size:12px;color:#bbb}
.dimension-heading{font-size:11px;color:#888}
.filter-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.filter-choices label{min-height:44px}
.filter-actions{flex-shrink:0;border-top:1px solid #292929;gap:10px}
.filter-actions #filter-reset{flex:0 0 30%;background:transparent;border-color:transparent;color:#aaa}
@media(max-width:700px){
  #catalogue{inset:48px 0 0;height:auto;max-height:none;border:0;border-top:1px solid #292929;border-radius:0;padding:16px 16px max(16px,env(safe-area-inset-bottom))}
  #catalogue-close{top:16px;right:12px}
  #catalogue-filters>summary{list-style:none;font-size:14px;background:transparent}
  #catalogue-filters>summary::after{content:'›';float:right;color:#888;font-size:20px;line-height:18px}
  #catalogue.filtering>.searchbox,#catalogue.filtering>.catalogue-meta,#catalogue.filtering>#catalogue-status,#catalogue.filtering>.products,#catalogue.filtering>#more{display:none}
  #catalogue.filtering #catalogue-filters{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;border:0}
  #catalogue.filtering #filter-summary{flex-shrink:0;min-height:44px;margin:0 44px 16px 0;padding:12px 0;border:0;color:#ddd}
  #catalogue.filtering #filter-summary::after{content:none}
  #catalogue.filtering #filter-form{position:absolute;top:76px;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));min-height:0;max-height:none;padding:0;overflow:hidden}
  .filter-fields{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;align-content:start;padding:4px 2px 24px;gap:28px}
  #filter-form label,#filter-form legend{font-size:14px}
  .dimension-grid{grid-template-columns:60px minmax(0,1fr) minmax(0,1fr);font-size:14px;gap:10px}
  .dimension-heading{font-size:12px}
  #filter-form select,#filter-form input:not([type=checkbox]){min-height:46px}
  .filter-choices label{padding:12px;gap:9px}
  .filter-actions{position:static;padding:16px 0 0;background:#080808}
  .filter-actions button{min-height:48px;font-size:14px}
}

/* Keep the app chrome anchored; never scale or translate the whole page. */
@media(max-width:700px){
  html{overflow:hidden;touch-action:pan-x pan-y}
  body{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;touch-action:pan-x pan-y}
  input,select,textarea{font-size:16px}
  #stage{touch-action:none}
  #inspector .furniture-dimensions .furniture-size{width:auto;height:44px;padding:0 10px;border:1px solid #444;border-radius:4px;background:#111;color:#eee;font-size:16px;font-weight:400;white-space:nowrap}
}
.dimension-dialog{position:fixed;inset:max(14px,env(safe-area-inset-top)) 12px auto;margin:0 auto;width:min(380px,calc(100% - 24px));max-height:calc(100dvh - 28px);padding:16px;background:#141414;border:1px solid #383838;border-radius:12px;box-shadow:0 16px 50px #0009}
.dimension-dialog::backdrop{background:#000a;backdrop-filter:blur(2px)}
.dimension-dialog-head{margin-bottom:12px}
.dimension-dialog-head h2{margin:0;font-size:16px;font-weight:500}
.dimension-dialog-head p{margin:5px 0 0;color:#888;font-size:12px}
.dimension-field{margin-bottom:10px}
.dimension-field label{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 6px;color:#ddd;font-size:13px}
.dimension-field label small{color:#888;font-size:12px}
.dimension-entry{display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #666;border-radius:6px;background:#0b0b0b}
.dimension-entry:focus-within{border-color:#eee}
.dimension-entry input{width:100%;height:54px;padding:0;border:0;outline:0;background:transparent;color:#fff;font-size:24px}
.dimension-entry span{color:#999;font-size:15px}
.dimension-hint{margin:0 0 12px;color:#777;font-size:12px}
.dimension-actions{display:flex;justify-content:flex-end;gap:8px}
.dimension-actions button{min-width:100px;min-height:44px;font-size:14px}
.dimension-cancel{background:transparent;border-color:#303030}

/* iOS must be able to scroll the real document to a focused catalogue field.
   A text input inside the fixed, translated sheet makes Safari pan/zoom the
   visual viewport while the rest of the app stays trapped off screen. */
@media(max-width:700px){
  html.catalogue-open{overflow:auto}
  body.catalogue-open{position:relative;inset:auto;height:auto;min-height:100dvh;overflow:auto;overscroll-behavior:auto}
  body.catalogue-open main{height:auto;min-height:calc(100dvh - 48px)}
  body.catalogue-open .workspace{display:none}
  body.catalogue-open #catalogue{position:relative;inset:auto;width:100%;height:calc(100dvh - 48px);min-height:0;max-height:none;transform:none;transition:none;visibility:visible;pointer-events:auto}
  body.catalogue-open #catalogue-backdrop{display:none}
  #catalogue .searchbox input,#filter-form input:not([type=checkbox]),#room-dialog input{font-size:20px}
  #filter-form select,#room-dialog select{font-size:18px}
  #room-dialog{position:fixed;inset:max(14px,env(safe-area-inset-top)) 12px auto;margin:0 auto;width:min(380px,calc(100% - 24px))}
}
