/* Shared application presentation. Loaded after each surface's own stylesheet.
   Typography stays with each surface; product control behavior is shared. */
:root { --product-ink:#20201f; --product-paper:#fffdf8; --product-amber:#f0a23b; --product-focus:#9f5b0a; }
:where(.main,.auth-card,.auth-wrap) :is(label,input,select,textarea) { text-transform:none; letter-spacing:normal; }
.sidebar { overflow-y:auto; }
:is(.p-btn,.btn,.pricing-cta,.ob-download-primary) {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:2.75rem; height:auto; padding:.625rem 1rem; box-sizing:border-box;
  text-transform:none; letter-spacing:normal;
  background:transparent; border:1px solid var(--product-ink); color:var(--product-ink);
  transform:none; transition:background-color 160ms,color 160ms,border-color 160ms;
}
:is(.p-btn,.btn,.pricing-cta,.ob-download-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) {
  background:var(--product-ink); color:var(--product-paper); border-color:var(--product-ink); transform:none;
}
:is(.p-btn-primary,.btn-primary,.pricing-cta,.ob-download-primary) {
  background:var(--product-ink); color:var(--product-paper); border-color:var(--product-ink);
}
:is(.p-btn-primary,.btn-primary,.pricing-cta,.ob-download-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) {
  background:var(--product-amber); color:var(--product-ink); border-color:var(--product-ink); opacity:1;
}
:is(.p-btn,.btn,.pricing-cta,.ob-download-primary):active:not(:disabled) { filter:brightness(.94); transform:none; }
:is(.p-btn-compact,.btn-compact) { min-height:2.25rem; padding:.375rem .75rem; }
:is(.p-btn-danger,.btn-danger) { color:#b42318; border-color:#b42318; background:transparent; }
:is(.p-btn-danger,.btn-danger):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:#b42318; color:#fffdf8; border-color:#b42318; }
:is(button,.p-btn,.btn,[role=button]):is(:disabled,[aria-disabled=true],[data-product-busy]) {
  cursor:default; opacity:.5; transform:none; filter:none;
}
:is(button,a,input,textarea,select,summary,[tabindex]):focus-visible { outline:2px solid var(--product-focus); outline-offset:3px; }
button { text-transform:none; }
button svg,.p-btn svg,.btn svg { flex-shrink:0; }
.product-decode-label { position:relative; display:inline-block; white-space:pre; }
.product-decode-label > .product-label-original { color:transparent; }
.product-decode-label > .product-label-overlay { position:absolute; inset:0; pointer-events:none; overflow:hidden; white-space:pre; }
.product-label-overlay::before { content:attr(data-product-label); }
.product-spinner { width:1em; height:1em; display:inline-block; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:product-spin .8s linear infinite; }
@keyframes product-spin { to { transform:rotate(360deg); } }
.product-bursts { position:fixed; inset:0; z-index:2147483646; pointer-events:none; overflow:hidden; }
.product-burst { position:absolute; width:188px; height:188px; pointer-events:none; animation:product-stamp 1s ease-out both; }
.product-burst i { position:absolute; font:8px/1 monospace; font-style:normal; color:#f0a23b; text-shadow:0 1px 1px #20201f33; animation:product-glyph .62s ease-out both; }
.product-burst i:nth-child(even) { color:#9f5b0a; }
@keyframes product-stamp { from { transform:translate(-50%,-50%) scale(.62); opacity:1; } 55% { opacity:1; } to { transform:translate(-50%,-50%) scale(1.06); opacity:0; } }
@keyframes product-glyph { from { opacity:0; transform:scale(1.6); } 30%,75% { opacity:.8; transform:scale(1); } to { opacity:0; } }
.yourai-setup :is(.p-btn,.btn) { min-height:2.75rem; transform:none; }
.yourai-setup :is(.p-btn,.btn):hover { transform:none; }
.yourai-setup :is(.p-btn-primary,.btn-primary) { background:var(--product-ink); color:var(--product-paper); }
.yourai-setup :is(.p-btn-primary,.btn-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:var(--product-amber); color:var(--product-ink); opacity:1; }
@media(prefers-color-scheme:dark) {
  .yourai-setup :is(.p-btn,.btn):not(.p-btn-primary):not(.btn-primary) { color:#fffdf8; border-color:#fffdf8; }
  .yourai-setup :is(.p-btn,.btn):not(.p-btn-primary):not(.btn-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:#fffdf8; color:#20201f; }
}
@media(pointer:coarse) {
  :is(button,.p-btn,.btn,[role=button]) { min-width:2.75rem; min-height:2.75rem; }
}
@media(prefers-reduced-motion:reduce) {
  .product-bursts { display:none; }
  .product-spinner { animation:none; }
  :is(.p-btn,.btn,.pricing-cta,.ob-download-primary) { transition:none; }
}

/* Controls authored by the chat, onboarding and generated dashboard surfaces. */
.onboarding .ob-button { min-height:44px; border:1px solid var(--product-ink); background:transparent; color:var(--product-ink); transform:none; }
.onboarding .ob-button:is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:var(--product-ink); color:var(--product-paper); transform:none; }
.onboarding :is(.ob-primary,.ob-download-primary) { background:var(--product-ink); color:var(--product-paper); }
.onboarding :is(.ob-primary,.ob-download-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:var(--product-amber); color:var(--product-ink); }
.onboarding .ob-download-other { min-height:36px; }
:is(.chat-new,.account-subnav a,.dash-surface-button,.dash-profile-signout,.teams-message-dismiss,.teams-col-edit,.filter-pills button) { text-transform:none; letter-spacing:normal; }
:is(.chat-new,.filter-pills button,.teams-message-dismiss) { min-height:36px; }
@media(pointer:coarse) { .onboarding .ob-download-other,:is(.chat-new,.filter-pills button,.teams-message-dismiss) { min-height:44px; min-width:44px; } }

.onboarding .ob-download-other { padding:8px 12px; text-decoration:none!important; }
.yourai-setup :is(.p-btn,.btn):not(.p-btn-primary):not(.btn-primary) { border-color:var(--setup-ink); }
.yourai-setup :is(.p-btn,.btn):not(.p-btn-primary):not(.btn-primary):is(:hover,:focus-visible):not(:disabled):not([aria-disabled=true]):not([data-product-busy]) { background:var(--setup-ink); color:var(--setup-surface); }
/* Disabled controls keep their resting palette, including under a stationary pointer. */
:is(.p-btn,.btn,.ob-button,.pricing-cta):is(:disabled,[aria-disabled=true],[data-product-busy]) { background:transparent; color:var(--product-ink); filter:none; transform:none; }
:is(.p-btn-primary,.btn-primary,.ob-primary,.ob-download-primary,.pricing-cta):is(:disabled,[aria-disabled=true],[data-product-busy]) { background:var(--product-ink); color:var(--product-paper); }

.product-confirm { width:min(440px,calc(100vw - 48px)); padding:24px; margin:auto; border:1px solid var(--product-ink); background:#fffdf8; color:var(--product-ink); box-shadow:8px 8px 0 #20201f33; }
.product-confirm::backdrop { background:#20201f88; }
.product-confirm h2 { margin:0 0 16px; font:700 22px/1.2 Arial,sans-serif; }
.product-confirm p { margin:0 0 24px; font:13px/1.55 Arial,sans-serif; overflow-wrap:anywhere; }
.product-confirm-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.yourai-setup .product-confirm { border-radius:20px; }
.chat-history-status { margin:0; padding:8px 16px; font-size:13px; line-height:1.5; color:#c6d7c3; }
.chat-history-error { color:#ffc5ac; }

.yourai-setup .p-field label,.main .p-field label { text-transform:none; letter-spacing:normal; }
:is(.main,.auth-main) button:not(:is(.p-btn,.btn,.ob-button)) { min-height:36px; }
@media(pointer:coarse) { :is(.main,.auth-main) :is(button,a.p-btn,a.btn,a.ob-button) { min-height:44px!important; min-width:44px!important; } }
/* Account actions must remain visible above the next section. */
.account-section:has(.account-member-menu[open]),.reveal:has(.account-member-menu[open]) { overflow:visible; position:relative; z-index:45; }
.account-member-popover { max-height:min(420px,50dvh); overflow:auto; overscroll-behavior:contain; }
.onboarding .ob-button:not(.ob-download-primary) { padding:8px 12px; }
.onboarding .ob-memory-continue .ob-button { border:1px solid var(--product-ink); background:transparent; color:var(--product-ink); }
.onboarding .ob-memory-continue .ob-button:is(:hover,:focus-visible):not(:disabled) { background:var(--product-ink); color:var(--product-paper); }
.onboarding .ob-button[data-ob-primary] { background:var(--product-ink); color:var(--product-paper); }
.onboarding .ob-button[data-ob-primary]:is(:hover,:focus-visible):not(:disabled) { background:var(--product-amber); color:var(--product-ink); }

.product-pending-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Notifications are not implemented. Hide the placeholder and reclaim its column. */
.dash-notification { display:none!important; }
.topbar.dash-topbar:has(.dash-search) { grid-template-columns:minmax(120px,1fr) minmax(260px,360px); }
@media(max-width:920px) {
  .topbar.dash-topbar:has(.dash-search) { grid-template-columns:44px auto minmax(140px,1fr); }
}
@media(max-width:700px) {
  .topbar.dash-topbar:has(.dash-search) { grid-template-columns:44px minmax(0,1fr); }
}

/* Keep the composer quiet on pointer entry; keyboard users retain an inset focus cue. */
.chat-input textarea:focus-visible { outline:none; box-shadow:none; border-color:var(--line-strong); }
body[data-chat-keyboard] .chat-input textarea:focus-visible { outline:1px solid var(--muted); outline-offset:-3px; }
