/* Bureau expérimental. Les cadres gardent des états métier indépendants. */
.workshop-desktop { position: fixed; left: calc(var(--workshop-sidebar) + 6px); right: 6px; top: calc(var(--workshop-header-height) + 6px); bottom: calc(var(--workshop-dock-height) + 6px); z-index: 180; pointer-events: none; }
.workshop-window { position: absolute; display: flex; flex-direction: column; background: var(--workshop-paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 30px #173e681f; overflow: hidden; pointer-events: auto; }
.workshop-window[hidden], .workshop-window-dock[hidden] { display: none; }
.workshop-window.is-active { border-color: var(--workshop-primary); box-shadow: 0 14px 38px #173e682e; }
.workshop-window-header { display: flex; align-items: center; gap: 8px; flex: 0 0 var(--workshop-title-height); padding: 0 6px 0 12px; background: var(--workshop-chrome); border-bottom: 1px solid var(--line); cursor: grab; touch-action: none; user-select: none; }
.workshop-window-title { font-size: calc(13px * var(--workshop-font-scale, 1)); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; flex: 1; }
.workshop-window-controls { display: flex; gap: 3px; }
.workshop-window-controls button { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--text); font-size: calc(22px * var(--workshop-font-scale, 1)); cursor: pointer; }
.workshop-window-controls button:hover { background: var(--workshop-soft); }
.workshop-window-controls button:last-child:hover { background: #a52e37; color: white; }
.workshop-window-frame { display: block; flex: 1; width: 100%; min-height: 0; border: 0; background: var(--workshop-paper); }
/* Le document reste masqué dès sa création, avant même son premier script :
   aucune image de connexion ni de l’accueil ne traverse le chargement. */
.workshop-window.is-loading .workshop-window-frame { visibility: hidden; }
.workshop-window-loading { position: absolute; inset: var(--workshop-title-height) 0 0; display: grid; place-content: center; padding: 24px; font-size: calc(13px * var(--workshop-font-scale, 1)); background: var(--workshop-paper); }
/* Les côtés restent fins pour laisser les contrôles et le défilement accessibles.
   Les coins, prioritaires, offrent une prise diagonale plus large. */
.workshop-window-resize { position: absolute; z-index: 2; touch-action: none; user-select: none; }
.workshop-window-resize[data-resize-edge="n"], .workshop-window-resize[data-resize-edge="s"] { left: 14px; right: 14px; height: 8px; cursor: ns-resize; }
.workshop-window-resize[data-resize-edge="n"] { top: 0; }
.workshop-window-resize[data-resize-edge="s"] { bottom: 0; }
.workshop-window-resize[data-resize-edge="e"], .workshop-window-resize[data-resize-edge="w"] { top: 14px; bottom: 14px; width: 8px; cursor: ew-resize; }
.workshop-window-resize[data-resize-edge="e"] { right: 0; }
.workshop-window-resize[data-resize-edge="w"] { left: 0; }
.workshop-window-resize[data-resize-edge="ne"], .workshop-window-resize[data-resize-edge="nw"],
.workshop-window-resize[data-resize-edge="se"], .workshop-window-resize[data-resize-edge="sw"] { width: 14px; height: 14px; z-index: 3; }
.workshop-window-resize[data-resize-edge="ne"] { top: 0; right: 0; cursor: nesw-resize; }
.workshop-window-resize[data-resize-edge="nw"] { top: 0; left: 0; cursor: nwse-resize; }
.workshop-window-resize[data-resize-edge="se"] { bottom: 0; right: 0; cursor: nwse-resize; }
.workshop-window-resize[data-resize-edge="sw"] { bottom: 0; left: 0; cursor: nesw-resize; }
.workshop-desktop.is-manipulating, .workshop-desktop.is-manipulating * { cursor: var(--workshop-pointer-cursor) !important; }
.workshop-window.is-maximized .workshop-window-resize { display: none; }
.workshop-desktop.is-manipulating iframe { pointer-events: none; }
.workshop-window-dock { display: flex; align-items: center; gap: 8px; position: fixed; left: var(--workshop-sidebar); bottom: 0; right: 0; height: var(--workshop-dock-height); padding: 5px 8px; background: var(--workshop-paper); border-top: 1px solid var(--line); z-index: 190; }
.workshop-window-dock button { flex-shrink: 0; min-height: 32px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--workshop-paper); color: var(--text); cursor: pointer; }
.workshop-window-dock button[aria-pressed=true] { background: var(--workshop-soft); border-color: var(--workshop-primary); }
.workshop-window-tasks { display: flex; flex: 1; gap: 6px; overflow-x: auto; min-width: 0; }
.workshop-window-task { display: flex; flex-shrink: 0; }
.workshop-window-task > button:first-child { max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: calc(12px * var(--workshop-font-scale, 1)); border-radius: 8px 0 0 8px; }
.workshop-window-task > .workshop-task-close { border-radius: 0 8px 8px 0; border-left: 0; padding-inline: 9px; font-size: calc(18px * var(--workshop-font-scale, 1)); }
.workshop-task-close:hover { background: #a52e37; color: white; }
body.workshop-has-windows #web-workshop-banner { bottom: calc(var(--workshop-dock-height) + 4px); }
body.workshop-has-windows #appView { padding-bottom: calc(var(--workshop-dock-height) + 12px); }
/* Un écran incorporé ne reconstruit pas le bureau, mais conserve ses formulaires
   et boîtes de dialogue natifs. Le thème et les erreurs restent visibles. */
.workshop-embedded #workshopSidebar, .workshop-embedded #appHeader, .workshop-embedded #web-workshop-banner,
.workshop-embedded #upcomingPanel, .workshop-embedded .workshop-skip { display: none !important; }
.workshop-embedded body.workshop-authenticated .app { margin: 0; width: 100%; }
.workshop-embedded #appView { padding: 8px; }
.workshop-embedded #flash { margin: 6px 8px; }
@media (max-width: 900px) {
  .workshop-desktop { left: 0; right: 0; top: var(--workshop-header-height); bottom: var(--workshop-dock-height); }
  .workshop-window { inset: 0 !important; width: 100% !important; height: 100% !important; border-radius: 0; }
  .workshop-window-header { cursor: default; padding-left: 12px; }
  .workshop-window-resize, .workshop-window-controls button[aria-label="Agrandir"], .workshop-window-controls button[aria-label="Restaurer la taille"], .workshop-arrange { display: none; }
  .workshop-window-dock { left: 0; padding: 6px; gap: 5px; }
  .workshop-window-dock button { min-height: 40px; }
  .workshop-window-dock > button { padding-inline: 8px; }
  .workshop-window-controls button { width: 40px; min-height: 40px; }
  .workshop-embedded #appView { padding: 8px; }
}

/* L’accueil appartient à une fenêtre, jamais au fond du bureau. */
.workshop-desktop-host #workshopHomePanel { display: none !important; }

.workshop-window.is-active .workshop-window-header { background: var(--workshop-soft); }
.workshop-window-dock { background: var(--workshop-chrome); }
