/* Greenwood Room Simulator */
:root{
  --rs-green:#2c5f2d;
  --rs-green-2:#648E37;
  --rs-green-dark:#1b3d1c;
  --rs-line:#d4e0c8;
  --rs-soft:#f6fbf0;
  --rs-topbar:44px;
  --rs-surfbar:38px;
  --rs-mobbar:calc(48px + env(safe-area-inset-bottom, 0px));
  --rs-vh:100vh;
}
@supports (height:100dvh){ :root{ --rs-vh:100dvh; } }

.sim-page *,.sim-page *::before,.sim-page *::after{box-sizing:border-box;}
html:has(.sim-page),.sim-page{height:100%;overflow:hidden;}
.sim-page{margin:0;background:#1a1f14;font-family:'Segoe UI',system-ui,sans-serif;color:#2d3528;overscroll-behavior:none;}
.sim-page button{font-family:inherit;}
.sim-page :focus-visible{outline:2px solid #ffb238;outline-offset:2px;}
.mirror{transform:scaleX(-1);}
.hidden{display:none !important;}

/* Topbar */
.sim-topbar{
  background:var(--rs-green-dark);color:#fff;padding:0 12px;height:var(--rs-topbar);
  display:flex;align-items:center;gap:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.45);position:relative;z-index:200;
}
.sim-logo{height:22px;width:22px;flex-shrink:0;}
.topbar-brand{display:flex;flex-direction:column;line-height:1.1;flex:1;min-width:0;}
.topbar-brand .brand-name{font-size:.56rem;font-weight:700;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.9px;}
.topbar-brand .brand-sub{font-size:.76rem;font-weight:700;color:#fff;white-space:nowrap;}
.topbar-history,.topbar-pills{display:flex;gap:5px;align-items:center;flex-shrink:0;}
.topbar-history{margin-right:6px;}
.pill{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.92);
  height:28px;padding:0 11px;border-radius:20px;font-size:.7rem;font-weight:600;cursor:pointer;
  text-decoration:none;white-space:nowrap;transition:background .15s,opacity .15s;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;
}
.pill:hover{background:rgba(255,255,255,.2);color:#fff;}
.pill.icon{width:28px;padding:0;}
.pill:disabled{opacity:.35;cursor:default;background:rgba(255,255,255,.1);}
.pill-quote{background:#f0b429;border-color:#f0b429;color:#1b3d1c;font-weight:700;}
.pill-quote:hover{background:#ffc94a;color:#1b3d1c;}
.pill-text-short{display:none;}

/* Mobile surface bar */
.mob-surface-bar{
  display:none;background:#16301a;border-bottom:1px solid rgba(255,255,255,.08);
  padding:0 10px;height:var(--rs-surfbar);align-items:center;gap:6px;
  overflow-x:auto;position:relative;z-index:190;scrollbar-width:none;
}
.mob-surface-bar::-webkit-scrollbar{display:none;}
.mob-surface-bar .surf-tab{
  font-size:.67rem;font-weight:600;padding:5px 12px;border:1px solid rgba(255,255,255,.15);border-radius:6px;
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.78);white-space:nowrap;flex-shrink:0;
}
.mob-surface-bar .surf-tab.active{background:#fff;color:var(--rs-green-dark);border-color:#fff;font-weight:700;}

/* Layout */
.sim-wrap{display:flex;height:calc(var(--rs-vh) - var(--rs-topbar));overflow:hidden;position:relative;}

/* Sidebar */
.sim-sidebar{
  width:256px;min-width:256px;background:#fff;border-right:1px solid var(--rs-line);
  display:flex;flex-direction:column;overflow:hidden;z-index:110;
  transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.sidebar-tabs{display:flex;background:#f0f7e8;border-bottom:2px solid var(--rs-line);}
.stab{flex:1;padding:9px 4px;font-size:.68rem;font-weight:700;text-align:center;cursor:pointer;color:var(--rs-green-2);
  background:none;border:none;text-transform:uppercase;letter-spacing:.6px;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .18s;}
.stab.active{color:var(--rs-green);border-bottom-color:var(--rs-green);background:#fff;}
.stab:hover:not(.active){background:#e4f0d8;}
.stab-panel{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0;}
.stab-panel.active{display:flex;}
.sidebar-head{padding:10px 12px 8px;background:var(--rs-soft);border-bottom:1px solid var(--rs-line);}
.sim-search,.sim-type-filter{width:100%;border:1px solid #c8ddb0;border-radius:7px;font-size:.8rem;outline:none;background:#fff;}
.sim-search{padding:6px 10px;}
.sim-type-filter{padding:5px 8px;font-size:.76rem;margin-top:6px;}
.sim-search:focus,.sim-type-filter:focus{border-color:var(--rs-green-2);box-shadow:0 0 0 3px rgba(100,142,55,.12);}
.sidebar-tip{font-size:.62rem;color:#7a8a6c;margin:6px 0 0;}
.products-list{flex:1;overflow-y:auto;padding:8px 10px;overscroll-behavior:contain;}
.products-list::-webkit-scrollbar,.furn-list::-webkit-scrollbar,.layers-list::-webkit-scrollbar{width:4px;}
.products-list::-webkit-scrollbar-thumb,.furn-list::-webkit-scrollbar-thumb,.layers-list::-webkit-scrollbar-thumb{background:#c8ddb0;border-radius:3px;}
.sim-empty{font-size:.76rem;color:#666;text-align:center;padding:20px 8px;line-height:1.5;}
.prod-group{margin-bottom:10px;content-visibility:auto;contain-intrinsic-size:auto 120px;}
.prod-group-title{font-size:.65rem;font-weight:700;color:var(--rs-green-2);text-transform:uppercase;
  letter-spacing:.5px;padding:3px 0 5px;border-bottom:1px solid #e8f0de;margin-bottom:6px;}
.variant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.variant-thumb{border-radius:7px;overflow:hidden;border:2px solid transparent;padding:0;
  cursor:grab;transition:border-color .15s,transform .15s,box-shadow .15s;position:relative;background:#f0f0f0;aspect-ratio:1;display:block;width:100%;}
.variant-thumb:hover{border-color:var(--rs-green-2);transform:scale(1.05);box-shadow:0 4px 12px rgba(100,142,55,.3);}
.variant-thumb.highlight{border-color:#f0b429;box-shadow:0 0 0 3px rgba(240,180,41,.35);}
.variant-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;}
.thumb-label{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);color:#fff;font-size:.54rem;
  padding:2px 3px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Furniture tab */
.furn-head{padding:10px 12px 8px;background:var(--rs-soft);border-bottom:1px solid var(--rs-line);}
.furn-cats{display:flex;gap:4px;flex-wrap:wrap;}
.fcat{padding:3px 8px;border-radius:14px;font-size:.66rem;font-weight:600;border:1px solid #c8ddb0;background:#f0f7e8;cursor:pointer;color:#555;transition:all .15s;}
.fcat.active{background:var(--rs-green);color:#fff;border-color:var(--rs-green);}
.furn-list{flex:1;overflow-y:auto;padding:8px 10px;overscroll-behavior:contain;}
.furn-cat-group{margin-bottom:12px;}
.furn-cat-title{font-size:.65rem;font-weight:700;color:var(--rs-green-2);text-transform:uppercase;letter-spacing:.5px;padding:3px 0 5px;border-bottom:1px solid #e8f0de;margin-bottom:7px;}
.furn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.furn-thumb{border-radius:9px;border:2px solid #e8f0de;cursor:grab;transition:all .16s;padding:0;background:#fff;aspect-ratio:1;
  display:flex;flex-direction:column;align-items:stretch;box-shadow:0 1px 4px rgba(0,0,0,.07);overflow:hidden;width:100%;}
.furn-thumb:hover{border-color:var(--rs-green-2);transform:translateY(-2px);box-shadow:0 6px 18px rgba(100,142,55,.25);}
.furn-thumb canvas{flex:1;width:100%;min-height:0;display:block;pointer-events:none;}
.furn-label{font-size:.58rem;font-weight:700;color:var(--rs-green);text-align:center;padding:2px 4px 4px;background:var(--rs-soft);border-top:1px solid #e8f0de;}
.furn-size-row{padding:7px 12px;background:var(--rs-soft);border-top:1px solid #e4eedd;display:flex;align-items:center;gap:7px;}
.furn-size-row label{font-size:.66rem;font-weight:600;color:#555;white-space:nowrap;}
.furn-size-row input{flex:1;accent-color:var(--rs-green);min-width:0;}
.furn-size-row span{font-size:.68rem;color:var(--rs-green);font-weight:700;min-width:32px;}

/* Canvas area */
.sim-canvas-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#20261a;min-width:0;}
.sim-toolbar{background:#fff;border-bottom:1px solid var(--rs-line);padding:5px 10px;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;}
.toolbar-section{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
.toolbar-section-label{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#9aa38f;white-space:nowrap;padding:0 2px;}
.tool-row{display:flex;align-items:center;gap:4px;}
.tool-select{font-size:.7rem;border:1px solid #c8ddb0;border-radius:6px;padding:3px 6px;outline:none;background:#fff;}
.tool-btn{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:600;color:var(--rs-green);
  border:1px solid #c8ddb0;background:var(--rs-soft);border-radius:6px;padding:3px 8px;cursor:pointer;}
.tool-btn:hover{background:#e4f0d8;border-color:var(--rs-green-2);}
.tool-label{font-size:.66rem;color:#555;margin:0 0 0 2px;}
.tool-range{width:60px;accent-color:var(--rs-green);}
.tsep{width:1px;height:30px;background:#e2e8da;align-self:center;}
.btool{padding:3px 8px!important;font-size:.7rem!important;border-radius:6px!important;white-space:nowrap;}
.sval{font-size:.68rem;color:#555;min-width:30px;}
.surf-tabs{display:flex;gap:3px;flex-wrap:wrap;}
.surf-tab{padding:4px 10px;border-radius:16px;font-size:.68rem;font-weight:700;border:2px solid #c8ddb0;background:var(--rs-soft);
  cursor:pointer;color:var(--rs-green-2);transition:all .18s;white-space:nowrap;}
.surf-tab:not(.active):hover{background:#e4f0d8;border-color:var(--rs-green-2);color:var(--rs-green);}
.surf-tab.active{background:var(--rs-green);color:#fff;border-color:var(--rs-green);box-shadow:0 1px 4px rgba(44,95,45,.25);}
.fill-box{background:#f0f9e8;border:1px solid #c8ddb0;border-radius:8px;padding:3px 8px;display:flex;align-items:center;gap:7px;}
.fill-guides{font-size:.68rem;font-weight:600;color:var(--rs-green);margin:0;display:flex;align-items:center;gap:4px;}
.fill-guides input{accent-color:var(--rs-green);}
.kbd-hint{font-size:.62rem;color:#9a9f93;padding:3px 8px;background:var(--rs-soft);border-bottom:1px solid #e4eedd;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kbd-hint kbd{font-size:.58rem;padding:0 4px;background:#e9efe2;color:#445;border-radius:3px;}

.canvas-wrap{flex:1;overflow:hidden;position:relative;background:#20261a;touch-action:none;user-select:none;-webkit-user-select:none;}
.canvas-wrap.panning{cursor:grabbing;}
.canvas-container{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;}
#roomCanvas{display:block;width:1100px;height:680px;box-shadow:0 12px 48px rgba(0,0,0,.5);border-radius:3px;touch-action:none;}
.canvas-wrap.drag-over #roomCanvas{outline:3px dashed #7fc04d;}
#snapOverlay,#gridOverlay{position:absolute;top:0;left:0;pointer-events:none;}
#gridOverlay{z-index:4;}
#snapOverlay{z-index:6;}
.fill-hint{position:fixed;background:rgba(44,95,45,.96);color:#fff;padding:7px 16px;border-radius:20px;font-size:.74rem;
  pointer-events:none;opacity:0;transition:opacity .3s;top:calc(var(--rs-topbar) + 52px);left:50%;transform:translateX(-50%);
  width:max-content;max-width:calc(100% - 24px);text-align:center;z-index:2100;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.3);}
.fill-hint.show{opacity:1;}

.zoom-controls{position:absolute;bottom:10px;right:10px;z-index:50;display:flex;flex-direction:column;gap:4px;}
.zoom-btn{width:34px;height:34px;border-radius:8px;border:none;background:rgba(44,95,45,.9);color:#fff;font-size:16px;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:background .15s;}
.zoom-btn:hover{background:var(--rs-green);}
.zoom-btn.zoom-fit{font-size:10px;font-weight:800;}
.zoom-level{background:rgba(0,0,0,.5);color:#fff;font-size:.6rem;font-weight:700;text-align:center;border-radius:5px;padding:2px 4px;}

/* Layers */
.sim-right{width:215px;min-width:215px;background:#fff;border-left:1px solid var(--rs-line);display:flex;flex-direction:column;overflow:hidden;}
.rhead{padding:10px 12px 8px;background:var(--rs-soft);border-bottom:1px solid var(--rs-line);}
.rhead h2{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--rs-green);margin:0;}
.rhead p{font-size:.6rem;color:#888;margin:2px 0 0;}
.layers-list{flex:1;overflow-y:auto;padding:6px;}
.layers-empty{font-size:.72rem;color:#8a8f84;text-align:center;padding:14px 8px;line-height:1.5;}
.layer-item{display:flex;align-items:center;gap:6px;padding:6px 5px;border-radius:8px;border:1px solid #e4eedd;margin-bottom:4px;
  cursor:pointer;transition:border-color .15s,background .15s;background:#fafff6;position:relative;}
.layer-item:hover{border-color:var(--rs-green-2);background:#f0f9e8;}
.layer-item.sel{border-color:var(--rs-green);background:#e4f5d8;box-shadow:0 0 0 2px rgba(44,95,45,.15);}
.layer-item.ldrag-top{border-top:3px solid var(--rs-green);}
.layer-item.ldrag-bot{border-bottom:3px solid var(--rs-green);}
.layer-item.ldragging{opacity:.35;}
.layer-ghost{position:fixed;pointer-events:none;z-index:9999;opacity:.85;background:#e4f5d8;border:2px solid var(--rs-green);
  border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);}
.lhandle{color:#bbb;cursor:grab;padding:6px 3px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;touch-action:none;}
.lhandle span{display:block;width:11px;height:1.5px;background:currentColor;border-radius:1px;}
.lthumb{width:30px;height:30px;object-fit:cover;border-radius:5px;flex-shrink:0;background:#f0f7e8;}
.linfo{flex:1;min-width:0;}
.lname{font-size:.66rem;font-weight:600;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lbadge{font-size:.55rem;font-weight:700;color:var(--rs-green-2);margin-left:3px;}
.lbadge.rot{color:#c08020;}
.lsub{font-size:.58rem;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ldel{background:none;border:none;color:#dc3545;font-size:11px;cursor:pointer;padding:4px 5px;border-radius:4px;flex-shrink:0;}
.ldel:hover{background:#fdecea;}
.ractions{padding:8px;border-top:1px solid #e4eedd;display:flex;flex-direction:column;gap:6px;}

/* Modals */
.sim-modal{position:fixed;inset:0;background:rgba(10,20,10,.7);z-index:2000;display:flex;align-items:center;justify-content:center;padding:12px;}
.sim-modal-box{position:relative;background:#fff;border-radius:14px;padding:20px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.4);
  max-height:calc(var(--rs-vh) - 24px);overflow-y:auto;overscroll-behavior:contain;}
.sim-modal-box h2{font-size:1rem;font-weight:700;color:var(--rs-green);margin:0 30px 14px 0;}
.sim-modal-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:none;background:#f2f5ee;color:#555;cursor:pointer;}
.sim-modal-x:hover{background:#e4eadd;color:#222;}
.crop-box{max-width:640px;}
#cropCanvas{border:1px solid #d9e4cc;border-radius:6px;display:block;margin:0 auto;max-width:100%;height:auto;background:#f4f4f2;}
.crop-controls{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;}
.crop-row{display:flex;align-items:center;gap:8px;}
.crop-row label{font-size:.76rem;font-weight:600;color:#555;min-width:48px;}
.crop-row input[type=range]{flex:1;accent-color:var(--rs-green);}
.crop-row span{font-size:.72rem;color:#888;min-width:34px;text-align:right;}
.crop-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;}

.quote-box{max-width:620px;}
.q-sec{border-top:1px solid #e8eee0;padding:14px 0 4px;}
.q-sec:first-of-type{border-top:none;padding-top:0;}
.q-sec h3{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#3c4a33;margin:0 0 8px;}
.q-note{font-size:.72rem;color:#7a8270;margin:6px 0 8px;line-height:1.45;}
.room-dims{display:flex;gap:10px;flex-wrap:wrap;}
.room-dims label{display:flex;flex-direction:column;gap:3px;font-size:.7rem;font-weight:600;color:#555;margin:0;}
.room-dims span{display:flex;align-items:center;gap:4px;font-weight:400;}
.room-dims input{width:78px;border:1px solid #c8ddb0;border-radius:7px;padding:6px 8px;font-size:.85rem;}
.room-dims select{border:1px solid #c8ddb0;border-radius:7px;padding:6px 8px;font-size:.85rem;background:#fff;}
.room-dims .hidden{display:none;}
.size-mode{display:inline-flex;gap:4px;padding:3px;margin-bottom:10px;border-radius:18px;background:var(--rs-soft);border:1px solid var(--rs-line);}
.size-mode-btn{padding:5px 12px;border:none;border-radius:14px;background:transparent;font-size:.72rem;font-weight:700;color:#5a6650;cursor:pointer;transition:background .18s,color .18s;}
.size-mode-btn.active{background:var(--rs-green);color:#fff;box-shadow:0 1px 4px rgba(44,95,45,.25);}
.size-mode-btn:focus-visible{outline:2px solid var(--rs-green-2);outline-offset:2px;}
.room-dims input:focus,.room-dims select:focus{border-color:var(--rs-green-2);outline:none;box-shadow:0 0 0 3px rgba(100,142,55,.12);}
.est-table{width:100%;border-collapse:collapse;font-size:.74rem;}
.est-table th{font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;color:#8a927e;font-weight:700;text-align:left;padding:4px 6px;border-bottom:1px solid #e8eee0;}
.est-table td{padding:7px 6px;border-bottom:1px solid #f0f3ec;vertical-align:top;color:#333;}
.est-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.est-table .est-name{font-weight:600;}
.est-table .est-sub{font-size:.66rem;color:#888;}
.est-warn{color:#b26a00;font-size:.64rem;}
.est-empty{font-size:.76rem;color:#777;padding:6px 0;}
.est-openings{margin-top:10px;padding:8px 10px;border:1px solid #e8eee0;border-radius:8px;background:var(--rs-soft);}
.est-open-title{font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;color:#8a927e;font-weight:700;margin-bottom:4px;}
.est-open-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:4px 0;font-size:.74rem;color:#333;}
.est-open-row + .est-open-row{border-top:1px solid #e8eee0;}
.est-open-dims{display:inline-flex;align-items:center;gap:4px;color:#666;white-space:nowrap;}
.est-open-dims input{width:62px;border:1px solid #c8ddb0;border-radius:6px;padding:3px 6px;font-size:.76rem;}
.est-open-dims input:focus{border-color:var(--rs-green-2);outline:none;box-shadow:0 0 0 3px rgba(100,142,55,.12);}
.size-box{max-width:520px;}
.size-intro{margin:-4px 0 12px;font-size:.78rem;}
.size-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;}
.q-room-line{font-size:.8rem;color:#333;margin:0 0 6px;}
.q-link.q-inline{display:inline;margin:0 0 0 6px;padding:0;font-size:.76rem;}
.branch-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;}
.branch-btn{display:flex;align-items:center;gap:10px;text-align:left;padding:10px 12px;border:1.5px solid #dfe6d6;border-radius:10px;background:#fff;cursor:pointer;transition:all .18s;}
.branch-btn:hover{border-color:#0084ff;background:#f6faff;transform:translateY(-1px);}
.branch-btn i{color:#0084ff;font-size:1.2rem;}
.branch-btn strong{display:block;font-size:.78rem;color:#2d2d2d;}
.branch-btn small{display:block;font-size:.66rem;color:#777;}
.q-steps{font-size:.78rem;color:#333;padding-left:18px;margin:0 0 12px;line-height:1.6;}
.btn-quote{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 16px;border-radius:8px;text-decoration:none;
  font-size:.82rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#0084FF 0%,#0066CC 100%);
  box-shadow:0 2px 8px rgba(0,132,255,.25);}
.btn-quote:hover{color:#fff;box-shadow:0 4px 12px rgba(0,132,255,.35);}
.q-link{display:block;margin:10px auto 0;background:none;border:none;color:var(--rs-green);font-size:.74rem;text-decoration:underline;cursor:pointer;}

/* Mobile / tablet */
.backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:105;opacity:0;transition:opacity .25s;pointer-events:none;}
.backdrop.show{opacity:1;pointer-events:auto;}
.mob-toolbar{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:300;height:var(--rs-mobbar);
  padding:0 10px env(safe-area-inset-bottom,0px);background:#fff;border-top:1px solid #dde8d0;
  gap:4px;overflow-x:auto;align-items:center;scrollbar-width:none;
}
.mob-toolbar::-webkit-scrollbar{display:none;}
.mob-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;padding:0 10px;border-radius:7px;border:1px solid var(--rs-line);
  background:var(--rs-soft);color:var(--rs-green);font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .15s;}
.mob-btn i{font-size:.72rem;}
.mob-btn:active{transform:scale(.95);background:#d6ecc4;}
.mob-btn.danger{border-color:#f5c6cb;background:#fff5f5;color:#c0392b;}
.mob-btn.primary{background:var(--rs-green);border-color:var(--rs-green);color:#fff;}
.mob-btn.icon-only{width:34px;padding:0;}
.mob-btn.mob-fit{font-size:.62rem;font-weight:700;letter-spacing:.4px;}
.mob-select{height:34px;font-size:.7rem;border:1px solid var(--rs-line);border-radius:7px;padding:0 6px;background:var(--rs-soft);color:var(--rs-green);font-weight:600;flex-shrink:0;}
.mob-divider{width:1px;height:22px;background:#e0e8d4;flex-shrink:0;margin:0 2px;}
.mob-zoom-display{font-size:.68rem;font-weight:700;color:var(--rs-green);min-width:38px;text-align:center;flex-shrink:0;}
.mob-range{display:flex;flex-direction:column;align-items:center;flex-shrink:0;}
.mob-range label{font-size:.5rem;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.5px;margin:0;}
.mob-range input{width:70px;accent-color:var(--rs-green);}

.fab-group{display:none;position:fixed;right:12px;bottom:calc(var(--rs-mobbar) + 12px);z-index:510;flex-direction:column;gap:8px;align-items:flex-end;}
.fab{width:46px;height:46px;border-radius:12px;border:none;color:#fff;font-size:15px;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.28);
  display:flex;align-items:center;justify-content:center;transition:transform .15s;}
.fab:active{transform:scale(.9);}
.fab-sb{background:var(--rs-green);}
.fab-lay{background:#4a7030;}
.fab-wrap{display:flex;align-items:center;gap:7px;}
.fab-lbl{background:rgba(20,30,20,.82);color:#fff;font-size:.65rem;font-weight:700;padding:3px 8px;border-radius:10px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;}
.fab-wrap:hover .fab-lbl,.fab-wrap:focus-within .fab-lbl{opacity:1;}

.mob-drawer{
  display:none;position:fixed;top:calc(var(--rs-topbar) + var(--rs-surfbar));bottom:var(--rs-mobbar);left:0;
  width:78vw;max-width:290px;background:#fff;border-radius:0 16px 16px 0;box-shadow:4px 0 24px rgba(0,0,0,.3);z-index:500;
  flex-direction:column;transform:translateX(-105%);transition:transform .3s ease;
}
.mob-drawer.show{transform:translateX(0);}
.drawer-title{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;font-weight:700;color:var(--rs-green);padding:12px 10px 8px 14px;border-bottom:1px solid #e4eedd;}
.drawer-close{background:none;border:none;color:#888;font-size:.9rem;padding:4px 8px;cursor:pointer;}
.drawer-body{overflow-y:auto;flex:1;padding:6px;overscroll-behavior:contain;}

@media (max-width:1024px){
  .sim-right,.sim-toolbar,.kbd-hint,.zoom-controls,.topbar-history{display:none !important;}
  .mob-toolbar,.fab-group,.mob-drawer,.mob-surface-bar{display:flex;}
  .backdrop{display:block;}
  .sim-wrap{height:calc(var(--rs-vh) - var(--rs-topbar) - var(--rs-surfbar) - var(--rs-mobbar));}
  .sim-sidebar{
    position:fixed;top:calc(var(--rs-topbar) + var(--rs-surfbar));left:0;bottom:var(--rs-mobbar);z-index:110;
    width:82vw;max-width:310px;min-width:220px;transform:translateX(-105%);box-shadow:4px 0 24px rgba(0,0,0,.35);
  }
  .sim-sidebar.open{transform:translateX(0);}
  .hide-mobile{display:none;}
  .fill-hint{top:calc(var(--rs-topbar) + var(--rs-surfbar) + 10px);}
  .pill .pill-text{display:none;}
  .pill{width:30px;padding:0;}
  .pill.pill-quote{width:auto;padding:0 12px;}
  .pill-quote .pill-text-short{display:inline;}
  .variant-grid{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:380px){
  .topbar-brand .brand-name{display:none;}
  .topbar-brand .brand-sub{font-size:.7rem;}
  .crop-controls{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .sim-page *{transition:none !important;animation:none !important;}
}
