/* Native shell only: one rounded opaque surface inside a transparent resize gutter. */
.desktop-surface { display: contents; }
html[data-desktop-frame] {
  background: transparent;
  overflow: hidden;
  --frame-inset: var(--desktop-gutter);
  --frame-radius: var(--desktop-radius);
}
html[data-desktop-frame] body {
  padding: var(--frame-inset);
  background: transparent;
}
html[data-desktop-frame] .desktop-surface {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 12px 20px 20px;
  border-radius: var(--frame-radius);
  box-shadow: var(--desktop-shadow);
  overflow: hidden;
}
html[data-desktop-frame] [data-workspace-backdrop] {
  inset: var(--frame-inset);
  background: var(--bg);
  border-radius: var(--frame-radius);
}
html[data-desktop-frame][data-window-focused="false"] .desktop-surface { box-shadow: var(--desktop-shadow-inactive); }
/* The settings iframe owns modal portals: clip the entire layer to the native surface. */
html[data-desktop-frame] .module-panel.workbench-settings-overlay {
  inset: var(--frame-inset);
  width: auto;
  height: auto;
  border-radius: var(--frame-radius);
  clip-path: inset(0 round var(--frame-radius));
  overflow: hidden;
}
html[data-desktop-frame="edge-to-edge"] { --frame-inset: 0px; --frame-radius: 0px; }
html[data-desktop-frame="edge-to-edge"] .desktop-surface { box-shadow: none; }
/* Six visible CSS pixels remain reachable even when a canvas iframe fills the surface. */
.desktop-resize-edge { position: fixed; z-index: 3; touch-action: none; }
.desktop-resize-north, .desktop-resize-south { left: var(--frame-inset); right: var(--frame-inset); height: 6px; }
.desktop-resize-west, .desktop-resize-east { top: var(--frame-inset); bottom: var(--frame-inset); width: 6px; }
.desktop-resize-north { top: var(--frame-inset); }
.desktop-resize-south { bottom: var(--frame-inset); }
.desktop-resize-west { left: var(--frame-inset); }
.desktop-resize-east { right: var(--frame-inset); }
html[data-desktop-frame="edge-to-edge"] .desktop-resize-edge { display: none; }
