/* Assistant (RWT_ASSISTANT=on). S1 tokens only; colour carries meaning (late/soon/wait/ok), nothing else.
 * Docked panel bottom-right (400 x min(640, 80vh)), the default is a full-height right sheet (460px, overlays the page); collapsible to the box, remembered, bottom sheet on phones. */
html[data-rwt-assistant="on"] .rwt-help-trigger, html[data-rwt-assistant="on"] .rwt-assistant { display: none !important; }
.asst-trigger { position: fixed; right: 24px; bottom: 24px; z-index: 850; min-height: 44px; padding: 10px 20px; border-radius: var(--s1-radius-pill); box-shadow: 0 6px 20px rgb(17 19 24 / .22); animation: s1-fade-in var(--s1-dur-2) var(--s1-ease) both; }
.asst-trigger[hidden] { display: none; }
.asst-ico { display: inline-flex; align-items: center; flex: none; }
.asst-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* panel */
.asst-panel { position: fixed; right: 24px; bottom: 24px; z-index: 860; box-sizing: border-box; width: min(400px, calc(100vw - 32px)); height: min(640px, 80dvh); display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 16px 48px rgb(17 19 24 / .22), 0 2px 8px rgb(17 19 24 / .08); transform-origin: bottom right; animation: s1-pop-in var(--s1-dur-3) var(--s1-ease-emph) both; }
.asst-panel--wide { top: 0; right: 0; bottom: 0; width: min(460px, 100vw); height: auto; border-radius: 0; border-width: 0 0 0 1px; transform-origin: right center; animation: s1-fade-in var(--s1-dur-3) var(--s1-ease) both; }
.asst-head { flex: none; display: flex; align-items: center; gap: var(--s1-space-2); border-radius: 0; padding: var(--s1-space-3) var(--s1-space-4); }
.asst-panel:not(.asst-panel--wide) .asst-head { border-radius: var(--s1-radius-panel) var(--s1-radius-panel) 0 0; }
.asst-title { display: inline-flex; align-items: center; gap: var(--s1-space-2); margin: 0; font: 700 16px/1.3 var(--s1-font-display); letter-spacing: -.01em; }
.asst-ctx { margin: 0 0 0 auto; }
.asst-kbd { font: 600 11px/1 var(--s1-font-ui); color: var(--s1-mute); border: 1px solid var(--s1-line); border-bottom-width: 2px; border-radius: 5px; padding: 3px 5px; background: var(--s1-panel); }
.asst-expand[aria-pressed="true"] { background: var(--s1-column); }
.asst-expand[aria-pressed="true"] .s1-icon { transform: rotate(180deg); }
.asst-tabs { flex: none; flex-wrap: nowrap; gap: 0; padding: 0 var(--s1-space-2); border-top: 0; border-bottom: 1px solid var(--s1-line-soft); overflow-x: auto; scrollbar-width: none; }
.asst-tabs::-webkit-scrollbar { display: none; }
.asst-tabs .s1-tab { flex: 1 1 auto; justify-content: center; padding: var(--s1-space-3) 6px; font-size: 13px; white-space: nowrap; min-height: 44px; box-sizing: border-box; }
.asst-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: var(--s1-space-3); padding: var(--s1-space-4); animation: s1-fade-in var(--s1-dur-2) var(--s1-ease) both; }
.asst-body--ask { overflow: hidden; }
.asst-quiet { margin: 0; color: var(--s1-mute); font: var(--s1-text-small)/1.5 var(--s1-font-ui); }
.asst-help-note { padding-top: var(--s1-space-1); }
.asst-h { margin: 0 0 var(--s1-space-2); font: 700 var(--s1-text-small)/1.4 var(--s1-font-ui); color: var(--s1-ink-2); }
.asst-status { margin: 0; }

/* rows */
.asst-list { display: grid; gap: var(--s1-space-1); }
.asst-row { display: flex; align-items: center; gap: var(--s1-space-3); width: 100%; min-height: 44px; box-sizing: border-box; padding: 8px var(--s1-space-3); border: 1px solid var(--s1-line-soft); border-radius: var(--s1-radius-control); color: var(--s1-ink); text-decoration: none; background: var(--s1-panel); font: inherit; text-align: left; cursor: pointer; transition: background-color var(--s1-dur-1) var(--s1-ease), border-color var(--s1-dur-1) var(--s1-ease); }
.asst-row--static { cursor: default; }
.asst-row:hover { background: var(--s1-panel-head); border-color: var(--s1-line); }
.asst-row:focus-visible { outline: 2px solid var(--s1-ink); outline-offset: 2px; }
.asst-row-text { display: grid; gap: 1px; min-width: 0; flex: 1 1 auto; }
.asst-row-title { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.asst-row-meta { color: var(--s1-mute); font-size: var(--s1-text-small); line-height: 1.4; overflow-wrap: anywhere; }
.asst-go { display: inline-flex; color: var(--s1-mute); flex: none; transition: transform var(--s1-dur-1) var(--s1-ease); }
.asst-row:hover .asst-go { transform: translateX(2px); color: var(--s1-ink); }
.asst-tone-red .asst-ico, .asst-tone-red .asst-row-meta { color: var(--s1-late); }
.asst-tone-amber .asst-ico, .asst-tone-amber .asst-row-meta { color: var(--s1-soon); }
.asst-tone-blue .asst-ico, .asst-tone-blue .asst-row-meta { color: var(--s1-wait); }
.asst-find { display: block; flex: none; }
.asst-find-out { display: grid; gap: var(--s1-space-4); animation: s1-rise-in var(--s1-dur-2) var(--s1-ease) both; }
.asst-section { display: block; }

/* states */
.asst-state { display: grid; justify-items: center; gap: var(--s1-space-2); text-align: center; padding: var(--s1-space-6) var(--s1-space-3); animation: s1-rise-in var(--s1-dur-2) var(--s1-ease) both; }
.asst-state-badge { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--s1-radius-pill); background: var(--s1-column); color: var(--s1-ink-2); }
.asst-state--ok .asst-state-badge { color: var(--s1-ok); }
.asst-state-title { margin: 0; font: 700 15px/1.35 var(--s1-font-display); color: var(--s1-ink); text-wrap: balance; }
.asst-state-text { margin: 0; max-width: 34ch; color: var(--s1-mute); font: var(--s1-text-small)/1.55 var(--s1-font-ui); text-wrap: pretty; }
.asst-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s1-space-2); margin-top: var(--s1-space-2); }
.asst-skel { display: grid; gap: var(--s1-space-1); }
.asst-skel-row { display: block; height: 44px; border-radius: var(--s1-radius-control); background: linear-gradient(90deg, var(--s1-column) 0%, var(--s1-panel-head) 50%, var(--s1-column) 100%); background-size: 200% 100%; animation: asst-shimmer 1.4s var(--s1-ease) infinite; }
@keyframes asst-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* Ask */
.asst-log { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: grid; gap: var(--s1-space-4); align-content: start; padding-bottom: var(--s1-space-2); }
.asst-intro { display: grid; gap: var(--s1-space-2); }
.asst-chips { display: flex; flex-wrap: wrap; gap: var(--s1-space-2); }
.asst-msg { display: grid; gap: 4px; animation: s1-rise-in var(--s1-dur-2) var(--s1-ease) both; }
.asst-who { font: 700 var(--s1-text-micro)/1.4 var(--s1-font-ui); color: var(--s1-mute); text-transform: uppercase; letter-spacing: .04em; }
.asst-text { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 70ch; line-height: 1.55; }
.asst-msg--user .asst-text { background: var(--s1-column); border-radius: var(--s1-radius-control); padding: 8px 12px; width: fit-content; max-width: 100%; box-sizing: border-box; }
.asst-think { display: inline-flex; gap: 5px; padding: 6px 2px; }
.asst-think i { width: 6px; height: 6px; border-radius: 50%; background: var(--s1-mute); opacity: .35; animation: asst-dot 1.2s var(--s1-ease) infinite; }
.asst-think i:nth-child(2) { animation-delay: .15s; } .asst-think i:nth-child(3) { animation-delay: .3s; }
@keyframes asst-dot { 0%, 60%, 100% { opacity: .3; transform: none; } 30% { opacity: 1; transform: translateY(-2px); } }
.asst-proposal { margin-top: var(--s1-space-2); }
.asst-proposal-head { font-size: var(--s1-text-small); }
.asst-draft { width: 100%; box-sizing: border-box; min-height: 110px; }
.asst-proposal-foot { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s1-space-2); }
.asst-applied { margin-left: auto; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.asst-ok { color: var(--s1-ok); }
.asst-ok .s1-icon { animation: s1-check-in var(--s1-dur-3) var(--s1-ease-emph) both; }
.asst-form { flex: none; display: grid; gap: var(--s1-space-2); border-top: 1px solid var(--s1-line-soft); padding-top: var(--s1-space-3); }
.asst-form textarea { width: 100%; box-sizing: border-box; resize: none; }
.asst-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s1-space-3); }
.asst-priv { display: inline-flex; align-items: center; gap: 4px; }
.asst-msgline:empty { display: none; }

@media (max-width: 640px) {
  .asst-trigger { right: 16px; bottom: 100px; }
  .asst-panel, .asst-panel--wide { top: auto; left: 0; right: 0; bottom: 0; width: 100%; height: min(92dvh, 100dvh - 24px); border-width: 1px 0 0; border-radius: var(--s1-radius-panel) var(--s1-radius-panel) 0 0; transform-origin: bottom center; animation: s1-sheet-in var(--s1-dur-3) var(--s1-ease-emph) both; padding-bottom: env(safe-area-inset-bottom); }
  .asst-panel .asst-kbd, .asst-panel .asst-expand { display: none !important; }
  .asst-form textarea, .asst-find .s1-field-control { font-size: 16px; }
  .asst-tabs .s1-tab { padding-left: 4px; padding-right: 4px; gap: 3px; font-size: 12.5px; }
  .asst-tabs .s1-tab .asst-ico { display: none; }
  .asst-body { padding: var(--s1-space-3); }
}
@media (prefers-reduced-motion: reduce) {
  .asst-trigger, .asst-panel, .asst-panel--wide, .asst-body, .asst-state, .asst-find-out, .asst-msg { animation: s1-fade-in var(--s1-dur-1) linear both; }
  .asst-skel-row, .asst-think i { animation: none; }
  .asst-think i { opacity: .6; }
  .asst-ok .s1-icon, .asst-go, .asst-expand .s1-icon { animation: none; transition: none; transform: none; }
}
@media (forced-colors: active) { .asst-panel { border: 1px solid CanvasText; } .asst-row { border-color: CanvasText; } }
.asst-av { display: inline-flex; flex: none; }
.asst-chip--person { display: inline-flex; align-items: center; gap: var(--s1-space-2); }

/* Suggestions tab */
.asst-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 4px; border-radius: var(--s1-radius-pill); background: var(--s1-ink); color: var(--s1-on-ink); font: 700 11px/1 var(--s1-font-ui); }
.asst-sg { margin-top: var(--s1-space-2); }
.asst-panel .asst-tabs { flex-wrap: nowrap; overflow-x: auto; }
.asst-tabs .s1-tab { flex: 1 0 auto; padding-left: 6px; padding-right: 6px; }
.asst-tabs .s1-tab .asst-ico { display: none; }
.asst-tab-label { white-space: nowrap; }
.asst-badge { vertical-align: middle; }
