/* MUST HAVE V15. Additive styles; preserve the existing visual identity and 3D editor. */
#studioView,
#studioView .st-client-intro,
#studioView .st-project-layout,
#studioView .st-visual { min-width:0; }
#studioView img { max-width:100%; }
#studioView button,
#studioView select,
#studioView input,
#studioView textarea { touch-action:manipulation; }
#studioView .mh-photo-palette { max-width:100%; min-width:0; margin-top:16px; padding:13px 14px 15px; border:1px solid #d8ded1; border-radius:12px; background:#f9faf5; color:#3b4d39; }
#studioView .mh-photo-palette > summary { font-size:15px; font-weight:650; cursor:pointer; padding:4px 2px; }
#studioView .mh-ref-explainer { font-size:12px; line-height:1.55; color:#626f60; margin:11px 0; }
#studioView .mh-ref-upload { display:inline-flex; align-items:center; justify-content:center; cursor:pointer; min-height:44px; padding:10px 15px; border-radius:8px; border:1px solid #9aa990; font:inherit; font-size:13px; font-weight:600; background:#fff; color:#334b31; }
#studioView .mh-ref-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:14px 0; }
#studioView .mh-ref-item { min-width:0; position:relative; aspect-ratio:1/1; }
#studioView .mh-ref-item > button:first-child { width:100%; height:100%; padding:0; overflow:hidden; border:2px solid transparent; border-radius:8px; background:#e4e9df; cursor:pointer; }
#studioView .mh-ref-item > button[aria-pressed="true"] { border-color:#58734d; outline:2px solid #bbceb3; outline-offset:1px; }
#studioView .mh-ref-item img { width:100%; height:100%; object-fit:cover; display:block; }
#studioView .mh-ref-remove { position:absolute; top:-5px; right:-5px; display:grid; place-items:center; border:1px solid #c5cfc0; background:#fff; color:#594039; border-radius:50%; width:30px; height:30px; padding:0; font-size:19px; cursor:pointer; }
#studioView .mh-ref-current { font-size:12px; overflow-wrap:anywhere; color:#52634e; margin:10px 0 5px; }
#studioView .mh-palette-photo { display:block; max-height:240px; width:100%; object-fit:contain; border-radius:10px; background:#e9ede6; cursor:crosshair; }
#studioView .mh-palette-swatches { display:flex; gap:10px; flex-wrap:wrap; margin:12px 0; }
#studioView .mh-palette-swatches button { width:44px; height:44px; padding:0; border:2px solid white; border-radius:50%; box-shadow:0 0 0 1px #aab6a1; cursor:pointer; }
#studioView .mh-palette-swatches button[aria-pressed="true"] { box-shadow:0 0 0 3px #486440; }
#studioView .mh-ref-apply { width:100%; min-height:44px; margin-bottom:11px; padding:10px 12px; border:0; border-radius:8px; background:#39523b; color:white; font:inherit; font-size:13px; cursor:pointer; }
#studioView .mh-ref-apply:focus-visible {outline:3px solid #b9a170;outline-offset:2px;}
#studioView .mh-palette-options { display:flex; flex-wrap:wrap; gap:6px; }
#studioView .mh-palette-options button { flex:1 1 140px; min-height:44px; padding:9px 11px; border:1px solid #cbd4c4; background:#fff; color:#395137; border-radius:8px; font:inherit; font-size:12px; text-align:left; cursor:pointer; }
#studioView .mh-photo-palette > small { display:block; color:#6d796a; font-size:11px; margin-top:10px; line-height:1.5; }
#studioView .mh-photo-status:empty { display:none; }
#studioView .mh-photo-status { font-size:12px; color:#455e3e; line-height:1.45; }
#studioView .st-panel-head button { min-width:44px; min-height:44px; cursor:pointer; }
#studioView .st-settings-scroll { scrollbar-gutter:stable; overscroll-behavior:contain; }
#studioView .st-canvas canvas { touch-action:none; }
#studioView .st-canvas, #studioView .st-project-map { contain:layout; }
@media(max-width:1050px) {
  #studioView .st-top > .st-steps { min-width:0; }
  #studioView .st-project-layout.has-panel { grid-template-columns:minmax(280px,32%) minmax(0,1fr); }
}
@media(max-width:740px) {
  #studioView { overflow-x:clip; }
  #studioView .st-client-intro { padding-left:max(15px,4vw); padding-right:max(15px,4vw); }
  #studioView .st-client-brief, #studioView .st-room-preview { min-width:0; }
  #studioView .st-client-brief h1 { max-width:100%; font-size:clamp(27px,7vw,38px); line-height:1.12; overflow-wrap:break-word; }
  #studioView .st-top { padding:10px 4vw; gap:6px 10px; }
  #studioView .st-steps { overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  #studioView .st-top .st-steps button { flex:1 0 auto; min-width:63px; min-height:44px; }
  #studioView .st-project-layout, #studioView .st-project-layout.has-panel { display:flex; flex-direction:column; padding:0 10px; gap:8px; }
  #studioView .st-visual { width:100%; min-width:0; order:1; height:auto; }
  #studioView .st-canvas { min-height:265px; height:clamp(265px,44dvh,480px); }
  #studioView .st-project-map { min-height:260px; height:clamp(260px,44dvh,470px); }
  #studioView .st-settings:not([hidden]) { position:fixed; display:flex; flex-direction:column; left:0; right:0; bottom:0; z-index:210; width:100%; margin:0; order:initial; height:auto; min-height:180px; max-height:min(76dvh,740px); max-height:min(76svh,740px); background:#fffdf9; border-radius:18px 18px 0 0; border:1px solid #dbe0d5; box-shadow:0 -12px 50px #17281d40; padding-bottom:env(safe-area-inset-bottom,0px); overflow:hidden; }
  #studioView .st-settings[hidden] { display:none!important; }
  #studioView .st-project-layout.has-panel::after { content:''; position:fixed; inset:0; z-index:205; pointer-events:none; background:#0d200e25; }
  #studioView .st-panel-head { flex:none; padding:8px 16px 8px 18px; min-height:55px; }
  #studioView .st-panel-head b { font-size:15px; }
  #studioView .st-settings-scroll { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:17px 17px 28px; scrollbar-gutter:auto; }
  #studioView .st-settings-scroll .st-field input, #studioView .st-settings-scroll .st-field select { min-height:44px; font-size:16px; }
  #studioView .st-edit-toolbar { overflow:auto hidden; flex-wrap:nowrap; padding:5px 9px 9px; max-width:100%; }
  #studioView .st-edit-modes { min-width:max-content; }
  #studioView .st-edit-modes button, #studioView .st-camera button, #studioView .st-view-switch button { min-height:44px; font-size:12px; }
  #studioView .st-visual-top { flex-wrap:wrap; gap:8px; padding-left:8px; padding-right:8px; }
  #studioView .st-simple-actions { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 8px; }
  #studioView .st-simple-actions button { min-height:48px; font-size:12px; line-height:1.35; white-space:normal; }
  #studioView .st-model-caption { font-size:12px; line-height:1.45; }
  #studioView .st-brief-primary, #studioView .st-brief-primary textarea { max-width:100%; min-width:0; }
  #studioView .st-brief-primary textarea { font-size:16px; }
  #studioView .mh-ref-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #studioView .st-context:not([hidden]) { position:fixed!important; left:12px!important; right:12px!important; top:auto!important; bottom:calc(12px + env(safe-area-inset-bottom,0px))!important; z-index:260; width:auto; max-width:none; max-height:62dvh; overflow-y:auto; border-radius:16px; box-shadow:0 14px 40px #1626184d; }
  #studioView .st-fish-dock { bottom:calc(10px + env(safe-area-inset-bottom,0px)); max-width:calc(100vw - 20px); }
  #studioView:has(.st-project-layout.has-panel) .st-fish-dock { visibility:hidden; pointer-events:none; }
}
@media(max-width:390px) {
  #studioView .st-top .st-steps button { min-width:53px; padding:7px 4px; }
  #studioView .st-simple-actions { grid-template-columns:1fr 1fr; gap:6px; }
  #studioView .st-simple-actions button { font-size:11px; padding:9px; }
  #studioView .st-project-bottom { margin-left:2vw; margin-right:2vw; }
}
@media(prefers-reduced-motion:reduce) {
  #studioView .st-settings, #studioView .st-settings-scroll, #studioView .mh-photo-palette * { scroll-behavior:auto!important; animation:none!important; }
}
