/* 手机专属；本轮只保留首次消息流淡入，不追加按压缩放或 sheet 动画 */
:root { --assistant-input-height: 52px; }
#app { width: min(100%, var(--content-width)); left: 50%; right: auto; top: var(--viewport-offset-top, 0px); bottom: auto; translate: -50% 0; }
dialog { bottom: max(0px, calc(100dvh - var(--viewport-height) - var(--viewport-offset-top, 0px))); }
#toast { bottom: max(calc(var(--tabbar-height) + 16px), calc(100dvh - var(--viewport-height) - var(--viewport-offset-top, 0px) + 16px)); max-width: min(calc(100% - 32px), 398px); }
*, *::before, *::after { animation: none; transition: none !important; }
button:active:not(:disabled), a.btn:active, .h5-tab:active, .h5-nav-action:active, .h5-list-row:active { transform: none; }
.h5-list-enter, dialog[open] { animation: none; }
.archive-grid, .archive-collection, .archive-editorial, .members-grid, .member-grid, .form-two-columns, .two-cols { grid-template-columns: 1fr; }
.memory-stage { height: 320px; }
.as-home .h5-scroll { bottom: calc(var(--assistant-input-height) + var(--tabbar-height)); }
.as-composer-bar { bottom: var(--tabbar-height); height: var(--assistant-input-height); padding: 4px 8px; }
.as-composer { width: 100%; }
.as-conversation { padding: 16px 12px 20px; }
.as-message-flow { display: flex; flex-direction: column; gap: 16px; }
.as-row { display: flex; align-items: flex-start; gap: 8px; width: 100%; }
.as-avatar { width: 30px; height: 30px; flex: none; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--color-brand); color: var(--color-surface); font-size: var(--font-size-caption); font-weight: var(--font-weight-medium); margin-top: 1px; }
.as-bubble { min-width: 0; max-width: calc(100% - 38px); padding: 12px; border-radius: 10px; background: var(--color-surface); overflow-wrap: anywhere; }
.as-bubble > p:first-child { margin-top: 0; }
.as-bubble > p:last-child { margin-bottom: 0; }
.as-user { justify-content: flex-end; }
.as-user .as-bubble { background: var(--color-brand-light); max-width: 86%; }
.as-user .as-bubble p { white-space: pre-wrap; }
.as-timestamp { align-self: center; margin: 0; color: var(--color-text-tertiary); font-size: var(--font-size-caption); font-variant-numeric: tabular-nums; }
.as-gateway { background: var(--color-surface); border-radius: 12px; border: var(--hairline) solid var(--color-divider); margin-left: 38px; overflow: hidden; }
.as-entry { display: flex; align-items: center; width: 100%; gap: 10px; padding: 12px; min-height: 60px; text-align: left; border-bottom: var(--hairline) solid var(--color-divider); }
.as-entry:last-child { border-bottom: 0; }
.as-entry:active { background: var(--color-page); }
.as-entry-icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: none; background: var(--color-brand-light); color: var(--color-brand); border-radius: 10px; }
.as-entry-icon svg { width: 22px; height: 22px; stroke-width: 1.5; }
.as-entry-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.as-entry-copy strong { font-size: var(--font-size-body); font-weight: var(--font-weight-medium); }
.as-entry-copy > span { font-size: var(--font-size-meta); color: var(--color-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.as-entry .h5-chevron { margin-left: 0; }
.as-composer-row { display: flex; align-items: flex-end; gap: 8px; }
#assistant-input { height: 36px; min-height: 36px; max-height: 96px; flex: 1; min-width: 0; resize: none; border: 0; border-radius: 10px; background: var(--color-input); padding: 6px 10px; line-height: 24px; font-size: var(--font-size-title); }
#assistant-input:focus-visible { outline-offset: 1px; }
.as-send.btn.primary { height: 44px; min-height: 44px; width: 60px; flex: none; padding: 0 12px; }
.as-composer-context { height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--color-brand); font-size: var(--font-size-meta); padding: 0 2px; }
.as-composer-context .icon-btn { width: 30px; height: 30px; }
.as-composer-context .icon-btn svg { width: 16px; height: 16px; }
.as-keyboard-open .h5-tabbar { display: none; }
.as-keyboard-open .as-composer-bar { bottom: 0; height: calc(var(--assistant-input-height) + var(--safe-bottom)); padding-bottom: calc(4px + var(--safe-bottom)); }
.as-keyboard-open .h5-scroll { bottom: calc(var(--assistant-input-height) + var(--safe-bottom)); }
.as-note { font-size: var(--font-size-meta); color: var(--color-text-secondary); }
.as-error { font-size: var(--font-size-meta); color: var(--color-brand); background: var(--color-brand-light); padding: 8px; border-radius: 10px; }
.as-conditions { display: grid; gap: 12px; margin-top: 12px; }
.as-conditions label > span:first-child { display: block; font-size: var(--font-size-label); margin-bottom: 4px; }
.as-conditions select { font-size: var(--font-size-label); }
.as-conditions legend { margin-bottom: 8px; }
.as-conditions .daily-choice-list span { font-size: var(--font-size-meta); }
.as-condition-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.as-conditions .radio-label { font-size: var(--font-size-meta); }
.as-reply .as-bubble { flex: 1; }
.as-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.as-actions > .btn { width: 100%; }
.as-result-heading h2 { font-size: var(--font-size-body); }
.as-result-heading .btn { justify-content: flex-start; padding: 0; }
.as-candidate { border-top: var(--hairline) solid var(--color-divider); padding-top: 12px; margin-top: 12px; }
.as-candidate .avatar { width: 36px; height: 36px; }
.as-candidate h3 { font-size: var(--font-size-body); }
.as-candidate .member-line p, .as-candidate-role, .as-evidence p { font-size: var(--font-size-meta); color: var(--color-text-secondary); }
.as-candidate .member-line p { margin: 2px 0; }
.as-evidence { margin-top: 12px; }
.as-evidence strong { font-size: var(--font-size-label); }
.as-source-details { margin: 0; }
.as-source-details summary { font-size: var(--font-size-meta); color: var(--color-brand); }
.as-source-details a { display: block; font-size: var(--font-size-meta); color: var(--color-brand); margin-bottom: 8px; }
.as-draft-row { padding: 12px 0; border-bottom: var(--hairline) solid var(--color-divider); }
.as-draft-row p { font-size: var(--font-size-label); color: var(--color-text-secondary); overflow-wrap: anywhere; }
.as-event-row { display: flex; align-items: flex-start; gap: 12px; }
.as-event-row > img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; flex: none; }
.as-event-row > div { min-width: 0; flex: 1; }
.as-event-row p { font-size: var(--font-size-label); color: var(--color-text-secondary); }
.as-event-row .h5-chevron { margin-top: 4px; }
.as-event-photo { margin: 16px 0; }
#as-contact-text { height: 240px; }
#as-need-text { height: 160px; }
.as-first-enter { animation: as-first-enter var(--motion-list-duration) ease-out both; animation-delay: calc(var(--list-index, 0) * var(--motion-list-stagger)); }
@keyframes as-first-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .as-first-enter { animation: none; } }
@media (max-width: 359px) { .as-conversation { padding-left: 10px; padding-right: 10px; } .as-gateway { margin-left: 38px; } .as-entry { padding: 10px; gap: 8px; } }
