:root{color-scheme:light;--ink:#172943;--muted:#526079;--blue:#244dcc;--blue-hover:#183ca8;--paper:#fff;--ground:#f4f6fa;--line:#d8dfeb;--soft:#eaf0ff;--error:#9b2437;--error-soft:#fff3f5;--error-line:#dba0aa;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:17px;line-height:1.55;color:var(--ink);background:var(--ground)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button{min-height:48px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:10px 17px;font-weight:600;line-height:1.35}button:hover{background:var(--soft);border-color:#94a7d3}button:disabled{cursor:wait;opacity:.6}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:var(--blue-hover);border-color:var(--blue-hover)}.quiet{background:transparent;border-color:transparent}a{color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}input,textarea{width:100%;border:1px solid #99a7bd;border-radius:10px;background:white;color:var(--ink);padding:12px;min-height:50px}textarea{resize:vertical;max-height:45vh}select{min-height:48px;background:transparent;border:1px solid transparent;color:var(--ink);padding:8px;border-radius:8px}label{display:block;font-weight:600;margin:16px 0 6px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:650;letter-spacing:-.04em;line-height:1.18}h2{font-size:1.2rem;font-weight:650;letter-spacing:-.015em}h3{font-size:1rem;font-weight:650}.site-header{max-width:1200px;margin:auto;padding:24px 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{font-size:2rem;color:var(--ink);font-weight:750;letter-spacing:-.08em;text-decoration:none;display:flex;align-items:center;gap:9px}.wordmark span{font-size:1.45rem;color:var(--blue);letter-spacing:0}.header-actions{display:flex;align-items:center;gap:8px}main{max-width:1200px;margin:auto;padding:12px 36px 40px}.login-panel{max-width:470px;margin:5vh auto 9vh;padding:12px}.intro-mark{font-size:3rem;color:var(--blue);margin-bottom:20px}.lead{color:var(--muted);margin:24px 0 30px;font-size:1.1rem}.login-panel .primary{width:100%;margin:24px 0 16px}.caption{font-size:.86rem;color:var(--muted);line-height:1.6}.eyebrow{color:var(--muted);font-size:.95rem;margin-bottom:6px}progress{display:block;width:100%;height:8px;margin:12px 0 16px;accent-color:var(--blue)}.notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 32px));padding:16px 20px;border:1px solid var(--error-line);background:var(--error-soft);color:var(--error);border-radius:12px;box-shadow:0 6px 25px #17294315;z-index:10}footer{max-width:1200px;margin:auto;padding:20px 36px 30px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.78rem}.skip-link{position:absolute;top:-100px;left:12px;background:white;padding:12px;z-index:20}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}

/* The helper screen: one column ordered by the helper's job, with the return to voice pinned in the header. */
.helper-open .site-header{position:sticky;top:0;z-index:5;background:var(--ground);padding:12px 36px;border-bottom:1px solid var(--line)}
.helper-open .wordmark{font-size:1.5rem}
.lock-visual{background:var(--ink);color:white;border-color:var(--ink)}
.lock-visual:hover{background:#223b60;color:white;border-color:#223b60}
.workspace{max-width:720px;margin:auto}
.helper-heading{padding:20px 0 24px}
.helper-heading .lead{margin:14px 0 0;font-size:1.05rem}
.helper-section{padding:28px 0;border-top:1px solid var(--line)}
.helper-section h2{margin-bottom:12px}
.helper-section h3{margin:20px 0 10px}
.helper-section>.caption{margin-bottom:8px}
.status-line{font-weight:600}
.status-line.attention{color:var(--error)}
.desktop-launch{display:block;width:100%;min-height:64px;font-size:1.1rem;margin-top:18px}
details{margin-top:16px}summary{min-height:44px;padding:8px 0;font-size:.95rem;color:var(--blue);font-weight:600}
dl{margin:0}dt{font-weight:600;margin-top:12px;font-size:.88rem;color:var(--muted)}dd{margin:4px 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.rdp-values{margin-top:8px}.rdp-value{overflow-wrap:anywhere;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;flex:1 1 150px}.rdp-value.secret{user-select:none;letter-spacing:.15em}.rdp-actions{display:flex;gap:8px;flex-shrink:0}
button.small{min-height:40px;padding:6px 12px;font-size:.85rem}
.task{padding:12px 0}.task+.task{border-top:1px solid var(--line)}.task-title{font-size:.95rem;overflow-wrap:anywhere;white-space:pre-wrap}.task-status{font-size:.85rem;color:var(--muted);margin:6px 0}.task button{font-size:.85rem;margin:6px 8px 0 0;min-height:44px}
.composer{margin-top:8px}.composer label{font-size:.95rem}.composer-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}
.suggestions{display:flex;flex-wrap:wrap;gap:8px}.suggestions button{background:transparent;font-size:.85rem;font-weight:500;min-height:40px;padding:6px 12px;text-align:left}
.reply-context{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--soft);border-radius:10px;font-size:.85rem}.reply-context button{font-size:.8rem;padding:8px;flex-shrink:0}
.message{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.message-heading{font-size:.78rem;color:var(--muted);margin-bottom:8px;display:flex;gap:10px;align-items:center}.message-content{white-space:pre-wrap}.message-user .message-content{font-weight:550}
.earlier{max-height:60vh;overflow-y:auto;overscroll-behavior:contain;scroll-padding:16px}
.issues{background:var(--error-soft);border:1px solid var(--error-line);color:var(--error);border-radius:12px;padding:14px 16px;margin:4px 0 12px}.issues h3{margin:0 0 8px;color:inherit}.issues ul{margin:0;padding-left:20px}.issues li{margin:4px 0}
.settings-group{padding:16px 0}.settings-group+.settings-group{border-top:1px solid var(--line)}.settings-group h3{margin-top:0}
.voice-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.voice-controls button{font-size:.9rem;flex:1 1 150px}
.facts dd{display:block}
.helper-open #language{border-color:#99a7bd;background:white;width:100%;max-width:320px;padding:10px 12px}
.helper-open #language-label{margin-top:0}
@media(max-width:820px){.site-header{padding:16px 20px}.helper-open .site-header{padding:10px 16px}main{padding:4px 20px 28px}.login-panel{margin:4vh auto}footer{padding:20px;flex-wrap:wrap}.header-actions{gap:0}select{max-width:150px}.helper-open #language{max-width:none}.lock-visual{font-size:.95rem;padding:8px 14px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s,border-color .15s}}

/* The voice screen is the account's home. Secondary controls are revealed deliberately. */
.voice-only{background:var(--ink);color:white}
.voice-only main{max-width:none;padding:0;position:relative;isolation:isolate;overflow:hidden}
.voice-home{min-height:100svh;min-height:100dvh;max-width:680px;margin:auto;display:flex;flex-direction:column;padding:calc(24px + env(safe-area-inset-top)) 28px calc(28px + env(safe-area-inset-bottom));text-align:center}
.voice-brand{font-size:1.6rem;font-weight:650;letter-spacing:-.06em}
.voice-presence{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;gap:24px}
.voice-orb{position:relative;--voice-energy:0;width:144px;height:144px;border:0;border-radius:50%;display:grid;place-items:center;color:#d5e0ff;background:transparent}
.voice-orb::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ink);filter:blur(5px);pointer-events:none}
.voice-orb svg{position:relative;z-index:1;width:60px;height:60px}
.light-wash{position:absolute;left:50%;top:50%;width:clamp(400px,90vmin,1000px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;background:radial-gradient(circle closest-side,#456b9f 0%,#456b9fe6 22%,#456b9f80 48%,#456b9f26 73%,#456b9f00 100%);opacity:0;will-change:opacity}
.orb-finish{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;opacity:var(--voice-energy);filter:blur(5px)}
.inner-glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 38% 28%,#dceaff40,transparent 60%),radial-gradient(ellipse at 65% 85%,#8ab9ff70,transparent 65%);box-shadow:inset 0 -5px 22px #8ab9ff20;transform:scale(calc(.94 + var(--voice-energy) * .06))}
.voice-home h1{font-size:clamp(2rem,6vw,3rem);line-height:1.2;letter-spacing:-.025em;max-width:100%}
.voice-home-hint{font-size:1.15rem;max-width:28ch;color:#d3dcee}
.voice-home .primary{min-height:72px;padding:16px 28px;font-size:1.15rem;background:#e5ecff;color:var(--ink);border:0}
.voice-home .primary:hover{background:white}
.voice-notice{max-width:32ch;font-size:1rem;color:#ffdddf}
.voice-home :focus-visible{outline-color:white}
.voice-home h1:focus{outline:none}
.unlock-control{width:min(100%,420px);align-self:center}
.unlock-control label{font-size:1.15rem;margin:0 0 16px;font-weight:550}
.unlock-track{position:relative;border-radius:44px}
.activation-splash{position:absolute;inset:1px;border-radius:43px;overflow:hidden;pointer-events:none}
.activation-splash::before{content:"";position:absolute;inset:0 auto 0 0;width:200%;opacity:0;background:linear-gradient(90deg,#a9caff00 0%,#a9caff00 15%,#a9caff44 35%,#e5efffb3 60%,#e5efffb3 100%)}
.unlock-track[data-activated="true"] .activation-splash::before{animation:slider-activation 340ms ease-out both}
@keyframes slider-activation{0%{opacity:0;transform:translateX(50%)}30%{opacity:.7}65%{opacity:.55;transform:translateX(-35%)}100%{opacity:0;transform:translateX(-45%)}}
#unlock-visual{display:block;appearance:none;-webkit-appearance:none;width:100%;height:80px;min-height:80px;padding:3px;margin:0;border:1px solid #879abb;border-radius:44px;background:linear-gradient(90deg,#36558255,#36558200),#223b60;box-shadow:inset 0 2px 7px #08172b28;transition:border-color .2s,box-shadow .2s;touch-action:none;cursor:grab}
#unlock-visual[data-ready="true"]{border-color:#edf4ff;box-shadow:0 0 0 1px #d5e0ff88,0 0 22px #a6c9ff40,inset 0 0 12px #abcaff14}
#unlock-visual[data-dragging="true"]:not([data-ready="true"]){border-color:#b3c7e9;box-shadow:inset 0 2px 7px #08172b28,0 0 18px #8ab9ff14}
#unlock-visual::-webkit-slider-thumb{box-shadow:0 2px 5px #08172b24,inset 0 1px 0 #ffffff80;transition:box-shadow .16s,transform .16s}
#unlock-visual::-moz-range-thumb{box-shadow:0 2px 5px #08172b24,inset 0 1px 0 #ffffff80;transition:box-shadow .16s,transform .16s}
#unlock-visual[data-dragging="true"]::-webkit-slider-thumb{transform:scale(.97);box-shadow:0 1px 3px #08172b30,inset 0 1px 0 #ffffffa0}
#unlock-visual[data-dragging="true"]::-moz-range-thumb{transform:scale(.97);box-shadow:0 1px 3px #08172b30,inset 0 1px 0 #ffffffa0}
@media(prefers-reduced-motion:reduce){#unlock-visual,#unlock-visual::-webkit-slider-thumb{transition:none}#unlock-visual::-moz-range-thumb{transition:none}.inner-glow{transform:none}.unlock-track[data-activated="true"] .activation-splash::before{transform:translateX(-35%);animation:slider-confirm 180ms ease-out both}@keyframes slider-confirm{0%,100%{opacity:0}40%{opacity:.35}}}
#unlock-visual:active{cursor:grabbing}
#unlock-visual::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:72px;height:72px;border:0;border-radius:50%;background:#e5ecff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M12 24h24m-10-10 10 10-10 10' fill='none' stroke='%23172943' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/42px no-repeat}
#unlock-visual::-moz-range-thumb{width:72px;height:72px;border:0;border-radius:50%;background:#e5ecff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M12 24h24m-10-10 10 10-10 10' fill='none' stroke='%23172943' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/42px no-repeat}
.lock-visual{display:block;width:100%;min-height:64px;background:var(--ink);color:white;border-color:var(--ink);font-size:1.1rem;margin:4px 0 20px}
.lock-visual:hover{background:#223b60;color:white}
@media(max-height:650px){.voice-presence{padding:24px 0;gap:16px}.voice-orb{width:88px;height:88px}.voice-orb svg{width:42px;height:42px}}

/* Compact desktop controls reserve the visible viewport for the remote screen. */
#desktop-dialog { padding: 0; margin: 0; position: fixed; inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: none; border: 0; background: #090c12; color: #edf0f6; overflow: hidden; }
#desktop-dialog[open] { display: flex; flex-direction: column; }
#desktop-dialog::backdrop { background: #090c12; }
.desktop-toolbar { display: flex; align-items: center; flex: 0 0 auto; gap: 4px; padding: max(3px, env(safe-area-inset-top)) max(4px, env(safe-area-inset-right)) 3px max(4px, env(safe-area-inset-left)); background: #171c26; border-bottom: 1px solid #ffffff14; }
.desktop-tools { display: flex; align-items: center; min-width: 0; overflow-x: auto; scrollbar-width: none; flex: 1; }
.desktop-tools::-webkit-scrollbar { display: none; }
#desktop-keys { display: flex; border-left: 1px solid #ffffff24; margin-left: 3px; padding-left: 3px; }
#desktop-dialog button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; min-width: 44px; padding: 11px; border: 0; border-radius: 8px; background: transparent; color: #d4dae5; }
#desktop-dialog button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#desktop-dialog button[aria-pressed="true"] { background: #dbe6ff; color: #183365; }
@media (hover: hover) { #desktop-dialog button:hover { background: #ffffff14; } }
#desktop-dialog button:active { background: #ffffff24; }
#desktop-dialog button:focus-visible, #desktop-surface > div:focus-visible { outline: 2px solid #ffd777; outline-offset: -2px; }
#desktop-dialog #desktop-close { color: #fff; margin-left: auto; }
#desktop-status { position: absolute; z-index: 2; top: 60px; left: 12px; right: 12px; text-align: center; font-size: 14px; pointer-events: none; }
#desktop-status.connected { width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#desktop-dialog #desktop-keyboard { position: absolute; top: 52px; left: 0; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; border: 0; opacity: 0; font-size: 16px; resize: none; pointer-events: none; }
#desktop-viewport { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding-bottom: env(safe-area-inset-bottom); }
#desktop-surface { width: max-content; }
#desktop-surface > div { touch-action: pan-x pan-y pinch-zoom; }

/* A single large target fills the phone when copying needs a gesture. */
#clipboard-panel { position: fixed; inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--ink); color: white; overscroll-behavior: contain; }
#clipboard-panel::backdrop { background: var(--ink); }
body:has(#clipboard-panel[open]) { overflow: hidden; }
#clipboard-copy { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; padding: max(90px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(90px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left)); background: var(--ink); color: white; font-size: clamp(2rem, 8vw, 3.5rem); line-height: 1.3; text-wrap: balance; }
#clipboard-copy:disabled { opacity: 1; }
#clipboard-panel :focus-visible { outline: 4px solid #ffd777; outline-offset: -8px; }
#clipboard-manual { padding: max(32px, env(safe-area-inset-top)) 24px 32px; max-width: 640px; margin: auto; font-size: 1.2rem; }
