/* GUI App display — canvas-based window rendering */ .app-gui-display { display: flex; flex-direction: column; height: 100%; background: #0a0a0a; } .gui-canvas-wrap { flex: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; } .gui-canvas { max-width: 100%; max-height: 100%; cursor: default; outline: none; image-rendering: auto; } /* Status overlays */ .gui-status { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; font-family: var(--font-mono); font-size: 13px; color: var(--text-muted); background: var(--bg-stage); } .gui-status-icon { font-size: 32px; opacity: 0.5; } .gui-status-text { text-align: center; line-height: 1.6; } .gui-status.connecting .gui-status-icon::after { content: ''; display: inline-block; width: 16px; height: 16px; border: 2px solid var(--text-muted); border-top-color: var(--accent); border-radius: 50%; animation: gui-spin 0.8s linear infinite; margin-left: 8px; vertical-align: middle; } @keyframes gui-spin { to { transform: rotate(360deg); } } .gui-status.exited { color: var(--status-red); } .gui-status.exited .gui-status-icon { opacity: 0.7; } .gui-status.exited .gui-status-text, .gui-status.error .gui-status-text { max-width: 600px; font-size: 12px; line-height: 1.5; text-align: left; background: rgba(0,0,0,0.3); padding: 12px 16px; border-radius: var(--radius-md); border: 1px solid var(--border-structural); word-break: break-word; white-space: pre-wrap; }