/* Pushed Ask view + assistant settings sheet (W2-D2). Tokens from app.css only (no hex); every class prefixed ask-. */
.ask-page{padding-bottom:0}
.ask-bannerhost:empty{display:none}
.ask-bannerhost{margin:4px 0 8px}
.ask-banner{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border-radius:var(--r-row);padding:14px;box-shadow:0 0 0 .5px var(--hair),var(--shadow);position:relative}
.ask-banner::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--warn)}
.ask-banner__ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface2);color:var(--warn)}
.ask-banner__ic svg{width:20px;height:20px}
.ask-banner__t{min-width:0;display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.45;color:var(--fg2)}
.ask-banner__t b{color:var(--fg);font-size:15.5px}
.ask-banner__btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ask-banner__btns .btn.sm,.ask-fallbacks .btn{height:44px}
.ask-banner__btns:empty{display:none}
/* what still works without the assistant: Today, Search, Hall map */
.ask-fallbacks{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ask-fallbacks .btn{flex:1 1 96px;padding:0 14px;font-size:15px}

/* first-use intro */
.ask-intro{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 0 4px}
.ask-intro[hidden]{display:none}
.ask-intro__logo{width:64px;height:64px;border-radius:20px;background:var(--ai);color:var(--accent-fg);display:grid;place-items:center;box-shadow:var(--shadow)}
.ask-intro__logo svg{width:32px;height:32px}
.ask-intro h2{margin:16px 0 0;font-size:21px;font-weight:740;letter-spacing:-.02em;text-wrap:balance}
.ask-intro p{margin:6px 0 0;color:var(--muted);font-size:14.5px;max-width:34ch}
.ask-intro__k{align-self:stretch;margin:24px 4px 8px;text-align:left;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ask-sugs{align-self:stretch;display:flex;flex-direction:column;gap:8px}
.ask-sug{display:flex;gap:12px;align-items:center;text-align:left;width:100%;min-height:56px;padding:12px 14px;border-radius:var(--r-row);background:var(--surface);box-shadow:0 0 0 .5px var(--hair);font-weight:600;font-size:15px;line-height:1.3}
.ask-sug:active{background:var(--surface2)}
.ask-sug__ic{flex:none;width:30px;height:30px;border-radius:10px;background:var(--ai);color:var(--accent-fg);display:grid;place-items:center}
.ask-sug__ic svg{width:17px;height:17px}
.ask-fine{color:var(--muted);font-size:12.5px;line-height:1.5;margin:18px 4px 0;max-width:60ch}
.ask-fine[hidden]{display:none}

/* messages */
.ask-list{display:flex;flex-direction:column;gap:2px;padding-top:4px}
.ask-row{display:flex;gap:8px;margin:8px 0;min-width:0}
.ask-row--user{justify-content:flex-end}
.ask-row--bot{align-items:flex-start}
.ask-av{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ai);color:var(--accent-fg);display:grid;place-items:center;margin-top:2px}
.ask-av svg{width:16px;height:16px}
.ask-col{flex:1;min-width:0}
.ask-b{font-size:15.5px;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}
.ask-b--user{max-width:86%;background:var(--accent);color:var(--accent-fg);padding:10px 14px;border-radius:20px 20px 6px 20px;white-space:pre-wrap}
.ask-b--bot{display:inline-block;max-width:100%;background:var(--surface);color:var(--fg);padding:10px 14px;border-radius:20px 20px 20px 6px;box-shadow:0 0 0 .5px var(--hair)}
.ask-b--err{display:flex;gap:10px;align-items:flex-start;color:var(--fg2)}
.ask-b--err svg{flex:none;width:20px;height:20px;color:var(--bad);margin-top:1px}
.ask-b p{margin:0 0 8px}
.ask-b p:last-child,.ask-b ul:last-child,.ask-b ol:last-child{margin-bottom:0}
.ask-b ul,.ask-b ol{margin:4px 0 8px;padding-left:20px}
.ask-b li{margin:3px 0}
.ask-b strong{font-weight:700}
.ask-b code.mono{background:var(--surface3);padding:1px 5px;border-radius:6px;font-size:13px}
.ask-b .booth{font-size:13px;padding:1px 6px}
.ask-typing{display:inline-flex;gap:5px;align-items:center;height:22px}
.ask-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:askDot 1.2s ease-in-out infinite}
.ask-typing i:nth-child(2){animation-delay:.18s}
.ask-typing i:nth-child(3){animation-delay:.36s}
@keyframes askDot{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
.ask-tool{display:flex;align-items:center;gap:8px;margin:8px 0 0 4px;color:var(--muted);font-size:13.5px}
.ask-tool[hidden]{display:none}
.ask-spin,.ask-set-spin{flex:none;width:16px;height:16px;border-radius:50%;border:2.5px solid var(--surface3);border-top-color:var(--accent);animation:askSpin .8s linear infinite}
@keyframes askSpin{to{transform:rotate(360deg)}}
.ask-cards{margin-top:10px}
.ask-cards[hidden]{display:none}
.ask-cards__k{margin:0 4px 6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ask-foot:empty{display:none}
.ask-foot{margin-top:8px}
.ask-stopped{color:var(--muted);font-size:12.5px;margin-left:4px}

/* composer */
.ask-composer[hidden]{display:none}
.ask-composer{flex:none;padding:8px 12px 10px;background:var(--bar);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -.5px 0 var(--hair2);position:relative;z-index:2}
.ask-box{display:flex;align-items:flex-end;gap:8px;max-width:760px;margin:0 auto}
.ask-ta{flex:1;min-width:0;display:flex;background:var(--surface);border-radius:22px;box-shadow:0 0 0 .5px var(--hair2);padding:0 16px}
.ask-ta:focus-within{box-shadow:0 0 0 2.5px var(--accent-line)}
.ask-ta textarea{flex:1;min-width:0;width:100%;border:0;outline:0;background:none;resize:none;font-size:16px;line-height:22px;padding:11px 0;max-height:132px;color:var(--fg);overflow-y:auto}
.ask-ta textarea::placeholder{color:var(--muted)}
.ask-btn{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.ask-btn[hidden]{display:none}
.ask-btn--send{background:var(--accent);color:var(--accent-fg)}
.ask-btn--send svg{width:21px;height:21px}
.ask-btn--send[disabled]{opacity:.4;pointer-events:none}
.ask-btn--stop{background:var(--surface3);color:var(--fg)}
.ask-stopsq{width:14px;height:14px;border-radius:3px;background:currentColor;display:block}

/* "Use my notes" toggle above the composer */
.ask-opts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:760px;margin:0 auto 6px;min-height:36px}
.ask-opts[hidden],.ask-notes[hidden],.ask-opts__hint[hidden]{display:none}
.ask-notes{position:relative;flex:none;height:34px;padding:0 8px 0 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;background:var(--surface);color:var(--fg2);box-shadow:0 0 0 .5px var(--hair2)}
.ask-notes::before{content:"";position:absolute;inset:-6px -2px}
.ask-notes svg{width:16px;height:16px;flex:none}
.ask-notes[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 .5px var(--accent-line)}
.ask-notes__sw{flex:none;width:28px;height:17px;border-radius:9px;background:var(--surface3);position:relative;transition:background .15s}
.ask-notes__sw::after{content:"";position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s var(--ease)}
.ask-notes[aria-pressed="true"] .ask-notes__sw{background:var(--accent)}
.ask-notes[aria-pressed="true"] .ask-notes__sw::after{transform:translateX(11px)}
.ask-opts__hint{flex:1 1 100%;min-width:0;color:var(--muted);font-size:12.5px;line-height:1.35}

/* mic in the composer, Listen button, confirmation cards */
.ask-mic{flex:none;display:flex;align-items:flex-end}
.ask-mic[hidden]{display:none}
.ask-listen{position:relative;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px 0 10px;border-radius:999px;background:var(--surface2);color:var(--fg2);font-weight:650;font-size:13.5px;box-shadow:0 0 0 .5px var(--hair)}
.ask-listen::before{content:"";position:absolute;inset:-6px -2px}
.ask-listen svg{width:17px;height:17px;flex:none}
.ask-listen[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.ask-foot:has(.ask-listen){display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ask-acts{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.ask-acts[hidden]{display:none}
.ask-act{position:relative;background:var(--surface);border-radius:var(--r-row);padding:12px 14px 12px 16px;box-shadow:0 0 0 .5px var(--hair),var(--shadow)}
.ask-act::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.ask-act[data-state="done"]::before{background:var(--good)}
.ask-act[data-state="cancelled"]::before{background:var(--hair2)}
.ask-act[data-state="error"]::before{background:var(--bad)}
.ask-act[data-state="confirm"]::before{background:var(--warn)}
.ask-act[data-state="running"]::before{background:var(--muted)}
.ask-act__t{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.02em}
.ask-act__t svg{width:16px;height:16px}
.ask-act__n{margin-top:6px;font-size:15.5px;line-height:1.35;overflow-wrap:anywhere}
.ask-act__n span{color:var(--muted)}
.ask-act__note{margin-top:2px;color:var(--muted);font-size:13.5px}
.ask-act__n b{font-weight:650}
.ask-act__l{margin:2px 0 0;padding-left:18px}
.ask-act__l li{margin:3px 0;font-size:14.5px;line-height:1.4}
.ask-act__more{min-height:44px;padding:0 4px;margin-left:-4px;color:var(--accent);font-weight:650;font-size:14px}
.ask-act[data-state="confirm"] .ask-act__s{color:var(--fg)}
.ask-act__b{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ask-act__b .btn{height:44px;font-size:15px}
.ask-act__b[hidden]{display:none}
.ask-act__s{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:14px;color:var(--fg2)}
.ask-act__s:empty{display:none}
.ask-act__s svg{width:18px;height:18px;flex:none}
.ask-act[data-state="done"] .ask-act__s{color:color-mix(in srgb,var(--good) 72%,var(--fg))}
.ask-act[data-state="error"] .ask-act__s{color:var(--bad)}
.ask-act[data-state="cancelled"] .ask-act__s{color:var(--muted)}

/* voice conversation */
.ask-vc{position:absolute;inset:0;z-index:7;background:var(--bg);display:flex;flex-direction:column;padding:calc(10px + var(--sat)) 16px calc(12px + var(--sab))}
.ask-vc[hidden]{display:none}
.ask-vc__top{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;font-size:17px}
.ask-vc__log{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:12px 4px;text-align:center}
.ask-vc__q{color:var(--muted);font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.ask-vc__a{font-size:19px;line-height:1.45;font-weight:560;overflow-wrap:anywhere}
.ask-vc__ctl{flex:none;display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px}
.ask-vc__st{min-height:24px;font-size:16px;font-weight:650;text-align:center}
.ask-vc__hint{min-height:18px;color:var(--muted);font-size:13px}
.ask-vc__mic{position:relative;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:var(--ai);color:var(--accent-fg);box-shadow:var(--shadow)}
.ask-vc__mic:active{transform:scale(.97)}
.ask-vc__glyph{position:relative;z-index:1;display:grid;place-items:center}
.ask-vc__glyph svg{width:44px;height:44px}
.ask-vc__glyph .ask-stopsq{width:26px;height:26px;border-radius:6px}
.ask-vc__ring{position:absolute;inset:0;border-radius:50%;background:var(--accent);opacity:.28;transform:scale(calc(1 + var(--lvl,0) * .55));transition:transform .09s linear}
.ask-vc[data-state="listening"] .ask-vc__ring{opacity:.32}
.ask-vc[data-state="thinking"] .ask-vc__mic,.ask-vc[data-state="speaking"] .ask-vc__mic{filter:saturate(.8)}
.ask-vc[data-state="thinking"] .ask-vc__ring{animation:askPulse 1.2s ease-in-out infinite}
.ask-vc[data-state="speaking"] .ask-vc__ring{animation:askPulse 1.6s ease-in-out infinite}
@keyframes askPulse{0%,100%{transform:scale(1);opacity:.16}50%{transform:scale(1.28);opacity:.34}}

/* one-time microphone consent sheet (R54) */
.ask-vcons__t{margin:4px 0 0;font-size:16px;font-weight:650;line-height:1.4}
.ask-vcons__x{margin:6px 0 16px;color:var(--fg2);font-size:15px;line-height:1.5}
.ask-vcons__b{display:flex;gap:8px;flex-wrap:wrap}
.ask-vcons__b .btn{flex:1 1 120px}

/* settings sheet voice switch */
.ask-set-check{appearance:none;-webkit-appearance:none;flex:none;width:51px;height:31px;margin:0;border-radius:16px;background:var(--surface3);position:relative;cursor:pointer;transition:background .15s}
.ask-set-check::after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .15s var(--ease)}
.ask-set-check:checked{background:var(--accent)}
.ask-set-check:checked::after{transform:translateX(20px)}
.ask-set-check:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}

/* settings sheet */
.ask-set-lead{margin:2px 0 12px;color:var(--fg2);font-size:14.5px}
.ask-set-note{margin:10px 4px 0;color:var(--muted);font-size:13.5px;line-height:1.5}
.ask-set-select{max-width:58%;height:40px;border:0;border-radius:12px;background:var(--surface3);padding:0 10px;font-size:16px;color:var(--fg)}
.ask-set-keybox{margin-top:2px}
.ask-set-key{letter-spacing:.04em}
.ask-set-err{color:var(--bad);font-size:13.5px;margin:6px 4px 0}
.ask-set-err:empty{display:none}
.ask-set-btns{display:flex;gap:8px;margin-top:10px}
.ask-set-result{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:14px;line-height:1.45;color:var(--muted)}
.ask-set-result:empty{display:none}
.ask-set-result svg{flex:none;width:19px;height:19px;margin-top:1px}
.ask-set-result.is-ok{color:color-mix(in srgb,var(--good) 72%,var(--fg))}
.ask-set-result.is-bad{color:var(--bad)}
.ask-set-spin{margin-top:2px}

@media (prefers-reduced-motion:reduce){
  .ask-typing i{animation:none;opacity:.7}
  .ask-spin,.ask-set-spin{animation:none;border-top-color:var(--accent);border-right-color:var(--accent)}
  .ask-notes__sw,.ask-notes__sw::after,.ask-set-check,.ask-set-check::after,.ask-vc__ring{transition:none}
  .ask-vc[data-state="thinking"] .ask-vc__ring,.ask-vc[data-state="speaking"] .ask-vc__ring{animation:none}
}

.ask-kind{margin-left:2px}
