.attachment-tray{display:grid;gap:8px;width:100%;max-width:760px;margin:12px auto 8px;text-align:left}.attachment-tray[hidden]{display:none}.attachment-staged,.attachment-card{border:1px solid var(--luli-container);border-radius:12px;background:var(--luli-soft);color:var(--luli-ink);padding:14px;min-width:0}.attachment-staged{display:flex;gap:12px;align-items:center}.attachment-info{display:grid;gap:5px;min-width:0;flex:1}.attachment-info strong{font-size:14px;overflow-wrap:anywhere;font-weight:600;line-height:1.4}.attachment-info small,.attachment-hint{font-size:12px;line-height:1.6;color:var(--luli-muted)}.attachment-format{display:grid;place-items:center;flex:none;min-width:42px;height:44px;padding:4px;font-size:11px;letter-spacing:.04em;background:var(--luli-surface);border-radius:6px;color:var(--luli-ink)}.attachment-purpose{font:inherit;font-size:12px;max-width:100%;min-height:36px;color:inherit;background:var(--luli-surface);border:1px solid var(--luli-container);border-radius:5px;padding:5px}.attachment-button{font:inherit;font-size:13px;min-height:40px;padding:7px 10px;border:1px solid var(--luli-container);border-radius:6px;background:var(--luli-soft);color:var(--luli-on);cursor:pointer}.attachment-button:hover{background:var(--luli-primary)}.attachment-button:focus-visible,.attachment-purpose:focus-visible{outline:2px solid var(--luli-focus);outline-offset:3px}.attachment-button:disabled{opacity:.5;cursor:wait}.attachment-origin{font-size:11px;letter-spacing:.07em;color:var(--luli-ink)}.attachment-card-head{display:flex;gap:12px;margin:10px 0}.attachment-status{font-size:12px;line-height:1.6;margin:8px 0;color:var(--luli-muted)}.attachment-card[data-status=failed] .attachment-status,.attachment-warning{color:var(--luli-error)}.attachment-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 0}.message-attachments{display:grid;gap:10px;max-width:100%;width:min(420px,100%);min-width:0;grid-column:2;flex-basis:100%;margin-top:8px}.chat-row.user{flex-wrap:wrap}.chat-row.user .message-attachments{margin-left:auto}.attachment-mini{width:48px;height:56px;object-fit:contain}.attachment-thumbnail{width:100%;max-height:220px;object-fit:contain;display:block}.attachment-image-button{width:100%;background:var(--luli-soft)}.attachment-dialog{width:min(780px,calc(100vw - 32px));max-height:90dvh;border:1px solid var(--luli-container);border-radius:14px;background:var(--luli-surface);color:var(--luli-ink);padding:24px;overflow:auto}.attachment-dialog::backdrop{background:var(--luli-surface)}.attachment-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--luli-structure);padding-bottom:15px}.attachment-dialog-head h2{font-size:20px;overflow-wrap:anywhere}.attachment-detail{display:grid;gap:15px;margin-top:16px;font-size:14px;line-height:1.7}.attachment-field{display:grid;gap:8px}.attachment-field input{padding:10px;font:inherit;border:1px solid var(--luli-control);background:var(--luli-surface);color:inherit}.attachment-extracted{width:100%;min-height:190px;padding:14px;resize:vertical;border:1px solid var(--luli-container);border-radius:8px;background:var(--luli-surface);color:inherit;font:inherit;line-height:1.8}.attachment-full-image{width:100%;height:auto;object-fit:contain}.attachment-pdf{height:65dvh;width:100%;border:0}.attachment-page h3{font-size:14px;margin-bottom:8px}.attachment-tray:has(.attachment-staged)~.chat-composer{margin-top:0}@media(max-width:700px){.attachment-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:18px}.message-attachments{width:100%}.attachment-tray{padding:0 12px;max-height:210px;overflow:auto}.attachment-staged{padding:10px}.attachment-button{min-height:44px}.attachment-dialog-head{position:sticky;top:-18px;background:var(--luli-surface);z-index:1;padding-top:10px}}

/* File and image attachments are compact, in-composer and in-message chips. */
#assistant .hero .talk:has(> .attachment-tray:not([hidden])),#assistant .workspace-center .chat-composer:has(> .attachment-tray:not([hidden])){height:calc(var(--composer-height,68px) + var(--attachment-tray-height,42px))!important}
#assistant .talk:has(> .attachment-tray:not([hidden])) .prompt-field{top:calc(var(--composer-field-top,16px) + var(--attachment-tray-height,42px))}
#assistant .chat-composer:has(> .attachment-tray:not([hidden]))>.composer-input{top:calc(var(--composer-field-top,16px) + var(--attachment-tray-height,42px))}
.attachment-tray{position:absolute;top:9px;left:10px;right:10px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:auto;max-width:none;margin:0;padding:0 2px 4px;max-height:86px;overflow:auto}
.attachment-tray[hidden]{display:none}
.attachment-staged,.attachment-compact{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:min(240px,100%);height:34px;padding:0 5px 0 9px;border:1px solid var(--luli-container);border-radius:9px;background:var(--luli-soft);color:var(--luli-ink);box-shadow:none}
.attachment-staged{flex:none}
.attachment-compact-icon{display:grid;place-items:center;flex:none;width:18px;height:18px;color:var(--luli-ink)}
.attachment-compact-icon svg{width:18px;height:18px;display:block}
.attachment-compact-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;font-weight:550}
.attachment-staged .attachment-remove{display:grid;place-items:center;flex:none;width:25px;height:25px;min-width:25px;min-height:25px;margin:0 0 0 1px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--luli-ink);font:20px/1 inherit}
.attachment-staged .attachment-remove:hover{background:var(--luli-soft);color:var(--luli-ink)}
.attachment-staged .attachment-remove:focus-visible,.attachment-compact-main:focus-visible{outline:2px solid var(--luli-focus);outline-offset:3px}
.message-attachments{display:flex;flex-wrap:wrap;gap:6px;width:auto;max-width:100%;margin-top:8px;grid-column:auto;flex-basis:auto}
.chat-row.user .message-attachments{margin-left:0}
.attachment-compact{height:32px;padding:0;max-width:min(250px,100%);background:var(--luli-surface)}
.attachment-compact-main{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;width:100%;height:100%;min-height:0;padding:0 10px;border:0;border-radius:inherit;background:transparent;color:inherit;cursor:pointer}
.attachment-compact-main:hover{background:var(--luli-surface)}
.attachment-compact-main:disabled{cursor:default;opacity:.55}
.attachment-compact[data-status=failed],.attachment-compact[data-status=partial]{border-color:var(--luli-container)}
.workspace-center:has(.chat-composer > .attachment-tray:not([hidden])) .chat-body{padding-bottom:215px}
@media(max-width:700px){.attachment-tray{max-height:88px;padding:0 1px 4px}.attachment-staged{max-width:min(195px,100%);padding:0 4px 0 7px}.attachment-compact{max-width:min(220px,100%)}.message-attachments{width:auto}.attachment-staged .attachment-remove{min-width:25px;min-height:25px}}

/* Sent messages expand by media type; the compact form is composer-only. */
.message-attachments .attachment-message-file{width:min(380px,100%);max-width:100%;padding:11px 12px;border-radius:10px;background:var(--luli-surface);box-shadow:none}
.message-attachments .attachment-message-file .attachment-card-head{margin:6px 0}
.message-attachments .attachment-message-file .attachment-info strong{font-size:13px}
.message-attachments .attachment-message-file .attachment-actions{margin-top:7px}
.message-attachments .attachment-image-message{display:block;min-width:0;width:min(240px,100%);max-width:100%;margin:0;border:1px solid var(--luli-container);border-radius:10px;overflow:hidden;background:var(--luli-surface)}
.attachment-image-message-button{display:block;width:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--luli-on);text-align:left;cursor:pointer}
.attachment-image-message-button:focus-visible{outline:2px solid var(--luli-focus);outline-offset:-3px}
.attachment-image-message-button:disabled{cursor:default;opacity:.6}
.attachment-image-frame{display:grid;place-items:center;width:100%;min-height:94px;max-height:220px;overflow:hidden;background:var(--luli-surface)}
.attachment-image-frame>.attachment-compact-icon{width:28px;height:28px}
.attachment-image-frame>.attachment-compact-icon svg{width:28px;height:28px}
.attachment-message-image{display:block;max-width:100%;max-height:220px;width:auto;height:auto;object-fit:contain}
.attachment-image-caption{display:block;padding:7px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3;color:var(--luli-muted);background:var(--luli-surface)}
.message-attachments:has(.attachment-message-file){width:min(420px,100%)}
.message-attachments:has(.attachment-image-message){align-items:flex-start}
@media(max-width:700px){.message-attachments .attachment-message-file{width:100%}.message-attachments .attachment-image-message{width:min(200px,100%)}}
/* Keep action feedback legible without spilling long filenames on small screens. */
.attachment-info,.attachment-detail,
.attachment-info strong,.attachment-dialog h2,.attachment-warning{overflow-wrap:anywhere}
.attachment-staged-status{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.attachment-button:disabled,.attachment-purpose:disabled{opacity:.6;cursor:wait}
.attachment-button:focus-visible,.attachment-purpose:focus-visible{outline:2px solid var(--luli-focus);outline-offset:3px}
@media(max-width:700px){.attachment-dialog{max-width:calc(100vw - 24px);max-height:90dvh}.attachment-actions{flex-wrap:wrap}.attachment-actions .attachment-button{min-height:44px}}

/* Uploads are chronological events; file details live in the workspace. */
#assistant .chat-row.user.has-attachment-receipt{display:flex;flex-direction:column;align-items:flex-end;width:100%;gap:0}
#assistant .chat-row .attachment-empty-message{display:none!important}
#assistant .attachment-history-receipt{display:flex;align-items:center;align-self:center;gap:8px;width:fit-content;max-width:calc(100% - 24px);margin:18px auto 4px;padding:4px 12px;border:1px solid var(--luli-container);border-radius:24px;background:var(--luli-surface);color:var(--muted);font-size:11px;line-height:1.6;box-sizing:border-box}
#assistant .attachment-history-label{min-width:0;overflow-wrap:anywhere}
#assistant .attachment-history-receipt .attachment-button{padding:2px 4px;min-height:28px;min-width:26px;border:0;background:transparent;color:var(--luli-on)}
.workspace-preview:not([aria-label="生平事迹"])>.attachment-workspace-reading,.workspace-preview:not([aria-label="生平事迹"])>.attachment-workspace-sources{display:none}
.workspace-preview[aria-label="生平事迹"].attachment-is-reading .career-profile-surface>:not(.career-profile-toolbar){display:none}
.workspace-preview.attachment-is-reading>.attachment-workspace-sources{display:none}
.attachment-workspace-reading{position:absolute;inset:66px 0 0;overflow:auto;z-index:3;box-sizing:border-box;background:var(--luli-surface);padding:32px 24px;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;color:var(--ink)}
.attachment-reading-visual{position:relative;flex-shrink:0;width:160px;height:auto;aspect-ratio:3/4;max-width:100%;margin:0 auto 20px;border:0;background:transparent}
.attachment-reading-fallback,.attachment-reading-animation{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.attachment-reading-fallback[hidden]{display:none}
.attachment-reading-animation:empty{display:none}
.attachment-reading-animation :is(img,svg,canvas,video){display:block;max-width:100%;max-height:100%;object-fit:contain}
.attachment-reading-label{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}
.attachment-workspace-progress{margin:0;padding:12px 24px;font-size:13px;line-height:1.6;color:var(--muted);border-bottom:1px solid var(--luli-structure);background:var(--luli-surface)}
.attachment-workspace-sources{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:20px 28px;border-top:1px solid var(--luli-structure);color:var(--ink);font-size:12px}
.attachment-workspace-sources strong{flex-basis:100%;font-size:13px}.attachment-workspace-sources .attachment-button{max-width:100%;overflow-wrap:anywhere}
@media(max-width:760px){#assistant .attachment-history-receipt{font-size:11px;max-width:100%}.attachment-workspace-reading{padding:24px 18px}.attachment-reading-visual{width:128px;height:auto;aspect-ratio:3/4;margin-bottom:16px}}

/* Align the visible artwork, whose opaque bounds are x=52..346 on a 384px canvas. */
.attachment-reading-visual{transform:translateX(-1.823%)}
.attachment-reading-label{width:100%;display:flex;justify-content:center;min-height:21px}
/* Optical alignment follows the approved text position beneath the leaning cat. */
.attachment-reading-line{display:inline-flex;align-items:baseline;justify-content:center;gap:0;white-space:nowrap;transform:translateX(-12px)}
@media(max-width:760px){.attachment-reading-line{transform:translateX(-10px)}}
.attachment-reading-brand{display:inline-flex;gap:.1em;font-weight:600;margin-right:.45em}
.attachment-reading-copy{display:inline-flex;font-weight:inherit;letter-spacing:normal}
.attachment-reading-char{display:inline-block}
@keyframes attachment-character-hop{0%,8%,28%,100%{transform:translateY(0)}18%{transform:translateY(-4px)}}
.attachment-workspace-reading[data-reading-active="true"] .attachment-reading-char{animation:attachment-character-hop 2.2s ease-in-out infinite;animation-delay:var(--character-delay)}
@media(prefers-reduced-motion:reduce){.attachment-workspace-reading .attachment-reading-char{animation:none!important;transform:none!important}}
