.tester-feedback { margin-top: 20px; padding: 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); color: var(--text-secondary); font-size: 13px; }
.tester-feedback summary { cursor: pointer; font-weight: 600; }
.tester-feedback form { display: grid; gap: 14px; margin-top: 14px; }
.tester-feedback__note { margin: 0; color: var(--text-muted); }
.tester-feedback form > label { display: grid; gap: 6px; }
.tester-feedback select, .tester-feedback textarea { width: 100%; box-sizing: border-box; padding: 9px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--surface-1); color: var(--text-primary); font: inherit; }
.tester-feedback textarea { resize: vertical; }
.tester-feedback fieldset { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 0; padding: 10px; border: 1px solid var(--line-strong); }
.tester-feedback .tester-feedback__check { display: flex; align-items: flex-start; gap: 7px; }
.tester-feedback__check input { flex: 0 0 auto; margin: 3px 0 0; }
.tester-feedback__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.tester-feedback__actions button { padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--surface-1); color: var(--text-primary); cursor: pointer; }
.tester-feedback__actions button:first-child { background: var(--brass); color: var(--text-inverse); }
.tester-feedback__actions button:disabled { opacity: .5; cursor: default; }
.tester-feedback__error { margin: 0; color: var(--danger); }

:root { --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; }

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body.chat-page { overflow: hidden; background: var(--surface-0); color: var(--text-primary); font: 14px/1.55 var(--font-sans); -webkit-font-smoothing: antialiased; }
button, input, textarea { font: inherit; }
button { border: 0; cursor: pointer; color: inherit; }
button:disabled { cursor: not-allowed; }
a { color: inherit; text-decoration: none; }
input, textarea { border: 0; outline: 0; color: inherit; background: transparent; }
button:focus-visible, a:focus-visible, [role="button"]:focus-visible { outline: 0; box-shadow: var(--ring); border-radius: var(--radius-sm); }
* { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--line-strong); border: 2px solid transparent; border-radius: 8px; background-clip: padding-box; }
[hidden] { display: none !important; }

.app { display: grid; grid-template-columns: 265px minmax(0, 1fr); height: 100vh; height: 100dvh; background: var(--surface-0); transition: grid-template-columns .22s ease; }
.app[data-sidebar="collapsed"] { grid-template-columns: 64px minmax(0, 1fr); }

.sidebar { display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: var(--surface-sidebar); border-right: 1px solid var(--line); }
.sidebar__head { display: flex; align-items: center; gap: 10px; min-height: 70px; padding: 14px 16px 10px; }
.brand-lockup { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sidebar .brand-lockup { flex: 1; }
.brand-mark { display: inline-block; flex: none; width: 28px; height: 28px; background: url("assets/lexdum-mark-transparent.png") center/contain no-repeat; }
.brand-wordmark { font: 700 19px/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--text-primary); }
.brand-wordmark span:last-child { color: var(--brass); }
.icon-button { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; padding: 0; background: transparent; border-radius: var(--radius-sm); color: var(--text-muted); }
.icon-button:hover { background: var(--surface-hover); color: var(--text-primary); }
.sidebar #collapse-sidebar::before { content: ""; width: 17px; height: 17px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='3' y='4' width='18' height='16' rx='2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M9 4v16' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat; }
.app[data-sidebar="collapsed"] .sidebar__head { flex-direction: column; justify-content: center; padding: 14px 6px; }
.app[data-sidebar="collapsed"] .brand-wordmark, .app[data-sidebar="collapsed"] .sidebar__actions, .app[data-sidebar="collapsed"] .sidebar__list, .app[data-sidebar="collapsed"] .sidebar__foot { display: none; }
.app[data-sidebar="collapsed"] .sidebar .brand-lockup { flex: none; }
.app[data-sidebar="collapsed"] .sidebar #collapse-sidebar::before { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E"); }

.sidebar__actions { display: flex; flex-direction: column; gap: 4px; padding: 4px 10px 10px; }
.new-chat { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--brass-line); border-radius: 8px; background: var(--brass-wash); color: var(--text-primary); text-align: left; transition: background .2s; }
.new-chat:hover { background: color-mix(in srgb, var(--brass) 17%, transparent); }
.new-chat span:nth-child(2) { flex: 1; }
.kbd { color: var(--text-dim); font: 11px var(--font-mono); }
.sidebar__search { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid transparent; border-radius: var(--radius-md); color: var(--text-muted); }
.sidebar__search:hover, .sidebar__search:focus-within { border-color: var(--line); background: var(--surface-1); }
.sidebar__search input { width: 100%; font-size: 14px; }
.sidebar__search input::placeholder { color: var(--text-dim); }
.sidebar__list { flex: 1; min-height: 0; overflow: auto; padding: 6px 8px 12px; }
.sidebar__group-label { padding: 22px 12px 8px; color: var(--text-dim); font-size: 12px; font-weight: 500; }
.project-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 16px 4px 6px 12px; color: var(--text-muted); font-size: 12px; font-weight: 500; }
.project-heading .icon-button { width: 32px; height: 32px; border-radius: 50%; font-size: 20px; font-weight: 400; line-height: 1; letter-spacing: 0; }
.project-heading .icon-button::before { content: none; }
.project-heading .icon-button:hover { background: var(--surface-hover); color: var(--brass); }
.project-heading .icon-button:disabled { opacity: .45; }
.project-heading .icon-button:disabled:hover { background: transparent; color: var(--text-muted); }
.project-heading .icon-button:focus-visible, .project-all:focus-visible, .project-item button:focus-visible { outline: 1px solid var(--brass); outline-offset: 2px; box-shadow: none; }
.project-all { width: 100%; padding: 10px 14px; border-radius: var(--radius-md); background: transparent; text-align: left; color: var(--text-secondary); }
.project-all[aria-pressed="true"], .project-all:hover { background: var(--surface-hover); color: var(--text-primary); }
.project-item .chat-item__title::before { display: inline-block; width: 16px; height: 16px; margin-right: 10px; vertical-align: -3px; background: currentColor; content: ''; mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h5l2 2h7a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
@media (pointer: coarse) {
  .project-heading .icon-button { width: 44px; height: 44px; }
}
.project-dialog { width: min(420px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; border: 1px solid var(--line-strong); border-radius: 20px; background: var(--surface-menu); color: var(--text-primary); box-shadow: var(--shadow); }
.project-dialog::backdrop { background: var(--overlay); backdrop-filter: blur(6px); }
.project-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: -8px -8px 4px 0; }
.project-dialog h2 { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -.035em; }
.project-dialog__close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border-radius: 50%; background: transparent; color: var(--text-muted); }
.project-dialog__close:hover { background: var(--surface-hover); color: var(--text-primary); }
.project-dialog p { margin: 0; color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.project-dialog label { display: grid; gap: 8px; margin: 22px 0; color: var(--text-secondary); font-size: 13px; font-weight: 500; }
.project-dialog input, .project-dialog select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--surface-0); color: var(--text-primary); font: 400 16px/1.4 var(--font-sans); }
.project-dialog input:focus, .project-dialog select:focus { border-color: var(--brass); outline: 0; box-shadow: 0 0 0 2px var(--brass-wash); }
.project-dialog__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.project-dialog__actions button { min-height: 44px; padding: 10px 18px; border: 1px solid var(--line-strong); border-radius: 100px; background: transparent; font-size: 13px; font-weight: 500; }
.project-dialog__actions button:hover { background: var(--surface-hover); }
.project-dialog__actions .button { border-color: transparent; background: var(--brass); color: var(--text-inverse); }
.project-dialog__actions .button:hover { background: var(--brass-bright); }
.project-dialog__actions button:disabled { opacity: .55; }
.project-dialog button:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; border-radius: 100px; box-shadow: none; }
#project-error { margin-top: -8px; color: var(--danger); }
@media (max-width: 480px) {
  .project-dialog { padding: 20px; }
  .project-dialog__actions button { flex: 1; }
}
.chat-item { position: relative; display: flex; align-items: center; gap: 4px; min-height: 38px; padding: 2px 8px; border: 1px solid transparent; border-radius: 9px; color: var(--text-secondary); transition: background .12s, color .12s; }
.chat-item:hover { background: var(--surface-hover); color: var(--text-primary); }
.chat-item[data-active="true"] { background: var(--surface-hover); color: var(--text-primary); }
.chat-item[data-menu="true"] { background: var(--surface-hover); color: var(--text-primary); }
.chat-item__title { flex: 1; min-width: 0; overflow: hidden; padding: 5px 4px; background: transparent; color: inherit; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.chat-item__actions { display: flex; gap: 2px; opacity: 0; }
.chat-item:hover .chat-item__actions, .chat-item[data-menu="true"] .chat-item__actions, .chat-item:focus-within .chat-item__actions { opacity: 1; }
.chat-item__actions button { width: 30px; height: 30px; padding: 0; border-radius: 4px; background: transparent; color: var(--text-muted); }
.chat-item__actions button:hover { background: var(--surface-hover); color: var(--text-primary); }
.project-item[data-active="true"] { background: color-mix(in srgb, var(--text-primary) 6%, transparent); }
.project-item[data-active="true"]::before { content: none; }
.project-item[data-active="true"] .chat-item__title::before { color: var(--brass); }
.project-item:hover { background: var(--surface-hover); }
.chat-menu { position: absolute; right: 8px; top: 34px; z-index: 30; min-width: 190px; padding: 6px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-menu); box-shadow: var(--shadow); }
.chat-menu[popover] { position: fixed; right: auto; bottom: auto; margin: 0; color: var(--text-secondary); }
.chat-menu::backdrop { background: transparent; }
.chat-menu button { display: block; width: 100%; padding: 8px 10px; border-radius: 6px; background: transparent; color: var(--text-secondary); text-align: left; font-size: 13px; }
.chat-menu button:hover { background: var(--surface-hover); color: var(--text-primary); }
.chat-menu .danger { color: var(--danger); }
.sidebar__empty { padding: 22px 10px; color: var(--text-dim); font-size: 13px; }
.sidebar__foot { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 10px; border-top: 1px solid var(--line); }
.account { display: flex; width: 100%; align-items: center; gap: 10px; padding: 8px; border-radius: var(--radius-md); background: transparent; text-align: left; cursor: pointer; }
.account:hover { background: var(--surface-hover); }
.account[aria-expanded="true"], .attach-button[aria-expanded="true"] { background: var(--surface-hover); color: var(--text-primary); }
.avatar { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border: 1px solid var(--line-strong); border-radius: 50%; background: #607d99; color: #fff; font: 600 13px var(--font-sans); }
.account__meta { display: flex; flex: 1; min-width: 0; flex-direction: column; }
.account__meta strong { overflow: hidden; color: var(--text-primary); font-size: 13px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account__meta small { overflow: hidden; color: var(--text-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.account-menu { position: absolute; right: 10px; bottom: 66px; left: 10px; z-index: 40; padding: 4px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface-menu); box-shadow: var(--shadow); }
.account-menu button, .account-menu a { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 10px; border-radius: 6px; background: transparent; color: var(--text-secondary); text-align: left; font-size: 13px; text-decoration: none; }
.account-menu button:hover, .account-menu a:hover { background: var(--surface-hover); color: var(--text-primary); }

.main { position: relative; display: flex; min-width: 0; min-height: 0; flex-direction: column; background: var(--surface-0); }
.file-drop { position: absolute; inset: 12px; z-index: 90; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; padding: 24px; border: 2px dashed var(--brass); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--surface-0) 94%, transparent); color: var(--text-muted); text-align: center; backdrop-filter: blur(4px); }
.file-drop > .icon { width: 36px; height: 36px; margin-bottom: 6px; color: var(--brass); }
.file-drop strong { color: var(--text-primary); font-size: 20px; font-weight: 600; }
.conversation-toggle { position: absolute; top: max(12px, env(safe-area-inset-top)); left: 12px; z-index: 20; width: 44px; height: 44px; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--surface-menu); box-shadow: var(--shadow); }
.conversation-toggle::before { display: block; width: 17px; height: 17px; background: currentColor; content: ""; mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat; }
.icon { display: inline-block; flex: none; width: 16px; height: 16px; background: currentColor; mask: center/contain no-repeat; }
.icon--plus { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E"); }
.icon--close { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m6 6 12 12M18 6 6 18' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E"); }
.icon--download { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3v12m-4-4 4 4 4-4M4 16v4h16v-4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.icon--compose { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6M19 3l2 2-10 10-4 1 1-4Z' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.icon--search { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='7' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='m20 20-3.5-3.5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E"); }
.icon--send { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 12h15M12 5l7 7-7 7' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E"); }
.icon--book { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h13v18H6a2 2 0 0 1-2-2zM4 19a2 2 0 0 0 2 2h13' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E"); }
.icon--chevron-up { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m6 15 6-6 6 6' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E"); }
.icon--user { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='8' r='3.5' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M4.5 21a7.5 7.5 0 0 1 15 0' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E"); }
.icon--settings { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='3' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-2.8 2.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-4V21a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1L4.2 17l.1-.1a1.7 1.7 0 0 0 .3-1.9A1.7 1.7 0 0 0 3 14H2.8v-4H3a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9L4.2 7 7 4.2l.1.1a1.7 1.7 0 0 0 1.9.3A1.7 1.7 0 0 0 10 3V2.8h4V3a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1L19.8 7l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v4H21a1.7 1.7 0 0 0-1.6 1Z' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.icon--logout { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 3h5a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5M10 17l-5-5 5-5M15 12H5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E"); }
.icon--more { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='5' cy='12' r='1.4' fill='black'/%3E%3Ccircle cx='12' cy='12' r='1.4' fill='black'/%3E%3Ccircle cx='19' cy='12' r='1.4' fill='black'/%3E%3C/svg%3E"); }
.icon--check { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5 12 4 4L19 6' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E"); }
.icon--upload { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 16V4m0 0L7.5 8.5M12 4l4.5 4.5M5 15v4h14v-4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

.conversation { flex: 1; min-height: 0; overflow: auto; padding: 34px 32px 28px; }
.conversation__inner { width: min(860px, 100%); min-height: 100%; margin: 0 auto; }
.conversation__inner:has(> .empty) { height: 100%; }
.empty { display: flex; min-height: calc(100% - 8px); align-items: center; justify-content: center; padding: 40px 24px 32px; }
.empty__inner { width: min(760px, 100%); text-align: center; }
.empty__greeting { margin: 0; color: var(--text-primary); font: 700 clamp(36px, 4vw, 48px)/1.08 var(--font-sans); letter-spacing: -.035em; text-wrap: balance; }
.empty__greeting em { color: var(--brass); font-style: normal; }
.message-list { display: flex; flex-direction: column; gap: 30px; padding-bottom: 10px; }
.msg-user { align-self: flex-end; max-width: min(85%, 570px); padding: 12px 17px; border: 1px solid var(--brass-line); border-radius: 14px 14px 4px 14px; background: var(--brass-wash); color: var(--text-primary); font-size: 15px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.msg-user.msg-user--with-footer, .intelligent-chat-root .msg-user.msg-user--with-footer { min-width: min(150px, 85%); padding: 0; border: 0; background: transparent; white-space: normal; }
.msg-user__bubble { padding: 12px 17px; border: 1px solid var(--brass-line); border-radius: inherit; background: var(--glass, var(--brass-wash)); white-space: pre-wrap; }
.intelligent-chat-root .msg-user__bubble { padding: 14px 20px; }
.msg-user--files > .msg-user__bubble { padding: 0; border: 0; background: transparent; }
.message-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 30px; margin-top: 5px; color: var(--text-dim); white-space: normal; user-select: none; }
.message-footer:empty { display: none; }
.message-footer__copy { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; padding: 6px; border: 0; border-radius: 7px; background: transparent; color: var(--text-muted); cursor: pointer; }
.message-footer__copy svg { width: 16px; height: 16px; }
.message-footer__copy:hover { background: var(--surface-hover); color: var(--text-primary); }
.message-footer__copy:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }
.message-footer__time { margin-left: auto; font-size: 11px; line-height: 1.4; font-variant-numeric: tabular-nums; }
.deep-research { margin: 6px 0 16px; padding: 20px; border: 1px solid var(--line-strong); border-radius: 20px; background: var(--glass, var(--surface-1)); }
.deep-research h3 { margin: 10px 0; font-size: 20px; font-weight: 500; }
.deep-research p { color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.deep-research__plan { display: grid; gap: 12px; margin: 18px 0; padding: 0; list-style: none; }
.deep-research__plan li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; }
.deep-research__plan strong { font-weight: 500; overflow-wrap: anywhere; }
.deep-research__plan small, .deep-research > small { color: var(--text-muted); font-size: 11px; }
.deep-research__plan p { grid-column: 1/-1; margin: 0; }
.msg-user--sent { animation: message-sent .2s cubic-bezier(.2,.8,.2,1); }
@keyframes message-sent { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.msg-assistant { display: flex; flex-direction: column; gap: 8px; }
.msg-assistant__brand { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 12px; }
.assistant-mark { width: 19px; height: 19px; background: url("assets/lexdum-mark-transparent.png") center/contain no-repeat; }
.assistant-answer { max-width: 72ch; color: var(--text-secondary); font-size: 15.5px; line-height: 1.72; overflow-wrap: anywhere; }
.assistant-answer p { margin: 0 0 16px; white-space: pre-line; }
.assistant-answer p:last-child { margin-bottom: 0; }
.assistant-answer strong { color: var(--text-primary); font-weight: 500; }
.assistant-answer a { color: var(--brass-bright); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.assistant-answer a:hover { color: var(--text-primary); }
.assistant-answer h3 { margin: 28px 0 10px; color: var(--text-muted); font: 600 11px/1.4 var(--font-sans); letter-spacing: .11em; text-transform: uppercase; }
.answer-note { margin: 4px 0 20px; padding: 12px 15px; border-left: 3px solid var(--brass); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--brass-wash); color: var(--text-secondary); }
.answer-finding { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; padding: 15px 0; border-top: 1px solid var(--line); }
.answer-finding:first-child { border-top: 0; }
.answer-finding__number { display: inline-grid; width: 24px; height: 24px; place-items: center; margin-top: 2px; border: 1px solid var(--brass-line); border-radius: 50%; background: var(--brass-wash); color: var(--brass-bright); font: 600 11px/1 var(--font-sans); }
.answer-finding p { margin: 0; color: var(--text-primary); }
.answer-disclosure { color: var(--text-muted); font-size: 13px; }
.answer-disclosure summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.answer-disclosure summary::-webkit-details-marker { display: none; }
.answer-disclosure summary::after { content: "⌄"; margin-left: auto; color: var(--text-dim); transition: transform .18s ease; }
.answer-disclosure[open] summary::after { transform: rotate(180deg); }
.answer-thinking { margin: 0 0 12px; color: var(--text-muted); font: 400 13px/1.6 var(--font-sans); }
.answer-thinking > summary { display: flex; align-items: center; gap: 9px; width: fit-content; min-height: 36px; padding: 4px 2px; border-radius: 6px; color: var(--text-muted); cursor: pointer; list-style: none; transition: color .18s ease; }
.answer-thinking > summary::-webkit-details-marker { display: none; }
.answer-thinking > summary::marker { content: ""; }
.answer-thinking > summary::after { content: ""; width: 6px; height: 6px; margin: 0 3px 2px 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .7; transform: rotate(-45deg); transition: transform .18s ease; }
.answer-thinking[open] > summary::after { transform: rotate(45deg); }
.answer-thinking > summary:hover { color: var(--text-primary); }
.answer-thinking > summary:focus-visible { outline: 2px solid var(--brass); outline-offset: 4px; }
.answer-thinking__body { max-height: 280px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; margin: 3px 0 8px 2px; padding: 3px 12px; border-left: 1px solid var(--line-strong); }
.answer-thinking__body > p { margin: 0; overflow-wrap: anywhere; }
.answer-thinking__body > p + p { margin-top: 10px; }
.answer-evidence { margin-top: 10px; }
.answer-evidence summary { width: fit-content; color: var(--brass-bright); font-weight: 500; }
.answer-evidence summary::after { margin-left: 2px; }
.answer-evidence blockquote, .answer-quote { margin: 10px 0 2px; padding: 12px 14px; border-left: 2px solid var(--brass-line); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--surface-1); color: var(--text-muted); font-size: 13px; line-height: 1.65; white-space: pre-line; }
.answer-list { display: grid; gap: 3px; margin: 0 0 20px; padding-left: 20px; line-height: 1.55; }
.answer-list li { padding-left: 2px; }
.answer-list strong { color: inherit; font-weight: 600; }
.answer-list li::marker { color: var(--brass); }
.answer-sources { margin-top: 24px; padding-top: 15px; border-top: 1px solid var(--line); font-size: 13px; }
.answer-sources > strong { display: block; margin-bottom: 8px; color: var(--text-muted); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; }
.answer-sources__links { display: flex; flex-wrap: wrap; gap: 8px; }
.answer-sources__links a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface-1); color: var(--text-secondary); text-decoration: none; }
.answer-sources__links a::before { content: "↗"; color: var(--brass); }
.answer-sources__links a:hover { border-color: var(--brass-line); color: var(--text-primary); }
.answer-intelligence { display: grid; gap: 8px; margin: 18px 0; padding: 14px 16px; border: 1px solid var(--brass-line); border-left: 3px solid var(--brass); border-radius: var(--radius-md); background: var(--brass-wash); }
.answer-intelligence > strong { color: var(--brass-bright); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.answer-intelligence p { margin: 0; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
.answer-intelligence__actions { display: flex; gap: 8px; }
.answer-intelligence__actions button { min-height: 32px; padding: 5px 10px; border: 1px solid var(--brass-line); border-radius: 999px; background: var(--surface-1); color: var(--text-primary); font: inherit; font-size: 12px; cursor: pointer; }
.answer-intelligence__actions button:hover { border-color: var(--brass); background: var(--surface-hover); }
.answer-limitations { margin-top: 18px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface-1); }
.answer-limitations summary { padding: 11px 13px; }
.answer-limitations summary strong { color: var(--text-primary); font-size: 13px; }
.answer-limitations summary span { color: var(--text-dim); font-size: 11.5px; }
.answer-limitations ul { display: grid; gap: 8px; margin: 0; padding: 0 16px 14px 31px; color: var(--text-muted); line-height: 1.55; }
.answer-limitations li::marker { color: var(--text-dim); }
.answer-disclaimer { margin-top: 20px !important; padding-top: 12px; border-top: 1px solid var(--line); color: var(--text-dim); font-size: 12px; }
.message-meta { color: var(--text-dim); font: 11px var(--font-mono); }
.response-reconnect { display: flex; align-items: center; gap: 8px; margin-top: 2px; color: var(--text-muted); font-size: 13px; }
.response-reconnect__icon { width: 13px; height: 13px; border: 1.5px solid var(--line-strong); border-top-color: var(--brass); border-radius: 50%; animation: execution-spin 1s linear infinite; }
.empty-chat-state { padding: 40px 0; color: var(--text-muted); text-align: center; }
.empty-chat-state strong { display: block; margin-bottom: 5px; color: var(--text-secondary); font: 600 17px var(--font-sans); }
.state-panel { padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface-1); color: var(--text-secondary); }
.state-panel h3 { margin: 0 0 8px; color: var(--text-primary); font: 600 17px var(--font-sans); }
.state-panel p { margin: 0; }
.state-panel--error { border-color: rgba(226,140,130,.45); }
.state-panel--ok { border-color: rgba(154,203,175,.35); }

.composer-wrap { position: relative; z-index: 5; flex: none; padding: 8px 28px calc(16px + env(safe-area-inset-bottom)); background: var(--surface-0); }
.composer { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 10px; width: min(860px, 100%); margin: 0 auto; padding: 10px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-1); box-shadow: var(--shadow); }
.composer textarea { grid-column: 2; grid-row: 1; display: block; width: 100%; min-height: 34px; max-height: 240px; padding: 5px 0; resize: none; color: var(--text-primary); font-size: 15px; line-height: 1.55; }
.composer textarea:focus-visible, .sidebar__search input:focus-visible { outline: 0; box-shadow: none; }
.composer textarea::placeholder { color: var(--text-muted); }
.send-button { grid-column: 3; grid-row: 1; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--surface-2); color: var(--text-muted); transition: background .2s, color .2s; }
.send-button:not(:disabled) { background: var(--brass); color: var(--text-inverse); }
.send-button:not(:disabled):hover { background: var(--brass-bright); }
.attach-button { grid-column: 1; grid-row: 1; display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: transparent; color: var(--text-muted); }
.attach-button:hover { background: var(--surface-hover); color: var(--text-primary); }
.attach-button:disabled { opacity: .45; }
.composer-tools { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 4px; }
.experiment-toggle { min-height: 34px; padding: 5px 8px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--text-muted); font-size: 11px; white-space: nowrap; }
.experiment-toggle:hover { background: var(--surface-hover); color: var(--text-primary); }
.experiment-toggle[aria-pressed="true"] { border-color: var(--brass-line); background: var(--brass-wash); color: var(--brass); }
.experiment-toggle:disabled { opacity: .5; cursor: wait; }
.attachment-menu { position: absolute; bottom: 54px; left: 8px; z-index: 12; width: min(300px, calc(100vw - 56px)); padding: 6px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-1); box-shadow: 0 18px 44px rgb(17 24 39 / 18%); }
.attachment-menu button { display: flex; width: 100%; min-height: 54px; align-items: center; gap: 11px; padding: 8px 10px; border-radius: 8px; background: transparent; color: var(--text-secondary); text-align: left; }
.attachment-menu button:hover { background: var(--surface-hover); color: var(--text-primary); }
.attachment-menu button > span:has(> strong) { display: grid; min-width: 0; gap: 2px; }
.attachment-menu strong { font-size: 13px; font-weight: 600; }
.attachment-menu small { color: var(--text-dim); font-size: 11.5px; }
.attachment-menu svg { flex: none; }
.sidebar-library { display: flex; min-height: 40px; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 10px; background: transparent; color: var(--text-secondary); text-align: left; }
.sidebar-library:hover { background: var(--surface-hover); color: var(--text-primary); }
.sidebar-library svg { flex: none; }
.composer-error button { padding: 3px 8px; border: 1px solid var(--line-strong); border-radius: 6px; background: transparent; text-decoration: underline; }
.document-library { width: min(800px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); padding: 0; border: 1px solid var(--line-strong); border-radius: 20px; background: var(--surface-0); color: var(--text-primary); box-shadow: var(--shadow); }
.document-library[open] { display: flex; flex-direction: column; }
.document-library::backdrop { background: var(--overlay); backdrop-filter: blur(4px); }
.document-library__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 24px 16px; }
.document-library__header h2 { margin: 0; font-size: 24px; font-weight: 600; }
.document-library__header p { margin: 5px 0 0; color: var(--text-muted); font-size: 13px; }
.document-library__toolbar { display: flex; align-items: center; gap: 8px; padding: 0 24px 12px; }
.document-library__search { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--line-strong); border-radius: 10px; }
.document-library__search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: inherit; }
.document-library__search:focus-within { outline: 2px solid var(--brass); outline-offset: 2px; }
.document-library__status { margin: 0; padding: 0 24px; color: var(--text-muted); font-size: 13px; overflow-wrap: anywhere; }
.document-library__status:not(:empty) { padding-bottom: 12px; }
.document-library__files { min-height: 180px; max-height: 440px; overflow-y: auto; overscroll-behavior: contain; padding: 0 16px 16px; }
.document-library__file { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 8px; border-radius: 12px; }
.document-library__file:hover, .document-library__file:focus-within { background: var(--surface-hover); }
.document-library__file:has(input:checked) { background: var(--brass-wash); }
.document-library__file input { width: 16px; height: 16px; accent-color: var(--brass); }
.document-library__file .document-chip { max-width: none; border-color: transparent; background: transparent; }
.document-library__file .document-chip__preview { width: 100%; min-width: 0; padding: 7px 0; }
.document-library__file .document-chip__name { max-width: none; }
.document-library__delete { padding: 7px 9px; border-radius: 8px; background: transparent; color: var(--text-muted); font-size: 12px; }
.document-library__delete:hover { background: var(--surface-2); color: var(--danger); }
.document-library__file button:disabled { opacity: .5; cursor: default; }
.document-library__file:not(:has(input)) { grid-template-columns: minmax(0,1fr) auto; }
.document-library__files[data-view="grid"] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.document-library__files[data-view="grid"] .document-library__file { border: 1px solid var(--line-strong); }
.document-library__empty { grid-column: 1 / -1; padding: 48px 12px; color: var(--text-muted); text-align: center; }
.document-library__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; border-top: 1px solid var(--line-strong); font-size: 13px; color: var(--text-muted); }
.document-library__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.document-library__button { padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 9px; background: transparent; color: var(--text-primary); }
.document-library__button:hover { background: var(--surface-hover); }
.document-library__button--primary { border-color: var(--brass-line); background: var(--brass-wash); color: var(--brass-bright); }
.document-library__button--danger { border-color: color-mix(in srgb, var(--danger) 35%, transparent); color: var(--danger); }
.document-library__button:disabled { opacity: .45; cursor: default; }
@media (max-width: 640px) {
  .document-library__header { padding: 20px 16px 16px; }
  .document-library__toolbar, .document-library__status { padding-inline: 16px; }
  .document-library__toolbar { flex-wrap: wrap; }
  .document-library__search { flex-basis: 100%; }
  .document-library__files { padding-inline: 8px; }
  .document-library__files[data-view="grid"] { grid-template-columns: minmax(0,1fr); }
  .document-library__footer { padding: 12px 16px; }
  .document-library__actions { width: 100%; }
  .document-library__actions button { flex: 1; }
}
.drive-mark { width: 18px; height: 16px; flex: none; background: conic-gradient(from 150deg at 50% 55%, #0f9d58 0 33%, #f4b400 0 66%, #4285f4 0); clip-path: polygon(38% 0,62% 0,100% 70%,87% 100%,13% 100%,0 70%); }
.composer:focus-within { border-color: var(--brass-line); box-shadow: 0 0 0 2px var(--brass-wash); }
.composer:has(.document-attachments:not([hidden])) :is(textarea, .composer-tools, .send-button) { grid-row: 2; }
.document-attachments { grid-column: 1 / -1; grid-row: 1; display: flex; min-width: 0; gap: 8px; padding: 2px 2px 6px; overflow-x: auto; }
.composer-context { display:none; grid-column:1 / -1; grid-row:1; min-width:0; gap:8px; align-items:center; padding:2px 0 4px; }
.composer-context:has(> :not([hidden])) { display:flex; }
.composer:has(.composer-context > :not([hidden])) :is(textarea,.composer-tools,.send-button) { grid-row:2; }
.composer-context .document-attachments { flex:1; padding-bottom:0; }
.composer-skill { display:inline-flex; flex:none; gap:8px; align-items:center; padding:7px 10px; border:1px solid #424242; border-radius:8px; background:#1a1a1a; color:#e5e5e5; font-size:12px; white-space:nowrap; }
.composer-skill:hover { background:#252525; }
.attachment-menu .attachment-skill { margin-top:5px; }
.skills-chevron { margin-left:auto; }
.skills-catalogue__header { display:flex; align-items:center; gap:8px; padding:4px; font-size:14px; }
.attachment-menu .skills-catalogue__header button { width:32px; min-height:32px; padding:6px; justify-content:center; }
.skills-catalogue__intro { margin:4px 12px 10px; color:var(--text-muted); font-size:12px; line-height:1.5; }
.attachment-menu .skills-catalogue__item { align-items:flex-start; padding:13px 10px; }
.skills-catalogue__item > svg { margin-top:2px; }
.skills-catalogue__command { margin-top:5px; opacity:.75; }
.attachment-menu .skills-catalogue__item[aria-pressed=true] { background:var(--surface-hover); }
.composer-skill-menu { position:absolute; left:12px; right:12px; z-index:14; padding:5px; background:#141414; border:1px solid #393939; border-radius:12px; box-shadow:0 12px 36px #0008; }
.composer-skill-menu button { display:grid; gap:6px; width:100%; padding:12px; text-align:left; border-radius:8px; background:transparent; color:#eee; }
.composer-skill-menu button:hover,.composer-skill-menu button:focus-visible { background:#252525; }
.composer-skill-menu small { font-size:11px; color:#aaa; }
.msg-user__skill { display:block; margin-bottom:7px; color:#aaa; font-size:11px; font-weight:500; }
.message-attachments { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; white-space: normal; }
.document-chip { position: relative; display: flex; flex: 0 0 auto; min-width: 0; max-width: min(280px,100%); border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-1); color: var(--text-secondary); transition: background .12s, border-color .12s; }
.document-chip:hover { background: var(--surface-hover); border-color: var(--brass-line); }
.document-chip__preview { display: flex; width: 100%; min-width: 0; align-items: center; gap: 10px; padding: 11px 14px; border-radius: inherit; background: transparent; text-align: left; }
.document-attachments .document-chip__preview { padding-right: 32px; }
.document-chip__body { display: grid; min-width: 0; gap: 1px; }
.document-chip__name { max-width: 175px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-primary); font-size: 13px; font-weight: 500; }
.document-chip__detail { overflow: hidden; color: var(--text-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.document-chip[data-status="failed"] .document-chip__detail { color: var(--danger); }
.document-chip__remove { position: absolute; top: 4px; right: 4px; display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface-1); color: var(--text-muted); font-size: 17px; line-height: 1; }
.document-chip__remove:hover { background: var(--surface-2); color: var(--text-primary); }
.document-chip__retry { position: absolute; right: 2px; bottom: 2px; width: 24px; height: 24px; border-radius: 50%; background: var(--surface-1); color: var(--brass); font-size: 18px; }
.document-chip--thumbnail { width: 105px; max-width: 105px; flex-direction: column; border-radius: 8px; }
.document-chip__thumbnail { position: relative; display: block; height: 68px; flex: none; overflow: hidden; border-radius: 7px 7px 0 0; background: var(--surface-2); cursor: pointer; }
.document-chip__image { width: 100%; height: 100%; border: 0; object-fit: cover; pointer-events: none; }
.document-chip__image[alt="First slide"] { object-fit: contain; }
.document-chip__page { display: grid; place-items: center; width: 74%; height: 85px; margin: 9px auto 0; border: 1px solid var(--line-strong); border-radius: 2px; background: var(--surface-1); box-shadow: 0 3px 12px rgb(0 0 0 / 10%); }
.document-chip__page .file-icon { width: 22px; height: 22px; opacity: .4; }
.document-chip[data-preparing="true"] :is(.document-chip__image, .document-chip__page) { filter: blur(3px); opacity: .5; }
.document-chip__ring { position: absolute; top: calc(50% - 10px); left: calc(50% - 10px); width: 20px; height: 20px; border: 2px solid color-mix(in srgb, var(--text-primary) 22%, transparent); border-top-color: var(--text-primary); border-right-color: var(--text-primary); border-radius: 50%; animation: execution-spin 1s linear infinite; }
.document-chip:not([data-preparing="true"]) .document-chip__ring { display: none; }
.document-chip--thumbnail .document-chip__preview { min-height: 24px; gap: 5px; padding: 4px 6px; }
.document-chip--thumbnail .document-chip__preview .file-icon { width: 16px; height: 16px; }
.document-chip--thumbnail .document-chip__name { max-width: 75px; font-size: 11px; line-height: 16px; }
.document-chip--thumbnail:not([data-status="failed"], [data-status="queued"]) .document-chip__detail { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.document-chip--thumbnail .document-chip__remove { top: -5px; right: -5px; width: 24px; height: 24px; border-color: var(--line-strong); color: var(--text-primary); box-shadow: 0 0 0 2px var(--surface-1); }
.document-chip--thumbnail .document-chip__preview:disabled { opacity: 1; cursor: wait; }
.document-attachments:has(.document-chip--thumbnail) { padding: 8px 8px 6px 2px; }
@media (prefers-reduced-motion: reduce) { .document-chip__ring { animation: none; } }
/* Local copies of the supplied document, PDF, presentation and spreadsheet icons. */
.file-icon { display: block; flex: none; width: 24px; height: 28px; color: var(--text-muted); }
.file-icon[data-type="pdf"] { color: #d65e61; }
.file-icon[data-type="document"] { color: #6699d7; }
.file-icon:is([data-type="spreadsheet"], [data-type="image"]) { color: #5aab87; }
.file-icon[data-type="presentation"] { color: #d98b5f; }
.composer-foot { max-width: 860px; margin: 8px auto 0; color: var(--text-dim); font-size: 11px; text-align: center; }
.composer-error { width: min(820px, 100%); margin: 8px auto 0; color: var(--danger); font-size: 12.5px; text-align: center; }
.composer-error[data-kind="info"] { color: var(--text-muted); }
.research { align-self: flex-start; padding: 0 2px; color: var(--text-muted); font-size: 13px; user-select: none; -webkit-user-select: none; }
.research__line { display: flex; align-items: center; gap: 10px; min-height: 22px; }
.research__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--text-muted); }
.research__line strong { color: var(--text-secondary); font: 500 13px/1.5 var(--font-sans); letter-spacing: 0; }
.research-wave { display: inline-flex; flex: none; align-items: center; gap: 2px; width: 16px; height: 16px; color: var(--text-secondary); }
.research-wave > span { width: 2px; height: 10px; border-radius: 1px; background: currentColor; animation: research-wave 1.2s ease-in-out infinite; }
.chat-item__spinner { order: 2; flex: 0 0 12px; width: 12px; height: 12px; border: 1.5px solid var(--line-strong); border-top-color: var(--text-primary); border-radius: 50%; animation: chat-spin .9s linear infinite; }
@keyframes research-wave { 0%, 100% { transform: scaleY(.35); opacity: .45; } 50% { transform: scaleY(1); opacity: 1; } }
@keyframes chat-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .research-wave > span, .chat-item__spinner { animation: none; } }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.auth-gate { display: grid; min-height: 100vh; place-items: center; padding: 24px; background: var(--surface-0); }
.auth-gate__card { width: min(420px, 100%); padding: 34px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-1); box-shadow: var(--shadow); text-align: center; }
.auth-gate__card .brand-lockup { justify-content: center; margin-bottom: 32px; }
.auth-gate__card h1 { margin: 0 0 8px; font: 700 28px var(--font-sans); letter-spacing: -.03em; }
.auth-gate__card p { margin: 0 0 24px; color: var(--text-muted); }
.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; padding: 9px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); }
.button--primary { border-color: var(--brass); background: var(--brass); color: var(--text-inverse); }
.button--primary:hover { background: var(--brass-bright); }
.google-signin { display: flex; width: 100%; min-height: 46px; align-items: center; justify-content: center; gap: 12px; border: 1px solid #dadce0; border-radius: 8px; background: #fff; color: #3c4043; font-size: 14px; font-weight: 500; }
.google-signin:hover { background: #f8fafd; box-shadow: 0 1px 2px rgb(60 64 67 / 12%); }
.google-signin svg { width: 18px; height: 18px; flex: none; }
.auth-gate__home { display: block; margin-top: 16px; color: var(--text-muted); font-size: 13px; }
.auth-gate__home:hover { color: var(--text-primary); }
.test-login { width: 100%; margin-top: 18px; }
.auth-divider { display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; color: var(--text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.auth-divider::before, .auth-divider::after { height: 1px; flex: 1; background: var(--line-strong); content: ''; }
.test-login__form { display: grid; gap: 10px; text-align: left; }
.test-login__form label { display: grid; gap: 5px; color: var(--text-secondary); font-size: 12px; }
.test-login__form input { width: 100%; padding: 9px 10px; border: 1px solid var(--line-strong); border-radius: 7px; background: var(--surface-1); color: var(--text-primary); }
.test-login__form .button { width: 100%; margin-top: 2px; }
.test-login__error { margin: 0; color: var(--danger) !important; font-size: 12px; }
.billing { position: fixed; inset: 0; z-index: 80; overflow: auto; padding: 28px clamp(20px, 5vw, 64px) 32px; background: var(--surface-0); }
.billing__shell { width: min(1080px, 100%); margin: 0 auto; }
.billing__top { display: flex; align-items: center; gap: 18px; min-height: 68px; padding: 12px 24px; border: 1px solid var(--line); border-radius: 999px; background: var(--glass); }
.billing__top .brand-lockup { margin-right: auto; }
.billing__close, .billing__refresh { min-height: 40px; padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--text-secondary); }
.billing__close:hover, .billing__refresh:hover { background: var(--surface-hover); color: var(--text-primary); }
.billing__intro { margin: clamp(40px, 7vh, 72px) auto 36px; max-width: 620px; text-align: center; }
.billing h1 { margin: 0; font: 600 clamp(32px, 4vw, 48px)/1.12 var(--font-sans); letter-spacing: -.055em; }
.billing__copy { margin: 16px 0 0; color: var(--text-muted); font-size: 15px; line-height: 1.7; }
.billing__plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.billing__plan { display: flex; flex-direction: column; padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: var(--glass); text-align: left; }
.billing__plan--featured { background: linear-gradient(150deg, var(--brass-wash), var(--surface-1) 75%); }
.billing__plan[data-selected="true"] { border-color: var(--brass); }
.billing__plan-name { margin: 0; color: var(--text-secondary); font: 500 15px var(--font-sans); }
.billing__price { display: flex; align-items: baseline; gap: 3px; margin: 22px 0 0; font: 500 clamp(36px, 3.5vw, 44px)/1.15 var(--font-sans); letter-spacing: -.055em; }
.billing__price > span { color: var(--text-muted); font-size: 24px; }
.billing__price small { margin-left: 8px; color: var(--text-muted); font: 12px var(--font-sans); letter-spacing: 0; white-space: nowrap; }
.billing__description { margin: 16px 0 24px; color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.billing__features { flex: 1; display: grid; align-content: start; gap: 12px; margin: 0 0 28px; padding: 22px 0 0; border-top: 1px solid var(--line); list-style: none; color: var(--text-secondary); font-size: 13px; }
.billing__features li { position: relative; padding-left: 22px; }
.billing__features li::before { content: '✓'; position: absolute; left: 0; color: var(--brass); }
.billing__choose { width: 100%; min-height: 46px; margin-top: auto; padding: 12px 18px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--text-primary); font-size: 13px; font-weight: 500; }
.billing__choose:hover { background: var(--surface-hover); }
.billing__plan--featured .billing__choose { border-color: transparent; background: var(--brass); color: var(--text-inverse); }
.billing__plan--featured .billing__choose:hover { background: var(--brass-bright); }
.billing__choose:disabled { opacity: .5; }
.billing__status { margin: 20px 0 10px; color: var(--text-muted); text-align: center; }
.billing__status:empty { display: none; }
.billing__status[data-error="true"] { color: var(--danger); }
.billing__refresh { display: block; margin: 12px auto; }
.billing__footer { display: flex; justify-content: space-between; gap: 16px; margin-top: 28px; padding: 18px 4px 0; border-top: 1px solid var(--line); color: var(--text-dim); font-size: 12px; }
.billing__footer nav { display: flex; gap: 20px; }
.billing__footer a:hover { color: var(--text-primary); }
@media (max-width: 800px) {
  .billing__plans { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .billing__plan { padding: 26px; }
  .billing__price { font-size: 40px; }
}
.renew-banner { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; padding: 10px 16px; border-bottom: 1px solid var(--brass-line); background: var(--surface-1); color: var(--text-secondary); font-size: 13px; text-align: center; }
.renew-banner button { padding: 6px 12px; border-radius: 6px; background: var(--brass); color: var(--text-inverse); font-weight: 600; }
.renew-banner button:hover { background: var(--brass-bright); }
.overlay { position: fixed; inset: 0; z-index: 60; background: var(--overlay); }
.settings-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 24px; }
.settings-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; background: var(--overlay); cursor: default; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.settings-card { position: relative; width: min(620px, 100%); max-height: min(760px, calc(100dvh - 48px)); overflow: auto; border: 1px solid var(--line-strong); border-radius: 16px; background: var(--surface-1); box-shadow: 0 28px 80px rgb(17 24 39 / 24%); }
.settings-card__header { display: flex; align-items: flex-start; justify-content: space-between; padding: 24px 26px 20px; border-bottom: 1px solid var(--line); }
.settings-card__eyebrow { display: block; margin-bottom: 5px; color: var(--brass); font: 700 10px/1 var(--font-sans); letter-spacing: .14em; }
.settings-card h2 { margin: 0; color: var(--text-primary); font: 700 25px/1.2 var(--font-sans); letter-spacing: -.025em; }
.settings-card__close { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: var(--surface-hover); color: var(--text-muted); font: 300 24px/1 var(--font-sans); }
.settings-card__close:hover { color: var(--text-primary); }
.settings-profile { display: flex; align-items: center; gap: 14px; padding: 22px 26px; }
.settings-profile__avatar { display: grid; width: 48px; height: 48px; flex: none; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: #607d99; color: #fff; font-weight: 600; }
.settings-profile > div { display: flex; min-width: 0; flex-direction: column; }
.settings-profile strong { overflow: hidden; color: var(--text-primary); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.settings-profile span:last-child { overflow: hidden; color: var(--text-muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.settings-usage { padding: 18px 26px; border-bottom: 1px solid var(--line); }
.settings-usage h3 { margin: 0 0 18px; color: var(--text-primary); font-size: 14px; font-weight: 600; }
.settings-usage__heading { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 9px; color: var(--text-secondary); font-size: 12px; }
.settings-usage__heading span { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.settings-usage progress { display: block; appearance: none; width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 8px; background: var(--surface-hover); accent-color: var(--brass); }
.settings-usage progress::-webkit-progress-bar { background: var(--surface-hover); border-radius: 8px; }
.settings-usage progress::-webkit-progress-value { background: var(--brass); border-radius: 8px; }
.settings-usage progress::-moz-progress-bar { background: var(--brass); border-radius: 8px; }
.settings-usage p { margin: 7px 0 18px; color: var(--text-muted); font-size: 11px; line-height: 1.5; }
.settings-usage p:last-child { margin-bottom: 0; }
.settings-usage #usage-status:empty { display: none; }
.settings-list { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.settings-row { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 26px; border-bottom: 1px solid var(--line); }
.settings-row > div { display: grid; gap: 2px; }
.settings-row strong, .settings-instructions strong { color: var(--text-primary); font-size: 13.5px; font-weight: 600; }
.settings-row div span, .settings-instructions > small { color: var(--text-muted); font-size: 12px; }
.settings-row__value { padding: 5px 9px; border: 1px solid var(--brass-line); border-radius: 999px; background: var(--brass-wash); color: var(--brass-bright); font-size: 11.5px; white-space: nowrap; }
.settings-drive-actions { display: flex; flex: none; align-items: center; gap: 7px; }
.settings-drive-actions button, .settings-row__button { min-height: 32px; padding: 6px 10px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--text-secondary); font-size: 12px; }
.settings-drive-actions button:hover, .settings-row__button:hover { border-color: var(--brass-line); color: var(--text-primary); }
.settings-switch { position: relative; width: 42px; height: 24px; flex: none; padding: 2px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface-2); transition: background .18s, border-color .18s; }
.settings-switch span { display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--surface-1); box-shadow: 0 1px 3px rgb(17 24 39 / 20%); transition: transform .18s; }
.settings-switch[aria-checked="true"] { border-color: var(--brass); background: var(--brass); }
.settings-switch[aria-checked="true"] span { transform: translateX(18px); }
.settings-instructions { display: grid; gap: 9px; padding: 18px 26px 22px; }
.settings-instructions > span { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.settings-instructions > span small { color: var(--text-dim); font: 11px var(--font-mono); }
.settings-instructions textarea { width: 100%; min-height: 112px; resize: vertical; padding: 11px 12px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--surface-0); color: var(--text-primary); font-size: 13.5px; line-height: 1.5; }
.settings-instructions textarea:focus { border-color: var(--brass); box-shadow: 0 0 0 3px var(--brass-wash); }
.settings-card__footer { display: grid; gap: 18px; padding: 18px 26px 22px; }
.settings-card__footer > span { color: var(--text-dim); font-size: 11.5px; }
.settings-card__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.settings-card__actions > span { flex: 1; color: var(--text-muted); font-size: 12px; }
.settings-card__actions button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 7px; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface-1); color: var(--text-secondary); }
.settings-card__actions button:hover { border-color: var(--brass-line); color: var(--text-primary); }
.settings-card__actions .settings-save { border-color: var(--brass); background: var(--brass); color: var(--text-inverse); font-weight: 600; }
.settings-card__actions .settings-save:hover { background: var(--brass-bright); color: var(--text-inverse); }
.settings-card__actions button:disabled { opacity: .6; }
.mobile-only { display: none; }

@media (max-width: 980px) {
  .app, .app[data-sidebar="collapsed"] { grid-template-columns: 1fr; }
  .app .sidebar { position: fixed; inset: 0 auto 0 0; z-index: 70; display: flex; width: min(84vw, 320px); box-shadow: 18px 0 36px rgba(0,0,0,.3); transform: translateX(-100%); visibility: hidden; transition: transform .22s cubic-bezier(.2,.8,.2,1), visibility 0s .22s; }
  #mobile-overlay, #mobile-overlay[hidden] { display: block !important; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility 0s .22s; }
  #mobile-overlay:not([hidden]) { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .mobile-only { display: inline-flex; }
  .conversation { padding: calc(68px + env(safe-area-inset-top)) 16px 16px; }
  .renew-banner { padding-left: 68px; }
  .composer-wrap { padding: 6px 16px calc(14px + env(safe-area-inset-bottom)); }
  .empty { padding: 24px 4px; }
  .app.mobile-sidebar-open .sidebar { transform: translateX(0); visibility: visible; transition-delay: 0s; }
  .app.mobile-sidebar-open .sidebar__head { flex-direction: row; justify-content: initial; padding: 14px; }
  .app.mobile-sidebar-open .sidebar__actions, .app.mobile-sidebar-open .sidebar__foot { display: flex; }
  .app.mobile-sidebar-open .sidebar__list { display: block; }
  .app.mobile-sidebar-open .sidebar__head #collapse-sidebar::before { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 6l12 12M18 6 6 18' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E"); }
}
@media (max-width: 560px) {
  .settings-modal { align-items: end; padding: 12px; }
  .settings-card { max-height: calc(100dvh - 24px); border-radius: 15px; }
  .settings-card__header, .settings-profile, .settings-row, .settings-usage, .settings-instructions, .settings-card__footer { padding-right: 18px; padding-left: 18px; }
  .settings-card__actions { flex-wrap: wrap; }
  .settings-card__actions > span { flex-basis: 100%; }
  .billing { padding: 16px; }
  .billing__top { padding: 12px 16px; gap: 10px; }
  .billing__top .brand-wordmark { font-size: 18px; }
  .billing__close { padding: 8px 10px; font-size: 11px; }
  .billing__footer { flex-direction: column; align-items: center; }
  .conversation { padding: calc(68px + env(safe-area-inset-top)) 14px 16px; }
  .empty__greeting { font-size: clamp(36px, 10vw, 48px); }
  .composer-wrap { padding-right: 10px; padding-left: 10px; }
  .composer { gap: 8px; padding: 8px 8px 8px 14px; }
  .msg-user { max-width: 88%; }
  .assistant-answer { font-size: 15px; }
  .answer-finding { grid-template-columns: 25px minmax(0, 1fr); gap: 9px; }
  .composer-foot { font-size: 10.5px; }
  .auth-gate__card { padding: 28px 20px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; } }

/* Agentic execution tree (backend-generated telemetry) */
.icon--stop { mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='7' y='7' width='10' height='10' rx='1.5' fill='black'/%3E%3C/svg%3E"); }
.send-button--stop:not(:disabled) { background: var(--danger); color: #fff; }
/* Research is an open activity line, with an optional flat history. */
.execution { max-width: 72ch; margin-bottom: 20px; background: transparent; font-size: 13px; }
.execution[data-status="completed"] { margin-bottom: 0; }
.execution__headline { display: flex; align-items: center; gap: 10px; min-height: 30px; }
.execution__signal { flex: none; width: 5px; height: 5px; border-radius: 50%; background: var(--text-muted); }
.execution__title { color: var(--text-secondary); font: 500 13px/1.5 var(--font-sans); letter-spacing: 0; }
.execution__toggle { flex: none; margin-left: auto; padding: 6px 0 6px 12px; border: 0; background: transparent; color: var(--text-muted); font: inherit; font-size: 12px; cursor: pointer; }
.execution__toggle:hover { color: var(--text-primary); }
.execution__body { max-height: 240px; overflow: auto; list-style: none; margin: 12px 0 0 2px; padding: 0 0 0 14px; border-left: 1px solid var(--line); background: transparent; }
.execution__item { display: flex; align-items: baseline; gap: 12px; padding: 7px 0; }
.execution__label { min-width: 0; flex: 1; overflow-wrap: anywhere; color: var(--text-secondary); }
.execution__error { margin-top:4px; color:var(--text-muted); font-size:12px; }
.execution__error summary { cursor:pointer; }
.execution__error p { margin:6px 0 0; line-height:1.5; }
.execution__item small { flex: none; font-size: 11px; color: var(--text-muted); }
.execution[data-status="failed"] .execution__signal { background: var(--danger); }
.execution__item[data-status="failed"] small { color: var(--caution); }
.execution__item[data-status="not_checked"] small { color: var(--caution); }
@media(max-width:540px) { .execution__toggle { min-height: 44px; } .execution__item { flex-wrap: wrap; gap: 2px 12px; } }

/* Answer reading hierarchy: analysis first, evidence available on demand. */
.answer-case { font: .88em/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; padding: .12em .35em; border-radius: 4px; background: var(--surface-2, var(--surface-1)); color: var(--text-primary); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.answer-finding { padding: 20px 0; border-top: 0; }
.answer-finding__number { border: 0; background: transparent; color: var(--text-dim); }
.answer-finding__control { display: inline-grid; width: 22px; height: 22px; margin-left: 5px; place-items: center; vertical-align: .08em; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: var(--text-muted); font: 600 12px/1 var(--font-sans); cursor: pointer; }
.answer-finding__control--source { font: 600 17px/1 Georgia, serif; }
.answer-finding__control:hover, .answer-finding__control[aria-expanded="true"] { border-color: var(--brass-line); background: var(--brass-wash); color: var(--brass-bright); }
.answer-finding__control:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
.answer-finding__panel { margin-top: 10px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-1); color: var(--text-muted); font-size: 12px; line-height: 1.55; }
.answer-finding__panel--source .answer-excerpt-label { margin: 0 0 9px; color: var(--text-dim); font-size: 10px; }
.answer-finding__panel--source blockquote { max-height: 320px; margin: 0; padding: 0 0 0 14px; overflow: auto; border-left: 2px solid var(--line-strong); color: var(--text-secondary); font: 15px/1.75 Georgia, serif; }
.answer-finding__panel--source blockquote p { margin: 0 0 10px; white-space: normal; }
.answer-finding__panel--source blockquote p:last-child { margin-bottom: 0; }
.answer-evidence { margin-top: 12px; }
.answer-evidence .answer-excerpt-label { margin: 12px 0 4px; color: var(--text-dim); font-size: 11px; }
.answer-evidence blockquote { white-space: normal; line-height: 1.75; padding: 4px 0 4px 18px; border-radius: 0; background: transparent; color: var(--text-secondary); font-family: Georgia, serif; font-size: 15px; }
.answer-evidence blockquote p { margin: 0 0 12px; white-space: normal; }
.answer-evidence blockquote p:last-child { margin-bottom: 0; }
.answer-disclosure summary:focus-visible { outline: 2px solid var(--brass); outline-offset: 4px; }

/* Renewal stays over the existing workspace; saved conversations remain visible. */
.billing[role="dialog"] { display: grid; place-items: center; background: rgb(0 0 0 / 35%); backdrop-filter: blur(8px); }
.billing[role="dialog"] .billing__shell { padding: clamp(20px, 4vw, 36px); border: 1px solid var(--line); border-radius: 28px; background: var(--surface-0); }
.billing[role="dialog"] .billing__intro { margin-top: 32px; }
.billing[role="dialog"] h1 { font-size: clamp(28px, 4vw, 40px); }
.subscription-notice { margin: 20px 0; padding: 20px; border: 1px solid var(--brass-line); border-radius: 12px; background: var(--surface-1); color: var(--text-primary); }
.subscription-notice p { margin: 8px 0 16px; color: var(--text-secondary); line-height: 1.6; }
.subscription-notice button { padding: 10px 16px; border-radius: 8px; border: 1px solid var(--brass-line); background: var(--brass-wash); color: var(--brass-bright); font-weight: 600; }
.subscription-notice button:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
.answer-files { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 8px; }
.answer-files__intro { flex-basis: 100%; margin: 0 0 2px; color: var(--text-secondary); font-size: 14px; }
.answer-table { max-width: 100%; overflow-x: auto; margin: 16px 0; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); }
.answer-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.answer-table th, .answer-table td { padding: 10px 12px; border-bottom: 1px solid var(--line-strong); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.answer-table th { background: var(--surface-hover); font-weight: 600; }
.answer-table tbody tr:last-child td { border-bottom: 0; }
.answer-file-row { display: flex; width: min(480px, 100%); align-items: center; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--surface-1); transition: background .12s, border-color .12s; }
.answer-file-row:hover, .answer-file-row:focus-within { background: var(--surface-hover); border-color: var(--brass-line); }
.answer-file { display: flex; flex: 1; align-items: center; gap: 12px; max-width: 100%; min-width: 0; padding: 12px 16px; border-radius: 14px; color: var(--text-primary); background: transparent; cursor: pointer; text-align: left; }
.answer-file:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
.answer-file:disabled { opacity: .65; cursor: wait; }
.answer-file__download { display: grid; flex: none; place-items: center; width: 36px; height: 36px; margin-right: 8px; border-radius: 9px; background: transparent; color: var(--text-muted); }
.answer-file__download:hover { background: var(--brass-wash); color: var(--text-primary); }
.answer-file__body { display: grid; min-width: 0; gap: 3px; }
.answer-file__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.answer-file__action { font-size: 11px; color: var(--text-muted); flex-shrink: 0; }
.answer-files__error { flex-basis: 100%; margin: 0; font-size: 13px; color: var(--text-muted); }

/* Files stay beside the conversation; compact screens use the whole workspace. */
.app.file-preview-open { grid-template-columns: 248px minmax(0, 1fr) var(--file-preview-width, minmax(360px, 44%)); transition: none; }
.app.file-preview-open[data-sidebar="collapsed"] { grid-template-columns: 64px minmax(0, 1fr) var(--file-preview-width, minmax(360px, 44%)); }
.file-preview-open .conversation { padding-inline: 24px; }
.file-preview-open .composer-wrap { padding-inline: 20px; }
.file-preview { position: relative; display: flex; width: 100%; height: 100%; max-width: none; max-height: none; min-width: 0; min-height: 0; margin: 0; padding: 0; flex-direction: column; overflow: visible; border: 0; border-left: 1px solid var(--line-strong); border-radius: 0; background: var(--surface-0); color: var(--text-primary); }
.file-preview__resize { position: absolute; top: 0; bottom: 0; left: -6px; z-index: 2; width: 12px; cursor: col-resize; touch-action: none; }
.file-preview__resize::after { content: ''; position: absolute; top: calc(50% - 20px); left: 4px; width: 4px; height: 40px; border-radius: 4px; background: var(--text-dim); opacity: .55; }
.file-preview__resize:hover::after, .file-preview__resize:focus-visible::after { background: var(--brass); opacity: 1; }
.file-preview__resize:focus-visible { outline: 2px solid var(--brass); outline-offset: -2px; }
.file-preview-resizing, .file-preview-resizing * { cursor: col-resize !important; user-select: none; }
.file-preview-resizing iframe { pointer-events: none; }
.file-preview::backdrop { background: var(--surface-0); }
.file-preview__header { display: flex; min-height: 70px; flex: none; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--surface-1); }
.file-preview__heading { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; }
.file-preview__heading > div { min-width: 0; }
.file-preview__header h2 { overflow: hidden; margin: 0; color: var(--text-primary); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.file-preview__header p { margin: 2px 0 0; color: var(--text-muted); font-size: 10px; }
.file-preview__header .icon-button { width: 36px; height: 36px; border-radius: 9px; }
.file-preview__copy { flex: none; min-width: 64px; height: 36px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 9px; background: transparent; color: var(--text-primary); font-size: 12px; }
.file-preview__copy:hover:not(:disabled) { background: var(--surface-hover); }
.file-preview__copy:disabled { opacity: .5; cursor: default; }
.file-preview__status { flex: none; margin: 0; padding: 16px 20px; color: var(--text-muted); font-size: 13px; }
.file-preview__content { display: flex; flex: 1; min-height: 0; min-width: 0; flex-direction: column; overflow: auto; overscroll-behavior: contain; }
.file-preview__pdf { flex: 1; width: 100%; min-height: 0; border: 0; background: var(--surface-2); }
.file-preview__image { display: block; width: 100%; min-height: 0; flex: 1; padding: 24px; object-fit: contain; }
.file-preview__page { margin: 24px; padding: clamp(22px, 4vw, 48px); min-height: calc(100% - 48px); border: 1px solid var(--line); border-radius: 3px; background: var(--surface-1); color: var(--text-primary); box-shadow: 0 4px 18px rgb(0 0 0 / 6%); font: 14px/1.7 var(--font-sans); overflow-wrap: anywhere; }
.file-preview__page h1 { font-size: 26px; line-height: 1.25; }
.file-preview__page h2 { font-size: 21px; line-height: 1.35; }
.file-preview__page h3 { font-size: 17px; }
.file-preview__page :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }
.file-preview__page p { margin: 0 0 10px; white-space: pre-wrap; }
.file-preview pre { margin: 0; padding: 18px; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.8 var(--font-mono); }
.file-preview__page pre { padding: 12px; border-radius: 6px; background: var(--surface-2); }
.file-preview__list { padding-left: 12px; }
.file-preview__table { overflow-x: auto; margin: 16px 0; }
.file-preview table { width: 100%; border-collapse: collapse; font-size: 12px; }
.file-preview th, .file-preview td { min-width: 100px; padding: 10px 12px; border: 1px solid var(--line-strong); text-align: left; vertical-align: top; white-space: pre-wrap; }
.file-preview th { background: var(--surface-2); font-weight: 600; }
.file-preview__sheet { flex: 1; min-height: 0; overflow: auto; padding: 16px; background: var(--surface-1); }
.file-preview__sheet .file-preview__table { margin: 0; }
.file-preview__tabs { display: flex; flex: none; gap: 4px; overflow-x: auto; padding: 8px 12px; border-top: 1px solid var(--line-strong); }
.file-preview__tabs button, .file-preview__retry { flex: none; padding: 8px 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--text-muted); font-size: 12px; }
.file-preview__tabs button:hover { background: var(--surface-hover); }
.file-preview__tabs button[aria-selected="true"] { border-color: var(--brass-line); background: var(--surface-1); color: var(--brass-bright); }
.file-preview__retry { align-self: flex-start; margin: 8px 20px; border-color: var(--line-strong); }
@media (max-width: 980px) {
  .app.file-preview-open, .app.file-preview-open[data-sidebar="collapsed"] { grid-template-columns: minmax(0, 1fr); }
  .file-preview { position: fixed; inset: 0; z-index: 75; border: 0; }
  .file-preview__resize { display: none; }
  .file-preview__header { padding-top: max(12px, env(safe-area-inset-top)); }
  .file-preview__tabs { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
  .file-preview__page { margin: 16px; min-height: calc(100% - 32px); padding: 24px; }
  .file-preview__header .icon-button { width: 44px; height: 44px; }
  .file-preview__copy { height: 44px; }
  .document-chip__name { max-width: 145px; }
  .answer-file__download { width: 44px; height: 44px; }
}
/* Experimental answers remain attached to their original question. */
.experiment-notice,.experiment-comparison{border:1px solid var(--border,#d7d7d7);border-radius:10px;padding:12px;margin:12px 0;font-size:.9rem;overflow-wrap:anywhere}
.experiment-notice p,.experiment-comparison p{margin:8px 0}
.experiment-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.experiment-tabs button[aria-pressed="true"]{font-weight:700;text-decoration:underline}
.experiment-comparison form{display:grid;gap:8px;margin:12px 0}
.experiment-comparison label{display:grid;gap:4px}
.experiment-comparison textarea{width:100%;box-sizing:border-box;resize:vertical}
.experiment-comparison button,.experiment-notice button{cursor:pointer;padding:7px 10px;border-radius:6px}
