/* Additional auth/editor controls; the calendar, typography and colours reuse styles.css. */
/* Cloud-only desktop shell. Keep domain, Auth and RPC code independent of these styles. */
.cloud-app .ask-orvia{border:1px solid var(--secondary);background:transparent}
.cloud-app #chat-dialog{position:fixed;inset:24px 24px 24px auto;transform:none;margin:0;width:min(530px,calc(100vw - 48px));max-width:none;height:calc(100dvh - 48px);max-height:none;padding:0;border:1px solid var(--border);border-radius:22px;background:var(--canvas);color:var(--text);box-shadow:0 24px 90px #0005;overflow:hidden}
.cloud-app #chat-dialog::backdrop{background:#0005;backdrop-filter:blur(3px)}
.cloud-chat-shell{height:100%;display:flex;flex-direction:column;min-height:0;padding:22px 24px 12px;gap:12px}
.cloud-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.cloud-chat-header h2{font-size:17px;letter-spacing:.1em}.cloud-chat-header p{font-size:12px;margin-top:6px}.cloud-chat-tools{display:flex;align-items:center;gap:4px}.cloud-chat-tools .icon-button{font-size:24px}
.cloud-chat-connection{border:1px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--secondary);font-size:12px;line-height:1.6;flex-shrink:0}
.cloud-chat-transcript{flex:1;min-height:70px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding:6px 0}
.cloud-chat-welcome{padding:clamp(12px,5vh,45px) 4px 12px}.cloud-chat-welcome>.muted{font-size:13px;line-height:1.7;max-width:350px}
.cloud-chat-message{padding:12px 15px;line-height:1.65;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;width:fit-content;max-width:94%;border-radius:16px;background:var(--surface)}.cloud-chat-message.user{margin-left:auto;background:var(--raised)}
.cloud-chat-preview{max-height:33dvh;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:14px;padding:14px 16px;font-size:12px;line-height:1.55;flex-shrink:0;scrollbar-width:thin}.cloud-chat-preview strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere}.cloud-chat-detail-label{display:block;color:var(--muted);font-size:11px;margin:8px 0 4px}.cloud-chat-preview>.cloud-chat-detail-label:first-child{margin-top:0}.cloud-chat-time{margin:5px 0;overflow-wrap:anywhere}.cloud-chat-location{white-space:pre-wrap;overflow-wrap:anywhere}.cloud-chat-delete-note{color:var(--warning);margin-top:8px}
#chat-feedback{font-size:12px;line-height:1.55;flex-shrink:0;max-height:70px;overflow:auto}.cloud-chat-actions{display:flex;flex-wrap:wrap;gap:5px;flex-shrink:0}.cloud-chat-actions:has(>button:not([hidden])){padding-bottom:4px}.cloud-chat-actions .confirm-plan{padding:11px 17px;background:var(--accent);color:var(--on-accent);border-radius:11px}
.cloud-chat-composer{position:relative;flex-shrink:0;display:flex;align-items:flex-end;gap:8px;border:1px solid var(--border);border-radius:22px;padding:12px 10px 10px 16px;background:var(--surface)}.cloud-chat-composer textarea{resize:none;border:0;background:transparent;outline:none;color:var(--text);width:100%;min-width:0;max-height:120px;font-size:13px;line-height:1.6}.cloud-chat-composer button{background:var(--accent);color:var(--on-accent);border-radius:50%;width:34px;height:34px;flex-shrink:0;font-size:22px}.cloud-chat-composer button:disabled{background:var(--raised);color:var(--muted);opacity:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.cloud-app #chat-dialog{inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:18px}.cloud-chat-shell{padding:16px 16px 8px;gap:9px}.cloud-chat-preview{max-height:30dvh}}
.cloud-app .auth-panel{width:min(100%,440px);margin:clamp(24px,8vh,100px) auto;line-height:1.7}.auth-panel h1{margin-bottom:14px}.auth-panel form{margin-top:22px;display:grid;gap:16px}.cloud-app label{display:grid;gap:9px;color:var(--secondary);font-size:13px}.cloud-app input,.cloud-app select{border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:12px;width:100%;min-width:0;color:var(--text)}.cloud-note{font-size:12px;color:var(--muted);margin-top:24px}.cloud-app [role=status]{line-height:1.6;overflow-wrap:anywhere}.auth-panel [role=status]{margin-top:16px}.cloud-heading-actions{display:flex;gap:8px;margin-left:auto}.cloud-toolbar{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-bottom:24px;color:var(--muted);font-size:12px}.cloud-toolbar label{display:flex;align-items:center;gap:12px}.cloud-toolbar select{width:205px;padding:8px 10px;font-size:12px}.cloud-app .calendar-grid{height:clamp(350px,calc(100dvh - 295px),920px)}.cloud-app .day-details{max-height:calc(100dvh - 300px)}.cloud-app .day-details .plan-main{display:block;width:100%;border-bottom:1px solid var(--line)}.cloud-app .plan-meta{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.cloud-footer{padding:16px 0;color:var(--muted);font-size:12px;text-align:center}.cloud-app #event-dialog{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:530px;max-height:calc(100dvh - 32px);overflow:auto}.cloud-app #event-dialog::backdrop{background:#0007}.cloud-app fieldset{border:0;padding:0;margin:0;display:grid;gap:18px;min-width:0}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}#save-status,#delete-summary{margin-top:18px;font-size:13px;white-space:pre-wrap}#delete-summary{line-height:1.8}#pending{border:1px solid var(--border);padding:12px;border-radius:12px;margin-bottom:20px;font-size:13px}#pending button{margin:6px 8px 0 0}.cloud-app .header-actions{align-items:center}.cloud-app #account-label{overflow-wrap:anywhere;max-width:300px;text-align:right}.cloud-app .day-event{pointer-events:none}
@media(max-width:760px){.cloud-app .calendar-grid{height:auto}.cloud-app .calendar-layout.with-aside .inspector{grid-row:auto}.cloud-app .day-details{max-height:none}.cloud-app .page-heading{flex-wrap:wrap}.cloud-heading-actions{width:100%;justify-content:flex-end}.time-fields{grid-template-columns:1fr}.cloud-app .header-actions{gap:3px}.cloud-app #account-label{max-width:155px;font-size:11px}.cloud-toolbar select{width:180px}.cloud-toolbar label{flex-wrap:wrap}.cloud-app .calendar-layout{gap:24px}.cloud-app .brand{gap:8px}.cloud-app .auth-panel h1{font-size:28px}}

/* Desktop presentation: Theme.cs, Main.xaml and the desktop motion classes. */
.cloud-app { font-family:"Segoe UI Variable Text","Segoe UI","Microsoft YaHei UI",sans-serif; }
.cloud-app { --calendar-event-bg:#303030; --calendar-event-selected:#3b3b3b; --calendar-event-text:#e2e2e2; --calendar-event-edge:#929292; --calendar-due-text:#f1aaa4; --calendar-due-bg:#382b2c; }
html[data-theme=light] .cloud-app { --calendar-event-bg:#eeeeee; --calendar-event-selected:#e1e1e1; --calendar-event-text:#444444; --calendar-event-edge:#929292; --calendar-due-text:#9c4541; --calendar-due-bg:#faeae8; }
.cloud-app #app { max-width:none; padding:0 32px; min-height:680px; }
.cloud-app #calendar-panel:has(#calendar-surface:not([hidden])) { width:100%; max-width:1760px; margin-inline:auto; padding-inline:clamp(16px,2.5vw,48px); }
.cloud-app #calendar-notice { display:flex; align-items:center; gap:14px; margin:0 0 16px; font-size:12px; color:var(--secondary); }
.cloud-app header { height:52px; }
.cloud-app .brand { font-size:17px; font-weight:600; }
.cloud-app #page { padding:16px 0 20px; }
.cloud-app .page-heading { margin:4px 0 22px; }
.cloud-app .page-heading h1 { font-size:36px; font-weight:600; }
.cloud-app .cloud-toolbar { gap:8px 16px; margin-bottom:16px; }
.cloud-app .cloud-toolbar select { padding:5px 8px; }
.cloud-app .cloud-toolbar .inline { flex-wrap:wrap; }
.cloud-app .cloud-heading-actions { align-items:center; gap:2px; }
.cloud-app .calendar-grid { height:max(calc(var(--rows,5) * 104px),calc(100dvh - 420px)); grid-template-rows:repeat(var(--rows,5),minmax(104px,1fr)); }
.cloud-app .weekdays span { text-align:center; }
.cloud-app .day { position:relative; border-right:0; padding:7px 9px; gap:4px; transition:transform 220ms cubic-bezier(.2,.75,.2,1),background-color 130ms,border-radius 130ms; }
.cloud-app .day-number { align-self:center; }
.cloud-app .day.active { background:var(--surface); border-radius:7px; box-shadow:inset 0 0 0 1px var(--border); transform:scale(1.08); z-index:2; }
.cloud-app .day-event { padding:2px 5px; border-radius:4px; background:var(--calendar-event-bg); color:var(--calendar-event-text); box-shadow:inset 2px 0 var(--calendar-event-edge); }
.cloud-app .day-event .event-time { color:inherit; font-weight:500; }
.cloud-app .day.active .day-event { background:var(--calendar-event-selected); }
.cloud-app .day-details { max-height:none; overflow:visible; }
.cloud-app .calendar-layout.with-aside { grid-template-columns:minmax(0,1fr) clamp(300px,27vw,360px); gap:28px; }
.cloud-app #day-inspector { min-width:0; }
.cloud-app #day-timeline { height:clamp(200px,calc(100dvh - 570px),460px); position:relative; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-gutter:stable; }
.cloud-app #day-timeline:focus-visible { outline:1px solid var(--muted); outline-offset:4px; border-radius:4px; }
.cloud-app #day-timeline .cloud-hour-label { width:48px; font-size:10px; }
.cloud-app #day-timeline :is(.cloud-hour-rule,.cloud-event-lane,.cloud-now-line) { left:60px; right:4px; }
.cloud-app #day-timeline .cloud-timed-event { padding-inline:6px; }
.cloud-app #day-timeline .cloud-timed-event strong { font-size:12px; }
.cloud-app #day-timeline .cloud-event-location { font-size:11px; }
.cloud-app #day-timeline .cloud-timeline-empty { position:sticky; display:block; left:auto; top:12px; margin-left:60px; width:fit-content; padding:5px 6px; background:var(--canvas); font-size:11px; }
.cloud-app #day-tasks .day-tasks { margin-top:18px; }
.cloud-app .inspector-heading { margin-bottom:12px; }
.cloud-app button { transition:scale 210ms cubic-bezier(.2,.75,.2,1),background-color 130ms,opacity 130ms; }
.cloud-app button:active:not(:disabled):not(.orbit-item):not(.day) { scale:.96; transition-duration:95ms; }
.cloud-app .plan-main:active:not(:disabled) { scale:.99; }
.cloud-app .day:active { background:var(--raised); }
.cloud-app #space-panel { padding:28px 0; }
.cloud-app.tasks-enabled .calendar-grid { height:max(calc(var(--rows,5) * 124px),calc(100dvh - 420px)); grid-template-rows:repeat(var(--rows,5),minmax(124px,1fr)); }
.cloud-app #tasks-summary { margin-top:10px; font-size:13px; }
.cloud-app #task-groups { max-width:980px; }
.cloud-app #task-groups .task-group { margin-bottom:32px; }
.cloud-app .task-group h2 { padding:10px 0 12px; color:var(--muted); font-size:13px; }
.task-card { display:flex; align-items:center; gap:14px; min-width:0; border-bottom:1px solid var(--line); padding:8px 0; }
.cloud-app .task-complete { width:22px; height:22px; border:1px solid var(--muted); border-radius:50%; flex-shrink:0; padding:0; font-size:12px; }
.task-card.completed .task-complete { background:var(--accent); color:var(--on-accent); }
.task-card.completed strong { color:var(--muted); text-decoration:line-through; }
.cloud-app .task-detail { text-align:left; padding:10px 0; flex:1; min-width:0; border-radius:0; }
.task-detail strong { display:block; overflow-wrap:anywhere; font-size:15px; font-weight:500; }
.task-due { display:block; margin-top:7px; font-size:12px; line-height:1.6; color:var(--muted); overflow-wrap:anywhere; }
.task-overdue { display:block; margin-top:4px; color:#ef646b; font-size:11px; }
.task-day-status { position:absolute; bottom:4px; left:9px; right:4px; font-size:9px; line-height:14px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; }
.cloud-app .task-day-marker { position:absolute; bottom:2px; left:7px; display:flex; gap:0; max-width:calc(100% - 10px); height:24px; align-items:center; }
.cloud-app .task-due-point { display:grid; place-items:center; width:16px; height:24px; flex:0 1 16px; min-width:8px; cursor:help; --dot-color:#98a8b8; }
.cloud-app .task-due-point::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--dot-color); transition:transform 140ms,box-shadow 140ms; }
.cloud-app .task-due-point[data-urgency=overdue] { --dot-color:#e18b88; }
.cloud-app .task-due-point[data-urgency=today] { --dot-color:#d5b47b; }
.cloud-app .task-due-point:hover::before { transform:scale(1.2); box-shadow:0 0 0 3px color-mix(in srgb,var(--dot-color) 15%,transparent); }
.cloud-app .task-due-overflow::before { background:transparent; border:1px solid var(--dot-color); }
html[data-theme=light] .cloud-app .task-due-point { --dot-color:#647e94; }
html[data-theme=light] .cloud-app .task-due-point[data-urgency=overdue] { --dot-color:#ad5554; }
html[data-theme=light] .cloud-app .task-due-point[data-urgency=today] { --dot-color:#91702f; }
.calendar-due-popover { position:fixed; z-index:40; width:min(300px,calc(100vw - 24px)); max-height:min(360px,calc(100dvh - 32px)); overflow:auto; padding:14px 16px; border:1px solid var(--border); border-radius:14px; background:var(--surface); color:var(--text); box-shadow:0 12px 40px #0004; font-size:12px; line-height:1.5; text-align:left; }
.calendar-due-popover[hidden] { display:none; }
.due-popover-heading { display:block; font-size:11px; font-weight:500; color:var(--muted); margin-bottom:10px; }
.due-popover-item+.due-popover-item { border-top:1px solid var(--line); margin-top:10px; padding-top:10px; }
.due-popover-item strong,.due-popover-item span,.due-popover-item small { display:block; overflow-wrap:anywhere; white-space:pre-wrap; }
.due-popover-item strong { font-size:13px; font-weight:500; }
.due-popover-item span { color:var(--secondary); margin-top:4px; }
.due-popover-item small { color:var(--muted); margin-top:4px; }
.day-tasks { margin-top:24px; border-top:1px solid var(--border); padding-top:16px; }
.day-tasks>h2 { font-size:15px; margin-bottom:12px; }
.day-tasks>p { font-size:12px; line-height:1.7; }
.day-tasks .task-detail strong { font-size:13px; }
.cloud-app #task-dialog { inset:50% auto auto 50%; transform:translate(-50%,-50%); width:530px; max-height:calc(100dvh - 32px); overflow:auto; }
.cloud-app #task-dialog::backdrop { background:#0007; }
.cloud-app .task-end-day { display:flex; flex-direction:row; align-items:center; gap:10px; }
.cloud-app .task-end-day input { width:16px; height:16px; }
#task-form { display:grid; gap:18px; }
.task-editor-actions { display:flex; flex-wrap:wrap; gap:8px; }
#task-delete-summary { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; font-size:13px; }
#task-save-status,#task-status { font-size:13px; }
#task-pending { border:1px solid var(--border); padding:14px; border-radius:12px; margin:16px 0; font-size:12px; }
#task-pending button { margin:6px 8px 0 0; }
.cloud-app #space-description { max-width:520px; line-height:1.8; }
.cloud-app #today-date { margin-top:8px; font-size:13px; }
.cloud-app #today-events { max-width:980px; margin-top:24px; }
.cloud-app #today-events .plan-row { grid-template-columns:90px minmax(0,1fr); }
/* Same elapsed-minute geometry as the desktop Today timeline. */
.cloud-app #today-events { max-width:none; height:max(220px,calc(100dvh - 420px)); overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; position:relative; margin-top:16px; }
.cloud-app.tasks-enabled #today-events { height:max(180px,calc(100dvh - 590px)); }
.cloud-app #today-tasks .day-tasks { margin-top:16px; }
.cloud-day-canvas { position:relative; min-width:0; }
.cloud-hour-rule { position:absolute; left:76px; right:8px; height:1px; background:var(--line); pointer-events:none; }
.cloud-hour-rule.half { opacity:.42; }
.cloud-hour-label { position:absolute; left:0; width:62px; transform:translateY(-50%); text-align:right; font-size:12px; line-height:14px; color:var(--muted); }
.cloud-event-lane { position:absolute; left:76px; right:8px; pointer-events:none; }
.cloud-app .cloud-timed-event { position:absolute; top:0; height:100%; border:0; border-left:3px solid #8faac3; border-radius:6px; background:var(--surface); color:var(--text); padding:5px 8px; text-align:left; overflow:hidden; pointer-events:auto; box-shadow:inset 0 0 0 1px var(--border); }
.cloud-timed-event strong,.cloud-event-range,.cloud-event-location { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cloud-timed-event strong { font-size:14px; font-weight:500; }
.cloud-event-range,.cloud-event-location { margin-top:4px; font-size:12px; color:var(--secondary); }
.cloud-app .cloud-timed-event.compact-content { display:flex; align-items:center; gap:8px; padding-block:2px; }
.cloud-timed-event.compact-content strong { min-width:0; flex:0 1 auto; line-height:16px; }
.cloud-timed-event.compact-content .cloud-event-location { min-width:0; flex:1; margin-top:0; line-height:16px; }
.cloud-now-line { position:absolute; left:76px; right:8px; height:1px; background:#ef646b; z-index:3; pointer-events:none; }
.cloud-now-line::before { content:''; position:absolute; width:5px; height:5px; border-radius:50%; background:inherit; top:-2px; left:0; }
.cloud-now-label { position:absolute; right:0; top:0; transform:translateY(-50%); background:var(--canvas); color:#ef646b; font-size:11px; line-height:16px; padding-left:5px; }
.cloud-timeline-empty { position:absolute; left:90px; top:30px; color:var(--muted); font-size:13px; }
.cloud-compact-day { display:block; position:relative; width:100%; flex-shrink:0; min-height:18px; overflow:hidden; }
.cloud-app .cloud-compact-day .day-event { position:absolute; display:flex; flex-wrap:nowrap; align-items:center; gap:4px; margin:0; min-height:0; box-sizing:border-box; overflow:hidden; }
.cloud-app .cloud-compact-day .event-time { display:block; flex:0 0 auto; line-height:16px; }
.cloud-compact-day .cloud-now-line { left:0; right:0; }
.cloud-compact-day .cloud-now-label { font-size:9px; line-height:14px; }
.cloud-app #shell-dock { flex-shrink:0; padding-top:10px; }
.cloud-app #dock-composer { display:flex; align-items:center; gap:9px; width:min(100%,640px); margin:0 auto 4px; padding:9px 11px; border:1px solid var(--border); border-radius:32px; background:var(--surface); }
.cloud-app #dock-composer:focus-within { border-color:var(--muted); }
.cloud-app #dock-input { flex:1; min-width:0; resize:none; border:0; outline:0; background:transparent; line-height:24px; height:36px; padding:6px 0; font-size:14px; }
.cloud-app #dock-open-chat { width:34px; height:34px; flex-shrink:0; background:var(--raised); border-radius:50%; }
.cloud-app #dock-composer:has(textarea:not(:placeholder-shown)) #dock-open-chat { background:var(--accent); color:var(--on-accent); }
.cloud-app #cloud-orbit { height:124px; width:min(100%,600px); margin:4px auto 0; position:relative; overflow:clip; touch-action:pan-y; user-select:none; }
.cloud-app #cloud-orbit-items { position:absolute; width:100%; height:100%; }
.cloud-app .orbit-item { transition:none; }
.cloud-app .orbit-disc svg { transition:scale 180ms ease-out; }
.cloud-app .orbit-item:active .orbit-disc svg { scale:.96; }
.cloud-app .cloud-footer { padding:3px 0 8px; font-size:10px; min-height:25px; }

/* Keep the existing native dialog, focus handling and chat controller. */
.cloud-app #chat-dialog { inset:64px auto 153px 50%; transform:translateX(-50%); width:min(680px,calc(100vw - 48px)); height:auto; border:0; border-radius:0; background:transparent; box-shadow:none; }
.cloud-app #chat-dialog::backdrop { background:transparent; backdrop-filter:none; }
.cloud-app:has(#chat-dialog[open]) #workspace { filter:blur(5px); opacity:.34; }
.cloud-app:has(#chat-dialog[open]) #dock-composer { visibility:hidden; }
.cloud-app .cloud-chat-shell { padding:12px 18px 0; gap:10px; }
.cloud-app .cloud-chat-header h2 { font-size:13px; font-weight:400; letter-spacing:0; }
.cloud-app .cloud-chat-header p { display:none; }
.cloud-app .cloud-chat-header .plain { padding:6px 8px; font-size:11px; }
.cloud-app .cloud-chat-connection { background:var(--surface); border:0; border-radius:14px; }
.cloud-app .cloud-chat-composer { min-height:56px; border-color:var(--muted); border-radius:30px; align-items:center; padding:9px 11px 9px 20px; }
.cloud-app .cloud-chat-composer textarea { min-height:28px; }
.cloud-app .cloud-chat-message { border-radius:22px 22px 22px 6px; font-size:14px; }
.cloud-app .cloud-chat-message.user { border-radius:22px 22px 6px 22px; }
.cloud-app .cloud-chat-preview { background:var(--surface); }

.cloud-app #settings-dialog { inset:60px auto auto 50%; transform:translateX(-50%); width:min(760px,calc(100vw - 48px)); max-height:calc(100dvh - 90px); overflow:auto; background:var(--canvas); }
.cloud-app .shell-modal-heading { position:sticky; top:-20px; display:flex; align-items:center; gap:12px; background:var(--canvas); z-index:1; padding:14px 0; margin-bottom:12px; }
.cloud-app .shell-modal-heading h2 { font-size:24px; }
.cloud-app .setting-row { display:flex; }
.cloud-app .setting-row select { width:180px; }
.cloud-app #settings-dialog .settings-section { margin-top:24px; }
.cloud-app #settings-dialog h3 { margin:0; color:var(--muted); font-size:12px; font-weight:500; }
.cloud-app #settings-dialog .setting-row>span { min-width:0; }
.cloud-app #settings-dialog #account-label { max-width:none; text-align:left; font-size:13px; }
.cloud-app #settings-dialog #sign-out { flex-shrink:0; }
.cloud-app #reduce-motion { width:20px; height:20px; }
.cloud-app #shell-search-dialog { top:56px; max-height:calc(100dvh - 90px); overflow:auto; }
.cloud-app #shell-search-results { padding-top:12px; }

@media(max-width:760px) {
  .cloud-app #app { padding:0 16px; min-height:660px; }
  .cloud-app #calendar-panel:has(#calendar-surface:not([hidden])) { padding-inline:0; }
  .cloud-app .page-heading h1 { font-size:27px; }
  .cloud-app .cloud-heading-actions { width:100%; justify-content:flex-end; }
  .cloud-app .cloud-toolbar { font-size:10px; }
  .cloud-app .cloud-toolbar label { font-size:11px; }
  .cloud-app .cloud-toolbar select { width:165px; font-size:11px; }
  .cloud-app .cloud-toolbar .inline { gap:4px; }
  .cloud-app .calendar-grid { height:calc(var(--rows,5) * 116px); grid-template-rows:repeat(var(--rows,5),minmax(116px,1fr)); }
  .cloud-app.tasks-enabled .calendar-grid { height:calc(var(--rows,5) * 136px); grid-template-rows:repeat(var(--rows,5),minmax(136px,1fr)); }
  .cloud-app .day { padding:5px 3px; gap:3px; }
  .cloud-app .day-event { padding:1px 2px; }
  .cloud-app .cloud-compact-day .day-event { flex-direction:column; align-items:stretch; justify-content:center; gap:0; }
  .cloud-app .cloud-compact-day .event-time { line-height:14px; }
  .cloud-app .cloud-compact-day .event-title { flex:0 0 auto; line-height:13px; }
  .cloud-app .task-day-marker { left:3px; max-width:calc(100% - 6px); }
  .cloud-app .day-details { max-height:none; }
  .cloud-app .calendar-layout.with-aside { grid-template-columns:minmax(0,1fr); }
  .cloud-app #day-timeline { height:260px; }
  .cloud-app .calendar-layout.with-aside .inspector { grid-row:1; }
  .cloud-app #cloud-orbit { height:112px; }
  .cloud-app #dock-composer { padding:7px 9px; }
  .cloud-app #chat-dialog { inset:56px auto 133px 50%; width:calc(100vw - 24px); }
  .cloud-app .cloud-chat-shell { padding:6px 4px 0; gap:8px; }

  .cloud-app .cloud-chat-welcome { padding:12px 4px; }

  .cloud-app #settings-dialog { top:16px; width:calc(100vw - 24px); max-height:calc(100dvh - 32px); }
  .cloud-app .setting-row { gap:12px; }
}
html[data-reduced=true] .cloud-app button:active:not(:disabled) { scale:1; }
@media(prefers-reduced-motion:reduce) { .cloud-app button:active:not(:disabled) { scale:1; } }
/* Screenshot import keeps the existing chat layout and neutral event palette. */
.cloud-app .dock-capture-entry{display:flex;align-items:center;gap:12px;width:min(100%,640px);margin:0 auto 9px}
.cloud-app #dock-screenshot{display:flex;align-items:center;gap:9px;flex-shrink:0;padding:9px 14px 9px 10px;border:1px solid var(--border);border-radius:22px;background:var(--raised);font-size:13px}
.cloud-app #dock-screenshot img{width:24px;height:24px;border-radius:7px}
.cloud-app #dock-screenshot-hint{font-size:12px;line-height:1.5;color:var(--muted)}
.cloud-app:has(#chat-dialog[open]) .dock-capture-entry{visibility:hidden}
#screenshot-guide{padding:12px 2px 18px}
.screenshot-steps{display:flex;align-items:baseline;gap:12px;list-style:none;margin:0;padding:0;font-size:12px;color:var(--muted)}
.screenshot-steps li{display:flex;align-items:baseline;gap:12px}
.screenshot-steps li:not(:last-child)::after{content:'›';color:var(--muted)}
.screenshot-steps [aria-current=step]{color:var(--text);font-weight:600}
#screenshot-guidance{max-width:58ch;font-size:13px;line-height:1.65;margin:14px 0 10px}
#screenshot-shortcuts{font-size:12px;line-height:1.7;color:var(--muted)}
#screenshot-shortcuts summary{cursor:pointer;width:fit-content}
#screenshot-shortcuts summary:focus-visible{outline:2px solid var(--muted);outline-offset:4px}
#screenshot-shortcuts p{margin:8px 0}
#screenshot-shortcuts kbd{font:inherit;color:var(--text);white-space:normal}
#screenshot-shortcuts strong{display:inline-block;min-width:65px;font-weight:500}
.cloud-app #screenshot-capture{border:1px solid var(--border);border-radius:18px;background:var(--raised);padding:8px 12px}
@media(max-width:500px){.cloud-app .dock-capture-entry{gap:9px}.cloud-app #dock-screenshot-hint{font-size:11px}.screenshot-steps,.screenshot-steps li{gap:7px}.screenshot-steps{font-size:11px}}
.screenshot-tools,.screenshot-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.screenshot-tools{font-size:12px;margin:4px 0}
#screenshot-note{font-size:12px;line-height:1.5;margin:6px 0}
#screenshot-attachment:not([hidden]){display:flex;gap:12px;align-items:center;font-size:12px}
#screenshot-thumbnail{width:68px;height:58px;object-fit:contain;border-radius:8px;background:#292929}
.screenshot-card{padding:16px;margin:12px 0;border:1px solid var(--border,#424242);border-radius:14px;background:var(--calendar-event-bg,#303030);color:var(--calendar-event-text,#e2e2e2);overflow-wrap:anywhere}
.screenshot-card-heading{display:flex;justify-content:space-between;gap:12px}.screenshot-card-heading span{font-size:11px;opacity:.65}
.screenshot-card p{margin:7px 0;font-size:12px;line-height:1.5}.screenshot-card summary{cursor:pointer;font-size:12px;margin-top:12px}
.screenshot-card label{display:block;font-size:12px;margin-top:10px}.screenshot-card input:not([type=checkbox]){display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:8px;background:transparent;color:inherit;border:1px solid #747474;border-radius:6px}
.screenshot-card input[type=checkbox]{margin-right:8px}.screenshot-card details>button{margin-top:12px}.screenshot-issue{color:var(--calendar-due-text,#f1aaa4)}

/* Sign-in is a separate presentation surface; Auth IDs and controls stay intact. */
.cloud-app:has(#sign-in-panel:not([hidden])) { background:#141414; color:#f1f1ef; color-scheme:dark; }
.cloud-app #app:has(#sign-in-panel:not([hidden])) { height:auto; min-height:100svh; padding:0 32px; }
.cloud-app #app:has(#sign-in-panel:not([hidden])) > header { display:none; }
.cloud-app #page:has(#sign-in-panel:not([hidden])) { padding:0; overflow:visible; }
.cloud-app .auth-panel:not([hidden]) { --text:#f1f1ef; --secondary:#d0d0ce; --muted:#a3a3a1; --surface:#1b1b1b; --raised:#2c2c2c; --border:#3b3b3b; --accent:#ededeb; --on-accent:#171717; width:min(100%,400px); min-height:100svh; margin:0 auto; padding:64px 0; display:grid; grid-template-columns:1fr; align-content:center; gap:36px; animation:auth-arrive 380ms ease-out both; }
.auth-identity { min-width:0; }
.auth-brand { display:inline-flex; align-items:center; gap:13px; text-decoration:none; font-size:20px; font-weight:550; letter-spacing:.04em; }
.auth-brand img { border-radius:13px; transition:transform 280ms cubic-bezier(.2,.75,.2,1); }
.auth-brand:hover img { transform:rotate(-8deg); }
.auth-entry { position:relative; padding:24px 0; min-width:0; }
.auth-entry::before { display:none; }
.cloud-app .auth-panel h1 { margin:0; font-size:30px; line-height:1.2; letter-spacing:-.9px; font-weight:450; }
.cloud-app .auth-panel form { margin-top:32px; gap:0; }
.auth-panel #email-form > label { margin-bottom:9px; font-size:12px; color:#c8c8c5; }
.auth-panel #email { height:50px; padding:0 15px; border-radius:10px; border-color:#363636; background:#1c1c1c; color:#f1f1ef; font-size:14px; transition:border-color 160ms,box-shadow 160ms; }
.auth-panel #email::placeholder { color:#777775; }
.auth-panel #email:hover:not(:disabled) { border-color:#515151; }
.auth-panel #email:focus-visible { border-color:#92928e; outline:2px solid #d0d0ca; outline-offset:3px; }
.auth-panel #email:autofill { -webkit-text-fill-color:#f1f1ef; box-shadow:0 0 0 100px #232323 inset; }
.auth-panel #send-link,.auth-panel #continue-link { margin-top:14px; width:100%; min-height:48px; padding:12px 16px; border-radius:10px; font-size:13px; font-weight:500; background:#ededeb; color:#171717; box-shadow:0 1px 0 #ffffff99 inset,0 3px 10px #0002; }
.auth-panel #send-link:hover:not(:disabled),.auth-panel #continue-link:hover:not(:disabled) { background:#fff; box-shadow:0 1px 0 #fff inset,0 4px 16px #0003; }
.auth-panel #email-hint { text-align:center; color:#969694; font-size:11px; margin-top:13px; }
.auth-panel #link-review { margin-top:28px; font-size:13px; overflow-wrap:anywhere; }
.auth-panel #link-review > .plain { display:block; margin:10px auto 0; }
.auth-panel [role=status] { font-size:12px; line-height:1.7; margin-top:20px; color:#bdbdb9; }
.auth-panel [role=status]:empty { display:none; }
.auth-panel #retry-auth,.auth-panel #retry-logout { margin-top:12px; }
.auth-preview-note { margin-top:34px; color:#979793; font-size:11px; }
.auth-preview-note summary { cursor:pointer; width:fit-content; }
.auth-preview-note summary:hover { color:#d0d0ca; }
.auth-preview-note summary:focus-visible { outline:2px solid #d0d0ca; outline-offset:5px; border-radius:2px; }
.auth-preview-note .cloud-note { margin-top:12px; font-size:11px; line-height:1.8; max-width:39ch; }
@keyframes auth-arrive { from { opacity:.4; } to { opacity:1; } }
@media(max-width:760px) {
  .cloud-app #app:has(#sign-in-panel:not([hidden])) { padding:0 28px; }
  .cloud-app .auth-panel:not([hidden]) { width:min(100%,400px); grid-template-columns:1fr; align-content:center; gap:32px; padding:48px 0; }
  .auth-brand { font-size:19px; gap:12px; }
  .auth-brand img { width:38px; height:38px; }
  .auth-entry::before { display:none; }
  .auth-entry { padding:0; }
  .cloud-app .auth-panel h1 { font-size:29px; }
    .auth-preview-note { margin-top:28px; }
}
html[data-reduced=true] .auth-panel,html[data-reduced=true] .auth-brand img { animation:none!important; transition:none!important; transform:none!important; }
@media(prefers-reduced-motion:reduce) { .cloud-app .auth-panel,.auth-brand img { animation:none!important; transition:none!important; transform:none!important; } }

/* Web control finish. Presentation only: native controls and handlers are unchanged. */
.cloud-app {
  --control-top:#363636;
  --control-bottom:#292929;
  --control-edge:#ffffff18;
  --control-highlight:#ffffff12;
  --control-hover:#ffffff0a;
  --control-shadow:#00000024;
  --control-ease:cubic-bezier(.2,.75,.2,1);
}
html[data-theme=light] .cloud-app {
  --control-top:#ffffff;
  --control-bottom:#f1f1f1;
  --control-edge:#0000001c;
  --control-highlight:#ffffffcc;
  --control-hover:#00000005;
  --control-shadow:#0000000d;
}
.cloud-app button:not(.orbit-item):not(.day) {
  -webkit-tap-highlight-color:transparent;
  transition:scale 180ms var(--control-ease),background-color 140ms,border-color 140ms,box-shadow 140ms,color 140ms,opacity 140ms;
}
.cloud-app :is(button,input,select,textarea):focus-visible {
  outline:2px solid var(--secondary);
  outline-offset:3px;
}
.cloud-app :is(.plain,.quiet,.icon-button) {
  border:1px solid transparent;
  border-radius:12px;
  min-height:40px;
}
.cloud-app .icon-button { width:40px; height:40px; flex-shrink:0; }
.cloud-app .plain { color:var(--secondary); }
.cloud-app .quiet,
.cloud-app #dock-screenshot,
.cloud-app #screenshot-capture {
  background:linear-gradient(var(--control-top),var(--control-bottom));
  border:1px solid var(--control-edge);
  box-shadow:inset 0 1px 0 var(--control-highlight),0 2px 5px var(--control-shadow);
  color:var(--text);
  font-weight:500;
}
.cloud-app :is(.confirm-plan,#save-task) {
  min-height:42px;
  padding:11px 17px;
  border:1px solid var(--control-edge);
  border-radius:12px;
  background:var(--accent);
  color:var(--on-accent);
  box-shadow:inset 0 1px 0 #ffffff55,0 3px 9px var(--control-shadow);
  font-size:13px;
  font-weight:550;
}
.cloud-app :is(.quiet,.confirm-plan,#save-task):disabled {
  opacity:1;
  background:var(--surface);
  color:var(--muted);
  border-color:var(--border);
  box-shadow:none;
}
.cloud-app :is(.chat-actions,.cloud-chat-actions,.task-editor-actions,.screenshot-actions) { gap:8px; }
.cloud-app .cloud-heading-actions { gap:5px; }
.cloud-app :is(#new-event,#today-new,#new-task) {
  border-color:var(--control-edge);
  background:var(--surface);
  box-shadow:inset 0 1px 0 var(--control-highlight);
}
.cloud-app :is(#dock-composer,.cloud-chat-composer) {
  border-color:var(--control-edge);
  background:linear-gradient(165deg,var(--surface),var(--canvas));
  box-shadow:inset 0 1px 0 var(--control-highlight),0 5px 20px var(--control-shadow);
  transition:border-color 160ms,box-shadow 160ms;
}
.cloud-app :is(#dock-composer,.cloud-chat-composer):focus-within {
  border-color:var(--muted);
  box-shadow:inset 0 1px 0 var(--control-highlight),0 0 0 3px var(--control-hover),0 5px 20px var(--control-shadow);
}
/* The enclosing composer supplies the focus ring, not a second rectangle inside it. */
.cloud-app :is(#dock-input,#chat-input):focus-visible { outline:none; }
.cloud-app #dock-open-chat { width:40px; height:40px; border:1px solid var(--control-edge); }
.cloud-app #chat-send {
  width:auto;
  min-width:84px;
  height:40px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:0 13px;
  border:1px solid var(--control-edge);
  border-radius:22px;
  font-size:12px;
  font-weight:550;
  box-shadow:inset 0 1px 0 #ffffff55,0 2px 6px var(--control-shadow);
}
.cloud-app #chat-send svg { width:16px; height:16px; stroke-width:1.8; }
.cloud-app #chat-send:disabled { background:var(--raised); color:var(--muted); box-shadow:none; }
.cloud-app .cloud-chat-composer { padding-left:18px; }
.cloud-app .cloud-chat-header .plain { min-height:36px; padding:8px 12px; }

.cloud-app .screenshot-tools { gap:6px; }
.cloud-app #dock-screenshot { min-height:42px; border-radius:15px; padding:8px 14px 8px 9px; }
.cloud-app #screenshot-capture { min-height:38px; border-radius:12px; padding:8px 12px; }
.cloud-app #screenshot-attachment:not([hidden]) {
  padding:10px;
  border:1px solid var(--control-edge);
  border-radius:14px;
  background:var(--surface);
}
.cloud-app #screenshot-attachment>span { flex:1; min-width:0; }
.cloud-app #screenshot-remove { font-size:11px; padding:8px; }
.cloud-app .cloud-chat-preview { border-color:var(--control-edge); box-shadow:inset 0 1px 0 var(--control-highlight); }

.cloud-app :is(#event-dialog,#task-dialog,#settings-dialog,#shell-search-dialog) {
  border-color:var(--control-edge);
  box-shadow:inset 0 1px 0 var(--control-highlight),0 20px 70px #00000040;
}
.cloud-app :is(#event-dialog,#task-dialog,#settings-dialog,#shell-search-dialog)::backdrop { background:#0005; }
.cloud-app input:not([type=checkbox]),.cloud-app select {
  box-shadow:inset 0 1px 3px var(--control-shadow);
  transition:border-color 140ms,box-shadow 140ms;
}
.cloud-app .orbit-disc::before {
  background:linear-gradient(155deg,var(--control-top),var(--control-bottom));
  border-color:var(--control-edge);
  box-shadow:inset 0 1px 0 var(--control-highlight),0 5px 14px var(--control-shadow);
  transition:background-color 140ms,box-shadow 140ms;
}
/* The shell owns orbit-item transforms. Animate only its inner disc. */
.cloud-app .orbit-disc { transition:scale 180ms var(--control-ease); }
.cloud-app .orbit-item:active .orbit-disc { scale:.96; }
.cloud-app .orbit-item:active .orbit-disc svg { scale:1; }
.cloud-app .orbit-label { font-weight:500; }
@media(hover:hover) {
  .cloud-app :is(.plain,.icon-button):hover:not(:disabled) { background:var(--control-hover); border-color:var(--control-edge); color:var(--text); }
  .cloud-app :is(.quiet,#dock-screenshot,#screenshot-capture):hover:not(:disabled) { border-color:var(--muted); box-shadow:inset 0 1px 0 var(--control-highlight),0 3px 8px var(--control-shadow); }
  .cloud-app :is(.confirm-plan,#save-task,#chat-send):hover:not(:disabled) { background:var(--text); color:var(--on-accent); box-shadow:inset 0 1px 0 #ffffff77,0 4px 14px var(--control-shadow); }
  .cloud-app :is(#new-event,#today-new,#new-task):hover { background:var(--raised); }

  .cloud-app .orbit-item:hover .orbit-disc::before { box-shadow:inset 0 1px 0 var(--control-highlight),0 7px 18px var(--control-shadow); }
}
@media(max-width:500px) {
  .cloud-app .cloud-heading-actions { gap:3px; }
  .cloud-app #chat-send { min-width:74px; padding:0 11px; gap:5px; }
  .cloud-app .cloud-chat-composer { padding-left:14px; }
  .cloud-app #screenshot-attachment:not([hidden]) { gap:8px; }
  .cloud-app #screenshot-thumbnail { width:52px; height:48px; }
  .cloud-app #screenshot-attachment>span { font-size:11px; }
}
html[data-reduced=true] .cloud-app .orbit-disc,
html[data-reduced=true] .cloud-app .orbit-disc::before,
html[data-reduced=true] .cloud-app .orbit-disc :is(svg,img) { transition:none!important; scale:1!important; }
@media(prefers-reduced-motion:reduce) {
  .cloud-app .orbit-disc,.cloud-app .orbit-disc::before,.cloud-app .orbit-disc :is(svg,img) { transition:none!important; scale:1!important; }
}

/* One cloud-only composer surface. Calendar layout and storage are independent. */
.cloud-app #dock-composer { gap:6px; padding:8px; border-radius:25px; max-width:660px; }
.cloud-app #dock-input { font-size:13px; padding-inline:5px; }
.cloud-app #dock-screenshot { min-height:40px; height:40px; border:0; background:transparent; box-shadow:none; padding:8px 10px; gap:7px; font-size:12px; border-radius:15px; }
.cloud-app :is(#dock-screenshot,#dock-voice,#chat-voice,.composer-attachments) svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.cloud-app #chat-dialog { inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(720px,calc(100vw - 48px)); height:min(760px,calc(100dvh - 72px)); max-height:calc(100dvh - 32px); border:1px solid var(--control-edge); border-radius:26px; background:var(--canvas); box-shadow:inset 0 1px 0 var(--control-highlight),0 28px 100px #0008; }
.cloud-app #chat-dialog::backdrop { background:#0005; backdrop-filter:blur(6px); }
.cloud-app:has(#chat-dialog[open]) #workspace { filter:none; opacity:1; }
.cloud-app .cloud-chat-shell { padding:22px 24px 12px; gap:8px; }
.cloud-app .cloud-chat-header { justify-content:flex-end; padding:0; border:0; min-height:32px; }
.cloud-app .cloud-chat-tools .icon-button { width:32px; height:32px; color:var(--muted); }
.cloud-app .cloud-chat-tools .icon-button:hover { color:var(--text); }
.cloud-app .cloud-chat-transcript { padding:8px 0; min-height:48px; }
.cloud-app .cloud-chat-welcome { padding:12px 4px; font-size:14px; line-height:1.65; color:var(--secondary); }




.cloud-app .cloud-chat-message { font-size:14px; line-height:1.65; max-width:90%; border-radius:17px; padding:12px 15px; }
.cloud-app .cloud-chat-message.assistant { background:transparent; padding:12px 4px; }
.cloud-app #chat-feedback:empty,.cloud-app .cloud-chat-actions:not(:has(>button:not([hidden]))),.cloud-app .screenshot-actions:not(:has(>button:not([hidden]))) { display:none; }
.cloud-app .cloud-chat-preview { max-height:24dvh; background:var(--surface); }
.cloud-app .cloud-chat-composer { display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:14px 14px 10px; border-radius:20px; flex-shrink:0; }
.cloud-app .cloud-chat-composer:focus-within { box-shadow:inset 0 1px 0 var(--control-highlight); }
.cloud-app .cloud-chat-composer textarea { min-height:48px; max-height:105px; padding:2px 2px 0; font-size:14px; line-height:1.6; }
.cloud-app .composer-toolbar { display:flex; align-items:center; gap:6px; min-height:40px; }
.cloud-app .composer-spacer { flex:1; }
.cloud-app .composer-attachments { position:relative; }
.cloud-app .composer-attachments>summary { display:flex; align-items:center; gap:7px; min-height:40px; padding:8px 10px; border-radius:12px; font-size:12px; color:var(--secondary); cursor:pointer; list-style:none; }
.cloud-app .composer-attachments>summary::-webkit-details-marker { display:none; }
.cloud-app .composer-attachments>summary:focus-visible { outline:2px solid var(--muted); outline-offset:2px; }
.cloud-app .composer-attachments[open]>summary { background:var(--raised); color:var(--text); }
.cloud-app .composer-attachments .screenshot-tools { position:absolute; bottom:calc(100% + 10px); left:-2px; width:248px; padding:6px; margin:0; display:grid; gap:2px; z-index:5; background:var(--surface); border:1px solid var(--control-edge); box-shadow:inset 0 1px 0 var(--control-highlight),0 10px 30px #0005; border-radius:16px; }
.cloud-app .composer-attachments .screenshot-tools button { display:block; width:100%; height:auto; min-height:60px; border:0; border-radius:10px; background:transparent; box-shadow:none; color:var(--text); text-align:left; padding:11px 12px; }
.cloud-app .screenshot-tools strong { display:block; font-size:13px; font-weight:500; }
.cloud-app .screenshot-tools span { display:block; font-size:11px; color:var(--muted); margin-top:4px; }
.cloud-app .cloud-chat-composer :is(#chat-voice,#screenshot-remove) { width:40px; height:40px; min-height:40px; border-radius:12px; color:var(--secondary); background:transparent; box-shadow:none; font-size:20px; }
.cloud-app #chat-voice[aria-pressed=true] { background:var(--raised); color:var(--text); }
.cloud-app #chat-send { width:auto; min-width:84px; height:40px; border-radius:13px; font-size:12px; padding:0 13px; }
.cloud-app #screenshot-attachment:not([hidden]) { width:100%; max-width:100%; padding:7px 6px 7px 7px; gap:12px; background:var(--raised); border:0; border-radius:13px; }
.cloud-app #screenshot-thumbnail { width:60px; height:54px; border-radius:8px; background:var(--canvas); }
.cloud-app .attachment-copy { flex:1; min-width:0; display:grid; gap:4px; }
.cloud-app .attachment-copy strong { font-size:12px; font-weight:500; }
.cloud-app .attachment-copy span { font-size:11px; color:var(--muted); }
.cloud-app #screenshot-guide { padding:8px 2px 0; border-top:1px solid var(--line); }
.cloud-app #screenshot-guidance { margin:0; max-width:none; font-size:11px; line-height:1.5; color:var(--muted); }
.cloud-app #screenshot-shortcuts { margin-top:5px; font-size:11px; max-height:125px; overflow:auto; }
.cloud-app #screenshot-shortcuts summary { color:var(--secondary); }
.cloud-app .screenshot-steps { margin:10px 0 6px; font-size:11px; }

.cloud-app #voice-panel { flex:1 0 auto; min-height:270px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:18px 12px; text-align:center; }
.cloud-app #voice-panel[hidden] { display:none; }
.cloud-app .voice-mode #chat-form,.cloud-app .voice-mode #chat-welcome { display:none; }
.cloud-app .voice-mode.voice-has-draft #chat-form { display:flex; }
.cloud-app .voice-mode #chat-transcript { flex:0 1 150px; min-height:0; padding:0 4px; }
.cloud-app .voice-mode #chat-transcript:not(:has(.cloud-chat-message)) { display:none; }
.cloud-app .voice-mode .cloud-chat-message { font-size:13px; padding-block:8px; }
.cloud-app .voice-mode .cloud-chat-preview { max-height:24dvh; }
.cloud-app .voice-orb-stage { width:300px; height:300px; display:grid; place-items:center; flex-shrink:0; transition:width 500ms ease,height 500ms ease; }
.cloud-app #voice-orb { position:relative; display:grid; place-items:center; width:100%; height:100%; min-height:0; border:0; padding:0; border-radius:50%; background:transparent; box-shadow:none; isolation:isolate; }
.cloud-app #voice-orb:disabled { opacity:1; cursor:default; }
.cloud-app #voice-orb:focus-visible { outline:1px solid var(--secondary); outline-offset:0; }
.cloud-app #voice-particles { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.cloud-app .voice-logo-fallback { width:48%; height:48%; mix-blend-mode:screen; border-radius:24%; }
.cloud-app .particles-ready .voice-logo-fallback { visibility:hidden; }
.cloud-app #voice-panel[data-state=error] #voice-particles { opacity:.6; }
.cloud-app #chat-dialog.voice-mode { transition:background-color 450ms ease,border-color 450ms ease,box-shadow 450ms ease; }
.cloud-app #chat-dialog.voice-intro { background:transparent; border-color:transparent; box-shadow:none; transition:none; }
.cloud-app #chat-dialog.voice-intro::backdrop { background:#0009; backdrop-filter:blur(9px); }
.cloud-app .voice-intro .cloud-chat-shell> :not(#voice-panel) { display:none!important; }
.cloud-app .voice-intro #voice-panel { min-height:0; padding:0; gap:14px; }
.cloud-app .voice-intro #voice-disclosure { max-width:310px; margin-top:4px; }
.cloud-app .voice-revealed .cloud-chat-header,.cloud-app .voice-revealed #chat-transcript { animation:voice-chat-appear 450ms ease both; }
@keyframes voice-chat-appear { from { opacity:0; translate:0 10px; } to { opacity:1; translate:0 0; } }
.cloud-app .voice-heading { max-width:420px; min-height:66px; }
.cloud-app #voice-status { font-size:22px; line-height:1.3; font-weight:400; letter-spacing:-.4px; }
.cloud-app #voice-feedback { font-size:12px; line-height:1.5; color:var(--secondary); margin-top:8px; }
.cloud-app #voice-disclosure { max-width:340px; font-size:10px; line-height:1.5; color:var(--muted); margin:0; }
.cloud-app .voice-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.cloud-app .voice-actions button { font-size:12px; min-height:40px; padding:8px 15px; border-radius:20px; }
.cloud-app #voice-spoken-replies { display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:6px 12px; border:1px solid var(--border); border-radius:20px; color:var(--secondary); font-size:11px; background:transparent; }
.cloud-app #voice-spoken-replies:hover { background:var(--surface); }
.cloud-app #voice-spoken-replies:focus-visible { outline:2px solid var(--secondary); outline-offset:3px; }
.cloud-app #voice-spoken-state { padding-left:8px; border-left:1px solid var(--border); color:var(--text); }
.cloud-app #voice-spoken-replies[aria-checked=false] #voice-spoken-state { color:var(--muted); }
.cloud-app #voice-spoken-replies[aria-checked=true] .voice-sound-muted,.cloud-app #voice-spoken-replies[aria-checked=false] .voice-sound-waves { display:none; }
.cloud-app .voice-revealed #voice-panel { min-height:190px; flex:0 0 auto; gap:6px; padding:6px; }
.cloud-app .voice-revealed .voice-orb-stage { width:104px; height:104px; }
.cloud-app .voice-revealed #voice-status { font-size:18px; }
.cloud-app .voice-revealed .voice-heading { min-height:48px; }
.cloud-app .voice-revealed #voice-disclosure { display:none; }
@media(hover:hover) { .cloud-app .composer-attachments summary:hover,.cloud-app .composer-attachments button:hover:not(:disabled),.cloud-app #dock-screenshot:hover:not(:disabled) { background:var(--raised); box-shadow:none; } }
@media(max-width:600px) {
 .cloud-app #chat-dialog { inset:50% auto auto 50%; width:calc(100vw - 20px); height:calc(100dvh - 24px); max-height:calc(100dvh - 24px); border-radius:20px; }
 .cloud-app .cloud-chat-shell { padding:16px 14px 8px; gap:7px; }.cloud-app .cloud-chat-header { padding-bottom:12px; }

 .cloud-app .cloud-chat-composer { padding:12px 10px 8px; }.cloud-app .cloud-chat-composer textarea { font-size:16px; min-height:48px; }
 .cloud-app .cloud-chat-preview { max-height:23dvh; }
 .cloud-app #dock-screenshot span { display:none; }.cloud-app #dock-screenshot { width:40px; padding:10px; }
 .cloud-app #dock-composer { gap:2px; }.cloud-app #dock-input { font-size:12px; }
}
@media(max-height:620px) { .cloud-app #chat-dialog { height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); }.cloud-app .cloud-chat-shell { gap:5px; padding-block:12px 6px; }.cloud-app .cloud-chat-header { padding-bottom:6px; }.cloud-app .cloud-chat-composer textarea { min-height:32px; }.cloud-app .cloud-chat-preview { max-height:20dvh; } }
@media(max-height:700px) { .cloud-app .voice-intro .voice-orb-stage { width:180px; height:180px; }.cloud-app #voice-status { font-size:18px; }.cloud-app .voice-heading { min-height:54px; }.cloud-app .voice-mode #chat-transcript { flex-basis:70px; }.cloud-app .voice-mode .cloud-chat-preview { max-height:21dvh; } }
@media(prefers-reduced-motion:reduce) { .cloud-app .voice-mode,.cloud-app .voice-mode * { animation:none!important; transition:none!important; } }
html[data-reduced=true] .cloud-app .voice-mode,html[data-reduced=true] .cloud-app .voice-mode * { animation:none!important; transition:none!important; }
@media(max-height:620px) {
 .cloud-app .voice-mode .cloud-chat-shell { overflow-y:auto; }
 .cloud-app .voice-mode #voice-panel { min-height:150px; gap:4px; padding:4px; }
 .cloud-app .voice-revealed .voice-orb-stage { width:70px; height:70px; }
 .cloud-app .voice-intro .voice-orb-stage { width:120px; height:120px; }
 .cloud-app .voice-mode #chat-transcript { flex:0 0 60px; }
 .cloud-app .voice-mode #voice-disclosure { display:none; }
}
