.module-shell,
.canvas-tile {
  --module-accent: var(--wb-accent);
  --module-bg: var(--wb-surface);
  --module-radius: var(--wb-module-radius);
  --module-opacity: 1;
  background: var(--module-bg);
  border: var(--wb-module-border);
  border-radius: var(--module-radius);
  box-shadow: var(--wb-module-shadow);
  opacity: var(--module-opacity);
  transition: box-shadow var(--wb-motion-normal) ease, border-color var(--wb-motion-fast) ease, transform var(--wb-motion-fast) ease;
}
.module-shell[data-variant="soft"] { box-shadow: none; background: color-mix(in srgb, var(--module-bg), var(--wb-surface-soft) 35%); }
.module-shell[data-variant="glass"] { background: color-mix(in srgb, var(--module-bg), transparent 22%); backdrop-filter: blur(18px); }
.module-shell[data-variant="outline"] { box-shadow: none; background: transparent; }
.module-shell[data-locked="true"] .module-drag-handle,
.canvas-tile[data-locked="true"] [data-canvas-drag] { opacity: .35; cursor: not-allowed; }
.canvas-tile[data-variant="soft"] { box-shadow: none; background: color-mix(in srgb, var(--module-bg), var(--wb-surface-soft) 35%); }
.canvas-tile[data-variant="glass"] { background: color-mix(in srgb, var(--module-bg), transparent 22%); backdrop-filter: blur(18px); }
.canvas-tile[data-variant="outline"] { box-shadow: none; background: transparent; }
.canvas-tile[data-hidden-mobile="true"] { display: none !important; }
.canvas-tile[data-hidden-desktop="true"] { display: none !important; }
.canvas-tile.canvas-edit-focus { outline: 2px solid color-mix(in srgb, var(--module-accent), transparent 35%); outline-offset: 3px; }
.canvas-controls { background: color-mix(in srgb, var(--module-accent-soft), transparent 8%); }
.canvas-controls button { color: var(--module-accent-strong); }
.canvas-toolbar { color: var(--wb-muted); }
.canvas-toolbar button { border-color: color-mix(in srgb, var(--module-accent), var(--wb-line) 76%); color: var(--module-accent-strong); }
@media (prefers-reduced-motion: reduce) { .module-shell, .canvas-tile { transition: none; } }
