/* Generated at build from the Swivel Assistant widget's styles.js (tools/swivel-assistant). Do not edit. */
.swa {
  --_accent: var(--swivel-assistant-accent, #2f6fed);
  --_on-accent: var(--swivel-assistant-on-accent, #fff);
  --_bg: var(--swivel-assistant-bg, #fff);
  --_surface: var(--swivel-assistant-surface, #f1f3f5);
  --_text: var(--swivel-assistant-text, #1f2328);
  --_muted: var(--swivel-assistant-muted, #5f6b7a);
  --_border: var(--swivel-assistant-border, #dfe3e8);
  --_teammate: var(--swivel-assistant-teammate, #e3f6fb);
  --_danger: var(--swivel-assistant-danger, #c62f3e);
  --_success: var(--swivel-assistant-success, #198754);
  --_warning: var(--swivel-assistant-warning, #f0ad00);
  --_radius: var(--swivel-assistant-radius, 1rem);
  --_offset: var(--swivel-assistant-offset, 1.25rem);




  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  font-family: var(--swivel-assistant-font, inherit);
  font-size: var(--swivel-assistant-font-size, 0.9375rem);
  line-height: 1.45;
  color: var(--_text);
}
.swa * { box-sizing: border-box; }
.swa [hidden] { display: none !important; }
.swa .icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.swa .icon svg { width: 1.1em; height: 1.1em; }
.swa .visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.swa button, .swa input, .swa select, .swa textarea { font: inherit; color: inherit; }
.swa button { cursor: pointer; }
.swa :focus-visible { outline: 3px solid color-mix(in srgb, var(--_accent) 45%, transparent); outline-offset: 2px; }
.swa .launcher {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 3.25rem; height: 3.25rem; border: 0; border-radius: 50%;
  background: var(--_accent); color: var(--_on-accent); font-size: 1.25rem;
  box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%);
}
.swa .launcher:hover, .swa .launcher.is-hover { background: color-mix(in srgb, var(--_accent) 88%, #000); }
.swa .launcher.beckon { animation: swa-beckon 0.8s cubic-bezier(0.3, 1.5, 0.5, 1) 3; }
@keyframes swa-beckon {
  0%, 100% { transform: scale(1) rotate(0); box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%), 0 0 0 0 color-mix(in srgb, var(--_accent) 60%, transparent); }
  35% { transform: scale(1.22) rotate(-10deg); }
  60% { transform: scale(0.96) rotate(6deg); }
  80% { box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%), 0 0 0 1.1rem color-mix(in srgb, var(--_accent) 0%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
.swa .launcher.beckon { animation: none; }
}
.swa .unread {
  position: absolute; top: -0.2rem; right: -0.2rem; min-width: 1.25rem; height: 1.25rem; padding: 0 0.3rem;
  border-radius: 0.625rem; background: var(--_danger); color: #fff;
  font-size: 0.75rem; font-weight: 700; line-height: 1.25rem; text-align: center;
}
.swa .unread:empty { display: none; }
.swa .window {
  display: flex; flex-direction: column;
  width: min(25rem, calc(100vw - 2rem)); height: min(40rem, calc(100vh - 7rem));
  overflow: hidden; border: 1px solid var(--_border); border-radius: var(--_radius);
  background: var(--_bg); box-shadow: 0 1rem 3rem rgb(0 0 0 / 17.5%);
}
.swa .header { position: relative; display: flex; align-items: center; gap: 0.75rem; padding: 0.85rem 1rem; border-bottom: 1px solid var(--_border); }
.swa .header-tools { display: flex; flex: 0 0 auto; align-items: center; gap: 0.15rem; }
.swa .mark {
  display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 2rem; height: 2rem;
  border-radius: 0.6rem; background: color-mix(in srgb, var(--_accent) 12%, transparent); color: var(--_accent);
}
.swa .header-text { flex: 1 1 auto; min-width: 0; }
.swa .title { margin: 0; font-size: 1rem; font-weight: 600; }
.swa .subtitle { margin: 0; color: var(--_muted); font-size: 0.85em; }
.swa .presence {
  position: relative; display: flex; align-items: center; gap: 0.4rem; min-width: 0; margin: 0.3rem 0 0;
  color: var(--_muted); font-size: 0.8em; white-space: nowrap;
}
.swa .presence-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.swa .presence-info {
  display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem;
  margin: -0.35rem 0 -0.35rem -0.3rem; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--_muted);
}
.swa .presence-info svg { width: 1.1em; height: 1.1em; }
.swa .presence-info:hover, .swa .presence-info.is-hover, .swa .presence.open .presence-info { color: var(--_text); }
.swa .presence-detail {
  position: absolute; top: calc(100% + 0.45rem); left: 0; right: 0; z-index: 2; padding: 0.5rem 0.65rem;
  border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); color: var(--_text);
  box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 12%); white-space: normal; visibility: hidden; opacity: 0; transition: opacity 0.12s;
}
.swa .presence:hover .presence-detail, .swa .presence.is-hover .presence-detail, .swa .presence-info:focus-visible + .presence-detail, .swa .presence.open .presence-detail {
  visibility: visible; opacity: 1;
}
.swa .dot { width: 0.5rem; height: 0.5rem; flex: 0 0 auto; border-radius: 50%; background: var(--_muted); }
.swa .dot.online { background: var(--_success); }
.swa .faces { display: inline-flex; flex: 0 0 auto; }
.swa .face {
  display: inline-grid; place-items: center; width: 1.35rem; height: 1.35rem; margin-left: -0.35rem; border: 2px solid var(--_bg);
  border-radius: 50%; background: var(--_teammate); color: var(--_text); font-size: 0.6rem; font-weight: 700; object-fit: cover;
}
.swa .faces .face:first-child { margin-left: 0; }
.swa .gauge {
  --_gauge: var(--_accent);
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.1rem;
  padding: 0.15rem 0.25rem; border: 1px solid transparent; border-radius: 0.5rem; background: transparent; line-height: 0;
}
.swa .gauge.low { --_gauge: var(--_warning); }
.swa .gauge.out { --_gauge: var(--_danger); }
.swa .gauge:hover, .swa .gauge.is-hover, .swa .gauge[aria-expanded="true"] { border-color: var(--_border); background: var(--_surface); }
.swa .gauge-track { fill: none; stroke: var(--_border); stroke-width: 3.5; stroke-linecap: round; }
.swa .gauge-red { fill: none; stroke: var(--_danger); stroke-width: 3.5; stroke-linecap: round; }
.swa .gauge-fill { fill: none; stroke: var(--_gauge); stroke-width: 3.5; stroke-linecap: butt; }
.swa .gauge-label { color: var(--_muted); font-size: 0.625rem; font-variant: small-caps; line-height: 1; letter-spacing: 0.05em; }
.swa .gauge-needle { stroke: var(--_text); stroke-width: 1.6; stroke-linecap: round; }
.swa .gauge-hub { fill: var(--_text); }
.swa .credits {
  position: absolute; top: calc(100% + 0.35rem); left: 0.75rem; right: 0.75rem; z-index: 4; display: flex; flex-direction: column;
  gap: 0.5rem; padding: 0.9rem; border: 1px solid var(--_border); border-radius: 0.75rem; background: var(--_bg);
  box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 12%);
}
.swa .credits-left { margin: 0; color: var(--_muted); font-size: 0.95rem; font-weight: 400; }
.swa .credits-count { color: var(--_text); font-size: 1.35rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.swa .credits-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; }
.swa .credits-link { padding: 0; border: 0; background: none; color: var(--_accent); font-size: 0.85em; font-weight: 600; }
.swa .credits-link:hover, .swa .credits-link.is-hover { text-decoration: underline; }
.swa .credits-notice {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; margin: 0.75rem 0.75rem 0;
  padding: 0.5rem 0.75rem; border-radius: 0.6rem; font-size: 0.85em;
}
.swa .credits-notice.low { background: color-mix(in srgb, var(--_warning) 18%, var(--_bg)); color: var(--_text); }
.swa .credits-notice.out { background: color-mix(in srgb, var(--_danger) 10%, var(--_bg)); color: var(--_danger); }
.swa .credits-notice .button { background: var(--_bg); }
.swa .body { position: relative; display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.swa .scroll { display: flex; flex: 1 1 auto; flex-direction: column; gap: 1rem; min-height: 0; padding: 1rem; overflow-y: auto; }
.swa .scroll > * { flex-shrink: 0; }
.swa .tabs { display: flex; border-top: 1px solid var(--_border); }
.swa .tab {
  display: flex; flex: 1 1 0; flex-direction: column; align-items: center; gap: 0.15rem; padding: 0.5rem 0;
  border: 0; background: none; color: var(--_muted); font-size: 0.8rem;
}
.swa .tab .icon svg { width: 1.25rem; height: 1.25rem; }
.swa .tab:hover, .swa .tab.is-hover, .swa .tab[aria-current="page"] { color: var(--_accent); }
.swa .muted { margin: 0; color: var(--_muted); }
.swa .small { font-size: 0.85em; }
.swa .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  padding: 0.45rem 0.85rem; border: 1px solid transparent; border-radius: 0.5rem;
  background: var(--_accent); color: var(--_on-accent); font-weight: 500;
}
.swa .button:hover, .swa .button.is-hover { background: color-mix(in srgb, var(--_accent) 88%, #000); }
.swa .button:disabled { opacity: 0.6; cursor: default; }
.swa .button.small { padding: 0.25rem 0.6rem; font-size: 0.85em; }
.swa .button.secondary { border-color: var(--_border); background: transparent; color: var(--_text); }
.swa .button.secondary:hover, .swa .button.secondary.is-hover { background: var(--_surface); }
.swa .icon-button {
  display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem;
  border: 0; border-radius: 0.5rem; background: transparent; color: var(--_muted);
}
.swa .icon-button:hover, .swa .icon-button.is-hover { background: var(--_surface); color: var(--_text); }
.swa .section-title { margin: 0 0 0.5rem; color: var(--_muted); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.swa .list { margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--_border); border-radius: 0.6rem; list-style: none; }
.swa .list li + li { border-top: 1px solid var(--_border); }
.swa .row {
  display: flex; align-items: center; gap: 0.5rem; width: 100%; padding: 0.6rem 0.9rem;
  border: 0; background: none; text-align: left;
}
.swa .row:hover, .swa .row.is-hover { background: var(--_surface); }
.swa .row-text { flex: 1 1 auto; min-width: 0; }
.swa .row-title { display: block; overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.swa .row-meta { display: block; color: var(--_muted); font-size: 0.85em; }
.swa .row .chevron { color: var(--_muted); font-size: 0.8em; }
.swa .badge {
  display: inline-block; padding: 0.15rem 0.5rem; border: 1px solid var(--_border); border-radius: 1rem;
  font-size: 0.75rem; font-weight: 600; white-space: nowrap;
}
.swa .badge.count { border-color: transparent; background: var(--_danger); color: #fff; }
.swa .card-title { margin: 0; font-size: 0.95rem; font-weight: 600; }
.swa .bar-row { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.swa .bar-row.start { justify-content: flex-start; }
.swa .messages { display: flex; flex: 1 1 auto; flex-direction: column; gap: 0.75rem; min-height: 0; padding: 1rem; overflow-y: auto; }
.swa .empty { margin: auto 0 0; color: var(--_muted); font-size: 0.85em; }
.swa .message { display: flex; flex-direction: column; align-items: flex-start; max-width: 90%; }
.swa .message.user { align-self: flex-end; align-items: flex-end; }
.swa .message-group { display: contents; }
.swa .sender { margin: 0 0 0.25rem; color: var(--_muted); font-size: 0.8em; }
.swa .bubble { padding: 0.55rem 0.8rem; border-radius: 0.9rem; background: var(--_surface); overflow-wrap: anywhere; }
.swa .bubble > :first-child { margin-top: 0; }
.swa .bubble > :last-child { margin-bottom: 0; }
.swa .bubble p, .swa .bubble ul, .swa .bubble ol, .swa .bubble pre, .swa .bubble blockquote, .swa .bubble .md-table { margin: 0 0 0.5rem; }
.swa .bubble ul, .swa .bubble ol { padding-left: 1.2rem; }
.swa .bubble a { color: inherit; text-decoration: underline; }
.swa .bubble code { padding: 0.05rem 0.25rem; border-radius: 0.25rem; background: color-mix(in srgb, var(--_text) 8%, transparent); font-size: 0.9em; }
.swa .bubble pre { padding: 0.5rem; overflow-x: auto; border-radius: 0.4rem; background: color-mix(in srgb, var(--_text) 8%, transparent); }
.swa .bubble pre code { padding: 0; background: none; }
.swa .bubble blockquote { padding-left: 0.6rem; border-left: 3px solid var(--_border); color: var(--_muted); }
.swa .bubble hr { border: 0; border-top: 1px solid var(--_border); }
.swa .bubble .md-heading { font-weight: 600; }
.swa .bubble .md-table { overflow-x: auto; }
.swa .bubble table { border-collapse: collapse; font-size: 0.9em; }
.swa .bubble th, .swa .bubble td { padding: 0.25rem 0.5rem; border: 1px solid var(--_border); text-align: left; }
.swa .message.user .bubble { border-bottom-right-radius: 0.25rem; background: var(--_accent); color: var(--_on-accent); white-space: pre-wrap; }
.swa .message.assistant .bubble { border-bottom-left-radius: 0.25rem; }
.swa .message.teammate .bubble { border-bottom-left-radius: 0.25rem; background: var(--_teammate); }
.swa .message.assistant.note .bubble { border: 1px dashed color-mix(in srgb, var(--_warning) 60%, var(--_bg)); background: color-mix(in srgb, var(--_warning) 12%, var(--_bg)); }
.swa .message.failed .bubble { background: color-mix(in srgb, var(--_danger) 10%, var(--_bg)); }
.swa .status { display: flex; align-items: center; gap: 0.4rem; margin: 0.35rem 0 0; color: var(--_muted); font-size: 0.85em; }
.swa .typing { display: inline-flex; gap: 0.2rem; }
.swa .typing span { width: 0.4rem; height: 0.4rem; border-radius: 50%; background: currentcolor; animation: swa-typing 1.2s infinite ease-in-out; }
.swa .typing span:nth-child(2) { animation-delay: 0.15s; }
.swa .typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes swa-typing { 0%, 80%, 100% { opacity: 0.25; } 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
.swa .typing span { animation: none; }
}
.swa .sources { margin: 0.4rem 0 0; padding: 0; font-size: 0.85em; list-style: none; }
.swa .sources li + li { margin-top: 0.2rem; }
.swa .sources a { display: inline-flex; align-items: center; gap: 0.3rem; color: var(--_accent); text-decoration: none; }
.swa .sources a:hover, .swa .sources a.is-hover { text-decoration: underline; }
.swa .waiting { padding: 0 0.75rem 0.5rem; }
.swa .needs {
  display: flex; align-items: center; gap: 0.5rem; width: 100%; padding: 0.55rem 0.75rem; border: 0; border-radius: 0.6rem;
  background: color-mix(in srgb, var(--_accent) 12%, var(--_bg)); color: var(--_text); font: inherit; font-size: 0.85em;
  font-weight: 600; text-align: left; cursor: pointer;
}
.swa .needs .icon { color: var(--_accent); }
.swa .needs .chevron { margin-left: auto; }
.swa .needs:focus-visible { outline: 2px solid var(--_accent); outline-offset: 2px; }
.swa .notice {
  display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; padding: 0.5rem 0.75rem;
  border: 1px dashed var(--_border); border-radius: 0.6rem; color: var(--_muted); font-size: 0.85em;
}
.swa .notice .icon { margin-top: 0.15rem; }
.swa .offer { margin-top: 0.5rem; }
.swa .offer .button { gap: 0.35rem; }
.swa .ticket { width: 100%; margin-top: 0.5rem; padding: 0.9rem; border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); }
.swa .ticket form { display: flex; flex-direction: column; gap: 0.5rem; }
.swa .ticket-type { display: flex; align-items: center; gap: 0.35rem; margin: 0; font-size: 0.85em; font-weight: 600; }
.swa .ticket-done { display: flex; align-items: center; gap: 0.4rem; margin: 0; }
.swa .ticket-done .icon { color: var(--_success); }
.swa .field label { display: block; margin-bottom: 0.2rem; font-size: 0.85em; }
.swa .input {
  display: block; width: 100%; padding: 0.35rem 0.6rem; border: 1px solid var(--_border); border-radius: 0.4rem;
  background: var(--_bg); font-size: 0.9em;
}
.swa .input:focus, .swa .input.is-focus { border-color: var(--_accent); outline: 2px solid color-mix(in srgb, var(--_accent) 25%, transparent); outline-offset: 0; }
.swa textarea.input { resize: vertical; }
.swa .actions { display: flex; justify-content: flex-end; gap: 0.5rem; }
.swa .answer { width: 100%; margin-top: 0.5rem; padding: 0.75rem; border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); }
.swa .answer form { display: flex; flex-direction: column; gap: 0.5rem; }
.swa .answer.options { padding: 0; border: 0; background: none; }
.swa .option-list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.swa .option-list .button { text-decoration: none; }
.swa .option-list .button:disabled { opacity: 1; }
.swa .option-list .button.secondary:disabled { color: var(--_muted); }
.swa .cards { display: flex; flex-direction: column; gap: 0.5rem; width: 100%; }
.swa .card img { display: block; width: 100%; max-height: 10rem; margin-bottom: 0.5rem; border-radius: 0.4rem; object-fit: cover; }
.swa .card .card-title { margin: 0 0 0.2rem; font-weight: 600; }
.swa .card .option-list { margin-top: 0.5rem; }
.swa .answered { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.75rem; margin: 0; font-size: 0.9em; }
.swa .answered dt { color: var(--_muted); }
.swa .answered dd { margin: 0; overflow-wrap: anywhere; }
.swa .ratings { display: flex; justify-content: space-between; gap: 0.25rem; }
.swa .rating { flex: 1; padding: 0.35rem 0; border: 1px solid transparent; border-radius: 0.5rem; background: none; color: var(--_accent); font-size: 1.4em; line-height: 1; cursor: pointer; }
.swa .rating:hover:not(:disabled), .swa .rating.is-hover:not(:disabled), .swa .rating.selected { border-color: var(--_border); background: var(--_surface); }
.swa .rating:disabled { cursor: default; }
.swa .survey .ticket-done, .swa .survey form, .swa .survey .muted { margin-top: 0.5rem; }
.swa .typing-line { margin: 0 1rem 0.4rem; }
.swa .error { margin: 0; color: var(--_danger); font-size: 0.85em; }
.swa .composer { padding: 0.75rem; border-top: 1px solid var(--_border); }
.swa .composer-row { display: flex; align-items: flex-end; gap: 0.5rem; }
.swa .composer textarea {
  flex: 1 1 auto; max-height: 8.75rem; padding: 0.45rem 0.75rem; border: 1px solid var(--_border);
  border-radius: 0.6rem; background: var(--_bg); resize: none;
}
.swa .composer textarea:focus, .swa .composer textarea.is-focus { border-color: var(--_accent); outline: 2px solid color-mix(in srgb, var(--_accent) 25%, transparent); outline-offset: 0; }
.swa .composer .button { height: 2.4rem; }
.swa .chip {
  display: inline-flex; align-items: center; gap: 0.25rem; max-width: 100%; margin-bottom: 0.5rem; padding: 0.1rem 0.3rem 0.1rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--_accent) 40%, transparent); border-radius: 1rem;
  background: color-mix(in srgb, var(--_accent) 8%, transparent); color: var(--_accent); font-size: 0.8em;
}
.swa .composer-top { display: flex; align-items: center; gap: 0.5rem; }
.swa .composer-top:has(> :not([hidden])) { margin-bottom: 0.5rem; }
.swa .composer-top .chip { min-width: 0; margin-bottom: 0; }
.swa .add { position: relative; flex: 0 0 auto; }
.swa .add-button {
  display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; padding: 0;
  border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); color: var(--_muted); font-size: 1.1rem;
}
.swa .add-button:hover, .swa .add-button.is-hover, .swa .add-button[aria-expanded="true"] { border-color: var(--_accent); color: var(--_accent); background: color-mix(in srgb, var(--_accent) 8%, var(--_bg)); }
.swa .add-button:disabled { opacity: 0.6; cursor: default; }
.swa .menu {
  position: absolute; bottom: calc(100% + 0.5rem); left: 0; z-index: 2; display: flex; flex-direction: column; width: 16rem; padding: 0.35rem;
  border: 1px solid var(--_border); border-radius: 0.75rem; background: var(--_bg); box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 12%);
}
.swa .menu-item {
  display: flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; padding: 0 0.6rem; border: 0; border-radius: 0.5rem;
  background: none; color: var(--_text); font: inherit; font-size: 0.9em; text-align: left;
}
.swa .menu-item:hover, .swa .menu-item.is-hover, .swa .menu-item:focus-visible { background: var(--_surface); outline: none; }
.swa .menu-text { display: flex; flex-direction: column; }
.swa .menu-hint { color: var(--_muted); font-size: 0.8em; }
.swa .menu-divider { width: 100%; margin: 0.35rem 0; border: 0; border-top: 1px solid var(--_border); }
.swa .menu-divider:last-child, .swa .menu-divider:has(+ [hidden]:last-child) { display: none; }
.swa .files { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.5rem; }
.swa .file-chip {
  display: inline-flex; align-items: center; gap: 0.5rem; max-width: 100%; padding: 0.25rem 0.35rem 0.25rem 0.25rem;
  border: 1px solid var(--_border); border-radius: 0.6rem; font-size: 0.8em;
}
.swa .file-chip img, .swa .file-chip > .icon { width: 1.75rem; height: 1.75rem; border-radius: 0.35rem; object-fit: cover; background: var(--_surface); }
.swa .file-chip-text { display: flex; flex-direction: column; min-width: 0; }
.swa .file-chip .file-name { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.swa .file-chip button { display: inline-flex; padding: 0.2rem; border: 0; background: none; color: var(--_muted); }
.swa .progress { display: block; width: 6rem; height: 0.2rem; margin-top: 0.2rem; border-radius: 0.1rem; background: var(--_border); }
.swa .progress span { display: block; height: 100%; border-radius: inherit; background: var(--_accent); }
.swa .attachments { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.35rem; }
.swa .message.user .attachments { justify-content: flex-end; }
.swa .attachment-image { display: block; border-radius: 0.6rem; overflow: hidden; border: 1px solid var(--_border); }
.swa .attachment-image img { display: block; width: auto; height: auto; max-width: 15rem; max-height: 12rem; }
.swa .attachment-file {
  display: flex; align-items: center; gap: 0.6rem; min-width: 12rem; max-width: 100%; padding: 0.45rem 0.7rem;
  border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); color: var(--_text); text-decoration: none;
}
.swa .attachment-file:hover, .swa .attachment-file.is-hover { border-color: var(--_accent); }
.swa .attachment-file > .icon { margin-left: auto; color: var(--_muted); }
.swa .file-badge {
  display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: 0.4rem;
  background: var(--_surface); color: var(--_muted); font-size: 0.65rem; font-weight: 700;
}
.swa .file-meta { display: flex; flex-direction: column; min-width: 0; }
.swa .file-meta .file-name { overflow: hidden; font-size: 0.9em; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.swa .file-size { color: var(--_muted); font-size: 0.8em; }
.swa .downloads { display: flex; flex-direction: column; align-self: stretch; gap: 0.4rem; margin: 0.35rem 0 0; padding: 0; list-style: none; }
.swa .download {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; max-width: 22rem; padding: 0.45rem 0.5rem 0.45rem 0.7rem;
  border: 1px solid var(--_border); border-radius: 0.6rem; background: var(--_bg); color: var(--_text);
}
.swa .download .file-meta { flex: 1 1 8rem; }
.swa .download .file-size { white-space: nowrap; }
.swa .download-filed { display: flex; align-items: center; gap: 0.25rem; min-width: 0; color: var(--_success); font-size: 0.8em; white-space: nowrap; }
.swa .download-filed a { overflow: hidden; color: var(--_accent); font-weight: 600; text-overflow: ellipsis; }
.swa .download-actions { display: flex; flex: none; align-items: center; gap: 0.15rem; margin-left: auto; }
.swa .download-link {
  display: inline-flex; flex: none; align-items: center; gap: 0.3rem; padding: 0.3rem 0.5rem; border-radius: 0.4rem;
  color: var(--_accent); font-size: 0.85em; font-weight: 600; text-decoration: none;
}
.swa .download-link:hover, .swa .download-link.is-hover { background: var(--_surface); }
.swa button.download-link { border: 0; background: none; font: inherit; font-size: 0.85em; font-weight: 600; cursor: pointer; }
.swa button.download-link:disabled { color: var(--_muted); cursor: default; }
.swa button.download-link:disabled:hover, .swa button.download-link:disabled.is-hover { background: none; }
.swa .download.expired .download-link { color: var(--_muted); cursor: not-allowed; }
.swa .download.expired .download-link:hover, .swa .download.expired .download-link.is-hover { background: none; }
.swa .download.expired .download-when { color: var(--_danger); }
.swa .drop {
  position: absolute; inset: 0.5rem; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.4rem; border: 2px dashed var(--_accent); border-radius: 0.75rem; background: color-mix(in srgb, var(--_teammate) 94%, transparent);
  color: var(--_muted); font-size: 0.85em; text-align: center; pointer-events: none;
}
.swa .drop .icon { color: var(--_accent); font-size: 2rem; }
.swa .drop p { margin: 0; }
.swa .drop .drop-title { color: var(--_text); font-size: 1.1em; font-weight: 600; }
.swa .chip-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.swa .chip button { display: inline-flex; padding: 0.1rem; border: 0; background: none; color: inherit; }
.swa .composer .error { margin-top: 0.4rem; }
.swa .ticket-view-replies { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.swa .description { margin: 0; white-space: pre-wrap; font-size: 0.9em; }
/* Thanos theme */
.swa {
  --swivel-assistant-accent: #099cab;
  --swivel-assistant-on-accent: #fff;
  --swivel-assistant-bg: #fff;
  --swivel-assistant-surface: #f8f9fa;
  --swivel-assistant-text: #212529;
  --swivel-assistant-muted: rgba(33, 37, 41, 0.75);
  --swivel-assistant-border: #dee2e6;
  --swivel-assistant-teammate: rgba(147, 112, 221, 0.12);
  --swivel-assistant-danger: #dc3545;
  --swivel-assistant-success: #198754;
  --swivel-assistant-warning: #ffc107;
  --swivel-assistant-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
/* Replica in page flow */
.swa { position: relative; width: min(25rem, 100%); text-align: left; letter-spacing: normal;
  -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }
.swa .window { width: 100%; height: var(--swa-h, 40rem); }
.swa :where(ul) { list-style: disc; }
.swa :where(ol) { list-style: decimal; }
.swa :where(a) { text-decoration: underline; }
.swa :where(textarea, input)::placeholder { color: #757575; opacity: 1; }
.swa :where(textarea[readonly]) { cursor: default; }
/* The widget grows the box to its text as you type (chat_view.js grow()); a still does it in CSS. */
.swa:not([data-swa-demo]) .composer textarea { field-sizing: content; }
/* A demo log keeps its newest message in view; the player scrolls it, and without the player it pins to the end. */
.swa[data-swa-demo] .messages { scrollbar-width: none; }
.swa[data-swa-demo] .messages::-webkit-scrollbar { display: none; }
.swa--pin .messages { justify-content: flex-end; overflow: hidden; }
/* Steps the player reveals fade up; the only motion the replica adds to the widget's own. */
.swa .swa-enter { animation: swa-enter 0.28s ease-out both; }
@keyframes swa-enter { from { opacity: 0; transform: translateY(6px); } }
.swa .swa-leave { transition: opacity 0.35s ease; opacity: 0; }
@media (prefers-reduced-motion: reduce) { .swa .swa-enter { animation: none; } .swa .swa-leave { transition: none; } }
.swa .swa-variant { display: contents; }
.swa.swa-paused, .swa.swa-paused * { animation-play-state: paused !important; }
/* The demo's Pause / Play button, outside the picture (WCAG 2.2.2). */
.swa-pause { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.25rem; padding: 0.35rem 0.9rem 0.35rem 0.7rem;
  border: 1px solid currentColor; border-radius: 999px; background: transparent; font: 600 0.875rem/1.2 "DM Sans", sans-serif; cursor: pointer; }
.swa-pause[hidden] { display: none; }
.swa-pause--light { color: #212529; }
.swa-pause--dark { color: #fff; }
.swa-pause:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.swa-pause:focus-visible { outline: 3px solid #099cab; outline-offset: 2px; }
.swa-pause-icon { width: 0.75rem; height: 0.75rem; flex: none; border-inline: 0.22rem solid currentColor; box-sizing: border-box; }
.swa-pause[aria-pressed="true"] .swa-pause-icon { border: 0; border-left: 0.7rem solid currentColor; border-block: 0.4rem solid transparent; width: 0; height: 0; }
