/* ── App icons ────────────────────────────────────────────────────────────── */ .canvas-element.app-icon { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 72px; cursor: pointer; } .app-icon .icon-glyph { width: 56px; height: 56px; background: white; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 26px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10); transition: transform 0.12s ease, box-shadow 0.12s ease; } .app-icon:hover .icon-glyph { transform: scale(1.08); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16); } .app-icon .icon-label { font-size: 11px; font-weight: 500; color: #444; background: rgba(255, 255, 255, 0.72); padding: 2px 8px; border-radius: 10px; backdrop-filter: blur(6px); white-space: nowrap; max-width: 88px; overflow: hidden; text-overflow: ellipsis; } .app-icon .icon-dot { width: 5px; height: 5px; background: #34c759; border-radius: 50%; margin-top: -3px; } /* ── Windows — no chrome, just content cards ──────────────────────────────── */ .canvas-element.window { background: white; border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12); overflow: hidden; min-width: 320px; min-height: 240px; } .window .window-content { width: 100%; height: 100%; overflow: auto; } .window .loading { padding: 24px; color: #aaa; font-size: 13px; } /* ── Cursor response bubble ───────────────────────────────────────────────── */ .canvas-element.cursor-response { background: white; border-radius: 14px; padding: 12px 16px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); max-width: 320px; font-size: 14px; color: #333; line-height: 1.5; } .cursor-response p { margin: 0; } .response-pills { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; } .response-pills button { background: #f0f0f0; border: none; border-radius: 20px; padding: 5px 14px; font-size: 12px; font-weight: 500; color: #333; cursor: pointer; transition: background 0.12s; } .response-pills button:hover { background: #e0e0e0; }